Go to file
Jonathan Wakely 7fb65a8759 PR libstdc++/90388 fix std::hash<unique_ptr<T,D>> bugs
A disabled specialization should not be callable, so move the function
call operator into a new base class which correctly implements the
disabled hash semantics. For the versioned namespace configuration do
not derive from __poison_hash in the enabled case, as the empty base
class serves no purpose but potentially increases the object size. For
the default configuration that base class must be kept, to preserve
layout.

An enabled specialization should not be unconditionally noexcept,
because the underlying hash object might throw.

	PR libstdc++/90388
	* include/bits/unique_ptr.h (default_delete, default_delete<T[]>):
	Use _Require for constraints.
	(operator>(nullptr_t, const unique_ptr<T,D>&)): Implement exactly as
	per the standard.
	(__uniq_ptr_hash): New base class with conditionally-disabled call
	operator.
	(hash<unique_ptr<T,D>>): Derive from __uniq_ptr_hash.
	* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line.
	* testsuite/20_util/unique_ptr/hash/90388.cc: New test.

From-SVN: r271078
2019-05-10 22:41:16 +01:00
INSTALL
config re PR lto/85574 (LTO bootstapped binaries differ) 2019-05-02 13:58:47 +00:00
contrib * gennews (files): Add files for GCC 9. 2019-05-03 09:40:10 +02:00
fixincludes re PR bootstrap/89864 (gcc fails to build/bootstrap with XCode 10.2) 2019-04-18 06:53:21 +00:00
gcc re PR fortran/61968 (ICE (assembly failure) due to wrongly generating a vtable for TYPE(*) / BT_ASSUMED_TYPE) 2019-05-10 20:14:22 +00:00
gnattools
gotools re PR go/89406 (Go testing leaves many temporary directories in /tmp around) 2019-03-01 05:25:36 +00:00
include libiberty.h (vasprintf): Don't declare if HAVE_DECL_VASPRINTF is not defined. 2019-04-26 09:35:01 -06:00
intl
libada
libatomic
libbacktrace re PR libbacktrace/89669 (/usr/ccs/bin/ld: Unsatisfied symbols: backtrace_uncompress_zdebug) 2019-03-11 20:40:34 +00:00
libcc1
libcpp [libcpp] Reimplement mkdeps data structures 2019-05-07 18:13:57 +00:00
libdecnumber
libffi
libgcc Enable support for bfloat16 which will be in Future Cooper Lake. 2019-05-08 10:21:40 +00:00
libgfortran Makefile.am (gfor_cdir): Remove $(MULTISUBDIR). 2019-05-02 15:02:27 +02:00
libgo libgo: add Debugging section to README 2019-05-08 22:07:40 +00:00
libgomp Address compiler diagnostics in libgomp.oacc-c-c++-common/pr87835.c 2019-05-08 12:01:30 +02:00
libhsail-rt
libiberty d-demangle.c (dlang_parse_assocarray): Correctly handle error result. 2019-04-30 08:39:14 -06:00
libitm Makefile.am (finclude): Remove. 2019-05-03 09:20:04 +02:00
libobjc re PR target/89093 (C++ exception handling clobbers d8 VFP register) 2019-04-23 12:03:41 +02:00
liboffloadmic
libphobos Check if Solaris ld supports -z relax=transtls 2019-05-07 10:38:45 +00:00
libquadmath
libsanitizer LOCAL_PATCHES: Add revision. 2019-04-08 13:09:26 +00:00
libssp
libstdc++-v3 PR libstdc++/90388 fix std::hash<unique_ptr<T,D>> bugs 2019-05-10 22:41:16 +01:00
libvtv Fix testsuite 2019-02-20 08:07:19 -08:00
lto-plugin Remove a legacy lto-symtab.c file. 2019-02-26 17:27:36 +00:00
maintainer-scripts crontab: Snapshots from trunk are now GCC 10 related. 2019-05-04 13:28:49 +00:00
zlib
.dir-locals.el
.gitattributes
.gitignore
ABOUT-NLS
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
ChangeLog Resign as IA-64 maintainer. 2019-05-07 10:46:51 -07:00
ChangeLog.jit
ChangeLog.tree-ssa
MAINTAINERS Resign as IA-64 maintainer. 2019-05-07 10:46:51 -07:00
Makefile.def
Makefile.in re PR lto/85574 (LTO bootstapped binaries differ) 2019-05-02 13:58:47 +00:00
Makefile.tpl re PR lto/85574 (LTO bootstapped binaries differ) 2019-05-02 13:58:47 +00:00
README
ar-lib
compile
config-ml.in
config.guess
config.rpath
config.sub
configure PR d/87799 Fix D build on windows hosts 2019-04-14 09:52:22 +00:00
configure.ac PR d/87799 Fix D build on windows hosts 2019-04-14 09:52:22 +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
multilib.am
symlink-tree
test-driver
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.