unwind.h (_UA_END_OF_STACK): New flag.

* unwind.h (_UA_END_OF_STACK): New flag.
        * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.

From-SVN: r45384
This commit is contained in:
Richard Henderson 2001-09-04 11:20:21 -07:00 committed by Richard Henderson
parent 7a98d9b248
commit 4c21ef03d1
3 changed files with 12 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2001-09-04 Richard Henderson <rth@redhat.com>
* unwind.h (_UA_END_OF_STACK): New flag.
* unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
Tue Sep 4 11:16:35 2001 Jeffrey A Law (law@cygnus.com)
* h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.

View file

@ -87,6 +87,7 @@ typedef int _Unwind_Action;
#define _UA_CLEANUP_PHASE 2
#define _UA_HANDLER_FRAME 4
#define _UA_FORCE_UNWIND 8
#define _UA_END_OF_STACK 16
/* This is an opaque type used to refer to a system-specific data
structure used by the system unwinder. This context is created and

View file

@ -142,14 +142,18 @@ _Unwind_ForcedUnwind_Phase2(struct _Unwind_Exception *exc,
while (1)
{
_Unwind_FrameState fs;
int action;
code = uw_frame_state_for (context, &fs);
if (code != _URC_NO_REASON && code != _URC_END_OF_STACK)
return _URC_FATAL_PHASE2_ERROR;
/* Unwind successful. */
stop_code = (*stop) (1, _UA_FORCE_UNWIND | _UA_CLEANUP_PHASE,
exc->exception_class, exc, context, stop_argument);
action = _UA_FORCE_UNWIND | _UA_CLEANUP_PHASE;
if (code == _URC_END_OF_STACK)
action |= _UA_END_OF_STACK;
stop_code = (*stop) (1, action, exc->exception_class, exc,
context, stop_argument);
if (stop_code != _URC_NO_REASON)
return _URC_FATAL_PHASE2_ERROR;