Author: Fangrui Song
Date: 2022-06-03T18:43:16-07:00
New Revision: 47ec8b557416682a10970d07f536f9cd303d2c0c

URL: 
https://github.com/llvm/llvm-project/commit/47ec8b557416682a10970d07f536f9cd303d2c0c
DIFF: 
https://github.com/llvm/llvm-project/commit/47ec8b557416682a10970d07f536f9cd303d2c0c.diff

LOG: [pseudo] Fix leaks after D126731

Array Operator new Cookies help lsan find allocations, while std::array
can't.

Added: 
    

Modified: 
    clang-tools-extra/pseudo/lib/grammar/Grammar.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/pseudo/lib/grammar/Grammar.cpp 
b/clang-tools-extra/pseudo/lib/grammar/Grammar.cpp
index d974d807d2547..2be34f8bec683 100644
--- a/clang-tools-extra/pseudo/lib/grammar/Grammar.cpp
+++ b/clang-tools-extra/pseudo/lib/grammar/Grammar.cpp
@@ -168,13 +168,13 @@ std::vector<llvm::DenseSet<SymbolID>> followSets(const 
Grammar &G) {
 
 static llvm::ArrayRef<std::string> getTerminalNames() {
   static const auto &TerminalNames = []() {
-    auto &TerminalNames = *new std::array<std::string, NumTerminals>;
+    auto TerminalNames = new std::string[NumTerminals];
 #define PUNCTUATOR(Tok, Spelling) TerminalNames[tok::Tok] = Spelling;
 #define KEYWORD(Keyword, Condition)                                            
\
   TerminalNames[tok::kw_##Keyword] = llvm::StringRef(#Keyword).upper();
 #define TOK(Tok) TerminalNames[tok::Tok] = llvm::StringRef(#Tok).upper();
 #include "clang/Basic/TokenKinds.def"
-    return TerminalNames;
+    return llvm::makeArrayRef(TerminalNames, NumTerminals);
   }();
   return TerminalNames;
 }


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to