| // This testcase failed on s390, because cross-jumping merged 2 calls, | |
| // one with REG_EH_REGION note with no handlers (ie. termination) | |
| // and one without REG_EH_REGION note. | |
| // { dg-do run } | |
| // { dg-options "-O2" } | |
| #include <exception> | |
| #include <string> | |
| struct E : public std::exception | |
| { | |
| std::string m; | |
| E () : m ("test") { } | |
| ~E () throw() { } | |
| }; | |
| struct C : public E { }; | |
| void foo () | |
| { | |
| throw C (); | |
| } | |
| int main () | |
| { | |
| try | |
| { | |
| foo (); | |
| } | |
| catch (...) { } | |
| } |