From c3b816166f0b2e44b4035209713b67842d2da546 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Thu, 9 Sep 2010 17:38:40 +0200 Subject: Fixed parsing of sizeof expressions. --- src/shared/cplusplus/Parser.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/shared/cplusplus') 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; -- cgit v1.2.1