__cxa_rethrow

Jim Dehnert dehnert at transmeta.com
Wed Feb 28 08:10:40 UTC 2001


Richard Henderson wrote:
> 
> How are the following two statements reconciled?
> 
>    1.3
>    _Unwind_Resume should not be used to implement rethrowing. To the
>    unwinding runtime, the catch code that rethrows was a handler, and
>    the previous unwinding session was terminated before entering it.
>    Rethrowing is implemented by calling _Unwind_RaiseException again
>    with the same exception object.
> 
>    2.5.4
>    [__cxa_rethrow] then returns to the handler that called it, which
>    must call __cxa_end_catch(), perform any necessary cleanup, and
>    finally call _Unwind_Resume() to continue unwinding.

Christophe can provide more definitive information, but I think that 1.3
simply means that a rethrow is not accomplished by _just_ directly calling
_Unwind_Resume.  Instead the user code which is rethrowing must return to
its personality routine, which has some work to do before resuming.

Jim
-- 
-	    Jim Dehnert		dehnert at transmeta.com
	    (408)919-6984	dehnertj at acm.org




More information about the cxx-abi-dev mailing list