diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Sema/SemaObjCProperty.cpp | 2 | ||||
| -rw-r--r-- | clang/test/SemaObjC/default-synthesize.m | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaObjCProperty.cpp b/clang/lib/Sema/SemaObjCProperty.cpp index 1d27e44dbe7..13c75e4fe96 100644 --- a/clang/lib/Sema/SemaObjCProperty.cpp +++ b/clang/lib/Sema/SemaObjCProperty.cpp @@ -810,7 +810,7 @@ void Sema::DiagnoseUnimplementedProperties(ObjCImplDecl* IMPDecl, Prop->getPropertyImplementation() == ObjCPropertyDecl::Optional || PropImplMap.count(Prop)) continue; - if (LangOpts.ObjCNonFragileABI2) { + if (LangOpts.ObjCNonFragileABI2 && !isa<ObjCCategoryImplDecl>(IMPDecl)) { ActOnPropertyImplDecl(IMPDecl->getLocation(), IMPDecl->getLocation(), true, DeclPtrTy::make(IMPDecl), diff --git a/clang/test/SemaObjC/default-synthesize.m b/clang/test/SemaObjC/default-synthesize.m index b892dfadf4f..21453d38414 100644 --- a/clang/test/SemaObjC/default-synthesize.m +++ b/clang/test/SemaObjC/default-synthesize.m @@ -93,3 +93,13 @@ @end @implementation SubClass @end // expected-error {{property 'myString' attempting to use ivar 'myString' declared in super class 'TopClass'}} + +// rdar: // 7920807 +@interface C @end +@interface C (Category) +@property int p; // expected-warning {{property 'p' requires method 'p' to be defined }} \ + // expected-warning {{property 'p' requires method 'setP:' to be defined}} +@end +@implementation C (Category) // expected-note 2 {{implementation is here}} +@end + |

