diff options
-rw-r--r-- | src/libs/cplusplus/FindUsages.cpp | 14 | ||||
-rw-r--r-- | src/libs/cplusplus/FindUsages.h | 1 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp index 7b79b0ac16..a8d0e456b6 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 2b066fa2fa..313676fc90 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); |