This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Call do_pending_stack_adjust in expand_resx_expr (PR rtl-optimization/36419)
- From: "Richard Guenther" <richard dot guenther at gmail dot com>
- To: "Jakub Jelinek" <jakub at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 6 Jun 2008 13:56:35 +0200
- Subject: Re: [PATCH] Call do_pending_stack_adjust in expand_resx_expr (PR rtl-optimization/36419)
- References: <20080606101629.GV13386@devserv.devel.redhat.com>
On Fri, Jun 6, 2008 at 12:16 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> This patch fixes only part of the PR36419 issues. When not accumulating
> outgoing args and RESX does't result into _Unwind_Resume, but local
> jump, without this patch the stack pointer is misaligned or at different
> DW_CFA_GNU_args_size level on a label when reaching it through different
> edges.
>
> Bootstrapped/regtested on x86_64-linux, ok for trunk and 4.3.2?
Ok.
Thanks,
Richard.
> 2008-06-06 Jakub Jelinek <jakub@redhat.com>
>
> PR rtl-optimization/36419
> * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
> the emitting jump insn.
>
> --- gcc/except.c.jj 2008-04-28 11:35:55.000000000 +0200
> +++ gcc/except.c 2008-06-03 10:27:04.000000000 +0200
> @@ -540,6 +540,7 @@ expand_resx_expr (tree exp)
> cfun->eh->region_array, region_nr);
>
> gcc_assert (!reg->resume);
> + do_pending_stack_adjust ();
> reg->resume = emit_jump_insn (gen_rtx_RESX (VOIDmode, region_nr));
> emit_barrier ();
> }
>
> Jakub
>