[clang] 96ed679 - [unittest][TrasnformerTest] Fix asan stack-use-after-return

Fangrui Song via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 3 12:34:52 PST 2020


Author: Fangrui Song
Date: 2020-11-03T12:34:45-08:00
New Revision: 96ed6793b35e8267b0c94ebe69ae94f07024f476

URL: https://github.com/llvm/llvm-project/commit/96ed6793b35e8267b0c94ebe69ae94f07024f476
DIFF: https://github.com/llvm/llvm-project/commit/96ed6793b35e8267b0c94ebe69ae94f07024f476.diff

LOG: [unittest][TrasnformerTest] Fix asan stack-use-after-return

Added: 
    

Modified: 
    clang/unittests/Tooling/TransformerTest.cpp

Removed: 
    


################################################################################
diff  --git a/clang/unittests/Tooling/TransformerTest.cpp b/clang/unittests/Tooling/TransformerTest.cpp
index 46f1d63752d8..1f0637446a00 100644
--- a/clang/unittests/Tooling/TransformerTest.cpp
+++ b/clang/unittests/Tooling/TransformerTest.cpp
@@ -126,11 +126,14 @@ class ClangRefactoringTestBase : public testing::Test {
 
   template <typename R>
   void testRule(R Rule, StringRef Input, StringRef Expected) {
-    Transformer T(std::move(Rule), consumer());
-    T.registerMatchers(&MatchFinder);
+    Transformers.push_back(
+        std::make_unique<Transformer>(std::move(Rule), consumer()));
+    Transformers.back()->registerMatchers(&MatchFinder);
     compareSnippets(Expected, rewrite(Input));
   }
 
+  // Transformers are referenced by MatchFinder.
+  std::vector<std::unique_ptr<Transformer>> Transformers;
   clang::ast_matchers::MatchFinder MatchFinder;
   // Records whether any errors occurred in individual changes.
   int ErrorCount = 0;


        


More information about the cfe-commits mailing list