Add create methods for ObjCCategoryDecl, ObjCForwardProtocolDecl, ObjCClassDecl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48426 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclObjC.cpp b/lib/AST/DeclObjC.cpp
index 62336b6..2ec9395 100644
--- a/lib/AST/DeclObjC.cpp
+++ b/lib/AST/DeclObjC.cpp
@@ -54,6 +54,26 @@
   return new (Mem) ObjCProtocolDecl(L, numRefProtos, Id);
 }
 
+ObjCClassDecl *ObjCClassDecl::Create(ASTContext &C, SourceLocation L,
+                                     ObjCInterfaceDecl **Elts, unsigned nElts) {
+  void *Mem = C.getAllocator().Allocate<ObjCClassDecl>();
+  return new (Mem) ObjCClassDecl(L, Elts, nElts);
+}
+
+ObjCForwardProtocolDecl *
+ObjCForwardProtocolDecl::Create(ASTContext &C, SourceLocation L, 
+                                ObjCProtocolDecl **Elts, unsigned NumElts) {
+  void *Mem = C.getAllocator().Allocate<ObjCForwardProtocolDecl>();
+  return new (Mem) ObjCForwardProtocolDecl(L, Elts, NumElts);
+}
+
+ObjCCategoryDecl *ObjCCategoryDecl::Create(ASTContext &C, SourceLocation L,
+                                           unsigned numRefProtocol, 
+                                           IdentifierInfo *Id) {
+  void *Mem = C.getAllocator().Allocate<ObjCCategoryDecl>();
+  return new (Mem) ObjCCategoryDecl(L, numRefProtocol, Id);
+}
+
 
 //===----------------------------------------------------------------------===//
 // Objective-C Decl Implementation