Need for __uncatch_exception
Mark Mitchell
mark at codesourcery.com
Fri Jul 21 06:14:33 UTC 2000
>>>>> "Christophe" == Christophe de Dinechin <ddd at cup.hp.com> writes:
Christophe> I proposed we close C-17 on the basis that
Christophe> __uncatch_exception is an "internal" routine to lib++
Christophe> or whatever the support library is, and is never used
Christophe> in compiler-generated code.
I don't believe I opened this issue, but that's possible.
This function is called from compiler-generated code. It's called
whenever a rethrow occurs. In fact, this issue turns out to be bigger
than just __uncatch_exception. It looks like g++ calls a function
called "__cp_push_exception" right before it throws an exception; then
it calls some more basic "throw" function. In the case of a rethrow,
it calls "__uncatch_exception" right before the call to the throw
function.
Note that this is not at all what is described in the
exception-handling document. Then again that document is not at all
finished. It doesn't say much about the Level 2 or Level 3
exception-handling stuff. I don't think there's presently enough
there to implement.
I haven't looked much at the exception-handling stuff because we are
not presently planning on doing these bits. My understanding is that
Red Hat is doing that work under contract from Intel. It looks like
only the basic personality routine stuff is complete in GCC; it does
not look like any C++-specific stuff is done. (That's unsurprising
given that the spec doesn't look finished.)
I'm somewhat distressed. It looks to me like this is still pretty
well wide open. In practice, I know of three compilers that will be
using the g++ runtime, relatively unchanged. That means that I think
we should probably considering standardizing its behavior, and perhaps
rationalizing its naming choices, etc., but not making radical changes
to its existing interface.
--
Mark Mitchell mark at codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
More information about the cxx-abi-dev
mailing list