PR middle-end/51212: sorry out on -fgnu-tm + -fnon-call-exceptions

Aldy Hernandez aldyh@redhat.com
Thu Dec 22 20:06:00 GMT 2011


The problem here is that with -fnon-call-exceptions, a memory 
dereference may trap, but when we instrument the store, we have lost the 
landing pad information.

One solution would be to move the EH information to the TM load/store 
instrumentation builtins, but that doesn't get us around the fact that 
libitm is not exception safe, and we have no mechanism for taking and 
exception (and propagating it) in the middle of a transaction.

Richard has suggested that another alternative could be to support the 
exception case for NULL, but non-null faulting memory references would 
still cause a crash.  In this case we would simply test for NULL at the 
start of the accessors and explicitly throw the exception.

And yet a third alternative, is to disable the -fgnu-tm and 
-fnon-call-exceptions combination.  I have implemented this one, as I'd 
rather have it not work, than work half-way.

Torvald, do you have any thoughts on the matter?

Attached patch for disabling the feature, if you both agree on this 
approach.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: curr
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20111222/6e8e1c62/attachment.ksh>


More information about the Gcc-patches mailing list