diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.other/delete4.C')
| -rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/delete4.C | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.other/delete4.C b/gcc/testsuite/g++.old-deja/g++.other/delete4.C deleted file mode 100644 index 74ddcdd1545..00000000000 --- a/gcc/testsuite/g++.old-deja/g++.other/delete4.C +++ /dev/null @@ -1,53 +0,0 @@ -// Build don't link: - -// Copyright (C) 1999 Free Software Foundation, Inc. -// Contributed by Nathan Sidwell 15 Apr 1999 <nathan@acm.org> - -// delete (void *)e and delete[] (void *)e result in undefined behaviour -// [expr.delete/3]. Check we warn about them -// operator new functions can only return NULL, if their exceptions -// specification is `throw()'. All other cases must return a non-null pointer -// [expr.new/13]. - -typedef __SIZE_TYPE__ size_t; - -void *operator new(size_t) -{ - return 0; // ERROR - cannot return NULL -} -void *operator new[](size_t) -{ - return 0; // ERROR - cannot return NULL -} - -struct X -{ - void *operator new(size_t) - { - return 0; // ERROR - cannot return NULL - } - void *operator new[](size_t) - { - return 0; // ERROR - cannot return NULL - } -}; - -struct Y -{ - void *operator new(size_t) throw() - { - return 0; // ok - } - void *operator new[](size_t) throw() - { - return 0; // ok - } -}; - -void fn(double *d, void *v) -{ - delete d; // ok - delete v; // WARNING - deleting void - delete[] d; // ok - delete[] v; // WARNING - deleting void -} |
