[Patch RFC] N2179: Exception Propagation
Sun Jun 1 12:20:00 GMT 2008
The attached patch modifies libsupc++ to implement std::exception_ptr.
It should apply cleanly to the trunk as of two days ago. No regressions
on x86-64 and i686 targets. A small number of test cases for
exception_ptr is included.
A write-up of what I changed is here:
This is also the formal description of the necessary extension of the
The following backward compatibility statements apply:
1) Code that links dynamically against libsupc++ should continue to work
2) Object files generated by different compiler versions can be linked
together freely. (Barring restrictions from other places.)
3) Code that links statically against libsupc++ need only be relinked to
use the new library.
4) Code consisting of multiple dynamic modules, some of which are
statically linked against libsupc++, needs to be consistent in the
version it links to. Having both an old and a new version of libsupc++
in a single loaded process is not supported; throwing exceptions between
modules will lead to crashes and even silent misbehavior.
It is my understanding that throwing exceptions between modules that
statically link against libsupc++ was never actually supported in the
first place, even if they were all the same version, so #4 should not be
The adds a source file to libsupc++, so you'll have to run automake in
the libstdc++-v3 directory. The Makefile.in diffs are not included in
the patch, because my automake 2.62 modified a lot of them.
Comments are welcome.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
More information about the Libstdc++