diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c index 962c88e3c1b..adc3f36f13b 100644 --- a/gcc/config/i386/winnt.c +++ b/gcc/config/i386/winnt.c @@ -1231,6 +1231,10 @@ i386_pe_seh_unwind_emit (FILE *asm_out_file, rtx_insn *insn) seh = cfun->machine->seh; if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_SWITCH_TEXT_SECTIONS) { + /* See ix86_seh_fixup_eh_fallthru for the rationale. */ + rtx_insn *prev = prev_active_insn (insn); + if (prev && !insn_nothrow_p (prev)) + fputs ("\tnop\n", asm_out_file); fputs ("\t.seh_endproc\n", asm_out_file); seh->in_cold_section = true; return;