diff options
author | loewis <loewis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-14 23:43:19 +0000 |
---|---|---|
committer | loewis <loewis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-14 23:43:19 +0000 |
commit | 1424d856a75133aceaadb6bb57f76d7c5f0abd00 (patch) | |
tree | 8fa4ebc4fc9fb2948f01ef733650c1849f99ec60 | |
parent | e76ab83f26f9e8cbfe00af0447fb031cb2e42677 (diff) |
New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31432 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.ns/new1.C | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/new1.C b/gcc/testsuite/g++.old-deja/g++.ns/new1.C new file mode 100644 index 00000000000..9ffd247ef75 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.ns/new1.C @@ -0,0 +1,33 @@ +// Test whether N::operator new is different from ::operator new +#include <new> +#include <cstdlib> + +bool success; + +namespace N{ + void* operator new(size_t n){ + success = true; + return std::malloc(n); + } +} + +void *operator new(size_t n)throw(std::bad_alloc) +{ + static bool entered = false; + if(entered) + throw std::bad_alloc(); + entered = true; + void *result = N::operator new(n); + entered = false; + return result; +} + +int main() +{ + try{ + new int; + }catch(...){ + return 1; + } + return success?0:1; +} |