C++ exception implementation (tangent)

David Cuthbert dacut at kanga.org
Thu Feb 3 18:32:29 PST 2005


Greg 'groggy' Lehey wrote:
You'll notice that [C++ exceptions are] implemented with setjmp()/longjmp().
Is this the current state of g++?

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.

Win32 compilers modify a global pointer used by the OS for structured 
exception handling (their equivalent of signal handlers).  I find it 
rather elegant, but no compilers take full advantage of it.





More information about the Kernel mailing list