// { dg-do run { target c++14_down } }
// Testing exception specifications.
// Test 4: all throws fail, call terminate.

#include <stdlib.h>
#include <exception>

void my_term ()  { exit (0); }
void my_unexp () { throw 42; }

void
f () throw (short)		// { dg-warning "deprecated" "" { target c++11 } }
{
  throw 'a';
}

int main ()
{
  std::set_terminate (my_term);
  std::set_unexpected (my_unexp); // { dg-warning "deprecated" "" { target c++11 } }

  try
    {
      f ();
    }
  catch (char)
    {
      return 2;
    }
  catch (int)
    {
      return 3;
    }
  catch (std::bad_exception)
    {
      return 4;
    }
  return 5;
}
