[Bug libstdc++/85222] [7/8 Regression] ABI breakage of __throw_ios_failure by r244498

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Apr 6 08:38:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222

--- Comment #16 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #14)
> For the in-place transformation in libsupc++ if something catches the old
> failure and a new failure is thrown, is it possible?  The other way around,
> if we would be throwing the new failure and catching the old one, doesn't
> seem to be possible, the cxx11 failure is bigger (32 bytes compared to 16
> bytes for the old one).

I must be misunderstanding the scenario you're describing, because to me it
seems like we could use 32 bytes to store a 16 byte object, but not the other
way around.

Anyway, I think in-place transformations are not an option. Code could have
pointers to the data in the original exception. If we destroy it and create a
new object in the same location we invalidate those pointers.


More information about the Gcc-bugs mailing list