1  /* PR rtl-optimization/42475 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2" } */
       4  
       5  typedef struct { float x, y; } B;
       6  typedef struct { float z; } C;
       7  typedef struct { B b; C c; } D;
       8  
       9  B
      10  foo (float x, float y)
      11  {
      12    B b = { .x = x, .y = y };
      13    return b;
      14  }
      15  
      16  B
      17  bar (B b, B y)
      18  {
      19    return foo (y.x + b.x, b.y);
      20  }
      21  
      22  B
      23  baz (D p)
      24  {
      25    D d = { };
      26    B y = bar (foo (0, (p.c.z) / 2), d.b);
      27    return y;
      28  }