Author: dgregor Date: Tue Nov 3 11:02:34 2015 New Revision: 251949 URL: http://llvm.org/viewvc/llvm-project?rev=251949&view=rev Log: 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. Modified: cfe/trunk/include/clang/Sema/Sema.h cfe/trunk/lib/Sema/SemaDeclObjC.cpp cfe/trunk/lib/Sema/SemaObjCProperty.cpp Modified: cfe/trunk/include/clang/Sema/Sema.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=251949&r1=251948&r2=251949&view=diff ============================================================================== --- cfe/trunk/include/clang/Sema/Sema.h (original) +++ cfe/trunk/include/clang/Sema/Sema.h Tue Nov 3 11:02:34 2015 @@ -7257,14 +7257,7 @@ public: /// Process the specified property declaration and create decls for the /// setters and getters as needed. /// \param property The property declaration being processed - /// \param CD The semantic container for the property - /// \param redeclaredProperty Declaration for property if redeclared - /// in class extension. - /// \param lexicalDC Container for redeclaredProperty. - void ProcessPropertyDecl(ObjCPropertyDecl *property, - ObjCContainerDecl *CD, - ObjCPropertyDecl *redeclaredProperty = nullptr, - ObjCContainerDecl *lexicalDC = nullptr); + void ProcessPropertyDecl(ObjCPropertyDecl *property); void DiagnosePropertyMismatch(ObjCPropertyDecl *Property, Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=251949&r1=251948&r2=251949&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original) +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Tue Nov 3 11:02:34 2015 @@ -3637,7 +3637,7 @@ Decl *Sema::ActOnAtEnd(Scope *S, SourceR // 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<ObjCImplementationDecl>(ClassDecl)) { Modified: cfe/trunk/lib/Sema/SemaObjCProperty.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaObjCProperty.cpp?rev=251949&r1=251948&r2=251949&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaObjCProperty.cpp (original) +++ cfe/trunk/lib/Sema/SemaObjCProperty.cpp Tue Nov 3 11:02:34 2015 @@ -390,9 +390,7 @@ Sema::HandlePropertyInClassExtension(Sco // 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(Sco *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, Ob /// 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<ObjCContainerDecl>(property->getDeclContext()); if (CD->isInvalidDecl()) return; @@ -2060,10 +2053,6 @@ void Sema::ProcessPropertyDecl(ObjCPrope 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<NSReturnsNotRetainedAttr>()) GetterMethod->addAttr(NSReturnsNotRetainedAttr::CreateImplicit(Context, Loc)); @@ -2134,10 +2123,6 @@ void Sema::ProcessPropertyDecl(ObjCPrope 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<SectionAttr>()) SetterMethod->addAttr( SectionAttr::CreateImplicit(Context, SectionAttr::GNU_section, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits