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?

Reply via email to