aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorloewis <loewis@138bc75d-0d04-0410-961f-82ee72b054a4>2000-01-14 23:43:19 +0000
committerloewis <loewis@138bc75d-0d04-0410-961f-82ee72b054a4>2000-01-14 23:43:19 +0000
commit1424d856a75133aceaadb6bb57f76d7c5f0abd00 (patch)
tree8fa4ebc4fc9fb2948f01ef733650c1849f99ec60
parente76ab83f26f9e8cbfe00af0447fb031cb2e42677 (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.C33
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;
+}