diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/init/new11.C')
-rw-r--r-- | gcc/testsuite/g++.dg/init/new11.C | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/init/new11.C b/gcc/testsuite/g++.dg/init/new11.C new file mode 100644 index 000000000..bf06aa4e7 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/new11.C @@ -0,0 +1,21 @@ +// 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 main is running in case startup code uses + // operator new[]. + abort_new = true; + new (X); +} |