Andrew Haley <[EMAIL PROTECTED]> writes:

>  > > keating> Because if you *do* try to inline the call, you will get an ICE.
>  > 
>  > Yes, I agree that the ICE, if it still exists, would have to be fixed,
>  > but to me that seems like a separate issue.
> 
> No, it isn't a separate issue.  We generate an abort rather than
> ICEing.

My point is simply that the ICE is from a completely different part of
the compiler than the point where we insert the trap.

>  > > We could allow this iff someone fixes the ICE.  But we've
>  > > provided a union cast to do the work if it's *really* needed;
>  > > insn't that enough?
>  > 
>  > I don't think gcc should go down the path of inserting trap calls for
>  > all undefined code.
> 
> That is a pretty outrageous strawman.  Nobody has suggested anything
> like that.

I apologize for presenting something which appears to be a strawman
argument.  That would never be my intent.  Let me restate: I don't
think gcc should ever insert a trap call for undefined code.  We
should only insert a trap call for code which will provably trap.

>  > That is reasonable if there is nothing else that can be done.  But
>  > in this case there is something easy to do: compile the function
>  > call as directed.
> 
> If indeed that's easy to do, yes.  But I'm pretty confident the abort
> wouldn't have been inserted if that were the case.

When I read the original e-mail thread that did not seem to be the
case.

> If we're going to guarantee this stuff for the future, we'll have to
> fix the bug, make sure it's doesn't destabilize the compiler and write
> some test cases.  If we're really serious about it we should make it a
> documented extension to C.  I'm not exactly opposed to that, but I do
> wonder if it's the best use of people's time.  But this is free
> software, and people choose their own priorities.

We're currently breaking an existing free software program which
formerly worked although it relied on undefined behaviour.  Therefore,
I think that changing this would not be a complete waste of time.
Obviously I would never ask anybody else to work on it.

I personally don't agree that this needs to be a documented extension.
I'm simply going on a more general rule which I tried to state above:
I don't think we should insert a trap call for undefined code.

Ian

Reply via email to