view gcc/testsuite/gcc.dg/ipa/ipa-icf-31.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
line wrap: on
line source

/* { 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;
}