update to match llvm mainline api


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41926 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CGExprScalar.cpp b/CodeGen/CGExprScalar.cpp
index 62137b0..319ca82 100644
--- a/CodeGen/CGExprScalar.cpp
+++ b/CodeGen/CGExprScalar.cpp
@@ -474,9 +474,16 @@
     // Add the inc/dec to the real part.
     if (isa<llvm::IntegerType>(InVal->getType()))
       NextVal = llvm::ConstantInt::get(InVal->getType(), AmountVal);
-    else
-      NextVal = llvm::ConstantFP::get(InVal->getType(), 
-                                      static_cast<double>(AmountVal));
+    else if (InVal->getType() == llvm::Type::FloatTy)
+      // FIXME: Handle long double.
+      NextVal = llvm::ConstantFP::get(InVal->getType(),
+                                    llvm::APFloat(static_cast<float>(AmountVal)));
+    else {
+      // FIXME: Handle long double.
+      assert(InVal->getType() == llvm::Type::DoubleTy);
+      NextVal = llvm::ConstantFP::get(InVal->getType(),
+                                      llvm::APFloat(static_cast<double>(AmountVal)));
+    }
     NextVal = Builder.CreateAdd(InVal, NextVal, isInc ? "inc" : "dec");
   }