gcc/
        * function.h (struct sequence_stack): Strengthen fields "first"
        and "last" from rtx to rtx_insn *.
        (struct emit_status): Likewise for fields "x_first_insn" and
        "x_last_insn".

        * emit-rtl.h (get_insns): Remove now-redundant checked cast.
        (set_first_insn): Add checked cast.
        (get_last_insn): Remove now-redundant checked cast.
        (set_last_insn): Add checked cast.

        * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
        "saved_first" and "saved_last" from rtx to rtx_insn *.
---
 gcc/config/m32c/m32c.c |  2 +-
 gcc/emit-rtl.h         | 10 ++++------
 gcc/function.h         |  8 ++++----
 3 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c
index 75f67f7..925db24 100644
--- a/gcc/config/m32c/m32c.c
+++ b/gcc/config/m32c/m32c.c
@@ -4045,7 +4045,7 @@ m32c_encode_section_info (tree decl, rtx rtl, int first)
 static int
 m32c_leaf_function_p (void)
 {
-  rtx saved_first, saved_last;
+  rtx_insn *saved_first, *saved_last;
   struct sequence_stack *seq;
   int rv;
 
diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h
index 30425c2..a7ecf1f 100644
--- a/gcc/emit-rtl.h
+++ b/gcc/emit-rtl.h
@@ -77,8 +77,7 @@ extern bool need_atomic_barrier_p (enum memmodel, bool);
 static inline rtx_insn *
 get_insns (void)
 {
-  rtx insn = crtl->emit.x_first_insn;
-  return as_a_nullable <rtx_insn *> (insn);
+  return crtl->emit.x_first_insn;
 }
 
 /* Specify a new insn as the first in the chain.  */
@@ -87,7 +86,7 @@ static inline void
 set_first_insn (rtx insn)
 {
   gcc_checking_assert (!insn || !PREV_INSN (insn));
-  crtl->emit.x_first_insn = insn;
+  crtl->emit.x_first_insn = as_a_nullable <rtx_insn *> (insn);
 }
 
 /* Return the last insn emitted in current sequence or current function.  */
@@ -95,8 +94,7 @@ set_first_insn (rtx insn)
 static inline rtx_insn *
 get_last_insn (void)
 {
-  rtx insn = crtl->emit.x_last_insn;
-  return as_a_nullable <rtx_insn *> (insn);
+  return crtl->emit.x_last_insn;
 }
 
 /* Specify a new insn as the last in the chain.  */
@@ -105,7 +103,7 @@ static inline void
 set_last_insn (rtx insn)
 {
   gcc_checking_assert (!insn || !NEXT_INSN (insn));
-  crtl->emit.x_last_insn = insn;
+  crtl->emit.x_last_insn = as_a_nullable <rtx_insn *> (insn);
 }
 
 /* Return a number larger than any instruction's uid in this function.  */
diff --git a/gcc/function.h b/gcc/function.h
index 14d1b2c..28a20f3 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -34,8 +34,8 @@ along with GCC; see the file COPYING3.  If not see
 
 struct GTY(()) sequence_stack {
   /* First and last insns in the chain of the saved sequence.  */
-  rtx first;
-  rtx last;
+  rtx_insn *first;
+  rtx_insn *last;
   struct sequence_stack *next;
 };
 
@@ -52,8 +52,8 @@ struct GTY(()) emit_status {
 
      start_sequence saves both of these on `sequence_stack' and then starts
      a new, nested sequence of insns.  */
-  rtx x_first_insn;
-  rtx x_last_insn;
+  rtx_insn *x_first_insn;
+  rtx_insn *x_last_insn;
 
   /* Stack of pending (incomplete) sequences saved by `start_sequence'.
      Each element describes one pending sequence.
-- 
1.8.5.3

Reply via email to