aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/ExprConstant.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-03-04 05:52:32 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-03-04 05:52:32 +0000
commit7976932a1c256d447316ffac58e9821417725e34 (patch)
treeee78af2bf4915bb79278ce428cd18f4be0cd0ce6 /lib/AST/ExprConstant.cpp
parent5f7d2284c4b2f08d155732454002e68dc40c33ef (diff)
Minor cleanup for choose expressions: add a helper that returns the
chosen sub-expression, rather than just evaluating the condition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66018 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ExprConstant.cpp')
-rw-r--r--lib/AST/ExprConstant.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index 86a7e8217f..6fb2abe7cd 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -389,10 +389,8 @@ APValue PointerExprEvaluator::VisitConditionalOperator(ConditionalOperator *E) {
}
APValue PointerExprEvaluator::VisitChooseExpr(ChooseExpr *E) {
- Expr* EvalExpr = E->isConditionTrue(Info.Ctx) ? E->getLHS() : E->getRHS();
-
APValue Result;
- if (EvaluatePointer(EvalExpr, Result, Info))
+ if (EvaluatePointer(E->getChosenSubExpr(Info.Ctx), Result, Info))
return Result;
return APValue();
}
@@ -522,10 +520,8 @@ APValue VectorExprEvaluator::VisitConditionalOperator(const ConditionalOperator
}
APValue VectorExprEvaluator::VisitChooseExpr(const ChooseExpr *E) {
- Expr* EvalExpr = E->isConditionTrue(Info.Ctx) ? E->getLHS() : E->getRHS();
-
APValue Result;
- if (EvaluateVector(EvalExpr, Result, Info))
+ if (EvaluateVector(E->getChosenSubExpr(Info.Ctx), Result, Info))
return Result;
return APValue();
}
@@ -1185,9 +1181,7 @@ bool IntExprEvaluator::VisitCastExpr(CastExpr *E) {
}
bool IntExprEvaluator::VisitChooseExpr(const ChooseExpr *E) {
- Expr* EvalExpr = E->isConditionTrue(Info.Ctx) ? E->getLHS() : E->getRHS();
-
- return Visit(EvalExpr);
+ return Visit(E->getChosenSubExpr(Info.Ctx));
}
bool IntExprEvaluator::VisitUnaryReal(const UnaryOperator *E) {