2019-08-12  Release Manager

	* GCC 9.2.0 released.

2019-07-31  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/midpoint/floating.cc: Use standard macros
	instead of GCC-specific ones.

	Backport from mainline
	2019-06-24  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/18_support/headers/cfloat/values_c++17.cc: New test.

2019-07-31  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-07-31  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/memory (make_obj_using_allocator): Qualify call to
	uses_allocator_construction_args.

2019-07-31  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-07-31  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/91308
	* include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove
	constraints on deleter that should only apply to the constructor.
	(unique_ptr<T[], D>::__safe_conversion_up): Likewise.
	(unique_ptr<T[], D>::unique_ptr(unique_ptr<U, D>&&)): Restore
	constraints on deleter here.
	* testsuite/20_util/unique_ptr/assign/91308.cc: New test.

2019-07-31  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-07-29  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/51333
	* libsupc++/cxxabi.h (__gnu_cxx::recursive_init_error): Do not define
	constructor inline.
	* libsupc++/guard_error.cc (__gnu_cxx::recursive_init_error): Define
	constructor.
	* testsuite/18_support/51333.cc: New test.

2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/bit (__cpp_lib_endian): Define.
	* include/std/version (__cpp_lib_endian): Define.
	* testsuite/26_numerics/endian/2.cc: New.
	* testsuite/26_numerics/endian/3.cc: New.
	* testsuite/26_numerics/endian/4.cc: New.

2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-07-25  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/bit (endian): Move definition here as per P1612R1.
	* include/std/type_traits (endian): Remove definition from here.
	* testsuite/20_util/endian/1.cc: Rename to ...
	* testsuite/26_numerics/endian/1.cc: ... here. Adjust header.

2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-07-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/bit (__rotl, __rotr): Change second parameter from
	unsigned int to int and handle negative values.
	(rotl, rotr): Remove check for __STRICT_ANSI__. Change second
	parameter from unsigned int to int. Add nodiscard attribute.
	* testsuite/26_numerics/bit/bitops.rot/rotl.cc: Rename to ...
	* testsuite/26_numerics/bit/bit.rotate/rotl.cc: Here. Test negative
	shifts.
	* testsuite/26_numerics/bit/bitops.rot/rotr.cc: Rename to ...
	* testsuite/26_numerics/bit/bit.rotate/rotr.cc: Here. Test negative
	shifts.

2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-07-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/bit (__ceil2): Make unrepresentable results undefined,
	as per P1355R2. Add debug assertion. Perform one left shift, not two,
	so that out of range values cause undefined behaviour. Ensure that
	shift will still be undefined if left operand is promoted.
	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Replace checks for
	unrepresentable values with checks that they are not core constant
	expressions.
	* testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: New test.

2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline (partial)
	2019-06-26  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/bit (rotl(byte, unsigned), rotr(byte, unsigned))
	(countl_zero(byte), countl_one(byte), countr_zero(byte))
	(countr_one(byte), popcount(byte), ispow2(byte), ceil2(byte))
	(floor2(byte), log2p1(byte)): Remove.
	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Remove test for
	std::byte overload.
	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise.
	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise.
	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/countl_one.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.rot/rotl.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.rot/rotr.cc: Likewise.
	
2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-07-16  Jason Merrill  <jason@redhat.com>

	* include/std/memory (uses_allocator_construction_args): Add parens
	around constraint.

