diff options
Diffstat (limited to 'clang/test/SemaObjC/attr-availability-1.m')
-rw-r--r-- | clang/test/SemaObjC/attr-availability-1.m | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/clang/test/SemaObjC/attr-availability-1.m b/clang/test/SemaObjC/attr-availability-1.m index af0fcfe3537..063407adaee 100644 --- a/clang/test/SemaObjC/attr-availability-1.m +++ b/clang/test/SemaObjC/attr-availability-1.m @@ -95,3 +95,22 @@ id NSNibOwner, topNibObjects; - (void)Meth1 __attribute__((availability(macosx,introduced=10.3_0))); // expected-warning {{use same version number separators '_' or '.'}} - (void)Meth2 __attribute__((availability(macosx,introduced=10_3.1))); // expected-warning {{use same version number separators '_' or '.'}} @end + +// rdar://18804883 +@protocol P18804883 +- (void)proto_method __attribute__((availability(macosx,introduced=10_1,deprecated=NA))); // means nothing (not deprecated) +@end + +@interface A18804883 <P18804883> +- (void)interface_method __attribute__((availability(macosx,introduced=NA))); // expected-note {{'interface_method' has been explicitly marked unavailable here}} +- (void)strange_method __attribute__((availability(macosx,introduced=NA,deprecated=NA))); // expected-note {{'strange_method' has been explicitly marked unavailable here}} +- (void) always_available __attribute__((availability(macosx,deprecated=NA))); +@end + +void foo (A18804883* pa) { + [pa interface_method]; // expected-error {{'interface_method' is unavailable: not available on OS X}} + [pa proto_method]; + [pa strange_method]; // expected-error {{'strange_method' is unavailable: not available on OS X}} + [pa always_available]; +} + |