1 /* PR rtl-optimization/63804 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -g" } */
4
5 struct A { int gen; } e;
6 int a, d;
7 long b;
8 enum B { C };
9 struct D
10 {
11 enum B type : 1;
12 int nr : 1;
13 struct { unsigned ud; } dw1;
14 };
15 enum B c;
16
17 void
fn1(int p1)18 fn1 (int p1)
19 {
20 b = p1 & a;
21 }
22
23 int fn2 ();
24 void fn3 ();
25
26 void
fn4(struct D p1,unsigned p2,int p3)27 fn4 (struct D p1, unsigned p2, int p3)
28 {
29 struct D f, g, h, j = p1, l, m = l;
30 struct A i = e;
31 if (i.gen)
32 p2 = 0;
33 j.type = c;
34 g = j;
35 p1 = g;
36 fn3 ();
37 int k = p2, v = p1.nr, p = v;
38 m.dw1.ud = k;
39 f = m;
40 h = f;
41 struct D n = h;
42 fn3 (n);
43 {
44 d = fn2 ();
45 int o = d;
46 fn1 (o);
47 }
48 if (i.gen)
49 fn3 (p1);
50 b = p & a;
51 fn3 (p3);
52 }
53