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
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index 86a7e82..6fb2abe 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -389,10 +389,8 @@
 }
 
 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::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::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) {