diff --git a/src/libs/3rdparty/cplusplus/Parser.cpp b/src/libs/3rdparty/cplusplus/Parser.cpp index af2a52a6e44..5c21be4540e 100644 --- a/src/libs/3rdparty/cplusplus/Parser.cpp +++ b/src/libs/3rdparty/cplusplus/Parser.cpp @@ -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; diff --git a/tests/auto/cplusplus/cxx11/data/braceInitializers.1.cpp b/tests/auto/cplusplus/cxx11/data/braceInitializers.1.cpp index 4d36a5bd246..c250d60985b 100644 --- a/tests/auto/cplusplus/cxx11/data/braceInitializers.1.cpp +++ b/tests/auto/cplusplus/cxx11/data/braceInitializers.1.cpp @@ -1,9 +1,8 @@ Type var1 = { 1, 2, 3}; Type var2{1, 2, 3}; -//Type var3({1, 2, 3}); +Type var3({1, 2, 3}); class C { Type var1 = {1, 2, 3}; Type var2{1, 2, 3}; - //Type var3({1, 2, 3}); };