gcc/libstdc++-v3/libsupc++
Jason Merrill a6bb6b07f7 Implement P0722R3, destroying operator delete.
A destroying operator delete takes responsibility for calling the destructor
for the object it is deleting; this is intended to be useful for sized
delete of a class allocated with a trailing buffer, where the compiler can't
know the size of the allocation, and so would pass the wrong size to the
non-destroying sized operator delete.

gcc/c-family/
	* c-cppbuiltin.c (c_cpp_builtins): Define
	__cpp_impl_destroying_delete.
gcc/cp/
	* call.c (std_destroying_delete_t_p, destroying_delete_p): New.
	(aligned_deallocation_fn_p, usual_deallocation_fn_p): Use
	destroying_delete_p.
	(build_op_delete_call): Handle destroying delete.
	* decl2.c (coerce_delete_type): Handle destroying delete.
	* init.c (build_delete): Don't call dtor with destroying delete.
	* optimize.c (build_delete_destructor_body): Likewise.
libstdc++-v3/
	* libsupc++/new (std::destroying_delete_t): New.

From-SVN: r266053
2018-11-12 23:40:01 -05:00
..
array_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
atexit_arm.cc Update copyright years. 2018-01-03 11:03:58 +01:00
atexit_thread.cc Update copyright years. 2018-01-03 11:03:58 +01:00
atomic_lockfree_defines.h Update copyright years. 2018-01-03 11:03:58 +01:00
bad_alloc.cc Update copyright years. 2018-01-03 11:03:58 +01:00
bad_array_length.cc Update copyright years. 2018-01-03 11:03:58 +01:00
bad_array_new.cc Update copyright years. 2018-01-03 11:03:58 +01:00
bad_cast.cc Update copyright years. 2018-01-03 11:03:58 +01:00
bad_typeid.cc Update copyright years. 2018-01-03 11:03:58 +01:00
class_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
cxxabi_forced.h Update copyright years. 2018-01-03 11:03:58 +01:00
cxxabi_init_exception.h PR libstdc++/85812 fix memory leak in std::make_exception_ptr 2018-05-17 16:03:29 +01:00
cxxabi.h * libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment. 2018-09-05 16:18:16 +01:00
del_op.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_opa.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_opant.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_opnt.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_ops.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_opsa.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_opv.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opva.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_opvant.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_opvnt.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_opvs.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
del_opvsa.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
dyncast.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_alloc.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_arm.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_atomics.h Update copyright years. 2018-01-03 11:03:58 +01:00
eh_aux_runtime.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_call.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_catch.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_exception.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_globals.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_personality.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_ptr.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_term_handler.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_terminate.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_throw.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_tm.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_type.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_unex_handler.cc Update copyright years. 2018-01-03 11:03:58 +01:00
enum_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
exception Update copyright years. 2018-01-03 11:03:58 +01:00
exception_defines.h Update copyright years. 2018-01-03 11:03:58 +01:00
exception_ptr.h PR libstdc++/85812 fix memory leak in std::make_exception_ptr 2018-05-17 16:03:29 +01:00
exception.h PR libstdc++/85831 define move constructors and operators for exceptions 2018-07-05 22:29:51 +01:00
function_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
fundamental_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
guard_error.cc Update copyright years. 2018-01-03 11:03:58 +01:00
guard.cc Update copyright years. 2018-01-03 11:03:58 +01:00
hash_bytes.cc Update copyright years. 2018-01-03 11:03:58 +01:00
hash_bytes.h Update copyright years. 2018-01-03 11:03:58 +01:00
initializer_list Update copyright years. 2018-01-03 11:03:58 +01:00
Makefile.am Update copyright years. 2018-01-03 11:03:58 +01:00
Makefile.in Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
nested_exception.cc Update copyright years. 2018-01-03 11:03:58 +01:00
nested_exception.h Update copyright years. 2018-01-03 11:03:58 +01:00
new Implement P0722R3, destroying operator delete. 2018-11-12 23:40:01 -05:00
new_handler.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_op.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
new_opa.cc Minor optimisations in operator new(size_t, align_val_t) 2018-08-13 19:54:38 +01:00
new_opant.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
new_opnt.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
new_opv.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_opva.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_opvant.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
new_opvnt.cc PR libstdc++/68210 adjust operator new and delete for LWG 206 2018-08-10 21:20:27 +01:00
pbase_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
pmem_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
pointer_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
pure.cc Update copyright years. 2018-01-03 11:03:58 +01:00
si_class_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
tinfo2.cc Update copyright years. 2018-01-03 11:03:58 +01:00
tinfo.cc Update copyright years. 2018-01-03 11:03:58 +01:00
tinfo.h Update copyright years. 2018-01-03 11:03:58 +01:00
typeinfo Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-cxx.h Update copyright years. 2018-01-03 11:03:58 +01:00
vec.cc Update copyright years. 2018-01-03 11:03:58 +01:00
vmi_class_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
vterminate.cc Update copyright years. 2018-01-03 11:03:58 +01:00
vtv_stubs.cc Update copyright years. 2018-01-03 11:03:58 +01:00