On Mon, Mar 7, 2022 at 6:23 AM Jakub Jelinek <ja...@redhat.com> wrote: > > On Mon, Mar 07, 2022 at 05:57:40AM -0800, H.J. Lu via Gcc-patches wrote: > > --- a/gcc/config/i386/i386.cc > > +++ b/gcc/config/i386/i386.cc > > @@ -9444,9 +9444,8 @@ ix86_expand_epilogue (int style) > > rtx sa = EH_RETURN_STACKADJ_RTX; > > rtx_insn *insn; > > > > - /* %ecx can't be used for both DRAP register and eh_return. */ > > - if (crtl->drap_reg) > > - gcc_assert (REGNO (crtl->drap_reg) != CX_REG); > > + /* Stack realignment doesn't work with eh_return. */ > > + gcc_assert (!crtl->stack_realign_needed); > > Shouldn't this be error or sorry? Otherwise, won't > calls to __builtin_eh_return from random testcases where > stack realignment is needed or even with regparm nested functions > just ICE?
Fixed in the v3 patch: https://gcc.gnu.org/pipermail/gcc-patches/2022-March/591307.html Thanks. > > > > /* regparm nested functions don't work with eh_return. */ > > gcc_assert (!ix86_static_chain_on_stack); > > Jakub > -- H.J.