xref: /aosp_15_r20/external/clang/test/Analysis/diagnostics/shortest-path-suppression.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-config suppress-null-return-paths=true -analyzer-output=text -verify %s
2*67e74705SXin Li // expected-no-diagnostics
3*67e74705SXin Li 
returnNull()4*67e74705SXin Li int *returnNull() { return 0; }
5*67e74705SXin Li int coin();
6*67e74705SXin Li 
7*67e74705SXin Li // Use a float parameter to ensure that the value is unknown. This will create
8*67e74705SXin Li // a cycle in the generated ExplodedGraph.
testCycle(float i)9*67e74705SXin Li void testCycle(float i) {
10*67e74705SXin Li   int *x = returnNull();
11*67e74705SXin Li   int y;
12*67e74705SXin Li   while (i > 0) {
13*67e74705SXin Li     x = returnNull();
14*67e74705SXin Li     y = 2;
15*67e74705SXin Li     i -= 1;
16*67e74705SXin Li   }
17*67e74705SXin Li   *x = 1; // no-warning
18*67e74705SXin Li   y += 1;
19*67e74705SXin Li }
20