C++11: Fix parsing of ambiguous declarators.

Task-number: QTCREATORBUG-7921

Change-Id: Ia94c30886321e09028547a47f83d2a0c57f3980f
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
Christian Kamm
2012-09-24 14:51:27 +02:00
committed by hjk
parent c1755d4d69
commit 30c59e27ad
2 changed files with 5 additions and 3 deletions

View File

@@ -1491,11 +1491,12 @@ bool Parser::parseDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specif
bool blocked = blockErrors(true);
if (parseInitializer(initializer, &node->equal_token)) {
NestedExpressionAST *expr = 0;
// maybe the initializer also parses as a FunctionDeclarator?
ExpressionListParenAST *expr = 0;
if (initializer)
expr = initializer->asNestedExpression();
expr = initializer->asExpressionListParen();
if (expr) {
if (expr->expression && expr->rparen_token && (LA() == T_COMMA || LA() == T_SEMICOLON)) {
if (expr->expression_list && expr->rparen_token && (LA() == T_COMMA || LA() == T_SEMICOLON)) {
rewind(lparen_token);
// check for ambiguous declarators.