1 #include "analyzer-decls.h"
2 
test_1(void)3 int test_1 (void)
4 {
5   int i;
6   return i; /* { dg-warning "use of uninitialized value 'i'" } */
7 }
8 
test_2(void)9 int test_2 (void)
10 {
11   int i;
12   return i * 2; /* { dg-warning "use of uninitialized value 'i'" } */
13 }
14 
test_3(void)15 int test_3 (void)
16 {
17   static int i;
18   return i;
19 }
20 
test_4(void)21 int test_4 (void)
22 {
23   int *p;
24   return *p; /* { dg-warning "use of uninitialized value 'p'" } */
25 }
26 
test_5(int flag,int * q)27 int test_5 (int flag, int *q)
28 {
29   int *p;
30   if (flag) /* { dg-message "following 'false' branch" } */
31     p = q;
32 
33   /* There should be two enodes here,
34      i.e. not merging the init vs non-init states.  */
35   __analyzer_dump_exploded_nodes (0); /* { dg-warning "2 processed enodes" } */
36 
37   return *p; /* { dg-warning "use of uninitialized value 'p'" } */
38 }
39 
test_6(int i)40 int test_6 (int i)
41 {
42   int arr[10];
43   return arr[i]; /* { dg-warning "use of uninitialized value 'arr\\\[i\\\]'" } */
44 }
45