Skip to content

Commit 13e1a2c

Browse files
committed
Reapply "[clang] Remove intrusive reference count from DiagnosticOptions (#139584)"
This reverts commit e2a8855. Build failures were fixed right away and reverting the original commit without the fixes breaks the build again.
1 parent 45f6036 commit 13e1a2c

File tree

135 files changed

+603
-568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+603
-568
lines changed

clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@ int main(int argc, char **argv) {
9696
cl::SetVersionPrinter(printVersion);
9797
cl::ParseCommandLineOptions(argc, argv);
9898

99-
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions());
99+
DiagnosticOptions DiagOpts;
100100
DiagnosticsEngine Diagnostics(
101-
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts.get());
101+
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts);
102102

103103
// Determine a formatting style from options.
104104
auto FormatStyleOrError = format::getStyle(FormatStyleOpt, FormatStyleConfig,

clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,10 @@ int main(int argc, const char **argv) {
126126
if (int Result = Tool.run(Factory.get()))
127127
return Result;
128128
LangOptions DefaultLangOptions;
129-
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions();
130-
clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), &*DiagOpts);
129+
DiagnosticOptions DiagOpts;
130+
clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts);
131131
DiagnosticsEngine Diagnostics(
132-
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), &*DiagOpts,
132+
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts,
133133
&DiagnosticPrinter, false);
134134
auto &FileMgr = Tool.getFiles();
135135
SourceManager Sources(Diagnostics, FileMgr);

clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,9 @@ int includeFixerMain(int argc, const char **argv) {
455455
}
456456

457457
// Set up a new source manager for applying the resulting replacements.
458-
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions);
459-
DiagnosticsEngine Diagnostics(new DiagnosticIDs, &*DiagOpts);
460-
TextDiagnosticPrinter DiagnosticPrinter(outs(), &*DiagOpts);
458+
DiagnosticOptions DiagOpts;
459+
DiagnosticsEngine Diagnostics(new DiagnosticIDs, DiagOpts);
460+
TextDiagnosticPrinter DiagnosticPrinter(outs(), DiagOpts);
461461
SourceManager SM(Diagnostics, tool.getFiles());
462462
Diagnostics.setClient(&DiagnosticPrinter, false);
463463

clang-tools-extra/clang-move/tool/ClangMove.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,10 +176,10 @@ int main(int argc, const char **argv) {
176176
}
177177
}
178178

179-
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions());
180-
clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), &*DiagOpts);
179+
DiagnosticOptions DiagOpts;
180+
clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts);
181181
DiagnosticsEngine Diagnostics(
182-
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), &*DiagOpts,
182+
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts,
183183
&DiagnosticPrinter, false);
184184
auto &FileMgr = Tool.getFiles();
185185
SourceManager SM(Diagnostics, FileMgr);

clang-tools-extra/clang-query/Query.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ bool MatchQuery::run(llvm::raw_ostream &OS, QuerySession &QS) const {
172172
clang::SourceRange R = BI->second.getSourceRange();
173173
if (R.isValid()) {
174174
TextDiagnostic TD(OS, AST->getASTContext().getLangOpts(),
175-
&AST->getDiagnostics().getDiagnosticOptions());
175+
AST->getDiagnostics().getDiagnosticOptions());
176176
TD.emitDiagnostic(
177177
FullSourceLoc(R.getBegin(), AST->getSourceManager()),
178178
DiagnosticsEngine::Note, "\"" + BI->first + "\" binds here",

clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ int main(int argc, const char **argv) {
7272

7373
int ExitCode = Tool.run(Factory.get());
7474
LangOptions DefaultLangOptions;
75-
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions());
76-
TextDiagnosticPrinter DiagnosticPrinter(errs(), &*DiagOpts);
75+
DiagnosticOptions DiagOpts;
76+
TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts);
7777
DiagnosticsEngine Diagnostics(
78-
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), &*DiagOpts,
78+
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts,
7979
&DiagnosticPrinter, false);
8080

8181
auto &FileMgr = Tool.getFiles();

