mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-19 00:55:13 +08:00
f4130a3eb5
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. |
||
---|---|---|
.. | ||
array_type_info.cc | ||
atexit_arm.cc | ||
atexit_thread.cc | ||
atomic_lockfree_defines.h | ||
bad_alloc.cc | ||
bad_array_length.cc | ||
bad_array_new.cc | ||
bad_cast.cc | ||
bad_typeid.cc | ||
class_type_info.cc | ||
compare | ||
cxxabi_forced.h | ||
cxxabi_init_exception.h | ||
cxxabi.h | ||
del_op.cc | ||
del_opa.cc | ||
del_opant.cc | ||
del_opnt.cc | ||
del_ops.cc | ||
del_opsa.cc | ||
del_opv.cc | ||
del_opva.cc | ||
del_opvant.cc | ||
del_opvnt.cc | ||
del_opvs.cc | ||
del_opvsa.cc | ||
dyncast.cc | ||
eh_alloc.cc | ||
eh_arm.cc | ||
eh_atomics.h | ||
eh_aux_runtime.cc | ||
eh_call.cc | ||
eh_catch.cc | ||
eh_exception.cc | ||
eh_globals.cc | ||
eh_personality.cc | ||
eh_ptr.cc | ||
eh_term_handler.cc | ||
eh_term_handler.h | ||
eh_terminate.cc | ||
eh_throw.cc | ||
eh_tm.cc | ||
eh_type.cc | ||
eh_unex_handler.cc | ||
enum_type_info.cc | ||
exception | ||
exception_defines.h | ||
exception_ptr.h | ||
exception.h | ||
function_type_info.cc | ||
fundamental_type_info.cc | ||
guard_error.cc | ||
guard.cc | ||
hash_bytes.cc | ||
hash_bytes.h | ||
initializer_list | ||
Makefile.am | ||
Makefile.in | ||
nested_exception.cc | ||
nested_exception.h | ||
new | ||
new_handler.cc | ||
new_op.cc | ||
new_opa.cc | ||
new_opant.cc | ||
new_opnt.cc | ||
new_opv.cc | ||
new_opva.cc | ||
new_opvant.cc | ||
new_opvnt.cc | ||
pbase_type_info.cc | ||
pmem_type_info.cc | ||
pointer_type_info.cc | ||
pure.cc | ||
si_class_type_info.cc | ||
tinfo2.cc | ||
tinfo.cc | ||
tinfo.h | ||
typeinfo | ||
unwind-cxx.h | ||
vec.cc | ||
vmi_class_type_info.cc | ||
vterminate.cc | ||
vtv_stubs.cc |