gcc/libstdc++-v3/libsupc++
Jonathan Wakely 329c0f891a PR libstdc++/89345 Only define std::destroying_delete for C++2a
Clang defines the __cpp_impl_destroying_delete macro unconditionally, so
that the feature is supported whenever the library type is defined. This
is incompatible with the current definition in libstdc++ because we use
constexpr and inline variables, which will give an error for older -std
modes.

This patch defines the destroying_delete_t type and destroying_delete
variable independently of the __cpp_impl_destroying_delete macro, but
only for C++2a (because the names aren't reserved for previous
standards). The __cpp_lib_destroying_delete macro is only defined when
both the library type and compiler macro are defined (i.e. when the type
can actually be used as intended).

	PR libstdc++/89345
	* include/std/version [__cpp_impl_destroying_delete]
	(__cpp_lib_destroying_delete): Only define for C++2a and later.
	* libsupc++/new [__cpp_impl_destroying_delete]
	(__cpp_lib_destroying_delete): Likewise.
	(destroying_delete_t, destroying_delete): Likewise, but define even
	when __cpp_impl_destroying_delete is not defined.
	* testsuite/18_support/destroying_delete.cc: New test.

From-SVN: r268856
2019-02-13 22:13:45 +00:00
..
array_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
atexit_arm.cc Update copyright years. 2019-01-01 13:31:55 +01:00
atexit_thread.cc Update copyright years. 2019-01-01 13:31:55 +01:00
atomic_lockfree_defines.h Update copyright years. 2019-01-01 13:31:55 +01:00
bad_alloc.cc Update copyright years. 2019-01-01 13:31:55 +01:00
bad_array_length.cc Update copyright years. 2019-01-01 13:31:55 +01:00
bad_array_new.cc Update copyright years. 2019-01-01 13:31:55 +01:00
bad_cast.cc Update copyright years. 2019-01-01 13:31:55 +01:00
bad_typeid.cc Update copyright years. 2019-01-01 13:31:55 +01:00
class_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
cxxabi_forced.h Update copyright years. 2019-01-01 13:31:55 +01:00
cxxabi_init_exception.h Update copyright years. 2019-01-01 13:31:55 +01:00
cxxabi.h Update copyright years. 2019-01-01 13:31:55 +01:00
del_op.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opa.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opant.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opnt.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_ops.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opsa.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opv.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opva.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opvant.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opvnt.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opvs.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opvsa.cc Update copyright years. 2019-01-01 13:31:55 +01:00
dyncast.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_alloc.cc Fix after P0600. 2019-01-21 11:47:30 +00:00
eh_arm.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_atomics.h Update copyright years. 2019-01-01 13:31:55 +01:00
eh_aux_runtime.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_call.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_catch.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_exception.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_globals.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_personality.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_ptr.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_term_handler.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_terminate.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_throw.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_tm.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_type.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_unex_handler.cc Update copyright years. 2019-01-01 13:31:55 +01:00
enum_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
exception Fix missing or incorrect feature test macros 2019-01-15 12:01:12 +00:00
exception_defines.h Update copyright years. 2019-01-01 13:31:55 +01:00
exception_ptr.h Update copyright years. 2019-01-01 13:31:55 +01:00
exception.h Update copyright years. 2019-01-01 13:31:55 +01:00
function_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
fundamental_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
guard_error.cc Update copyright years. 2019-01-01 13:31:55 +01:00
guard.cc Update copyright years. 2019-01-01 13:31:55 +01:00
hash_bytes.cc Update copyright years. 2019-01-01 13:31:55 +01:00
hash_bytes.h Update copyright years. 2019-01-01 13:31:55 +01:00
initializer_list Update copyright years. 2019-01-01 13:31:55 +01:00
Makefile.am Update copyright years. 2019-01-01 13:31:55 +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. 2019-01-01 13:31:55 +01:00
nested_exception.h Update copyright years. 2019-01-01 13:31:55 +01:00
new PR libstdc++/89345 Only define std::destroying_delete for C++2a 2019-02-13 22:13:45 +00:00
new_handler.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_op.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opa.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opant.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opnt.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opv.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opva.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opvant.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opvnt.cc Update copyright years. 2019-01-01 13:31:55 +01:00
pbase_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
pmem_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
pointer_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
pure.cc Update copyright years. 2019-01-01 13:31:55 +01:00
si_class_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
tinfo2.cc Update copyright years. 2019-01-01 13:31:55 +01:00
tinfo.cc Update copyright years. 2019-01-01 13:31:55 +01:00
tinfo.h Update copyright years. 2019-01-01 13:31:55 +01:00
typeinfo Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-cxx.h Update copyright years. 2019-01-01 13:31:55 +01:00
vec.cc Update copyright years. 2019-01-01 13:31:55 +01:00
vmi_class_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
vterminate.cc Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_stubs.cc Update copyright years. 2019-01-01 13:31:55 +01:00