1 /* { dg-do compile } */
2 /* { dg-options "-Os"  } */
3 
4 int a, b, c, d;
5 
6 struct S
7 {
8   int f0;
9 };
10 
11 static int
fn1(int p)12 fn1 (int p)
13 {
14   return p == 0 || a;
15 }
16 
17 static int
fn2()18 fn2 ()
19 {
20   d = fn1 (c);
21   return 0;
22 }
23 
24 static int
fn3(struct S p)25 fn3 (struct S p)
26 {
27   p.f0 || fn2 ();
28   if (fn1 (1))
29     b = 0;
30   return 0;
31 }
32 
33 int
main()34 main ()
35 {
36   struct S e = { 1 };
37   fn3 (e);
38   return 0;
39 }
40