Go to file
Jonathan Wakely 5f30251862 PR libstdc++/85222 allow catching iostream errors as gcc4-compatible ios::failure
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
2018-04-10 15:36:09 +01:00
INSTALL
config Use dlsym to check if libdl is needed for plugin 2018-04-05 10:49:39 -07:00
contrib test_summary: handle single quotes 2018-03-21 09:47:12 +01:00
fixincludes inclhack.def (aix_stdlib_vec_malloc): New. 2018-02-22 11:12:26 -05:00
gcc PR c++/85312 - P0962 cleanup 2018-04-10 16:28:54 +02:00
gnattools Update copyright years. 2018-01-03 11:03:58 +01:00
gotools Makefile.am (check-runtime): Pass -test.timeout with GOTOOLS_TEST_TIMEOUT. 2018-03-21 16:46:37 +01:00
include [IEPM] Introduce inline entry point markers 2018-02-09 02:22:11 +00:00
intl Require ngettext in test of system gettext implementation 2017-11-07 15:24:01 +10:30
libada Update copyright years. 2018-01-03 11:03:58 +01:00
libatomic S/390: libatomic: Fix 16 byte atomic exchange 2018-03-09 12:32:22 +00:00
libbacktrace re PR other/85161 (Test case failures in libbacktrace on powerpc64 BE starting with r253456) 2018-04-04 19:18:14 +02:00
libcc1 Update copyright years. 2018-01-03 11:03:58 +01:00
libcpp * es.po: Update. 2018-03-27 23:31:08 +01:00
libdecnumber Do not use bit and for conjunction of predicates (PR c/81272). 2018-02-19 18:29:20 +00:00
libffi Import from libffi master repository. 2017-10-03 14:26:31 -04:00
libgcc RISC-V: Support for FreeBSD. 2018-04-06 13:04:17 -07:00
libgfortran re PR libfortran/85253 (asan detects heap-buffer-overflow in matmul_r4.c) 2018-04-06 18:49:21 +00:00
libgo runtime: don't check for stale runtime 2018-03-26 19:29:27 +00:00
libgomp [nvptx] Fix neutering of bb with only cond jump 2018-04-05 08:36:37 +00:00
libhsail-rt Update copyright years. 2018-01-03 11:03:58 +01:00
libiberty libiberty: fix URL for demangler ABI 2018-03-02 20:20:37 +00:00
libitm CET shouldn't be enabled in 32-bit run-time libraries by defualt 2018-02-19 17:25:49 +01:00
libmpx CET shouldn't be enabled in 32-bit run-time libraries by defualt 2018-02-19 17:25:49 +01:00
libobjc CET shouldn't be enabled in 32-bit run-time libraries by defualt 2018-02-19 17:25:49 +01:00
liboffloadmic Update copyright years. 2018-01-03 11:03:58 +01:00
libquadmath CET shouldn't be enabled in 32-bit run-time libraries by defualt 2018-02-19 17:25:49 +01:00
libsanitizer re PR sanitizer/84761 (AddressSanitizer is not compatible with glibc 2.27 on x86) 2018-03-19 21:47:29 +01:00
libssp CET shouldn't be enabled in 32-bit run-time libraries by defualt 2018-02-19 17:25:49 +01:00
libstdc++-v3 PR libstdc++/85222 allow catching iostream errors as gcc4-compatible ios::failure 2018-04-10 15:36:09 +01:00
libvtv CET shouldn't be enabled in 32-bit run-time libraries by defualt 2018-02-19 17:25:49 +01:00
lto-plugin Update copyright years. 2018-01-03 11:03:58 +01:00
maintainer-scripts gcc_release (build_sources): Use getconf to get at the number of cores in the system and pass -jN to gcc_build. 2018-01-25 10:22:38 +00:00
zlib re PR bootstrap/79771 (in-tree zlib breaks build) 2017-03-14 23:01:23 -06:00
.dir-locals.el
.gitattributes
.gitignore .gitignore: Ignore in-tree prerequisites. 2016-09-09 17:20:55 -04:00
ABOUT-NLS
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
ChangeLog Fix ChangeLog 2018-04-06 21:07:38 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
MAINTAINERS MAINTAINERS: Remove redundant Write-After-Approval entry. 2018-04-02 01:31:19 +00:00
Makefile.def Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
Makefile.in Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
Makefile.tpl Fix profiledbootstrap. 2017-10-27 13:13:05 +00:00
README
compile
config-ml.in config-ml.in: Remove references to GCJ. 2016-11-15 16:34:02 +00:00
config.guess config.guess: Import latest version. 2018-01-03 15:25:18 +11:00
config.rpath
config.sub config.guess: Import latest version. 2018-01-03 15:25:18 +11:00
configure WebAssembly: Disable subdirectory configuration for unsupported LD 2018-02-13 13:01:33 +00:00
configure.ac WebAssembly: Disable subdirectory configuration for unsupported LD 2018-02-13 13:01:33 +00:00
depcomp
install-sh
libtool-ldflags
libtool.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
missing
mkdep
mkinstalldirs
move-if-change
symlink-tree
ylwrap

README

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.