[llvm-branch-commits] [clang] aadd03a - [clang][ASTReader] Fix memory leak while reading FriendTemplateDecls

Tom Stellard via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Feb 28 10:54:48 PST 2022


Author: Kadir Cetinkaya
Date: 2022-02-28T10:50:01-08:00
New Revision: aadd03a2accd7af22a9377f5f76b140013f8841d

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

LOG: [clang][ASTReader] Fix memory leak while reading FriendTemplateDecls

Allocate on ASTContext, rather than just on heap, so that template
parameter lists are freed up.

Differential Revision: https://reviews.llvm.org/D120081

(cherry picked from commit 977b1f574fa18219fde5f709b906c79202ef1916)

Added: 
    

Modified: 
    clang/lib/Serialization/ASTReaderDecl.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp
index 1ab26e58a4040..5d63a26132b73 100644
--- a/clang/lib/Serialization/ASTReaderDecl.cpp
+++ b/clang/lib/Serialization/ASTReaderDecl.cpp
@@ -2103,7 +2103,7 @@ void ASTDeclReader::VisitFriendTemplateDecl(FriendTemplateDecl *D) {
   VisitDecl(D);
   unsigned NumParams = Record.readInt();
   D->NumParams = NumParams;
-  D->Params = new TemplateParameterList*[NumParams];
+  D->Params = new (Reader.getContext()) TemplateParameterList *[NumParams];
   for (unsigned i = 0; i != NumParams; ++i)
     D->Params[i] = Record.readTemplateParameterList();
   if (Record.readInt()) // HasFriendDecl


        


More information about the llvm-branch-commits mailing list