From: Chris Lattner Date: Sun, 31 Mar 2002 07:16:49 +0000 (+0000) Subject: * Fix nondeleted type handle which could cause type pool corruption (and X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=09c07538a8c99dd69aaa6d129b3a2ed02cfe4329;p=oota-llvm.git * Fix nondeleted type handle which could cause type pool corruption (and a memory leak) * Fix memory leak of Argument nodes on function prototypes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2065 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index 5692bf48e22..3c0bb8f101d 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -1094,6 +1094,7 @@ ConstPool : ConstPool OptAssign CONST ConstVal { (char*)GV->getName().c_str())); } } + delete $6; } | /* empty: end of list */ { } @@ -1224,8 +1225,10 @@ FunctionHeaderH : OptInternal TypesV STRINGCONSTANT '(' ArgList ')' { } else if ($5) { // If we are a declaration, we should free the memory for the argument list! for (list >::iterator I = $5->begin(); - I != $5->end(); ++I) + I != $5->end(); ++I) { if (I->second) free(I->second); // Free the memory for the name... + delete I->first; // Free the unused function argument + } delete $5; // Free the memory for the list itself } }