diff options
Diffstat (limited to 'clang/Sema')
-rw-r--r-- | clang/Sema/SemaDecl.cpp | 24 | ||||
-rw-r--r-- | clang/Sema/SemaDeclObjC.cpp | 5 |
2 files changed, 16 insertions, 13 deletions
diff --git a/clang/Sema/SemaDecl.cpp b/clang/Sema/SemaDecl.cpp index 90f9133d4b8..13d49b09800 100644 --- a/clang/Sema/SemaDecl.cpp +++ b/clang/Sema/SemaDecl.cpp @@ -777,13 +777,13 @@ Sema::ActOnDeclarator(Scope *S, Declarator &D, DeclTy *lastDecl) { 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 @@ Sema::ActOnDeclarator(Scope *S, Declarator &D, DeclTy *lastDecl) { 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 @@ Sema::ActOnParamDeclarator(struct DeclaratorChunk::ParamInfo &PI, } 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(); diff --git a/clang/Sema/SemaDeclObjC.cpp b/clang/Sema/SemaDeclObjC.cpp index 04ce426dec9..1e60a396478 100644 --- a/clang/Sema/SemaDeclObjC.cpp +++ b/clang/Sema/SemaDeclObjC.cpp @@ -823,8 +823,9 @@ Sema::DeclTy *Sema::ActOnMethodDeclaration( argType = QualType::getFromOpaquePtr(ArgTypes[i]); else argType = Context.getObjCIdType(); - ParmVarDecl* Param = new ParmVarDecl(SourceLocation(/*FIXME*/), ArgNames[i], - argType, VarDecl::None, 0); + ParmVarDecl* Param = ParmVarDecl::Create(SourceLocation(/*FIXME*/), + ArgNames[i], argType, + VarDecl::None, 0, Context); Param->setObjCDeclQualifier( CvtQTToAstBitMask(ArgQT[i].getObjCDeclQualifier())); Params.push_back(Param); |