switch the rest of the C decl classes to do their 
allocation through ASTContext.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48403 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp
index 7fa679c..4ce6fa8 100644
--- a/lib/AST/Decl.cpp
+++ b/lib/AST/Decl.cpp
@@ -235,6 +235,12 @@
   return new (Mem) FunctionDecl(L, Id, T, S, isInline, PrevDecl);
 }
 
+FieldDecl *FieldDecl::Create(ASTContext &C, SourceLocation L,
+                             IdentifierInfo *Id, QualType T, Expr *BW) {
+  void *Mem = C.getAllocator().Allocate<FieldDecl>();
+  return new (Mem) FieldDecl(L, Id, T, BW);
+}
+
 
 EnumConstantDecl *EnumConstantDecl::Create(ASTContext &C, SourceLocation L,
                                            IdentifierInfo *Id, QualType T,
@@ -263,6 +269,17 @@
   return new (Mem) RecordDecl(DK, L, Id, PrevDecl);
 }
 
+FileScopeAsmDecl *FileScopeAsmDecl::Create(ASTContext &C, SourceLocation L,
+                                           StringLiteral *Str) {
+  void *Mem = C.getAllocator().Allocate<FileScopeAsmDecl>();
+  return new (Mem) FileScopeAsmDecl(L, Str);
+}
+
+LinkageSpecDecl *LinkageSpecDecl::Create(ASTContext &C, SourceLocation L,
+                                         LanguageIDs Lang, Decl *D) {
+  void *Mem = C.getAllocator().Allocate<LinkageSpecDecl>();
+  return new (Mem) LinkageSpecDecl(L, Lang, D);
+}
 
 //===----------------------------------------------------------------------===//
 // Decl Implementation