OSDN Git Service

2011-10-18 Janus Weil <janus@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pr44012.c
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 }