aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/ExprConstant.cpp
diff options
context:
space:
mode:
authorKen Dyck <kd@kendyck.com>2011-03-11 02:13:43 +0000
committerKen Dyck <kd@kendyck.com>2011-03-11 02:13:43 +0000
commit4f3bc8f7aa90b72832b03bee9201c98f4bb6b4d1 (patch)
treee7d23a842e9c4956480db21b7912a22243cb481d /lib/AST/ExprConstant.cpp
parent27871ea66fa9b1f5622bef542c422d2ab5969e13 (diff)
Overload IntExprEvaluator::Success() with a function that takes a CharUnits
parameter to tidy up the places where the expression is a size. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127454 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ExprConstant.cpp')
-rw-r--r--lib/AST/ExprConstant.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index c8f470376a..f421671f7f 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -953,6 +953,11 @@ public:
return true;
}
+ bool Success(CharUnits Size, const Expr *E) {
+ return Success(Size.getQuantity(), E);
+ }
+
+
bool Error(SourceLocation L, diag::kind D, const Expr *E) {
// Take the first error.
if (Info.EvalResult.Diag == 0) {
@@ -1213,7 +1218,7 @@ bool IntExprEvaluator::TryEvaluateBuiltinObjectSize(CallExpr *E) {
Size -= Offset;
else
Size = CharUnits::Zero();
- return Success(Size.getQuantity(), E);
+ return Success(Size, E);
}
bool IntExprEvaluator::VisitCallExpr(CallExpr *E) {
@@ -1602,9 +1607,9 @@ bool IntExprEvaluator::VisitSizeOfAlignOfExpr(const SizeOfAlignOfExpr *E) {
// Handle alignof separately.
if (!E->isSizeOf()) {
if (E->isArgumentType())
- return Success(GetAlignOfType(E->getArgumentType()).getQuantity(), E);
+ return Success(GetAlignOfType(E->getArgumentType()), E);
else
- return Success(GetAlignOfExpr(E->getArgumentExpr()).getQuantity(), E);
+ return Success(GetAlignOfExpr(E->getArgumentExpr()), E);
}
QualType SrcTy = E->getTypeOfArgument();
@@ -1625,7 +1630,7 @@ bool IntExprEvaluator::VisitSizeOfAlignOfExpr(const SizeOfAlignOfExpr *E) {
return false;
// Get information about the size.
- return Success(Info.Ctx.getTypeSizeInChars(SrcTy).getQuantity(), E);
+ return Success(Info.Ctx.getTypeSizeInChars(SrcTy), E);
}
bool IntExprEvaluator::VisitOffsetOfExpr(const OffsetOfExpr *E) {
@@ -1694,7 +1699,7 @@ bool IntExprEvaluator::VisitOffsetOfExpr(const OffsetOfExpr *E) {
}
}
}
- return Success(Result.getQuantity(), E);
+ return Success(Result, E);
}
bool IntExprEvaluator::VisitUnaryOperator(const UnaryOperator *E) {