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