https://gcc.gnu.org/g:b6205ea9aa791dbe39d960440ff0f82bcbbd9e38
commit r17-5364-gb6205ea9aa791dbe39d960440ff0f82bcbbd9e38 Author: Trevor Saunders <[email protected]> Date: Fri Oct 16 17:51:15 2026 +0200 Pass an rtx_insn * to next_real_nondebug_insn The function walks insns, so take an rtx_insn * and drop the safe_as_a conversion. relax_delay_slots passes an rtx label, so cast that argument. gcc/ChangeLog: * rtl.h (next_real_nondebug_insn): Take an rtx_insn *. * emit-rtl.cc (next_real_nondebug_insn): Likewise. * reorg.cc (relax_delay_slots): Cast the label argument. Diff: --- gcc/emit-rtl.cc | 4 +--- gcc/reorg.cc | 2 +- gcc/rtl.h | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/gcc/emit-rtl.cc b/gcc/emit-rtl.cc index 8be9d595b277..9e8ff55d50ce 100644 --- a/gcc/emit-rtl.cc +++ b/gcc/emit-rtl.cc @@ -3846,10 +3846,8 @@ prev_real_insn (rtx_insn *insn) SEQUENCEs. */ rtx_insn * -next_real_nondebug_insn (rtx uncast_insn) +next_real_nondebug_insn (rtx_insn *insn) { - rtx_insn *insn = safe_as_a <rtx_insn *> (uncast_insn); - while (insn) { insn = NEXT_INSN (insn); diff --git a/gcc/reorg.cc b/gcc/reorg.cc index 4f4accda8225..8703495e6e97 100644 --- a/gcc/reorg.cc +++ b/gcc/reorg.cc @@ -3281,7 +3281,7 @@ relax_delay_slots (rtx_insn *first) We use next_real_nondebug_insn instead of next_active_insn so we don't skip USE-markers, or we'll end up with incorrect liveness info. */ - trial = next_real_nondebug_insn (target_label); + trial = next_real_nondebug_insn (as_a<rtx_insn *> (target_label)); if (trial && GET_CODE (PATTERN (trial)) != SEQUENCE && redundant_insn (trial, insn, vNULL) && ! can_throw_internal (trial)) diff --git a/gcc/rtl.h b/gcc/rtl.h index db696d699f2b..aff696b346bb 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -3465,7 +3465,7 @@ extern rtx_insn *next_nonnote_nondebug_insn_bb (rtx_insn *); extern rtx_insn *prev_real_insn (rtx_insn *); extern rtx_insn *next_real_insn (rtx_insn *); extern rtx_insn *prev_real_nondebug_insn (rtx_insn *); -extern rtx_insn *next_real_nondebug_insn (rtx); +extern rtx_insn *next_real_nondebug_insn (rtx_insn *); extern rtx_insn *prev_active_insn (rtx_insn *); extern rtx_insn *next_active_insn (rtx_insn *); extern bool active_insn_p (const rtx_insn *);
