+++ /dev/null
-// Test that terminate gets run when a catch filter fails to match while
-// running destructors. Original bug depended on a::~a being inlined.
-// { dg-do run }
-// { dg-options -O }
-
-#include <exception>
-#include <cstdlib>
-
-struct e1 {};
-struct e2 {};
-
-struct a
-{
- a () { }
-
- ~a ()
- {
- try
- {
- throw e1();
- }
- catch (e2 &)
- {
- }
- }
-};
-
-void
-ex_test ()
-{
- a aa;
- try
- {
- throw e1 ();
- }
- catch (e2 &)
- {
- }
-}
-
-void my_terminate ()
-{
- std::exit (0);
-}
-
-int
-main ()
-{
- std::set_terminate (my_terminate);
-
- try
- {
- ex_test ();
- }
- catch (...)
- {
- }
- abort ();
-}