From 0c3acb80c8c72bb24131272060afad114e33d0a1 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Wed, 19 Sep 2012 09:29:40 +0200 Subject: [PATCH] C++11: Allow brace-init-list in default argument declaration. Change-Id: Iab707d855f98982697365f9a4cd7832877e64d17 Reviewed-by: hjk --- src/libs/3rdparty/cplusplus/Parser.cpp | 5 ++++- tests/auto/cplusplus/cxx11/data/braceInitializers.2.cpp | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libs/3rdparty/cplusplus/Parser.cpp b/src/libs/3rdparty/cplusplus/Parser.cpp index 591d227b47..2a980e1724 100644 --- a/src/libs/3rdparty/cplusplus/Parser.cpp +++ b/src/libs/3rdparty/cplusplus/Parser.cpp @@ -1946,7 +1946,10 @@ bool Parser::parseParameterDeclaration(ParameterDeclarationAST *&node) parseDeclaratorOrAbstractDeclarator(ast->declarator, decl_specifier_seq); if (LA() == T_EQUAL) { ast->equal_token = consumeToken(); - parseLogicalOrExpression(ast->expression); + if (!_cxx0xEnabled) + parseLogicalOrExpression(ast->expression); + else + parseInitializerClause0x(ast->expression); } node = ast; diff --git a/tests/auto/cplusplus/cxx11/data/braceInitializers.2.cpp b/tests/auto/cplusplus/cxx11/data/braceInitializers.2.cpp index 7b37e3e4d6..96be7268b9 100644 --- a/tests/auto/cplusplus/cxx11/data/braceInitializers.2.cpp +++ b/tests/auto/cplusplus/cxx11/data/braceInitializers.2.cpp @@ -2,3 +2,5 @@ class C { C() : _x{12}, _y({12}) {} C(int i) : _x{{{12, 2}, {"foo"}}, {bar}}... {} }; + +void foo(int i = {1, 2, 3}); -- GitLab