diff options
author | Gleb Natapov <gleb@scylladb.com> | 2016-08-22 17:29:31 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2016-08-22 17:29:31 +0000 |
commit | 318f4d8be4c79aea12273233389cc66a204dbc6d (patch) | |
tree | c914b0f04c008806298aa8f5876f24d1b18fd5c1 /libstdc++-v3/config | |
parent | 9c74a23040811e2883ae2fbe828792b11daf4575 (diff) |
libstdc++/68297 avoid throw/catch in make_exception_ptr
2016-08-22 Gleb Natapov <gleb@scylladb.com>
PR libstdc++/68297
* config/abi/pre/gnu-versioned-namespace.ver: Export
__cxa_init_primary_exception and std::exception_ptr(void*).
* config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
export __cxa_init_primary_exception and std::exception_ptr(void*).
* include/Makefile.am: Add new headers.
* include/Makefile.in: Regenerate.
* libsupc++/Makefile.am: Add new headers.
* libsupc++/Makefile.in: Regenerate.
* libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
* libsupc++/cxxabi_init_exception.h: New header.
(__cxa_init_primary_exception): Declare.
* libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
(__cxa_throw): Use __cxa_init_primary_exception.
* libsupc++/exception (std::exception): Move to ...
* libsupc++/exception.h: New header.
* libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
friend declaration.
(__exception_ptr::__dest_thunk): New function template.
(std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
Use __cxa_allocate_exception and __cxa_init_primary_exception to
create exception_ptr.
* libsupc++/typeinfo: Include bits/exception.h instead of exception.
* testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239664 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/config')
-rw-r--r-- | libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver | 2 | ||||
-rw-r--r-- | libstdc++-v3/config/abi/pre/gnu.ver | 7 |
2 files changed, 9 insertions, 0 deletions
diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver index 8304dee089c..65866a380f3 100644 --- a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver +++ b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver @@ -179,6 +179,7 @@ CXXABI_2.0 { __cxa_free_exception; __cxa_free_dependent_exception; __cxa_get_exception_ptr; + __cxa_init_primary_exception; __cxa_get_globals; __cxa_get_globals_fast; __cxa_guard_abort; @@ -205,6 +206,7 @@ CXXABI_2.0 { # std::exception_ptr _ZNSt15__exception_ptr13exception_ptrC1Ev; _ZNSt15__exception_ptr13exception_ptrC2Ev; + _ZNSt15__exception_ptr13exception_ptrC1EPv; _ZNSt15__exception_ptr13exception_ptrC1ERKS0_; _ZNSt15__exception_ptr13exception_ptrC2ERKS0_; _ZNSt15__exception_ptr13exception_ptrC1EMS0_FvvE; diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index b7f54e2ae34..f51c6f961b0 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -2164,6 +2164,13 @@ CXXABI_1.3.10 { } CXXABI_1.3.9; +CXXABI_1.3.11 { + + __cxa_init_primary_exception; + _ZNSt15__exception_ptr13exception_ptrC1EPv; + +} CXXABI_1.3.10; + # Symbols in the support library (libsupc++) supporting transactional memory. CXXABI_TM_1 { |