[cfe-commits] r159784 - in /cfe/trunk: lib/Sema/SemaDeclObjC.cpp test/SemaObjC/nowarn-superclass-method-mismatch.m

Fariborz Jahanian fjahanian at apple.com
Thu Jul 5 15:26:08 PDT 2012


Author: fjahanian
Date: Thu Jul  5 17:26:07 2012
New Revision: 159784

URL: http://llvm.org/viewvc/llvm-project?rev=159784&view=rev
Log:
objective-c: don't involve properties when checking
under -Wsuper-class-method-mismatch for method
mismatches in current and suprt class.
// rdar://11793793

Added:
    cfe/trunk/test/SemaObjC/nowarn-superclass-method-mismatch.m
Modified:
    cfe/trunk/lib/Sema/SemaDeclObjC.cpp

Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=159784&r1=159783&r2=159784&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Thu Jul  5 17:26:07 2012
@@ -2700,7 +2700,8 @@
               isa<ObjCProtocolDecl>(overridden->getDeclContext()));
     
     if (CurrentClass && overridden->getDeclContext() != CurrentClass &&
-        isa<ObjCInterfaceDecl>(overridden->getDeclContext())) {
+        isa<ObjCInterfaceDecl>(overridden->getDeclContext()) &&
+        !overridden->isImplicit() /* not meant for properties */) {
       ObjCMethodDecl::param_iterator ParamI = ObjCMethod->param_begin(),
                                           E = ObjCMethod->param_end();
       ObjCMethodDecl::param_iterator PrevI = overridden->param_begin(),

Added: cfe/trunk/test/SemaObjC/nowarn-superclass-method-mismatch.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/nowarn-superclass-method-mismatch.m?rev=159784&view=auto
==============================================================================
--- cfe/trunk/test/SemaObjC/nowarn-superclass-method-mismatch.m (added)
+++ cfe/trunk/test/SemaObjC/nowarn-superclass-method-mismatch.m Thu Jul  5 17:26:07 2012
@@ -0,0 +1,20 @@
+// RUN: %clang_cc1  -fsyntax-only -fobjc-arc -fobjc-runtime-has-weak -Wsuper-class-method-mismatch -verify %s
+// rdar://11793793
+
+ at class NSString;
+
+ at interface Super
+ at property (nonatomic) NSString *thingy;
+ at property () __weak id PROP;
+ at end
+
+ at interface Sub : Super
+ at end
+
+ at implementation Sub
+- (void)setThingy:(NSString *)val
+{
+  [super setThingy:val];
+}
+ at synthesize PROP;
+ at end





More information about the cfe-commits mailing list