diff options
Diffstat (limited to 'clang/CodeGen')
| -rw-r--r-- | clang/CodeGen/CGExprComplex.cpp | 5 | ||||
| -rw-r--r-- | clang/CodeGen/CGExprScalar.cpp | 3 |
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"); } |

