diff options
author | Chris Lattner <sabre@nondot.org> | 2009-02-20 21:35:13 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-02-20 21:35:13 +0000 |
commit | 38af2deb27cdfa1a95bde96e30dab15dce53fcef (patch) | |
tree | 59ea0e3b21832285ca2a9cb52c1da38f32813790 /lib/Sema | |
parent | 11e1e1af2641affb378080a4f3d1a30da1cad082 (diff) |
add plumbing to get ASTContext& down to allocation/deallocation points in ObjCList,
but don't start using it yet. Renamed some methods to be more consistent.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65168 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema')
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 6 | ||||
-rw-r--r-- | lib/Sema/SemaDeclObjC.cpp | 23 |
2 files changed, 15 insertions, 14 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index d91c2c1a19..c7f37fc286 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -3688,7 +3688,9 @@ void Sema::ActOnFields(Scope* S, } else { ObjCIvarDecl **ClsFields = reinterpret_cast<ObjCIvarDecl**>(&RecFields[0]); if (ObjCInterfaceDecl *ID = dyn_cast<ObjCInterfaceDecl>(EnclosingDecl)) { - ID->addInstanceVariablesToClass(ClsFields, RecFields.size(), RBrac); + ID->setIVarList(ClsFields, RecFields.size(), Context); + ID->setLocEnd(RBrac); + // Must enforce the rule that ivars in the base classes may not be // duplicates. if (ID->getSuperClass()) { @@ -3707,7 +3709,7 @@ void Sema::ActOnFields(Scope* S, else if (ObjCImplementationDecl *IMPDecl = dyn_cast<ObjCImplementationDecl>(EnclosingDecl)) { assert(IMPDecl && "ActOnFields - missing ObjCImplementationDecl"); - IMPDecl->setIVarList(ClsFields, RecFields.size()); + IMPDecl->setIVarList(ClsFields, RecFields.size(), Context); CheckImplementationIvars(IMPDecl, ClsFields, RecFields.size(), RBrac); } } diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp index 65cd4b4e54..db432c8aef 100644 --- a/lib/Sema/SemaDeclObjC.cpp +++ b/lib/Sema/SemaDeclObjC.cpp @@ -152,7 +152,8 @@ ActOnStartClassInterface(SourceLocation AtInterfaceLoc, /// Check then save referenced protocols. if (NumProtoRefs) { - IDecl->addReferencedProtocols((ObjCProtocolDecl**)ProtoRefs, NumProtoRefs); + IDecl->setProtocolList((ObjCProtocolDecl**)ProtoRefs, NumProtoRefs, + Context); IDecl->setLocEnd(EndProtoLoc); } @@ -245,7 +246,7 @@ Sema::ActOnStartProtocolInterface(SourceLocation AtProtoInterfaceLoc, ProcessDeclAttributeList(PDecl, AttrList); if (NumProtoRefs) { /// Check then save referenced protocols. - PDecl->addReferencedProtocols((ObjCProtocolDecl**)ProtoRefs, NumProtoRefs); + PDecl->setProtocolList((ObjCProtocolDecl**)ProtoRefs, NumProtoRefs,Context); PDecl->setLocEnd(EndProtoLoc); } @@ -509,7 +510,7 @@ ActOnStartCategoryInterface(SourceLocation AtInterfaceLoc, CDecl->insertNextClassCategory(); if (NumProtoRefs) { - CDecl->addReferencedProtocols((ObjCProtocolDecl**)ProtoRefs, NumProtoRefs); + CDecl->setProtocolList((ObjCProtocolDecl**)ProtoRefs, NumProtoRefs,Context); CDecl->setLocEnd(EndProtoLoc); } @@ -634,7 +635,8 @@ void Sema::CheckImplementationIvars(ObjCImplementationDecl *ImpDecl, /// (legacy objective-c @implementation decl without an @interface decl). /// Add implementations's ivar to the synthesize class's ivar list. if (IDecl->ImplicitInterfaceDecl()) { - IDecl->addInstanceVariablesToClass(ivars, numIvars, RBrace); + IDecl->setIVarList(ivars, numIvars, Context); + IDecl->setLocEnd(RBrace); return; } // If implementation has empty ivar list, just return. @@ -1166,7 +1168,7 @@ void Sema::ProcessPropertyDecl(ObjCPropertyDecl *property, property->getType(), VarDecl::None, 0); - SetterMethod->setMethodParams(&Argument, 1); + SetterMethod->setMethodParams(&Argument, 1, Context); CD->addDecl(SetterMethod); } else // A user declared setter will be synthesize when @synthesize of @@ -1395,7 +1397,7 @@ Sema::DeclTy *Sema::ActOnMethodDeclaration( Params.push_back(Param); } - ObjCMethod->setMethodParams(&Params[0], Sel.getNumArgs()); + ObjCMethod->setMethodParams(&Params[0], Sel.getNumArgs(), Context); ObjCMethod->setObjCDeclQualifier( CvtQTToAstBitMask(ReturnQT.getObjCDeclQualifier())); const ObjCMethodDecl *PrevMethod = 0; @@ -1560,14 +1562,11 @@ Sema::DeclTy *Sema::ActOnProperty(Scope *S, SourceLocation AtLoc, ICDecl, true, false, true, ObjCMethodDecl::Required); - ParmVarDecl *Argument = ParmVarDecl::Create(Context, - SetterDecl, + ParmVarDecl *Argument = ParmVarDecl::Create(Context, SetterDecl, SourceLocation(), FD.D.getIdentifier(), - T, - VarDecl::None, - 0); - SetterDecl->setMethodParams(&Argument, 1); + T, VarDecl::None, 0); + SetterDecl->setMethodParams(&Argument, 1, Context); PIDecl->setSetterMethodDecl(SetterDecl); } else |