/* { dg-do compile } */ | |
/* { dg-options "-O -fgcse" } */ | |
extern void fe (); | |
extern int i; | |
static inline void | |
FX (void (*f) ()) | |
{ | |
fe (); | |
(*f) (); | |
} | |
static inline void | |
f4 () | |
{ | |
for (;;) | |
switch (i) | |
{ | |
case 306: | |
FX (&fe); | |
break; | |
default: | |
return; | |
} | |
} | |
static inline void | |
f3 () | |
{ | |
f4 (); | |
for (;;) | |
switch (i) | |
{ | |
case 267: | |
FX (&f4); | |
break; | |
default: | |
return; | |
} | |
} | |
static inline void | |
f2 () | |
{ | |
f3 (); | |
while (i) | |
FX (&f3); | |
} | |
void | |
f1 () | |
{ | |
f2 (); | |
while (1) | |
FX (&f2); | |
} |