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

2018-04-10 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #21 from Jonathan Wakely --- Author: redi Date: Tue Apr 10 14:36:09 2018 New Revision: 259281 URL: https://gcc.gnu.org/viewcvs?rev=259281&root=gcc&view=rev Log: PR libstdc++/85222 allow catching iostream errors as gcc4-compatible ios

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

2018-04-10 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 Richard Biener changed: What|Removed |Added Priority|P3 |P2

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

2018-04-09 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 Jonathan Wakely changed: What|Removed |Added Keywords||patch --- Comment #20 from Jonathan Wa

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

2018-04-09 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed|

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

2018-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #19 from Richard Biener --- Luckily both failure classes are immutable (via access limitations) so the following issue with the __dual_ios_failure idea doesn't exist: catch (old-ABI &e) { modify e in-place throw; }

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

2018-04-06 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #18 from rguenther at suse dot de --- On Fri, 6 Apr 2018, redi at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 > > --- Comment #15 from Jonathan Wakely --- > (In reply to Richard Biener from comment #

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

2018-04-06 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #17 from rguenther at suse dot de --- On Fri, 6 Apr 2018, redi at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 > > --- Comment #16 from Jonathan Wakely --- > (In reply to Jakub Jelinek from comment #1

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

2018-04-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #16 from Jonathan Wakely --- (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 w

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

2018-04-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #15 from Jonathan Wakely --- (In reply to Richard Biener from comment #13) > I'm probably going to locally patch it to be consistent with the default ABI > choice - that at least keeps programs working that do not explicitely choose >

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

2018-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #14

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

2018-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #13 from Richard Biener --- Just to mention the testcase fails in the same way if you build and run it with GCC 7 and libstdc++ from GCC 7 when that was configured with the gcc-4 compatible ABI by default. Just in case that wasn't ob

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

2018-04-05 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #12 from rguenther at suse dot de --- On Thu, 5 Apr 2018, rguenther at suse dot de wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 > > --- Comment #11 from rguenther at suse dot de --- > On Thu, 5 Apr 2018, redi at gcc

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

2018-04-05 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #11 from rguenther at suse dot de --- On Thu, 5 Apr 2018, redi at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 > > --- Comment #10 from Jonathan Wakely --- > Seems simpler to just define: > > struct

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

2018-04-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #10 from Jonathan Wakely --- Seems simpler to just define: struct __dual_ios_failure { __dual_ios_failure(std::string s, error_code e) : new_(s, e), old_(s) { } ios::failure[abi:cxx11] new_; ios::failure old_; }; and make __th

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

2018-04-05 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #9 from Richard Biener --- (In reply to Jonathan Wakely from comment #8) > (In reply to rguent...@suse.de from comment #7) > > > It's not required to fix the simple case of a legacy binary using a new > > > libstdc++.so but it breaks

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

2018-04-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #8 from Jonathan Wakely --- (In reply to rguent...@suse.de from comment #7) > > It's not required to fix the simple case of a legacy binary using a new > > libstdc++.so but it breaks other cases. > > None that are not broken right no

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

2018-04-05 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #7 from rguenther at suse dot de --- On Thu, 5 Apr 2018, redi at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 > > --- Comment #6 from Jonathan Wakely --- > (In reply to rguent...@suse.de from comment

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

2018-04-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #6 from Jonathan Wakely --- (In reply to rguent...@suse.de from comment #5) > On Thu, 5 Apr 2018, redi at gcc dot gnu.org wrote: > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 > > > > --- Comment #4 from Jonathan Wakely -

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

2018-04-05 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #5 from rguenther at suse dot de --- On Thu, 5 Apr 2018, redi at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 > > --- Comment #4 from Jonathan Wakely --- > (In reply to Richard Biener from comment #3)

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

2018-04-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #4 from Jonathan Wakely --- (In reply to Richard Biener from comment #3) > Do you know of any other exception type affected by the c++11 vs. old ABI > issue or does the entire I/O hierarchy only ever throw exactly > ios_base::failure?

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

2018-04-05 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #3 from Richard Biener --- Do you know of any other exception type affected by the c++11 vs. old ABI issue or does the entire I/O hierarchy only ever throw exactly ios_base::failure? So a workaround would be to marshal these somehow

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

2018-04-05 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #2 from Richard Biener --- (In reply to Jonathan Wakely from comment #1) > (In reply to Richard Biener from comment #0) > > A workaround is to use a libstdc++ built with --disable-libstdcxx-dual-abi > > Or to catch std::exception& T

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

2018-04-05 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 Richard Biener changed: What|Removed |Added Known to work||6.4.0 Target Milestone|---

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

2018-04-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85222 --- Comment #1 from Jonathan Wakely --- (In reply to Richard Biener from comment #0) > A workaround is to use a libstdc++ built with --disable-libstdcxx-dual-abi Or to catch std::exception&