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