blob: fd7c7939ff95d11015b6880767085ab15383ca69 [file] [log] [blame]
// { 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;
}