// PR tree-optimization/51117 | |
// { dg-do compile } | |
// { dg-options "-O2 -fexceptions" } | |
struct A { char buf[64]; }; | |
void bar (A *); | |
int | |
foo () | |
{ | |
A c; | |
bar (&c); | |
try | |
{ | |
{ | |
A a; | |
bar (&a); | |
if (a.buf[13]) | |
throw 1; | |
else if (a.buf[52]) | |
throw 3; | |
} | |
{ | |
A b; | |
bar (&b); | |
if (b.buf[13]) | |
throw 2; | |
} | |
} | |
catch ( ...) | |
{ | |
return 1; | |
} | |
return 0; | |
} | |
// { dg-final { scan-assembler-not "__cxa_rethrow" } } |