#include <new>
#include <cstddef>
extern "C" void exit (int);
extern "C" void abort (void);
extern void * operator new[] (std::size_t s)
#if __cplusplus < 201103L
throw (std::bad_alloc)
#endif
;
extern void operator delete[] (void *p) throw ();
struct A
{
  A() { throw 1; }
  ~A() {}
};
int ret = 1;
void
new1_x ()
{
  try
    {
      A *p = new A[4];
    }
  catch (...) {}
  if (ret != 0)
    abort ();
  exit (0);
}