summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseExpr.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2013-09-22 03:30:01 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2013-09-22 03:30:01 +0000
commit338a770eb97175a6e3945c1427c87a8e93006e71 (patch)
tree4c676630646320257dbfaf146ff9c63bb05ac30e /clang/lib/Parse/ParseExpr.cpp
parent2ea2d9cb29b82cf119db43b6d97771134ea24fbe (diff)
downloadbcm5719-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.cpp9
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)))
OpenPOWER on IntegriCloud