diff --git a/lib/Bytecode/Writer/ConstantWriter.cpp b/lib/Bytecode/Writer/ConstantWriter.cpp index 5ca0fca0d12..7e2c9307b99 100644 --- a/lib/Bytecode/Writer/ConstantWriter.cpp +++ b/lib/Bytecode/Writer/ConstantWriter.cpp @@ -138,10 +138,16 @@ bool BytecodeWriter::outputConstant(const ConstPoolVal *CPV) { break; } - case Type::FloatTyID: // Floating point types... - case Type::DoubleTyID: - // TODO: Floating point type serialization - + case Type::FloatTyID: { // Floating point types... + float Tmp = (float)((const ConstPoolFP*)CPV)->getValue(); + output_data(&Tmp, &Tmp+1, Out); + break; + } + case Type::DoubleTyID: { + double Tmp = ((const ConstPoolFP*)CPV)->getValue(); + output_data(&Tmp, &Tmp+1, Out); + break; + } case Type::VoidTyID: case Type::LabelTyID: