This patch implementa objective-c's @compatibilty-alias declaration.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42883 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/ASTConsumers.cpp b/Driver/ASTConsumers.cpp
index 1ec2c72..114940f 100644
--- a/Driver/ASTConsumers.cpp
+++ b/Driver/ASTConsumers.cpp
@@ -117,6 +117,12 @@
   // FIXME: implement the rest...
 }
 
+static void PrintObjcCompatibleAliasDecl(ObjcCompatibleAliasDecl *AID) {
+  std::string A = AID->getName();
+  std::string I = AID->getClassInterface()->getName();
+  fprintf(stderr, "@compatibility_alias %s %s;\n", A.c_str(), I.c_str());
+}
+
 namespace {
   class ASTPrinter : public ASTConsumer {
     virtual void HandleTopLevelDecl(Decl *D) {
@@ -153,6 +159,9 @@
       } else if (ObjcCategoryDecl *OID = 
                  dyn_cast<ObjcCategoryDecl>(D)) {
         PrintObjcCategoryDecl(OID);
+      } else if (ObjcCompatibleAliasDecl *OID = 
+                 dyn_cast<ObjcCompatibleAliasDecl>(D)) {
+        PrintObjcCompatibleAliasDecl(OID);
       } else if (isa<ObjcClassDecl>(D)) {
         fprintf(stderr, "@class [printing todo]\n");
       } else if (ScopedDecl *SD = dyn_cast<ScopedDecl>(D)) {