From: Sean Hunt Date: Wed, 6 Jul 2011 23:35:33 +0000 (+0000) Subject: Ensure that we actually visit function parameter declarations with X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e9a37e45e2832869e3814b9e3ddeae13e0f4386a;p=clang Ensure that we actually visit function parameter declarations with RecursiveASTVisitor. This deficiency was discovered while working with the AST matcher framework and likely impacts other users of RecursiveASTMatcher who previously weren't seeing these Decls in their visitation. Patch reviewed by Chandler Carruth. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134562 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/RecursiveASTVisitor.h b/include/clang/AST/RecursiveASTVisitor.h index 7cdb0adc65..1982b35138 100644 --- a/include/clang/AST/RecursiveASTVisitor.h +++ b/include/clang/AST/RecursiveASTVisitor.h @@ -1562,6 +1562,13 @@ bool RecursiveASTVisitor::TraverseFunctionHelper(FunctionDecl *D) { // including exception specifications. TRY_TO(TraverseTypeLoc(D->getTypeSourceInfo()->getTypeLoc())); + // Parameter declarations + for (FunctionDecl::param_iterator I = D->param_begin(), + E = D->param_end(); + I != E; ++I) { + TRY_TO(TraverseDecl(*I)); + } + if (CXXConstructorDecl *Ctor = dyn_cast(D)) { // Constructor initializers. for (CXXConstructorDecl::init_iterator I = Ctor->init_begin(),