unwind-dw2.c: Add declarations for uw_update_context and uw_frame_state_for.
* unwind-dw2.c: Add declarations for uw_update_context and uw_frame_state_for. * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is detected, advance frame state and context once to skip over stub. From-SVN: r113865
This commit is contained in:
parent
9e6fb77dba
commit
edbaf6a24d
3 changed files with 21 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
|||
2006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
|
||||
* unwind-dw2.c: Add declarations for uw_update_context and
|
||||
uw_frame_state_for.
|
||||
* pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
|
||||
detected, advance frame state and context once to skip over stub.
|
||||
|
||||
2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
|
||||
|
||||
PR middle-end/20256
|
||||
|
|
|
@ -155,7 +155,11 @@ pa_fallback_frame_state (struct _Unwind_Context *context,
|
|||
fs->regs.reg[0].how = REG_SAVED_OFFSET;
|
||||
fs->regs.reg[0].loc.offset = -24;
|
||||
|
||||
return _URC_NO_REASON;
|
||||
/* Update context to describe the stub frame. */
|
||||
uw_update_context (context, fs);
|
||||
|
||||
/* Set up fs to describe the FDE for the caller of this stub. */
|
||||
return uw_frame_state_for (context, fs);
|
||||
}
|
||||
/* Check if the return address points to a relocation stub. */
|
||||
else if (!TARGET_64BIT
|
||||
|
@ -171,7 +175,11 @@ pa_fallback_frame_state (struct _Unwind_Context *context,
|
|||
fs->regs.reg[0].how = REG_SAVED_OFFSET;
|
||||
fs->regs.reg[0].loc.offset = -8;
|
||||
|
||||
return _URC_NO_REASON;
|
||||
/* Update context to describe the stub frame. */
|
||||
uw_update_context (context, fs);
|
||||
|
||||
/* Set up fs to describe the FDE for the caller of this stub. */
|
||||
return uw_frame_state_for (context, fs);
|
||||
}
|
||||
|
||||
/* Check if the return address is an export stub as signal handlers
|
||||
|
|
|
@ -92,6 +92,10 @@ union unaligned
|
|||
signed s8 __attribute__ ((mode (DI)));
|
||||
} __attribute__ ((packed));
|
||||
|
||||
static void uw_update_context (struct _Unwind_Context *, _Unwind_FrameState *);
|
||||
static _Unwind_Reason_Code uw_frame_state_for (struct _Unwind_Context *,
|
||||
_Unwind_FrameState *);
|
||||
|
||||
static inline void *
|
||||
read_pointer (const void *p) { const union unaligned *up = p; return up->p; }
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue