diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/uninit-pr19430.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/uninit-pr19430.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/uninit-pr19430.c b/gcc/testsuite/gcc.dg/uninit-pr19430.c new file mode 100644 index 000000000..4d2b4f62c --- /dev/null +++ b/gcc/testsuite/gcc.dg/uninit-pr19430.c @@ -0,0 +1,43 @@ +/* { dg-do compile } */ +/* { dg-options "-O -Wuninitialized" } */ +extern int bar (int); +extern void baz (int *); +int +foo (int i) +{ + int j; /* { dg-warning "'j' may be used uninitialized in this function" "uninitialized" { xfail *-*-* } 8 } */ + + if (bar (i)) { + baz (&j); + } else { + } + + return j; +} + + + +int foo2( void ) { + int rc; + return rc; /* { dg-warning "'rc' is used uninitialized in this function" } */ + *&rc = 0; +} + +extern int printf(const char *, ...); +void frob(int *pi); + +int main(void) +{ + int i; + printf("i = %d\n", i); /* { dg-warning "'i' is used uninitialized in this function" "" { xfail *-*-* } } */ + frob(&i); + + return 0; +} + +void foo3(int*); +void bar3(void) { + int x; + if(x) /* { dg-warning "'x' is used uninitialized in this function" "uninitialized" { xfail *-*-* } } */ + foo3(&x); +} |