diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index e46f4bbae9325093cc1f3dfde369796dee540a37..73ffa2118b44a8fa3c28bd54707659a808d2d04e 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -2932,9 +2932,9 @@ bool Parser::parseNameId(NameAST *&name) unsigned saved = cursor(); ExpressionAST *expr = 0; bool blocked = blockErrors(true); - if (parseCastExpression(expr)) { - (void) blockErrors(blocked); - + bool lookAtCastExpression = parseCastExpression(expr); + (void) blockErrors(blocked); + if (lookAtCastExpression) { if (CastExpressionAST *cast_expression = expr->asCastExpression()) { if (cast_expression->lparen_token && cast_expression->rparen_token && cast_expression->type_id && cast_expression->expression) {