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