1/* Spurious uninitialized-variable warnings.
2   These cases are documented as not working in the gcc manual. */
3
4/* { dg-do compile } */
5/* { dg-options "-O -Wuninitialized" } */
6
7extern void use(int);
8extern void foo(void);
9
10void
11func1(int cond)
12{
13    int x;  /* { dg-bogus "x" "uninitialized variable warning" { xfail *-*-* } } */
14
15    if(cond)
16	x = 1;
17
18    foo();
19
20    if(cond)
21	use(x);
22}
23
24void
25func2 (int cond)
26{
27    int x;  /* { dg-bogus "x" "uninitialized variable warning" { xfail *-*-* } } */
28    int flag = 0;
29
30    if(cond)
31    {
32	x = 1;
33	flag = 1;
34    }
35
36    foo();
37
38    if(flag)
39	use(x);
40}
41