gcc/libstdc++-v3/libsupc++
Jonathan Wakely f4130a3eb5 libstdc++: Deprecate std::unexpected and handler functions
These functions have been deprecated since C++11, and were removed in
C++17. The proposal P0323 wants to reuse the name std::unexpected for a
class template, so we will need to stop defining the current function
for C++23 anyway.

This marks them as deprecated for C++11 and up, to warn users they won't
continue to be available. It disables them for C++17 and up, unless the
_GLIBCXX_USE_DEPRECATED macro is defined.

The <unwind-cxx.h> header uses std::unexpected_handler in the public
API, but since that type is the same as std::terminate_handler we can
just use that instead, to avoid warnings about it being deprecated.

libstdc++-v3/ChangeLog:

	* doc/xml/manual/evolution.xml: Document deprecations.
	* doc/html/*: Regenerate.
	* libsupc++/exception (unexpected_handler, unexpected)
	(get_unexpected, set_unexpected): Add deprecated attribute.
	Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
	deprecated warnings.
	* libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
	* libsupc++/eh_terminate.cc: Likewise.
	* libsupc++/eh_throw.cc (__cxa_init_primary_exception):
	Likewise.
	* libsupc++/unwind-cxx.h (struct __cxa_exception): Use
	terminate_handler instead of unexpected_handler.
	(struct __cxa_dependent_exception): Likewise.
	(__unexpected): Likewise.
	* testsuite/18_support/headers/exception/synopsis.cc: Add
	dg-warning for deprecated warning.
	* testsuite/18_support/exception_ptr/60612-unexpected.cc:
	Disable deprecated warnings.
	* testsuite/18_support/set_unexpected.cc: Likewise.
	* testsuite/18_support/unexpected_handler.cc: Likewise.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp0x/lambda/lambda-eh2.C: Add dg-warning for new
	deprecation warnings.
	* g++.dg/cpp0x/noexcept06.C: Likewise.
	* g++.dg/cpp0x/noexcept07.C: Likewise.
	* g++.dg/eh/forced3.C: Likewise.
	* g++.dg/eh/unexpected1.C: Likewise.
	* g++.old-deja/g++.eh/spec1.C: Likewise.
	* g++.old-deja/g++.eh/spec2.C: Likewise.
	* g++.old-deja/g++.eh/spec3.C: Likewise.
	* g++.old-deja/g++.eh/spec4.C: Likewise.
	* g++.old-deja/g++.mike/eh33.C: Likewise.
	* g++.old-deja/g++.mike/eh34.C: Likewise.
	* g++.old-deja/g++.mike/eh50.C: Likewise.
	* g++.old-deja/g++.mike/eh51.C: Likewise.
2021-11-04 20:53:29 +00:00
..
array_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
atexit_arm.cc Update copyright years. 2021-01-04 10:26:59 +01:00
atexit_thread.cc Update copyright years. 2021-01-04 10:26:59 +01:00
atomic_lockfree_defines.h libstdc++: Fix doxygen markup for group close commands 2021-04-06 16:43:24 +01:00
bad_alloc.cc Update copyright years. 2021-01-04 10:26:59 +01:00
bad_array_length.cc Update copyright years. 2021-01-04 10:26:59 +01:00
bad_array_new.cc Update copyright years. 2021-01-04 10:26:59 +01:00
bad_cast.cc Update copyright years. 2021-01-04 10:26:59 +01:00
bad_typeid.cc Update copyright years. 2021-01-04 10:26:59 +01:00
class_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
compare libstdc++: Also move the [[nodiscard]] attributes in <compare> 2021-08-06 13:43:26 +01:00
cxxabi_forced.h Update copyright years. 2021-01-04 10:26:59 +01:00
cxxabi_init_exception.h Update copyright years. 2021-01-04 10:26:59 +01:00
cxxabi.h Update copyright years. 2021-01-04 10:26:59 +01:00
del_op.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opa.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opant.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opnt.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_ops.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opsa.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opv.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opva.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opvant.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opvnt.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opvs.cc Update copyright years. 2021-01-04 10:26:59 +01:00
del_opvsa.cc Update copyright years. 2021-01-04 10:26:59 +01:00
dyncast.cc libstdc++: Use __builtin_expect in __dynamic_cast 2021-08-23 14:45:00 +01:00
eh_alloc.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_arm.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_atomics.h Update copyright years. 2021-01-04 10:26:59 +01:00
eh_aux_runtime.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_call.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_catch.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_exception.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_globals.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_personality.cc libstdc++: Deprecate std::unexpected and handler functions 2021-11-04 20:53:29 +00:00
eh_ptr.cc libstdc++: Deprecate std::unexpected and handler functions 2021-11-04 20:53:29 +00:00
eh_term_handler.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_term_handler.h Update copyright years. 2021-01-04 10:26:59 +01:00
eh_terminate.cc libstdc++: Deprecate std::unexpected and handler functions 2021-11-04 20:53:29 +00:00
eh_throw.cc libstdc++: Deprecate std::unexpected and handler functions 2021-11-04 20:53:29 +00:00
eh_tm.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_type.cc Update copyright years. 2021-01-04 10:26:59 +01:00
eh_unex_handler.cc Update copyright years. 2021-01-04 10:26:59 +01:00
enum_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
exception libstdc++: Deprecate std::unexpected and handler functions 2021-11-04 20:53:29 +00:00
exception_defines.h Update copyright years. 2021-01-04 10:26:59 +01:00
exception_ptr.h libstdc++: Fix doxygen markup for group close commands 2021-04-06 16:43:24 +01:00
exception.h libstdc++: Improvements to Doxygen markup 2021-07-01 18:45:48 +01:00
function_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
fundamental_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
guard_error.cc Update copyright years. 2021-01-04 10:26:59 +01:00
guard.cc Update copyright years. 2021-01-04 10:26:59 +01:00
hash_bytes.cc Update copyright years. 2021-01-04 10:26:59 +01:00
hash_bytes.h Update copyright years. 2021-01-04 10:26:59 +01:00
initializer_list Update copyright years. 2021-01-04 10:26:59 +01:00
Makefile.am libstdc++: Move atomic functions to libsupc++ [PR 96657] 2021-04-15 16:56:44 +01:00
Makefile.in libstdc++: Move atomic functions to libsupc++ [PR 96657] 2021-04-15 16:56:44 +01:00
nested_exception.cc Update copyright years. 2021-01-04 10:26:59 +01:00
nested_exception.h libstdc++: Fix doxygen markup for group close commands 2021-04-06 16:43:24 +01:00
new c++: implement C++17 hardware interference size 2021-09-13 12:28:06 -04:00
new_handler.cc Update copyright years. 2021-01-04 10:26:59 +01:00
new_op.cc Update copyright years. 2021-01-04 10:26:59 +01:00
new_opa.cc libstdc++: Declare malloc for freestanding 2021-03-25 18:25:40 +00:00
new_opant.cc Update copyright years. 2021-01-04 10:26:59 +01:00
new_opnt.cc Update copyright years. 2021-01-04 10:26:59 +01:00
new_opv.cc Update copyright years. 2021-01-04 10:26:59 +01:00
new_opva.cc Update copyright years. 2021-01-04 10:26:59 +01:00
new_opvant.cc Update copyright years. 2021-01-04 10:26:59 +01:00
new_opvnt.cc Update copyright years. 2021-01-04 10:26:59 +01:00
pbase_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
pmem_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
pointer_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
pure.cc Update copyright years. 2021-01-04 10:26:59 +01:00
si_class_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
tinfo2.cc Update copyright years. 2021-01-04 10:26:59 +01:00
tinfo.cc Update copyright years. 2021-01-04 10:26:59 +01:00
tinfo.h Update copyright years. 2021-01-04 10:26:59 +01:00
typeinfo Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-cxx.h libstdc++: Deprecate std::unexpected and handler functions 2021-11-04 20:53:29 +00:00
vec.cc Update copyright years. 2021-01-04 10:26:59 +01:00
vmi_class_type_info.cc Update copyright years. 2021-01-04 10:26:59 +01:00
vterminate.cc Update copyright years. 2021-01-04 10:26:59 +01:00
vtv_stubs.cc Update copyright years. 2021-01-04 10:26:59 +01:00