From 13e1a2cb2246dc5e9a4afcdacabed4d43154ec3f Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 22 May 2025 12:51:28 -0700 Subject: 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. --- clang/unittests/Driver/ToolChainTest.cpp | 71 ++++++++++++++++---------------- 1 file changed, 36 insertions(+), 35 deletions(-) (limited to 'clang/unittests/Driver/ToolChainTest.cpp') 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 DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr 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 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 C(TheDriver.BuildCompilation( @@ -134,11 +135,11 @@ TEST(ToolChainTest, VFSGCCInstallation) { } TEST(ToolChainTest, VFSGCCInstallationRelativeDir) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr 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 DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr 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 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 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 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 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 C( @@ -337,7 +338,7 @@ MATCHER_P(jobHasArgs, Substr, "") { } TEST(ToolChainTest, VFSGnuLibcxxPathNoSysroot) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr 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 C(TheDriver.BuildCompilation( @@ -368,11 +369,11 @@ TEST(ToolChainTest, VFSGnuLibcxxPathNoSysroot) { } TEST(ToolChainTest, DefaultDriverMode) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr InMemoryFileSystem( new llvm::vfs::InMemoryFileSystem); @@ -403,8 +404,8 @@ TEST(ToolChainTest, DefaultDriverMode) { TEST(ToolChainTest, InvalidArgument) { IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - IntrusiveRefCntPtr 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 C(TheDriver.BuildCompilation( {"-fsyntax-only", "-fan-unknown-option", "foo.cpp"})); @@ -514,11 +515,11 @@ TEST(ToolChainTest, GetTargetAndMode) { } TEST(ToolChainTest, CommandOutput) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr InMemoryFileSystem( new llvm::vfs::InMemoryFileSystem); @@ -543,10 +544,10 @@ TEST(ToolChainTest, CommandOutput) { } TEST(ToolChainTest, PostCallback) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr InMemoryFileSystem( new llvm::vfs::InMemoryFileSystem); @@ -596,10 +597,10 @@ TEST(ToolChainTest, UEFICallingConventionTest) { } TEST(ToolChainTest, UEFIDefaultDebugFormatTest) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr 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 DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr FS( new llvm::vfs::InMemoryFileSystem); @@ -715,11 +716,11 @@ struct FileSystemWithError : public llvm::vfs::FileSystem { }; TEST(ToolChainTest, ConfigFileError) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); std::unique_ptr DiagConsumer( new SimpleDiagnosticConsumer()); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer.get(), false); + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); IntrusiveRefCntPtr FS(new FileSystemWithError); Driver TheDriver("/home/test/bin/clang", "arm-linux-gnueabi", Diags, @@ -736,11 +737,11 @@ TEST(ToolChainTest, ConfigFileError) { } TEST(ToolChainTest, BadConfigFile) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); std::unique_ptr DiagConsumer( new SimpleDiagnosticConsumer()); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer.get(), false); + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); IntrusiveRefCntPtr FS( new llvm::vfs::InMemoryFileSystem); @@ -810,11 +811,11 @@ TEST(ToolChainTest, BadConfigFile) { } TEST(ToolChainTest, ConfigInexistentInclude) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); std::unique_ptr DiagConsumer( new SimpleDiagnosticConsumer()); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer.get(), false); + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); IntrusiveRefCntPtr FS( new llvm::vfs::InMemoryFileSystem); @@ -851,11 +852,11 @@ TEST(ToolChainTest, ConfigInexistentInclude) { } TEST(ToolChainTest, ConfigRecursiveInclude) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); std::unique_ptr DiagConsumer( new SimpleDiagnosticConsumer()); - DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer.get(), false); + DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); IntrusiveRefCntPtr FS( new llvm::vfs::InMemoryFileSystem); @@ -897,10 +898,10 @@ TEST(ToolChainTest, ConfigRecursiveInclude) { } TEST(ToolChainTest, NestedConfigFile) { - IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); + DiagnosticOptions DiagOpts; IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); struct TestDiagnosticConsumer : public DiagnosticConsumer {}; - DiagnosticsEngine Diags(DiagID, &*DiagOpts, new TestDiagnosticConsumer); + DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); IntrusiveRefCntPtr FS( new llvm::vfs::InMemoryFileSystem); -- cgit v1.1