Fix a bug where we were recursing on friend decls for friend

functions, but not for friend types.

Reviewed by wan

llvm-svn: 118323
This commit is contained in:
Craig Silverstein 2010-11-06 06:25:02 +00:00
parent 2d4edfbc6a
commit 7232697fed
1 changed files with 6 additions and 0 deletions

View File

@ -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(),