(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
ipa/
ipa-pta-2.C
// { dg-do run }
// { dg-options "-O2 -fipa-pta" }

extern "C" void abort (void);

struct Y { ~Y(); int i; };

Y::~Y () {}

static Y __attribute__((noinline)) foo ()
{
  Y res;
  res.i = 3;
  return res;
}

static Y __attribute__((noinline)) bar ()
{
  Y res;
  res.i = 42;
  return res;
}

static Y (*fn) ();

int a;
int main()
{
  if (a)
    fn = foo;
  else
    fn = bar;
  Y res = fn ();
  if (res.i != 42)
    abort ();
  return 0;
}