diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp index 7b79b0ac16d2c2ac16acdebf8aaefa52ad307c86..a8d0e456b6fb6e996579a69291943f3947fa6228 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,15 +451,18 @@ bool FindUsages::visit(FunctionDeclaratorAST *ast) return false; } -bool FindUsages::visit(SimpleDeclarationAST *) +bool FindUsages::visit(SimpleDeclarationAST *ast) { + for (SpecifierListAST *it = ast->decl_specifier_list; it; it = it->next) + accept(it->value); + ++_inSimpleDeclaration; - return true; + for (DeclaratorListAST *it = ast->declarator_list; it; it = it->next) + accept(it->value); + --_inSimpleDeclaration; + return false; } -void FindUsages::endVisit(SimpleDeclarationAST *) -{ --_inSimpleDeclaration; } - bool FindUsages::visit(ObjCSelectorWithoutArgumentsAST *ast) { const Identifier *id = identifier(ast->name_token); diff --git a/src/libs/cplusplus/FindUsages.h b/src/libs/cplusplus/FindUsages.h index 2b066fa2fa53b7f2aaf7101c767e27f008fbd6cf..313676fc909428bcfae2678d2e74677806c5a869 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);