blob: 6a5ec2efe86f435cf4ffdb11fb906bf7caa320d6 [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2 -fipa-icf" } */
__attribute__ ((noinline, noclone))
int f1 (int x, int (*p1) (void), int (*p2) (void))
{
if (x)
return p1 ();
else
return p2 ();
}
__attribute__ ((noinline, noclone))
int f2 (int x, int (*p1) (void), int (*p2) (void))
{
if (x)
return p2 ();
else
return p1 ();
}
__attribute__ ((noinline, noclone))
int f3 (void)
{
return 1;
}
__attribute__ ((noinline, noclone))
int f4 (void)
{
return 2;
}
int
main ()
{
if (f1 (0, f3, f4) != 2 || f1 (1, f3, f4) != 1 || f2 (0, f3, f4) != 1
|| f2 (1, f3, f4) != 2)
__builtin_abort ();
return 0;
}