]>
Commit | Line | Data |
---|---|---|
a1c65695 JJ |
1 | /* PR middle-end/41837 */ |
2 | /* { dg-do compile } */ | |
3 | /* { dg-options "-fipa-struct-reorg -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 | ||
8ece1ab3 MP |
16 | void f5 (T4); |
17 | void f6 (void (*)(T4)); | |
18 | void f7 (void (*)(T5, T1 *)); | |
19 | ||
a1c65695 JJ |
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 | } |