diff options
| author | Egor Churaev <egor.churaev@gmail.com> | 2017-03-29 05:40:45 +0000 | 
|---|---|---|
| committer | Egor Churaev <egor.churaev@gmail.com> | 2017-03-29 05:40:45 +0000 | 
| commit | 0676fb5ae65584389f7340d30d1c13148d778b6c (patch) | |
| tree | 9b8583d4dca58e1b80997bab5404aa0cf8c4809a /clang/lib | |
| parent | cf791cf38935b711083547eb2d252fef788006ae (diff) | |
| download | bcm5719-llvm-0676fb5ae65584389f7340d30d1c13148d778b6c.tar.gz bcm5719-llvm-0676fb5ae65584389f7340d30d1c13148d778b6c.zip | |
Reverted r298976 [OpenCL] Added parsing for OpenCL vector types.
llvm-svn: 298978
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Parse/ParseExpr.cpp | 59 | 
1 files changed, 4 insertions, 55 deletions
| diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index e1439d63780..4dcdfbf993e 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -473,14 +473,12 @@ Parser::ParseRHSOfBinaryExpression(ExprResult LHS, prec::Level MinPrec) {  ///  ExprResult Parser::ParseCastExpression(bool isUnaryExpression,                                         bool isAddressOfOperand, -                                       TypeCastState isTypeCast, -                                       bool isVectorLiteral) { +                                       TypeCastState isTypeCast) {    bool NotCastExpr;    ExprResult Res = ParseCastExpression(isUnaryExpression,                                         isAddressOfOperand,                                         NotCastExpr, -                                       isTypeCast, -                                       isVectorLiteral); +                                       isTypeCast);    if (NotCastExpr)      Diag(Tok, diag::err_expected_expression);    return Res; @@ -696,8 +694,7 @@ class CastExpressionIdValidator : public CorrectionCandidateCallback {  ExprResult Parser::ParseCastExpression(bool isUnaryExpression,                                         bool isAddressOfOperand,                                         bool &NotCastExpr, -                                       TypeCastState isTypeCast, -                                       bool isVectorLiteral) { +                                       TypeCastState isTypeCast) {    ExprResult Res;    tok::TokenKind SavedKind = Tok.getKind();    NotCastExpr = false; @@ -725,9 +722,6 @@ ExprResult Parser::ParseCastExpression(bool isUnaryExpression,      Res = ParseParenExpression(ParenExprType, false/*stopIfCastExr*/,                                 isTypeCast == IsTypeCast, CastTy, RParenLoc); -    if (isVectorLiteral) -        return Res; -      switch (ParenExprType) {      case SimpleExpr:   break;    // Nothing else to do.      case CompoundStmt: break;  // Nothing else to do. @@ -2356,48 +2350,6 @@ Parser::ParseParenExpression(ParenParseOption &ExprType, bool stopIfCastExpr,          return ParseCompoundLiteralExpression(Ty.get(), OpenLoc, RParenLoc);        } -      if (Tok.is(tok::l_paren)) { -        // This could be OpenCL vector Literals -        if (getLangOpts().OpenCL) -        { -          TypeResult Ty; -          { -            InMessageExpressionRAIIObject InMessage(*this, false); -            Ty = Actions.ActOnTypeName(getCurScope(), DeclaratorInfo); -          } -          if(Ty.isInvalid()) -          { -             return ExprError(); -          } -          QualType QT = Ty.get().get().getCanonicalType(); -          if (QT->isVectorType()) -          { -            // We parsed '(' vector-type-name ')' followed by '(' - -            // Parse the cast-expression that follows it next. -            // isVectorLiteral = true will make sure we don't parse any -            // Postfix expression yet -            Result = ParseCastExpression(/*isUnaryExpression=*/false, -                                         /*isAddressOfOperand=*/false, -                                         /*isTypeCast=*/IsTypeCast, -                                         /*isVectorLiteral=*/true); - -            if (!Result.isInvalid()) { -              Result = Actions.ActOnCastExpr(getCurScope(), OpenLoc, -                                             DeclaratorInfo, CastTy, -                                             RParenLoc, Result.get()); -            } - -            // After we performed the cast we can check for postfix-expr pieces. -            if (!Result.isInvalid()) { -              Result = ParsePostfixExpressionSuffix(Result); -            } - -            return Result; -          } -        } -      } -        if (ExprType == CastExpr) {          // We parsed '(' type-name ')' and the thing after it wasn't a '{'. @@ -2427,13 +2379,10 @@ Parser::ParseParenExpression(ParenParseOption &ExprType, bool stopIfCastExpr,          }          // Parse the cast-expression that follows it next. -        // isVectorLiteral = true will make sure we don't parse any -        // Postfix expression yet          // TODO: For cast expression with CastTy.          Result = ParseCastExpression(/*isUnaryExpression=*/false,                                       /*isAddressOfOperand=*/false, -                                     /*isTypeCast=*/IsTypeCast, -                                     /*isVectorLiteral=*/true); +                                     /*isTypeCast=*/IsTypeCast);          if (!Result.isInvalid()) {            Result = Actions.ActOnCastExpr(getCurScope(), OpenLoc,                                           DeclaratorInfo, CastTy,  | 

