https://github.com/krasimirgg updated https://github.com/llvm/llvm-project/pull/82773
>From 43f8b15fa3e5465f1939d0359ff5dcfc83ed1717 Mon Sep 17 00:00:00 2001 From: Krasimir Georgiev <krasi...@google.com> Date: Fri, 23 Feb 2024 15:11:51 +0000 Subject: [PATCH 1/2] clang serialization unittests: fix some leaks No functional changes intended. Fixes some leaks found by running under asan with --gtest_repeat=2. --- .../Serialization/ModuleCacheTest.cpp | 18 ++++++++++++++---- .../Serialization/VarDeclConstantInitTest.cpp | 1 + 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/clang/unittests/Serialization/ModuleCacheTest.cpp b/clang/unittests/Serialization/ModuleCacheTest.cpp index c3e347ffec660c..76aeee60f5a435 100644 --- a/clang/unittests/Serialization/ModuleCacheTest.cpp +++ b/clang/unittests/Serialization/ModuleCacheTest.cpp @@ -88,6 +88,16 @@ class ModuleCacheTest : public ::testing::Test { } )cpp"); } + + std::unique_ptr<CompilerInvocation> createInvocationAndEnableFree( + ArrayRef<const char *> Args, CreateInvocationOptions Opts) { + std::unique_ptr<CompilerInvocation> Invocation = + createInvocation(Args, Opts); + if (Invocation) + Invocation->getFrontendOpts().DisableFree = false; + + return Invocation; + } }; TEST_F(ModuleCacheTest, CachedModuleNewPath) { @@ -106,7 +116,7 @@ TEST_F(ModuleCacheTest, CachedModuleNewPath) { MCPArg.c_str(), "-working-directory", TestDir.c_str(), "test.m"}; std::shared_ptr<CompilerInvocation> Invocation = - createInvocation(Args, CIOpts); + createInvocationAndEnableFree(Args, CIOpts); ASSERT_TRUE(Invocation); CompilerInstance Instance; Instance.setDiagnostics(Diags.get()); @@ -129,7 +139,7 @@ TEST_F(ModuleCacheTest, CachedModuleNewPath) { "-Fframeworks", MCPArg.c_str(), "-working-directory", TestDir.c_str(), "test.m"}; std::shared_ptr<CompilerInvocation> Invocation2 = - createInvocation(Args2, CIOpts); + createInvocationAndEnableFree(Args2, CIOpts); ASSERT_TRUE(Invocation2); CompilerInstance Instance2(Instance.getPCHContainerOperations(), &Instance.getModuleCache()); @@ -156,7 +166,7 @@ TEST_F(ModuleCacheTest, CachedModuleNewPathAllowErrors) { MCPArg.c_str(), "-working-directory", TestDir.c_str(), "test.m"}; std::shared_ptr<CompilerInvocation> Invocation = - createInvocation(Args, CIOpts); + createInvocationAndEnableFree(Args, CIOpts); ASSERT_TRUE(Invocation); CompilerInstance Instance; Instance.setDiagnostics(Diags.get()); @@ -173,7 +183,7 @@ TEST_F(ModuleCacheTest, CachedModuleNewPathAllowErrors) { TestDir.c_str(), "-Xclang", "-fallow-pcm-with-compiler-errors", "test.m"}; std::shared_ptr<CompilerInvocation> Invocation2 = - createInvocation(Args2, CIOpts); + createInvocationAndEnableFree(Args2, CIOpts); ASSERT_TRUE(Invocation2); CompilerInstance Instance2(Instance.getPCHContainerOperations(), &Instance.getModuleCache()); diff --git a/clang/unittests/Serialization/VarDeclConstantInitTest.cpp b/clang/unittests/Serialization/VarDeclConstantInitTest.cpp index 86ae929e7f17e4..7efa1c1d64a964 100644 --- a/clang/unittests/Serialization/VarDeclConstantInitTest.cpp +++ b/clang/unittests/Serialization/VarDeclConstantInitTest.cpp @@ -103,6 +103,7 @@ export namespace Fibonacci std::shared_ptr<CompilerInvocation> Invocation = createInvocation(Args, CIOpts); ASSERT_TRUE(Invocation); + Invocation->getFrontendOpts().DisableFree = false; CompilerInstance Instance; Instance.setDiagnostics(Diags.get()); >From 4ab1858f489d9222ce114bf8a351ac1e8012ec00 Mon Sep 17 00:00:00 2001 From: Krasimir Georgiev <krasi...@google.com> Date: Fri, 23 Feb 2024 15:20:32 +0000 Subject: [PATCH 2/2] reformat --- clang/unittests/Serialization/ModuleCacheTest.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/unittests/Serialization/ModuleCacheTest.cpp b/clang/unittests/Serialization/ModuleCacheTest.cpp index 76aeee60f5a435..a7ca98549b4125 100644 --- a/clang/unittests/Serialization/ModuleCacheTest.cpp +++ b/clang/unittests/Serialization/ModuleCacheTest.cpp @@ -88,9 +88,10 @@ class ModuleCacheTest : public ::testing::Test { } )cpp"); } - - std::unique_ptr<CompilerInvocation> createInvocationAndEnableFree( - ArrayRef<const char *> Args, CreateInvocationOptions Opts) { + + std::unique_ptr<CompilerInvocation> + createInvocationAndEnableFree(ArrayRef<const char *> Args, + CreateInvocationOptions Opts) { std::unique_ptr<CompilerInvocation> Invocation = createInvocation(Args, Opts); if (Invocation) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits