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/CGExprComplex.cpp b/CodeGen/CGExprComplex.cpp
index 067d289..8dfe244 100644
--- a/CodeGen/CGExprComplex.cpp
+++ b/CodeGen/CGExprComplex.cpp
@@ -301,9 +301,16 @@
   llvm::Value *NextVal;
   if (isa<llvm::IntegerType>(InVal.first->getType()))
     NextVal = llvm::ConstantInt::get(InVal.first->getType(), AmountVal);
-  else
+  else if (InVal.first->getType() == llvm::Type::FloatTy)
+    // FIXME: Handle long double.
     NextVal = llvm::ConstantFP::get(InVal.first->getType(), 
-                                    static_cast<double>(AmountVal));
+                                    llvm::APFloat(static_cast<float>(AmountVal)));
+  else {
+    // FIXME: Handle long double.
+    assert(InVal.first->getType() == llvm::Type::DoubleTy);
+    NextVal = llvm::ConstantFP::get(InVal.first->getType(), 
+                                    llvm::APFloat(static_cast<double>(AmountVal)));
+  }
   
   // Add the inc/dec to the real part.
   NextVal = Builder.CreateAdd(InVal.first, NextVal, isInc ? "inc" : "dec");