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  
      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" } } */