standards/175453: Catching C++ std::bad_cast doesn't work in FreeBSD 9.1

David Chisnall theraven at FreeBSD.org
Mon Jan 21 09:25:38 UTC 2013


On 21 Jan 2013, at 04:49, Konstantin Belousov wrote:

> Yes, quite possible. AFAIR, the 'catch' code compares the exception classes
> by the shared object ownership. It might get confused due to filter providing
> some symbols.
> 
> But I did not investigated the cause for real.

I'm investigating this.  It seems that the issue still appears when using libcxxrt instead of libsupc++ with libstdc++ (the test cases work fine with libc++ and libcxxrt), so it is likely some symbol confusion in libstdc++.

My guess would be that it's using pointer comparison for the exception type info names and these are somehow different as a result of the filter library mode.  I'll investigate further later today.

David

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-toolchain/attachments/20130121/1a4fca56/attachment.sig>


More information about the freebsd-toolchain mailing list