C++11: Allow brace initializer lists in more places.

This allows them to be used in declarator initializers that expect
an expression list in parentheses. Like

T v({1, 2}, 3, 4);

Change-Id: I62e1ffd355ca88f7acbb8708c9b40c8310489ca3
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
Christian Kamm
2012-09-12 13:01:16 +02:00
committed by hjk
parent 23a11e2ddb
commit 342709a9cc
2 changed files with 10 additions and 3 deletions

View File

@@ -2559,7 +2559,15 @@ bool Parser::parseInitializer0x(ExpressionAST *&node, unsigned *equals_token)
}
else if (LA() == T_LPAREN) {
return parsePrimaryExpression(node);
ExpressionListParenAST *expr_list_paren = new (_pool) ExpressionListParenAST;
node = expr_list_paren;
expr_list_paren->lparen_token = consumeToken();
parseInitializerList0x(expr_list_paren->expression_list);
match(T_RPAREN, &expr_list_paren->rparen_token);
return true;
}
return false;