summaryrefslogtreecommitdiffstats
path: root/clang/CodeGen
diff options
context:
space:
mode:
Diffstat (limited to 'clang/CodeGen')
-rw-r--r--clang/CodeGen/CGExprComplex.cpp5
-rw-r--r--clang/CodeGen/CGExprScalar.cpp3
2 files changed, 5 insertions, 3 deletions
diff --git a/clang/CodeGen/CGExprComplex.cpp b/clang/CodeGen/CGExprComplex.cpp
index 9c02641d1fd..ec5a1bc71af 100644
--- a/clang/CodeGen/CGExprComplex.cpp
+++ b/clang/CodeGen/CGExprComplex.cpp
@@ -296,13 +296,14 @@ ComplexPairTy ComplexExprEmitter::VisitPrePostIncDec(const UnaryOperator *E,
// FIXME: Handle volatile!
ComplexPairTy InVal = EmitLoadOfComplex(LV.getAddress(), false);
- int AmountVal = isInc ? 1 : -1;
+ uint64_t AmountVal = isInc ? 1 : -1;
llvm::Value *NextVal;
if (isa<llvm::IntegerType>(InVal.first->getType()))
NextVal = llvm::ConstantInt::get(InVal.first->getType(), AmountVal);
else
- NextVal = llvm::ConstantFP::get(InVal.first->getType(), AmountVal);
+ NextVal = llvm::ConstantFP::get(InVal.first->getType(),
+ static_cast<double>(AmountVal));
// Add the inc/dec to the real part.
NextVal = Builder.CreateAdd(InVal.first, NextVal, isInc ? "inc" : "dec");
diff --git a/clang/CodeGen/CGExprScalar.cpp b/clang/CodeGen/CGExprScalar.cpp
index 3bb2678a6cb..96203f04ba8 100644
--- a/clang/CodeGen/CGExprScalar.cpp
+++ b/clang/CodeGen/CGExprScalar.cpp
@@ -469,7 +469,8 @@ Value *ScalarExprEmitter::VisitPrePostIncDec(const UnaryOperator *E,
if (isa<llvm::IntegerType>(InVal->getType()))
NextVal = llvm::ConstantInt::get(InVal->getType(), AmountVal);
else
- NextVal = llvm::ConstantFP::get(InVal->getType(), AmountVal);
+ NextVal = llvm::ConstantFP::get(InVal->getType(),
+ static_cast<double>(AmountVal));
NextVal = Builder.CreateAdd(InVal, NextVal, isInc ? "inc" : "dec");
}
OpenPOWER on IntegriCloud