diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/uninit-5.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/uninit-5.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/uninit-5.c b/gcc/testsuite/gcc.dg/uninit-5.c new file mode 100644 index 000000000..df2a27c44 --- /dev/null +++ b/gcc/testsuite/gcc.dg/uninit-5.c @@ -0,0 +1,39 @@ +/* Spurious uninitialized-variable warnings. */ +/* Disable jump threading, etc to test compiler analysis. */ +/* { dg-do compile } */ +/* { dg-options "-O -Wuninitialized -fno-tree-dce -fno-tree-vrp -fno-tree-dominator-opts" } */ + +extern void use(int); +extern void foo(void); + +void +func1(int cond) +{ + int x; /* { dg-bogus "x" "uninitialized variable warning" } */ + + if(cond) + x = 1; + + foo(); + + if(cond) + use(x); +} + +void +func2 (int cond) +{ + int x; /* { dg-bogus "x" "uninitialized variable warning" } */ + int flag = 0; + + if(cond) + { + x = 1; + flag = 1; + } + + foo(); + + if(flag) + use(x); +} |