This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Call do_pending_stack_adjust in expand_resx_expr (PR rtl-optimization/36419)


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
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]