fix leakage of APFloats in getExistingVal()

llvm-svn: 58696
This commit is contained in:
Nuno Lopes 2008-11-04 14:42:19 +00:00
parent 97a9c81b05
commit 0e92081b04
2 changed files with 7 additions and 1 deletions

View File

@ -152,6 +152,8 @@ struct ValID {
delete IAD;
else if (Type == ConstAPInt)
delete ConstPoolInt;
else if (Type == ConstFPVal)
delete ConstPoolFP;
}
inline ValID copy() const {

View File

@ -437,7 +437,11 @@ static Value *getExistingVal(const Type *Ty, const ValID &D) {
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)) {