diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-03-04 05:52:32 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-03-04 05:52:32 +0000 |
commit | 7976932a1c256d447316ffac58e9821417725e34 (patch) | |
tree | ee78af2bf4915bb79278ce428cd18f4be0cd0ce6 /lib/AST/ExprConstant.cpp | |
parent | 5f7d2284c4b2f08d155732454002e68dc40c33ef (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.cpp | 12 |
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) { |