[RTL ifcvt] PR 67786, 67787: Check that intermediate instructions in the basic block...
[official-gcc.git] / gcc / testsuite / gcc.dg / pr63804.c
blobf0a02f26ae4b550af7d94d19c10345ab535ad338
1 /* PR rtl-optimization/63804 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -g" } */
5 struct A { int gen; } e;
6 int a, d;
7 long b;
8 enum B { C };
9 struct D
11 enum B type : 1;
12 int nr : 1;
13 struct { unsigned ud; } dw1;
15 enum B c;
17 void
18 fn1 (int p1)
20 b = p1 & a;
23 int fn2 ();
24 void fn3 ();
26 void
27 fn4 (struct D p1, unsigned p2, int p3)
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);
44 d = fn2 ();
45 int o = d;
46 fn1 (o);
48 if (i.gen)
49 fn3 (p1);
50 b = p & a;
51 fn3 (p3);