Skip to content

Commit e2a8855

Browse files
Revert "[clang] Remove intrusive reference count from DiagnosticOptions (#139584)"
This reverts commit 9e306ad. Multiple builtbot failures have been reported: #139584
1 parent e23a692 commit e2a8855

File tree

135 files changed

+568
-603
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

+568
-603
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-
DiagnosticOptions DiagOpts;
99+
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions());
100100
DiagnosticsEngine Diagnostics(
101-
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts);
101+
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts.get());
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-
DiagnosticOptions DiagOpts;
130-
clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts);
129+
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions();
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-
DiagnosticOptions DiagOpts;
459-
DiagnosticsEngine Diagnostics(new DiagnosticIDs, DiagOpts);
460-
TextDiagnosticPrinter DiagnosticPrinter(outs(), DiagOpts);
458+
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions);
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-
DiagnosticOptions DiagOpts;
180-
clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts);
179+
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions());
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-
DiagnosticOptions DiagOpts;
76-
TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts);
75+
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions());
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,14 +97,15 @@ class ErrorReporter {
9797
ErrorReporter(ClangTidyContext &Context, FixBehaviour ApplyFixes,
9898
llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> BaseFS)
9999
: Files(FileSystemOptions(), std::move(BaseFS)),
100-
DiagPrinter(new TextDiagnosticPrinter(llvm::outs(), DiagOpts)),
101-
Diags(IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), DiagOpts,
100+
DiagOpts(new DiagnosticOptions()),
101+
DiagPrinter(new TextDiagnosticPrinter(llvm::outs(), &*DiagOpts)),
102+
Diags(IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), &*DiagOpts,
102103
DiagPrinter),
103104
SourceMgr(Diags, Files), Context(Context), ApplyFixes(ApplyFixes) {
104-
DiagOpts.ShowColors = Context.getOptions().UseColor.value_or(
105+
DiagOpts->ShowColors = Context.getOptions().UseColor.value_or(
105106
llvm::sys::Process::StandardOutHasColors());
106107
DiagPrinter->BeginSourceFile(LangOpts);
107-
if (DiagOpts.ShowColors && !llvm::sys::Process::StandardOutIsDisplayed()) {
108+
if (DiagOpts->ShowColors && !llvm::sys::Process::StandardOutIsDisplayed()) {
108109
llvm::sys::Process::UseANSIEscapeCodes(true);
109110
}
110111
}
@@ -307,7 +308,7 @@ class ErrorReporter {
307308

308309
FileManager Files;
309310
LangOptions LangOpts; // FIXME: use langopts from each original file
310-
DiagnosticOptions DiagOpts;
311+
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts;
311312
DiagnosticConsumer *DiagPrinter;
312313
DiagnosticsEngine Diags;
313314
SourceManager SourceMgr;
@@ -515,10 +516,10 @@ getCheckOptions(const ClangTidyOptions &Options,
515516
Options),
516517
AllowEnablingAnalyzerAlphaCheckers);
517518
ClangTidyDiagnosticConsumer DiagConsumer(Context);
518-
auto DiagOpts = std::make_unique<DiagnosticOptions>();
519-
DiagnosticsEngine DE(llvm::makeIntrusiveRefCnt<DiagnosticIDs>(), *DiagOpts,
519+
DiagnosticsEngine DE(llvm::makeIntrusiveRefCnt<DiagnosticIDs>(),
520+
llvm::makeIntrusiveRefCnt<DiagnosticOptions>(),
520521
&DiagConsumer, /*ShouldOwnClient=*/false);
521-
Context.setDiagnosticsEngine(std::move(DiagOpts), &DE);
522+
Context.setDiagnosticsEngine(&DE);
522523
ClangTidyASTConsumerFactory Factory(Context);
523524
return Factory.getCheckOptions();
524525
}
@@ -557,10 +558,9 @@ runClangTidy(clang::tidy::ClangTidyContext &Context,
557558
Context.setProfileStoragePrefix(StoreCheckProfile);
558559

559560
ClangTidyDiagnosticConsumer DiagConsumer(Context, nullptr, true, ApplyAnyFix);
560-
auto DiagOpts = std::make_unique<DiagnosticOptions>();
561-
DiagnosticsEngine DE(new DiagnosticIDs(), *DiagOpts, &DiagConsumer,
562-
/*ShouldOwnClient=*/false);
563-
Context.setDiagnosticsEngine(std::move(DiagOpts), &DE);
561+
DiagnosticsEngine DE(new DiagnosticIDs(), new DiagnosticOptions(),
562+
&DiagConsumer, /*ShouldOwnClient=*/false);
563+
Context.setDiagnosticsEngine(&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: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,7 @@ 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(std::unique_ptr<DiagnosticOptions> DiagOpts,
79-
DiagnosticsEngine *DiagEngine) {
80-
this->DiagOpts = std::move(DiagOpts);
78+
void setDiagnosticsEngine(DiagnosticsEngine *DiagEngine) {
8179
this->DiagEngine = DiagEngine;
8280
}
8381

@@ -233,7 +231,6 @@ class ClangTidyContext {
233231
// Writes to Stats.
234232
friend class ClangTidyDiagnosticConsumer;
235233

236-
std::unique_ptr<DiagnosticOptions> DiagOpts = nullptr;
237234
DiagnosticsEngine *DiagEngine = nullptr;
238235
std::unique_ptr<ClangTidyOptionsProvider> OptionsProvider;
239236

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, DiagOpts,
74+
Diags(new DiagnosticIDs, new DiagnosticOptions,
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)