diff options
author | Dale Johannesen <dalej@apple.com> | 2007-09-26 23:20:33 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2007-09-26 23:20:33 +0000 |
commit | 34aa41c475f1a039300435e257a3bc182336955c (patch) | |
tree | 9b6e03825b4d7835db4d60641f3197c1744e15bf /llvm/lib/Target/CBackend/CBackend.cpp | |
parent | 43b66447f4e27334d14e9da76e787b59b621db9c (diff) | |
download | bcm5719-llvm-34aa41c475f1a039300435e257a3bc182336955c.tar.gz bcm5719-llvm-34aa41c475f1a039300435e257a3bc182336955c.zip |
Make temporaries explicit to avoid premature
destruction of compiler-created ones.
llvm-svn: 42383
Diffstat (limited to 'llvm/lib/Target/CBackend/CBackend.cpp')
-rw-r--r-- | llvm/lib/Target/CBackend/CBackend.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/CBackend/CBackend.cpp b/llvm/lib/Target/CBackend/CBackend.cpp index bc085241d05..6eef297dd66 100644 --- a/llvm/lib/Target/CBackend/CBackend.cpp +++ b/llvm/lib/Target/CBackend/CBackend.cpp @@ -1729,7 +1729,9 @@ void CWriter::printFloatingPointConstants(Function &F) { << " = 0x" << std::hex << i << std::dec << "U; /* " << Val << " */\n"; } else if (FPC->getType() == Type::X86_FP80Ty) { - const uint64_t *p = FPC->getValueAPF().convertToAPInt().getRawData(); + // api needed to prevent premature destruction + APInt api = FPC->getValueAPF().convertToAPInt(); + const uint64_t *p = api.getRawData(); Out << "static const ConstantFP80Ty FPConstant" << FPCounter++ << " = { 0x" << std::hex << ((uint16_t)p[1] | (p[0] & 0xffffffffffffLL)<<16) |