fix leakage of APFloats in getExistingVal()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58696 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nuno Lopes 2008-11-04 14:42:19 +00:00
parent 1983033820
commit b0c53da1e1
2 changed files with 7 additions and 1 deletions

View File

@ -152,6 +152,8 @@ struct ValID {
delete IAD; delete IAD;
else if (Type == ConstAPInt) else if (Type == ConstAPInt)
delete ConstPoolInt; delete ConstPoolInt;
else if (Type == ConstFPVal)
delete ConstPoolFP;
} }
inline ValID copy() const { 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, D.ConstPoolFP->convert(APFloat::IEEEsingle, APFloat::rmNearestTiesToEven,
&ignored); &ignored);
} }
return ConstantFP::get(*D.ConstPoolFP); {
ConstantFP *tmp = ConstantFP::get(*D.ConstPoolFP);
D.destroy();
return tmp;
}
case ValID::ConstNullVal: // Is it a null value? case ValID::ConstNullVal: // Is it a null value?
if (!isa<PointerType>(Ty)) { if (!isa<PointerType>(Ty)) {