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