r251949 - Simplify Sema::ProcessPropertyDecl. NFC
Douglas Gregor via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 3 09:02:34 PST 2015
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,
More information about the cfe-commits
mailing list