summaryrefslogtreecommitdiff
path: root/src/libs/3rdparty/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorChristian Kamm <kamm@incasoftware.de>2012-09-19 11:26:33 +0200
committerhjk <qthjk@ovi.com>2012-09-19 12:23:18 +0200
commitaa645254a240845aa69d24896b2e88120884d938 (patch)
treed7a95c5b38d641fa1c073994bc436a6808a80a3d /src/libs/3rdparty/cplusplus/Parser.cpp
parent83da5f68bec13dcb05b84a005f4bb3bc7e8bc82b (diff)
downloadqt-creator-aa645254a240845aa69d24896b2e88120884d938.tar.gz
C++11: More (expression-list) or brace-init-list.
This time in the 'new' expression. Changed it to make new C(1, abc...) and new C{1, abc} work. Change-Id: I7232798fd083b653ee04ef9ede386d6536133e16 Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Parser.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/Parser.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/libs/3rdparty/cplusplus/Parser.cpp b/src/libs/3rdparty/cplusplus/Parser.cpp
index 58b4f90535..8c2b26af07 100644
--- a/src/libs/3rdparty/cplusplus/Parser.cpp
+++ b/src/libs/3rdparty/cplusplus/Parser.cpp
@@ -5091,20 +5091,13 @@ bool Parser::parseNewArrayDeclarator(NewArrayDeclaratorListAST *&node)
return true;
}
-bool Parser::parseNewInitializer(NewInitializerAST *&node)
+bool Parser::parseNewInitializer(ExpressionAST *&node)
{
DEBUG_THIS_RULE();
if (LA() == T_LPAREN) {
- unsigned lparen_token = consumeToken();
- ExpressionAST *expression = 0;
- if (LA() == T_RPAREN || parseExpression(expression)) {
- NewInitializerAST *ast = new (_pool) NewInitializerAST;
- ast->lparen_token = lparen_token;
- ast->expression = expression;
- match(T_RPAREN, &ast->rparen_token);
- node = ast;
- return true;
- }
+ return parseExpressionListParen(node);
+ } else if (_cxx0xEnabled && LA() == T_LBRACE) {
+ return parseBracedInitList0x(node);
}
return false;
}