diff options
Diffstat (limited to 'clang/test/SemaObjC/attr-deprecated.m')
| -rw-r--r-- | clang/test/SemaObjC/attr-deprecated.m | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/clang/test/SemaObjC/attr-deprecated.m b/clang/test/SemaObjC/attr-deprecated.m new file mode 100644 index 00000000000..9577e60b7d4 --- /dev/null +++ b/clang/test/SemaObjC/attr-deprecated.m @@ -0,0 +1,65 @@ +// RUN: clang %s -fsyntax-only -verify + +@interface A ++ (void)F __attribute__((deprecated)); +- (void)f __attribute__((deprecated)); +@end + +@implementation A ++ (void)F __attribute__((deprecated)) +{ + [self F]; // expected-warning{{'F' is deprecated}} +} + +- (void)g +{ + [self f]; // expected-warning{{'f' is deprecated}} +} + +- (void)f +{ + [self f]; // expected-warning{{'f' is deprecated}} +} +@end + +@interface B: A +@end + +@implementation B ++ (void)G +{ + [super F]; // expected-warning{{'F' is deprecated}} +} + +- (void)g +{ + [super f]; // // expected-warning{{'f' is deprecated}} +} +@end + +@protocol P +- (void)p __attribute__((deprecated)); +@end + +void t1(A *a) +{ + [A F]; // expected-warning{{'F' is deprecated}} + [a f]; // expected-warning{{'f' is deprecated}} +} + +void t2(id a) +{ + [a f]; +} + +void t3(A<P>* a) +{ + [a f]; // expected-warning{{'f' is deprecated}} + [a p]; // expected-warning{{'p' is deprecated}} +} + +void t4(Class c) +{ + [c F]; +} + |

