blob: b7296724300f24c12d3777e2e7a9b42d5b9f0eba [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O3" } */
typedef int (*funct)(int, int, int);
extern int f(int, int, int);
extern int g(int, int, int);
extern int h(int, funct, funct);
static int baz(int x, int y, int z)
{
return x + y + z;
}
static int bar(int n, funct f1, funct f2)
{
return h(n, f1, f2) + f1(0, 1, 2);
}
static int foo(int n, funct f1, funct f2)
{
return bar(n, f1, f2) + f2(0, 1, 2);
}
int main(void)
{
return foo(0, f, g)
#ifndef ICE2
+ foo(0, baz, g)
#endif
;
}