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