| /* 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); |
| } |