Author: arphaman Date: Tue Aug 15 05:40:01 2017 New Revision: 310916 URL: http://llvm.org/viewvc/llvm-project?rev=310916&view=rev Log: [Sema] Silence -Wobjc-missing-property-synthesis for unavailable properties
rdar://30296911 Modified: cfe/trunk/lib/Sema/SemaObjCProperty.cpp cfe/trunk/test/SemaObjC/default-synthesize-1.m Modified: cfe/trunk/lib/Sema/SemaObjCProperty.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaObjCProperty.cpp?rev=310916&r1=310915&r2=310916&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaObjCProperty.cpp (original) +++ cfe/trunk/lib/Sema/SemaObjCProperty.cpp Tue Aug 15 05:40:01 2017 @@ -1895,7 +1895,7 @@ void Sema::DefaultSynthesizeProperties(S /* property = */ Prop->getIdentifier(), /* ivar = */ Prop->getDefaultSynthIvarName(Context), Prop->getLocation(), Prop->getQueryKind())); - if (PIDecl) { + if (PIDecl && !Prop->isUnavailable()) { Diag(Prop->getLocation(), diag::warn_missing_explicit_synthesis); Diag(IMPDecl->getLocation(), diag::note_while_in_implementation); } Modified: cfe/trunk/test/SemaObjC/default-synthesize-1.m URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/default-synthesize-1.m?rev=310916&r1=310915&r2=310916&view=diff ============================================================================== --- cfe/trunk/test/SemaObjC/default-synthesize-1.m (original) +++ cfe/trunk/test/SemaObjC/default-synthesize-1.m Tue Aug 15 05:40:01 2017 @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -Wobjc-missing-property-synthesis -verify -Wno-objc-root-class %s +// RUN: %clang_cc1 -fsyntax-only -Wobjc-missing-property-synthesis -verify -Wno-objc-root-class -triple=x86_64-apple-macos10.10 %s // rdar://11295716 @interface NSObject @@ -141,3 +141,17 @@ return _description; // expected-error {{use of undeclared identifier '_description'}} } @end + +@interface DontWarnOnUnavailable + +// No warning expected: +@property (nonatomic, readonly) int un1 __attribute__((unavailable)); +@property (readwrite) int un2 __attribute__((availability(macos, unavailable))); + +@property (readwrite) int un3 __attribute__((availability(ios, unavailable))); // expected-warning {{auto property synthesis is synthesizing property not explicitly synthesized}} + +@end + +@implementation DontWarnOnUnavailable // expected-note {{detected while default synthesizing properties in class implementation}} + +@end _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits