summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/arc-zero-init.m
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Analysis/arc-zero-init.m')
-rw-r--r--clang/test/Analysis/arc-zero-init.m46
1 files changed, 46 insertions, 0 deletions
diff --git a/clang/test/Analysis/arc-zero-init.m b/clang/test/Analysis/arc-zero-init.m
new file mode 100644
index 00000000000..de1e978cd0d
--- /dev/null
+++ b/clang/test/Analysis/arc-zero-init.m
@@ -0,0 +1,46 @@
+// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
+// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify -fobjc-arc %s
+
+#if __has_feature(objc_arc)
+// expected-no-diagnostics
+#endif
+
+@interface SomeClass
+@end
+
+void simpleStrongPointerValue() {
+ SomeClass *x;
+ if (x) {}
+#if !__has_feature(objc_arc)
+// expected-warning@-2{{Branch condition evaluates to a garbage value}}
+#endif
+}
+
+void simpleArray() {
+ SomeClass *vlaArray[5];
+
+ if (vlaArray[0]) {}
+#if !__has_feature(objc_arc)
+// expected-warning@-2{{Branch condition evaluates to a garbage value}}
+#endif
+}
+
+void variableLengthArray() {
+ int count = 1;
+ SomeClass * vlaArray[count];
+
+ if (vlaArray[0]) {}
+#if !__has_feature(objc_arc)
+ // expected-warning@-2{{Branch condition evaluates to a garbage value}}
+#endif
+}
+
+void variableLengthArrayWithExplicitStrongAttribute() {
+ int count = 1;
+ __attribute__((objc_ownership(strong))) SomeClass * vlaArray[count];
+
+ if (vlaArray[0]) {}
+#if !__has_feature(objc_arc)
+ // expected-warning@-2{{Branch condition evaluates to a garbage value}}
+#endif
+}
OpenPOWER on IntegriCloud