]> granicus.if.org Git - clang/commitdiff
update to match llvm mainline api
authorChris Lattner <sabre@nondot.org>
Thu, 13 Sep 2007 06:19:18 +0000 (06:19 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 13 Sep 2007 06:19:18 +0000 (06:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41926 91177308-0d34-0410-b5e6-96231b3b80d8

CodeGen/CGExprComplex.cpp
CodeGen/CGExprScalar.cpp

index 067d2899ce61f651222709b26438f6e31a31512d..8dfe244a4f28d262773dd09c07c827ee27bc568b 100644 (file)
@@ -301,9 +301,16 @@ ComplexPairTy ComplexExprEmitter::VisitPrePostIncDec(const UnaryOperator *E,
   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");
index 62137b03b7d42d19424c5d8494be18ba27c7b592..319ca82bf89ed5bbe832495a61b7aae57c139ca6 100644 (file)
@@ -474,9 +474,16 @@ Value *ScalarExprEmitter::VisitPrePostIncDec(const UnaryOperator *E,
     // 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");
   }