IRA: Ignore debug insns for uses in split_live_ranges_for_shrink_wrap. [PR116179]
[official-gcc.git] / gcc / testsuite / c-c++-common / analyzer / loop-2.c
blob274d5080a51e3352d6fb602f755e88922dea1531
1 /* { dg-additional-options "-fno-analyzer-state-purge" } */
2 #include "../../gcc.dg/analyzer/analyzer-decls.h"
4 struct s
6 int i;
7 };
9 void test(void)
11 struct s s;
13 __analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */
16 for (s.i=0; s.i<256; s.i++) {
17 __analyzer_eval (s.i < 256); /* { dg-warning "TRUE" } */
18 /* (should report TRUE twice). */
20 __analyzer_dump_exploded_nodes (0); /* { dg-warning "2 processed enodes" } */
22 //__analyzer_eval (s.i == 0); /* { d-todo-g-warning "UNKNOWN" "" { xfail *-*-* } } */
23 /* { d-todo-g-warning "TRUE" "" { target *-*-* } .-1 } */
24 /* TODO(xfail^^^): we're only capturing the first iteration, so
25 we erroneously get i == 0. */
27 //__analyzer_eval (s.i >= 0); /* { d-todo-g-warning "TRUE" } */
30 __analyzer_eval (s.i >= 256); /* { dg-warning "TRUE" } */
32 __analyzer_eval (s.i == 256); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
33 /* { dg-warning "UNKNOWN" "status quo" { target *-*-* } .-1 } */
34 /* TODO(xfail^^^): ideally it should figure out i == 256 at exit. */
36 __analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */