diff options
Diffstat (limited to 'test/SemaObjC/class-unavail-warning.m')
-rw-r--r-- | test/SemaObjC/class-unavail-warning.m | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/test/SemaObjC/class-unavail-warning.m b/test/SemaObjC/class-unavail-warning.m index b2bd38831101..3ebf3e7815f3 100644 --- a/test/SemaObjC/class-unavail-warning.m +++ b/test/SemaObjC/class-unavail-warning.m @@ -1,8 +1,8 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-darwin10 -verify %s // rdar://9092208 __attribute__((unavailable("not available"))) -@interface MyClass { // expected-note 8 {{declaration has been explicitly marked unavailable here}} +@interface MyClass { // expected-note 8 {{'MyClass' has been explicitly marked unavailable here}} @public void *_test; MyClass *ivar; // no error. @@ -15,7 +15,7 @@ __attribute__((unavailable("not available"))) @end -@interface Foo { +@interface Gorf { MyClass *ivar; // expected-error {{unavailable}} } - (MyClass *)meth; // expected-error {{unavailable}} @@ -40,3 +40,30 @@ int main() { return 0; } + +// rdar://16681279 +@interface NSObject @end + +__attribute__((visibility("default"))) __attribute__((availability(macosx,unavailable))) +@interface Foo : NSObject @end // expected-note 3 {{'Foo' has been explicitly marked unavailable here}} +@interface AppDelegate : NSObject +@end + +@class Foo; + +@implementation AppDelegate +- (void) applicationDidFinishLaunching +{ + Foo *foo = 0; // expected-error {{'Foo' is unavailable}} +} +@end + +@class Foo; +Foo *g_foo = 0; // expected-error {{'Foo' is unavailable}} + +@class Foo; +@class Foo; +@class Foo; +Foo * f_func() { // expected-error {{'Foo' is unavailable}} + return 0; +} |