diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp index 7b79b0ac16d..a8d0e456b6f 100644 --- a/src/libs/cplusplus/FindUsages.cpp +++ b/src/libs/cplusplus/FindUsages.cpp @@ -69,6 +69,7 @@ void FindUsages::operator()(Symbol *symbol) _references.clear(); _usages.clear(); _declSymbol = symbol; + _inSimpleDeclaration = 0; _id = 0; if (_declSymbol && 0 != (_id = _declSymbol->identifier())) @@ -450,14 +451,17 @@ bool FindUsages::visit(FunctionDeclaratorAST *ast) return false; } -bool FindUsages::visit(SimpleDeclarationAST *) +bool FindUsages::visit(SimpleDeclarationAST *ast) { - ++_inSimpleDeclaration; - return true; -} + for (SpecifierListAST *it = ast->decl_specifier_list; it; it = it->next) + accept(it->value); -void FindUsages::endVisit(SimpleDeclarationAST *) -{ --_inSimpleDeclaration; } + ++_inSimpleDeclaration; + for (DeclaratorListAST *it = ast->declarator_list; it; it = it->next) + accept(it->value); + --_inSimpleDeclaration; + return false; +} bool FindUsages::visit(ObjCSelectorWithoutArgumentsAST *ast) { diff --git a/src/libs/cplusplus/FindUsages.h b/src/libs/cplusplus/FindUsages.h index 2b066fa2fa5..313676fc909 100644 --- a/src/libs/cplusplus/FindUsages.h +++ b/src/libs/cplusplus/FindUsages.h @@ -99,7 +99,6 @@ protected: virtual bool visit(ExpressionOrDeclarationStatementAST *ast); virtual bool visit(FunctionDeclaratorAST *ast); virtual bool visit(SimpleDeclarationAST *); - virtual void endVisit(SimpleDeclarationAST *); virtual bool visit(ObjCSelectorWithoutArgumentsAST *ast); virtual bool visit(ObjCSelectorWithArgumentsAST *ast);