This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/61199] New: [trans-mem] _cxa_free_exception is not transaction safe
- From: "torvald at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 16 May 2014 10:35:32 +0000
- Subject: [Bug middle-end/61199] New: [trans-mem] _cxa_free_exception is not transaction safe
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61199
Bug ID: 61199
Summary: [trans-mem] _cxa_free_exception is not transaction
safe
Product: gcc
Version: 4.10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: torvald at gcc dot gnu.org
Created attachment 32804
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=32804&action=edit
test case
See attached test case. I'm not quite sure how we need to handle it: Is this
only called when another transaction has taken over, and we're freeing up
garbage? Or can a call to this create a situation in which we "canceled" a
previous exception throw? If the latter case holds, I guess we also need to
reset the transaction-in-flight state that libitm keeps when
cxa_allocate_exception is called. Depending on this, we either need to make it
TM-pure or add a wrapper in libitm.
Thoughts?