From 7bedeecd15c0a2d0f98998d2d75e23d992ed0ea4 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Thu, 15 Aug 2019 11:38:57 -0400 Subject: [PATCH 78/96] FIXME: add loop-4.c --- gcc/testsuite/gcc.dg/analyzer/loop-4.c | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/analyzer/loop-4.c diff --git a/gcc/testsuite/gcc.dg/analyzer/loop-4.c b/gcc/testsuite/gcc.dg/analyzer/loop-4.c new file mode 100644 index 0000000..7e3e7ab --- /dev/null +++ b/gcc/testsuite/gcc.dg/analyzer/loop-4.c @@ -0,0 +1,41 @@ +// FIXME: +/* { dg-additional-options "-fno-analyzer-state-purge" } */ + +/* Example of nested loops. */ + +void test(void) +{ + int i, j, k; + + __analyzer_dump_exploded_nodes (0); /* { dg-warning "1 exploded node" } */ + + for (i=0; i<256; i++) { + + __analyzer_eval (i >= 0); /* { dg-warning "TRUE" } */ + /* { dg-warning "UNKNOWN" "" { target *-*-* } .-1 } */ + + __analyzer_eval (i < 256); /* { dg-warning "TRUE" } */ + + for (j=0; j<256; j++) { + + __analyzer_eval (j >= 0); /* { dg-warning "TRUE" } */ + /* { dg-warning "UNKNOWN" "" { target *-*-* } .-1 } */ + + __analyzer_eval (j < 256); /* { dg-warning "TRUE" } */ + + __analyzer_dump_exploded_nodes (0); /* { dg-warning "3 exploded nodes" } */ + + for (k=0; k<256; k++) { + + __analyzer_eval (k >= 0); /* { dg-warning "TRUE" } */ + /* { dg-warning "UNKNOWN" "" { target *-*-* } .-1 } */ + + __analyzer_eval (k < 256); /* { dg-warning "TRUE" } */ + + __analyzer_dump_exploded_nodes (0); /* { dg-warning "4 exploded nodes" } */ + } + } + } + + __analyzer_dump_exploded_nodes (0); /* { dg-warning "1 exploded node" } */ +} -- 1.8.5.3