forked from qt-creator/qt-creator
C++11: Fix parsing of ambiguous declarators.
Task-number: QTCREATORBUG-7921 Change-Id: Ia94c30886321e09028547a47f83d2a0c57f3980f Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
7
src/libs/3rdparty/cplusplus/Parser.cpp
vendored
7
src/libs/3rdparty/cplusplus/Parser.cpp
vendored
@@ -1491,11 +1491,12 @@ bool Parser::parseDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specif
|
||||
|
||||
bool blocked = blockErrors(true);
|
||||
if (parseInitializer(initializer, &node->equal_token)) {
|
||||
NestedExpressionAST *expr = 0;
|
||||
// maybe the initializer also parses as a FunctionDeclarator?
|
||||
ExpressionListParenAST *expr = 0;
|
||||
if (initializer)
|
||||
expr = initializer->asNestedExpression();
|
||||
expr = initializer->asExpressionListParen();
|
||||
if (expr) {
|
||||
if (expr->expression && expr->rparen_token && (LA() == T_COMMA || LA() == T_SEMICOLON)) {
|
||||
if (expr->expression_list && expr->rparen_token && (LA() == T_COMMA || LA() == T_SEMICOLON)) {
|
||||
rewind(lparen_token);
|
||||
|
||||
// check for ambiguous declarators.
|
||||
|
||||
Reference in New Issue
Block a user