Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.old-deja/g++.other/delete4.C @ 144:8f4e72ab4e11
fix segmentation fault caused by nothing next cur_op to end
author | Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 23 Dec 2018 21:23:56 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do assemble } // 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 behavior // [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; // { dg-warning "NULL" } cannot return NULL } void *operator new[](size_t) { return 0; // { dg-warning "NULL" } cannot return NULL } struct X { void *operator new(size_t) { return 0; // { dg-warning "NULL" } cannot return NULL } void *operator new[](size_t) { return 0; // { dg-warning "NULL" } 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; // { dg-warning "" } deleting void delete[] d; // ok delete[] v; // { dg-warning "" } deleting void }