https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90354
--- Comment #3 from vfdff <zhongyunde at huawei dot com> ---
I work on GCC 7.3, in function scan_trace, control = pat->insn (0), so it only
check whether or not a jump_insn for the first insn of sequence.
for (prev = insn, insn = NEXT_INSN (insn);
insn;
prev = insn, insn = NEXT_INSN (insn))
{
rtx_insn *control;
...
/* Handle all changes to the row state. Sequences require special
handling for the positioning of the notes. */
if (rtx_sequence *pat = dyn_cast <rtx_sequence *> (PATTERN (insn)))
{
rtx_insn *elt;
int i, n = pat->len ();
control = pat->insn (0); // it get the first insn of sequence, and
check whether or not a jump_insn ?
if (can_throw_internal (control))
notice_eh_throw (control);
dwarf2out_flush_queued_reg_saves ();
if (JUMP_P (control) && INSN_ANNULLED_BRANCH_P (control))
{
/* ??? Hopefully multiple delay slots are not annulled. */
gcc_assert (n == 2);
gcc_assert (!RTX_FRAME_RELATED_P (control));
gcc_assert (!find_reg_note (control, REG_ARGS_SIZE, NULL));
...