libstdc++/68297 avoid throw/catch in make_exception_ptr
authorGleb Natapov <gleb@scylladb.com>
Mon, 22 Aug 2016 17:29:31 +0000 (17:29 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Mon, 22 Aug 2016 17:29:31 +0000 (18:29 +0100)
commit27abac26489e547861904edf53ce1f9d3358a20d
treec914b0f04c008806298aa8f5876f24d1b18fd5c1
parent4c86ffccf9f7cc4fe6290e5aacf6fb517ac9221b
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
15 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
libstdc++-v3/config/abi/pre/gnu.ver
libstdc++-v3/include/Makefile.am
libstdc++-v3/include/Makefile.in
libstdc++-v3/libsupc++/Makefile.am
libstdc++-v3/libsupc++/Makefile.in
libstdc++-v3/libsupc++/cxxabi.h
libstdc++-v3/libsupc++/cxxabi_init_exception.h [new file with mode: 0644]
libstdc++-v3/libsupc++/eh_throw.cc
libstdc++-v3/libsupc++/exception
libstdc++-v3/libsupc++/exception.h [new file with mode: 0644]
libstdc++-v3/libsupc++/exception_ptr.h
libstdc++-v3/libsupc++/typeinfo
libstdc++-v3/testsuite/util/testsuite_abi.cc