summaryrefslogtreecommitdiff
path: root/test/SemaObjC/diagnose_if.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjC/diagnose_if.m')
-rw-r--r--test/SemaObjC/diagnose_if.m16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/SemaObjC/diagnose_if.m b/test/SemaObjC/diagnose_if.m
new file mode 100644
index 0000000000000..9f281e4252dfa
--- /dev/null
+++ b/test/SemaObjC/diagnose_if.m
@@ -0,0 +1,16 @@
+// RUN: %clang_cc1 %s -verify -fno-builtin
+
+_Static_assert(__has_feature(attribute_diagnose_if_objc), "feature check failed?");
+
+#define _diagnose_if(...) __attribute__((diagnose_if(__VA_ARGS__)))
+
+@interface I
+-(void)meth _diagnose_if(1, "don't use this", "warning"); // expected-note 1{{from 'diagnose_if'}}
+@property (assign) id prop _diagnose_if(1, "don't use this", "warning"); // expected-note 2{{from 'diagnose_if'}}
+@end
+
+void test(I *i) {
+ [i meth]; // expected-warning {{don't use this}}
+ id o1 = i.prop; // expected-warning {{don't use this}}
+ id o2 = [i prop]; // expected-warning {{don't use this}}
+}