gcc/libitm/libitm.map
Torvald Riegel 258c1d0722 Support __cxa_free_exception and fix exception handling.
gcc/cp/
	* except.c (do_free_exception): Use transactional wrapper.

	libitm/
	* testsuite/libitm.c++/eh-5.C: New.
	* libitm.h (_ITM_cxa_free_exception): New.
	* libitm.map (_ITM_cxa_free_exception): Add it.
	* libitm.texi: Update ABI docs.
	* libitm_i.h (gtm_transaction_cp::cxa_unthrown): Remove.
	(gtm_transaction_cp::cxa_uncaught_count): Add.
	(gtm_thread::cxa_unthrown): Remove.
	(gtm_thread::cxa_uncaught_count_ptr): Add.
	(gtm_thread::cxa_uncaught_count): Add.
	(gtm_thread::drop_references_allocations): Rename to...
	(gtm_thread::discard_allocation): ... this and adapt.
	(gtm_thread::init_cpp_exceptions): New.
	* beginend.cc (gtm_thread::gtm_thread): Adapt EH handling.
	(gtm_thread::begin_transaction): Likewise.
	(gtm_transaction_cp::save): Likewise.
	(gtm_thread::trycommit): Likewise.
	* eh_cpp.cc: Add overview comments.
	(__cxa_eh_globals, __cxa_get_globals, __cxa_free_exception): Declare.
	(free_any_exception, _ITM_cxa_free_exception): New.
	(gtm_thread::init_cpp_exceptions): Define.
	(_ITM_cxa_allocate_exception, _ITM_cxa_throw): Adapt.
	(_ITM_cxa_begin_catch, _ITM_cxa_end_catch): Likewise.
	(gtm_thread::revert_cpp_exceptions): Likewise.

From-SVN: r230634
2015-11-20 00:10:08 +00:00

191 lines
2.8 KiB
Plaintext

LIBITM_1.0 {
global:
_ITM_abortTransaction;
_ITM_addUserCommitAction;
_ITM_addUserUndoAction;
_ITM_beginTransaction;
_ITM_changeTransactionMode;
_ITM_commitTransaction;
_ITM_commitTransactionEH;
_ITM_error;
_ITM_getTransactionId;
_ITM_inTransaction;
_ITM_libraryVersion;
_ITM_versionCompatible;
_ITM_registerTMCloneTable;
_ITM_deregisterTMCloneTable;
_ITM_getTMCloneOrIrrevocable;
_ITM_getTMCloneSafe;
_ITM_LB;
_ITM_LCD;
_ITM_LCE;
_ITM_LCF;
_ITM_LD;
_ITM_LE;
_ITM_LF;
_ITM_LM128;
_ITM_LM256;
_ITM_LM64;
_ITM_LU1;
_ITM_LU2;
_ITM_LU4;
_ITM_LU8;
_ITM_RCD;
_ITM_RCE;
_ITM_RCF;
_ITM_RD;
_ITM_RE;
_ITM_RF;
_ITM_RM128;
_ITM_RM256;
_ITM_RM64;
_ITM_RU1;
_ITM_RU2;
_ITM_RU4;
_ITM_RU8;
_ITM_RaRCD;
_ITM_RaRCE;
_ITM_RaRCF;
_ITM_RaRD;
_ITM_RaRE;
_ITM_RaRF;
_ITM_RaRM128;
_ITM_RaRM256;
_ITM_RaRM64;
_ITM_RaRU1;
_ITM_RaRU2;
_ITM_RaRU4;
_ITM_RaRU8;
_ITM_RaWCD;
_ITM_RaWCE;
_ITM_RaWCF;
_ITM_RaWD;
_ITM_RaWE;
_ITM_RaWF;
_ITM_RaWM128;
_ITM_RaWM256;
_ITM_RaWM64;
_ITM_RaWU1;
_ITM_RaWU2;
_ITM_RaWU4;
_ITM_RaWU8;
_ITM_RfWCD;
_ITM_RfWCE;
_ITM_RfWCF;
_ITM_RfWD;
_ITM_RfWE;
_ITM_RfWF;
_ITM_RfWM128;
_ITM_RfWM256;
_ITM_RfWM64;
_ITM_RfWU1;
_ITM_RfWU2;
_ITM_RfWU4;
_ITM_RfWU8;
_ITM_WCD;
_ITM_WCE;
_ITM_WCF;
_ITM_WD;
_ITM_WE;
_ITM_WF;
_ITM_WM128;
_ITM_WM256;
_ITM_WM64;
_ITM_WU1;
_ITM_WU2;
_ITM_WU4;
_ITM_WU8;
_ITM_WaRCD;
_ITM_WaRCE;
_ITM_WaRCF;
_ITM_WaRD;
_ITM_WaRE;
_ITM_WaRF;
_ITM_WaRM128;
_ITM_WaRM256;
_ITM_WaRM64;
_ITM_WaRU1;
_ITM_WaRU2;
_ITM_WaRU4;
_ITM_WaRU8;
_ITM_WaWCD;
_ITM_WaWCE;
_ITM_WaWCF;
_ITM_WaWD;
_ITM_WaWE;
_ITM_WaWF;
_ITM_WaWM128;
_ITM_WaWM256;
_ITM_WaWM64;
_ITM_WaWU1;
_ITM_WaWU2;
_ITM_WaWU4;
_ITM_WaWU8;
_ITM_memcpyRnWt;
_ITM_memcpyRnWtaR;
_ITM_memcpyRnWtaW;
_ITM_memcpyRtWn;
_ITM_memcpyRtWt;
_ITM_memcpyRtWtaR;
_ITM_memcpyRtWtaW;
_ITM_memcpyRtaRWn;
_ITM_memcpyRtaRWt;
_ITM_memcpyRtaRWtaR;
_ITM_memcpyRtaRWtaW;
_ITM_memcpyRtaWWn;
_ITM_memcpyRtaWWt;
_ITM_memcpyRtaWWtaR;
_ITM_memcpyRtaWWtaW;
_ITM_memmoveRnWt;
_ITM_memmoveRnWtaR;
_ITM_memmoveRnWtaW;
_ITM_memmoveRtWn;
_ITM_memmoveRtWt;
_ITM_memmoveRtWtaR;
_ITM_memmoveRtWtaW;
_ITM_memmoveRtaRWn;
_ITM_memmoveRtaRWt;
_ITM_memmoveRtaRWtaR;
_ITM_memmoveRtaRWtaW;
_ITM_memmoveRtaWWn;
_ITM_memmoveRtaWWt;
_ITM_memmoveRtaWWtaR;
_ITM_memmoveRtaWWtaW;
_ITM_memsetW;
_ITM_memsetWaR;
_ITM_memsetWaW;
_ITM_malloc;
_ITM_calloc;
_ITM_free;
_ITM_dropReferences;
_ZGTtnw?;
_ZGTtna?;
_ZGTtdlPv;
_ZGTtdaPv;
_ZGTtnw?RKSt9nothrow_t;
_ZGTtna?RKSt9nothrow_t;
_ZGTtdlPvRKSt9nothrow_t;
_ZGTtdaPvRKSt9nothrow_t;
_ITM_cxa_allocate_exception;
_ITM_cxa_begin_catch;
_ITM_cxa_end_catch;
_ITM_cxa_throw;
local:
*;
};
LIBITM_1.1 {
global:
_ZGTtdlPv?;
_ZGTtdlPv?RKSt9nothrow_t;
_ITM_cxa_free_exception;
} LIBITM_1.0;