summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaObjC
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2014-06-18 17:58:27 +0000
committerFariborz Jahanian <fjahanian@apple.com>2014-06-18 17:58:27 +0000
commit285b6b658531e257d0f495111939777e3dc74348 (patch)
tree13e000557c02d777e66e2985760fb0d4beddebfb /clang/test/SemaObjC
parent85f0dbce5c74e46ff8f31353717faaf3ac58ab9e (diff)
downloadbcm5719-llvm-285b6b658531e257d0f495111939777e3dc74348.tar.gz
bcm5719-llvm-285b6b658531e257d0f495111939777e3dc74348.zip
Objective-C. Attributes on class declarations carry over
to forward class declarations for diagnosis. // rdar://16681279 llvm-svn: 211195
Diffstat (limited to 'clang/test/SemaObjC')
-rw-r--r--clang/test/SemaObjC/class-unavail-warning.m29
1 files changed, 28 insertions, 1 deletions
diff --git a/clang/test/SemaObjC/class-unavail-warning.m b/clang/test/SemaObjC/class-unavail-warning.m
index a337c97ec08..b903e275b85 100644
--- a/clang/test/SemaObjC/class-unavail-warning.m
+++ b/clang/test/SemaObjC/class-unavail-warning.m
@@ -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;
+}
OpenPOWER on IntegriCloud