r191162 - Parse: Move simple-type-specifier sanity check earlier

David Majnemer david.majnemer at gmail.com
Sat Sep 21 20:30:01 PDT 2013


Author: majnemer
Date: Sat Sep 21 22:30:01 2013
New Revision: 191162

URL: http://llvm.org/viewvc/llvm-project?rev=191162&view=rev
Log:
Parse: Move simple-type-specifier sanity check earlier

No functional change, just makes the error handling a bit more obvious.

Modified:
    cfe/trunk/lib/Parse/ParseExpr.cpp

Modified: cfe/trunk/lib/Parse/ParseExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseExpr.cpp?rev=191162&r1=191161&r2=191162&view=diff
==============================================================================
--- cfe/trunk/lib/Parse/ParseExpr.cpp (original)
+++ cfe/trunk/lib/Parse/ParseExpr.cpp Sat Sep 21 22:30:01 2013
@@ -1043,6 +1043,11 @@ ExprResult Parser::ParseCastExpression(b
       //                     typename-specifier braced-init-list
       if (TryAnnotateTypeOrScopeToken())
         return ExprError();
+
+      if (!Actions.isSimpleTypeSpecifier(Tok.getKind()))
+        // We are trying to parse a simple-type-specifier but might not get such
+        // a token after error recovery.
+        return ExprError();
     }
 
     // postfix-expression: simple-type-specifier '(' expression-list[opt] ')'
@@ -1050,10 +1055,6 @@ ExprResult Parser::ParseCastExpression(b
     //
     DeclSpec DS(AttrFactory);
 
-    if (!Actions.isSimpleTypeSpecifier(Tok.getKind()))
-      // This can happen if we tried to recover from errors earlier.
-      return ExprError();
-
     ParseCXXSimpleTypeSpecifier(DS);
     if (Tok.isNot(tok::l_paren) &&
         (!getLangOpts().CPlusPlus11 || Tok.isNot(tok::l_brace)))





More information about the cfe-commits mailing list