This is the mail archive of the 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]

Re: [PATCH][PR middle-end/59127] Fix Ada bootstrap on x86_64-unknown-linux-gnu

On 11/15/13 02:36, Richard Biener wrote:
On Thu, Nov 14, 2013 at 9:58 PM, Jeff Law <> wrote:

This patch fixes two issues, the most important issue is the related to the
Ada build failures on the trunk.

When non-call-exceptions is on, most memory references potentially throw.
As a result those statements end basic blocks.  This causes
checking failures when the __builtin_trap is placed immediately after the
memory reference because we find the memory reference in the middle of a
basic block.

While I think we could support this with some more work, it just doesn't
seem worth the effort.  It certainly isn't something that's occurring with
any regularity AFAICT when buliding the Ada compiler/runtime system.

It's easiest to just disallow optimization when the statement that triggers
undefined behaviour ends a block -- with the exception of GIMPLE_RETURN.

Hmm, don't you simply want to look for abnormal or eh outgoing edges?
That catches all stmt-ends-bb and doesn't catch GIMPLE_RETURN.
Yea, that's better.  I've got a patch spinning now.


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