[llvm-commits] [llvm] r58696 - in /llvm/trunk/lib/AsmParser: ParserInternals.h llvmAsmParser.y

Nuno Lopes nunoplopes at sapo.pt
Tue Nov 4 06:42:20 PST 2008


Author: nlopes
Date: Tue Nov  4 08:42:19 2008
New Revision: 58696

URL: http://llvm.org/viewvc/llvm-project?rev=58696&view=rev
Log:
fix leakage of APFloats in getExistingVal()

Modified:
    llvm/trunk/lib/AsmParser/ParserInternals.h
    llvm/trunk/lib/AsmParser/llvmAsmParser.y

Modified: llvm/trunk/lib/AsmParser/ParserInternals.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/ParserInternals.h?rev=58696&r1=58695&r2=58696&view=diff

==============================================================================
--- llvm/trunk/lib/AsmParser/ParserInternals.h (original)
+++ llvm/trunk/lib/AsmParser/ParserInternals.h Tue Nov  4 08:42:19 2008
@@ -152,6 +152,8 @@
       delete IAD;
     else if (Type == ConstAPInt)
       delete ConstPoolInt;
+    else if (Type == ConstFPVal)
+      delete ConstPoolFP;
   }
 
   inline ValID copy() const {

Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.y
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.y?rev=58696&r1=58695&r2=58696&view=diff

==============================================================================
--- llvm/trunk/lib/AsmParser/llvmAsmParser.y (original)
+++ llvm/trunk/lib/AsmParser/llvmAsmParser.y Tue Nov  4 08:42:19 2008
@@ -437,7 +437,11 @@
       D.ConstPoolFP->convert(APFloat::IEEEsingle, APFloat::rmNearestTiesToEven,
                              &ignored);
     }
-    return ConstantFP::get(*D.ConstPoolFP);
+    {
+      ConstantFP *tmp = ConstantFP::get(*D.ConstPoolFP);
+      D.destroy();
+      return tmp;
+    }
 
   case ValID::ConstNullVal:      // Is it a null value?
     if (!isa<PointerType>(Ty)) {





More information about the llvm-commits mailing list