Implement printing for ObjCClassDecl's, patch by Jean-Daniel Dupas!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52598 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/ASTConsumers.cpp b/Driver/ASTConsumers.cpp
index 92add41..1383a5e 100644
--- a/Driver/ASTConsumers.cpp
+++ b/Driver/ASTConsumers.cpp
@@ -97,8 +97,15 @@
} else if (ObjCCompatibleAliasDecl *OID =
dyn_cast<ObjCCompatibleAliasDecl>(D)) {
PrintObjCCompatibleAliasDecl(OID);
- } else if (isa<ObjCClassDecl>(D)) {
- Out << "@class [printing todo]\n";
+ } else if (ObjCClassDecl *OFCD = dyn_cast<ObjCClassDecl>(D)) {
+ Out << "@class ";
+ ObjCInterfaceDecl **ForwardDecls = OFCD->getForwardDecls();
+ for (unsigned i = 0, e = OFCD->getNumForwardDecls(); i != e; ++i) {
+ const ObjCInterfaceDecl *D = ForwardDecls[i];
+ if (i) Out << ", ";
+ Out << D->getName();
+ }
+ Out << ";\n";
} else if (TagDecl *TD = dyn_cast<TagDecl>(D)) {
Out << "Read top-level tag decl: '" << TD->getName() << "'\n";
} else if (ScopedDecl *SD = dyn_cast<ScopedDecl>(D)) {