diff options
author | Gleb Natapov <gleb@scylladb.com> | 2016-08-22 17:29:31 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2016-08-22 18:29:31 +0100 |
commit | 27abac26489e547861904edf53ce1f9d3358a20d (patch) | |
tree | c914b0f04c008806298aa8f5876f24d1b18fd5c1 /libstdc++-v3/config | |
parent | 4c86ffccf9f7cc4fe6290e5aacf6fb517ac9221b (diff) | |
download | gcc-27abac26489e547861904edf53ce1f9d3358a20d.zip gcc-27abac26489e547861904edf53ce1f9d3358a20d.tar.gz gcc-27abac26489e547861904edf53ce1f9d3358a20d.tar.bz2 |
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.
From-SVN: r239664
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 8304dee..65866a3 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 b7f54e2..f51c6f9 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 { |