diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-04 18:20:21 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-04 18:20:21 +0000 |
commit | 8c5845924576f2fcdf955f299830454c290d5943 (patch) | |
tree | 5e966e9d60dc8b553e7925abbaff08734452bc3e /gcc/unwind.inc | |
parent | 2bfbbd2b275955dece7fedae08ed99e649ba8318 (diff) | |
download | gcc-8c5845924576f2fcdf955f299830454c290d5943.tar.gz |
* unwind.h (_UA_END_OF_STACK): New flag.
* unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45384 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/unwind.inc')
-rw-r--r-- | gcc/unwind.inc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/unwind.inc b/gcc/unwind.inc index 2b51ab7964b..bd867e60892 100644 --- a/gcc/unwind.inc +++ b/gcc/unwind.inc @@ -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; |