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 };
17 
f(struct a * c)18 int f(struct a *c)
19 {
20   int d = c->a;
21   c->c = 1;
22   return c->a + d;
23 }
24 
25 /* We should have CSEd the load from c->a.  */
26 
27 /* { dg-final { scan-tree-dump-times "c_.*\\\.a" 1 "fre1" } } */
28