View | Details | Return to bug 41440 | Differences between
and this patch

Collapse All | Expand All

(-)cfgexpand.c (+12 lines)
Lines 3165-3170 Link Here
3165
	}
3165
	}
3166
    }
3166
    }
3167
3167
3168
  /* Expanded RTL can create a jump in the last instruction of block.
3169
     This later might be assumed to be a jump to successor and break edge insertion.
3170
     We need to insert dummy move to prevent this. PR41440. */
3171
  if (single_succ_p (bb)
3172
      && (single_succ_edge (bb)->flags & EDGE_FALLTHRU)
3173
      && (last = get_last_insn ())
3174
      && JUMP_P (last))
3175
    {
3176
      rtx dummy = gen_reg_rtx (SImode);
3177
      emit_insn_after_noloc (gen_move_insn (dummy, dummy), last, NULL);
3178
    }
3179
3168
  do_pending_stack_adjust ();
3180
  do_pending_stack_adjust ();
3169
3181
3170
  /* Find the block tail.  The last insn in the block is the insn
3182
  /* Find the block tail.  The last insn in the block is the insn

Return to bug 41440