Update some isIntegerConstantExpr uses to use
getIntegerConstantExprValue where appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54771 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index 643d475..7ff4ae9 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -370,11 +370,8 @@
if (const Expr *BitWidthExpr = FD->getBitWidth()) {
// TODO: Need to check this algorithm on other targets!
// (tested on Linux-X86)
- llvm::APSInt I(32);
- bool BitWidthIsICE =
- BitWidthExpr->isIntegerConstantExpr(I, Context);
- assert (BitWidthIsICE && "Invalid BitField size expression");
- FieldSize = I.getZExtValue();
+ FieldSize =
+ BitWidthExpr->getIntegerConstantExprValue(Context).getZExtValue();
std::pair<uint64_t, unsigned> FieldInfo =
Context.getTypeInfo(FD->getType());
diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp
index 5fc7cf2..e78c359 100644
--- a/lib/AST/Expr.cpp
+++ b/lib/AST/Expr.cpp
@@ -1195,10 +1195,7 @@
}
bool ChooseExpr::isConditionTrue(ASTContext &C) const {
- llvm::APSInt CondVal(32);
- bool IsConst = getCond()->isIntegerConstantExpr(CondVal, C);
- assert(IsConst && "Condition of choose expr must be i-c-e"); IsConst=IsConst;
- return CondVal != 0;
+ return getCond()->getIntegerConstantExprValue(C) != 0;
}
static int64_t evaluateOffsetOf(ASTContext& C, const Expr *E)
@@ -1220,12 +1217,9 @@
return RL.getFieldOffset(i) + evaluateOffsetOf(C, ME->getBase());
} else if (const ArraySubscriptExpr *ASE = dyn_cast<ArraySubscriptExpr>(E)) {
const Expr *Base = ASE->getBase();
- llvm::APSInt Idx(32);
- bool ICE = ASE->getIdx()->isIntegerConstantExpr(Idx, C);
- assert(ICE && "Array index is not a constant integer!");
int64_t size = C.getTypeSize(ASE->getType());
- size *= Idx.getSExtValue();
+ size *= ASE->getIdx()->getIntegerConstantExprValue(C).getSExtValue();
return size + evaluateOffsetOf(C, Base);
} else if (isa<CompoundLiteralExpr>(E))
diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp
index 2d5bd12..5b291d4 100644
--- a/lib/CodeGen/CodeGenTypes.cpp
+++ b/lib/CodeGen/CodeGenTypes.cpp
@@ -553,11 +553,8 @@
if (FD->isBitField()) {
Expr *BitWidth = FD->getBitWidth();
- llvm::APSInt FieldSize(32);
- bool isBitField =
- BitWidth->isIntegerConstantExpr(FieldSize, CGT.getContext());
- assert (isBitField && "Invalid BitField size expression");
- uint64_t BitFieldSize = FieldSize.getZExtValue();
+ uint64_t BitFieldSize =
+ BitWidth->getIntegerConstantExprValue(CGT.getContext()).getZExtValue();
CGT.addFieldInfo(FD, 0);
CGT.addBitFieldInfo(FD, offset, BitFieldSize);
diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp
index c6215da..abc7f88 100644
--- a/lib/Sema/SemaStmt.cpp
+++ b/lib/Sema/SemaStmt.cpp
@@ -347,9 +347,8 @@
// We already verified that the expression has a i-c-e value (C99
// 6.8.4.2p3) - get that value now.
- llvm::APSInt LoVal(32);
Expr *Lo = CS->getLHS();
- Lo->isIntegerConstantExpr(LoVal, Context);
+ llvm::APSInt LoVal = Lo->getIntegerConstantExprValue(Context);
// Convert the value to the same width/sign as the condition.
ConvertIntegerToTypeWarnOnOverflow(LoVal, CondWidth, CondIsSigned,
@@ -398,9 +397,8 @@
std::vector<llvm::APSInt> HiVals;
for (unsigned i = 0, e = CaseRanges.size(); i != e; ++i) {
CaseStmt *CR = CaseRanges[i].second;
- llvm::APSInt HiVal(32);
Expr *Hi = CR->getRHS();
- Hi->isIntegerConstantExpr(HiVal, Context);
+ llvm::APSInt HiVal = Hi->getIntegerConstantExprValue(Context);
// Convert the value to the same width/sign as the condition.
ConvertIntegerToTypeWarnOnOverflow(HiVal, CondWidth, CondIsSigned,