1 /* { dg-do compile } */
2 /* { dg-options "-Wuninitialized -O2" } */
3
4 int g;
5 void bar();
6 void blah(int);
7
8 int foo (int n, int l, int m, int r)
9 {
10 int v;
11
12 if ( (n < 10) && (m != 100) && (r < 20) )
13 v = r;
14
15 if (m) g++;
16 else bar();
17
18 if (l > 100)
19 if ( (n <= 9) && (m < 100) && (r < 19) )
20 blah(v); /* { dg-bogus "uninitialized" "bogus warning" { xfail powerpc64*-*-* cris-*-* riscv*-*-* } } */
21
22 if ( (n <= 8) && (m < 99) && (r < 19) )
23 blah(v); /* { dg-bogus "uninitialized" "pr101674" { xfail mmix-*-* } } */
24
25 return 0;
26 }
27
28 int foo_2 (int n, int l, int m, int r)
29 {
30 int v;
31
32 if ( (n < 10) && (m != 100) && (r < 20) )
33 v = r;
34
35 if (m) g++;
36 else bar();
37
38 if (l > 100)
39 if ( (n <= 8) && (m < 101) && (r < 19) )
40 blah(v); /* { dg-warning "uninitialized" "real warning" } */
41
42 return 0;
43 }