| /* PR rtl-optimization/63804 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -g" } */ |
| |
| struct A { int gen; } e; |
| int a, d; |
| long b; |
| enum B { C }; |
| struct D |
| { |
| enum B type : 1; |
| int nr : 1; |
| struct { unsigned ud; } dw1; |
| }; |
| enum B c; |
| |
| void |
| fn1 (int p1) |
| { |
| b = p1 & a; |
| } |
| |
| int fn2 (); |
| void fn3 (); |
| |
| void |
| fn4 (struct D p1, unsigned p2, int p3) |
| { |
| struct D f, g, h, j = p1, l, m = l; |
| struct A i = e; |
| if (i.gen) |
| p2 = 0; |
| j.type = c; |
| g = j; |
| p1 = g; |
| fn3 (); |
| int k = p2, v = p1.nr, p = v; |
| m.dw1.ud = k; |
| f = m; |
| h = f; |
| struct D n = h; |
| fn3 (n); |
| { |
| d = fn2 (); |
| int o = d; |
| fn1 (o); |
| } |
| if (i.gen) |
| fn3 (p1); |
| b = p & a; |
| fn3 (p3); |
| } |