111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O -fgcse" } */
|
|
3
|
|
4 extern void fe ();
|
|
5
|
|
6 extern int i;
|
|
7
|
|
8 static inline void
|
|
9 FX (void (*f) ())
|
|
10 {
|
|
11 fe ();
|
|
12 (*f) ();
|
|
13 }
|
|
14
|
|
15 static inline void
|
|
16 f4 ()
|
|
17 {
|
|
18 for (;;)
|
|
19 switch (i)
|
|
20 {
|
|
21 case 306:
|
|
22 FX (&fe);
|
|
23 break;
|
|
24 default:
|
|
25 return;
|
|
26 }
|
|
27 }
|
|
28
|
|
29 static inline void
|
|
30 f3 ()
|
|
31 {
|
|
32 f4 ();
|
|
33 for (;;)
|
|
34 switch (i)
|
|
35 {
|
|
36 case 267:
|
|
37 FX (&f4);
|
|
38 break;
|
|
39 default:
|
|
40 return;
|
|
41 }
|
|
42 }
|
|
43
|
|
44 static inline void
|
|
45 f2 ()
|
|
46 {
|
|
47 f3 ();
|
|
48 while (i)
|
|
49 FX (&f3);
|
|
50 }
|
|
51
|
|
52 void
|
|
53 f1 ()
|
|
54 {
|
|
55 f2 ();
|
|
56 while (1)
|
|
57 FX (&f2);
|
|
58 }
|