From e17765eed0d9b06a624de2996e8bcfc68d4512ec Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Tue, 3 Nov 2015 17:02:34 +0000 Subject: Simplify Sema::ProcessPropertyDecl. NFC Now that the properties created within Objective-C class extensions go into the extension themselves, we don't need any of the extra complexity here. llvm-svn: 251949 --- clang/lib/Sema/SemaDeclObjC.cpp | 2 +- clang/lib/Sema/SemaObjCProperty.cpp | 27 ++++++--------------------- 2 files changed, 7 insertions(+), 22 deletions(-) (limited to 'clang/lib/Sema') diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp index 2622e5ed831..527ffa0fece 100644 --- a/clang/lib/Sema/SemaDeclObjC.cpp +++ b/clang/lib/Sema/SemaDeclObjC.cpp @@ -3637,7 +3637,7 @@ Decl *Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd, ArrayRef allMethods, // user-defined setter/getter. It also synthesizes setter/getter methods // and adds them to the DeclContext and global method pools. for (auto *I : CDecl->properties()) - ProcessPropertyDecl(I, CDecl); + ProcessPropertyDecl(I); CDecl->setAtEndRange(AtEnd); } if (ObjCImplementationDecl *IC=dyn_cast(ClassDecl)) { diff --git a/clang/lib/Sema/SemaObjCProperty.cpp b/clang/lib/Sema/SemaObjCProperty.cpp index 1d5d8b94899..60067761333 100644 --- a/clang/lib/Sema/SemaObjCProperty.cpp +++ b/clang/lib/Sema/SemaObjCProperty.cpp @@ -390,9 +390,7 @@ Sema::HandlePropertyInClassExtension(Scope *S, // If there was no declaration of a property with the same name in // the primary class, we're done. if (!PIDecl) { - ProcessPropertyDecl(PDecl, CDecl, - /* redeclaredProperty = */ nullptr, - /* lexicalDC = */ CDecl); + ProcessPropertyDecl(PDecl); return PDecl; } @@ -483,8 +481,8 @@ Sema::HandlePropertyInClassExtension(Scope *S, *isOverridingProperty = true; - // Make sure setter decl is synthesized, and added to continuation class's list. - ProcessPropertyDecl(PDecl, CDecl, PIDecl, CDecl); + // Make sure getter/setter are appropriately synthesized. + ProcessPropertyDecl(PDecl); return PDecl; } @@ -1973,15 +1971,10 @@ static void AddPropertyAttrs(Sema &S, ObjCMethodDecl *PropertyMethod, /// ProcessPropertyDecl - Make sure that any user-defined setter/getter methods /// have the property type and issue diagnostics if they don't. /// Also synthesize a getter/setter method if none exist (and update the -/// appropriate lookup tables. FIXME: Should reconsider if adding synthesized -/// methods is the "right" thing to do. -void Sema::ProcessPropertyDecl(ObjCPropertyDecl *property, - ObjCContainerDecl *CD, - ObjCPropertyDecl *redeclaredProperty, - ObjCContainerDecl *lexicalDC) { - +/// appropriate lookup tables. +void Sema::ProcessPropertyDecl(ObjCPropertyDecl *property) { ObjCMethodDecl *GetterMethod, *SetterMethod; - + ObjCContainerDecl *CD = cast(property->getDeclContext()); if (CD->isInvalidDecl()) return; @@ -2060,10 +2053,6 @@ void Sema::ProcessPropertyDecl(ObjCPropertyDecl *property, AddPropertyAttrs(*this, GetterMethod, property); - // FIXME: Eventually this shouldn't be needed, as the lexical context - // and the real context should be the same. - if (lexicalDC) - GetterMethod->setLexicalDeclContext(lexicalDC); if (property->hasAttr()) GetterMethod->addAttr(NSReturnsNotRetainedAttr::CreateImplicit(Context, Loc)); @@ -2134,10 +2123,6 @@ void Sema::ProcessPropertyDecl(ObjCPropertyDecl *property, AddPropertyAttrs(*this, SetterMethod, property); CD->addDecl(SetterMethod); - // FIXME: Eventually this shouldn't be needed, as the lexical context - // and the real context should be the same. - if (lexicalDC) - SetterMethod->setLexicalDeclContext(lexicalDC); if (const SectionAttr *SA = property->getAttr()) SetterMethod->addAttr( SectionAttr::CreateImplicit(Context, SectionAttr::GNU_section, -- cgit v1.2.3