diff options
Diffstat (limited to 'clang/lib/AST/Expr.cpp')
| -rw-r--r-- | clang/lib/AST/Expr.cpp | 10 | 
1 files changed, 2 insertions, 8 deletions
| diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index d0d14f2b7af..38bcc9bf315 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -603,11 +603,7 @@ Expr::isLvalueResult Expr::isLvalue(ASTContext &Ctx) const {      return LV_Valid;    case ChooseExprClass:      // __builtin_choose_expr is an lvalue if the selected operand is. -    if (cast<ChooseExpr>(this)->isConditionTrue(Ctx)) -      return cast<ChooseExpr>(this)->getLHS()->isLvalue(Ctx); -    else -      return cast<ChooseExpr>(this)->getRHS()->isLvalue(Ctx); - +    return cast<ChooseExpr>(this)->getChosenSubExpr(Ctx)->isLvalue(Ctx);    case ExtVectorElementExprClass:      if (cast<ExtVectorElementExpr>(this)->containsDuplicateElements())        return LV_DuplicateVectorComponents; @@ -1110,9 +1106,7 @@ static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) {    case Expr::CXXDefaultArgExprClass:      return CheckICE(cast<CXXDefaultArgExpr>(E)->getExpr(), Ctx);    case Expr::ChooseExprClass: { -    const ChooseExpr *CE = cast<ChooseExpr>(E); -    Expr *SubExpr = CE->isConditionTrue(Ctx) ? CE->getLHS() : CE->getRHS(); -    return CheckICE(SubExpr, Ctx); +    return CheckICE(cast<ChooseExpr>(E)->getChosenSubExpr(Ctx), Ctx);    }    }  } | 

