summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Silverstein <csilvers2000@yahoo.com>2010-11-06 06:25:02 +0000
committerCraig Silverstein <csilvers2000@yahoo.com>2010-11-06 06:25:02 +0000
commit7232697fed64cafff3e8b81cd3fe9c5d37851b88 (patch)
tree28234cc6f114232037abb31ead051f75f22eac0a
parent2d4edfbc6ad8c8823791dd0285302282d2d2ed03 (diff)
downloadbcm5719-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.h6
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(),
OpenPOWER on IntegriCloud