diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-09-09 17:38:40 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-09-09 17:38:40 +0200 |
commit | c3b816166f0b2e44b4035209713b67842d2da546 (patch) | |
tree | b3d90d1379c6c5b014ac096b98ccd3fd6c600c00 /src/shared/cplusplus | |
parent | 52786e1e3961393ac8b83341f3c6425235945441 (diff) | |
download | qt-creator-c3b816166f0b2e44b4035209713b67842d2da546.tar.gz |
Fixed parsing of sizeof expressions.
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/Parser.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index e2fd3a67df..6c5598d7b4 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -4493,7 +4493,10 @@ bool Parser::parseUnaryExpression(ExpressionAST *&node) if (LA() == T_LPAREN) { unsigned lparen_token = consumeToken(); - if (parseTypeId(ast->expression) && LA() == T_RPAREN) { + const bool blocked = blockErrors(true); + const bool hasTypeId = parseTypeId(ast->expression); + (void) blockErrors(blocked); + if (hasTypeId && LA() == T_RPAREN) { ast->lparen_token = lparen_token; ast->rparen_token = consumeToken(); node = ast; @@ -4503,7 +4506,7 @@ bool Parser::parseUnaryExpression(ExpressionAST *&node) } } - parsePrimaryExpression(ast->expression); + parseUnaryExpression(ast->expression); node = ast; return true; |