[Bug libstdc++/66145] [5/6/7 Regression] std::ios_base::failure objects thrown from libstdc++.so use old ABI

2016-07-12 Thread matare at lih dot rwth-aachen.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66145

--- Comment #19 from Victor Mataré  ---
> I'm not suggesting anything radical or novel, just the standard way to use
> iostreams.

I'd call that "the legacy way" or the "C-like pattern". Call it "predominant"
or "established" if you wish.

But The Standard also defines an intuitive, modern, exception-driven error
handling, and I (probably along with every other developer who dislikes leaky
abstractions) really don't see why I shouldn't be using it. Obviously the
transition issues after the inheritance change were foreseeable, so I'd expect
the C++11 standard or any accompanying document to mention it. Or does the
standardization and the resulting guidance deliberately exclude deployment
issues such as this?

Maybe anyone with more insight into the standardization process knows anything
about this?

[Bug libstdc++/66145] [5/6/7 Regression] std::ios_base::failure objects thrown from libstdc++.so use old ABI

2016-07-12 Thread matare at lih dot rwth-aachen.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66145

--- Comment #20 from Victor Mataré  ---
(In reply to Victor Mataré from comment #19)
> > I'm not suggesting anything radical or novel, just the standard way to use
> > iostreams.
> [...]
> Maybe anyone with more insight into the standardization process knows
> anything about this?

Addendum: Maybe one (probably not the best) solution could be to let the linker
throw a warning or an error, and to let the distributors sort it out.

Btw, if this triggers a bug somewhere in a larger, existing codebase, it might
be hard to track down for developers, so I think we should at least have a
warning kinda soonish.