diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index 3a0fbe99b9b..f318764b026 100644
--- a/lib/Target/CBackend/CBackend.cpp
+++ b/lib/Target/CBackend/CBackend.cpp
@@ -778,11 +778,12 @@ void CWriter::printFunction(Function *F) {
           Out << "  const ConstantDoubleTy FloatConstant" << FPCounter++
               << " = 0x" << std::hex << *(unsigned long long*)&Val << std::dec
               << ";    /* " << Val << " */\n";
-        else if (FPC->getType() == Type::FloatTy)
+        else if (FPC->getType() == Type::FloatTy) {
+          float fVal = Val;
           Out << "  const ConstantFloatTy FloatConstant" << FPCounter++
-              << " = 0x" << std::hex << *(unsigned*)&Val << std::dec
+              << " = 0x" << std::hex << *(unsigned*)&fVal << std::dec
               << ";    /* " << Val << " */\n";
-        else
+        } else
           assert(0 && "Unknown float type!");
       }
 
diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp
index 3a0fbe99b9b..f318764b026 100644
--- a/lib/Target/CBackend/Writer.cpp
+++ b/lib/Target/CBackend/Writer.cpp
@@ -778,11 +778,12 @@ void CWriter::printFunction(Function *F) {
           Out << "  const ConstantDoubleTy FloatConstant" << FPCounter++
               << " = 0x" << std::hex << *(unsigned long long*)&Val << std::dec
               << ";    /* " << Val << " */\n";
-        else if (FPC->getType() == Type::FloatTy)
+        else if (FPC->getType() == Type::FloatTy) {
+          float fVal = Val;
           Out << "  const ConstantFloatTy FloatConstant" << FPCounter++
-              << " = 0x" << std::hex << *(unsigned*)&Val << std::dec
+              << " = 0x" << std::hex << *(unsigned*)&fVal << std::dec
               << ";    /* " << Val << " */\n";
-        else
+        } else
           assert(0 && "Unknown float type!");
       }