summaryrefslogtreecommitdiffstats
path: root/clang/CodeGen/CGExprScalar.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-09-13 06:19:18 +0000
committerChris Lattner <sabre@nondot.org>2007-09-13 06:19:18 +0000
commitd3d8aca074f3b04608fe103d8a9d41a8135e5514 (patch)
treebd1d2e99f7be3dd20363c38124d0062f16ae6b8f /clang/CodeGen/CGExprScalar.cpp
parent3fd6bf8275e1807f44cf05123a47f67927891a85 (diff)
downloadbcm5719-llvm-d3d8aca074f3b04608fe103d8a9d41a8135e5514.tar.gz
bcm5719-llvm-d3d8aca074f3b04608fe103d8a9d41a8135e5514.zip
update to match llvm mainline api
llvm-svn: 41926
Diffstat (limited to 'clang/CodeGen/CGExprScalar.cpp')
-rw-r--r--clang/CodeGen/CGExprScalar.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/clang/CodeGen/CGExprScalar.cpp b/clang/CodeGen/CGExprScalar.cpp
index 62137b03b7d..319ca82bf89 100644
--- a/clang/CodeGen/CGExprScalar.cpp
+++ b/clang/CodeGen/CGExprScalar.cpp
@@ -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");
}
OpenPOWER on IntegriCloud