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 *);

Reply via email to