diff options
author | Christian Kamm <[email protected]> | 2012-09-19 11:26:33 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2012-09-19 12:23:18 +0200 |
commit | aa645254a240845aa69d24896b2e88120884d938 (patch) | |
tree | d7a95c5b38d641fa1c073994bc436a6808a80a3d /src/plugins/cpptools/cppchecksymbols.cpp | |
parent | 83da5f68bec13dcb05b84a005f4bb3bc7e8bc82b (diff) |
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 <[email protected]>
Diffstat (limited to 'src/plugins/cpptools/cppchecksymbols.cpp')
-rw-r--r-- | src/plugins/cpptools/cppchecksymbols.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/plugins/cpptools/cppchecksymbols.cpp b/src/plugins/cpptools/cppchecksymbols.cpp index 709c175c2ae..cd77278e6bd 100644 --- a/src/plugins/cpptools/cppchecksymbols.cpp +++ b/src/plugins/cpptools/cppchecksymbols.cpp @@ -663,13 +663,14 @@ bool CheckSymbols::visit(NewExpressionAST *ast) if (binding && nameAST) { int arguments = 0; if (ast->new_initializer) { - if (ExpressionAST *expr = ast->new_initializer->expression) { - while (BinaryExpressionAST *binExpr = expr->asBinaryExpression()) { - expr = binExpr->right_expression; - ++arguments; - } + ExpressionListAST *list = 0; + if (ExpressionListParenAST *exprListParen = ast->new_initializer->asExpressionListParen()) { + list = exprListParen->expression_list; + } else if (BracedInitializerAST *braceInit = ast->new_initializer->asBracedInitializer()) { + list = braceInit->expression_list; } - + for (ExpressionListAST *it = list; it; it = it->next) + ++arguments; } Scope *scope = enclosingScope(); |