1 /* PR c++/105593 */
2 /* { dg-do compile } */
3 /* { dg-options "-W -Wall -Winit-self" } */
4
5 void bar (int);
6
7 static inline int
8 baz (void)
9 {
10 #pragma GCC diagnostic push
11 #pragma GCC diagnostic ignored "-Winit-self"
12 int u = u; /* { dg-bogus "'u' is used uninitialized" } */
13 #pragma GCC diagnostic pop
14 return u;
15 }
16
17 void
18 foo (void)
19 {
20 int u = baz ();
21 bar (u);
22 }
23
24 static inline int
25 qux (void)
26 {
27 int u = u; /* { dg-warning "'u' is used uninitialized" } */
28 return u; /* { dg-message "'u' was declared here" "" { target *-*-* } .-1 } */
29 }
30
31 void
32 corge (void)
33 {
34 int u = qux ();
35 bar (u);
36 }