clang-tools-extra/clang-tidy/ClangTidy.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,14 @@ class ErrorReporter {
9797
ErrorReporter(ClangTidyContext &Context, FixBehaviour ApplyFixes,
9898
llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> BaseFS)
9999
: Files(FileSystemOptions(), std::move(BaseFS)),
100-
DiagOpts(new DiagnosticOptions()),
101-
DiagPrinter(new TextDiagnosticPrinter(llvm::outs(), &*DiagOpts)),
102-
Diags(IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), &*DiagOpts,
100+
DiagPrinter(new TextDiagnosticPrinter(llvm::outs(), DiagOpts)),
101+
Diags(IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), DiagOpts,
103102
DiagPrinter),
104103
SourceMgr(Diags, Files), Context(Context), ApplyFixes(ApplyFixes) {
105-
DiagOpts->ShowColors = Context.getOptions().UseColor.value_or(
104+
DiagOpts.ShowColors = Context.getOptions().UseColor.value_or(
106105
llvm::sys::Process::StandardOutHasColors());
107106
DiagPrinter->BeginSourceFile(LangOpts);
108-
if (DiagOpts->ShowColors && !llvm::sys::Process::StandardOutIsDisplayed()) {
107+
if (DiagOpts.ShowColors && !llvm::sys::Process::StandardOutIsDisplayed()) {
109108
llvm::sys::Process::UseANSIEscapeCodes(true);
110109
}
111110
}
@@ -308,7 +307,7 @@ class ErrorReporter {
308307

309308
FileManager Files;
310309
LangOptions LangOpts; // FIXME: use langopts from each original file
311-
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts;
310+
DiagnosticOptions DiagOpts;
312311
DiagnosticConsumer *DiagPrinter;
313312
DiagnosticsEngine Diags;
314313
SourceManager SourceMgr;
@@ -516,10 +515,10 @@ getCheckOptions(const ClangTidyOptions &Options,
516515
Options),
517516
AllowEnablingAnalyzerAlphaCheckers);
518517
ClangTidyDiagnosticConsumer DiagConsumer(Context);
519-
DiagnosticsEngine DE(llvm::makeIntrusiveRefCnt<DiagnosticIDs>(),
520-
llvm::makeIntrusiveRefCnt<DiagnosticOptions>(),
518+
auto DiagOpts = std::make_unique<DiagnosticOptions>();
519+
DiagnosticsEngine DE(llvm::makeIntrusiveRefCnt<DiagnosticIDs>(), *DiagOpts,
521520
&DiagConsumer, /*ShouldOwnClient=*/false);
522-
Context.setDiagnosticsEngine(&DE);
521+
Context.setDiagnosticsEngine(std::move(DiagOpts), &DE);
523522
ClangTidyASTConsumerFactory Factory(Context);
524523
return Factory.getCheckOptions();
525524
}
@@ -558,9 +557,10 @@ runClangTidy(clang::tidy::ClangTidyContext &Context,
558557
Context.setProfileStoragePrefix(StoreCheckProfile);
559558

560559
ClangTidyDiagnosticConsumer DiagConsumer(Context, nullptr, true, ApplyAnyFix);
561-
DiagnosticsEngine DE(new DiagnosticIDs(), new DiagnosticOptions(),
562-
&DiagConsumer, /*ShouldOwnClient=*/false);
563-
Context.setDiagnosticsEngine(&DE);
560+
auto DiagOpts = std::make_unique<DiagnosticOptions>();
561+
DiagnosticsEngine DE(new DiagnosticIDs(), *DiagOpts, &DiagConsumer,
562+
/*ShouldOwnClient=*/false);
563+
Context.setDiagnosticsEngine(std::move(DiagOpts), &DE);
564564
Tool.setDiagnosticConsumer(&DiagConsumer);
565565

566566
class ActionFactory : public FrontendActionFactory {

clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ namespace {
4949
class ClangTidyDiagnosticRenderer : public DiagnosticRenderer {
5050
public:
5151
ClangTidyDiagnosticRenderer(const LangOptions &LangOpts,
52-
DiagnosticOptions *DiagOpts,
52+
DiagnosticOptions &DiagOpts,
5353
ClangTidyError &Error)
5454
: DiagnosticRenderer(LangOpts, DiagOpts), Error(Error) {}
5555

@@ -429,7 +429,7 @@ void ClangTidyDiagnosticConsumer::HandleDiagnostic(
429429
forwardDiagnostic(Info);
430430
} else {
431431
ClangTidyDiagnosticRenderer Converter(
432-
Context.getLangOpts(), &Context.DiagEngine->getDiagnosticOptions(),
432+
Context.getLangOpts(), Context.DiagEngine->getDiagnosticOptions(),
433433
Errors.back());
434434
SmallString<100> Message;
435435
Info.FormatDiagnostic(Message);

clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ class ClangTidyContext {
7575
/// Sets the DiagnosticsEngine that diag() will emit diagnostics to.
7676
// FIXME: this is required initialization, and should be a constructor param.
7777
// Fix the context -> diag engine -> consumer -> context initialization cycle.
78-
void setDiagnosticsEngine(DiagnosticsEngine *DiagEngine) {
78+
void setDiagnosticsEngine(std::unique_ptr<DiagnosticOptions> DiagOpts,
79+
DiagnosticsEngine *DiagEngine) {
80+
this->DiagOpts = std::move(DiagOpts);
7981
this->DiagEngine = DiagEngine;
8082
}
8183

@@ -231,6 +233,7 @@ class ClangTidyContext {
231233
// Writes to Stats.
232234
friend class ClangTidyDiagnosticConsumer;
233235

236+
std::unique_ptr<DiagnosticOptions> DiagOpts = nullptr;
234237
DiagnosticsEngine *DiagEngine = nullptr;
235238
std::unique_ptr<ClangTidyOptionsProvider> OptionsProvider;
236239

clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ ExpandModularHeadersPPCallbacks::ExpandModularHeadersPPCallbacks(
7171
InMemoryFs(new llvm::vfs::InMemoryFileSystem),
7272
Sources(Compiler.getSourceManager()),
7373
// Forward the new diagnostics to the original DiagnosticConsumer.
74-
Diags(new DiagnosticIDs, new DiagnosticOptions,
74+
Diags(new DiagnosticIDs, DiagOpts,
7575
new ForwardingDiagnosticConsumer(Compiler.getDiagnosticClient())),
7676
LangOpts(Compiler.getLangOpts()), HSOpts(Compiler.getHeaderSearchOpts()) {
7777
// Add a FileSystem containing the extra files needed in place of modular

0 commit comments

Comments
 (0)