This is a case of exception context register getting clobbered in shared library function call. GCC does not reload it when needed and this ultimately leads to semi-random word in program memory decremented by the __cp_pop_exception function. The bug is only triggered under very specific circumstances involving inline functions and nested degenerate exception handlers, that's why it existed unnoticed for quite some time.
On Wed, 13 Mar 2002 22:53:48 -0800 Terry Lambert <[EMAIL PROTECTED]> wrote: > "M. Warner Losh" wrote: > > In message: <[EMAIL PROTECTED]> > > Ed Hall <[EMAIL PROTECTED]> writes: > > : Exception-handling is broken with -O in -stable, and has been for > > years.: FreeBSD is one of the few systems that use setjmp/longjmp > > stack unwinds: to implement exceptions, so when the GCC folks broke > > that path, it was: never fixed. There are supposedly patches > > floating around that fix the: problem, but they either didn't work > > as advertised or the ball got dropped. > > > > Hmmmm, C++ exceptions work in -stable with -O and have for at least > > a year. At least they are working for us in our environment. > > What's busted? > > Per thread exception stacks? THat's where I'd look... > > -- Terry > > To Unsubscribe: send mail to [EMAIL PROTECTED] > with "unsubscribe freebsd-current" in the body of the message To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message