#include "analyzer-decls.h" int test_1 (void) { int i; return i; /* { dg-warning "use of uninitialized value 'i'" } */ } int test_2 (void) { int i; return i * 2; /* { dg-warning "use of uninitialized value 'i'" } */ } int test_3 (void) { static int i; return i; } int test_4 (void) { int *p; return *p; /* { dg-warning "use of uninitialized value 'p'" } */ } int test_5 (int flag, int *q) { int *p; if (flag) /* { dg-message "following 'false' branch" } */ p = q; /* There should be two enodes here, i.e. not merging the init vs non-init states. */ __analyzer_dump_exploded_nodes (0); /* { dg-warning "2 processed enodes" } */ return *p; /* { dg-warning "use of uninitialized value 'p'" } */ } int test_6 (int i) { int arr[10]; return arr[i]; /* { dg-warning "use of uninitialized value 'arr\\\[i\\\]'" } */ }