// Reduced from PR c++/5246, PR c++/2447
// { dg-options "-O -fomit-frame-pointer" }
// { dg-do run }
void step (int)
{
void *sp = __builtin_alloca (0);
}
void f2 (void)
{
step (2);
throw int();
}
void f1 (void)
{
try
{
step (1);
f2 ();
step (-1);
}
catch (int)
{
step (3);
}
}
int main ()
{
f1 ();
return 0;
}