aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2013-03-19 22:10:44 +0000
committerJordan Rose <jordan_rose@apple.com>2013-03-19 22:10:44 +0000
commit6e65e1047f861d4db87ad0154c171ac66d53b649 (patch)
tree9f683dca12605f188074c275f2493e903b7d175e
parent239b6e47d282bd66c8b559ac47b8b42b34da619e (diff)
[analyzer] Add a test case for diagnostic suppression on a graph with cycles.
(see previous commit) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177449 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Analysis/diagnostics/shortest-path-suppression.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/Analysis/diagnostics/shortest-path-suppression.c b/test/Analysis/diagnostics/shortest-path-suppression.c
new file mode 100644
index 0000000000..4f648b986b
--- /dev/null
+++ b/test/Analysis/diagnostics/shortest-path-suppression.c
@@ -0,0 +1,19 @@
+// RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-config suppress-null-return-paths=true -analyzer-output=text -verify %s
+// expected-no-diagnostics
+
+int *returnNull() { return 0; }
+int coin();
+
+// Use a float parameter to ensure that the value is unknown. This will create
+// a cycle in the generated ExplodedGraph.
+void testCycle(float i) {
+ int *x = returnNull();
+ int y;
+ while (i > 0) {
+ x = returnNull();
+ y = 2;
+ i -= 1;
+ }
+ *x = 1; // no-warning
+ y += 1;
+}