// PR c++/17670
// { dg-do run }
#include <cstdlib>
#include <new>
bool abort_new;
void *operator new[](size_t bytes) throw (std::bad_alloc) {
if (abort_new)
abort();
return operator new (bytes);
}
struct X {};
int main () {
// Do not abort until int main is running in case startup code uses
// operator new[].
abort_new = true;
new (X);
}