This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] DWARF-2 unwinder off-by-one problem with signal frames
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Ulrich Weigand <weigand at i1 dot informatik dot uni-erlangen dot de>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 30 Jun 2004 09:51:23 -0400
- Subject: Re: [PATCH] DWARF-2 unwinder off-by-one problem with signal frames
- References: <200406301343.PAA26125@faui1m.informatik.uni-erlangen.de>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Wed, Jun 30, 2004 at 03:43:28PM +0200, Ulrich Weigand wrote:
> One solution I've tried (and which fixes my test case) is to handle
> this situation in MD_FROB_UPDATE_CONTEXT: when we just unwound from
> a signal frame, *increment* the return address by one (so that when
> common code decrements again, we get the result we want).
>
> This requires moving the call to MD_FROB_UPDATE_CONTEXT from
> uw_update_context_1 to uw_update_context until after the return
> address field is actually filled in.
uw_update_context_1 is not called just in uw_update_context though,
but also in uw_init_context_1.
I think you need to MB_FROB_UPDATE_CONTEXT there as well, if
not for s390, then for ppc64-linux and ppc*-aix.
Jakub