switch the VarDecl allocation model to go through ASTContext.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48396 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp
index 90f9133..13d49b0 100644
--- a/Sema/SemaDecl.cpp
+++ b/Sema/SemaDecl.cpp
@@ -777,13 +777,13 @@
     VarDecl *NewVD;
     VarDecl::StorageClass SC;
     switch (D.getDeclSpec().getStorageClassSpec()) {
-      default: assert(0 && "Unknown storage class!");
-      case DeclSpec::SCS_unspecified:    SC = VarDecl::None; break;
-      case DeclSpec::SCS_extern:         SC = VarDecl::Extern; break;
-      case DeclSpec::SCS_static:         SC = VarDecl::Static; break;
-      case DeclSpec::SCS_auto:           SC = VarDecl::Auto; break;
-      case DeclSpec::SCS_register:       SC = VarDecl::Register; break;
-      case DeclSpec::SCS_private_extern: SC = VarDecl::PrivateExtern; break;
+    default: assert(0 && "Unknown storage class!");
+    case DeclSpec::SCS_unspecified:    SC = VarDecl::None; break;
+    case DeclSpec::SCS_extern:         SC = VarDecl::Extern; break;
+    case DeclSpec::SCS_static:         SC = VarDecl::Static; break;
+    case DeclSpec::SCS_auto:           SC = VarDecl::Auto; break;
+    case DeclSpec::SCS_register:       SC = VarDecl::Register; break;
+    case DeclSpec::SCS_private_extern: SC = VarDecl::PrivateExtern; break;
     }    
     if (S->getParent() == 0) {
       // C99 6.9p2: The storage-class specifiers auto and register shall not
@@ -793,9 +793,11 @@
              R.getAsString());
         InvalidDecl = true;
       }
-      NewVD = new FileVarDecl(D.getIdentifierLoc(), II, R, SC, LastDeclarator);
+      NewVD = FileVarDecl::Create(D.getIdentifierLoc(), II, R, SC,
+                                  LastDeclarator, Context);
     } else {
-      NewVD = new BlockVarDecl(D.getIdentifierLoc(), II, R, SC, LastDeclarator);
+      NewVD = BlockVarDecl::Create(D.getIdentifierLoc(), II, R, SC,
+                                   LastDeclarator, Context);
     }
     // Handle attributes prior to checking for duplicates in MergeVarDecl
     HandleDeclAttributes(NewVD, D.getDeclSpec().getAttributes(),
@@ -1014,8 +1016,8 @@
   } else if (parmDeclType->isFunctionType())
     parmDeclType = Context.getPointerType(parmDeclType);
   
-  ParmVarDecl *New = new ParmVarDecl(PI.IdentLoc, II, parmDeclType, 
-                                     VarDecl::None, 0);
+  ParmVarDecl *New = ParmVarDecl::Create(PI.IdentLoc, II, parmDeclType, 
+                                         VarDecl::None, 0, Context);
   
   if (PI.InvalidType)
     New->setInvalidDecl();