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