diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2012-07-05 22:26:07 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2012-07-05 22:26:07 +0000 |
commit | c4133a477389dacb4479a96ee2227b92aea0a237 (patch) | |
tree | f0cda75f781e2c383c7705e079260551cb5f2d08 | |
parent | c2abbe0b98ec21c0c0e844c20d037639ef284664 (diff) |
objective-c: don't involve properties when checking
under -Wsuper-class-method-mismatch for method
mismatches in current and suprt class.
// rdar://11793793
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159784 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/SemaDeclObjC.cpp | 3 | ||||
-rw-r--r-- | test/SemaObjC/nowarn-superclass-method-mismatch.m | 20 |
2 files changed, 22 insertions, 1 deletions
diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp index 87acd1e63d..d67fb5002a 100644 --- a/lib/Sema/SemaDeclObjC.cpp +++ b/lib/Sema/SemaDeclObjC.cpp @@ -2700,7 +2700,8 @@ void Sema::CheckObjCMethodOverrides(ObjCMethodDecl *ObjCMethod, 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(), diff --git a/test/SemaObjC/nowarn-superclass-method-mismatch.m b/test/SemaObjC/nowarn-superclass-method-mismatch.m new file mode 100644 index 0000000000..b211cdea37 --- /dev/null +++ b/test/SemaObjC/nowarn-superclass-method-mismatch.m @@ -0,0 +1,20 @@ +// RUN: %clang_cc1 -fsyntax-only -fobjc-arc -fobjc-runtime-has-weak -Wsuper-class-method-mismatch -verify %s +// rdar://11793793 + +@class NSString; + +@interface Super +@property (nonatomic) NSString *thingy; +@property () __weak id PROP; +@end + +@interface Sub : Super +@end + +@implementation Sub +- (void)setThingy:(NSString *)val +{ + [super setThingy:val]; +} +@synthesize PROP; +@end |