+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
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
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
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; }