blob: f9d99d5d71bb4effa346fab91609dd36d3ff2b10 [file]
// { dg-do run }
// { dg-options "-O2 -frename-registers -fprofile-generate -fomit-frame-pointer" }
// { dg-require-profiling "-fprofile-generate" }
// { dg-require-effective-target exceptions_enabled }
// { dg-final { cleanup-coverage-files } }
/* Verify that regrename cannot use an unsaved frame pointer. */
extern "C" void abort (void);
struct MyException {};
struct Data {
int nr;
Data() : nr(66) {}
};
Data __attribute__((noinline,noclone))
getData (int i)
{
if (i)
throw MyException ();
Data data;
data.nr = i;
return data;
}
int
main (int, char **)
{
Data data;
try
{
data = getData (1);
}
catch (MyException &)
{
if (data.nr != 66)
abort ();
}
return 0;
}