1  /* PR middle-end/41837 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O -fwhole-program -fprofile-generate" } */
       4  
       5  typedef struct { int a, b; } T1;
       6  typedef struct S1 *T2;
       7  typedef struct S2 *T3;
       8  typedef struct S3 *T4;
       9  typedef struct S4 *T5;
      10  struct S4 { union { int c; } d; };
      11  struct S2 { int e; T2 f; int g; };
      12  typedef struct { T3 h; } T6;
      13  typedef struct { int i; } *T7;
      14  struct S3 { T6 j; T7 k; };
      15  
      16  void f5 (T4);
      17  void f6 (void (*)(T4));
      18  void f7 (void (*)(T5, T1 *));
      19  
      20  void
      21  f1 (T4 x)
      22  {
      23    if (!x->j.h->e)
      24      f5 (x);
      25  }
      26  
      27  void
      28  f2 (void)
      29  {
      30    f6 (f1);
      31  }
      32  
      33  void
      34  f3 (T5 x, T1 *y)
      35  {
      36  }
      37  
      38  void
      39  f4 (void)
      40  {
      41    f7 (f3);
      42  }