2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-07-02  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_LAUNDER)
	(_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Use __has_builtin
	instead of __is_identifier to detect Clang support.

2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-23  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2017.xml: Add feature test macro for
	P0040R3.
	* doc/html/*: Regenerate.

2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-06-20  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2017.xml: Fix outdated reference to
	C++17 working draft.

2019-07-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-06-25  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/numeric (midpoint(T, T)): Avoid std::abs in constexpr
	function.

	Backport from mainline
	2019-06-24  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/numeric (midpoint(T, T)): Change implementation for
	floating-point types to avoid incorrect rounding of denormals.
	* testsuite/26_numerics/midpoint/floating.cc: Add check for correct
	rounding with denormals.
	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line numbers.
	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.

2019-07-03  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/91067
	* acinclude.m4 (libtool_VERSION): Bump to 6:27:0.
	* configure: Regenerate.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.27): Add new version. Export
	missing symbols.
	* testsuite/27_io/filesystem/iterators/91067.cc: New test.
	* testsuite/util/testsuite_abi.cc: Add new symbol version.

	Backport from mainline
	2019-07-02  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_LAUNDER)
	(_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Use __has_builtin
	instead of __is_identifier to detect Clang support.

2019-06-27  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/85494 use rand_s in std::random_device
	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_CRT_RAND_S): Define.
	* src/c++11/cow-string-inst.cc (random_device::_M_init_pretr1)
	[_GLIBCXX_USE_CRT_RAND_S]: Do nothing if rand_s will be used.
	* src/c++11/random.cc [_GLIBCXX_USE_CRT_RAND_S] (__winxp_rand_s):
	Define new function.
	(random_device::_M_init_pretr1) [_GLIBCXX_USE_CRT_RAND_S]: Do nothing
	if rand_s will be used.
	(random_device::_M_getval_pretr1) [_GLIBCXX_USE_CRT_RAND_S]: Use
	__winxp_rand_s().
	* testsuite/26_numerics/random/random_device/85494.cc: New test.

	PR libstdc++/91012
	* src/c++17/fs_path.cc (filesystem_error::_Impl): Use a string_view
	for the what_arg parameters.
	(filesystem_error::filesystem_error): Pass system_error::what() to
	the _Impl constructor.
	* testsuite/27_io/filesystem/filesystem_error/cons.cc: Ensure that
	filesystem_error::what() contains system_error::what().

2019-06-21  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-06-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90920 partially revert r263433
	* include/bits/stl_algo.h (__rotate): Restore checks for empty ranges.
	(rotate): Remove checks.
	* testsuite/25_algorithms/rotate/90920.cc: New test.

2019-06-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90281 Fix string conversions for filesystem::path
	* include/bits/fs_path.h (u8path) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]:
	Use codecvt_utf8_utf16 instead of codecvt_utf8. Use
	__str_codecvt_in_all to fail for partial conversions and throw on
	error.
	[!_GLIBCXX_FILESYSTEM_IS_WINDOWS && _GLIBCXX_USE_CHAR8_T]
	(path::_Cvt<char8_t>): Add explicit specialization.
	[_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_wconvert): Remove
	overloads.
	[_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_convert): Use
	if-constexpr instead of dispatching to _S_wconvert. Use codecvt
	instead of codecvt_utf8. Use __str_codecvt_in_all and
	__str_codecvt_out_all.
	[!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_convert): Use
	codecvt instead of codecvt_utf8. Use __str_codecvt_out_all.
	(path::_S_str_convert) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
	codecvt_utf8_utf16 instead of codecvt_utf8. Construct return values
	with allocator. Use __str_codecvt_out_all. Fallthrough to POSIX code
	after converting to UTF-8.
	(path::_S_str_convert): Use codecvt instead of codecvt_utf8. Use
	__str_codecvt_in_all.
	(path::string): Fix initialization of string types with different
	allocators.
	(path::u8string) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
	codecvt_utf8_utf16 instead of codecvt_utf8. Use __str_codecvt_out_all.
	* include/bits/locale_conv.h (__do_str_codecvt): Reorder static and
	runtime conditions.
	(__str_codecvt_out_all, __str_codecvt_in_all): New functions that
	return false for partial conversions.
	* include/experimental/bits/fs_path.h (u8path):
	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Implement correctly for mingw.
	[_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_wconvert): Add
	missing handling for char8_t. Use codecvt and codecvt_utf8_utf16
	instead of codecvt_utf8. Use __str_codecvt_in_all and
	__str_codecvt_out_all.
	[!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_convert): Use
	codecvt instead of codecvt_utf8. Use __str_codecvt_out_all.
	(path::string) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
	codecvt_utf8_utf16 instead of codecvt_utf8. Construct return values
	with allocator. Use __str_codecvt_out_all and __str_codecvt_in_all.
	(path::string) [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
	__str_codecvt_in_all.
	(path::u8string) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
	codecvt_utf8_utf16 instead of codecvt_utf8. Use __str_codecvt_out_all.
	* src/c++17/fs_path.cc (path::_S_convert_loc): Use
	__str_codecvt_in_all.
	* src/filesystem/path.cc (path::_S_convert_loc): Likewise.
	* testsuite/27_io/filesystem/path/construct/90281.cc: New test.
	* testsuite/27_io/filesystem/path/factory/u8path.cc: New test.
	* testsuite/27_io/filesystem/path/native/string.cc: Test with empty
	strings and with Unicode characters outside the basic multilingual
	plane.
	* testsuite/27_io/filesystem/path/native/alloc.cc: New test.
	* testsuite/experimental/filesystem/path/construct/90281.cc: New test.
	* testsuite/experimental/filesystem/path/factory/u8path.cc: New test.
	* testsuite/experimental/filesystem/path/native/alloc.cc: New test.
	* testsuite/experimental/filesystem/path/native/string.cc: Test with
	empty strings and with Unicode characters outside the basic
	multilingual plane.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-04-26  Jonathan Wakely  <jwakely@redhat.com>

	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace wildcard that matches
	wstring::_M_replace_dispatch with more specific patterns.
	* include/bits/fs_path.h (path::_S_convert_loc<_InputIterator>):
	Create const std::string to avoid redundant call to _S_convert_loc
	with non-const pointers.
	* include/bits/locale_conv.h (__do_str_codecvt): Use if-constexpr to
	avoid unnecessary basic_string::assign instantiations.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-04-26  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/bits/fs_path.h
	(path::_S_convert_loc<_InputIterator>): Create const std::string to
	avoid redundant call to _S_convert_loc with non-const pointers.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-29  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/88881
	* src/c++17/fs_ops.cc [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
	(status(const path&, error_code&)): Use parent_path() to remove
	trailing slash.
	(symlink_status(const path&, error_code&)): Duplicate workaround for
	bug in _wstat for paths with trailing slash.
	* testsuite/27_io/filesystem/operations/remove_all.cc: Check path
	with trailing slash.
	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
	* testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-29  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++17/fs_path.cc (path::parent_path()): Create whole path at
	once instead of building it iteratively.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-07  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/intro.xml: Fix DR 2537 and DR 2566 confusion.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/version (__cpp_lib_bind_front): Add missing macro.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-06-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/algorithm (__cpp_lib_parallel_algorithm): Fix value.
	* include/std/memory (__cpp_lib_parallel_algorithm): Likewise.
	* include/std/numeric (__cpp_lib_parallel_algorithm): Likewise.
	* testsuite/25_algorithms/pstl/feature_test.cc: New test.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-06-07  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90770
	* src/Makefile.am (stamp-debug): Also test for missing makefile.
	* src/Makefile.in: Regenerate.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-21  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90252
	* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
	Use "additional_flags" to pass -ltbb to v3_target_compile command.
	Use check_v3_target_prop_cached to cache the result of the test.

	Backport from mainline
	2019-05-20  Thomas Rodgers  <trodgers@redhat.com>

	PR libstdc++/90252
	* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
	Changed v3_target_compile check from preprocess to executable.
	Added "-ltbb" to v3_target_compile flags.

	Backport from mainline
	2019-05-20  Thomas Rodgers  <trodgers@redhat.com>

	* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
	Add check for Thread Building Blocks 2018 or later.

2019-06-14  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-21  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants.

2019-06-11  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Fix ConstexprIterator requirements tests - No constexpr algorithms!
	* testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
	Replace copy with hand-rolled loop.
	* testsuite/23_containers/array/requirements/constexpr_iter.cc:
	Ditto.

2019-06-09  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Test for C++20 p0858 - ConstexprIterator requirements.
	* testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
	New test.
	* testsuite/23_containers/array/requirements/constexpr_iter.cc:
	New test.

2019-06-05  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR c++/90598
	2019-05-02  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/experimental/propagate_const/requirements2.cc: Adjust
	dg-error.

2019-06-03  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90700
	* include/std/tuple
	(tuple(allocator_arg_t, const A&, const tuple<UTypes...>&)): Fix
	value category of template argument to _TC::_NonNestedTuple.
	* testsuite/20_util/tuple/cons/90700.cc: New test.

	PR libstdc++/90686
	* doc/xml/manual/status_cxx2014.xml: Document what's missing from
	<experimental/memory_resource>.
	* doc/xml/manual/status_cxx2020.xml: Document status of P0777R1,
	P0339R6, P0340R3, P1164R1 and P1357R1.
	* doc/html/*: Regenerate.

	* include/std/tuple (make_from_tuple): Use remove_reference_t instead
	of decay_t (P0777R1).

2019-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2017.xml: Fix typo in documentation of
	implementation-defined support for [fs.conform.9945].
	* doc/xml/manual/status_cxx2020.xml: Add feature-test macro for
	P0811R3. Change status of P1353R0.
	* doc/html/*: Regenerate.

2019-05-28  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90634
	* include/experimental/bits/fs_path.h (path::path(path&&)): Only call
	_M_split_cmpts() for a path with multiple components.
	(path::_S_is_dir_sep()): Add missing 'static' keyword to function.
	* src/filesystem/path.cc (path::_M_split_cmpts()): Count number of
	components and reserve space in vector. Return early when there is
	only one component.
	* testsuite/27_io/filesystem/path/construct/90634.cc: New test.
	* testsuite/experimental/filesystem/path/construct/90634.cc: New test.

	Backport from mainline
	2019-05-28  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/util/testsuite_fs.h (compare_paths): Use three-argument
	form of std::equals for C++11 compatibility.

2019-05-24  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-24  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/numeric (midpoint(T*, T*)): Fix incorrect result.
	* testsuite/26_numerics/midpoint/pointer.cc: Change "compile" test
	to "run".

	Backport from mainline
	2019-05-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.h (seed_seq::param): Fix non-reserved name.
	* include/experimental/type_traits (is_detected_exact)
	(is_detected_exact_v): Likewise.
	* include/pstl/execution_defs.h (is_execution_policy)
	(is_execution_policy_v, __enable_if_execution_policy): Likewise.
	* include/pstl/execution_impl.h (__policy_traits): Likewise.
	* testsuite/17_intro/names.cc: Check for more non-reserved names.
	* testsuite/experimental/names.cc: New test.

	Backport from mainline
	2019-05-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/85965
	* include/bits/hashtable.h (_Hashtable::~_Hashtable()): Remove static
	assertions from the destructor.
	* include/bits/hashtable_policy.h (_Hash_code_base::_M_hash_code):
	Move static_assert for hash function to here.
	(_Hash_table_base::_M_equals): Move static_assert for equality
	predicate to here.
	* include/bits/stl_tree.h (_Rb_tree::_S_key(_Const_Link_type)): Move
	assertions here. Access the value directly instead of calling _S_value.
	(_Rb_tree::_S_key(_Const_Base_ptr)): Do downcast and forward to
	_S_key(_Const_Link_type).
	* testsuite/23_containers/set/85965.cc: Check construction,
	destruction, assignment and size() do not trigger the assertions.
	* testsuite/23_containers/unordered_set/85965.cc: Likewise.
	* testsuite/23_containers/map/48101_neg.cc: Call find and adjust
	expected errors.
	* testsuite/23_containers/multimap/48101_neg.cc: Likewise.
	* testsuite/23_containers/multiset/48101_neg.cc: Likewise.
	* testsuite/23_containers/set/48101_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/48101_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.

2019-05-23  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-23  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/any (__any_caster): Use RTTI if comparing
	addresses fails, to support non-unique addresses in shared libraries.
	* include/std/any (__any_caster): Likewise.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Use 0 for dg-error
	line number.

	Backport from mainline
	2019-05-23  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90220
	* include/experimental/any (__any_caster): Constrain to only be
	callable for object types. Use remove_cv_t instead of decay_t.
	If the type decays or isn't copy constructible, compare the manager
	function to a dummy specialization.
	(__any_caster): Add overload constrained for non-object types.
	(any::_Manager_internal<_Op>): Add dummy specialization.
	* testsuite/experimental/any/misc/any_cast.cc: Test function types
	and array types.

2019-05-22  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90557
	* src/c++17/fs_path.cc (path::_List::operator=(const _List&)): Fix
	reversed arguments to uninitialized_copy_n.
	* testsuite/27_io/filesystem/path/assign/copy.cc: Check that source
	is unchanged by copy assignment.
	* testsuite/util/testsuite_fs.h (compare_paths): Use std::equal to
	compare path components.

2019-05-20  Jonathan Wakely  <jwakely@redhat.com>

	Backported from mainline
	2019-05-20  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/90532 Ensure __is_constructible(T[]) is false
	* include/std/type_traits (__do_is_default_constructible_impl)
	(__is_default_constructible_atom, __is_default_constructible_safe):
	Remove.
	(is_default_constructible): Use is_constructible.
	* testsuite/20_util/is_constructible/value.cc: Check int[] case.
	* testsuite/20_util/is_default_constructible/value.cc: Likewise.
	* testsuite/20_util/is_trivially_constructible/value.cc: Likewise.
	* testsuite/20_util/is_trivially_default_constructible/value.cc:
	Likewise.

2019-05-16  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-16  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++17/fs_ops.cc (absolute(const path&, error_code&))
	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove bogus assertion.

	Backport from mainline
	2019-05-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90299
	* src/c++17/fs_ops.cc (absolute(const path&)): Report an error if the
	argument is an empty path.
	(absolute(const path&, error_code&)): Use invalid_argument as error
	code instead of no_such_file_or_directory.
	* testsuite/27_io/filesystem/operations/absolute.cc: Check handling
	of non-existent paths and empty paths with both overloads of absolute.

2019-05-15  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-04-30  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/filesystem/path/decompose/root_path.cc: Remove
	macros accidentally left in.
	* testsuite/27_io/filesystem/path/native/string-char8_t.cc: Remove
	unnecessary -lstdc++fs option. Fix test for mingw.
	* testsuite/experimental/filesystem/path/native/string-char8_t.cc:
	Fix test for mingw.

	Backport from mainline
	2019-05-13  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90454.cc path construction from void*
	* include/bits/fs_path.h (path::_Path): Use remove_pointer so that
	pointers to void are rejected as well as void.
	* include/experimental/bits/fs_path.h (path::_Path): Likewise.
	* testsuite/27_io/filesystem/path/construct/80762.cc: Also check
	pointers to void.
	* testsuite/experimental/filesystem/path/construct/80762.cc: Likewise.

2019-05-13  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* doc/xml/manual/status_cxx2020.xml: Document P0811R3 status.

2019-05-11  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-05-10  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/81266
	* testsuite/util/thread/all.h: Do not use remove_pointer for
	std::thread::native_handle_type.

2019-05-10  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90397
	* include/std/variant (variant): Add noexcept to friend declaration.

	Backport from mainline
	2019-04-26  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/memory (__uses_alloc_args): Add string-literal to
	static_assert, to match the one in __uses_alloc.
	[__cpp_concepts] (_Std_pair): Use C++2a syntax for concept.
	* testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: Check
	for recursive uses-allocator construction of nested pairs.
	* testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:: Add
	comment.

	Backport from mainline
	2019-04-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90239
	* doc/xml/manual/status_cxx2020.xml: Amend P0591R4 status.
	* include/std/scoped_allocator [__cplusplus > 201703L]
	(scoped_allocator_adaptor::construct): Define in terms of
	uses_allocator_construction_args, as per P0591R4.
	* testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc: New test.
	* testsuite/util/testsuite_allocator.h: Remove name of unused
	parameter.
	* doc/html/*: Regenerate.

2019-05-03  Release Manager

	* GCC 9.1.0 released.

2019-05-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
	* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
	* config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
	* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
	* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
	* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
	Likewise.
	* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
	* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
	Likewise.

2019-04-30  Jakub Jelinek  <jakub@redhat.com>

	* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Change _Lock_policyE2 exports
	to _Lock_policyE[012].
	* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.

	* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.

2019-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2019-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.

2019-04-26  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-04-26  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/variant/run.cc: Use a new Hashable type to test
	hashing, because pmr::string depends on _GLIBCXX_USE_CXX11_ABI==1.
	* testsuite/21_strings/basic_string/hash/hash.cc
	[!_GLIBCXX_USE_CXX11_ABI]: Don't test pmr strings.
	* testsuite/21_strings/basic_string/hash/hash_char8_t.cc
	[!_GLIBCXX_USE_CXX11_ABI]: Likewise.

2019-04-26  Jonathan Wakely  <jwakely@redhat.com>

	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace wildcard that matches
	wstring::_M_replace_dispatch with more specific patterns.

2019-04-26  Jakub Jelinek  <jakub@redhat.com>

	* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.

	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.

2019-04-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90239
	* doc/xml/manual/status_cxx2020.xml: Correct status of P0591R4.
	* doc/html/*: Regenerate.

2019-04-24  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2017.xml: Document P0024R2 status.
	* doc/html/*: Regenerate.

	* include/bits/fs_path.h (operator<, operator<=, operator>)
	(operator>=, operator==, operator!=): Make hidden friends, as per
	LWG 3065.
	* testsuite/27_io/filesystem/path/native/string-char8_t.cc: Fix
	string type in test.
	* testsuite/27_io/filesystem/path/native/string.cc: Likewise.

	* include/std/any (any::any(ValueType&&)): Use __and_v.
	* include/std/numeric (midpoint(T, T, T), midpoint(T*, T*, T*)):
	Likewise.

	* include/std/tuple (apply): Use remove_reference_t instead of decay_t
	as per P0777R1.
	* include/std/type_traits (__result_of_memfun): Use remove_reference
	instead of __remove_cvref_t and remove redundant is_same check.
	(__inv_unwrap): Use __remove_cvref_t instead of decay_t.

	* include/experimental/string_view (basic_string_view::pointer)
	(basic_string_view::reference): Fix to refer to non-const value_type.
	* include/bits/basic_string.h (basic_string): Use __sv_check and
	__sv_limit instead of basic_string_view::_M_check and
	basic_string_view::_M_limit.
	* include/std/string_view (__sv_check, __sv_limit): New
	helper functions to replace basic_string_view::_M_check and
	basic_string_view::_M_limit.
	(basic_string_view): Add static assertions to enforce ill-formed
	requirement for traits_type::char_type from P1148R0, and to enforce
	required properties of char-like types.
	(basic_string_view::pointer, basic_string_view::reference): Fix to
	refer to non-const value_type.
	(basic_string_view::operator[], basic_string_view::at)
	(basic_string_view::front, basic_string_view::back)
	(basic_string_view::data): Use const_reference and const_pointer
	typedefs for return types.
	(basic_string_view::_M_check, basic_string_view::_M_limit): Remove.
	(hash<wstring_view>): Fix argument_type typedef.
	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
	char/1.cc: Fix expected return type of basic_string_view::data().
	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
	wchar_t/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
	char/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
	wchar_t/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
	New test.
	* testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
	Check reference and pointer typedefs.
	* testsuite/experimental/string_view/requirements/typedefs.cc:
	Likewise.
	* testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc:
	Fix expected return type of basic_string_view::data().
	* testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/
	1.cc: Likewise.
	* testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc:
	Likewise.
	* testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/
	1.cc: Likewise.

	PR libstdc++/90220
	* include/std/any (__any_caster): Use remove_cv_t instead of decay_t.
	Avoid a runtime check for types that can never be stored in std::any.
	* testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
	array types.

	PR libstdc++/90220 (partial)
	* include/std/any (any_cast<T>(any*), any_cast<T>(const any*)): Do
	not attempt ill-formed static_cast to pointers to non-object types.
	* testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
	function types.

	* testsuite/20_util/variant/run.cc: Catch exception by reference to
	prevent -Wcatch-value warning.

	* include/std/variant (__variant_construct): Use template parameter
	type instead of equivalent decltype-specifier.
	(_Move_ctor_base<false, Types...>::_Move_ctor_base(_Move_ctor_base&&)):
	Replace forward with move.
	(_Move_ctor_base<false, Types...>::_M_destructive_move)
	(_Move_ctor_base<false, Types...>::_M_destructive_copy)
	(_Move_ctor_base<true, Types...>::_M_destructive_move)
	(_Move_ctor_base<true, Types...>::_M_destructive_copy): Only set the
	index after construction succeeds.
	(_Copy_assign_base<false, Types...>::operator=): Remove redundant
	if-constexpr checks that are always true. Use __remove_cvref_t instead
	of remove_reference so that is_nothrow_move_constructible check
	doesn't use a const rvalue parameter. In the potentially-throwing case
	construct a temporary and move assign it, as per LWG 2904.
	(_Move_assign_base<false, Types...>::operator=): Remove redundant
	if-constexpr checks that are always true. Use emplace as per LWG 2904.
	(variant::operator=(T&&)): Only use emplace conditionally, otherwise
	construct a temporary and move assign from it, as per LWG 2904.
	* testsuite/20_util/variant/exception_safety.cc: Check that
	assignment operators have strong exception safety guarantee.

2019-04-23  Thomas Rodgers <trodgers@redhat.com>

	Document PSTL linker flags

	* doc/xml/manual/using.xml: Add PSTL linker flags to table 3.1.
	
2019-04-23  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (__detail::__variant::_Traits): Make
	_S_trivial_copy_assign depend on _S_trivial_copy_ctor and make
	_S_trivial_move_assign depend on _S_trivial_move_ctor, as per
	P0602R4.
	(__detail::__variant::_Copy_assign_alias): Only depend on
	_S_trivial_copy_assign, which subsumes _S_trivial_copy_ctor now.
	* testsuite/20_util/variant/compile.cc: Correct checks for trivial
	move assignment operators.

	PR libstdc++/90165
	* include/std/variant (variant::__not_self): New helper for the
	is_same_v<remove_cvref_t<T>, variant>==false constraints.
	(variant::__to_type_impl): Remove.
	(variant::__to_type): Add default argument to check pack size, instead
	of using __to_type_impl.
	(variant::__accepted_type): Add default argument using __not_self.
	(variant::__is_in_place_tag, variant::__not_in_place_tag): New helpers
	for variant(T&&) constructor constraint.
	(variant::variant(T&&)): Use __not_in_place_tag in constraints.
	Extract __accepted_type into a named template parameter for reuse in
	other constraints and in the exception specification.
	(variant::variant(in_place_type_t<T>, Args&&...))
	(variant::variant(in_place_type_t<T>, initializer_list<U>, Args&&...))
	(variant::variant(in_place_index_t<T>, Args&&...))
	(variant::variant(in_place_index_t<T>, initializer_list<U>, Args&&...))
	(variant::operator=T&&)): Remove redundant && from trait arguments.
	* testsuite/20_util/variant/compile.cc: Check variant(T&&) constructor
	isn't used for in_place_type or in_place_index arguments.

	* include/std/type_traits (unwrap_reference_t): Define for C++2a.
	(unwrap_ref_decay): Remove inheritance from unwrap_reference.
	* testsuite/20_util/unwrap_reference/1.cc: Adjust test to use alias.

2019-04-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Bernd Edlinger  <bernd.edlinger@hotmail.de>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/89093
	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Add
	general-regs-only target attribute for ARM.

2019-04-23  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/87431
	* include/bits/basic_string.h (_Never_valueless_alt): Make partial
	specialization also depend on is_nothrow_move_constructible.
	* include/std/variant (__detail::__variant::__never_valueless()):
	Only true if the variant would have a move assignment operator.
	(__detail::__variant::_Variant_storage<false, T...>::_M_valid()):
	Check __never_valueless<T...>().
	(variant::emplace): Only perform non-throwing move assignments
	for never-valueless alternatives if the variant has a move assignment
	operator.
	* testsuite/20_util/variant/compile.cc: Check that never-valueless
	types can be emplaced into non-assignable variants.
	* testsuite/20_util/variant/run.cc: Check that never-valueless types
	don't get copied when emplaced into non-assignable variants.

	* include/std/variant (__detail::__variant::__ref_cast): Remove
	unused function.
	(__detail::__variant::_Uninitialized::_M_get)
	(__detail::__variant::__get)
	(__gen_vtable_impl::__element_by_index_or_cookie): Add noexcept.

2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>

	* testsuite/17_intro/headers/c++1998/charset.cc: Skip for Darwin8
	to Darwin10.
	* testsuite/17_intro/headers/c++2011/charset.cc: Likewise.
	* testsuite/17_intro/headers/c++2014/charset.cc: Likewise.
	* testsuite/17_intro/headers/c++2017/charset.cc: Likewise.
	* testsuite/17_intro/headers/c++2020/charset.cc: Likewise.

2019-04-20  Thomas Rodgers <trodgers@redhat.com>

	Delegate PSTL configuration to pstl/pstl_config.h

	* include/bits/c++config: Remove explicit PSTL configuration
	macros and use definitions from <pstl/pstl_config.h>.
	
2019-04-20  Thomas Rodgers <trodgers@redhat.com>

	Cleanup algorithm implementations
	* include/pstl/glue_algorithm_impl.h (stable_sort): Forward
	execution policy.
	(mismatch): Forward execution policy.
	(equal): Qualify call to std::equal().
	(partial_sort): Forward execution policy.
	(inplace_merge): Forward execution policy.
	
2019-04-19  Thomas Rodgers <trodgers@redhat.com>
	
	Improve implementation of parallel equal()
	* include/pstl/algorithm_impl.h
	(__internal::__brick_equal): use "4 iterator" version of
	std::equal().
	(__internal::__brick_equal): use simd for random access
	iterators on unsequenced execution policies.
	(__internal::__pattern_equal): add "4 iterator" version
	(__internal::__pattern_equal): dispatch to simd __brick_equal
	for vector-only execution policies.
	(__internal::__pattern_equal): dispatch to __parallel_or for
	parallel execution policies.
	* include/pstl/glue_algorithm_impl.h
	(std::equal): dispatch to "4 iterator" version of
	__internal::__pattern_equal().
	
2019-04-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90105
	* include/bits/forward_list.h (operator==): Do not use operator!= to
	compare elements.
	(forward_list<T, A>::sort(Comp)): When elements are equal take the one
	earlier in the list, so that sort is stable.
	* testsuite/23_containers/forward_list/operations/90105.cc: New test.
	* testsuite/23_containers/forward_list/comparable.cc: Test with
	types that meet the minimum EqualityComparable and LessThanComparable
	requirements. Remove irrelevant comment.

	* include/std/variant (__detail::__variant::_Traits::_S_copy_assign):
	Do not depend on whether all alternative types are move constructible.
	(__detail::__variant::_Copy_assign_base::operator=): Remove cv-quals
	from the operand when deciding whether to perform the assignment.
	* testsuite/20_util/variant/compile.cc (DeletedMoves): Define type
	with deleted move constructor and deleted move assignment operator.
	(default_ctor, copy_ctor, move_ctor, copy_assign, move_assign): Check
	behaviour of variants with DeletedMoves as an alternative.
	* testsuite/20_util/variant/run.cc (DeletedMoves): Define same type.
	(move_ctor, move_assign): Check that moving a variant with a
	DeletedMoves alternative falls back to copying instead of moving.

	* testsuite/20_util/variant/compile.cc: Remove empty string literals
	from static_assert declarations.

	* testsuite/20_util/variant/compile.cc (MoveCtorOnly): Fix type to
	actually match its name.
	(MoveCtorAndSwapOnly): Define new type that adds swap to MoveCtorOnly.
	(test_swap()): Fix result for MoveCtorOnly and check
	MoveCtorAndSwapOnly.

	* include/std/optional (optional::value_or(U&&) &&): Add missing
	constexpr specifier.
	* testsuite/20_util/optional/constexpr/observers/4.cc: Check value_or
	for disengaged optionals and rvalue optionals.
	* testsuite/20_util/optional/observers/4.cc: Likewise.

2019-04-12  Thomas Rodgers  <trodgers@redhat.com>
	
	* include/pstl/algorithm_impl.h: Uglify identfiers.
	* include/pstl/numeric_impl.h:  Uglify identfiers.
	* include/pstl/parallel_backend_tbb.h: Uglify identfiers.

2019-04-11  Thomas Rodgers  <trodgers@redhat.com>

	* include/bits/c++config:
	Add definition for __PSTL_ASSERT.
	Add definition for __PSTL_ASSERT_MSG.
	* include/pstl/algorithm_impl.h: Replace use of assert().
	* include/pstl/numeric_impl.h: Replace use of assert().
	* include/pstl/parallel_backend_tbb.h:
	Replace use of assert().
	Replace use of __TBB_ASSERT().
	* include/pstl/parallel_backend_utils.h: Replace use of assert().

2019-04-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90046
	* src/c++17/memory_resource.cc
	(monotonic_buffer_resource::_Chunk::allocate): Increase alignment if
	needed to allow placing a _Chunk at the end of the buffer.
