1/* { dg-do compile } */
2/* { dg-options "-O0 -Wuninitialized" } */
3extern int bar (int);
4extern void baz (int *);
5
6int
7foo (int i)
8{
9  int j; /* { dg-warning "'j' may be used uninitialized in this function" "uninitialized" { xfail *-*-* } 9 } */
10
11  if (bar (i)) {
12    baz (&j);
13  } else {
14  }
15
16  return j;
17}
18
19int foo2( void ) {
20  int rc;
21  return rc; /* { dg-warning "'rc' is used uninitialized in this function" } */
22  *&rc = 0;
23}
24
25extern int printf(const char *, ...);
26void frob(int *pi);
27
28int main(void)
29{
30  int i;
31  printf("i = %d\n", i); /* { dg-warning "'i' is used uninitialized in this function" } */
32  frob(&i);
33
34  return 0;
35}
36
37void foo3(int*);
38void bar3(void) {
39  int x;
40  if(x) /* { dg-warning "'x' is used uninitialized in this function" } */
41    foo3(&x);
42}
43