1 /* { dg-additional-options "-fno-analyzer-state-purge" } */
2 #include "../../gcc.dg/analyzer/analyzer-decls.h"
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" } */