summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaObjC/infer-availability-from-init.m
diff options
context:
space:
mode:
authorErik Pilkington <erik.pilkington@gmail.com>2019-02-04 23:30:57 +0000
committerErik Pilkington <erik.pilkington@gmail.com>2019-02-04 23:30:57 +0000
commit3062887c9956f2eeabc2e017fbab5c3ab94710b9 (patch)
tree40a2492244b718eea595e1c308b75f3a83f67c8a /clang/test/SemaObjC/infer-availability-from-init.m
parentff5527718d5d3b9966f6e8948866c0dc15ffcf3c (diff)
downloadbcm5719-llvm-3062887c9956f2eeabc2e017fbab5c3ab94710b9.tar.gz
bcm5719-llvm-3062887c9956f2eeabc2e017fbab5c3ab94710b9.zip
[SemaObjC] Don't infer the availabilty of +new from -init if the receiver has Class type
rdar://47713266 Differential revision: https://reviews.llvm.org/D57712 llvm-svn: 353115
Diffstat (limited to 'clang/test/SemaObjC/infer-availability-from-init.m')
-rw-r--r--clang/test/SemaObjC/infer-availability-from-init.m13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/SemaObjC/infer-availability-from-init.m b/clang/test/SemaObjC/infer-availability-from-init.m
index 7aa1e53c091..6719400a9f4 100644
--- a/clang/test/SemaObjC/infer-availability-from-init.m
+++ b/clang/test/SemaObjC/infer-availability-from-init.m
@@ -56,3 +56,16 @@ void usenotmyobject() {
[self new];
}
@end
+
+@interface NoInit : NSObject
+-(instancetype)init __attribute__((unavailable)); // expected-note {{'init' has been explicitly marked unavailable here}}
+@end
+
+@interface NoInitSub : NoInit @end
+
+@implementation NoInitSub
+-(void)meth:(Class)c {
+ [c new]; // No error; unknown interface.
+ [NoInitSub new]; // expected-error {{'new' is unavailable}}
+}
+@end
OpenPOWER on IntegriCloud