diff options
author | David Majnemer <david.majnemer@gmail.com> | 2013-09-22 03:30:01 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2013-09-22 03:30:01 +0000 |
commit | 338a770eb97175a6e3945c1427c87a8e93006e71 (patch) | |
tree | 4c676630646320257dbfaf146ff9c63bb05ac30e /clang/lib/Parse/ParseExpr.cpp | |
parent | 2ea2d9cb29b82cf119db43b6d97771134ea24fbe (diff) | |
download | bcm5719-llvm-338a770eb97175a6e3945c1427c87a8e93006e71.tar.gz bcm5719-llvm-338a770eb97175a6e3945c1427c87a8e93006e71.zip |
Parse: Move simple-type-specifier sanity check earlier
No functional change, just makes the error handling a bit more obvious.
llvm-svn: 191162
Diffstat (limited to 'clang/lib/Parse/ParseExpr.cpp')
-rw-r--r-- | clang/lib/Parse/ParseExpr.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index 9719d857f39..847b074d5c8 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -1043,6 +1043,11 @@ ExprResult Parser::ParseCastExpression(bool isUnaryExpression, // 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(bool isUnaryExpression, // 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))) |