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