diff --git a/gcc/reorg.c b/gcc/reorg.c index 96aa37132e8..a2d5db859ed 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -727,8 +727,12 @@ find_end_label () #ifdef HAVE_return if (HAVE_return) { - emit_jump_insn (gen_return ()); + /* The return we make may have delay slots too. */ + rtx insn = gen_return(); + emit_jump_insn (insn); emit_barrier (); + if (num_delay_slots (insn) > 0) + obstack_ptr_grow (&unfilled_slots_obstack, insn); } #endif }