/* PR middle-end/41837 */
/* { dg-do compile } */
/* { dg-options "-O -fwhole-program -fprofile-generate" } */

typedef struct { int a, b; } T1;
typedef struct S1 *T2;
typedef struct S2 *T3;
typedef struct S3 *T4;
typedef struct S4 *T5;
struct S4 { union { int c; } d; };
struct S2 { int e; T2 f; int g; };
typedef struct { T3 h; } T6;
typedef struct { int i; } *T7;
struct S3 { T6 j; T7 k; };

void f5 (T4);
void f6 (void (*)(T4));
void f7 (void (*)(T5, T1 *));

void
f1 (T4 x)
{
  if (!x->j.h->e)
    f5 (x);
}

void
f2 (void)
{
  f6 (f1);
}

void
f3 (T5 x, T1 *y)
{
}

void
f4 (void)
{
  f7 (f3);
}
