This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/61199] New: [trans-mem] _cxa_free_exception is not transaction safe


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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]