Implementing Exception Propagation (N2179)

Sebastian Redl sebastian.redl@getdesigned.at
Sun May 25 16:57:00 GMT 2008


Hi once more,

So I've implemented this as I said in my last mail: by splitting out the 
actual exception object and adding reference counting to that. Attached 
is a patch for this. It should be applied to the trunk. It's built 
against a tree that's about a week old.

GCC passes the test suite with this patch, except for a few tests. I've 
yet to run the test suite for the unmodified version to have a baseline 
to compare to, but I think none of the failures - except obviously the 
libstdc++ abi_check failure - have anything to do with my patch.

I've not written any tests yet, or even tried exception_ptr out. But 
normal throwing works.

This makes the questions I can't answer myself all the more pressing:

1) I've broken the C++ Base ABI. I believe that this ABI is not capable 
of supporting exception_ptr, and that breaking it is unavoidable. 
However, it seems that I should propose my changes to the base ABI group 
instead of just changing the GCC code. Who should I contact? Should I 
just send a mail to the base ABI group?

2) What should I change the exception class to? I may get an answer to 
this as a result of #1, but then, maybe not.

3) Should I change the G++ ABI namespace? It's currently __cxxabiv1. 
Should I change it to __cxxabiv2? It seems appropriate. And it would 
turn the crashes I saw when I accidentally linked against the old 
libstdc++ into load time failures.


Anyway, have fun trying out the patch. It contains an implementation of 
exception_ptr and nested_exception.

Sebastian
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: n2197,n2559.patch
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20080525/9cbf1c0d/attachment.ksh>


More information about the Libstdc++ mailing list