C++ exception implementation (tangent)
Joerg Sonnenberger
joerg at britannica.bec.de
Fri Feb 4 05:11:42 PST 2005
On Thu, Feb 03, 2005 at 09:32:29PM -0500, David Cuthbert wrote:
> Greg 'groggy' Lehey wrote:
> >You'll notice that [C++ exceptions are] implemented with
> >setjmp()/longjmp().
>
> Is this the current state of g++?
The current GCC C++ frontend supports multiple mechanisms for
exception handling, setjmp/longjmp is one of them.
> I thought -- perhaps incorrectly -- that EDG-based compilers used lookup
> tables based on the PC. This imposes no performance hit in the cases
> where the exception isn't invoked -- it's popular for this reason. I
> thought that g++ was heading in this direction, but I haven't been
> following the changes terribly closely.
I'm pretty sure this is exactly the case. IIRC there's still a minor
performance penalty for exception setup, but it's very small compared
to the older approach.
Joerg
More information about the Kernel
mailing list