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