diff options
| author | Chris Lattner <sabre@nondot.org> | 2007-09-13 06:19:18 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2007-09-13 06:19:18 +0000 |
| commit | d3d8aca074f3b04608fe103d8a9d41a8135e5514 (patch) | |
| tree | bd1d2e99f7be3dd20363c38124d0062f16ae6b8f /clang/CodeGen/CGExprScalar.cpp | |
| parent | 3fd6bf8275e1807f44cf05123a47f67927891a85 (diff) | |
| download | bcm5719-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.cpp | 13 |
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"); } |

