diff options
Diffstat (limited to 'lib/AST/DumpXML.cpp')
-rw-r--r-- | lib/AST/DumpXML.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/AST/DumpXML.cpp b/lib/AST/DumpXML.cpp index 561fb8f372..4ef4ce5e38 100644 --- a/lib/AST/DumpXML.cpp +++ b/lib/AST/DumpXML.cpp @@ -810,17 +810,13 @@ struct XMLDumper : public XMLDeclVisitor<XMLDumper>, } } - // ObjCForwardProtocolDecl - void visitObjCForwardProtocolDeclChildren(ObjCForwardProtocolDecl *D) { - for (ObjCForwardProtocolDecl::protocol_iterator - I = D->protocol_begin(), E = D->protocol_end(); I != E; ++I) - visitDeclRef(*I); - } - // ObjCProtocolDecl void visitObjCProtocolDeclAttrs(ObjCProtocolDecl *D) { } void visitObjCProtocolDeclChildren(ObjCProtocolDecl *D) { + if (!D->isThisDeclarationADefinition()) + return; + if (D->protocol_begin() != D->protocol_end()) { TemporaryContainer C(*this, "protocols"); for (ObjCInterfaceDecl::protocol_iterator @@ -829,6 +825,9 @@ struct XMLDumper : public XMLDeclVisitor<XMLDumper>, } } void visitObjCProtocolDeclAsContext(ObjCProtocolDecl *D) { + if (!D->isThisDeclarationADefinition()) + return; + visitDeclContext(D); } |