diff options
author | Jan Svoboda <jan_svoboda@apple.com> | 2025-05-22 12:51:28 -0700 |
---|---|---|
committer | Jan Svoboda <jan_svoboda@apple.com> | 2025-05-22 12:52:03 -0700 |
commit | 13e1a2cb2246dc5e9a4afcdacabed4d43154ec3f (patch) | |
tree | 44ef419d0d5533ac9464061a6801ed0db1c93a49 /clang/unittests | |
parent | 45f6036533bd30966f5e815568b792a7e293a0e8 (diff) | |
download | llvm-13e1a2cb2246dc5e9a4afcdacabed4d43154ec3f.zip llvm-13e1a2cb2246dc5e9a4afcdacabed4d43154ec3f.tar.gz llvm-13e1a2cb2246dc5e9a4afcdacabed4d43154ec3f.tar.bz2 |
Reapply "[clang] Remove intrusive reference count from `DiagnosticOptions` (#139584)"
This reverts commit e2a885537f11f8d9ced1c80c2c90069ab5adeb1d. Build failures were fixed right away and reverting the original commit without the fixes breaks the build again.
Diffstat (limited to 'clang/unittests')
46 files changed, 206 insertions, 187 deletions
diff --git a/clang/unittests/AST/ASTVectorTest.cpp b/clang/unittests/AST/ASTVectorTest.cpp index 1c17eb9..66003b4 100644 --- a/clang/unittests/AST/ASTVectorTest.cpp +++ b/clang/unittests/AST/ASTVectorTest.cpp @@ -27,13 +27,14 @@ class ASTVectorTest : public ::testing::Test { protected: ASTVectorTest() : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), SourceMgr(Diags, FileMgr), Idents(LangOpts, nullptr), Ctxt(LangOpts, SourceMgr, Idents, Sels, Builtins, TU_Complete) {} FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; diff --git a/clang/unittests/AST/CommentLexer.cpp b/clang/unittests/AST/CommentLexer.cpp index 22866f0..dc10dae 100644 --- a/clang/unittests/AST/CommentLexer.cpp +++ b/clang/unittests/AST/CommentLexer.cpp @@ -27,16 +27,14 @@ namespace { class CommentLexerTest : public ::testing::Test { protected: CommentLexerTest() - : FileMgr(FileMgrOpts), - DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), - SourceMgr(Diags, FileMgr), - Traits(Allocator, CommentOptions()) { - } + : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), + SourceMgr(Diags, FileMgr), Traits(Allocator, CommentOptions()) {} FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; llvm::BumpPtrAllocator Allocator; diff --git a/clang/unittests/AST/CommentParser.cpp b/clang/unittests/AST/CommentParser.cpp index aa08b67..67fabe5 100644 --- a/clang/unittests/AST/CommentParser.cpp +++ b/clang/unittests/AST/CommentParser.cpp @@ -33,16 +33,14 @@ const bool MY_DEBUG = true; class CommentParserTest : public ::testing::Test { protected: CommentParserTest() - : FileMgr(FileMgrOpts), - DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), - SourceMgr(Diags, FileMgr), - Traits(Allocator, CommentOptions()) { - } + : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), + SourceMgr(Diags, FileMgr), Traits(Allocator, CommentOptions()) {} FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; llvm::BumpPtrAllocator Allocator; diff --git a/clang/unittests/AST/CommentTextTest.cpp b/clang/unittests/AST/CommentTextTest.cpp index b697828..84ec51a 100644 --- a/clang/unittests/AST/CommentTextTest.cpp +++ b/clang/unittests/AST/CommentTextTest.cpp @@ -43,7 +43,8 @@ protected: // FIXME: technically, merged that we set here is incorrect, but that // shouldn't matter. RawComment Comment(SourceMgr, CommentRange, EmptyOpts, /*Merged=*/true); - DiagnosticsEngine Diags(new DiagnosticIDs, new DiagnosticOptions); + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(new DiagnosticIDs, DiagOpts); return Comment.getFormattedText(SourceMgr, Diags); } }; diff --git a/clang/unittests/AST/ExternalASTSourceTest.cpp b/clang/unittests/AST/ExternalASTSourceTest.cpp index 807bab1..11715bb 100644 --- a/clang/unittests/AST/ExternalASTSourceTest.cpp +++ b/clang/unittests/AST/ExternalASTSourceTest.cpp @@ -51,9 +51,9 @@ bool testExternalASTSource(ExternalASTSource *Source, StringRef FileContents) { "test.cc", MemoryBuffer::getMemBuffer(FileContents).release()); const char *Args[] = { "test.cc" }; - auto InvocationDiagOpts = llvm::makeIntrusiveRefCnt<DiagnosticOptions>(); + DiagnosticOptions InvocationDiagOpts; auto InvocationDiags = CompilerInstance::createDiagnostics( - *llvm::vfs::getRealFileSystem(), InvocationDiagOpts.get()); + *llvm::vfs::getRealFileSystem(), InvocationDiagOpts); CompilerInvocation::CreateFromArgs(*Invocation, Args, *InvocationDiags); CompilerInstance Compiler(std::move(Invocation)); diff --git a/clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp b/clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp index 6f69ccb..1dd0783 100644 --- a/clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp +++ b/clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp @@ -1388,10 +1388,9 @@ protected: unsigned Line = SrcMgr.getPresumedLineNumber(Diag.Range.getBegin()); DiagnosticLines.insert(Line); if (!AnnotationLines.contains(Line)) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts( - new DiagnosticOptions()); + DiagnosticOptions DiagOpts; TextDiagnostic TD(llvm::errs(), AO.ASTCtx.getLangOpts(), - DiagOpts.get()); + DiagOpts); TD.emitDiagnostic(FullSourceLoc(Diag.Range.getBegin(), SrcMgr), DiagnosticsEngine::Error, "unexpected diagnostic", {Diag.Range}, {}); diff --git a/clang/unittests/Analysis/MacroExpansionContextTest.cpp b/clang/unittests/Analysis/MacroExpansionContextTest.cpp index 929d412..9874ea6 100644 --- a/clang/unittests/Analysis/MacroExpansionContextTest.cpp +++ b/clang/unittests/Analysis/MacroExpansionContextTest.cpp @@ -35,8 +35,8 @@ protected: MacroExpansionContextTest() : InMemoryFileSystem(new llvm::vfs::InMemoryFileSystem), FileMgr(FileSystemOptions(), InMemoryFileSystem), - DiagID(new DiagnosticIDs()), DiagOpts(new DiagnosticOptions()), - Diags(DiagID, DiagOpts.get(), new IgnoringDiagConsumer()), + DiagID(new DiagnosticIDs()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions()) { TargetOpts->Triple = "x86_64-pc-linux-unknown"; Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); @@ -46,7 +46,7 @@ protected: IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; diff --git a/clang/unittests/Analysis/UnsafeBufferUsageTest.cpp b/clang/unittests/Analysis/UnsafeBufferUsageTest.cpp index e48f39b..9da2c58 100644 --- a/clang/unittests/Analysis/UnsafeBufferUsageTest.cpp +++ b/clang/unittests/Analysis/UnsafeBufferUsageTest.cpp @@ -13,12 +13,13 @@ class UnsafeBufferUsageTest : public ::testing::Test { protected: UnsafeBufferUsageTest() : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), SourceMgr(Diags, FileMgr) {} FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; }; diff --git a/clang/unittests/Basic/DiagnosticTest.cpp b/clang/unittests/Basic/DiagnosticTest.cpp index 88fa180..b0a034e 100644 --- a/clang/unittests/Basic/DiagnosticTest.cpp +++ b/clang/unittests/Basic/DiagnosticTest.cpp @@ -46,8 +46,8 @@ using testing::IsEmpty; // Check that DiagnosticErrorTrap works with SuppressAllDiagnostics. TEST(DiagnosticTest, suppressAndTrap) { - DiagnosticsEngine Diags(new DiagnosticIDs(), - new DiagnosticOptions, + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, new IgnoringDiagConsumer()); Diags.setSuppressAllDiagnostics(true); @@ -77,8 +77,8 @@ TEST(DiagnosticTest, suppressAndTrap) { // Check that FatalsAsError works as intended TEST(DiagnosticTest, fatalsAsError) { for (unsigned FatalsAsError = 0; FatalsAsError != 2; ++FatalsAsError) { - DiagnosticsEngine Diags(new DiagnosticIDs(), - new DiagnosticOptions, + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, new IgnoringDiagConsumer()); Diags.setFatalsAsError(FatalsAsError); @@ -101,7 +101,8 @@ TEST(DiagnosticTest, fatalsAsError) { } TEST(DiagnosticTest, tooManyErrorsIsAlwaysFatal) { - DiagnosticsEngine Diags(new DiagnosticIDs(), new DiagnosticOptions, + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, new IgnoringDiagConsumer()); Diags.setFatalsAsError(true); @@ -117,7 +118,8 @@ TEST(DiagnosticTest, tooManyErrorsIsAlwaysFatal) { // Check that soft RESET works as intended TEST(DiagnosticTest, softReset) { - DiagnosticsEngine Diags(new DiagnosticIDs(), new DiagnosticOptions, + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, new IgnoringDiagConsumer()); unsigned numWarnings = 0U, numErrors = 0U; @@ -140,7 +142,8 @@ TEST(DiagnosticTest, softReset) { } TEST(DiagnosticTest, diagnosticError) { - DiagnosticsEngine Diags(new DiagnosticIDs(), new DiagnosticOptions, + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, new IgnoringDiagConsumer()); PartialDiagnostic::DiagStorageAllocator Alloc; llvm::Expected<std::pair<int, int>> Value = DiagnosticError::create( @@ -162,7 +165,8 @@ TEST(DiagnosticTest, diagnosticError) { } TEST(DiagnosticTest, storedDiagEmptyWarning) { - DiagnosticsEngine Diags(new DiagnosticIDs(), new DiagnosticOptions); + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts); class CaptureDiagnosticConsumer : public DiagnosticConsumer { public: @@ -192,7 +196,8 @@ public: protected: llvm::IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); - DiagnosticsEngine Diags{new DiagnosticIDs(), new DiagnosticOptions}; + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags{new DiagnosticIDs(), DiagOpts}; llvm::ArrayRef<StoredDiagnostic> diags() { return CaptureConsumer.StoredDiags; diff --git a/clang/unittests/Basic/SarifTest.cpp b/clang/unittests/Basic/SarifTest.cpp index febfbab..ad9f8ec 100644 --- a/clang/unittests/Basic/SarifTest.cpp +++ b/clang/unittests/Basic/SarifTest.cpp @@ -43,14 +43,14 @@ protected: SarifDocumentWriterTest() : InMemoryFileSystem(new llvm::vfs::InMemoryFileSystem), FileMgr(FileSystemOptions(), InMemoryFileSystem), - DiagID(new DiagnosticIDs()), DiagOpts(new DiagnosticOptions()), - Diags(DiagID, DiagOpts.get(), new IgnoringDiagConsumer()), + DiagID(new DiagnosticIDs()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), SourceMgr(Diags, FileMgr) {} IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; diff --git a/clang/unittests/Basic/SourceManagerTest.cpp b/clang/unittests/Basic/SourceManagerTest.cpp index 1f0986f..cbe047b 100644 --- a/clang/unittests/Basic/SourceManagerTest.cpp +++ b/clang/unittests/Basic/SourceManagerTest.cpp @@ -40,11 +40,9 @@ namespace { class SourceManagerTest : public ::testing::Test { protected: SourceManagerTest() - : FileMgr(FileMgrOpts), - DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), - SourceMgr(Diags, FileMgr), - TargetOpts(new TargetOptions) { + : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), + SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); } @@ -52,6 +50,7 @@ protected: FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; diff --git a/clang/unittests/Driver/DXCModeTest.cpp b/clang/unittests/Driver/DXCModeTest.cpp index 616c07c..f684593 100644 --- a/clang/unittests/Driver/DXCModeTest.cpp +++ b/clang/unittests/Driver/DXCModeTest.cpp @@ -64,8 +64,8 @@ TEST(DxcModeTest, TargetProfileValidation) { llvm::MemoryBuffer::getMemBuffer("\n")); auto *DiagConsumer = new SimpleDiagnosticConsumer; - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer); + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer); validateTargetProfile("-Tvs_6_0", "dxilv1.0--shadermodel6.0-vertex", InMemoryFileSystem, Diags); @@ -114,8 +114,8 @@ TEST(DxcModeTest, ValidatorVersionValidation) { llvm::MemoryBuffer::getMemBuffer("\n")); auto *DiagConsumer = new SimpleDiagnosticConsumer; - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer); + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer); Driver TheDriver("/bin/clang", "", Diags, "", InMemoryFileSystem); std::unique_ptr<Compilation> C(TheDriver.BuildCompilation( {"clang", "--driver-mode=dxc", "-Tlib_6_7", "foo.hlsl"})); @@ -218,9 +218,9 @@ TEST(DxcModeTest, DefaultEntry) { const char *Args[] = {"clang", "--driver-mode=dxc", "-Tcs_6_7", "foo.hlsl"}; + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*InMemoryFileSystem, - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*InMemoryFileSystem, DiagOpts); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; diff --git a/clang/unittests/Driver/SanitizerArgsTest.cpp b/clang/unittests/Driver/SanitizerArgsTest.cpp index 5a42210..b8bfc68 100644 --- a/clang/unittests/Driver/SanitizerArgsTest.cpp +++ b/clang/unittests/Driver/SanitizerArgsTest.cpp @@ -52,10 +52,9 @@ protected: std::vector<std::string> ExtraFiles) { assert(!DriverInstance && "Running twice is not allowed"); - llvm::IntrusiveRefCntPtr<DiagnosticOptions> Opts = new DiagnosticOptions; - DiagnosticsEngine Diags( - new DiagnosticIDs, Opts, - new TextDiagnosticPrinter(llvm::errs(), Opts.get())); + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(new DiagnosticIDs, DiagOpts, + new TextDiagnosticPrinter(llvm::errs(), DiagOpts)); DriverInstance.emplace(ClangBinary, "x86_64-unknown-linux-gnu", Diags, "clang LLVM compiler", prepareFS(ExtraFiles)); diff --git a/clang/unittests/Driver/SimpleDiagnosticConsumer.h b/clang/unittests/Driver/SimpleDiagnosticConsumer.h index 6515bde..c3772ba 100644 --- a/clang/unittests/Driver/SimpleDiagnosticConsumer.h +++ b/clang/unittests/Driver/SimpleDiagnosticConsumer.h @@ -47,9 +47,8 @@ inline clang::driver::Driver diagnostic_test_driver() { llvm::IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem( new llvm::vfs::InMemoryFileSystem); auto *DiagConsumer = new SimpleDiagnosticConsumer; - llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions> DiagOpts = - new clang::DiagnosticOptions(); - clang::DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer); + clang::DiagnosticOptions DiagOpts; + clang::DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer); return clang::driver::Driver("/bin/clang", "", Diags, "", InMemoryFileSystem); } diff --git a/clang/unittests/Driver/ToolChainTest.cpp b/clang/unittests/Driver/ToolChainTest.cpp index c1ffe4a..670090a 100644 --- a/clang/unittests/Driver/ToolChainTest.cpp +++ b/clang/unittests/Driver/ToolChainTest.cpp @@ -38,7 +38,7 @@ using namespace clang::driver; namespace { TEST(ToolChainTest, VFSGCCInstallation) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; @@ -84,7 +84,7 @@ TEST(ToolChainTest, VFSGCCInstallation) { llvm::MemoryBuffer::getMemBuffer("\n")); { - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); Driver TheDriver("/bin/clang", "arm-linux-gnueabihf", Diags, "clang LLVM compiler", InMemoryFileSystem); std::unique_ptr<Compilation> C(TheDriver.BuildCompilation( @@ -107,7 +107,8 @@ TEST(ToolChainTest, VFSGCCInstallation) { } { - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); Driver TheDriver("/bin/clang", "arm-linux-gnueabihf", Diags, "clang LLVM compiler", InMemoryFileSystem); std::unique_ptr<Compilation> C(TheDriver.BuildCompilation( @@ -134,11 +135,11 @@ TEST(ToolChainTest, VFSGCCInstallation) { } TEST(ToolChainTest, VFSGCCInstallationRelativeDir) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem( new llvm::vfs::InMemoryFileSystem); Driver TheDriver("/home/test/bin/clang", "arm-linux-gnueabi", Diags, @@ -173,7 +174,7 @@ TEST(ToolChainTest, VFSGCCInstallationRelativeDir) { } TEST(ToolChainTest, VFSSolarisMultiGCCInstallation) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; @@ -201,7 +202,7 @@ TEST(ToolChainTest, VFSSolarisMultiGCCInstallation) { llvm::MemoryBuffer::getMemBuffer("\n")); { - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); Driver TheDriver("/bin/clang", "i386-pc-solaris2.11", Diags, "clang LLVM compiler", InMemoryFileSystem); std::unique_ptr<Compilation> C( @@ -225,7 +226,7 @@ TEST(ToolChainTest, VFSSolarisMultiGCCInstallation) { } { - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); Driver TheDriver("/bin/clang", "amd64-pc-solaris2.11", Diags, "clang LLVM compiler", InMemoryFileSystem); std::unique_ptr<Compilation> C( @@ -249,7 +250,7 @@ TEST(ToolChainTest, VFSSolarisMultiGCCInstallation) { } { - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); Driver TheDriver("/bin/clang", "x86_64-pc-solaris2.11", Diags, "clang LLVM compiler", InMemoryFileSystem); std::unique_ptr<Compilation> C( @@ -273,7 +274,7 @@ TEST(ToolChainTest, VFSSolarisMultiGCCInstallation) { } { - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); Driver TheDriver("/bin/clang", "sparc-sun-solaris2.11", Diags, "clang LLVM compiler", InMemoryFileSystem); std::unique_ptr<Compilation> C( @@ -296,7 +297,7 @@ TEST(ToolChainTest, VFSSolarisMultiGCCInstallation) { S); } { - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); Driver TheDriver("/bin/clang", "sparcv9-sun-solaris2.11", Diags, "clang LLVM compiler", InMemoryFileSystem); std::unique_ptr<Compilation> C( @@ -337,7 +338,7 @@ MATCHER_P(jobHasArgs, Substr, "") { } TEST(ToolChainTest, VFSGnuLibcxxPathNoSysroot) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; @@ -355,7 +356,7 @@ TEST(ToolChainTest, VFSGnuLibcxxPathNoSysroot) { llvm::MemoryBuffer::getMemBuffer("\n")); { - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); Driver TheDriver("/bin/clang", "x86_64-unknown-linux-gnu", Diags, "clang LLVM compiler", InMemoryFileSystem); std::unique_ptr<Compilation> C(TheDriver.BuildCompilation( @@ -368,11 +369,11 @@ TEST(ToolChainTest, VFSGnuLibcxxPathNoSysroot) { } TEST(ToolChainTest, DefaultDriverMode) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem( new llvm::vfs::InMemoryFileSystem); @@ -403,8 +404,8 @@ TEST(ToolChainTest, DefaultDriverMode) { TEST(ToolChainTest, InvalidArgument) { IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticOptions DiagOpts; + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); Driver TheDriver("/bin/clang", "arm-linux-gnueabihf", Diags); std::unique_ptr<Compilation> C(TheDriver.BuildCompilation( {"-fsyntax-only", "-fan-unknown-option", "foo.cpp"})); @@ -514,11 +515,11 @@ TEST(ToolChainTest, GetTargetAndMode) { } TEST(ToolChainTest, CommandOutput) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem( new llvm::vfs::InMemoryFileSystem); @@ -543,10 +544,10 @@ TEST(ToolChainTest, CommandOutput) { } TEST(ToolChainTest, PostCallback) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem( new llvm::vfs::InMemoryFileSystem); @@ -596,10 +597,10 @@ TEST(ToolChainTest, UEFICallingConventionTest) { } TEST(ToolChainTest, UEFIDefaultDebugFormatTest) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem( new llvm::vfs::InMemoryFileSystem); Driver CCDriver("/home/test/bin/clang", "x86_64-unknown-uefi", Diags, @@ -638,10 +639,10 @@ struct SimpleDiagnosticConsumer : public DiagnosticConsumer { }; TEST(ToolChainTest, ConfigFileSearch) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS( new llvm::vfs::InMemoryFileSystem); @@ -715,11 +716,11 @@ struct FileSystemWithError : public llvm::vfs::FileSystem { }; TEST(ToolChainTest, ConfigFileError) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer( new SimpleDiagnosticConsumer()); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer.get(), false); + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS(new FileSystemWithError); Driver TheDriver("/home/test/bin/clang", "arm-linux-gnueabi", Diags, @@ -736,11 +737,11 @@ TEST(ToolChainTest, ConfigFileError) { } TEST(ToolChainTest, BadConfigFile) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer( new SimpleDiagnosticConsumer()); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer.get(), false); + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS( new llvm::vfs::InMemoryFileSystem); @@ -810,11 +811,11 @@ TEST(ToolChainTest, BadConfigFile) { } TEST(ToolChainTest, ConfigInexistentInclude) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer( new SimpleDiagnosticConsumer()); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer.get(), false); + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS( new llvm::vfs::InMemoryFileSystem); @@ -851,11 +852,11 @@ TEST(ToolChainTest, ConfigInexistentInclude) { } TEST(ToolChainTest, ConfigRecursiveInclude) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer( new SimpleDiagnosticConsumer()); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer.get(), false); + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS( new llvm::vfs::InMemoryFileSystem); @@ -897,10 +898,10 @@ TEST(ToolChainTest, ConfigRecursiveInclude) { } TEST(ToolChainTest, NestedConfigFile) { - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS( new llvm::vfs::InMemoryFileSystem); diff --git a/clang/unittests/Frontend/ASTUnitTest.cpp b/clang/unittests/Frontend/ASTUnitTest.cpp index 08daca9..afa64b5 100644 --- a/clang/unittests/Frontend/ASTUnitTest.cpp +++ b/clang/unittests/Frontend/ASTUnitTest.cpp @@ -30,6 +30,8 @@ protected: int FD; llvm::SmallString<256> InputFileName; std::unique_ptr<ToolOutputFile> input_file; + std::shared_ptr<DiagnosticOptions> DiagOpts = + std::make_shared<DiagnosticOptions>(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags; std::shared_ptr<CompilerInvocation> CInvok; std::shared_ptr<PCHContainerOperations> PCHContainerOps; @@ -43,7 +45,7 @@ protected: const char *Args[] = {"clang", "-xc++", InputFileName.c_str()}; auto VFS = llvm::vfs::getRealFileSystem(); - Diags = CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions()); + Diags = CompilerInstance::createDiagnostics(*VFS, *DiagOpts); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; @@ -57,8 +59,8 @@ protected: PCHContainerOps = std::make_shared<PCHContainerOperations>(); return ASTUnit::LoadFromCompilerInvocation( - CInvok, PCHContainerOps, Diags, FileMgr, false, CaptureDiagsKind::None, - 0, TU_Complete, false, false, isVolatile); + CInvok, PCHContainerOps, DiagOpts, Diags, FileMgr, false, + CaptureDiagsKind::None, 0, TU_Complete, false, false, isVolatile); } }; @@ -95,7 +97,7 @@ TEST_F(ASTUnitTest, SaveLoadPreservesLangOptionsInPrintingPolicy) { std::unique_ptr<ASTUnit> AU = ASTUnit::LoadFromASTFile( ASTFileName, PCHContainerOps->getRawReader(), ASTUnit::LoadEverything, - Diags, FileSystemOptions(), HSOpts); + DiagOpts, Diags, FileSystemOptions(), HSOpts); if (!AU) FAIL() << "failed to load ASTUnit"; @@ -136,8 +138,7 @@ TEST_F(ASTUnitTest, ModuleTextualHeader) { const char *Args[] = {"clang", "test.cpp", "-fmodule-map-file=m.modulemap", "-fmodule-name=M"}; - Diags = - CompilerInstance::createDiagnostics(*InMemoryFs, new DiagnosticOptions()); + Diags = CompilerInstance::createDiagnostics(*InMemoryFs, *DiagOpts); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; CInvok = createInvocation(Args, std::move(CIOpts)); @@ -147,8 +148,8 @@ TEST_F(ASTUnitTest, ModuleTextualHeader) { PCHContainerOps = std::make_shared<PCHContainerOperations>(); auto AU = ASTUnit::LoadFromCompilerInvocation( - CInvok, PCHContainerOps, Diags, FileMgr, false, CaptureDiagsKind::None, 1, - TU_Complete, false, false, false); + CInvok, PCHContainerOps, DiagOpts, Diags, FileMgr, false, + CaptureDiagsKind::None, 1, TU_Complete, false, false, false); ASSERT_TRUE(AU); auto File = AU->getFileManager().getFileRef("Textual.h", false, false); ASSERT_TRUE(bool(File)); @@ -166,15 +167,15 @@ TEST_F(ASTUnitTest, LoadFromCommandLineEarlyError) { const char *Args[] = {"clang", "-target", "foobar", InputFileName.c_str()}; auto Diags = CompilerInstance::createDiagnostics( - *llvm::vfs::getRealFileSystem(), new DiagnosticOptions()); + *llvm::vfs::getRealFileSystem(), *DiagOpts); auto PCHContainerOps = std::make_shared<PCHContainerOperations>(); std::unique_ptr<clang::ASTUnit> ErrUnit; std::unique_ptr<ASTUnit> AST = ASTUnit::LoadFromCommandLine( - &Args[0], &Args[4], PCHContainerOps, Diags, "", false, "", false, - CaptureDiagsKind::All, {}, true, 0, TU_Complete, false, false, false, - SkipFunctionBodiesScope::None, false, true, false, false, std::nullopt, - &ErrUnit, nullptr); + &Args[0], &Args[4], PCHContainerOps, DiagOpts, Diags, "", false, "", + false, CaptureDiagsKind::All, {}, true, 0, TU_Complete, false, false, + false, SkipFunctionBodiesScope::None, false, true, false, false, + std::nullopt, &ErrUnit, nullptr); ASSERT_EQ(AST, nullptr); ASSERT_NE(ErrUnit, nullptr); @@ -194,15 +195,15 @@ TEST_F(ASTUnitTest, LoadFromCommandLineWorkingDirectory) { InputFileName.c_str()}; auto Diags = CompilerInstance::createDiagnostics( - *llvm::vfs::getRealFileSystem(), new DiagnosticOptions()); + *llvm::vfs::getRealFileSystem(), *DiagOpts); auto PCHContainerOps = std::make_shared<PCHContainerOperations>(); std::unique_ptr<clang::ASTUnit> ErrUnit; std::unique_ptr<ASTUnit> AST = ASTUnit::LoadFromCommandLine( - &Args[0], &Args[4], PCHContainerOps, Diags, "", false, "", false, - CaptureDiagsKind::All, {}, true, 0, TU_Complete, false, false, false, - SkipFunctionBodiesScope::None, false, true, false, false, std::nullopt, - &ErrUnit, nullptr); + &Args[0], &Args[4], PCHContainerOps, DiagOpts, Diags, "", false, "", + false, CaptureDiagsKind::All, {}, true, 0, TU_Complete, false, false, + false, SkipFunctionBodiesScope::None, false, true, false, false, + std::nullopt, &ErrUnit, nullptr); ASSERT_NE(AST, nullptr); ASSERT_FALSE(Diags->hasErrorOccurred()); diff --git a/clang/unittests/Frontend/CompilerInstanceTest.cpp b/clang/unittests/Frontend/CompilerInstanceTest.cpp index 6e9a6f5..a7b258d 100644 --- a/clang/unittests/Frontend/CompilerInstanceTest.cpp +++ b/clang/unittests/Frontend/CompilerInstanceTest.cpp @@ -53,9 +53,10 @@ TEST(CompilerInstance, DefaultVFSOverlayFromInvocation) { const std::string VFSArg = "-ivfsoverlay" + FileNameStr; const char *Args[] = {"clang", VFSArg.c_str(), "-xc++", "-"}; + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - new DiagnosticOptions()); + DiagOpts); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; @@ -76,17 +77,17 @@ TEST(CompilerInstance, DefaultVFSOverlayFromInvocation) { } TEST(CompilerInstance, AllowDiagnosticLogWithUnownedDiagnosticConsumer) { - auto DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; // Tell the diagnostics engine to emit the diagnostic log to STDERR. This // ensures that a chained diagnostic consumer is created so that the test can // exercise the unowned diagnostic consumer in a chained consumer. - DiagOpts->DiagnosticLogFile = "-"; + DiagOpts.DiagnosticLogFile = "-"; // Create the diagnostic engine with unowned consumer. std::string DiagnosticOutput; llvm::raw_string_ostream DiagnosticsOS(DiagnosticOutput); - auto DiagPrinter = std::make_unique<TextDiagnosticPrinter>( - DiagnosticsOS, new DiagnosticOptions()); + auto DiagPrinter = + std::make_unique<TextDiagnosticPrinter>(DiagnosticsOS, DiagOpts); CompilerInstance Instance; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = Instance.createDiagnostics(*llvm::vfs::getRealFileSystem(), DiagOpts, diff --git a/clang/unittests/Frontend/CompilerInvocationTest.cpp b/clang/unittests/Frontend/CompilerInvocationTest.cpp index 94ab9fe..75390aa 100644 --- a/clang/unittests/Frontend/CompilerInvocationTest.cpp +++ b/clang/unittests/Frontend/CompilerInvocationTest.cpp @@ -29,6 +29,7 @@ using ::testing::StartsWith; namespace { class CommandLineTest : public ::testing::Test { public: + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags; SmallVector<const char *, 32> GeneratedArgs; BumpPtrAllocator Alloc; @@ -41,7 +42,7 @@ public: CommandLineTest() : Diags(CompilerInstance::createDiagnostics( - *llvm::vfs::getRealFileSystem(), new DiagnosticOptions(), + *llvm::vfs::getRealFileSystem(), DiagOpts, new TextDiagnosticBuffer())), StringPool(Alloc) {} }; diff --git a/clang/unittests/Frontend/OutputStreamTest.cpp b/clang/unittests/Frontend/OutputStreamTest.cpp index 0eda3a1..dfb5a54 100644 --- a/clang/unittests/Frontend/OutputStreamTest.cpp +++ b/clang/unittests/Frontend/OutputStreamTest.cpp @@ -61,10 +61,10 @@ TEST(FrontendOutputTests, TestVerboseOutputStreamShared) { raw_string_ostream VerboseStream(VerboseBuffer); Compiler.setOutputStream(std::make_unique<raw_null_ostream>()); - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); - Compiler.createDiagnostics( - *llvm::vfs::getRealFileSystem(), - new TextDiagnosticPrinter(llvm::nulls(), &*DiagOpts), true); + DiagnosticOptions DiagOpts; + Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem(), + new TextDiagnosticPrinter(llvm::nulls(), DiagOpts), + true); Compiler.setVerboseOutputStream(VerboseStream); bool Success = ExecuteCompilerInvocation(&Compiler); @@ -91,10 +91,10 @@ TEST(FrontendOutputTests, TestVerboseOutputStreamOwned) { std::make_unique<raw_string_ostream>(VerboseBuffer); Compiler.setOutputStream(std::make_unique<raw_null_ostream>()); - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; Compiler.createDiagnostics( *llvm::vfs::getRealFileSystem(), - new TextDiagnosticPrinter(llvm::nulls(), &*DiagOpts), true); + new TextDiagnosticPrinter(llvm::nulls(), DiagOpts), true); Compiler.setVerboseOutputStream(std::move(VerboseStream)); Success = ExecuteCompilerInvocation(&Compiler); diff --git a/clang/unittests/Frontend/PCHPreambleTest.cpp b/clang/unittests/Frontend/PCHPreambleTest.cpp index 58ec2e2..faad408 100644 --- a/clang/unittests/Frontend/PCHPreambleTest.cpp +++ b/clang/unittests/Frontend/PCHPreambleTest.cpp @@ -53,6 +53,8 @@ class PCHPreambleTest : public ::testing::Test { IntrusiveRefCntPtr<ReadCountingInMemoryFileSystem> VFS; StringMap<std::string> RemappedFiles; std::shared_ptr<PCHContainerOperations> PCHContainerOpts; + std::shared_ptr<DiagnosticOptions> DiagOpts = + std::make_shared<DiagnosticOptions>(); FileSystemOptions FSOpts; public: @@ -95,13 +97,14 @@ public: PPOpts.RemappedFilesKeepOriginalName = true; IntrusiveRefCntPtr<DiagnosticsEngine> Diags( - CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions, + CompilerInstance::createDiagnostics(*VFS, *DiagOpts, new DiagnosticConsumer)); FileManager *FileMgr = new FileManager(FSOpts, VFS); std::unique_ptr<ASTUnit> AST = ASTUnit::LoadFromCompilerInvocation( - CI, PCHContainerOpts, Diags, FileMgr, false, CaptureDiagsKind::None, + CI, PCHContainerOpts, DiagOpts, Diags, FileMgr, false, + CaptureDiagsKind::None, /*PrecompilePreambleAfterNParses=*/1); return AST; } diff --git a/clang/unittests/Frontend/ReparseWorkingDirTest.cpp b/clang/unittests/Frontend/ReparseWorkingDirTest.cpp index b0f2d51..1b8051f 100644 --- a/clang/unittests/Frontend/ReparseWorkingDirTest.cpp +++ b/clang/unittests/Frontend/ReparseWorkingDirTest.cpp @@ -57,14 +57,16 @@ public: CI->getFileSystemOpts().WorkingDir = *VFS->getCurrentWorkingDirectory(); CI->getTargetOpts().Triple = "i386-unknown-linux-gnu"; + auto DiagOpts = std::make_shared<DiagnosticOptions>(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags( - CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions, + CompilerInstance::createDiagnostics(*VFS, *DiagOpts, new DiagnosticConsumer)); FileManager *FileMgr = new FileManager(CI->getFileSystemOpts(), VFS); std::unique_ptr<ASTUnit> AST = ASTUnit::LoadFromCompilerInvocation( - CI, PCHContainerOpts, Diags, FileMgr, false, CaptureDiagsKind::None, + CI, PCHContainerOpts, DiagOpts, Diags, FileMgr, false, + CaptureDiagsKind::None, /*PrecompilePreambleAfterNParses=*/1); return AST; } diff --git a/clang/unittests/Frontend/SearchPathTest.cpp b/clang/unittests/Frontend/SearchPathTest.cpp index 2ebe74d..c74a5c7 100644 --- a/clang/unittests/Frontend/SearchPathTest.cpp +++ b/clang/unittests/Frontend/SearchPathTest.cpp @@ -40,12 +40,12 @@ namespace { class SearchPathTest : public ::testing::Test { protected: SearchPathTest() - : Diags(new DiagnosticIDs(), new DiagnosticOptions, - new IgnoringDiagConsumer()), + : Diags(new DiagnosticIDs(), DiagOpts, new IgnoringDiagConsumer()), VFS(new llvm::vfs::InMemoryFileSystem), FileMgr(FileSystemOptions(), VFS), SourceMgr(Diags, FileMgr), Invocation(std::make_unique<CompilerInvocation>()) {} + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> VFS; FileManager FileMgr; diff --git a/clang/unittests/Frontend/TextDiagnosticTest.cpp b/clang/unittests/Frontend/TextDiagnosticTest.cpp index fef5726..8fd8187 100644 --- a/clang/unittests/Frontend/TextDiagnosticTest.cpp +++ b/clang/unittests/Frontend/TextDiagnosticTest.cpp @@ -20,13 +20,12 @@ namespace { /// Prints a diagnostic with the given DiagnosticOptions and the given /// SourceLocation and returns the printed diagnostic text. -static std::string PrintDiag(const DiagnosticOptions &Opts, FullSourceLoc Loc) { +static std::string PrintDiag(DiagnosticOptions &Opts, FullSourceLoc Loc) { std::string Out; llvm::raw_string_ostream OS(Out); clang::LangOptions LangOpts; // Owned by TextDiagnostic. - DiagnosticOptions *DiagOpts = new DiagnosticOptions(Opts); - TextDiagnostic Diag(OS, LangOpts, DiagOpts); + TextDiagnostic Diag(OS, LangOpts, Opts); // Emit a dummy diagnostic that is just 'message'. Diag.emitDiagnostic(Loc, DiagnosticsEngine::Level::Warning, "message", /*Ranges=*/{}, /*FixItHints=*/{}); @@ -38,7 +37,8 @@ TEST(TextDiagnostic, ShowLine) { FileSystemOptions FSOpts; FileManager FileMgr(FSOpts); IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs); - DiagnosticsEngine DiagEngine(DiagID, new DiagnosticOptions, + DiagnosticOptions DiagEngineOpts; + DiagnosticsEngine DiagEngine(DiagID, DiagEngineOpts, new IgnoringDiagConsumer()); SourceManager SrcMgr(DiagEngine, FileMgr); diff --git a/clang/unittests/Frontend/UtilsTest.cpp b/clang/unittests/Frontend/UtilsTest.cpp index 47ca321..cf385a5 100644 --- a/clang/unittests/Frontend/UtilsTest.cpp +++ b/clang/unittests/Frontend/UtilsTest.cpp @@ -26,11 +26,12 @@ TEST(BuildCompilerInvocationTest, RecoverMultipleJobs) { std::vector<const char *> Args = {"clang", "--target=macho", "-arch", "i386", "-arch", "x86_64", "foo.cpp"}; clang::IgnoringDiagConsumer D; + clang::DiagnosticOptions DiagOpts; CreateInvocationOptions Opts; Opts.RecoverOnError = true; Opts.VFS = new llvm::vfs::InMemoryFileSystem(); - Opts.Diags = clang::CompilerInstance::createDiagnostics( - *Opts.VFS, new DiagnosticOptions, &D, false); + Opts.Diags = clang::CompilerInstance::createDiagnostics(*Opts.VFS, DiagOpts, + &D, false); std::unique_ptr<CompilerInvocation> CI = createInvocation(Args, Opts); ASSERT_TRUE(CI); EXPECT_THAT(CI->getTargetOpts().Triple, testing::StartsWith("i386-")); @@ -45,9 +46,9 @@ TEST(BuildCompilerInvocationTest, ProbePrecompiled) { FS->addFile("foo.h.pch", 0, llvm::MemoryBuffer::getMemBuffer("")); clang::IgnoringDiagConsumer D; + clang::DiagnosticOptions DiagOpts; llvm::IntrusiveRefCntPtr<DiagnosticsEngine> CommandLineDiagsEngine = - clang::CompilerInstance::createDiagnostics(*FS, new DiagnosticOptions, &D, - false); + clang::CompilerInstance::createDiagnostics(*FS, DiagOpts, &D, false); // Default: ProbePrecompiled=false CreateInvocationOptions CIOpts; CIOpts.Diags = CommandLineDiagsEngine; diff --git a/clang/unittests/Interpreter/InterpreterTest.cpp b/clang/unittests/Interpreter/InterpreterTest.cpp index 03b9c33..b97f5ae 100644 --- a/clang/unittests/Interpreter/InterpreterTest.cpp +++ b/clang/unittests/Interpreter/InterpreterTest.cpp @@ -95,8 +95,9 @@ TEST_F(InterpreterTest, Errors) { // Create the diagnostic engine with unowned consumer. std::string DiagnosticOutput; llvm::raw_string_ostream DiagnosticsOS(DiagnosticOutput); - auto DiagPrinter = std::make_unique<TextDiagnosticPrinter>( - DiagnosticsOS, new DiagnosticOptions()); + DiagnosticOptions DiagOpts; + auto DiagPrinter = + std::make_unique<TextDiagnosticPrinter>(DiagnosticsOS, DiagOpts); auto Interp = createInterpreter(ExtraArgs, DiagPrinter.get()); auto Err = Interp->Parse("intentional_error v1 = 42; ").takeError(); @@ -126,8 +127,9 @@ TEST_F(InterpreterTest, DeclsAndStatements) { // Create the diagnostic engine with unowned consumer. std::string DiagnosticOutput; llvm::raw_string_ostream DiagnosticsOS(DiagnosticOutput); - auto DiagPrinter = std::make_unique<TextDiagnosticPrinter>( - DiagnosticsOS, new DiagnosticOptions()); + DiagnosticOptions DiagOpts; + auto DiagPrinter = + std::make_unique<TextDiagnosticPrinter>(DiagnosticsOS, DiagOpts); auto Interp = createInterpreter(ExtraArgs, DiagPrinter.get()); auto R1 = Interp->Parse( @@ -148,8 +150,9 @@ TEST_F(InterpreterTest, UndoCommand) { // Create the diagnostic engine with unowned consumer. std::string DiagnosticOutput; llvm::raw_string_ostream DiagnosticsOS(DiagnosticOutput); - auto DiagPrinter = std::make_unique<TextDiagnosticPrinter>( - DiagnosticsOS, new DiagnosticOptions()); + DiagnosticOptions DiagOpts; + auto DiagPrinter = + std::make_unique<TextDiagnosticPrinter>(DiagnosticsOS, DiagOpts); auto Interp = createInterpreter(ExtraArgs, DiagPrinter.get()); diff --git a/clang/unittests/Lex/HeaderSearchTest.cpp b/clang/unittests/Lex/HeaderSearchTest.cpp index b889626..9903c12 100644 --- a/clang/unittests/Lex/HeaderSearchTest.cpp +++ b/clang/unittests/Lex/HeaderSearchTest.cpp @@ -30,7 +30,7 @@ protected: HeaderSearchTest() : VFS(new llvm::vfs::InMemoryFileSystem), FileMgr(FileMgrOpts, VFS), DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions), Search(HSOpts, SourceMgr, Diags, LangOpts, Target.get()) { TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; @@ -81,6 +81,7 @@ protected: FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; diff --git a/clang/unittests/Lex/LexerTest.cpp b/clang/unittests/Lex/LexerTest.cpp index 9806d4c..381755d 100644 --- a/clang/unittests/Lex/LexerTest.cpp +++ b/clang/unittests/Lex/LexerTest.cpp @@ -41,12 +41,9 @@ using testing::ElementsAre; class LexerTest : public ::testing::Test { protected: LexerTest() - : FileMgr(FileMgrOpts), - DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), - SourceMgr(Diags, FileMgr), - TargetOpts(new TargetOptions) - { + : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), + SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); } @@ -104,6 +101,7 @@ protected: FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; diff --git a/clang/unittests/Lex/ModuleDeclStateTest.cpp b/clang/unittests/Lex/ModuleDeclStateTest.cpp index 6fbc6bf..6ecba4d 100644 --- a/clang/unittests/Lex/ModuleDeclStateTest.cpp +++ b/clang/unittests/Lex/ModuleDeclStateTest.cpp @@ -55,7 +55,7 @@ class ModuleDeclStateTest : public ::testing::Test { protected: ModuleDeclStateTest() : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { TargetOpts->Triple = "x86_64-unknown-linux-gnu"; Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); @@ -94,6 +94,7 @@ protected: FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; std::shared_ptr<TargetOptions> TargetOpts; diff --git a/clang/unittests/Lex/PPCallbacksTest.cpp b/clang/unittests/Lex/PPCallbacksTest.cpp index c2a84d9..af86c18 100644 --- a/clang/unittests/Lex/PPCallbacksTest.cpp +++ b/clang/unittests/Lex/PPCallbacksTest.cpp @@ -135,8 +135,8 @@ protected: PPCallbacksTest() : InMemoryFileSystem(new llvm::vfs::InMemoryFileSystem), FileMgr(FileSystemOptions(), InMemoryFileSystem), - DiagID(new DiagnosticIDs()), DiagOpts(new DiagnosticOptions()), - Diags(DiagID, DiagOpts.get(), new IgnoringDiagConsumer()), + DiagID(new DiagnosticIDs()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions()) { TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); @@ -145,7 +145,7 @@ protected: IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; @@ -437,7 +437,7 @@ TEST_F(PPCallbacksTest, FileNotFoundSkipped) { HeaderSearch HeaderInfo(HSOpts, SourceMgr, Diags, LangOpts, Target.get()); DiagnosticConsumer *DiagConsumer = new DiagnosticConsumer; - DiagnosticsEngine FileNotFoundDiags(DiagID, DiagOpts.get(), DiagConsumer); + DiagnosticsEngine FileNotFoundDiags(DiagID, DiagOpts, DiagConsumer); Preprocessor PP(PPOpts, FileNotFoundDiags, LangOpts, SourceMgr, HeaderInfo, ModLoader, /*IILookup=*/nullptr, /*OwnsHeaderSearch=*/false); PP.Initialize(*Target); diff --git a/clang/unittests/Lex/PPConditionalDirectiveRecordTest.cpp b/clang/unittests/Lex/PPConditionalDirectiveRecordTest.cpp index 5c3ce6f..54c1d02 100644 --- a/clang/unittests/Lex/PPConditionalDirectiveRecordTest.cpp +++ b/clang/unittests/Lex/PPConditionalDirectiveRecordTest.cpp @@ -29,12 +29,9 @@ namespace { class PPConditionalDirectiveRecordTest : public ::testing::Test { protected: PPConditionalDirectiveRecordTest() - : FileMgr(FileMgrOpts), - DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), - SourceMgr(Diags, FileMgr), - TargetOpts(new TargetOptions) - { + : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), + SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); } @@ -42,6 +39,7 @@ protected: FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; diff --git a/clang/unittests/Lex/PPDependencyDirectivesTest.cpp b/clang/unittests/Lex/PPDependencyDirectivesTest.cpp index 74e3c00..061cb13 100644 --- a/clang/unittests/Lex/PPDependencyDirectivesTest.cpp +++ b/clang/unittests/Lex/PPDependencyDirectivesTest.cpp @@ -32,7 +32,7 @@ class PPDependencyDirectivesTest : public ::testing::Test { protected: PPDependencyDirectivesTest() : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { TargetOpts->Triple = "x86_64-apple-macos12"; Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); @@ -41,6 +41,7 @@ protected: FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; diff --git a/clang/unittests/Lex/PPMemoryAllocationsTest.cpp b/clang/unittests/Lex/PPMemoryAllocationsTest.cpp index 304a66a..4d83003 100644 --- a/clang/unittests/Lex/PPMemoryAllocationsTest.cpp +++ b/clang/unittests/Lex/PPMemoryAllocationsTest.cpp @@ -28,7 +28,7 @@ class PPMemoryAllocationsTest : public ::testing::Test { protected: PPMemoryAllocationsTest() : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), - Diags(DiagID, new DiagnosticOptions, new IgnoringDiagConsumer()), + Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); @@ -37,6 +37,7 @@ protected: FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diags; SourceManager SourceMgr; LangOptions LangOpts; diff --git a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp index 7d03dda..912e96e 100644 --- a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp +++ b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp @@ -67,8 +67,7 @@ class ParseHLSLRootSignatureTest : public ::testing::Test { protected: ParseHLSLRootSignatureTest() : FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), - Consumer(new ExpectedDiagConsumer()), - Diags(DiagID, new DiagnosticOptions, Consumer), + Consumer(new ExpectedDiagConsumer()), Diags(DiagID, DiagOpts, Consumer), SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { // This is an arbitrarily chosen target triple to create the target info. TargetOpts->Triple = "dxil"; @@ -95,6 +94,7 @@ protected: FileSystemOptions FileMgrOpts; FileManager FileMgr; IntrusiveRefCntPtr<DiagnosticIDs> DiagID; + DiagnosticOptions DiagOpts; ExpectedDiagConsumer *Consumer; DiagnosticsEngine Diags; SourceManager SourceMgr; diff --git a/clang/unittests/Sema/SemaNoloadLookupTest.cpp b/clang/unittests/Sema/SemaNoloadLookupTest.cpp index c68a71a..5a04f42 100644 --- a/clang/unittests/Sema/SemaNoloadLookupTest.cpp +++ b/clang/unittests/Sema/SemaNoloadLookupTest.cpp @@ -59,9 +59,9 @@ public: CreateInvocationOptions CIOpts; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*CIOpts.VFS, DiagOpts); CIOpts.Diags = Diags; std::string CacheBMIPath = diff --git a/clang/unittests/Serialization/ForceCheckFileInputTest.cpp b/clang/unittests/Serialization/ForceCheckFileInputTest.cpp index 16742a6..970eeef 100644 --- a/clang/unittests/Serialization/ForceCheckFileInputTest.cpp +++ b/clang/unittests/Serialization/ForceCheckFileInputTest.cpp @@ -66,9 +66,9 @@ export int aa = 43; CreateInvocationOptions CIOpts; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*CIOpts.VFS, DiagOpts); CIOpts.Diags = Diags; const char *Args[] = {"clang++", "-std=c++20", @@ -106,9 +106,9 @@ export int aa = 43; { CreateInvocationOptions CIOpts; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*CIOpts.VFS, DiagOpts); CIOpts.Diags = Diags; std::string BMIPath = llvm::Twine(TestDir + "/a.pcm").str(); diff --git a/clang/unittests/Serialization/LoadSpecLazilyTest.cpp b/clang/unittests/Serialization/LoadSpecLazilyTest.cpp index d62d669..6315474 100644 --- a/clang/unittests/Serialization/LoadSpecLazilyTest.cpp +++ b/clang/unittests/Serialization/LoadSpecLazilyTest.cpp @@ -53,8 +53,9 @@ public: IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = llvm::vfs::createPhysicalFileSystem(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*VFS, DiagOpts); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; CIOpts.VFS = VFS; diff --git a/clang/unittests/Serialization/ModuleCacheTest.cpp b/clang/unittests/Serialization/ModuleCacheTest.cpp index 38003e9..de6e13a 100644 --- a/clang/unittests/Serialization/ModuleCacheTest.cpp +++ b/clang/unittests/Serialization/ModuleCacheTest.cpp @@ -108,8 +108,9 @@ TEST_F(ModuleCacheTest, CachedModuleNewPath) { MCPArg.append(ModuleCachePath); CreateInvocationOptions CIOpts; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*CIOpts.VFS, DiagOpts); CIOpts.Diags = Diags; // First run should pass with no errors @@ -157,8 +158,9 @@ TEST_F(ModuleCacheTest, CachedModuleNewPathAllowErrors) { MCPArg.append(ModuleCachePath); CreateInvocationOptions CIOpts; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*CIOpts.VFS, DiagOpts); CIOpts.Diags = Diags; // First run should pass with no errors diff --git a/clang/unittests/Serialization/NoCommentsTest.cpp b/clang/unittests/Serialization/NoCommentsTest.cpp index 3aaaa54..05efeef 100644 --- a/clang/unittests/Serialization/NoCommentsTest.cpp +++ b/clang/unittests/Serialization/NoCommentsTest.cpp @@ -85,8 +85,9 @@ void foo() {} CreateInvocationOptions CIOpts; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*CIOpts.VFS, DiagOpts); CIOpts.Diags = Diags; std::string CacheBMIPath = llvm::Twine(TestDir + "/Comments.pcm").str(); diff --git a/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp b/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp index 7a037d2..c43520f 100644 --- a/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp +++ b/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp @@ -77,8 +77,9 @@ export using ::E; IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = llvm::vfs::createPhysicalFileSystem(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*VFS, DiagOpts); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; diff --git a/clang/unittests/Serialization/VarDeclConstantInitTest.cpp b/clang/unittests/Serialization/VarDeclConstantInitTest.cpp index 33c3c6b..5b2988e 100644 --- a/clang/unittests/Serialization/VarDeclConstantInitTest.cpp +++ b/clang/unittests/Serialization/VarDeclConstantInitTest.cpp @@ -92,8 +92,9 @@ export namespace Fibonacci CreateInvocationOptions CIOpts; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*CIOpts.VFS, DiagOpts); CIOpts.Diags = Diags; const char *Args[] = {"clang++", "-std=c++20", diff --git a/clang/unittests/Support/TimeProfilerTest.cpp b/clang/unittests/Support/TimeProfilerTest.cpp index a92b0eb1..85d36b5 100644 --- a/clang/unittests/Support/TimeProfilerTest.cpp +++ b/clang/unittests/Support/TimeProfilerTest.cpp @@ -58,9 +58,9 @@ bool compileFromString(StringRef Code, StringRef Standard, StringRef File, auto Invocation = std::make_shared<CompilerInvocation>(); std::vector<const char *> Args = {Standard.data(), File.data()}; - auto InvocationDiagOpts = llvm::makeIntrusiveRefCnt<DiagnosticOptions>(); + DiagnosticOptions InvocationDiagOpts; auto InvocationDiags = - CompilerInstance::createDiagnostics(*FS, InvocationDiagOpts.get()); + CompilerInstance::createDiagnostics(*FS, InvocationDiagOpts); CompilerInvocation::CreateFromArgs(*Invocation, Args, *InvocationDiags); CompilerInstance Compiler(std::move(Invocation)); diff --git a/clang/unittests/Tooling/RewriterTestContext.h b/clang/unittests/Tooling/RewriterTestContext.h index b7aa1a1..2d697e2 100644 --- a/clang/unittests/Tooling/RewriterTestContext.h +++ b/clang/unittests/Tooling/RewriterTestContext.h @@ -49,9 +49,8 @@ struct RewriterDiagnosticConsumer : public DiagnosticConsumer { class RewriterTestContext { public: RewriterTestContext() - : DiagOpts(new DiagnosticOptions()), - Diagnostics(IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), - &*DiagOpts), + : Diagnostics(IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), + DiagOpts), InMemoryFileSystem(new llvm::vfs::InMemoryFileSystem), OverlayFileSystem( new llvm::vfs::OverlayFileSystem(llvm::vfs::getRealFileSystem())), @@ -61,7 +60,7 @@ class RewriterTestContext { // FIXME: To make these tests truly in-memory, we need to overlay the // builtin headers. OverlayFileSystem->pushOverlay(InMemoryFileSystem); - } + } ~RewriterTestContext() {} @@ -124,7 +123,7 @@ class RewriterTestContext { return std::string((*FileBuffer)->getBuffer()); } - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; + DiagnosticOptions DiagOpts; DiagnosticsEngine Diagnostics; RewriterDiagnosticConsumer DiagnosticPrinter; IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem; diff --git a/clang/unittests/Tooling/Syntax/TokensTest.cpp b/clang/unittests/Tooling/Syntax/TokensTest.cpp index d42273b..b5f4445 100644 --- a/clang/unittests/Tooling/Syntax/TokensTest.cpp +++ b/clang/unittests/Tooling/Syntax/TokensTest.cpp @@ -248,8 +248,9 @@ public: } // Data fields. + DiagnosticOptions DiagOpts; llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - new DiagnosticsEngine(new DiagnosticIDs, new DiagnosticOptions); + new DiagnosticsEngine(new DiagnosticIDs, DiagOpts); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS = new llvm::vfs::InMemoryFileSystem; llvm::IntrusiveRefCntPtr<FileManager> FileMgr = diff --git a/clang/unittests/Tooling/Syntax/TreeTestBase.cpp b/clang/unittests/Tooling/Syntax/TreeTestBase.cpp index 7710a9c..9f22b1d 100644 --- a/clang/unittests/Tooling/Syntax/TreeTestBase.cpp +++ b/clang/unittests/Tooling/Syntax/TreeTestBase.cpp @@ -126,7 +126,7 @@ SyntaxTreeTest::buildTree(StringRef Code, const TestClangConfig &ClangConfig) { FS->addFile(FileName, time_t(), llvm::MemoryBuffer::getMemBufferCopy("")); if (!Diags->getClient()) - Diags->setClient(new TextDiagnosticPrinter(llvm::errs(), DiagOpts.get())); + Diags->setClient(new TextDiagnosticPrinter(llvm::errs(), DiagOpts)); Diags->setSeverityForGroup(diag::Flavor::WarningOrError, "unused-value", diag::Severity::Ignored, SourceLocation()); diff --git a/clang/unittests/Tooling/Syntax/TreeTestBase.h b/clang/unittests/Tooling/Syntax/TreeTestBase.h index 1176f45..6110cff 100644 --- a/clang/unittests/Tooling/Syntax/TreeTestBase.h +++ b/clang/unittests/Tooling/Syntax/TreeTestBase.h @@ -40,9 +40,9 @@ protected: syntax::Node *nodeByRange(llvm::Annotations::Range R, syntax::Node *Root); // Data fields. - IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - new DiagnosticsEngine(new DiagnosticIDs, DiagOpts.get()); + new DiagnosticsEngine(new DiagnosticIDs, DiagOpts); IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS = new llvm::vfs::InMemoryFileSystem; IntrusiveRefCntPtr<FileManager> FileMgr = diff --git a/clang/unittests/Tooling/ToolingTest.cpp b/clang/unittests/Tooling/ToolingTest.cpp index cfa021a..32af4b6 100644 --- a/clang/unittests/Tooling/ToolingTest.cpp +++ b/clang/unittests/Tooling/ToolingTest.cpp @@ -294,8 +294,8 @@ TEST(ToolInvocation, CustomDiagnosticOptionsOverwriteParsedOnes) { Invocation.setDiagnosticConsumer(&Consumer); // Inject custom `DiagnosticOptions` for command-line parsing. - auto DiagOpts = llvm::makeIntrusiveRefCnt<DiagnosticOptions>(); - Invocation.setDiagnosticOptions(&*DiagOpts); + DiagnosticOptions DiagOpts; + Invocation.setDiagnosticOptions(&DiagOpts); EXPECT_TRUE(Invocation.run()); // Check that the warning was issued during command-line parsing due to the @@ -392,14 +392,14 @@ overlayRealFS(llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS) { struct CommandLineExtractorTest : public ::testing::Test { llvm::IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFS; + DiagnosticOptions DiagOpts; llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diags; driver::Driver Driver; public: CommandLineExtractorTest() : InMemoryFS(new llvm::vfs::InMemoryFileSystem), - Diags(CompilerInstance::createDiagnostics(*InMemoryFS, - new DiagnosticOptions)), + Diags(CompilerInstance::createDiagnostics(*InMemoryFS, DiagOpts)), Driver("clang", llvm::sys::getDefaultTargetTriple(), *Diags, "clang LLVM compiler", overlayRealFS(InMemoryFS)) {} |