Define a new exception type derived from std::ios::failure[abi:cxx11] which also aggregates an object of the gcc4-compatible ios::failure type. Make __throw_ios_failure throw this new type for iostream errors that raise exceptions. Provide custom type info for the new type so that it can be caught by handlers for the gcc4-compatible ios::failure type as well as handlers for ios::failure[abi:cxx11] and its bases. PR libstdc++/85222 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for cxx11-ios_failure.cc to rewrite type info for __ios_failure. * src/c++11/Makefile.in: Regenerate. * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info): New types. [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. * src/c++11/ios.cc (__throw_ios_failure): Remove definition. * src/c++98/ios_failure.cc (__construct_ios_failure) (__destroy_ios_failure, is_ios_failure_handler): New functions. [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. * testsuite/27_io/ios_base/failure/dual_abi.cc: New. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to handler types, to always catch std::ios_base::failure. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/ios_base/storage/2.cc: Likewise. From-SVN: r259281
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
17_intro | Loading commit data... | |
18_support | Loading commit data... | |
19_diagnostics | Loading commit data... | |
20_util | Loading commit data... | |
21_strings | Loading commit data... | |
22_locale | Loading commit data... | |
23_containers | Loading commit data... | |
24_iterators | Loading commit data... | |
25_algorithms | Loading commit data... | |
26_numerics | Loading commit data... | |
27_io | Loading commit data... | |
28_regex | Loading commit data... | |
29_atomics | Loading commit data... | |
30_threads | Loading commit data... | |
abi | Loading commit data... | |
backward | Loading commit data... | |
config | Loading commit data... | |
data | Loading commit data... | |
decimal | Loading commit data... | |
experimental | Loading commit data... | |
ext | Loading commit data... | |
lib | Loading commit data... | |
libstdc++-abi | Loading commit data... | |
libstdc++-dg | Loading commit data... | |
libstdc++-prettyprinters | Loading commit data... | |
libstdc++-xmethods | Loading commit data... | |
performance | Loading commit data... | |
special_functions | Loading commit data... | |
tr1 | Loading commit data... | |
tr2 | Loading commit data... | |
util | Loading commit data... | |
Makefile.am | Loading commit data... | |
Makefile.in | Loading commit data... |