diff --git a/lib/Target/CppBackend/CPPBackend.cpp b/lib/Target/CppBackend/CPPBackend.cpp index ffb805691fa..6adb73ae259 100644 --- a/lib/Target/CppBackend/CPPBackend.cpp +++ b/lib/Target/CppBackend/CPPBackend.cpp @@ -359,9 +359,10 @@ namespace { unsigned BitWidth = cast(Ty)->getBitWidth(); return "IntegerType::get(" + utostr(BitWidth) + ")"; } - case Type::FloatTyID: return "Type::FloatTy"; - case Type::DoubleTyID: return "Type::DoubleTy"; - case Type::LabelTyID: return "Type::LabelTy"; + case Type::X86_FP80TyID: return "Type::X86_FP80Ty"; + case Type::FloatTyID: return "Type::FloatTy"; + case Type::DoubleTyID: return "Type::DoubleTy"; + case Type::LabelTyID: return "Type::LabelTy"; default: error("Invalid primitive type"); break; diff --git a/test/CodeGen/CPP/2009-05-01-Long-Double.ll b/test/CodeGen/CPP/2009-05-01-Long-Double.ll new file mode 100644 index 00000000000..9d132ec00f7 --- /dev/null +++ b/test/CodeGen/CPP/2009-05-01-Long-Double.ll @@ -0,0 +1,13 @@ +; RUN: llvm-as < %s | llc -march=cpp -cppgen=program -f -o %t + +define x86_fp80 @some_func() nounwind { +entry: + %retval = alloca x86_fp80 ; [#uses=2] + %call = call i32 (...)* @other_func() ; [#uses=1] + %conv = sitofp i32 %call to x86_fp80 ; [#uses=1] + store x86_fp80 %conv, x86_fp80* %retval + %0 = load x86_fp80* %retval ; [#uses=1] + ret x86_fp80 %0 +} + +declare i32 @other_func(...)