forked from OSchip/llvm-project
parent
1de0c86717
commit
b6d795c1fc
|
@ -626,7 +626,7 @@ bool BitcodeReader::ParseConstants() {
|
|||
if (Record.empty())
|
||||
return Error("Invalid FLOAT record");
|
||||
if (CurTy == Type::FloatTy)
|
||||
V = ConstantFP::get(CurTy, APFloat((float)BitsToDouble(Record[0])));
|
||||
V = ConstantFP::get(CurTy, APFloat(BitsToFloat(Record[0])));
|
||||
else if (CurTy == Type::DoubleTy)
|
||||
V = ConstantFP::get(CurTy, APFloat(BitsToDouble(Record[0])));
|
||||
// FIXME: Make long double constants work. BitsToDouble does not make it.
|
||||
|
|
|
@ -526,10 +526,9 @@ static void WriteConstants(unsigned FirstVal, unsigned LastVal,
|
|||
} else if (const ConstantFP *CFP = dyn_cast<ConstantFP>(C)) {
|
||||
Code = bitc::CST_CODE_FLOAT;
|
||||
const Type *Ty = CFP->getType();
|
||||
if (Ty == Type::FloatTy) {
|
||||
Record.push_back(DoubleToBits((double)CFP->getValueAPF().
|
||||
convertToFloat()));
|
||||
} else if (Ty == Type::DoubleTy) {
|
||||
if (Ty == Type::FloatTy)
|
||||
Record.push_back(FloatToBits(CFP->getValueAPF().convertToFloat()));
|
||||
else if (Ty == Type::DoubleTy) {
|
||||
Record.push_back(DoubleToBits(CFP->getValueAPF().convertToDouble()));
|
||||
// FIXME: make long double constants work.
|
||||
} else if (Ty == Type::X86_FP80Ty ||
|
||||
|
|
Loading…
Reference in New Issue