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/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index 7914e86..28b396a 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -1332,7 +1332,7 @@
   FieldDecl *NewFD;
   
   if (isa<RecordDecl>(static_cast<Decl *>(TagDecl)))
-    NewFD = new FieldDecl(Loc, II, T, BitWidth);
+    NewFD = FieldDecl::Create(Context, Loc, II, T, BitWidth);
   else if (isa<ObjCInterfaceDecl>(static_cast<Decl *>(TagDecl)) ||
            isa<ObjCImplementationDecl>(static_cast<Decl *>(TagDecl)) ||
            isa<ObjCCategoryDecl>(static_cast<Decl *>(TagDecl)) ||
@@ -1750,7 +1750,7 @@
                                           ExprTy *expr) {
   StringLiteral *AsmString = cast<StringLiteral>((Expr*)expr);
   
-  return new FileScopeAsmDecl(Loc, AsmString);
+  return FileScopeAsmDecl::Create(Context, Loc, AsmString);
 }
 
 Sema::DeclTy* Sema::ActOnLinkageSpec(SourceLocation Loc,
@@ -1771,7 +1771,7 @@
   }
 
   // FIXME: Add all the various semantics of linkage specifications
-  return new LinkageSpecDecl(Loc, Language, dcl);
+  return LinkageSpecDecl::Create(Context, Loc, Language, dcl);
 }
 
 void Sema::HandleDeclAttribute(Decl *New, AttributeList *Attr) {