https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105231
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #10) > (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. That code was added by Jakub in r0-38443-g89753b3a903366, reverting the reg-equal note part fixes the testcase as well.