https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104362
--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> --- Or simply: --cut here-- diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index ad5a5caa413..dd5584fb8ed 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -7400,7 +7400,8 @@ find_drap_reg (void) register in such case. */ if (DECL_STATIC_CHAIN (decl) || cfun->machine->no_caller_saved_registers - || crtl->tail_call_emit) + || crtl->tail_call_emit + || crtl->calls_eh_return) return DI_REG; /* Reuse static chain register if it isn't used for parameter --cut here--