diff --git a/src/libs/3rdparty/cplusplus/Parser.cpp b/src/libs/3rdparty/cplusplus/Parser.cpp index 39578a7bec5dffc46595ce4f84bb47bb529a470d..f9d2802fc2579bdcd0fb129526089693e857029f 100644 --- a/src/libs/3rdparty/cplusplus/Parser.cpp +++ b/src/libs/3rdparty/cplusplus/Parser.cpp @@ -3727,7 +3727,8 @@ bool Parser::parseSimpleDeclaration(DeclarationAST *&node, ClassSpecifierAST *de if (LA() != T_SEMICOLON) { const bool maybeCtor = (LA() == T_LPAREN && named_type_specifier); - if (! parseInitDeclarator(declarator, decl_specifier_seq, declaringClass) && maybeCtor) { + bool didParseInitDeclarator = parseInitDeclarator(declarator, decl_specifier_seq, declaringClass); + if ((! didParseInitDeclarator && maybeCtor) || (didParseInitDeclarator && maybeCtor && LA() == T_COLON)){ rewind(startOfNamedTypeSpecifier); named_type_specifier = 0; // pop the named type specifier from the decl-specifier-seq