On 11/18/2015 06:22 PM, Torvald Riegel wrote:
The EH scheme that we had been using for TM / libitm doesn't work properly. We fail to handle throwing exceptions whose constructors may throw themselves. We also do not clean up properly in all situations when a transactions abort while being in the process of throwing an exception. This patch solves this particular problem by adding a transactional wrapper for __cxa_free_exception and changing the EH scheme in libitm.Follow-up patches will fix other issues that we have identified. Some of the changes to the libitm.texi ABI docs added in this patch already take this future work into account. Tested using the libitm testsuite on x86_64-linux. Are the gcc/ bits OK? gcc/cp/ * except.c (do_free_exception): Use transactional wrapper.
OK. Jason
