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)) {