r229919 - [Objective-C Sema]. Don't warn about use of

Fariborz Jahanian fjahanian at apple.com
Thu Feb 19 13:52:41 PST 2015


Author: fjahanian
Date: Thu Feb 19 15:52:41 2015
New Revision: 229919

URL: http://llvm.org/viewvc/llvm-project?rev=229919&view=rev
Log:
[Objective-C Sema]. Don't warn about use of 
property accessors in @selector not implemented 
because they will be auto-synthesized. rdar://16607480

Modified:
    cfe/trunk/lib/Sema/SemaDeclObjC.cpp
    cfe/trunk/test/SemaObjC/selector-3.m

Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=229919&r1=229918&r2=229919&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Thu Feb 19 15:52:41 2015
@@ -2441,12 +2441,16 @@ ObjCMethodDecl *Sema::LookupImplementedM
   GlobalMethods &Methods = Pos->second;
   for (const ObjCMethodList *Method = &Methods.first; Method;
        Method = Method->getNext())
-    if (Method->getMethod() && Method->getMethod()->isDefined())
+    if (Method->getMethod() &&
+        (Method->getMethod()->isDefined() ||
+         Method->getMethod()->isPropertyAccessor()))
       return Method->getMethod();
   
   for (const ObjCMethodList *Method = &Methods.second; Method;
        Method = Method->getNext())
-    if (Method->getMethod() && Method->getMethod()->isDefined())
+    if (Method->getMethod() &&
+        (Method->getMethod()->isDefined() ||
+         Method->getMethod()->isPropertyAccessor()))
       return Method->getMethod();
   return nullptr;
 }

Modified: cfe/trunk/test/SemaObjC/selector-3.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/selector-3.m?rev=229919&r1=229918&r2=229919&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjC/selector-3.m (original)
+++ cfe/trunk/test/SemaObjC/selector-3.m Thu Feb 19 15:52:41 2015
@@ -134,3 +134,24 @@ void test16428638() {
     SEL s = @selector(compare:);
     (void)s;
 }
+
+// rdar://16607480
+ at class NSString;
+ at interface SELCanary : NSObject
+ at property (readonly, nonatomic) NSString *name;
+ at property (nonatomic, getter = isHidden) char hidden;
+ at property (nonatomic, copy, getter = hasFish, setter = setFish:) NSString *ridiculousFish;
+ at end
+
+ at implementation SELCanary
+- (void) Meth {
+ SEL properties[] = {
+  @selector(name),
+  @selector(isHidden),
+  @selector(setHidden:),
+  @selector(hasFish),
+  @selector(setFish:)
+ };
+}
+ at end
+





More information about the cfe-commits mailing list