https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105231

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Eric Botcazou from comment #8)
> > Yes, but still the float_extend:XF would have made may_trap_p say
> > the insn possibly traps but there's no EH on it despite
> > -fnon-call-exceptions.
> 
> The REG_EH note is added by make_reg_eh_region_note but then removed by
> purge_dead_edges because of the REG_EQUAL note:
> 
>   /* If this instruction cannot trap, remove REG_EH_REGION notes.  */
>   if (NONJUMP_INSN_P (insn)
>       && (note = find_reg_note (insn, REG_EH_REGION, NULL)))
>     {
>       rtx eqnote;
> 
>       if (! may_trap_p (PATTERN (insn))
>         || ((eqnote = find_reg_equal_equiv_note (insn))
>             && ! may_trap_p (XEXP (eqnote, 0))))
>       remove_note (insn, note);
>     }

Interesting - so should combine maybe have this exception as well when it
tests for may_trap_p?  Not sure if the above makes sense.

Reply via email to