https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61141
--- Comment #6 from John David Anglin <danglin at gcc dot gnu.org> --- I added a gcc_assert in pa_output_call to detect branch sequences with a deleted insn. I didn't trigger. The reason the submitted patch works is the RTL "cleanup" that deletes insns in delay slots is being run after assembly output has been generated. See backtrace: Breakpoint 2, reset_all_used_flags () at ../../gcc/gcc/emit-rtl.c:2723 2723 if (INSN_P (insn)) (gdb) bt #0 reset_all_used_flags () at ../../gcc/gcc/emit-rtl.c:2723 #1 0x4000000000771df0 in verify_rtl_sharing () at ../../gcc/gcc/emit-rtl.c:2752 #2 0x4000000000bc3b58 in execute_function_todo (fn=0x800003fffdca2d20, data=0x40) at ../../gcc/gcc/passes.c:1794 #3 0x4000000000bc2090 in do_per_function (callback=0x4000000000357710, data=0x40) at ../../gcc/gcc/passes.c:1504 #4 0x4000000000bc3e0c in execute_todo (flags=64) at ../../gcc/gcc/passes.c:1834 #5 0x4000000000bc55d8 in execute_one_pass (pass=0x800000010037b7b8) at ../../gcc/gcc/passes.c:2194 #6 0x4000000000bc55d8 in execute_one_pass (pass=0x800000010037b7b8) at ../../gcc/gcc/passes.c:2194 Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) p debug_rtx (insn) (note:TI 238 239 302 NOTE_INSN_DELETED)