1 /* { dg-do compile } */
2 /* { dg-options "-O -fdump-tree-fre1" } */
3 
4 struct a
5 {
6   union
7   {
8     int a;
9     int b;
10   };
11   union
12   {
13     int c;
14     int d;
15   };
16   int e;
17 };
18 
f(struct a * c)19 int f(struct a *c)
20 {
21   int d;
22   c->e = 2;
23   d = c->a;
24   c->c = 1;
25   return c->a + d;
26 }
27 
28 /* We should have CSEd the load from c->a.  */
29 
30 /* { dg-final { scan-tree-dump-times "c_.*\\\.a" 1 "fre1" } } */
31