// PR 3719 // Test that an unexpected handler can rethrow to categorize. // { dg-do run } #include extern "C" void abort (); struct One { }; struct Two { }; static void handle_unexpected () { try { throw; } catch (One &) { throw Two (); } } static void doit () throw (Two) { throw One (); } int main () { std::set_unexpected (handle_unexpected); try { doit (); } catch (Two &) { } catch (...) { abort (); } }