diff options
author | Craig Silverstein <csilvers2000@yahoo.com> | 2010-11-06 06:25:02 +0000 |
---|---|---|
committer | Craig Silverstein <csilvers2000@yahoo.com> | 2010-11-06 06:25:02 +0000 |
commit | 7232697fed64cafff3e8b81cd3fe9c5d37851b88 (patch) | |
tree | 28234cc6f114232037abb31ead051f75f22eac0a | |
parent | 2d4edfbc6ad8c8823791dd0285302282d2d2ed03 (diff) | |
download | bcm5719-llvm-7232697fed64cafff3e8b81cd3fe9c5d37851b88.tar.gz bcm5719-llvm-7232697fed64cafff3e8b81cd3fe9c5d37851b88.zip |
Fix a bug where we were recursing on friend decls for friend
functions, but not for friend types.
Reviewed by wan
llvm-svn: 118323
-rw-r--r-- | clang/include/clang/AST/RecursiveASTVisitor.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/include/clang/AST/RecursiveASTVisitor.h b/clang/include/clang/AST/RecursiveASTVisitor.h index 806fdd8723f..5a76fab3966 100644 --- a/clang/include/clang/AST/RecursiveASTVisitor.h +++ b/clang/include/clang/AST/RecursiveASTVisitor.h @@ -995,11 +995,17 @@ DEF_TRAVERSE_DECL(FileScopeAsmDecl, { }) DEF_TRAVERSE_DECL(FriendDecl, { + // At most one of these two will be non-NULL. TRY_TO(TraverseDecl(D->getFriendDecl())); + if (D->getFriendType()) + TRY_TO(TraverseTypeLoc(D->getFriendType()->getTypeLoc())); }) DEF_TRAVERSE_DECL(FriendTemplateDecl, { + // At most one of these two will be non-NULL. TRY_TO(TraverseDecl(D->getFriendDecl())); + if (D->getFriendType()) + TRY_TO(TraverseTypeLoc(D->getFriendType()->getTypeLoc())); for (unsigned I = 0, E = D->getNumTemplateParameters(); I < E; ++I) { TemplateParameterList *TPL = D->getTemplateParameterList(I); for (TemplateParameterList::iterator ITPL = TPL->begin(), |