2021-12-15  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_iterator.h
	(std::pointer_traits<__gnu_cxx::__normal_iterator<>>): Remove.
	(std::__to_address(const __gnu_cxx::__normal_iterator<>&)): New for C++11 to C++17.
	* include/debug/safe_iterator.h
	(std::__to_address(const __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<>,
	_Sequence>&)): New for C++11 to C++17.
	* testsuite/24_iterators/normal_iterator/to_address.cc: Add check on std::vector::iterator
	to validate both __gnu_cxx::__normal_iterator<> __to_address overload in normal mode and
	__gnu_debug::_Safe_iterator in _GLIBCXX_DEBUG mode.

2021-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/71557
	* include/bits/locale_facets_nonio.tcc (_M_extract_via_format):
	Compare characters other than format specifiers and whitespace
	case insensitively.
	(_M_extract_name): Compare characters case insensitively.
	* testsuite/22_locale/time_get/get/char/71557.cc: New test.
	* testsuite/22_locale/time_get/get/wchar_t/71557.cc: New test.

2021-12-14  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103687
	* testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Restore
	original locale before returning.
	* testsuite/22_locale/time_get/get_time/char/2.cc: Check for %p
	in locale's T_FMT and adjust accordingly.
	* testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise.

2021-12-14  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102447
	* include/bits/regex_compiler.h (_Compiler::_BracketState): New
	class.
	(_Compiler::_BrackeyMatcher): New alias template.
	(_Compiler::_M_expression_term): Change pair<bool, CharT>
	parameter to _BracketState. Process first character for
	ECMAScript syntax as well as POSIX.
	* include/bits/regex_compiler.tcc
	(_Compiler::_M_insert_bracket_matcher): Pass _BracketState.
	(_Compiler::_M_expression_term): Use _BracketState to store
	state between calls. Improve handling of dashes in ranges.
	* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
	Add more tests for ranges containing dashes. Check invalid
	ranges with character class at the beginning.

2021-12-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/ext/pointer.h (_Relative_pointer_impl::_UIntPtrType):
	Rename to uintptr_t and define as __UINTPTR_TYPE__.

2021-12-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex_constants.h (__syntax_option, __match_flag):
	Remove.
	(syntax_option_type, match_flag_type): Define enumerators.
	Use to initialize globals. Add constexpr to compound assignment
	operators.
	* include/bits/regex_error.h (error_type): Add comment.
	* testsuite/28_regex/constants/constexpr.cc: Remove comment.
	* testsuite/28_regex/constants/error_type.cc: Improve comment.
	* testsuite/28_regex/constants/match_flag_type.cc: Check bitmask
	requirements.
	* testsuite/28_regex/constants/syntax_option_type.cc: Likewise.

2021-12-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex_compiler.tcc (_Compiler::_M_match_token):
	Use reserved name for parameter.
	* testsuite/17_intro/names.cc: Check "token".

2021-12-13  Jonathan Wakely  <jwakely@redhat.com>

	* scripts/make_exports.pl: Replace '?' with '.' when turning
	a glob into a regex.

2021-12-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_base.h (ranges::size, ranges::empty): Add
	explicit check for unbounded arrays before using ranges::begin.
	* testsuite/std/ranges/access/empty.cc: Check handling of unbounded
	arrays.
	* testsuite/std/ranges/access/size.cc: Likewise.

2021-12-13  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103664
	* include/bits/regex.h (__regex_replace): Declare.
	(regex_replace): Use it.
	* include/bits/regex.tcc (__regex_replace): Replace regex_replace
	definition with __regex_replace.
	* testsuite/28_regex/algorithms/regex_replace/char/103664.cc: New test.

2021-12-11  Jason Merrill  <jason@redhat.com>

	PR c++/103534
	* include/bits/basic_string.h (append (basic_string)): Call pointer
	append instead of _M_append directly.

2021-12-10  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/71367
	* config/locale/dragonfly/time_members.cc (_M_initialize_timepunct):
	Initialize "C" _M_am_pm_format to %I:%M:%S %p rather than empty
	string.
	* config/locale/gnu/time_members.cc (_M_initialize_timepunct):
	Likewise.
	* config/locale/generic/time_members.cc (_M_initialize_timepunct):
	Likewise.
	* include/bits/locale_facets_nonio.h (_M_am_pm_format): New method.
	* include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Handle
	%r.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_am_pm_format
	with const _CharT** argument, ensure it isn't exported in GLIBCXX_3.4.
	* testsuite/22_locale/time_get/get/char/71367.cc: New test.
	* testsuite/22_locale/time_get/get/wchar_t/71367.cc: New test.

2021-12-10  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/78714
	* include/bits/locale_facets_nonio.tcc (_M_extract_via_format):
	Mention in function comment it interprets strptime format string
	rather than strftime.  Handle %a and %A the same by accepting both
	full and abbreviated names.  Similarly handle %h, %b and %B the same.
	Handle %d and %e the same by accepting possibly optional single space
	and 1 or 2 digits.  For %I store tm_hour 0 instead of tm_hour 12.  For
	%t and %n skip any whitespace.  Handle %p and %%.  For whitespace in
	the string skip any whitespace.
	(_M_extract_num): For __len == 2 accept 1 or 2 digits rather than
	always 2.  Don't punt early if __value * __mult is larget than __max
	or smaller than __min - __mult, instead punt if __value > __max.
	At the end verify __value is in between __min and __max and punt
	otherwise.
	(_M_extract_name): Allow non-unique names or names which are prefixes
	of other names.  Don't recompute lengths of names for every character.
	* testsuite/22_locale/time_get/get/char/3.cc: New test.
	* testsuite/22_locale/time_get/get/wchar_t/3.cc: New test.
	* testsuite/22_locale/time_get/get_date/char/12791.cc (test01): Use
	62 instead 60 and expect 6 to be accepted and thus *ret01 == '2'.
	* testsuite/22_locale/time_get/get_date/wchar_t/12791.cc (test01):
	Similarly.
	* testsuite/22_locale/time_get/get_time/char/2.cc (test02): Add " PM"
	to the string.
	* testsuite/22_locale/time_get/get_time/char/5.cc (test01): Expect
	tm_hour 1 rather than 0.
	* testsuite/22_locale/time_get/get_time/wchar_t/2.cc (test02): Add
	" PM" to the string.
	* testsuite/22_locale/time_get/get_time/wchar_t/5.cc (test01): Expect
	tm_hour 1 rather than 0.

2021-12-10  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103638
	* include/bits/atomic_timed_wait.h: Check _GLIBCXX_HAS_GTHREADS
	before using std::mutex and std::__condvar.

2021-12-10  Jonathan Wakely  <jwakely@redhat.com>

	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add _GLIBCXX_
	prefix to NO_SLEEP macro.
	* config.h.in: Regenerate.
	* configure: Regenerate.

2021-12-10  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/char_traits.h: Change pragma push to pop.

2021-12-10  Thomas Rodgers  <rodgert@twrodgers.com>

	PR libstdc++/102994
	* include/bits/atomic_base.h (__atomic_base<_PTp*>::wait()):
	Add const qualifier.
	* include/std/atomic (atomic<_Tp*>::wait(), atomic_wait()):
	Likewise.
	* testsuite/29_atomics/atomic/wait_notify/102994.cc:
	New test.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_iterator.h (operator==, operator<=>): Define
	overloads for homogeneous specializations of reverse_iterator,
	__normal_iterator and move_iterator.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/scoped_allocator/69293_neg.cc: Remove
	dg-error for c++20.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/85813
	* libsupc++/exception_ptr.h (__dest_thunk): Add macro for
	destructor calling convention.
	(make_exception_ptr): Enable non-throwing implementation for
	-fno-exceptions and for non-standard calling conventions. Use
	always_inline attribute on the useless no-rtti no-exceptions
	definition.
	* testsuite/18_support/exception_ptr/64241.cc: Add -fno-rtti so
	the no-op implementation is still used.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103630
	* libsupc++/exception_ptr.h (exception_ptr): Fix exception
	specifications on inline definitions.
	(make_exception_ptr): Decay the template parameter. Use typeid
	of the static type.
	* testsuite/18_support/exception_ptr/103630.cc: New test.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/59769
	* config/io/basic_file_stdio.cc (fopen_mode): Add support for
	exclusive mode.
	* include/bits/ios_base.h (_S_noreplace): Define new enumerator.
	(ios_base::__noreplace): Define.
	(ios_base::noreplace): Define for C++23.
	* include/std/version (__cpp_lib_ios_noreplace): Define.
	* testsuite/27_io/basic_ofstream/open/char/noreplace.cc: New test.
	* testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: New test.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103382
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.11): Do not export old
	symbol if .symver renaming is supported.
	(GLIBCXX_3.4.30): Export new symbol if .symver renaming is
	supported.
	* doc/xml/manual/evolution.xml: Document change.
	* doc/html/manual/api.html: Regenerate.
	* include/bits/std_mutex.h (__condvar::wait, __condvar::wait_until):
	Remove noexcept.
	* include/std/condition_variable (condition_variable::wait):
	Likewise.
	* src/c++11/condition_variable.cc (condition_variable::wait):
	Likewise.
	* src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
	Define nothrow wrapper around std::condition_variable::wait and
	export the old symbol as an alias to it.
	* testsuite/30_threads/condition_variable/members/103382.cc: New test.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/92300
	* include/bits/stl_map.h (insert(Pair&&), emplace(Args&&...)):
	Check whether the arguments can be looked up directly without
	constructing a temporary node first.
	* include/bits/stl_pair.h (__is_pair): Move to here, from ...
	* include/bits/uses_allocator_args.h (__is_pair): ... here.
	* testsuite/23_containers/map/modifiers/emplace/92300.cc: New test.
	* testsuite/23_containers/map/modifiers/insert/92300.cc: New test.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cow_string.h (basic_string::_M_leak_hard): Do not
	reallocate an empty string.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103332
	PR libstdc++/102958
	PR libstdc++/103483
	* include/bits/char_traits.h: Suppress stringop and array-bounds
	warnings.

2021-12-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/64135
	* config/allocator/new_allocator_base.h: Include
	<bits/new_allocator.h> instead of <ext/new_allocator.h>.
	(__allocator_base): Use std::__new_allocator instead of
	__gnu_cxx::new_allocator.
	* doc/xml/manual/allocator.xml: Document new default base class
	for std::allocator.
	* doc/xml/manual/evolution.xml: Likewise.
	* doc/html/*: Regenerate.
	* include/Makefile.am: Add bits/new_allocator.h.
	* include/Makefile.in: Regenerate.
	* include/experimental/memory_resource (new_delete_resource):
	Use std::__new_allocator instead of __gnu_cxx::new_allocator.
	* include/ext/new_allocator.h (new_allocator): Derive from
	std::__new_allocator. Move implementation to ...
	* include/bits/new_allocator.h: New file.
	* testsuite/20_util/allocator/64135.cc: New test.

2021-12-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release()):
	Make shift width conditional on __double_word condition.

2021-12-08  François Dumont  <fdumont@gcc.gnu.org>

	* include/std/deque (erase_if): Use _GLIBCXX_STD_C container reference and
	__niter_wrap to limit _GLIBCXX_DEBUG mode impact.
	* include/std/vector (erase_if): Likewise.

2021-12-08  Maged Michael  <maged.michael@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/c++config (_GLIBCXX_TSAN): Define macro
	indicating that TSan is in use.
	* include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release):
	Replace definition in primary template with explicit
	specializations for _S_mutex and _S_atomic policies.
	(_Sp_counted_base<_S_mutex>::_M_release): New specialization.
	(_Sp_counted_base<_S_atomic>::_M_release): New specialization,
	using a single atomic load to access both reference counts at
	once.
	(_Sp_counted_base::_M_release_last_use): New member function.

2021-12-07  Tamar Christina  <tamar.christina@arm.com>

	Revert:
	2021-11-19  Tamar Christina  <tamar.christina@arm.com>

	PR libstdc++/103305
	* config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit,
	space, print, graph, cntrl, punct, alnum, blank): Use short or long
	names depending on if short ones are defined.

2021-12-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103549
	* include/bits/regex.h (match_results): Give names to template
	parameters in first declaration.
	(match_results::_M_begin): Add default member-initializer.

2021-12-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_tree.h (_Rb_tree::_Auto_node): Define new
	RAII helper for creating and inserting new nodes.
	(_Rb_tree::_M_insert_node): Use trailing-return-type to simplify
	out-of-line definition.
	(_Rb_tree::_M_insert_lower_node): Likewise.
	(_Rb_tree::_M_insert_equal_lower_node): Likewise.
	(_Rb_tree::_M_emplace_unique): Likewise. Use _Auto_node.
	(_Rb_tree::_M_emplace_equal): Likewise.
	(_Rb_tree::_M_emplace_hint_unique): Likewise.
	(_Rb_tree::_M_emplace_hint_equal): Likewise.

2021-12-02  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
	(logic_error, runtime_error): Remove custom definitions.

2021-12-02  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103340
	PR libstdc++/103400
	PR libstdc++/103381
	* acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Remove mt, bitmap
	and pool options.
	* configure: Regenerate.
	* config/allocator/bitmap_allocator_base.h: Removed.
	* config/allocator/mt_allocator_base.h: Removed.
	* config/allocator/pool_allocator_base.h: Removed.
	* doc/xml/manual/allocator.xml: Update.
	* doc/xml/manual/configure.xml: Update.
	* doc/xml/manual/evolution.xml: Document removal.
	* doc/xml/manual/mt_allocator.xml: Editorial tweaks.
	* doc/html/manual/*: Regenerate.

2021-12-02  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cow_string.h (basic_string::_M_is_leaked()):
	Revert change to check __is_single_threaded() before using
	atomic load.

2021-12-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103501
	* include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&, false_type)):
	Clear container if elements have been moved-from.
	* testsuite/23_containers/map/allocator/move_cons.cc: Expect
	moved-from container to be empty.
	* testsuite/23_containers/multimap/allocator/move_cons.cc:
	Likewise.
	* testsuite/23_containers/multiset/allocator/103501.cc: New test.
	* testsuite/23_containers/set/allocator/103501.cc: New test.

2021-12-01  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/user.cfg.in (PREDEFINED): Change macro name.
	* include/bits/allocator.h (allocate, deallocate): Use
	std::__is_constant_evaluated() unconditionally, instead of
	checking whether std::is_constant_evaluated() (or the built-in)
	can be used.
	* include/bits/basic_string.h: Check new macro. call
	std::is_constant_evaluated() directly in C++20-only code that is
	guarded by a suitable macro.
	* include/bits/basic_string.tcc: Likewise.
	* include/bits/c++config (__is_constant_evaluated): Define.
	(_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Replace with ...
	(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED): New macro.
	* include/bits/char_traits.h (char_traits): Replace conditional
	calls to std::is_constant_evaluated with unconditional calls to
	std::__is_constant_evaluated.
	* include/bits/cow_string.h: Use new macro.
	* include/bits/ranges_algobase.h (__copy_or_move): Replace
	conditional calls to std::is_constant_evaluated with unconditional
	calls to std::__is_constant_evaluated.
	(__copy_or_move_backward, __fill_n_fn): Likewise.
	* include/bits/ranges_cmp.h (ranges::less): Likewise.
	* include/bits/stl_algobase.h (lexicographical_compare_three_way):
	Likewise.
	* include/bits/stl_bvector.h: Call std::is_constant_evaluated
	directly in C++20-only code that is guarded by a suitable macro.
	* include/bits/stl_construct.h (_Construct, _Destroy, _Destroy_n):
	Replace is_constant_evaluated with __is_constant_evaluated.
	* include/bits/stl_function.h (greater, less, greater_equal)
	(less_equal): Replace __builtin_is_constant_evaluated and
	__builtin_constant_p with __is_constant_evaluated.
	* include/bits/stl_vector.h: Call std::is_constant_evaluated()
	in C++20-only code.
	* include/debug/helper_functions.h (__check_singular): Use
	__is_constant_evaluated instead of built-in, or remove check
	entirely.
	* include/std/array (operator<=>): Use __is_constant_evaluated
	unconditionally.
	* include/std/bit (__bit_ceil): Likewise.
	* include/std/type_traits (is_constant_evaluated): Define using
	'if consteval' if possible.
	* include/std/version: Use new macro.
	* libsupc++/compare: Use __is_constant_evaluated instead of
	__builtin_is_constant_evaluated.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc:
	Adjust dg-error lines.

2021-12-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cow_string.h (basic_string::_M_is_leaked): Use
	non-atomic load when __is_single_threaded() is true.
	(basic_string::_M_is_shared): Likewise.
	(basic_string::(basic_string&&)) [_GLIBCXX_FULLY_DYNAMIC_STRING]:
	Use non-atomic store when rvalue is not shared.

2021-12-01  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++17/fs_path.cc (path::_M_split_cmpts()): Remove
	micro-optimization for "/" path.
	* src/filesystem/path.cc (path::_M_split_cmpts()): Only access
	the contents of _M_pathname using const member functions.

2021-11-30  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/21_strings/basic_string/cons/char/moveable.cc: Allow
	moved-from string to be non-empty.
	* testsuite/21_strings/basic_string/cons/char/moveable2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
	Construct empty string before setting oom flag.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
	Likewise.

2021-11-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cow_string.h (basic_string(basic_string&&)): Fix
	mem-initializer for _GLIBCXX_FULLY_DYNAMIC_STRING==0 case.
	* testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc:
	Remove outdated comment.
	* testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc:
	Likewise.

2021-11-30  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++20/sstream-inst.cc (_GLIBCXX_USE_CXX11_ABI): Define to
	select new ABI.

2021-11-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_vector.h (vector::_S_do_relocate): Remove
	C++20 constexpr specifier.
	(vector::_S_relocate) [__cpp_if_constexpr]: Call __relocate_a
	directly without tag dispatching.

2021-11-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103453
	* config/allocator/malloc_allocator_base.h
	(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define for Clang.
	* config/allocator/new_allocator_base.h
	(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Likewise.

2021-11-30  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/debug_mode.xml: Replace "his or her" with "their".
	* doc/html/manual/debug_mode_design.html: Regenerate.

2021-11-30  Jakub Jelinek  <jakub@redhat.com>

	* include/std/bit (byteswap): Add [[nodiscard]].

2021-11-28  Jakub Jelinek  <jakub@redhat.com>

	* include/std/bit (__cpp_lib_byteswap, byteswap): Define.
	* include/std/version (__cpp_lib_byteswap): Define.
	* testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: New test.
	* testsuite/26_numerics/bit/bit.byteswap/version.cc: New test.

2021-11-26  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/24_iterators/move_iterator/dr3265.cc: Fix test to
	account for LWG 3435 resolution.

2021-11-26  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_uninitialized.h (__relocate_a_1): Do not use
	memmove during constant evaluation.
	* include/bits/stl_vector.h (vector::_S_use_relocate()): Do not
	check is_constant_evaluated in always-constexpr function.

2021-11-26  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/96592
	* include/std/tuple (tuple::is_constructible): Remove.

2021-11-26  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/29_atomics/atomic_float/1.cc: Reorder directives.

2021-11-26  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/unordered_map/modifiers/move_assign.cc:
	Change dg-do compile to run.
	* testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
	Likewise.

2021-11-26  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
	Remove xfail selector.
	* testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
	Likewise.
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
	Likewise.
	* testsuite/23_containers/span/101411.cc: Likewise.
	* testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
	* testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
	Likewise.
	* testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
	* testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
	* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
	Likewise.
	* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
	Likewise.
	* testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
	Likewise.
	* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
	Likewise.
	* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
	Likewise.
	* testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
	Likewise.

2021-11-26  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/pointer_traits/lwg3545.cc: Move to_address
	tests to ...
	* testsuite/20_util/to_address/lwg3545.cc: ... here. Add -std
	option before checking effective target.

2021-11-25  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
	Remove dg-error for C++11_only error.

2021-11-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/96416
	* include/bits/ptr_traits.h (pointer_traits): Reimplement to be
	SFINAE-friendly (LWG 3545).
	* testsuite/20_util/pointer_traits/lwg3545.cc: New test.
	* testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line.
	* testsuite/20_util/to_address/lwg3545.cc: New test.

2021-11-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101608
	* include/bits/ranges_algobase.h (__fill_n_fn): Check for
	constant evaluation before using memset.
	* testsuite/25_algorithms/fill_n/constrained.cc: Check
	byte-sized values as well.

2021-11-24  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
	debug mode.
	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.

2021-11-24  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/lib/libstdc++.exp: Rename effective target keywords
	to avoid dashes in the name.
	* testsuite/*: Update effective targe keywords.

2021-11-23  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103086
	* testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr
	with non-empty pointer and non-empty deleter.

2021-11-23  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/18_support/50594.cc: Check effective target.
	* testsuite/20_util/allocator/1.cc: Likewise.
	* testsuite/20_util/allocator/overaligned.cc: Likewise.
	* testsuite/23_containers/unordered_map/96088.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
	* testsuite/23_containers/unordered_set/96088.cc: Likewise.
	* testsuite/ext/throw_allocator/check_delete.cc: Likewise.
	* testsuite/ext/throw_allocator/check_new.cc: Likewise.
	* testsuite/lib/libstdc++.exp (check_effective_target_std_allocator_new):
	Define new proc.

2021-11-23  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103381
	* include/ext/bitmap_allocator.h: Include <bits/stl_function.h>
	instead of <functional>.

2021-11-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/c++config (_GLIBCXX14_DEPRECATED): Fix condition
	checking for C++14.

2021-11-20  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/erase_if.h (__erase_nodes_if): Add _UnsafeContainer template
	parameter. Use it to get iterators to work with.
	* include/debug/macros.h (__glibcxx_check_erase2): New.
	* include/debug/map.h (map<>::erase(_Base_const_iterator)): New.
	(map<>::erase(const_iterator)): Use latter.
	* include/debug/multimap.h (multimap<>::erase(_Base_const_iterator)): New.
	(multimap<>::erase(const_iterator)): Use latter.
	* include/debug/multiset.h (multiset<>::erase(_Base_const_iterator)): New.
	(multiset<>::erase(const_iterator)): Use latter.
	* include/debug/set.h (set<>::erase(_Base_const_iterator)): New.
	(set<>::erase(const_iterator)): Use latter.
	* include/debug/unordered_map (unordered_map<>::erase(_Base_const_iterator)): New.
	(unordered_multimap<>::erase(const_iterator)): New.
	* include/debug/unordered_set (unordered_set<>::erase(_Base_const_iterator)): New.
	(unordered_multiset<>::erase(const_iterator)): New.
	* include/experimental/map (erase_if): Adapt.
	* include/experimental/set (erase_if): Adapt.
	* include/experimental/unordered_map (erase_if): Adapt.
	* include/experimental/unordered_set (erase_if): Adapt.
	* include/std/map (erase_if): Adapt.
	* include/std/set (erase_if): Adapt.
	* include/std/unordered_map (erase_if): Adapt.
	* include/std/unordered_set (erase_if): Adapt.

2021-11-19  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/basic_istringstream/cons/char/1.cc: Check all
	constructors.
	* testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
	Likewise.
	* testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
	* testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
	Likewise.
	* testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
	Likewise.

2021-11-19  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++98/locale_init.cc (_S_initialize_once): Check if
	initialization has already been done.
	(_S_initialize): Replace __gthread_active_p with
	__is_single_threaded. Use __builtin_expect.

2021-11-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103295
	* include/bits/basic_string.tcc (_M_construct): Use the
	traits assign member to write into allcoated memory.

2021-11-19  Iain Sandoe  <iain@sandoe.co.uk>

	* testsuite/lib/prune.exp: Prune dsymutil (ld64) warning.

2021-11-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103332
	PR libstdc++/102958
	* testsuite/21_strings/basic_string/capacity/char/1.cc: Add
	-Wno-stringop-overflow.
	* testsuite/21_strings/basic_string/operators/char/1.cc:
	Likewise.
	* testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc:
	Add -Wno-stringop-overread.

2021-11-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103295
	* include/bits/basic_string.h (_Alloc_traits): Replace typedef
	with struct for C++20 mode.
	* include/bits/basic_string.tcc (_M_replace): Use _Alloc_traits
	for allocation.
	* include/bits/char_traits.h (__gnu_cxx::char_traits::assign):
	Use std::_Construct during constant evaluation.
	(__gnu_cxx::char_traits::assign(CharT*, const CharT*, size_t)):
	Likewise. Replace std::fill_n with memset or manual loop.
	(__gnu_cxx::char_traits::copy): Likewise, replacing std::copy
	with memcpy.
	* include/ext/vstring.h: Include <bits/stl_algobase.h> for
	std::min.
	* include/std/string_view: Likewise.
	* testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
	Add constexpr test.

2021-11-19  Tamar Christina  <tamar.christina@arm.com>

	PR libstdc++/103305
	* config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit,
	space, print, graph, cntrl, punct, alnum, blank): Use short or long
	names depending on if short ones are defined.

2021-11-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/char_traits.h (__gnu_cxx::char_traits::move):
	Do not compare unrelated pointers during constant evaluation.
	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
	Improve tests for char_traits::move.

2021-11-18  Jonathan Wakely  <jwakely@redhat.com>

	* acinclude.m4: Replace AC_CACHE_VAL with AC_CACHE_CHECK.
	* configure: Regenerate.

2021-11-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/internet (address): Use std::_Construct
	to initialize union members.

2021-11-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (_M_construct_aux): Only define
	for C++98. Remove constexpr.
	(_M_construct_aux_2): Likewise.
	(_M_construct(InputIter, InputIter)): Remove.
	(basic_string(const basic_string&)): Call _M_construct with
	iterator category argument.
	(basic_string(const basic_string&, size_type, const Alloc&)):
	Likewise.
	(basic_string(const basic_string&, size_type, size_type)):
	Likewise.
	(basic_string(const charT*, size_type, const Alloc&)): Likewise.
	Check for null pointer.
	(basic_string(const charT*, const Alloc&)): Likewise.
	(basic_string(initializer_list<charT>, const Alloc&)): Call
	_M_construct with iterator category argument.
	(basic_string(const basic_string&, const Alloc&)): Likewise.
	(basic_string(basic_string&&, const Alloc&)): Likewise.
	(basic_string(_InputIter, _InputIter, const Alloc&)): Likewise
	for C++11 and later, call _M_construct_aux for C++98.
	* include/bits/basic_string.tcc
	(_M_construct(I, I, input_iterator_tag)): Replace try-block with
	RAII type.
	(_M_construct(I, I, forward_iterator_tag)): Likewise. Remove
	__is_null_pointer check.

2021-11-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103295
	* include/bits/basic_string.h (_M_use_local_data()): New
	member function to make local buffer the active member.
	(assign(const basic_string&)): Use it.
	* include/bits/basic_string.tcc (_M_construct, reserve()):
	Likewise.

2021-11-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103240
	* libsupc++/tinfo2.cc (type_info::before): Use unadjusted name
	to check for the '*' prefix.
	* testsuite/util/testsuite_shared.cc: Add type_info object for
	use in new test.
	* testsuite/18_support/type_info/103240.cc: New test.

2021-11-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (operator<=>): Use constexpr
	unconditionally.
	* testsuite/21_strings/basic_string/modifiers/constexpr.cc:
	Require cxx11-abit effective target.
	* testsuite/21_strings/headers/string/synopsis.cc: Add
	conditional constexpr to declarations, and adjust relational
	operators for C++20.

2021-11-16  Patrick Palka  <ppalka@redhat.com>

	* src/c++17/ryu/MERGE: Update the commit hash.
	* src/c++17/ryu/d2s_intrinsics.h: Merge from Ryu's master
	branch.

2021-11-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (basic_string, operator""s): Add
	constexpr for C++20.
	(basic_string::basic_string(basic_string&&)): Only copy
	initialized portion of the buffer.
	(basic_string::basic_string(basic_string&&, const Alloc&)):
	Likewise.
	* include/bits/basic_string.tcc (basic_string): Add constexpr
	for C++20.
	(basic_string::swap(basic_string&)): Only copy initialized
	portions of the buffers.
	(basic_string::_M_replace): Add constexpr implementation that
	doesn't depend on pointer comparisons.
	* include/bits/cow_string.h: Adjust comment.
	* include/ext/type_traits.h (__is_null_pointer): Add constexpr.
	* include/std/string (erase, erase_if): Add constexpr.
	* include/std/version (__cpp_lib_constexpr_string): Update
	value.
	* testsuite/21_strings/basic_string/cons/char/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/literals/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/constexpr.cc: New test.
	* testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/version.cc: New test.

2021-11-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_bvector.h (swap(_Bit_reference, _Bit_reference))
	(swap(_Bit_reference, bool&), swap(bool&, _Bit_reference)):
	Define as hidden friends of _Bit_reference.

2021-11-16  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
	Fix reads past the end of strings.
	* testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
	Likewise.

2021-11-16  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/21_strings/basic_string/allocator/71964.cc: Fix
	typo.
	* testsuite/23_containers/set/allocator/71964.cc: Likewise.

2021-11-15  Jason Merrill  <jason@redhat.com>

	* testsuite/20_util/to_address/1_neg.cc: Adjust error.
	* testsuite/26_numerics/random/concept.cc: Adjust asserts.

2021-11-15  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/hashtable_policy.h:
	(_Hash_code_base<>::_M_hash_code(const _Hash&, const _Hash_node_value<_Value, true>&)): New.
	(_Hash_code_base<>::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): New.
	* include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Use latter.
	(_Hashtable<>::_M_merge_multi): Likewise.
	* testsuite/23_containers/unordered_multiset/modifiers/merge.cc (test05): New test.
	* testsuite/23_containers/unordered_set/modifiers/merge.cc (test04): New test.

2021-11-15  Jason Merrill  <jason@redhat.com>

	* src/c++17/memory_resource.cc: Add missing constexpr.
	* include/experimental/internet: Only mark copy constructor
	as constexpr with __cpp_constexpr_dynamic_alloc.

2021-11-14  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/safe_container.h (_Safe_container<>::_M_safe): Remove.
	* include/debug/deque (deque::operator=(initializer_list<>)): Replace
	_M_base() call with _Base:: call.
	(deque::operator[](size_type)): Likewise.
	* include/debug/forward_list (forward_list(forward_list&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(forward_list::operator=(initializer_list<>)): Remove _M_base() calls.
	(forward_list::splice_after, forward_list::merge): Likewise.
	* include/debug/list (list(list&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(list::operator=(initializer_list<>)): Remove _M_base() calls.
	(list::splice, list::merge): Likewise.
	* include/debug/map.h (map(map&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(map::operator=(initializer_list<>)): Remove _M_base() calls.
	* include/debug/multimap.h (multimap(multimap&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(multimap::operator=(initializer_list<>)): Remove _M_base() calls.
	* include/debug/set.h (set(set&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(set::operator=(initializer_list<>)): Remove _M_base() calls.
	* include/debug/multiset.h (multiset(multiset&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(multiset::operator=(initializer_list<>)): Remove _M_base() calls.
	* include/debug/string (basic_string(basic_string&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(basic_string::operator=(initializer_list<>)): Remove _M_base() call.
	(basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise.
	(basic_string::operator[](size_type), basic_string::operator+=(const basic_string&)):
	Likewise.
	(basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise.
	* include/debug/unordered_map (unordered_map(unordered_map&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(unordered_map::operator=(initializer_list<>), unordered_map::merge):
	Remove _M_base() calls.
	(unordered_multimap(unordered_multimap&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(unordered_multimap::operator=(initializer_list<>), unordered_multimap::merge):
	Remove _M_base() calls.
	* include/debug/unordered_set (unordered_set(unordered_set&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(unordered_set::operator=(initializer_list<>), unordered_set::merge):
	Remove _M_base() calls.
	(unordered_multiset(unordered_multiset&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(unordered_multiset::operator=(initializer_list<>), unordered_multiset::merge):
	Remove _M_base() calls.
	* include/debug/vector (vector(vector&&, const allocator_type&)):
	Remove _M_safe() and _M_base() calls.
	(vector::operator=(initializer_list<>)): Remove _M_base() calls.
	(vector::operator[](size_type)): Likewise.

2021-11-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add spanstream header.
	* include/Makefile.in: Regenerate.
	* include/precompiled/stdc++.h: Add spanstream header.
	* include/std/version (__cpp_lib_spanstream): Define.
	* include/std/spanstream: New file.
	* testsuite/27_io/spanstream/1.cc: New test.
	* testsuite/27_io/spanstream/version.cc: New test.

2021-11-13  Hans-Peter Nilsson  <hp@axis.com>

	PR libstdc++/103166
	* acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
	Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_COMPILE.
	* configure: Regenerate.

2021-11-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/59675
	* acinclude.m4 (libtool_VERSION): Bump version.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and
	export new symbol.
	* configure: Regenerate.
	* include/bits/c++config (__replacement_assert): Remove, declare
	__glibcxx_assert_fail instead.
	* src/c++11/debug.cc (__glibcxx_assert_fail): New function to
	replace __replacement_assert, writing to stderr instead of
	stdout.
	* testsuite/util/testsuite_abi.cc: Update latest version.

2021-11-12  Jonathan Wakely  <jwakely@redhat.com>
	    Josh Marshall  <joshua.r.marshall.1991@gmail.com>

	* include/bits/alloc_traits.h (_Destroy): Make constexpr for
	C++20 mode.
	* include/bits/allocator.h (__shrink_to_fit::_S_do_it):
	Likewise.
	* include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator
	overload constexpr for C++20.
	* include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out
	of inline namespace.
	(_Bit_reference, _Bit_iterator_base, _Bit_iterator)
	(_Bit_const_iterator, _Bvector_impl_data, _Bvector_base)
	(vector<bool, A>>): Add constexpr to every member function.
	(_Bvector_base::_M_allocate): Initialize storage during constant
	evaluation.
	(vector<bool, A>::_M_initialize_value): Use __fill_bvector_n
	instead of memset.
	(__fill_bvector_n): New helper function to replace memset during
	constant evaluation.
	* include/bits/stl_uninitialized.h (__uninitialized_copy<false>):
	Move logic to ...
	(__do_uninit_copy): New function.
	(__uninitialized_fill<false>): Move logic to ...
	(__do_uninit_fill): New function.
	(__uninitialized_fill_n<false>): Move logic to ...
	(__do_uninit_fill_n): New function.
	(__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy.
	(__uninitialized_move_a, __uninitialized_move_if_noexcept_a):
	Add constexpr.
	(__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill.
	(__uninitialized_fill_n_a): Add constexpr. Use
	__do_uninit_fill_n.
	(__uninitialized_default_n, __uninitialized_default_n_a)
	(__relocate_a_1, __relocate_a): Add constexpr.
	* include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl)
	(_Vector_base, vector): Add constexpr to every member function.
	(_Vector_impl::_S_adjust): Disable ASan annotation during
	constant evaluation.
	(_Vector_base::_S_use_relocate): Disable bitwise-relocation
	during constant evaluation.
	(vector::_Temporary_value): Use a union for storage.
	* include/bits/vector.tcc (vector, vector<bool>): Add constexpr
	to every member function.
	* include/std/vector (erase_if, erase): Add constexpr.
	* testsuite/23_containers/headers/vector/synopsis.cc: Add
	constexpr for C++20 mode.
	* testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to
	compile-only test using constant expressions.
	* testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust
	namespace for _S_word_bit.
	* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
	Likewise.
	* testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
	* testsuite/23_containers/vector/cons/89164.cc: Adjust errors
	for C++20 and move C++17 test to ...
	* testsuite/23_containers/vector/cons/89164_c++17.cc: ... here.
	* testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test.
	* testsuite/23_containers/vector/bool/cons/constexpr.cc: New test.
	* testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test.
	* testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test.
	* testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test.
	* testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test.
	* testsuite/23_containers/vector/capacity/constexpr.cc: New test.
	* testsuite/23_containers/vector/cons/constexpr.cc: New test.
	* testsuite/23_containers/vector/data_access/constexpr.cc: New test.
	* testsuite/23_containers/vector/element_access/constexpr.cc: New test.
	* testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test.
	* testsuite/23_containers/vector/modifiers/constexpr.cc: New test.
	* testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test.

2021-11-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/debug/deque (deque::operator=(const deque&)): Remove
	definition.
	* include/debug/list (list::operator=(const list&)): Likewise.
	* include/debug/map.h (map::operator=(const map&)): Likewise.
	* include/debug/multimap.h (multimap::operator=(const multimap&)):
	Likewise.
	* include/debug/multiset.h (multiset::operator=(const multiset&)):
	Likewise.
	* include/debug/set.h (set::operator=(const set&)): Likewise.
	* include/debug/string (basic_string::operator=(const basic_string&)):
	Likewise.
	* include/debug/vector (vector::operator=(const vector&)):
	Likewise.
	(_Safe_vector::operator=(const _Safe_vector&)): Define for
	C++98 as well.

2021-11-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/memory_resource (memory_resource::allocate):
	Implicitly create objects in the returned storage.

2021-11-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_bvector.h (vector<bool>::data()): Give
	protected access, and delete for C++11 and later.

2021-11-10  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100117
	* testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list
	all C++ headers instead of including <bits/stdc++.h>

2021-11-10  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100748
	PR libstdc++/103133
	* config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
	Define for glibc 2.34 and later.

2021-11-09  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/hashtable_policy.h (__distance_fw): Replace class keyword with
	typename.
	* include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Remove noexcept
	qualification. Use const_iterator for node extraction/reinsert.
	(_Hashtable<>::_M_merge_multi): Likewise. Compute new hash code before extract.
	* include/debug/safe_container.h (_Safe_container<>): Make all methods
	protected.
	* include/debug/safe_unordered_container.h
	(_Safe_unordered_container<>::_UContInvalidatePred<_ExtractKey, _Source>): New.
	(_Safe_unordered_container<>::_UMContInvalidatePred<_ExtractKey, _Source>): New.
	(_Safe_unordered_container<>::_UContMergeGuard<_Source, _InvalidatePred>): New.
	(_Safe_unordered_container<>::_S_uc_guard<_ExtractKey, _Source>): New.
	(_Safe_unordered_container<>::_S_umc_guard<_ExtractKey, _Source>): New.
	(_Safe_unordered_container<>::_M_invalide_all): Make public.
	(_Safe_unordered_container<>::_M_invalide_if): Likewise.
	(_Safe_unordered_container<>::_M_invalide_local_if): Likewise.
	* include/debug/unordered_map
	(unordered_map<>::mapped_type, pointer, const_pointer): New typedef.
	(unordered_map<>::reference, const_reference, difference_type): New typedef.
	(unordered_map<>::get_allocator, empty, size, max_size): Add usings.
	(unordered_map<>::bucket_count, max_bucket_count, bucket): Add usings.
	(unordered_map<>::hash_function, key_equal, count, contains): Add usings.
	(unordered_map<>::operator[], at, rehash, reserve): Add usings.
	(unordered_map<>::merge): New.
	(unordered_multimap<>::mapped_type, pointer, const_pointer): New typedef.
	(unordered_multimap<>::reference, const_reference, difference_type): New typedef.
	(unordered_multimap<>::get_allocator, empty, size, max_size): Add usings.
	(unordered_multimap<>::bucket_count, max_bucket_count, bucket): Add usings.
	(unordered_multimap<>::hash_function, key_equal, count, contains): Add usings.
	(unordered_multimap<>::rehash, reserve): Add usings.
	(unordered_multimap<>::merge): New.
	* include/debug/unordered_set
	(unordered_set<>::mapped_type, pointer, const_pointer): New typedef.
	(unordered_set<>::reference, const_reference, difference_type): New typedef.
	(unordered_set<>::get_allocator, empty, size, max_size): Add usings.
	(unordered_set<>::bucket_count, max_bucket_count, bucket): Add usings.
	(unordered_set<>::hash_function, key_equal, count, contains): Add usings.
	(unordered_set<>::rehash, reserve): Add usings.
	(unordered_set<>::merge): New.
	(unordered_multiset<>::mapped_type, pointer, const_pointer): New typedef.
	(unordered_multiset<>::reference, const_reference, difference_type): New typedef.
	(unordered_multiset<>::get_allocator, empty, size, max_size): Add usings.
	(unordered_multiset<>::bucket_count, max_bucket_count, bucket): Add usings.
	(unordered_multiset<>::hash_function, key_equal, count, contains): Add usings.
	(unordered_multiset<>::rehash, reserve): Add usings.
	(unordered_multiset<>::merge): New.
	* testsuite/23_containers/unordered_map/debug/merge1_neg.cc: New test.
	* testsuite/23_containers/unordered_map/debug/merge2_neg.cc: New test.
	* testsuite/23_containers/unordered_map/debug/merge3_neg.cc: New test.
	* testsuite/23_containers/unordered_map/debug/merge4_neg.cc: New test.
	* testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc: New test.
	* testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc: New test.
	* testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc: New test.
	* testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc: New test.
	* testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc: New test.
	* testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc: New test.
	* testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc: New test.
	* testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc: New test.
	* testsuite/23_containers/unordered_set/debug/merge1_neg.cc: New test.
	* testsuite/23_containers/unordered_set/debug/merge2_neg.cc: New test.
	* testsuite/23_containers/unordered_set/debug/merge3_neg.cc: New test.
	* testsuite/23_containers/unordered_set/debug/merge4_neg.cc: New test.
	* testsuite/util/testsuite_abi.h: [_GLIBCXX_DEBUG] Use normal unordered
	container implementation.

2021-11-09  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/random/random_device/cons/token.cc:
	Print results of random_device_available checks.

2021-11-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103146
	* src/c++11/random.cc: Check __powerpc64__ not __powerpc__.

2021-11-09  Jonathan Wakely  <jwakely@redhat.com>

	* acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
	Define.
	* configure.ac (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
	Use them.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* src/c++11/random.cc (random_device): Add getentropy and
	arc4random as sources.
	* testsuite/26_numerics/random/random_device/cons/token.cc:
	Check new tokens.
	* testsuite/26_numerics/random/random_device/entropy.cc:
	Likewise.

2021-11-09  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/random/random_device/cons/token.cc:
	Retry if random devices produce the same value.

2021-11-09  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>

	* config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only
	define for VxWorks >= 6.6.

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

	* include/bits/range_access.h (begin(valarray), end(valarray)):
	Add noexcept.

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

	* include/std/tuple (tuple_size_v): Fix pack expansion.

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

	* src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
	[[unlikely]] attribute.

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

	* src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
	(__ppc_darn): New function to use POWER9 DARN instruction.
	(Which): Add 'darn' enumerator.
	(which_source): Check for __ppc_darn.
	(random_device::_M_init): Support "darn" and "hw" tokens.
	(random_device::_M_getentropy): Add darn to switch.
	* testsuite/26_numerics/random/random_device/cons/token.cc:
	Check "darn" token.
	* testsuite/26_numerics/random/random_device/entropy.cc:
	Likewise.

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

	* testsuite/lib/gdb-test.exp: Add target selector support to the
	dg-final directives.
	* testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
	C++20.
	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
	comment.

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

	PR libstdc++/103086
	* python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
	for accessing the tuple element stored in a _Tuple_impl node.
	(tuple_get): New function for accessing a tuple element.
	(unique_ptr_get): New function for accessing a unique_ptr.
	(UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
	* python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
	tuple to its base class before accessing _M_head_impl.

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

	* doc/xml/manual/evolution.xml: Document deprecations.
	* doc/html/*: Regenerate.
	* libsupc++/exception (unexpected_handler, unexpected)
	(get_unexpected, set_unexpected): Add deprecated attribute.
	Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
	deprecated warnings.
	* libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
	* libsupc++/eh_terminate.cc: Likewise.
	* libsupc++/eh_throw.cc (__cxa_init_primary_exception):
	Likewise.
	* libsupc++/unwind-cxx.h (struct __cxa_exception): Use
	terminate_handler instead of unexpected_handler.
	(struct __cxa_dependent_exception): Likewise.
	(__unexpected): Likewise.
	* testsuite/18_support/headers/exception/synopsis.cc: Add
	dg-warning for deprecated warning.
	* testsuite/18_support/exception_ptr/60612-unexpected.cc:
	Disable deprecated warnings.
	* testsuite/18_support/set_unexpected.cc: Likewise.
	* testsuite/18_support/unexpected_handler.cc: Likewise.

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

	* include/bits/utility.h (__find_uniq_type_in_pack): Move
	definition to here, ...
	* include/std/tuple (__find_uniq_type_in_pack): ... from here.
	* include/std/variant (__detail__variant::__index_of): Remove.
	(__detail::__variant::__exactly_once): Define using
	__find_uniq_type_in_pack instead of __index_of.
	(get<T>, get_if<T>, variant::__index_of): Likewise.

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

	* include/bits/stl_pair.h (tuple_size_v): Define partial
	specializations for std::pair.
	* include/bits/utility.h (_Nth_type): Move definition here
	and define primary template.
	(tuple_size_v): Move definition here.
	* include/std/array (tuple_size_v): Define partial
	specializations for std::array.
	* include/std/tuple (tuple_size_v): Move primary template to
	<bits/utility.h>.  Define partial specializations for
	std::tuple.
	(tuple_element): Change definition to use _Nth_type.
	* include/std/variant (_Nth_type): Move to <bits/utility.h>.
	(variant_alternative, variant): Adjust qualification of
	_Nth_type.
	* testsuite/20_util/tuple/element_access/get_neg.cc: Prune
	additional errors from _Nth_type.

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

	* include/std/variant (__detail::__variant::__emplace): New
	function template.
	(_Copy_assign_base::operator=): Reorder conditions to match
	bulleted list of effects in the standard. Use __emplace instead
	of _M_reset followed by _Construct.
	(_Move_assign_base::operator=): Likewise.
	(__construct_by_index): Remove.
	(variant::emplace): Use __emplace instead of _M_reset followed
	by __construct_by_index.
	(variant::swap): Hoist valueless cases out of visitor. Use
	__emplace to replace _M_reset followed by _Construct.

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

	* include/std/variant (_Nth_type): Define partial
	specializations to reduce number of instantiations.
	(variant_size_v): Define partial specializations to avoid
	instantiations.
	(variant_alternative): Use _Nth_type. Add static assert.
	(__tuple_count, __tuple_count_v): Replace with ...
	(__count): New variable template.
	(_Variant_union): Add deleted constructor.
	(variant::__to_type): Use _Nth_type.
	(variant::emplace): Use _Nth_type. Add deleted overloads for
	invalid types and indices.

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

	PR libstdc++/102912
	* include/std/variant (_Variant_storage::__index_of): Remove.
	(__variant_construct_single): Remove.
	(__variant_construct): Remove.
	(_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
	construction directly instead of using __variant_construct.
	(_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
	(_Move_ctor_base::_M_destructive_move()): Remove.
	(_Move_ctor_base::_M_destructive_copy()): Remove.
	(_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
	construction directly instead of using _M_destructive_copy.
	(variant::swap): Do construction directly instead of using
	_M_destructive_move.
	* testsuite/20_util/variant/102912.cc: New test.

2021-11-03  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/66742
	* include/bits/list.tcc (list::sort): Use mutable iterators for
	comparisons.
	* include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
	* testsuite/23_containers/list/operations/66742.cc: Check
	non-const comparisons.

2021-11-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/valarray (valarray::valarray()): Add noexcept.
	(valarray::operator[]): Likewise.

2021-11-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/debug/stl_iterator.h (__valid_range): Add constexpr
	for C++20. Qualify call to avoid ADL.
	(__get_distance, __can_advance, __unsafe, __base): Likewise.
	* testsuite/25_algorithms/move/constexpr.cc: Also check with
	std::reverse_iterator arguments.

2021-11-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/span (span(Range&&)): Reorder constraints.

2021-11-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103022
	* include/std/valarray (begin, end): Do not dereference an empty
	valarray. Add noexcept and [[nodiscard]].
	* testsuite/26_numerics/valarray/range_access.cc: Check empty
	valarray. Check iterator properties. Run as well as compiling.
	* testsuite/26_numerics/valarray/range_access2.cc: Likewise.
	* testsuite/26_numerics/valarray/103022.cc: New test.

2021-10-29  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/stack/deduction.cc: Fix typo.

2021-10-26  Martin Sebor  <msebor@redhat.com>

	* testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
	-Wstringop-overread.
	* testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.

2021-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* testsuite/28_regex/basic_regex/84110.cc (test01)
	[__cpp_exceptions]: Disambiguate extended.

2021-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* testsuite/17_intro/names.cc [__sun__] (r, x): Undef.

2021-10-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102894
	* include/std/any (make_any): Add SFINAE constraint.
	* testsuite/20_util/any/102894.cc: New test.

2021-10-21  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
	headers.
	* scripts/run_doxygen: Fix post-processing of #include
	directives in man pages. Use new xg++ to compile helper program.

2021-10-21  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/mofunc_impl.h: Add doxygen comments.
	* include/std/functional: Likewise.

2021-10-21  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/alloc_traits.h: Suppress doxygen documentation.
	* include/bits/allocated_ptr.h: Likewise.
	* include/bits/enable_special_members.h: Likewise.
	* include/bits/hashtable.h: Likewise.
	* include/bits/hashtable_policy.h: Likewise.
	* include/bits/uses_allocator.h: Likewise.
	* include/bits/node_handle.h: Document node handles and suppress
	documentation for protected members.
	* include/std/any: Suppress documentation for implementation
	details.

2021-10-21  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/102358
	* include/bits/stl_iterator.h (__niter_base): Make constexpr
	for C++20.
	(__miter_base): Likewise.
	* testsuite/25_algorithms/move/constexpr.cc: New test.

2021-10-21  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (istream_view): Replace this function
	template with an alias template as per P2432R1.
	(wistream_view): Define as per P2432R1.
	(views::_Istream, views::istream): Likewise.
	* testsuite/std/ranges/istream_view.cc (test07): New test.

2021-10-21  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_util.h (views::_Drop): Forward declare.
	(subrange): Befriend views::_Drop.
	(subrange::_S_store_size): Declare constexpr instead of just
	const, remove obsolete comment.
	* include/std/ranges (views::__detail::__is_empty_view): Define.
	(views::__detail::__is_basic_string_view): Likewise.
	(views::__detail::__is_subrange): Likewise.
	(views::__detail::__is_iota_view): Likewise.
	(views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
	(views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
	and fix it to range_difference_t<_Range>.  Implement P1739R4 and
	LWG 3407 changes.
	(views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
	(views::_Drop): As with views::_Take.
	(views::_Counted): Implement P1739R4 changes.
	* include/std/span (__detail::__is_std_span): Rename to ...
	(__detail::__is_span): ... this and turn it into a variable
	template.
	(__detail::__is_std_array): Turn it into a variable template.
	(span::span): Adjust uses of __is_std_span and __is_std_array
	accordingly.
	* testsuite/std/ranges/adaptors/p1739.cc: New test.

2021-10-21  Patrick Palka  <ppalka@redhat.com>

	* include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
	Make fully constexpr as per LWG 3595.
	(common_iterator::__postfix_proxy): Likewise.

2021-10-21  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (lazy_split_view::base): Add forward_range
	constraint as per LWG 3591.
	(lazy_split_view::begin, lazy_split_view::end): Also check
	simpleness of _Pattern as per LWG 3592.
	(split_view::base): Relax copyable constraint as per LWG 3590.

2021-10-21  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
	criteria for returning bidirectional_iterator_tag as per LWG 3535.
	(join_view::_Iterator::_S_iter_concept): Likewise.

2021-10-21  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_base.h (viewable_range): Adjust as per
	LWG 3481.
	* testsuite/std/ranges/adaptors/all.cc (test07): New test.

2021-10-21  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102863
	* include/std/optional (optional::and_then, optional::transform):
	Remove requires-clause.
	* testsuite/20_util/optional/monadic/and_then.cc: Check
	overload resolution doesn't cause errors.
	* testsuite/20_util/optional/monadic/transform.cc: Likewise.

2021-10-20  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/optional/monadic/transform.cc: Check that
	an rvalue result is not materialized too soon.

2021-10-19  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (iota_view::_Iterator::operator+): Adjust
	definition as per LWG 3580.
	(iota_view::_Iterator::operator-): Likewise.

2021-10-19  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (basic_istream_view::_M_object): Value
	initialize as per LWG 3568.

2021-10-19  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_util.h
	(__detail::__uses_nonqualification_pointer_conversion): Define
	and use it ...
	(__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
	* testsuite/std/ranges/subrange/1.cc: New test.

2021-10-19  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (iota_view::_Iterator): Befriend iota_view.
	(iota_view::_Sentinel): Likewise.
	(iota_view::iota_view): Add three overloads, each taking an
	iterator/sentinel pair as per LWG 3523.
	* testsuite/std/ranges/iota/iota_view.cc (test06): New test.

2021-10-19  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_base.h (view_interface): Forward declare.
	(__detail::__is_derived_from_view_interface_fn): Declare.
	(__detail::__is_derived_from_view_interface): Define as per LWG 3549.
	(enable_view): Adjust as per LWG 3549.
	* include/bits/ranges_util.h (view_interface): Don't derive from
	view_base.
	* include/std/ranges (filter_view): Revert r11-3504 change.
	(transform_view): Likewise.
	(take_view): Likewise.
	(take_while_view): Likewise.
	(drop_view): Likewise.
	(drop_while_view): Likewise.
	(join_view): Likewise.
	(lazy_split_view): Likewise.
	(split_view): Likewise.
	(reverse_view): Likewise.
	* testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
	* testsuite/std/ranges/view.cc (test_view::test_view): Remove
	this default ctor since views no longer need to be default initable.
	(test01): New test.

2021-10-19  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/random.cc (which_source): New helper function.
	(random_device::_M_getentropy()): Use which_source and return
	suitable values for sources other than device files.
	* testsuite/26_numerics/random/random_device/entropy.cc: New test.

2021-10-19  Jonathan Wakely  <jwakely@redhat.com>

	* doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
	(stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
	relative ${top_srcdir}.
	* doc/Makefile.in: Regenerate.

2021-10-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (_Uninitialized): Use an empty struct
	for the unused union member, instead of char.

2021-10-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
	non-deducible template parameter from deduction guide.
	* testsuite/23_containers/stack/deduction.cc: Check new C++23
	deduction guides.

2021-10-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/optional (_Optional_payload_base::_Storage): Add
	constructor taking a callable function to invoke.
	(_Optional_payload_base::_M_apply): New function.
	(__cpp_lib_monadic_optional): Define for C++23.
	(optional::and_then, optional::transform, optional::or_else):
	Define for C++23.
	* include/std/ranges (__detail::__cached): Remove.
	(__detail::__non_propagating_cache): Remove use of __cached for
	contained value. Use _Optional_payload_base::_M_construct and
	_Optional_payload_base::_M_apply to set the contained value.
	* include/std/version (__cpp_lib_monadic_optional): Define.
	* testsuite/20_util/optional/monadic/and_then.cc: New test.
	* testsuite/20_util/optional/monadic/or_else.cc: New test.
	* testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
	* testsuite/20_util/optional/monadic/transform.cc: New test.
	* testsuite/20_util/optional/monadic/version.cc: New test.

2021-10-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102825
	* include/bits/mofunc_impl.h (move_only_function): Remove
	invalid base initializer.
	* testsuite/20_util/move_only_function/cons.cc: Instantiate
	constructors to check bodies.

2021-10-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
	call to function with deduced return type.

2021-10-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
	Define for C++23.
	(basic_string::resize_and_overwrite): Declare.
	* include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
	Define.
	* include/std/version (__cpp_lib_resize_and_overwrite): Define
	for C++23.
	* testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
	New test.

2021-10-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101263
	* include/std/ranges (__cached): New wrapper struct.
	(__non_propagating_cache): Use __cached for contained value.
	(__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
	std::construct_at instead of placement new.
	* testsuite/std/ranges/adaptors/join.cc: Check constexpr works.

2021-10-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (__cpp_lib_variant): Update value for
	C++20.
	(__variant_cast, __variant_construct): Add constexpr for C++20.
	(__variant_construct_single, __construct_by_index) Likewise. Use
	std::_Construct instead of placement new.
	(_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
	buffer with a union and define a destructor.
	(_Variadic_union) [__cplusplus >= 202002]: Add a specialization
	for non-trivial destruction.
	(_Variant_storage::__index_of): New helper variable template.
	(_Variant_storage::~_Variant_storage()): Add constexpr.
	(_Variant_storage::_M_reset()): Likewise.
	(_Copy_ctor_base, _Move_ctor_base): Likewise.
	(_Copy_assign_base, _Move_assign_base): Likewise.
	(variant, swap): Likewise.
	* include/std/version (__cpp_lib_variant): Update value for
	C++20.
	* testsuite/20_util/optional/version.cc: Check for exact value
	in C++17.
	* testsuite/20_util/variant/87619.cc: Increase timeout for
	C++20 mode.
	* testsuite/20_util/variant/constexpr.cc: New test.
	* testsuite/20_util/variant/version.cc: New test.

2021-10-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (__detail::__variant::__get_storage):
	Remove unused function.
	(__variant_construct_by_index): Set index after construction is
	complete. Rename to ...
	(__detail::__variant::__construct_by_index): ... this.
	(variant): Use new name for __variant_construct_by_index friend
	declaration. Remove __get_storage friend declaration.
	(variant::emplace): Use new name and remove try-blocks.

2021-10-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (_Variant_storage::_M_storage()): Remove.
	(__detail::__variant::__get_storage): Remove.
	(variant): Remove friend declaration of __get_storage.

2021-10-15  Jason Merrill  <jason@redhat.com>

	* testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
	* testsuite/20_util/integer_comparisons/greater_neg.cc:
	* testsuite/20_util/integer_comparisons/less_equal_neg.cc:
	Adjust expected message.
	* testsuite/lib/prune.exp: Prune 'in constexpr expansion'.

2021-10-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
	Rename to __get_n and remove first argument. Replace pair of
	overloads with a single function using 'if constexpr'.
	(__variant::__get(Variant&&)): Adjust to use __get_n.

2021-10-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/fs_path.h (path(path&&)): Make unconditionally
	noexcept.
	(path::_S_convert(T)): Add condtional noexcept.

2021-10-14  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102743
	* include/bits/fs_path.h (path::_S_convert(T)): Fix condition
	for returning the same string unchanged.

2021-10-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.h: Check __cpp_inline_variables instead of
	__cplusplus.

2021-10-14  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/is_layout_compatible/version.cc: Check
	correct macro.

2021-10-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_construct.h (_Construct): Use
	std::construct_at when constant evaluated.
	* include/std/optional (_Storage, _Optional_payload, optional):
	Add constexpr as specified by P2231R1.
	* include/std/version (__cpp_lib_optional): Update value for
	C++20.
	* testsuite/20_util/optional/requirements.cc: Check feature test
	macro.
	* testsuite/20_util/optional/constexpr/assign.cc: New test.
	* testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
	* testsuite/20_util/optional/constexpr/modifiers.cc: New test.
	* testsuite/20_util/optional/constexpr/swap.cc: New test.
	* testsuite/20_util/optional/version.cc: New test.

2021-10-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/fs_path.h (__detail::__is_contiguous): Add
	partial specializations for pointers and __normal_iterator.

2021-10-13  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
	* testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
	* testsuite/28_regex/match_results/102667.C: Moved to...
	* testsuite/28_regex/match_results/102667.cc: ...here.

2021-10-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/fs_path.h (__detail::__is_contiguous): New
	variable template to identify contiguous iterators.
	(__detail::__unified_char8_t): New alias template to decide when
	to treat char8_t as char without encoding conversion.
	(__detail::__effective_range(const basic_string<C,T>&)): Use
	std::char_traits<C> for returned string view.
	(__detail::__effective_range(const basic_string_view<C,T>&)):
	Likewise.
	(__detail::__effective_range(const Source&)): Use
	__is_contiguous to detect mode cases of contiguous iterators.
	Use __unified_char8_t to return a std::string instead of
	std::u8string.

2021-10-13  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102592
	* include/bits/fs_path.h (path::path(Iter, Iter, format))
	(path::append(Iter, Iter), path::concat(Iter, Iter)): Call
	__string_from_range directly, instead of two-argument overload
	of _S_convert.
	(path::_S_convert(Iter, Iter)): Remove.
	* testsuite/27_io/filesystem/path/construct/102592.C: New test.

2021-10-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/c++config (__terminate): Add extern "C++".

2021-10-12  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/tuple/comparison_operators/overloaded.cc:
	Restore test for operator<.
	* testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
	Adjust expected errors for C++20.

2021-10-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101960
	* include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
	defauled.
	* testsuite/20_util/tuple/cons/101960.cc: Check tuples with
	array elements before the last element.

2021-10-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_iterator_base_funcs.h (__advance): Add
	deleted overload to improve diagnostics.
	(__distance): Likewise.

2021-10-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h: Remove unused header.
	* include/bits/c++config (std:__terminate): Define.
	* include/bits/semaphore_base.h: Remove <exception> and use
	__terminate instead of terminate.
	* include/bits/std_thread.h: Likewise.
	* libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
	to call __cxxabiv1::__terminate.

2021-10-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
	std::__to_address by using poitner directly or using base()
	member of __normal_iterator.

2021-10-11  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/18_support/numeric_limits/lowest.cc: Use
	numeric_limits<T>::is_integer instead of is_integral<T>::value.

2021-10-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/89927
	* include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
	Add __glibcxx_requires_string_len assertion.
	(basic_regex::assign(InputIterator, InputIterator)): Add
	__glibcxx_requires_valid_range assertion.
	* include/bits/regex_scanner.tcc (_Scanner::_M_advance())
	(_Scanner::_M_scan_normal()): Use string literal in assertions.

2021-10-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102667
	* include/bits/regex.h (match_result::empty()): Optimize by
	calling the base function directly.
	(match_results::end()): Check _Base_type::empty() not empty().
	* testsuite/28_regex/match_results/102667.C: New test.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98725
	* testsuite/18_support/numeric_limits/lowest.cc: Remove use of
	_GLIBCXX_USE_WCHAR_T.
	* testsuite/18_support/numeric_limits/min_max.cc: Replace use of
	_GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
	* testsuite/20_util/from_chars/1_neg.cc: Remove use of
	_GLIBCXX_USE_WCHAR_T.
	* testsuite/20_util/function_objects/searchers.cc: Likewise. Use
	char_traits<wchar_t>::length instead of wcslen.
	* testsuite/20_util/hash/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/is_arithmetic/value.cc: Likewise.
	* testsuite/20_util/is_compound/value.cc: Likewise.
	* testsuite/20_util/is_floating_point/value.cc: Likewise.
	* testsuite/20_util/is_fundamental/value.cc: Likewise.
	* testsuite/20_util/is_integral/value.cc: Likewise.
	* testsuite/20_util/is_signed/value.cc: Likewise.
	* testsuite/20_util/is_unsigned/value.cc: Likewise.
	* testsuite/20_util/is_void/value.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-1.cc:
	Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-2.cc:
	Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-3.cc:
	Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-4.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
	Likewise.
	* testsuite/20_util/to_chars/3.cc: Likewise.
	* testsuite/20_util/type_identity/requirements/typedefs.cc:
	Likewise.
	* testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
	* testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
	* testsuite/21_strings/basic_string/literals/types-char8_t.cc:
	Likewise.
	* testsuite/21_strings/basic_string/literals/types.cc: Likewise.
	* testsuite/21_strings/basic_string/literals/values-char8_t.cc:
	Likewise.
	* testsuite/21_strings/basic_string/literals/values.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/64422.cc:
	Likewise.
	* testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/requirements/citerators.cc:
	Likewise.
	* testsuite/21_strings/basic_string/requirements/typedefs.cc:
	Likewise.
	* testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/literals/types.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/literals/values.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
	* testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
	Likewise.
	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
	Likewise.
	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
	Likewise.
	* testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
	* testsuite/25_algorithms/fill/4.cc: Likewise.
	* testsuite/25_algorithms/fill_n/1.cc: Likewise.
	* testsuite/experimental/functional/searchers.cc: Likewise. Use
	char_traits<wchar_t>::length instead of wcslen.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
	Likewise.
	* testsuite/experimental/string_view/literals/types-char8_t.cc:
	Likewise.
	* testsuite/experimental/string_view/literals/types.cc:
	Likewise.
	* testsuite/experimental/string_view/literals/values-char8_t.cc:
	Likewise.
	* testsuite/experimental/string_view/literals/values.cc:
	Likewise.
	* testsuite/experimental/string_view/range_access/wchar_t/1.cc:
	Likewise.
	* testsuite/experimental/string_view/requirements/typedefs.cc:
	Likewise.
	* testsuite/experimental/string_view/typedefs.cc: Likewise.
	* testsuite/ext/vstring/range_access.cc: Likewise.
	* testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
	Likewise.
	* testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
	Likewise.
	* testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
	Likewise.
	* testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
	Likewise.
	* testsuite/tr1/4_metaprogramming/is_compound/value.cc:
	Likewise.
	* testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
	Likewise.
	* testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
	Likewise.
	* testsuite/tr1/4_metaprogramming/is_integral/value.cc:
	Likewise.
	* testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
	Likewise.
	* testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
	* testsuite/tr1/6_containers/hash/24799.cc: Likewise.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98725
	* include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
	(operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
	define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98725
	* include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
	Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98725
	* include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
	(__byte_operand<wchar_t>): Define specialization.
	* include/std/type_traits (__make_signed<wchar_t>)
	(__make_unsigned<wchar_t>): Remove redundant check for
	__WCHAR_TYPE__ being defined.
	* include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
	(__is_integral_helper<wchar_t>): Likewise.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98725
	* include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
	(__rc_string_base<wchar_t>): Define member function.
	* include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
	(hash<__gnu_cxx::__wvstring>): Define specialization.
	* include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
	(__wsso_string, __wrc_string): Declare typedefs.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98725
	* include/bits/char_traits.h (char_traits<wchar_t>): Define
	explicit specialization unconditionally.
	* include/bits/basic_string.h (hash<wstring>): Define
	unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
	* include/bits/stringfwd.h (wstring): Likewise.
	* include/debug/string (wstring): Likewise.
	* include/experimental/string_view (experimental::wstring_view)
	(hash<experimental::wstring_view>): Likewise.
	* include/std/string (pmr::wstring, hash<pmr::wstring>):
	Likewise.
	* include/std/string_view (wstring_view, hash<wstring_view>):
	Likewise.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
	* testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/22_locale/conversions/buffer/1.cc: Check
	_GLIBCXX_USE_WCHAR_T.
	* testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
	test using char16_t.
	* testsuite/22_locale/conversions/string/1.cc: Check
	_GLIBCXX_USE_WCHAR_T.
	* testsuite/27_io/filesystem/path/generic/generic_string.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
	* testsuite/27_io/filesystem/path/native/string-char8_t.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/native/string.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
	Likewise.
	* testsuite/experimental/filesystem/path/generic/generic_string.cc:
	Likewise.
	* testsuite/experimental/filesystem/path/native/alloc.cc:
	Likewise.
	* testsuite/experimental/filesystem/path/native/string-char8_t.cc:
	Likewise.
	* testsuite/experimental/filesystem/path/native/string.cc:
	Likewise.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/bit/bit.rotate/rotr.cc:
	* testsuite/util/testsuite_common_types.h:

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/18_support/numeric_limits/40856.cc: Replace use of
	_GLIBCXX_USE_INT128.
	* testsuite/18_support/numeric_limits/dr559.cc: Likewise.
	* testsuite/18_support/numeric_limits/lowest.cc: Likewise.
	* testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
	* testsuite/20_util/is_floating_point/value.cc: Likewise.
	* testsuite/20_util/is_integral/value.cc: Likewise.
	* testsuite/20_util/is_signed/value.cc: Likewise.
	* testsuite/20_util/is_unsigned/value.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-1.cc:
	Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-2.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
	Likewise.
	* testsuite/20_util/type_identity/requirements/typedefs.cc:
	Likewise.
	* testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
	* testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
	* testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
	* testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
	* testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
	* testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
	* testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
	* testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
	* testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
	Likewise.
	* testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/hashtable_policy.h (_Select1st): Replace use of
	std::get.
	(_Select2nd): Remove.
	(_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
	typedef instead of deducing it. Remove unnecessary piecewise
	construction.
	(_ReuseOrAllocNode): Make __node_type public.
	(_Map_base): Adjust partial specialization to be able to extract
	the mapped_type without using tuple_element.
	(_Map_base::at): Define inline
	* testsuite/23_containers/unordered_map/requirements/53339.cc:
	Remove XFAIL.
	* testsuite/23_containers/unordered_multimap/requirements/53339.cc:
	Likewise.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/hashtable.h: Move static assertion to destructor.
	* include/bits/hashtable_policy.h: Deduce value type from node
	type without instantiating it.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/limits.cc: Fail if __cpp_inline_variables is
	defined.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/92546
	* include/bits/ranges_algobase.h: Replace <iterator> with a
	subset of the headers it includes.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/deque (erase, erase_if): Revert changes
	to avoid debug mode overhead.
	* include/experimental/map (erase, erase_if): Likewise.
	* include/experimental/set (erase, erase_if): Likewise.
	* include/experimental/unordered_map (erase, erase_if):
	Likewise.
	* include/experimental/unordered_set (erase, erase_if):
	Likewise.
	* include/experimental/vector (erase, erase_if): Likewise.
	* include/std/deque (erase, erase_if): Likewise.
	* include/std/map (erase, erase_if): Likewise.
	* include/std/set (erase, erase_if): Likewise.
	* include/std/unordered_map (erase, erase_if): Likewise.
	* include/std/unordered_set (erase, erase_if): Likewise.
	* include/std/vector (erase, erase_if): Likewise.

2021-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/chrono (__detail::__units_suffix_misc): New
	helper function.
	(__detail::__units_suffix): Likewise.
	(chrono::operator<<(basic_ostream&, const duration&)): Define.
	* testsuite/20_util/duration/io.cc: New test.

2021-10-07  Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/std/chrono (duration, time_point, system_clock)
	(steady_clock, high_resolution_clock, chrono_literals, sys_time)
	(file_clock, file_time): Move to ...
	* include/bits/chrono.h: New file.
	* include/bits/atomic_futex.h: Include new header instead of
	<chrono>.
	* include/bits/atomic_timed_wait.h: Likewise.
	* include/bits/fs_fwd.h: Likewise.
	* include/bits/semaphore_base.h: Likewise.
	* include/bits/this_thread_sleep.h: Likewise.
	* include/bits/unique_lock.h: Likewise.
	* include/experimental/bits/fs_fwd.h: Likewise.
	* include/experimental/chrono: Likewise.
	* include/experimental/io_context: Likewise.
	* include/experimental/netfwd: Likewise.
	* include/experimental/timer: Likewise.
	* include/std/condition_variable: Likewise.
	* include/std/mutex: Likewise.
	* include/std/shared_mutex: Likewise.

2021-10-07  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102377
	* include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
	Hardcode to 64 instead of using non-constant constant.

2021-10-07  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/erase_if.h (__erase_nodes_if): Remove redundant
	__niter_base calls.
	* include/std/string (erase, erase_if): Likewise.
	* include/std/deque (erase, erase_if): Access non-debug
	container directly.
	* include/std/map (erase, erase_if): Likewise.
	* include/std/set (erase, erase_if): Likewise.
	* include/std/unordered_map (erase, erase_if): Likewise.
	* include/std/unordered_set (erase, erase_if): Likewise.
	* include/std/vector (erase, erase_if): Likewise.
	* include/experimental/deque (erase, erase_if): Likewise.
	* include/experimental/map (erase, erase_if): Likewise.
	* include/experimental/set (erase, erase_if): Likewise.
	* include/experimental/unordered_map (erase, erase_if):
	Likewise.
	* include/experimental/unordered_set (erase, erase_if):
	Likewise.
	* include/experimental/vector (erase, erase_if): Likewise.

2021-10-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Regenerate.
	* include/std/functional: Include <bits/move_only_function.h>.
	* include/std/version (__cpp_lib_move_only_function): Define.
	* include/bits/mofunc_impl.h: New file.
	* include/bits/move_only_function.h: New file.
	* testsuite/20_util/move_only_function/call.cc: New test.
	* testsuite/20_util/move_only_function/cons.cc: New test.
	* testsuite/20_util/move_only_function/move.cc: New test.
	* testsuite/20_util/move_only_function/version.cc: New test.

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

	* testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
	New test.
	* testsuite/23_containers/span/trivially_copyable.cc: New test.

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

	* include/bits/utility.h (__is_in_place_type_v): Define
	variable template to detect in_place_type_t specializations.
	(__is_in_place_type): Replace class template with alias
	template using __is_in_place_type_v.
	* include/std/any (any(T&&)): Check __is_in_place_type first and
	avoid instantiating is_copy_constructible unnecessarily.

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

	* testsuite/20_util/integer_comparisons/greater.cc: New test.

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

	* testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
	Check result matches non-volatile pointer.

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

	PR c++/102535
	* testsuite/20_util/is_trivially_constructible/value.cc: Adjust
	expected value for C++20.

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

	* include/bits/std_function.h (_Any_data::_M_access): Add
	noexcept.
	(_Function_base::_Base_manager::_M_get_pointer): Likewise.
	(_Function_base::_Base_manager::_M_not_empty_function):
	Likewise.

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

	* include/std/ostream (operator<<(const volatile void*)):
	Add new overload, as per P1147R1.
	* testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
	New test.

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

	* include/bits/stl_queue.h
	(__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
	value.
	* include/bits/stl_stack.h
	(__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
	* include/std/version
	(__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
	* testsuite/23_containers/queue/cons_from_iters.cc: Update
	expected value.
	* testsuite/23_containers/stack/cons_from_iters.cc: Likewise.

2021-10-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/forward_list.h (forward_list): Use non-deduced
	context for allocator parameter of allocator-extended copy and
	move constructors.
	* include/bits/stl_bvector.h (vector<bool>): Likewise.
	* include/bits/stl_deque.h (deque): Likewise.
	* include/bits/stl_list.h (list): Likewise.
	* include/bits/stl_map.h (map): Likewise.
	* include/bits/stl_multimap.h (multimap): Likewise.
	* include/bits/stl_multiset.h (multiset): Likewise.
	* include/bits/stl_set.h (set): Likewise.
	* include/bits/stl_vector.h (vector): Likewise.
	* include/bits/stl_queue.h (queue, priority_queue): Do not
	constrain Allocator template parameter of deduction guides that
	have a Container parameter.
	* include/bits/stl_stack.h (stack): Likewise.
	* include/debug/deque (__gnu_debug::deque): Use non-deduced
	context for allocator parameter of allocator-extended copy and
	move constructors.
	* include/debug/list (__gnu_debug::list): Likewise.
	* include/debug/map.h (__gnu_debug::map): Likewise.
	* include/debug/multimap.h (__gnu_debug::multimap): Likewise.
	* include/debug/multiset.h (__gnu_debug::multiset): Likewise.
	* include/debug/set.h (__gnu_debug::set): Likewise.
	* include/debug/vector (__gnu_debug::vector): Likewise.
	* testsuite/23_containers/deque/cons/deduction.cc: Test class
	template argument deduction with non-deduced allocator
	arguments.
	* testsuite/23_containers/forward_list/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/list/cons/deduction.cc: Likewise.
	* testsuite/23_containers/map/cons/deduction.cc: Likewise.
	* testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
	* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
	* testsuite/23_containers/priority_queue/deduction.cc: Likewise.
	* testsuite/23_containers/queue/deduction.cc: Likewise.
	* testsuite/23_containers/set/cons/deduction.cc: Likewise.
	* testsuite/23_containers/stack/deduction.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/vector/cons/deduction.cc: Likewise.

2021-10-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (__detail::__variant::__as): Add missing
	noexcept to first overload.

2021-10-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (basic_string(nullptr_t)): Define
	as deleted.
	(operator=(nullptr_t)): Likewise.
	* include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
	(operator=(nullptr_t)): Likewise.
	* include/std/string_view (basic_string_view(nullptr_t)):
	Likewise.
	* testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
	* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
	Change dg-warning to dg-error.
	* testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
	Likewise.

2021-10-02  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
	* src/filesystem/ops-common.h (__last_system_error): Add
	explicit cast to avoid narrowing conversion.
	(do_space): Fix type in function name.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102100
	* include/Makefile.am (c++config.h): Define
	_GLIBCXX_VERBOSE_ASSERT based on configure output.
	* include/Makefile.in: Regenerate.
	* include/bits/c++config: Fix condition for verbose assertions.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/92546
	* include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
	unwrap debug iterators.
	* include/bits/refwrap.h: Do not error if included in C++03.
	* include/bits/stl_algo.h (__remove_if): Move to ...
	* include/bits/stl_algobase.h (__remove_if): ... here.
	* include/std/deque (erase, erase_if): Use __remove_if instead of
	remove and remove_if.
	* include/std/string (erase, erase_if): Likewise.
	* include/std/vector (erase, erase_if): Likewise.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/66742
	* include/bits/list.tcc (list::sort()): Use _Scratch_list
	objects for splicing and merging.
	(list::sort(StrictWeakOrdering)): Likewise.
	* include/bits/stl_list.h (__detail::_Scratch_list): New type.
	* src/c++98/list.cc (_List_node_base::_M_transfer): Add
	assertion for --enable-libstdcxx-debug library.
	* testsuite/23_containers/list/operations/66742.cc: New test.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100612
	* include/std/thread (__pmf_expects_stop_token): New variable
	template to detect a pointer to member function that needs a
	stop_token to be added to the arguments.
	(jthread::__S_create): Use __pmf_expects_stop_token.
	(jthread::__S_create_pmf): New function.
	* testsuite/30_threads/jthread/100612.cc: New test.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_queue.h
	(__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
	per P1425R4.
	(queue(InputIterator, InputIterator)): Likewise.
	(queue(InputIterator, InputIterator, const Alloc&)): Likewise.
	* include/bits/stl_stack.h
	(__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
	(stack(InputIterator, InputIterator)): Likewise.
	(stack(InputIterator, InputIterator, const Alloc&)): Likewise.
	* include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
	Define.
	* testsuite/23_containers/queue/cons_from_iters.cc: New test.
	* testsuite/23_containers/stack/cons_from_iters.cc: New test.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_queue.h (priority_queue): Add
	allocator-extended overloads for constructors taking iterator.
	* testsuite/23_containers/priority_queue/lwg3506.cc: New test.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_queue.h (priority_queue): Construct sequence
	from iterators when no sequence argument is present (LWG 3529).
	* testsuite/23_containers/priority_queue/lwg3529.cc: New test.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_queue.h (priority_queue): Constrain
	constructors with InputIterator parameters (LWG 3522).
	* testsuite/23_containers/priority_queue/lwg3522.cc: New test.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_base.h (ranges::distance): Split overload
	into two (LWG 3392).
	* testsuite/24_iterators/range_operations/lwg3392.cc: New test.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/30_threads/thread/cons/3.cc: Remove derivation from
	std::unary_function.
	* testsuite/30_threads/thread/cons/4.cc: Likewise.
	* testsuite/30_threads/thread/cons/5.cc: Likewise.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
	unnecesary derivation from std::unary_function.
	* testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
	* testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
	* testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
	* testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
	* testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
	* testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
	* testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
	* testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
	Likewise.
	* testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
	* testsuite/ext/pb_ds/example/store_hash.cc: Likewise.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
	expand the format string for freestanding, or non-vebose, or if
	we're just going to abort anyway.
	* src/c++11/snprintf_lite.cc: Remove unused header and
	declaration.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (__do_visit): Use variant_npos instead of
	literal -1 that requires a narrowing conversion.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99327
	* src/filesystem/ops-common.h (__unsupported): New function to
	return a suitable error code for missing functionality.
	(posix::off_t): New typedef.
	(posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
	fallback implementations.
	(do_copy_file): Replace uses of errc::not_supported.
	* src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
	(fs::create_directory, fs::create_directory_symlink)
	(fs::create_hard_link, fs::create_symlink, fs::current_path)
	(fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
	(fs::last_write_time, fs::permissions, fs::read_symlink):
	Replace uses of errc::not_supported.
	(fs::resize_file): Qualify off_t.
	* src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
	(fs::create_directory, fs::create_directory_symlink)
	(fs::create_hard_link, fs::create_symlink, fs::current_path)
	(fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
	(fs::permissions, fs::read_symlink, fs::system_complete):
	Replace uses of errc::not_supported.
	(fs::resize_file): Qualify off_t and enable unconditionally.
	* testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* src/filesystem/ops-common.h (last_error): New helper function.
	(filesystem::do_space): Use last_error().
	* src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
	(fs::equivalent, fs::remove, fs::temp_directory_path): Use
	last_error().
	* src/filesystem/ops.cc (fs::create_hard_link)
	(fs::remove, fs::temp_directory_path): Likewise.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits (__conditional): New class template
	for internal uses of std::conditional.
	(__conditional_t): New alias template to replace conditional_t.
	(__and_, __or_, __result_of_memfun, __result_of_memobj): Use
	__conditional_t instead of conditional::type.
	* include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
	* include/bits/hashtable.h (_Hashtable): Likewise.
	* include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
	(_Local_iterator): Likewise. Replace typedefs with
	using-declarations.
	* include/bits/move.h (move_if_noexcept): Use __conditional_t.
	* include/bits/parse_numbers.h (_Select_int_base): Likewise.
	* include/bits/ptr_traits.h (__make_not_void): Likewise.
	* include/bits/ranges_algobase.h (__copy_or_move_backward)
	(__copy_or_move): Likewise.
	* include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
	* include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
	* include/bits/regex_compiler.h (_BracketMatcher): Use
	__conditional_t. Replace typedefs with using-declarations.
	* include/bits/shared_ptr_base.h (__shared_count): Use
	__conditional_t.
	* include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
	Likewise.
	* include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
	(reverse_iterator::iterator_concept)
	(__make_move_if_noexcept_iterator)
	(iterator_traits<common_iterator<_It, _Sent>>)
	(iterator_traits<counted_iterator<_It>>): Likewise.
	* include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
	* include/bits/stl_tree.h (_Rb_tree::insert_return_type)
	(_Rb_tree::_M_clone_node): Likewise.
	* include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
	Likewise.
	* include/bits/uses_allocator.h (__uses_alloc): Likewise.
	(__is_uses_allocator_predicate): Likewise.
	* include/debug/functions.h (__foreign_iterator_aux2): Likewise.
	* include/experimental/any (any::_Manager, __any_caster):
	Likewise.
	* include/experimental/executor (async_completion): Likewise.
	* include/experimental/functional (__boyer_moore_base_t):
	Likewise.
	* include/std/any (any::_Manager): Likewise.
	* include/std/functional (__boyer_moore_base_t): Likewise.
	* include/std/ranges (borrowed_iterator_t)
	(borrowed_subrange_t, __detail::__maybe_present_t)
	(__detail::__maybe_const_t, split_view): Likewise.
	* include/std/tuple (__empty_not_final, tuple::operator=):
	Likewise.
	* include/std/variant (__detail::__variant::__get_t): Likewise.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/78113
	* include/std/variant (__do_visit): Use a switch when we have a
	single variant with a small number of alternatives.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90943
	* include/std/variant (__cpp_lib_variant): Update value.
	(__detail::__variant::__as): New helpers implementing the
	as-variant exposition-only function templates.
	(visit, visit<R>): Use __as to upcast the variant parameters.
	* include/std/version (__cpp_lib_variant): Update value.
	* testsuite/20_util/variant/visit_inherited.cc: New test.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_iterator.h (__normal_iterator): Simplify
	converting constructor and do not require _Container::pointer.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
	(basic_string(basic_string&&)): Add noexcept and avoid
	allocation, by sharing rep with the rvalue string.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
	(common_iterator::__postfix_proxy): Add noexcept.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/94418
	* include/bits/stl_iterator.h (reverse_iterator): Use
	conditional noexcept on constructors and assignment operators.
	* testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100153
	* include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
	When size() is zero just deallocate and reset.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/96733
	* include/bits/stl_algo.h (clamp): Use std::min and std::max.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.h (basic_regex::multiline): Define for
	non-strict C++11 and C++14 modes.
	* include/bits/regex_constants.h (regex_constants::multiline):
	Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stream_iterator.h (istream_iterator): Add
	noexcept to constructors and non-throwing member functions and
	friend functions.
	(ostream_iterator): Likewise.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
	New trait to identify vector<bool> iterators, including debug
	ones.
	(_ForwardIteratorReferenceConcept): Add default template
	argument using _Is_vector_bool_iterator and use it in partial
	specialization for the vector<bool> cases.
	(_Mutable_ForwardIteratorReferenceConcept): Likewise.
	* testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
	line number.

2021-10-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/list.tcc (list::merge): Remove call to size() and
	try-catch block. Use _Finalize_merge instead.
	* include/bits/stl_list.h (list::_Finalize_merge): New
	scope guard type to update _M_size members after a merge.

2021-09-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.h (basic_regex::multiline): Fix #if
	condition.

2021-09-29  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.h (basic_regex::multiline): Define constant
	for C++17.
	* include/bits/regex_constants.h (regex_constants::multiline):
	Define constant for C++17.
	(regex_constants::__multiline): Define duplicate constant for
	internal use in C++11 and C++14.
	* include/bits/regex_executor.h (_Executor::_M_match_multiline()):
	New member function.
	(_Executor::_M_is_line_terminator(_CharT)): New member function.
	(_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
	member functions to support multiline matches.
	* testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.

2021-09-29  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex_compiler.h (_Compiler::_S_validate): New
	function.
	* include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
	_S_validate to check flags.
	* include/bits/regex_error.h (_S_grammar): New error code for
	internal use.
	* testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.

2021-09-29  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/84110
	* include/bits/regex_error.h (regex_constants::_S_null): New
	error code for internal use.
	* include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
	Check for null character.
	* testsuite/28_regex/basic_regex/84110.cc: New test.

2021-09-29  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.h (__detail::__is_contiguous_iter): Move
	here from <bits/regex_compiler.h>.
	(basic_regex::_M_compile): New function to compile an NFA from
	a regular expression string.
	(basic_regex::basic_regex): Use _M_compile instead of delegating
	to other constructors.
	(basic_regex::operator=(const basic_regex&)): Define as
	defaulted.
	(basic_regex::operator=(initializer_list<C>)): Use _M_compile.
	(basic_regex::assign(const basic_regex&)): Use copy assignment.
	(basic_regex::assign(basic_regex&&)): Use move assignment.
	(basic_regex::assign(const C*, flag_type)): Use _M_compile
	instead of constructing a temporary string.
	(basic_regex::assign(const C*, size_t, flag_type)): Likewise.
	(basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
	Use _M_compile instead of constructing a temporary basic_regex.
	(basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
	constructing a temporary string for contiguous iterators of the
	right value type.
	* include/bits/regex_compiler.h (__is_contiguous_iter): Move to
	<bits/regex.h>.
	(__enable_if_contiguous_iter, __disable_if_contiguous_iter)
	(__compile_nfa): Remove.
	* testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
	test.
	* testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
	Return false for ETIMEDOUT and true otherwise.

2021-09-28  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
	to also match message with '__8' in it.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
	* include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
	* include/bits/regex_compiler.tcc: Likewise.
	* include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
	* include/bits/regex_scanner.tcc: Likewise.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex_compiler.tcc: Add line break in empty while
	statement.
	* include/bits/regex_executor.tcc: Avoid unused parameter
	warning.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.h (basic_regex, swap): Add noexcept to
	non-throwing functions.
	* include/bits/regex_automaton.h (_State_base, _State)
	(_NFA_base): Likewise.
	* include/bits/regex_compiler.h (_Compiler): Likewise.
	* include/bits/regex_error.h (regex_error::code()): Likewise.
	* include/bits/regex_scanner.h (_Scanner): Likewise.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
	Define before first attempt to check it.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
	Do not check non-default constructible sequences when
	_GLIBCXX_CONCEPT_CHECKS is defined.
	* testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
	Likewise.
	* testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
	Likewise.
	* testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
	Likewise.
	* testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
	Likewise.
	* testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
	Likewise.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
	Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
	is defined.
	* testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
	Likewise.
	* testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
	Likewise.
	* testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
	Likewise.
	* testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
	Likewise.
	* testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
	Likewise.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/boost_concept_check.h (_ForwardIteratorConcept)
	(_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
	Check result types of iterator operations.
	(_Mutable_ForwardIteratorConcept): Check that iterator's
	reference type is a reference to its value type.
	(_Mutable_BidirectionalIteratorConcept): Do not require the
	value type to be assignable.
	(_Mutable_RandomAccessIteratorConcept): Likewise.
	* testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
	line number.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/25_algorithms/copy/34595.cc: Add missing operation
	for type used as an iterator.
	* testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/is_nothrow_swappable/value.h: Use custom
	comparison function for priority_queue of type with no
	relational operators.
	* testsuite/20_util/is_swappable/value.h: Likewise.
	* testsuite/24_iterators/output/concept.cc: Add operator< to
	type used in set.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/boost_concept_check.h (_OutputIteratorConcept):
	Use a function to preserve value category of the type.
	* include/bits/stl_algobase.h (copy, move, fill_n): Use a
	reference as the second argument for _OutputIteratorConcept.
	(copy_backward, move_backward): Use _OutputIteratorConcept
	instead of _ConvertibleConcept.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_iterator.h (pointer_traits): Define partial
	specialization for __normal_iterator.
	* testsuite/24_iterators/normal_iterator/to_address.cc: New test.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/move.h (forward(remove_reference_t<T>&&)):
	Improve text of static_assert.
	* testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
	* testsuite/20_util/forward/f_neg.cc: Likewise.

2021-09-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102499
	* include/bits/fs_path.h (path::begin, path::end): Add noexcept
	to declarations, to match definitions.

2021-09-24  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/range_access.h (cbegin, cend): Remove redundant
	'inline' specifier.

2021-09-23  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
	Remove dg-error lines for C++20-only errors.

2021-09-23  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/19_diagnostics/headers/system_error/93151.cc:
	Disable PCH.

2021-09-23  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/system_error.cc (system_error_category) [_WIN32]:
	Map Windows error codes to generic POSIX error numbers. Use
	FormatMessage instead of strerror.
	* testsuite/19_diagnostics/error_category/system_category.cc:
	Adjust for new behaviour on Windows.

2021-09-23  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/system_error.cc (generic_error_category): Define
	class and virtual functions as 'final'.
	(generic_error_category::equivalent(int, const error_condition&)):
	Override.
	(system_error_category): Define class and virtual functions as
	'final'.
	(system_error_category::equivalent(int, const error_condition&)):
	Override.
	(generic_category_instance, system_category_instance): Use
	constinit union to make the objects immortal.

2021-09-23  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102425
	* src/c++11/system_error.cc
	(system_error_category::default_error_condition): Add 0 to
	switch.
	* testsuite/19_diagnostics/error_category/102425.cc: New test.

2021-09-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/fs_path.h (path::iterator): Add noexcept to all
	member functions and friend functions.
	(distance): Add noexcept.
	(advance): Add noexcept and inline.
	* include/experimental/bits/fs_path.h (path::iterator):
	Add noexcept to all member functions.

2021-09-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102270
	* include/std/tuple (_Tuple_impl): Add constexpr to constructor
	missed in previous patch.
	* testsuite/20_util/tuple/cons/102270.C: Moved to...
	* testsuite/20_util/tuple/cons/102270.cc: ...here.
	* testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
	constexpr to constructor so it can be used for C++20 tests.

2021-09-17  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/valarray/dr630-3.C: Moved to...
	* testsuite/26_numerics/valarray/dr630-3.cc: ...here.
	* testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
	* testsuite/27_io/basic_iostream/cons/16251.cc: ...here.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	* src/Makefile.am (stamp-debug): Add all Makefiles as
	prerequisites.
	* src/Makefile.in: Regenerate.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
	timeout factor to 3.
	* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/using.xml: Generalize to apply to more than
	just -std=c++11.
	* doc/html/manual/using_macros.html: Regenerate.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/optional (nullptr_t): Make constructor noexcept.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/fs_path.h (advance): Remove non-deducible
	template parameter.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102270
	* include/std/tuple (_Head_base, _Tuple_impl): Add
	_GLIBCXX20_CONSTEXPR to allocator-extended constructors.
	(tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
	* testsuite/20_util/tuple/cons/102270.C: New test.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102280
	* include/std/span (span(Range&&)): Add constraint to deduction
	guide.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
	* src/c++98/Makefile.in: Regenerate.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
	(to_string): Add noexcept if the type width is 32 bits or less.

2021-09-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
	(__uniq_ptr_impl::_M_deleter): Add noexcept.

2021-09-16  Thomas Rodgers  <rodgert@twrodgers.com>

	PR libstdc++/101761
	* testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
	va and vb as arguments to wait/notify, remove unused bb local.

2021-09-15  Hugo Beauzée-Luyssen  <hugo@beauzee.fr>

	* crossconfig.m4: Check for TLS support on mingw.
	* configure: Regenerate.

2021-09-13  Jason Merrill  <jason@redhat.com>

	* include/std/version: Define __cpp_lib_hardware_interference_size.
	* libsupc++/new: Define hardware interference size variables.

2021-09-10  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
	Fix invalid hostname to only match the .invalid TLD.

2021-09-02  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
	Add new functions.
	* include/std/atomic (atomic<T*>::compare_exchange_weak): Use
	it.

2021-09-02  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/atomic: Tweak whitespace.

2021-09-02  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/102177
	* include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
	New function to check if a memory order is valid for the failure
	case of compare exchange operations.
	(__atomic_base<I>::compare_exchange_weak): Simplify assertions
	by using __is_valid_cmpexch_failure_order.
	(__atomic_base<I>::compare_exchange_strong): Likewise.
	(__atomic_base<P*>::compare_exchange_weak): Likewise.
	(__atomic_base<P*>::compare_exchange_strong): Likewise.
	(__atomic_impl::compare_exchange_weak): Add assertion.
	(__atomic_impl::compare_exchange_strong): Likewise.
	* include/std/atomic (atomic::compare_exchange_weak): Likewise.
	(atomic::compare_exchange_strong): Likewise.

2021-09-02  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/functional (invoke_r): Define.
	* include/std/version (__cpp_lib_invoke_r): Define.
	* testsuite/20_util/function_objects/invoke/version.cc: Check
	for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
	* testsuite/20_util/function_objects/invoke/4.cc: New test.

2021-08-31  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98421
	* include/std/span (span(Iter, size_type), span(Iter, Iter)):
	Add valid range checks.
	* testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
	* testsuite/23_containers/span/cons_2_assert_neg.cc: New test.

2021-08-31  Jonathan Wakely  <jwakely@redhat.com>

	* configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
	* configure: Regenerate.

2021-08-31  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/system_error.cc (error_category::~error_category()):
	Remove noexcept-specifier.
	(system_error::~system_error()): Likewise.
	* testsuite/19_diagnostics/error_category/noexcept.cc: New test.
	* testsuite/19_diagnostics/system_error/noexcept.cc: New test.

2021-08-31  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102074
	* include/bits/atomic_timed_wait.h (__timed_waiter_pool)
	[!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.

2021-08-31  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/internet (__make_resolver_error_code):
	Handle EAI_SYSTEM errors.
	(basic_resolver_results): Use __make_resolver_error_code. Use
	Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.

2021-08-31  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
	Try other service if "http" fails.

2021-08-31  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/17_intro/names.cc: Undefine some more names used
	by Solaris system headers.

2021-08-30  Jason Merrill  <jason@redhat.com>

	PR c++/96286
	* testsuite/30_threads/promise/requirements/lwg3466.cc:
	Remove dg-prune-outputs.

2021-08-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/alloc_traits.h (allocator_traits): Add explicit
	specialization for allocator<void>. Improve doxygen comments.
	* include/bits/allocator.h (allocator<void>): Restore for the
	versioned namespace.
	(allocator<void>::construct, allocator<void>::destroy): Remove.
	* include/ext/extptr_allocator.h (_Extptr_allocator<void>):
	Add default constructor and converting constructor.

2021-08-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_uninitialized.h: Fix typo in comment.

2021-08-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99876
	* src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
	to avoid unnecessary current_path() call.

2021-08-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/std_function.h (function::function(F&&)): Give
	name to defaulted template parameter, to improve diagnostics.
	Use markdown for more doxygen comments.

2021-08-26  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/std_function.h (function): Adjust doxygen
	comments.
	* include/bits/unique_ptr.h (make_unique_for_overwrite):
	Change parameter name to match doxygen comment.

2021-08-26  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/std_function.h (_function_base::_Base_manager):
	Replace _M_init_functor with a function template using a
	forwarding reference, and a pair of _M_create function
	templates. Reuse _M_create for the clone operation.
	(function::_Decay_t): New alias template.
	(function::_Callable): Simplify by using _Decay.
	(function::function(F)): Change parameter to forwarding
	reference, as per LWG 2447. Add noexcept-specifier. Simplify
	constraints.
	(function::operator=(F&&)): Add noexcept-specifier.
	* testsuite/20_util/function/cons/lwg2774.cc: New test.
	* testsuite/20_util/function/cons/noexcept.cc: New test.

2021-08-26  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/std_function.h (function::function(F)): Add
	static assertions to check constructibility requirements.

2021-08-26  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100285
	* configure.ac: Check for O_NONBLOCK.
	* configure: Regenerate.
	* include/experimental/internet: Include <ws2tcpip.h> for
	Windows.  Use preprocessor conditions around more constants.
	* include/experimental/socket: Use preprocessor conditions
	around more constants.
	* testsuite/experimental/net/internet/resolver/base.cc: Only use
	constants when the corresponding C macro is defined.
	* testsuite/experimental/net/socket/basic_socket.cc: Likewise.
	* testsuite/experimental/net/socket/socket_base.cc: Likewise.
	Make preprocessor checks more fine-grained.

2021-08-25  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/17_intro/names.cc: Check 'sz'.

2021-08-25  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/17_intro/names.cc: Adjust for Windows.

2021-08-25  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/valarray: Uglify 'func' parameters.
	* testsuite/17_intro/names.cc: Add 'func' to checks.

2021-08-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102064
	* include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
	Define macro to check conditions for optimizing trivial cases.
	(__check_constructible): New function to do static assert.
	(uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
	Use new macro.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
	Adjust dg-error pattern.
	* testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
	C++17-specific checks from 89164_c++17.cc.
	* testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
	New test.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
	New test.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
	New test.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
	New test.

2021-08-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102048
	* include/ext/rope (rope::erase(size_type)): Remove broken
	function.

2021-08-24  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2020.xml: Update table.
	* doc/html/manual/status.html: Regenerate.

2021-08-24  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits (is_layout_compatible): Define.
	(is_corresponding_member): Define.
	* include/std/version (__cpp_lib_is_layout_compatible): Define.
	* testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
	New test.
	* testsuite/20_util/is_layout_compatible/value.cc: New test.
	* testsuite/20_util/is_layout_compatible/version.cc: New test.
	* testsuite/20_util/is_pointer_interconvertible/with_class.cc:
	New test.
	* testsuite/23_containers/span/layout_compat.cc: Do not use real
	std::is_layout_compatible trait if available.

2021-08-24  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
	explicit instantiation definitions.

2021-08-23  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/ranges (basic_istream_view): Add default template
	argument.
	* testsuite/std/ranges/istream_view.cc: Check it.

2021-08-23  Jonathan Wakely  <jwakely@redhat.com>

	* libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
	precondition check.

2021-08-23  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90787
	* testsuite/util/testsuite_fs.h (permissions_are_testable):
	Define as inline.

2021-08-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90787
	* testsuite/27_io/filesystem/iterators/directory_iterator.cc:
	Use new __gnu_test::permissions_are_testable() function.
	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/exists.cc: Likewise.
	* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
	* testsuite/27_io/filesystem/operations/remove.cc: Likewise.
	* testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
	* testsuite/27_io/filesystem/operations/symlink_status.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
	Likewise.
	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
	Likewise.
	* testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
	Likewise.
	* testsuite/experimental/filesystem/operations/exists.cc:
	Likewise.
	* testsuite/experimental/filesystem/operations/is_empty.cc:
	Likewise.
	* testsuite/experimental/filesystem/operations/remove.cc:
	Likewise.
	* testsuite/experimental/filesystem/operations/remove_all.cc:
	Likewise.
	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
	Likewise.
	* testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
	New function to guess whether testing permissions will work.

2021-08-19  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2020.xml: Move row  earlier in table.
	* doc/html/manual/status.html: Regenerate.

2021-08-19  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2

2021-08-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101965
	* include/std/charconv (__to_chars_i): Remove redundant check.

2021-08-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101960
	* include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
	class' move constructor. Define as defaulted for versioned
	namespace.
	* testsuite/20_util/tuple/cons/101960.cc: New test.

2021-08-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100139
	* doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
	* doc/html/manual/status.html: Regenerate.

2021-08-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/shared_ptr.h: Add @since and @headerfile tags.
	* include/bits/unique_ptr.h: Add @headerfile tags.

2021-08-19  Jonathan Wakely  <jwakely@redhat.com>

	* src/filesystem/ops-common.h (filesystem::file_time): Improve
	overflow check by using system_clock::duration::max().

2021-08-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_tree.h: Tweak whitespace.

2021-08-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unique_ptr.h (default_delete): Add @since tag.
	(unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
	(make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
	@param, and @returns.
	(_MakeUniq): Move to __detail namespace. Add alias template
	helpers.

2021-08-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_function.h: Improve doxygen comments.

2021-08-18  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
	processing for C++20 components and components that depend on
	compiler features.
	* include/bits/stl_algo.h (random_shuffle): Use @deprecated.
	* include/std/type_traits: Improve doxygen comments for C++20
	traits.

2021-08-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/ext/type_traits.h (__promote_2, __promote_3)
	(__promote_4): Redfine as alias templates using __promoted_t.
	* include/std/complex (__promote_2): Remove partial
	specializations for std::complex.

2021-08-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_algo.h (min(initializer_list<T>))
	(min(initializer_list<T>, Compare)): Call __min_element directly to
	avoid redundant debug checks for valid ranges.
	(max(initializer_list<T>), max(initializer_list<T>, Compare)):
	Likewise, for __max_element.
	(minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
	Likewise, for __minmax_element.

2021-08-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/debug/deque (deque(size_type, const T&, const A&)):
	Prevent class template argument deduction and replace with a
	deduction guide.
	* include/debug/forward_list (forward_list(size_type, const T&, const A&)):
	Likewise.
	* include/debug/list (list(size_type, const T&, const A&)):
	Likewise.
	* include/debug/vector (vector(size_type, const T&, const A&)):
	Likewise.

2021-08-18  Jonathan Wakely  <jwakely@redhat.com>

	* python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
	'std::vector<bool>::reference' as type name, not _Bit_reference.
	(build_libstdcxx_dictionary): Register printers for vector<bool>
	types in debug mode too.
	* testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
	output for invalid _Bit_reference. Use vector<bool>::reference
	instead of _Bit_reference.
	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.

2021-08-17  Thomas Schwinge  <thomas@codesourcery.com>

	* testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
	continued.

2021-08-17  Luc Michel  <lmichel@kalray.eu>
	    Marc Poulhies  <mpoulhies@kalrayinc.com>

	* testsuite/lib/gdb-test.exp (gdb_version_check)
	(gdb_version_check_xmethods): Only check the GDB version for
	local native targets.

2021-08-17  Antony Polukhin  <antoshkka@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
	if distance is O(1).
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	line number.

2021-08-17  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
	construction from input iterators.

2021-08-17  Jonathan Wakely  <jwakely@redhat.com>

	* python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.

2021-08-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101923
	* include/bits/std_function.h (function(function&&)): Check for
	non-empty parameter before doing any work.

2021-08-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cow_string.h (basic_string::contains): Do not
	define for -std=gnu++20.

2021-08-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_util.h (__not_same_as): Rename to
	__different_from.
	* include/std/ranges (__not_same_as): Likewise.

2021-08-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/utility (exchange): Add noexcept-specifier.
	* testsuite/20_util/exchange/noexcept.cc: New test.

2021-08-17  Jonathan Wakely  <jwakely@redhat.com>

	* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
	(build_libstdcxx_dictionary): Register printer for
	std::error_code and std::error_condition.
	* testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.

2021-08-16  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101937
	* src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
	static data member.
	(print_word): Use qualified-id to access it.

2021-08-16  Jonathan Wakely  <jwakely@redhat.com>

	* python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
	Install another copy of the GDB hook.
	* python/Makefile.in: Regenerate.

2021-08-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101870
	* include/c_global/cmath (hypot): Use __promoted_t.
	(lerp): Add new overload accepting any arithmetic types.
	* include/ext/type_traits.h (__promoted_t): New alias template.
	* testsuite/26_numerics/lerp.cc: Moved to...
	* testsuite/26_numerics/lerp/1.cc: ...here.
	* testsuite/26_numerics/lerp/constexpr.cc: New test.
	* testsuite/26_numerics/lerp/version.cc: New test.

2021-08-12  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/lerp.cc: Add header name to #error.
	* testsuite/26_numerics/midpoint/integral.cc: Likewise.
	* testsuite/26_numerics/midpoint/version.cc: New test.

2021-08-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/random (experimental::randint): Add
	nodiscard attribute.

2021-08-12  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++98/locale_init.cc: Require C++11.
	* src/c++98/localename.cc: Likewise.
	* src/c++98/misc-inst.cc: Require C++98.

2021-08-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101866
	* testsuite/experimental/random/randint.cc: Loop and retry if
	reseed() produces the same sequence.

2021-08-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
	(is_pointer_interconvertible_base_of_v)
	(is_pointer_interconvertible_base_of): Define for C++20.
	* include/std/version (__cpp_lib_is_pointer_interconvertible):
	Define.
	* testsuite/23_containers/span/layout_compat.cc: Use correct
	feature test macro for std::is_layout_compatible_v.
	* testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
	* testsuite/20_util/is_pointer_interconvertible/version.cc: New test.

2021-08-09  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.h (basic_regex::transform_primary): Use
	_GLIBCXX_STD_C::vector for local variable.
	* include/bits/regex.tcc (__regex_algo_impl): Use reference to
	_GLIBCXX_STD_C::vector base class of match_results.
	* include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
	_GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
	variables.
	* include/bits/regex_compiler.h (_BracketMatcher): Use
	_GLIBCXX_STD_C::vector for data members.
	* include/bits/regex_executor.h (_Executor): Likewise.
	* include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.

2021-08-09  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/safe_container.h
	(_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
	(_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
	(_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.

2021-08-09  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/unordered_map/cons/default.cc: Add
	equality comparison operators to allocator.
	* testsuite/23_containers/unordered_set/cons/default.cc:
	Likewise.

2021-08-08  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
	dg-prune-output reason with 'builtin_unreachable'.
	* testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
	* testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
	* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
	* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
	* testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
	* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
	* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
	* testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.

2021-08-08  Hans-Peter Nilsson  <hp@bitrange.com>

	* testsuite/std/ranges/iota/max_size_type.cc: Set
	dg-timeout-factor to 4.

2021-08-06  Jonathan Wakely  <jwakely@redhat.com>

	* libsupc++/compare (compare_three_way, strong_order)
	(weak_order, partial_order, compare_strong_order_fallback)
	(compare_weak_order_fallback, compare_partial_order_fallback):
	Move nodiscard attributes to correct location.

2021-08-05  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101782
	* include/bits/ranges_base.h (ranges::begin, ranges::end)
	(ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
	(ranges::empty, ranges::data): Move attribute after the
	declarator-id instead of at the end of the declarator.
	* include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
	Move attributes back to the start of the function declarator,
	but move the requires-clause to the end.
	(common_iterator): Move attribute after the declarator-id.
	* include/bits/stl_queue.h (queue): Remove ill-formed attributes
	from friend declaration that are not definitions.
	* include/std/ranges (views::all, views::filter)
	(views::transform, views::take, views::take_while,
	views::drop) (views::drop_while, views::join,
	views::lazy_split) (views::split, views::counted,
	views::common, views::reverse) (views::elements): Move
	attributes after the declarator-id.

2021-08-05  Jonathan Wakely  <jwakely@redhat.com>

	* libsupc++/compare (partial_ordering, weak_ordering)
	(strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
	(compare_three_way, strong_order, weak_order, partial_order)
	(compare_strong_order_fallback, compare_weak_order_fallback)
	(compare_partial_order_fallback, __detail::__synth3way): Add
	nodiscard attribute.
	* testsuite/18_support/comparisons/categories/zero_neg.cc: Add
	-Wno-unused-result to options.

2021-08-05  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101782
	* include/bits/ranges_base.h (ranges::begin, ranges::end)
	(ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
	(ranges::empty, ranges::data): Move attribute to the end of
	the declarator.
	* include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
	(common_iterator): Likewise for non-member operator functions.
	* include/std/ranges (views::all, views::filter)
	(views::transform, views::take, views::take_while, views::drop)
	(views::drop_while, views::join, views::lazy_split)
	(views::split, views::counted, views::common, views::reverse)
	(views::elements): Likewise.
	* testsuite/std/ranges/access/101782.cc: New test.

2021-08-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/forward_list.h: Add [[nodiscard]] to functions
	with no side-effects.
	* include/bits/stl_bvector.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_list.h: Likewise.
	* include/bits/stl_queue.h: Likewise.
	* include/bits/stl_stack.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/debug/deque: Likewise.
	* include/debug/forward_list: Likewise.
	* include/debug/list: Likewise.
	* include/debug/safe_iterator.h: Likewise.
	* include/debug/vector: Likewise.
	* include/std/array: Likewise.
	* testsuite/23_containers/array/creation/3_neg.cc: Use
	-Wno-unused-result.
	* testsuite/23_containers/array/debug/back1_neg.cc: Cast result
	to void.
	* testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
	* testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
	* testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
	* testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
	Likewise.
	* testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
	Likewise.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc:
	Adjust dg-error line numbers.
	* testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
	result to void.
	* testsuite/23_containers/deque/debug/invalidation/4.cc:
	Likewise.
	* testsuite/23_containers/deque/types/1.cc: Use
	-Wno-unused-result.
	* testsuite/23_containers/list/types/1.cc: Cast result to void.
	* testsuite/23_containers/priority_queue/members/7161.cc:
	Likewise.
	* testsuite/23_containers/queue/members/7157.cc: Likewise.
	* testsuite/23_containers/vector/59829.cc: Likewise.
	* testsuite/23_containers/vector/ext_pointer/types/1.cc:
	Likewise.
	* testsuite/23_containers/vector/ext_pointer/types/2.cc:
	Likewise.
	* testsuite/23_containers/vector/types/1.cc: Use
	-Wno-unused-result.

2021-08-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/iterator_concepts.h (iter_move): Add
	[[nodiscard]].
	* include/bits/range_access.h (begin, end, cbegin, cend)
	(rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
	* include/bits/ranges_base.h (ranges::begin, ranges::end)
	(ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
	(ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
	(ranges::empty, ranges::data, ranges::cdata): Likewise.
	* include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
	(back_insert_iterator, front_insert_iterator, insert_iterator)
	(move_iterator, move_sentinel, common_iterator)
	(counted_iterator): Likewise.
	* include/bits/stl_iterator_base_funcs.h (distance, next, prev):
	Likewise.
	* include/bits/stream_iterator.h (istream_iterator)
	(ostream_iterartor): Likewise.
	* include/bits/streambuf_iterator.h (istreambuf_iterator)
	(ostreambuf_iterator): Likewise.
	* include/std/ranges (views::single, views::iota, views::all)
	(views::filter, views::transform, views::take, views::take_while)
	(views::drop, views::drop_while, views::join, views::lazy_split)
	(views::split, views::counted, views::common, views::reverse)
	(views::elements): Likewise.
	* testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
	* testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
	* testsuite/24_iterators/normal_iterator/greedy_ops.cc:
	Likewise.
	* testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
	* testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
	Likewise.
	* testsuite/21_strings/basic_string/range_access/char/1.cc:
	Cast result to void.
	* testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/range_access/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
	Likewise.
	* testsuite/23_containers/array/range_access.cc: Likewise.
	* testsuite/23_containers/deque/range_access.cc: Likewise.
	* testsuite/23_containers/forward_list/range_access.cc:
	Likewise.
	* testsuite/23_containers/list/range_access.cc: Likewise.
	* testsuite/23_containers/map/range_access.cc: Likewise.
	* testsuite/23_containers/multimap/range_access.cc: Likewise.
	* testsuite/23_containers/multiset/range_access.cc: Likewise.
	* testsuite/23_containers/set/range_access.cc: Likewise.
	* testsuite/23_containers/unordered_map/range_access.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/range_access.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/range_access.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/range_access.cc:
	Likewise.
	* testsuite/23_containers/vector/range_access.cc: Likewise.
	* testsuite/24_iterators/customization_points/iter_move.cc:
	Likewise.
	* testsuite/24_iterators/istream_iterator/sentinel.cc:
	Likewise.
	* testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
	Likewise.
	* testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
	* testsuite/24_iterators/operations/prev_neg.cc: Likewise.
	* testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
	* testsuite/24_iterators/range_access/range_access.cc:
	Likewise.
	* testsuite/24_iterators/range_operations/100768.cc: Likewise.
	* testsuite/26_numerics/valarray/range_access2.cc: Likewise.
	* testsuite/28_regex/range_access.cc: Likewise.
	* testsuite/experimental/string_view/range_access/char/1.cc:
	Likewise.
	* testsuite/experimental/string_view/range_access/wchar_t/1.cc:
	Likewise.
	* testsuite/ext/vstring/range_access.cc: Likewise.
	* testsuite/std/ranges/adaptors/take.cc: Likewise.
	* testsuite/std/ranges/p2259.cc: Likewise.

2021-08-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.tcc (linear_congruential_engine): Do not
	define static constexpr members when they are implicitly inline.
	* include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
	(__ratio_add, __ratio_subtract): Likewise.
	* include/std/type_traits (integral_constant): Likewise.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	line number.

2021-08-03  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/util/testsuite_common_types.h: Replace uses of
	tr1::unordered_map and tr1::unordered_set with their C++11
	equivalents.
	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
	dg-error line number.
	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
	Likewise.
	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
	Likewise.
	* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
	Likewise.
	* testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
	Likewise.
	* testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
	Likewise.

2021-08-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/memory_resource (polymorphic_allocator::delete_object):
	Call destructor directly instead of using destroy.
	(allocator_traits<polymorphic_allocator<T>>): Define partial
	specialization.

2021-08-03  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/function_objects/binders/3113.cc: Remove
	trailing whitespace.
	* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc:
	Likewise.
	* testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
	Likewise.
	* testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
	Likewise.

2021-08-03  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/evolution.xml: Document deprecation.
	* doc/html/*: Regenerate.
	* include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
	(_GLIBCXX14_DEPRECATED_SUGGEST): Define.
	* include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
	and later.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
	for C++11 and C++14 changes to std::random_shuffle and
	std::shuffle.
	* testsuite/25_algorithms/random_shuffle/1.cc: Add options to
	use deprecated algorithms.
	* testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
	* testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
	* testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
	Likewise.
	* testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
	Likewise.

2021-08-03  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/forward_list/operations/3.cc:
	Use lambda instead of std::bind2nd.
	* testsuite/20_util/function_objects/binders/3113.cc: Add
	options for testing deprecated features.
	* testsuite/20_util/pair/cons/99957.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
	Likewise.
	* testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
	Likewise.
	* testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
	New proc.

2021-08-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex_executor.h (_State_info): Replace
	unique_ptr<bool[]> with array of bool.
	* include/bits/regex_executor.tcc: Likewise.
	* include/bits/regex_scanner.tcc: Replace std::strchr with
	__builtin_strchr.
	* include/std/regex: Replace standard headers with smaller
	internal ones.
	* testsuite/28_regex/traits/char/lookup_classname.cc: Include
	<string.h> for strlen.
	* testsuite/28_regex/traits/char/lookup_collatename.cc:
	Likewise.

2021-08-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
	RAII class template.
	(wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
	instead of unique_ptr.

2021-08-02  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/101599
	* include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
	Add missing std::move in return statement.
	(__partition_copy_fn::operator()): Rename templtae parameter
	_O2 to _Out2.  Uglify function parameters out_true and out_false.
	* include/bits/ranges_algobase.h (__copy_or_move): Add missing
	std::move to recursive call that unwraps a __normal_iterator
	output iterator.
	* testsuite/25_algorithms/copy/constrained.cc (test06): New test.
	* testsuite/25_algorithms/move/constrained.cc (test05): New test.

2021-08-02  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/101589
	* include/std/ranges (lazy_split_view::_InnerIter::base): Make
	the const& overload unconstrained and return a const reference
	as per LWG 3533.  Make unconditionally noexcept.
	(elements_view::base): Revert accidental r12-569 change.
	(elements_view::_Iterator::base): Make the const& overload
	unconstrained and return a const reference as per LWG 3533.
	Make unconditionally noexcept.

2021-08-02  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/101483
	* include/std/ranges (join_view::_Iterator::_Iterator): Add
	missing std::move.

2021-08-02  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101709
	* src/filesystem/ops-common.h (get_temp_directory_from_env):
	Add error_code parameter.
	* src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
	argument to get_temp_directory_from_env and check it.
	* src/filesystem/ops.cc (fs::temp_directory_path): Likewise.

2021-08-02  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
	Add dg-error for c++11_only target.

2021-07-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/65018
	* configure.ac: Check for secure_getenv.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* src/filesystem/ops-common.h (get_temp_directory_from_env): New
	helper function to obtain path from the environment.
	* src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
	* src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
	Print messages if test cannot be run.
	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
	Likewise. Fix incorrect condition. Use "TMP" to work with
	Windows as well as POSIX.

2021-07-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* src/c++17/memory_resource.cc: Use __exchange instead
	of std::exchange.

2021-07-27  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/optional (__throw_bad_optional_access):
	Replace GNU attribute with C++11 attribute.
	(optional::value, optional::value_or): Use if statements
	instead of conditional expressions.
	* include/std/optional (__throw_bad_optional_access)
	(optional::value, optional::value_or): Likewise.

2021-07-27  Marek Polacek  <polacek@redhat.com>

	DR 1512
	PR c++/99701
	* testsuite/20_util/tuple/comparison_operators/overloaded.cc:
	Move a line...
	* testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
	...here.  New test.

2021-07-27  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cow_string.h: Consistently use tab for
	indentation.

2021-07-27  Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
	(basic_string): Move definition of Copy-on-Write string to
	new file.
	* include/bits/basic_string.tcc: Likewise.
	* include/bits/cow_string.h: New file.

2021-07-27  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/algorithm: Do not include <utility>.
	* include/std/functional: Likewise.
	* include/std/regex: Include <bits/stl_pair.h> instead of
	<utility>.
	* include/debug/map.h: Likewise.
	* include/debug/multimap.h: Likewise.
	* include/debug/multiset.h: Likewise.
	* include/debug/set.h: Likewise.
	* include/debug/vector: Likewise.
	* include/bits/fs_path.h: Likewise.
	* include/bits/unique_ptr.h: Do not include <utility>.
	* include/experimental/any: Likewise.
	* include/experimental/executor: Likewise.
	* include/experimental/memory: Likewise.
	* include/experimental/optional: Likewise.
	* include/experimental/socket: Use __exchange instead
	of std::exchange.
	* src/filesystem/ops-common.h: Likewise.
	* testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
	errors to not use a hardcoded line number.
	* testsuite/20_util/default_delete/void_neg.cc: Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
	Include <utility> for std::as_const.
	* testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
	Likewise.
	* testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
	Adjust dg-error line number.

2021-07-27  Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add bits/utility.h header.
	* include/Makefile.in: Regenerate.
	* include/bits/utility.h: New file.
	* include/std/utility (tuple_size, tuple_element): Move
	to new header.
	* include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
	Move to <tuple>.
	(_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
	(in_place_t, in_place_index_t, in_place_type_t): Likewise.
	* include/bits/ranges_util.h: Include new header instead of
	<utility>.
	* include/bits/stl_pair.h (tuple_size, tuple_element): Move
	partial specializations for std::pair here.
	(get): Move overloads for std::pair here.
	* include/std/any: Include new header instead of <utility>.
	* include/std/array: Likewise.
	* include/std/memory_resource: Likewise.
	* include/std/optional: Likewise.
	* include/std/variant: Likewise.
	* include/std/tuple: Likewise.
	(__is_tuple_like_impl<tuple<T...>>): Move here.
	(get) Declare overloads for std::array.
	* include/std/version (__cpp_lib_tuples_by_type): Change type
	to long.
	* testsuite/20_util/optional/84601.cc: Include <utility>.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
	Likewise.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc:
	Adjust dg-error line numbers.
	* testsuite/std/ranges/access/cbegin.cc: Include <utility>.
	* testsuite/std/ranges/access/cend.cc: Likewise.
	* testsuite/std/ranges/access/end.cc: Likewise.
	* testsuite/std/ranges/single_view.cc: Likewise.

2021-07-23  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/future: Include <bits/atomic_base.h> instead of
	<atomic>.

2021-07-23  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_relops.h: Update documentation comments.

2021-07-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101583
	* include/bits/hashtable.h (_Hashtable): Replace mixin with
	_Enable_default_ctor. Construct it explicitly in all
	non-forwarding, non-defaulted constructors.
	* testsuite/23_containers/unordered_map/cons/default.cc: Check
	non-default constructors can be used.
	* testsuite/23_containers/unordered_set/cons/default.cc:
	Likewise.

2021-07-22  David Edelsohn  <dje.gcc@gmail.com>

	* config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.

2021-07-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/94295
	* include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
	(_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
	(allocator::allocate, allocator::deallocate): Use new macros.

2021-07-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101571
	* include/bits/ranges_uninitialized.h (_DestroyGuard): Change
	constructor parameter to reference and use addressof.
	* testsuite/util/testsuite_iterators.h: Define deleted operator&
	overloads for test iterators.

2021-07-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/std_function.h (_Function_base): Add
	default member initializers and define constructor as defaulted.
	(function::_M_invoker): Add default member initializer.

2021-07-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100682
	* doc/xml/manual/debug_mode.xml: Update documentation about
	debug capability of std::array.
	* doc/html/*: Regenerate.
	* include/debug/array: New file.

2021-07-21  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101542
	* include/ext/rope (sequence_buffer): Add move constructor and
	move assignment operator.
	* testsuite/ext/rope/101542.cc: New test.

2021-07-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101510
	* src/c++17/fs_ops.cc (fs::create_directories): Use status
	instead of symlink_status.
	* src/filesystem/ops.cc (fs::create_directories): Likewise.
	* testsuite/27_io/filesystem/operations/create_directories.cc:
	Check symlink to existing directory.
	* testsuite/27_io/filesystem/operations/create_directory.cc: Do
	not test with symlinks on Windows.
	* testsuite/experimental/filesystem/operations/create_directories.cc:
	Check symlink to existing directory.
	* testsuite/experimental/filesystem/operations/create_directory.cc:
	Do not test with symlinks on Windows.

2021-07-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100863
	* include/bits/hashtable.h (_Hashtable): Conditionally delete
	default constructor by deriving from _Enable_special_members.
	* testsuite/23_containers/unordered_map/cons/default.cc: New test.
	* testsuite/23_containers/unordered_set/cons/default.cc: New test.

2021-07-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101510
	* src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
	* testsuite/27_io/filesystem/operations/create_directory.cc:
	Test creating directory with name of existing symlink to
	directory.
	* testsuite/experimental/filesystem/operations/create_directory.cc:
	Likewise.

2021-07-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/tuple (get<I>): Add deleted overload for bad
	index.
	* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
	expected errors.

2021-07-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/max_size_type.h (numeric_limits<__max_size_type>):
	Use __int_traits unconditionally.

2021-07-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.h (_Shift::__value): Use constexpr.
	(_Select_uint_least_t::type): Use using-declaration.
	(_Mod): Likewise.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	line number.

2021-07-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cpp_type_traits.h (__INT_N): Use __extension__
	instead of diagnostic pragmas.
	* include/bits/functional_hash.h: Likewise.
	* include/bits/iterator_concepts.h (__is_signed_int128)
	(__is_unsigned_int128): Likewise.
	* include/bits/max_size_type.h (__max_size_type): Likewise.
	(numeric_limits<__max_size_type>): Likewise.
	* include/bits/std_abs.h (abs): Likewise.
	* include/bits/stl_algobase.h (__size_to_integer): Likewise.
	* include/bits/uniform_int_dist.h (uniform_int_distribution):
	Likewise.
	* include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
	Likewise.
	* include/std/type_traits (__is_integral_helper<INT_N>)
	(__is_signed_integer, __is_unsigned_integer)
	(__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
	* include/std/limits (__INT_N): Add __extension__ keyword.
	* include/bits/random.h (_Select_uint_least_t)
	(random_device): Likewise.

2021-07-16  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/101231
	* include/std/ranges (_CachedPosition::_M_get): For non-forward
	ranges, just call __builtin_unreachable.
	* testsuite/std/ranges/istream_view.cc (test05): New test.

2021-07-16  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/101214
	* include/std/ranges (split_view::split_view): Use std::move.
	(split_view::_Iterator::_Iterator): Remove redundant
	default_initializable constraint.
	(split_view::_Sentinel::_Sentinel): Declare.
	* testsuite/std/ranges/adaptors/split.cc (test02): New test.

2021-07-16  Marek Polacek  <polacek@redhat.com>

	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
	dg-error.

2021-07-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unique_ptr.h: Adjust doxygen markup.

2021-07-16  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101307
	* include/std/type_traits: Adjust doxygen markup.

2021-07-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cpp_type_traits.h: Add diagnostic pragmas around
	uses of non-standard integer types.
	* include/bits/functional_hash.h: Likewise.
	* include/bits/iterator_concepts.h: Likewise.
	* include/bits/max_size_type.h: Likewise.
	* include/bits/std_abs.h: Likewise.
	* include/bits/stl_algobase.h: Likewise.
	* include/bits/uniform_int_dist.h: Likewise.
	* include/ext/numeric_traits.h: Likewise.
	* include/std/type_traits: Likewise.

2021-07-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101427
	* include/std/tuple (tuple_element): Improve static_assert text.
	(__get_helper): Add deleted overload.
	(get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
	__get_helper directly.
	(__get_helper2): Remove.
	(__find_uniq_type_in_pack): New constexpr helper function.
	(get<T>): Use __find_uniq_type_in_pack and __get_helper instead
	of __get_helper2.
	* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
	expected errors.
	* testsuite/20_util/tuple/element_access/101427.cc: New test.

2021-07-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101429
	* include/bits/c++config (__replacement_assert): Add noexcept.
	[!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
	instead of __replacement_assert.

2021-07-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/string_view (basic_string_view(It, End)): Add
	noexcept-specifier.
	* testsuite/21_strings/basic_string_view/cons/char/range.cc:
	Check noexcept-specifier. Also check construction without CTAD.

2021-07-13  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/101361
	* include/std/string_view (ends_with): Use traits_type::compare
	directly.

2021-07-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/string_view: Only include <bits/ranges_base.h>
	once, and only for C++20 and later.

2021-07-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101411
	* include/std/span (as_writable_bytes): Add requires-clause.
	* testsuite/23_containers/span/101411.cc: New test.

2021-07-09  Matheus Castanho  <msc@linux.ibm.com>

	* include/std/mutex (__lock_impl): Check
	_GLIBCXX_HAS_GTHREADS before using __gthread_yield.

2021-07-02  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101271
	* include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
	Remove noexcept-specifier.
	(unique_ptr<T[],D>::_S_nothrow_deref): Remove.
	* testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
	operator[].

2021-07-01  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/doxygroups.cc: Fix docs for std::literals.
	* doc/doxygen/user.cfg.in: Exclude the Networking TS header.
	Add some more predefined macros.
	* include/bits/fs_fwd.h: Move @addtogroup commands inside
	namespaces. Add better documentation.
	* include/bits/fs_path.h: Likewise.
	* include/experimental/bits/fs_fwd.h: Likewise.
	* include/experimental/bits/fs_path.h: Likewise.
	* include/ext/throw_allocator.h: Fix typo and improve docs.
	* include/std/chrono: Move @addtogroup commands.
	* include/std/system_error: Move @addtogroup commands.
	* libsupc++/exception: Improve documentation.
	* libsupc++/exception.h: Add @since documentation.

2021-06-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101258
	* doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
	(COLS_IN_ALPHA_INDEX): Remove obsolete tag.
	(PREDEFINED): Add/fix some more macros that need to be expanded.
	* include/bits/random.h: Stop Doxygen from documenting internal
	implementation details.
	* include/bits/random.tcc: Likewise.
	* include/bits/this_thread_sleep.h: Fix @file name.
	* include/experimental/bits/simd.h: Add to Doxygen group. Do not
	document internal implementation details.
	* include/experimental/bits/simd_detail.h: Do not document
	internal implementation details.
	* include/experimental/simd: Define Doxygen groups.
	* include/experimental/type_traits: Improve documentation for
	the header file. Define groups. Use @since commands.
	* include/std/scoped_allocator (scoped_allocator_adaptor): Move
	declaration before undocumented region.
	* include/std/type_traits (true_type, false_type): Use using
	declaration instead of typedef.
	(is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
	(is_nothrow_invocable_r_v): Move definitions next to other C++17
	variable templates.
	Do not document internal implementation details. Move misplaced
	group-end command. Define group for variable templates.
	* include/std/variant: Do not document internal implementation
	details.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	line number.

2021-06-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/simd: Do not define anything pre-C++17.

2021-06-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.tcc [__cpp_inline_variables]: Remove
	redundant definitions of static constexpr member variables.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	line number.

2021-06-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
	explicit instantiation declarations.
	* src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
	explicit instantiation definitions.

2021-06-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/97088
	* testsuite/17_intro/names.cc: Fix #if condition for names used
	by newlib headers.

2021-06-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101236
	* include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
	Fail gracefully if element_type is incomplete.
	* testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
	the standard doesn't require this test to work for array types.
	* testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
	types can be used with array specialization.
	* testsuite/20_util/unique_ptr/101236.cc: New test.

2021-06-28  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/intro.xml: Document LWG 415 change.
	* doc/html/manual/bugs.html: Regenerate.
	* include/bits/istream.tcc (ws): Create sentry and catch
	exceptions.
	* testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
	* testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.

2021-06-25  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ostream.tcc (basic_ostream::write): Call sputn
	directly instead of using _M_write. Do setstate(__err) all
	outside the try-catch block.
	* include/std/ostream (basic_ostream::_M_write): Declare
	private. Use __ostream_insert. Do not define for the versioned
	namespace.

2021-06-25  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/intro.xml: Document LWG 581 change.
	* doc/html/manual/bugs.html: Regenerate.
	* include/bits/basic_ios.tcc: Whitespace.
	* include/bits/ostream.tcc (basic_ostream::flush()): Construct
	sentry.
	* testsuite/27_io/basic_ostream/flush/char/2.cc: Check
	additional cases.
	* testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
	* testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
	Likewise.

2021-06-25  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ostream.tcc (sentry): Only set failbit if badbit
	is set, not if eofbit is set.
	(tellp, seekp, seekp): Create sentry object. Do not set badbit
	on exceptions.
	* testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
	Adjust expected behaviour.
	* testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
	* testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
	* testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
	* testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.

2021-06-25  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/syncstream (basic_syncbuf::swap()): Remove
	noexcept, as per LWG 3498.

2021-06-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/97088
	* testsuite/17_intro/names.cc: Undef more names for newlib and
	also for arm-none-linux-gnueabi.
	* testsuite/experimental/names.cc: Disable PCH.

2021-06-25  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd.h (__bit_cast): Implement via
	__builtin_bit_cast #if available.
	(__proposed::simd_bit_cast): Add overloads for simd and
	simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
	available), which return an object of the requested type with
	the same bits as the argument.
	* include/experimental/bits/simd_math.h: Use simd_bit_cast
	instead of __bit_cast to allow casts to fixed_size_simd.
	(copysign): Remove branch that was only required if __bit_cast
	cannot be constexpr.
	* testsuite/experimental/simd/tests/bits/test_values.h: Switch
	from __bit_cast to __proposed::simd_bit_cast since the former
	will not cast fixed_size objects anymore.

2021-06-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_math.h
	(_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
	(_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
	__arg3.

2021-06-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd.h (__execute_on_index_sequence)
	(__execute_on_index_sequence_with_return)
	(__call_with_n_evaluations, __call_with_subscripts): Add flatten
	attribute.

2021-06-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
	(_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
	roundp[sd] calls.

2021-06-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
	implementation doesn't require a _VecBltnBtmsk ABI tag, it
	requires either a 64-Byte input (in which case AVX512F must be
	available) or AVX512VL.

2021-06-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_math.h: Undefine internal
	macros after use.
	(frexp): Move #if to a more sensible position and reformat
	preceding code.
	(logb): Call _SimdImpl::_S_logb for fixed_size instead of
	duplicating the code here.
	(modf): Simplify condition.

2021-06-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_math.h (fabs): Remove
	fabs(simd<integral>) overload.

2021-06-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_converter.h
	(_SimdConverter::operator()): Pass _SimdTuple by const-ref.
	* include/experimental/bits/simd_fixed_size.h
	(_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
	arguments by const-ref.
	(_S_masked_unary): Pass _SimdTuple by const-ref.

2021-06-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_fixed_size.h
	(_AbisInSimdTuple): Removed.

2021-06-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd.h: Add missing operator~
	overload for simd<floating-point> to __float_bitwise_operators.
	* include/experimental/bits/simd_builtin.h
	(_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
	implement complement for floating-point vectors.
	* include/experimental/bits/simd_fixed_size.h
	(_SimdImplFixedSize::_S_copysign): New function, forwarding to
	copysign implementation of _SimdTuple members.
	* include/experimental/bits/simd_math.h (copysign): Call
	_SimdImpl::_S_copysign for fixed_size arguments. Simplify
	generic copysign implementation using the new ~ operator.

2021-06-24  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/experimental/simd/README.md: Fix typos.

2021-06-24  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
	Add noexcept.
	* include/bits/unique_ptr.h (unique_ptr::operator*): Add
	conditional noexcept as per LWG 2762.
	* testsuite/20_util/shared_ptr/observers/array.cc: Check that
	dereferencing cannot throw.
	* testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
	* testsuite/20_util/optional/observers/lwg2762.cc: New test.
	* testsuite/20_util/unique_ptr/lwg2762.cc: New test.

2021-06-23  Patrick Palka  <ppalka@redhat.com>

	PR c++/101174
	* testsuite/23_containers/multiset/cons/deduction.cc:
	Uncomment CTAD example that was rejected by this bug.
	* testsuite/23_containers/set/cons/deduction.cc: Likewise.

2021-06-23  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/chrono (chrono::year::is_leap()): Fix incorrect
	logic in comment.

2021-06-23  Matthias Kretz  <m.kretz@gsi.de>

	* testsuite/experimental/simd/README.md: New file.

2021-06-23  Matthias Kretz  <m.kretz@gsi.de>

	* testsuite/experimental/simd/driver.sh: Rewrite output
	verbosity logic. Add -p/--percentage option. Allow -v/--verbose
	to be used twice. Add -x and -o short options. Parse long
	options with = instead of separating space generically. Parce
	contracted short options. Make unrecognized options an error.
	If same-line output is active, trap on EXIT to increment the
	progress (only with --percentage), erase the line and print the
	current status.
	* testsuite/experimental/simd/generate_makefile.sh: Initialize
	helper files for progress account keeping. Update help target
	for changes to DRIVEROPTS.

2021-06-23  Matthias Kretz  <m.kretz@gsi.de>

	* testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
	and associated warning.
	* testsuite/Makefile.in: Regenerate.

2021-06-23  Cassio Neri  <cassio.neri@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>
	    Ulrich Drepper  <drepper@redhat.com>

	* include/std/chrono (chrono::year::is_leap()): Optimize.

2021-06-23  Patrick Palka  <ppalka@redhat.com>

	PR c++/86439
	* testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
	CTAD examples.
	* testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
	* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
	Mention one of the replaced examples is broken due to PR101174.
	* testsuite/23_containers/set/cons/deduction.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
	ambiguous CTAD examples.
	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.

2021-06-23  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/mutex (__detail::__try_lock_impl): Rename
	parameter to avoid clashing with newlib's __lockable macro.
	(try_lock): Add 'inline' specifier.
	* testsuite/17_intro/names.cc: Add check for __lockable.
	* testsuite/30_threads/try_lock/5.cc: Add options for pthreads.

2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
	    Matthias Kretz  <m.kretz@gsi.de>

	* include/std/mutex (lock): Replace recursion with iteration
	when lockables all have the same type.
	(__detail::__try_lock_impl): Likewise. Pass lockables as
	parameters, instead of a tuple. Always lock the first one, and
	recurse for the rest.
	(__detail::__lock_impl): Adjust call to __try_lock_impl.
	(__detail::__try_to_lock): Remove.
	* testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
	* testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
	arguments.
	* testsuite/30_threads/unique_lock/cons/60497.cc: Also check
	std::try_lock.
	* testsuite/30_threads/try_lock/5.cc: New test.

2021-06-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/memory (declare_reachable, undeclare_reachable)
	(declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
	(pointer_safety): Only define for C++11 to C++20 inclusive.
	* testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.

2021-06-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.h (seed_seq): Constrain initializer-list
	constructor.
	* include/bits/random.tcc (seed_seq): Add template parameter.
	* testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
	for noexcept.
	* testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
	constraints.

2021-06-22  Thomas Rodgers  <rodgert@appliantology.com>

	PR libstdc++/100806
	* include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
	Force _M_release() to wake all waiting threads.
	* testsuite/30_threads/semaphore/100806.cc: New test.

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

	* include/std/mutex (__try_to_lock): Move to __detail namespace.
	(struct __try_lock_impl): Replace with ...
	(__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
	function templates to implement std::try_lock.
	(try_lock): Use new __try_lock_impl.
	(__detail::__lock_impl(int, int&, L0&, L1&...)): New function
	template to implement std::lock.
	(lock): Use __lock_impl.

2021-06-21  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.

2021-06-20  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (__non_propagating_cache::operator bool):
	Define for split_view::begin().
	(split_view): Define as per P2210.
	(views::__detail::__can_split_view): Define.
	(views::_Split, views::split): Define.
	* testsuite/std/ranges/adaptors/100577.cc (test01, test02):
	Test views::split.
	* testsuite/std/ranges/adaptors/split.cc: New test.
	* testsuite/std/ranges/p2325.cc (test08a): New test.
	* testsuite/std/ranges/p2367.cc (test01): Test views::split.

2021-06-20  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges: Rename views::split to views::lazy_split,
	split_view to lazy_split_view, etc. throughout.
	* testsuite/std/ranges/*: Likewise.
	* testsuite/std/ranges/adaptors/lazy_split.cc: New file.
	* testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.

2021-06-20  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (split_view::_OuterIter::__at_end):
	Check _M_trailing_empty.
	(split_view::_OuterIter::_M_trailing_empty): Define this
	data member.
	(split_view::_OuterIter::operator++): Set _M_trailing_empty
	appropriately.
	(split_view::_OuterIter::operator==): Compare
	_M_trailing_empty.
	* testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
	split parts instead of one.
	* testsuite/std/ranges/adaptors/split.cc (test11): New test.

2021-06-20  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (split_view::_InnerIter::base): Define as
	per P2210.

2021-06-19  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (transform_view::_Iterator::_S_iter_concept):
	Consider _Base instead of _Vp as per LWG 3555.
	(elements_view::_Iterator::_S_iter_concept): Likewise.

2021-06-19  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (split_view::_OuterIter::value_type::begin):
	Remove the non-const overload, and remove the copyable constraint
	on the const overload as per LWG 3553.

2021-06-19  Patrick Palka  <ppalka@redhat.com>

	* include/bits/stl_iterator.h
	(__detail::__common_iter_use_postfix_proxy): Add
	move_constructible constraint as per LWG 3546.
	(common_iterator::__postfix_proxy): Adjust initializer of
	_M_keep as per LWG 3546.

2021-06-18  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100387
	* include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
	to limit comparison complexity to 3*N/2.
	(__minmax_element_fn::operator()): Likewise.
	(shift_right): Avoid premature std::move of __result.
	* testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
	New tests.
	* testsuite/25_algorithms/minmax_element/constrained.cc (test02):
	Likewise.

2021-06-18  Patrick Palka  <ppalka@redhat.com>

	* include/std/concepts (convertible_to): Just use declval as per
	LWG 3557.

2021-06-18  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/95833
	* include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
	incorrect static_assert with ones matching the 'Mandates'
	conditions in the standard.
	* testsuite/26_numerics/reduce/95833.cc: New test.

2021-06-18  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/21_strings/basic_string/cons/char/1.cc: Use
	diagnostic pragma to suppress -Wstringop-overread error.

2021-06-18  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
	(find_if, __find_if_not_fn, find_if_not, _in_in_result)
	(__mismatch_fn, mismatch, __search_fn, search): Move to ...
	* include/bits/ranges_util.h: ... here.
	* include/std/ranges (__detail::find, __detail::find_if)
	(__detail::find_if_not, __detail::mismatch): Remove.
	(filter_view): Use ranges::find_if instead.
	(drop_while_view): Use ranges::find_if_not instead.
	(split_view): Use ranges::find and ranges::mismatch instead.

2021-06-18  Patrick Palka  <ppalka@redhat.com>

	* include/bits/iterator_concepts.h (weakly_incrementable): Remove
	default_initializable requirement.
	* include/bits/ranges_base.h (ranges::view): Likewise.
	* include/bits/ranges_util.h (subrange): Constrain the default
	ctor.
	* include/bits/stl_iterator.h (back_insert_iterator): Remove the
	default ctor.
	(front_insert_iterator): Likewise.
	(insert_iterator): Likewise.  Remove NSDMIs.
	(common_iterator): Constrain the default ctor.
	(counted_iterator): Likewise.
	* include/bits/stream_iterator.h (ostream_iterator): Remove the
	default ctor.
	* include/std/ranges (__detail::__box::operator=): Handle
	self-assignment in the primary template.
	(__detail::__box): In the partial specialization: adjust
	constraints as per P2325.  Add specialized operator= for the
	case when the wrapped type is not copyable.  Constrain the
	default ctor.  Avoid list-initialization.
	(single_view): Constraint the default ctor.
	(iota_view): Relax semiregular constraint to copyable.
	Constrain the default ctor.
	(iota_view::_Iterator): Constraint the default ctor.
	(basic_istream_view): Remove the default ctor.  Remove NSDMIs.
	Remove redundant checks for empty _M_stream.
	(basic_istream_view::_Iterator): Likewise.
	(ref_view): Remove the default ctor.  Remove NSDMIs.
	(ref_view::_Iterator): Constrain the default ctor.
	(__detail::__non_propagating_cache::operator=): Define overload
	for assigning from a value of the underlying type.
	(filter_view): Likewise.
	(filter_view::_Iterator): Likewise.
	(transform_view): Likewise.
	(transform_view::_Iterator): Likewise.
	(take_view): Likewise.
	(take_view::_Iterator): Likewise.
	(take_while_view): Likewise.
	(take_while_view::_Iterator): Likewise.
	(drop_while_view): Likewise.
	(drop_while_view::_Iterator): Likewise.
	(join_view): Likewise.
	(split_view::_OuterIter::__current): Adjust after changing the
	type of _M_current.
	(split_view::_M_current): Wrap it in a __non_propagating_cache.
	(split_view::split_view): Constrain the default ctor.
	(common_view): Constrain the default ctor.
	(reverse_view): Likewise.
	(elements_view): Likewise.
	* include/std/span (enable_view<span<_ElementType, _Extent>>):
	Define this partial specialization to true unconditionally.
	* include/std/version (__cpp_lib_ranges): Adjust value.
	* testsuite/24_iterators/back_insert_iterator/constexpr.cc:
	Don't attempt to default construct a back_insert_iterator.
	* testsuite/24_iterators/front_insert_iterator/constexpr.cc:
	Don't attempt to default construct a front_insert_iterator.
	* testsuite/24_iterators/insert_iterator/constexpr.cc:
	Don't attempt to default construct an insert_iterator.
	* testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
	Remove this test for default constructibility of ostream_iterator.
	* testsuite/std/ranges/97600.cc: Don't attempt to default
	construct a basic_istream_view.
	* testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
	Rename to ...
	* testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
	(test02): Adjust now that __box is copyable-box not
	semiregular-box.
	(test03): New test.
	* testsuite/std/ranges/p2325.cc: New test.
	* testsuite/std/ranges/single_view.cc (test06): New test.
	* testsuite/std/ranges/view.cc: Adjust now that view doesn't
	require default_initializable.

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

	PR libstdc++/91488
	* include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
	define when is_constant_evaluated is available.
	* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
	Likewise.
	(__constant_string_p, __constant_array_p): Remove.
	(char_traits): Use is_constant_evaluated directly.
	* include/std/version (__cpp_lib_constexpr_char_traits)
	(__cpp_lib_constexpr_string): Only define when
	is_constant_evaluated is available.

2021-06-17  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100940
	* include/std/ranges (__adaptor::_Partial): For the "simple"
	forwarding partial specializations, also require that
	the extra arguments are trivially copyable.
	* testsuite/std/ranges/adaptors/100577.cc (test04): New test.

2021-06-17  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100940
	* include/std/ranges (__adaptor::_RangeAdaptor): Document the
	template form of _S_has_simple_extra_args.
	(__adaptor::__adaptor_has_simple_extra_args): Add _Args template
	parameter pack.  Try to treat _S_has_simple_extra_args as a
	variable template parameterized by _Args.
	(__adaptor::_Partial): Pass _Arg/_Args to the constraint
	__adaptor_has_simple_extra_args.
	(views::_Take::_S_has_simple_extra_args): Templatize according
	to the type of the extra argument.
	(views::_Drop::_S_has_simple_extra_args): Likewise.
	(views::_Split::_S_has_simple_extra_args): Define.
	* testsuite/std/ranges/adaptors/100577.cc (test01, test02):
	Adjust after changes to _S_has_simple_extra_args mechanism.
	(test03): Define.

2021-06-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/iterator_concepts.h (__decay_copy): Name type.

2021-06-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_base.h (ranges::begin, ranges::end)
	(ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
	(ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
	(ranges::empty, ranges::data, ranges::cdata): Remove final
	keywords and deleted operator& overloads.
	* testsuite/24_iterators/customization_points/iter_move.cc: Use
	new is_customization_point_object function.
	* testsuite/24_iterators/customization_points/iter_swap.cc:
	Likewise.
	* testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
	Likewise.
	* testsuite/std/ranges/access/begin.cc: Likewise.
	* testsuite/std/ranges/access/cbegin.cc: Likewise.
	* testsuite/std/ranges/access/cdata.cc: Likewise.
	* testsuite/std/ranges/access/cend.cc: Likewise.
	* testsuite/std/ranges/access/crbegin.cc: Likewise.
	* testsuite/std/ranges/access/crend.cc: Likewise.
	* testsuite/std/ranges/access/data.cc: Likewise.
	* testsuite/std/ranges/access/empty.cc: Likewise.
	* testsuite/std/ranges/access/end.cc: Likewise.
	* testsuite/std/ranges/access/rbegin.cc: Likewise.
	* testsuite/std/ranges/access/rend.cc: Likewise.
	* testsuite/std/ranges/access/size.cc: Likewise.
	* testsuite/std/ranges/access/ssize.cc: Likewise.
	* testsuite/util/testsuite_iterators.h
	(is_customization_point_object): New function.

2021-06-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_base.h (ranges::begin, ranges::end)
	(ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
	(ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
	(ranges::empty, ranges::data, ranges::cdata): Make types final.
	Add deleted operator& overloads.
	(ranges::advance, ranges::distance, ranges::next, ranges::prev):
	Likewise.
	* testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
	ill-formed & expressions with using-declarations. Add checks for
	other function objects.

2021-06-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_util.h (view_interface): Add noexcept to
	empty, operator bool, data and size members.
	(subrange): Add noexcept to constructors.
	* include/std/ranges (single_view, ref_view): Add noexcept to
	constructors.
	(views::single, views::all): Add noexcept.
	* testsuite/std/ranges/adaptors/all.cc: Check noexcept.
	* testsuite/std/ranges/single_view.cc: Likewise.

2021-06-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_util.h (subrange): Add __size_type typedef
	and use it to simplify declarations.
	(subrange(i, s, n)): Remove assertion.
	* testsuite/std/ranges/subrange/constexpr.cc: New test.

2021-06-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/iterator_concepts.h (__cust_access::__decay_copy):
	Replace with function object.
	(__cust_access::__member_begin, ___cust_access::_adl_begin): Use
	__decay_copy unqualified.
	* include/bits/ranges_base.h (__member_end, __adl_end):
	Likewise. Use __range_iter_t for type of ranges::begin.
	(__member_rend): Use correct value category for rbegin argument.
	(__member_data): Use __decay_copy unqualified.
	(__begin_data): Use __range_iter_t for type of ranges::begin.

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

	* include/bits/ranges_base.h (ranges::empty): Check whether
	conversion to bool can throw.
	* testsuite/std/ranges/access/empty.cc: Check for correct
	noexcept-specifier.

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

	PR libstdc++/100894
	* include/std/type_traits (__common_ref_impl<X&, Y&>): Only
	use the type if it's a reference.
	* testsuite/20_util/common_reference/100894.cc: New test.

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

	* testsuite/experimental/filesystem/path/native/conv_c++23.cc:
	Add dg-require-filesystem-ts directive.

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

	PR libstdc++/101034
	* include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
	(any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
	to use lvalue.
	* testsuite/20_util/any/cons/101034.cc: New test.

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

	* testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
	-std=gnu++17 option.

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

	PR libstdc++/101056
	* libsupc++/compare (compare_partial_order_fallback): Add
	constraint using reversed parameter order, as per LWG 3465.
	* testsuite/18_support/comparisons/algorithms/fallback.cc:
	Adjust expected result.

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

	* libsupc++/compare (__decayed_same_as): New helper concept.
	(strong_order, weak_order, partial_order): Constrain with new
	concept instead of using static_assert.
	(compare_strong_order_fallback, compare_weak_order_fallback)
	(compare_partial_order_fallback): Likewise. Do not deduce return
	types. Remove redundant if-constexpr checks.
	* testsuite/18_support/comparisons/algorithms/fallback.cc: New test.

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

	PR libstdc++/101055
	* include/std/tuple: Use reserved form of attribute name.
	* testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
	check for no_unique_address.
	* testsuite/17_intro/headers/c++2014/all_attributes.cc:
	Likewise.
	* testsuite/17_intro/headers/c++2017/all_attributes.cc:
	Likewise.

2021-06-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/fs_path.h (operator==, operator<=>): Use new
	_S_compare function.
	(path::_S_compare): New function to call path::compare in a
	context where path::iterator is complete.
	* include/experimental/bits/fs_path.h (operator<, operator==):
	Define after path::iterator is complete.
	* testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
	test.
	* testsuite/experimental/filesystem/path/native/conv_c++23.cc:
	New test.

2021-06-09  Thomas Rodgers  <rodgert@appliantology.com>

	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
	test logic with constexpr check for is_always_lock_free.

2021-06-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100982
	* include/std/optional (optional::operator=(const optional<U>&)):
	Fix value category used in is_assignable check.
	* testsuite/20_util/optional/assignment/100982.cc: New test.

2021-06-09  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/allocator.h (allocator::is_always_equal): Deprecate.
	* include/bits/iterator_concepts.h (indirectly_readable_traits):
	Add LWG issue number to comment.
	* include/std/memory_resource (polymorphic_allocator::release):
	Deprecate.
	* testsuite/20_util/allocator/requirements/typedefs.cc: Add
	dg-warning for deprecation. Also check std::allocator<void>.

2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>

	PR libstdc++/100889
	* include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
	Change parameter type from _Tp to _Tp*.
	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
	coverage of types tested.

2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>

	* include/std/barrier (__tree_barrier::_M_arrive): Remove
	unnecessary hasher instantiation.

2021-06-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/propagate_const (swap): Constrain.
	* testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.

2021-06-07  Avi Kivity  <avi@scylladb.com>

	PR libstdc++/100900
	* include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
	Add missing typename.

2021-06-07  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98842
	* include/std/optional (operator<=>(const optional<T>& const U&)):
	Add missing constraint and add workaround for template
	recursion.
	* testsuite/20_util/optional/relops/three_way.cc: Check that
	type without equality comparison cannot be compared when wrapped
	in std::optional.

2021-06-05  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100824
	* include/bits/ranges_base.h (_SSize): Return signed type.
	* testsuite/std/ranges/access/ssize.cc: Check with __int128.

2021-06-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_base.h (_SSize): Return the result of
	ranges::size converted to the wider of make-signed-like-t<S> and
	ptrdiff_t, rather than the ranges different type.
	* testsuite/std/ranges/access/ssize.cc: Adjust expected result
	for an iota_view that uses an integer class type for its
	difference_type.

2021-06-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100824
	* include/bits/ranges_base.h (__member_data): Use __decay_copy.
	* testsuite/std/ranges/access/data.cc: Add testcase from PR.

2021-06-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100824
	* include/bits/iterator_concepts.h (__detail::__decay_copy)
	(__detail::__member_begin, __detail::__adl_begin): Move to
	namespace ranges::__cust_access.
	(__detail::__ranges_begin): Likewise, and rename to __begin.
	Remove redundant static assertion.
	* include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
	Use lvalue in noexcept specifier.
	(__as_const): Add non-deduced parameter for value category.
	(_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
	__as_const.
	(__member_size, __adl_size, __member_empty, __size0_empty):
	(__eq_iter_empty, __adl_data): Use lvalue objects in
	requirements.
	(__sentinel_size): Likewise. Add check for conversion to
	unsigned-like.
	(__member_data): Allow non-lvalue types to satisfy the concept,
	but use lvalue object in requirements.
	(_Size, _SSize): Remove forwarding to always use an lvalue.
	(_Data): Likewise. Add static assertion for arrays.
	* testsuite/std/ranges/access/cdata.cc: Adjust expected
	behaviour for rvalues. Add negative tests for ill-formed
	expressions.
	* testsuite/std/ranges/access/data.cc: Likewise.
	* testsuite/std/ranges/access/empty.cc: Adjust expected
	behaviour for rvalues.
	* testsuite/std/ranges/access/size.cc: Likewise.

2021-06-04  Tim Adye  <Tim.Adye@cern.ch>

	* include/std/any (any::_Manager::_S_access): New static
	function to access the contained value.
	(any::emplace, __any_caster): Use _S_access member of the
	manager type.

2021-06-04  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2020.xml:
	* doc/html/*: Regenerate.
	* include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
	Define.
	* include/std/version (__cpp_lib_generic_unordered_lookup):
	Define.
	* testsuite/23_containers/unordered_map/operations/1.cc: Check
	feature test macro.
	* testsuite/23_containers/unordered_set/operations/1.cc:
	Likewise.

2021-06-03  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_algo.h (__detail::__can_reread_output):
	Factor out this concept from ...
	(__unique_copy_fn::operator()): ... here.  Use the concept
	throughout.
	* testsuite/std/ranges/range.cc: Remove now ill-formed use
	of range_value_t on an output_range.
	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
	Define value_type, pointer and reference member types to void.

2021-06-03  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100577
	* include/std/ranges (_RangeAdaptorClosure): Document
	_S_has_simple_call_op mechanism.
	(_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
	(__closure_has_simple_call_op): New concept.
	(__adaptor_has_simple_extra_args): Likewise.
	(_Partial<_Adaptor, _Args...>): New partial specialization.
	(_Partial<_Adaptor, _Arg>): Likewise.
	(_Pipe<_Lhs, _Rhs>): Likewise.
	(views::_All::_S_has_simple_call_op): Define to true.
	(views::_Filter::_S_has_simple_extra_args): Likewise.
	(views::_Transform::_S_has_simple_extra_args): Likewise.
	(views::_Take::_S_has_simple_extra_args): Likewise.
	(views::_TakeWhile::_S_has_simple_extra_args): Likewise.
	(views::_Drop::_S_has_simple_extra_args): Likewise.
	(views::_DropWhile::_S_has_simple_extra_args): Likewise.
	(views::_Join::_S_has_simple_call_op): Likewise.
	(views::_Split): Document why we don't define
	_S_has_simple_extra_args to true for this adaptor.
	(views::_Common::_S_has_simple_call_op): Define to true.
	(views::_Reverse::_S_has_simple_call_op): Likewise.
	(views::_Elements::_S_has_simple_call_op): Likewise.
	* testsuite/std/ranges/adaptors/100577.cc: New test.

2021-06-02  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100863
	PR libstdc++/65816
	* include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
	Value-initialize subobject.
	* testsuite/23_containers/unordered_map/allocator/default_init.cc:
	Remove XFAIL.
	* testsuite/23_containers/unordered_set/allocator/default_init.cc:
	Remove XFAIL.

2021-06-02  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/96088
	* testsuite/23_containers/unordered_map/96088.cc: Adjust
	expected number of allocations.
	* testsuite/23_containers/unordered_set/96088.cc: Likewise.

2021-06-02  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
	* doc/xml/manual/status_cxxtr1.xml: Likewise.
	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
	* doc/html/*: Regenerate.

2021-06-01  Patrick Palka  <ppalka@redhat.com>

	PR c++/65816
	* testsuite/23_containers/deque/allocator/default_init.cc,
	testsuite/23_containers/forward_list/allocator/default_init.cc,
	testsuite/23_containers/list/allocator/default_init.cc,
	testsuite/23_containers/map/allocator/default_init.cc,
	testsuite/23_containers/set/allocator/default_init.cc,
	testsuite/23_containers/vector/allocator/default_init.cc,
	testsuite/23_containers/vector/bool/allocator/default_init.cc:
	Remove xfail.

2021-06-01  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/unordered_map/96088.cc: Change
	effective target to c++17.
	* testsuite/23_containers/unordered_set/96088.cc: Likewise.

2021-06-01  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
	isblank for C++11 and later.

2021-06-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100833
	* include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
	Fix return value for no-op case.
	* testsuite/24_iterators/range_operations/advance.cc: Test
	return values of three-argument overload.

2021-06-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99453
	* python/Makefile.am: Use archive name for printer hook if no
	dynamic library name is available.
	* python/Makefile.in: Regenerate.

2021-05-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/xml/manual/abi.xml: Remove dead reference to "Intel
	Compilers for Linux: Compatibility with GNU Compilers" article.
	* doc/html/manual/abi.html: Regenerate.

2021-05-26  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/formatter.h
	(_Error_formatter::_Parameter::_Named): New.
	(_Error_formatter::_Parameter::_Type): Inherit latter.
	(_Error_formatter::_Parameter::_M_integer): Likewise.
	(_Error_formatter::_Parameter::_M_string): Likewise.
	* src/c++11/debug.cc: Include <cstring>.
	(_Print_func_t): New.
	(print_raw(PrintContext&, const char*, ptrdiff_t)): New.
	(print_word): Use '%.*s' format in fprintf to render only expected number of chars.
	(pretty_print(PrintContext&, const char*, _Print_func_t)): New.
	(print_type): Rename in...
	(print_type_info): ...this. Use pretty_print.
	(print_address, print_integer): New.
	(print_named_name, print_iterator_constness, print_iterator_state): New.
	(print_iterator_seq_type): New.
	(print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
	(print_field): Use latters.
	(print_quoted_named_name, print_type_type, print_type, print_instance): New.
	(print_string(PrintContext&, const char*, const _Parameter*, size_t)):
	Change signature to...
	(print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
	...this and adapt. Remove intermediate buffer to render input string.
	(print_string(PrintContext&, const char*, ptrdiff_t)): New.

2021-05-26  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100768
	* include/bits/ranges_base.h (advance, distance, next, prev):
	Replace function templates with function objects.
	* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
	Adjust for changes to function objects.
	* testsuite/std/ranges/adaptors/elements.cc: Add using
	declarations for names from namespace ranges.
	* testsuite/std/ranges/adaptors/transform.cc: Likewise.
	* testsuite/24_iterators/range_operations/100768.cc: New test.

2021-05-24  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/96088
	* include/bits/hashtable_policy.h (_Select2nd): New.
	(_NodeBuilder<>): New.
	(_ReuseOrAllocNode<>::operator()): Use variadic template args.
	(_AllocNode<>::operator()): Likewise.
	* include/bits/hashtable.h
	(_Hashtable<>::__node_builder_t): New.
	(_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
	 New.
	(_Hashtable<>::_S_forward_key): New.
	(_Hashtable<>::_M_insert): Use latter.
	(_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
	Instantiate node first, compute hash code second.
	* testsuite/23_containers/unordered_map/96088.cc: New test.
	* testsuite/23_containers/unordered_multimap/96088.cc: New test.
	* testsuite/23_containers/unordered_multiset/96088.cc: New test.
	* testsuite/23_containers/unordered_set/96088.cc: New test.
	* testsuite/util/replacement_memory_operators.h
	(counter::_M_increment): New.
	(counter::_M_decrement): New.
	(counter::reset()): New.

2021-05-24  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100479
	* include/std/ranges (__detail::__non_propagating_cache): Move
	definition up to before that of _CachedPosition.  Make base
	class _Optional_base protected instead of private.  Add const
	overload for operator*.
	(__detail::_CachedPosition): Rewrite the partial specialization
	for forward ranges as a derived class of __non_propagating_cache.
	Remove the size constraint on the partial specialization for
	random access ranges.  Add copy/move/copy-assignment/move-assignment
	members to the offset partial specialization for random
	access ranges that propagate the cached value but additionally
	invalidate it in the source object on move.
	* testsuite/std/ranges/adaptors/100479.cc: New test.

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

	* testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
	call to ranges::next.
	* testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
	* testsuite/25_algorithms/is_sorted_until/constrained.cc:
	Likewise.
	* testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
	swap_ranges.

2021-05-21  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100606
	* include/std/ranges (drop_while_view::begin): Assert the
	precondition added by LWG 3490.

2021-05-21  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100690
	* include/std/ranges (iota_view::_Sentinel::_M_distance_from):
	Split out this member function from ...
	(iota_view::_Sentinel::operator-): ... here, for sake of access
	control.
	* testsuite/std/ranges/iota/iota_view.cc (test05): New test.

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

	* include/bits/random.tcc (__representable_as_double)
	(__p1_representable_as_double): Add "" to static asserts.

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

	PR libstdc++/100676
	* include/bits/c++config (__glibcxx_assert_1): Rename to ...
	(__glibcxx_constexpr_assert): ... this.
	(__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
	(__glibcxx_assert): Define as either __glibcxx_constexpr_assert
	or __glibcxx_assert_impl.
	(__glibcxx_assert_2): Remove
	* include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
	__glibcxx_constexpr_assert instead of __glibcxx_assert_1.
	* testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
	Adjust expected error.
	* testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
	Likewise.
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
	Likewise.
	* testsuite/23_containers/span/back_neg.cc: Likewise.
	* testsuite/23_containers/span/front_neg.cc: Likewise.
	* testsuite/23_containers/span/index_op_neg.cc: Likewise.

2021-05-20  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100639
	* include/bits/stl_iterator.h (reverse_iterator::difference_type):
	In C++20 mode, define in terms of iter_difference_t as per P0896R4.
	(reverse_iterator::reference): Likewise, but with iter_reference_t.
	(reverse_iterator::value_type): Likewise, but with iter_value_t.
	* testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
	* testsuite/24_iterators/reverse_iterator/100639.cc: New test.

2021-05-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>

	PR libstdc++/100361
	* include/std/charconv (to_chars): Hide the overloads for
	floating-point types for 16 bit targets.
	* src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
	* testsuite/20_util/to_chars/double.cc: Run this test only on
	size32plus targets.
	* testsuite/20_util/to_chars/float.cc: Likewise.
	* testsuite/20_util/to_chars/long_double.cc: Likewise.

2021-05-18  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100631
	* include/std/ranges (elements_view::_Sentinel::operator-): Use
	_M_distance_from in the other operator- overload too.
	* testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.

2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>

	* testsuite/lib/prune.exp: Add note about 'dg-note'.

2021-05-18  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100475
	* include/std/ranges (__box::__box): Use non-list-initialization
	in member initializer list of in-place constructor of the
	partial specialization for semiregular types.
	(__box::operator->): Use std::__addressof.
	* testsuite/std/ranges/adaptors/detail/semiregular_box.cc
	(test02): New test.
	* testsuite/std/ranges/single_view.cc (test04): New test.

2021-05-18  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100621
	* include/std/ranges (reverse_view::_S_needs_cached_begin):
	Set to true if the underlying non-common random-access range
	doesn't have a sized sentinel.

2021-05-18  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100631
	* include/std/ranges (elements_view::_Iterator): Also befriend
	_Sentinel<!_Const>.
	(elements_view::_Sentinel::_M_equal): Templatize.
	(elements_view::_Sentinel::_M_distance_from): Split out from ...
	(elements_view::_Sentinel::operator-): ... here.  Depend on
	_Base2 instead of _Base in the return type.
	* testsuite/std/ranges/adaptors/elements.cc (test06, test07):
	New tests.

2021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>

	* include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
	until value change observed.
	(__waiter_base::_M_laundered): New member.
	(__waiter_base::_M_notify): Check _M_laundered to determine
	whether to wake one or all.
	(__detail::__atomic_compare): Return true if call to
	__builtin_memcmp() == 0.
	(__waiter_base::_S_do_spin_v): Adjust predicate.
	* testsuite/29_atomics/atomic/wait_notify/100334.cc: New
	test.

2021-05-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100630
	* include/experimental/bits/fs_path.h (__is_constructible_from):
	Test construction from a const lvalue, not an rvalue.
	* testsuite/27_io/filesystem/path/construct/100630.cc: New test.
	* testsuite/experimental/filesystem/path/construct/100630.cc:
	New test.

2021-05-17  Antony Polukhin  <antoshkka@gmail.com>

	PR libstdc++/89728
	* include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
	Declare (but do not define) partial specialization.
	* testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.

2021-05-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/thread (jthread::_S_create): Fix static assert
	message.
	* testsuite/30_threads/jthread/95989.cc: Re-enable test.
	* testsuite/30_threads/jthread/jthread.cc: Do not require
	pthread effective target.
	* testsuite/30_threads/jthread/2.cc: Moved to...
	* testsuite/30_threads/jthread/version.cc: ...here.

2021-05-17  Jonathan Wakely  <jwakely@redhat.com>

	* doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
	* doc/Makefile.in: Regenerate.
	* doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
	value.
	* scripts/run_doxygen (print_usage): Always print to stdout and
	do not exit.
	(fail): New function for exiting on error.
	(parse_options): Handle --latex_cmd. Do not treat --help the
	same as errors. Simplify handling of required arguments.

2021-05-12  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
	Increase dg-timeout-factor to 4. Fix -Wunused-parameter
	warnings. Replace bitwise AND with logical AND in loop
	condition.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
	Replace bitwise AND with logical AND in loop condition.
	* testsuite/util/pstl/test_utils.h: Remove unused parameter
	names.

2021-05-11  Patrick Palka  <ppalka@redhat.com>

	* src/c++17/ryu/LOCAL_PATCHES: Update.
	* src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
	Remove declarations for never-defined functions.
	* testsuite/20_util/to_chars/4.cc: New test.

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

	* testsuite/20_util/headers/memory/synopsis.cc: Define C++98
	alternative for macro.
	* testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
	target keyword.
	* testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
	syntax.

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

	* include/bits/allocator.h (allocator<void>) [C++20]: Add
	missing noexcept to constructor. Restore missing POCMA and
	is_always_equal_traits.
	[C++17]: Make construct and destroy members private and
	declare allocator_traits as a friend.
	* include/bits/memoryfwd.h (allocator_traits): Declare.
	* include/ext/malloc_allocator.h (malloc_allocator::allocate):
	Add nodiscard attribute. Add static assertion for LWG 3307.
	* include/ext/new_allocator.h (new_allocator::allocate): Add
	static assertion for LWG 3307.
	* testsuite/20_util/allocator/void.cc: Check that converting
	constructor is noexcept. Check for propagation traits and
	size_type and difference_type. Check that pointer and
	const_pointer are gone in C++20.

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

	* include/std/stop_token: Remove TODO comment.

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

	* include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
	Initialize a non-reference deleter from an rvalue, as per LWG
	3548.
	(__shared_ptr::_UniqCompatible): Add missing constraint.
	* testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
	constraints.

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

	* testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
	-std=gnu++17 from dg-options directive.
	* testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
	Likewise.
	* testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
	Likewise.
	* testsuite/17_intro/headers/c++2017/operator_names.cc:
	Likewise.
	* testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
	* testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
	* testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
	Likewise.
	* testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
	* testsuite/18_support/byte/81076.cc: Likewise.
	* testsuite/18_support/byte/global_neg.cc: Likewise.
	* testsuite/18_support/byte/ops.cc: Likewise.
	* testsuite/18_support/byte/requirements.cc: Likewise.
	* testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
	* testsuite/18_support/launder/1.cc: Likewise.
	* testsuite/18_support/launder/nodiscard.cc: Likewise.
	* testsuite/18_support/launder/requirements.cc: Likewise.
	* testsuite/18_support/launder/requirements_neg.cc: Likewise.
	* testsuite/18_support/new_aligned.cc: Likewise.
	* testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
	Likewise.
	* testsuite/19_diagnostics/error_code/is_error_code_v.cc:
	Likewise.
	* testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
	* testsuite/20_util/addressof/requirements/constexpr.cc:
	Likewise.
	* testsuite/20_util/as_const/1.cc: Likewise.
	* testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
	* testsuite/20_util/bind/83427.cc: Likewise.
	* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
	* testsuite/20_util/bool_constant/requirements.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
	Likewise.
	* testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
	Likewise.
	* testsuite/20_util/duration_cast/rounding.cc: Likewise.
	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
	Likewise.
	* testsuite/20_util/from_chars/1_neg.cc: Likewise.
	* testsuite/20_util/from_chars/requirements.cc: Likewise.
	* testsuite/20_util/function/91456.cc: Likewise.
	* testsuite/20_util/function/cons/deduction.cc: Likewise.
	* testsuite/20_util/function_objects/83607.cc: Likewise.
	* testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
	* testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
	* testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
	* testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
	* testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/has_unique_object_representations/value.cc:
	Likewise.
	* testsuite/20_util/hash/nullptr.cc: Likewise.
	* testsuite/20_util/in_place/requirements.cc: Likewise.
	* testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
	* testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/is_aggregate/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_aggregate/value.cc: Likewise.
	* testsuite/20_util/is_invocable/83395.cc: Likewise.
	* testsuite/20_util/is_invocable/91456.cc: Likewise.
	* testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/is_invocable/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_invocable/value.cc: Likewise.
	* testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
	* testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
	* testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
	* testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
	* testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
	* testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_swappable_with/value.cc:
	Likewise.
	* testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/is_swappable/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_swappable/value.cc: Likewise.
	* testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_swappable_with/value.cc: Likewise.
	* testsuite/20_util/logical_traits/83134.cc: Likewise.
	* testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/logical_traits/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/logical_traits/value.cc: Likewise.
	* testsuite/20_util/pair/cons/deduction.cc: Likewise.
	* testsuite/20_util/pair/swap_cxx17.cc: Likewise.
	* testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
	Likewise.
	* testsuite/20_util/reference_wrapper/83427.cc: Likewise.
	* testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
	* testsuite/20_util/shared_ptr/requirements/weak_type.cc:
	Likewise.
	* testsuite/20_util/time_point/arithmetic/constexpr.cc:
	Likewise.
	* testsuite/20_util/time_point_cast/rounding.cc: Likewise.
	* testsuite/20_util/to_chars/3.cc: Likewise.
	* testsuite/20_util/to_chars/chars_format.cc: Likewise.
	* testsuite/20_util/to_chars/lwg3266.cc: Likewise.
	* testsuite/20_util/to_chars/requirements.cc: Likewise.
	* testsuite/20_util/tuple/78939.cc: Likewise.
	* testsuite/20_util/tuple/apply/1.cc: Likewise.
	* testsuite/20_util/tuple/apply/2.cc: Likewise.
	* testsuite/20_util/tuple/cons/deduction.cc: Likewise.
	* testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
	* testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
	* testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
	* testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
	Likewise.
	* testsuite/20_util/variable_templates_for_traits.cc: Likewise.
	* testsuite/20_util/void_t/1.cc: Likewise.
	* testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
	* testsuite/24_iterators/container_access.cc: Likewise.
	* testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
	Likewise.
	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
	Likewise.
	* testsuite/24_iterators/range_access/range_access_cpp17.cc:
	Likewise.
	* testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
	Likewise.
	* testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
	* testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
	Likewise.
	* testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
	* testsuite/26_numerics/headers/cmath/special_functions_global.cc:
	Likewise.
	* testsuite/26_numerics/lcm/1.cc: Likewise.
	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
	* testsuite/26_numerics/valarray/deduction.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
	Likewise.
	* testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
	Likewise.
	* testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
	Likewise.
	* testsuite/27_io/types/4.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.

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

	* testsuite/20_util/function_objects/searchers.cc: Remove
	-std=gnu++17 from dg-options directive.
	* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
	Likewise.
	* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
	Likewise.
	* testsuite/25_algorithms/clamp/1.cc: Likewise.
	* testsuite/25_algorithms/clamp/2.cc: Likewise.
	* testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
	* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
	Likewise.
	* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
	Likewise.
	* testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
	* testsuite/25_algorithms/for_each/for_each_n_debug.cc:
	Likewise.
	* testsuite/25_algorithms/sample/1.cc: Likewise.
	* testsuite/25_algorithms/sample/2.cc: Likewise.
	* testsuite/25_algorithms/sample/3.cc: Likewise.
	* testsuite/25_algorithms/sample/81221.cc: Likewise.
	* testsuite/25_algorithms/search/searcher.cc: Likewise.
	* testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
	* testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
	* testsuite/26_numerics/reduce/1.cc: Likewise.
	* testsuite/26_numerics/reduce/2.cc: Likewise.
	* testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
	* testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
	* testsuite/26_numerics/transform_reduce/1.cc: Likewise.

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

	* testsuite/23_containers/array/cons/deduction.cc: Remove
	-std=gnu++17 from dg-options directive.
	* testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
	* testsuite/23_containers/array/element_access/constexpr_c++17.cc:
	Likewise.
	* testsuite/23_containers/array/requirements/constexpr_iter.cc:
	Likewise.
	* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
	Likewise.
	* testsuite/23_containers/deque/cons/deduction.cc: Likewise.
	* testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
	Likewise.
	* testsuite/23_containers/forward_list/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
	Likewise.
	* testsuite/23_containers/list/cons/deduction.cc: Likewise.
	* testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
	Likewise.
	* testsuite/23_containers/map/cons/deduction.cc: Likewise.
	* testsuite/23_containers/map/modifiers/extract.cc: Likewise.
	* testsuite/23_containers/map/modifiers/insert/83226.cc:
	Likewise.
	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
	Likewise.
	* testsuite/23_containers/map/modifiers/merge.cc: Likewise.
	* testsuite/23_containers/map/modifiers/try_emplace/1.cc:
	Likewise.
	* testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/extract.cc:
	Likewise.
	* testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
	* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
	* testsuite/23_containers/multiset/modifiers/extract.cc:
	Likewise.
	* testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
	* testsuite/23_containers/priority_queue/deduction.cc: Likewise.
	* testsuite/23_containers/queue/deduction.cc: Likewise.
	* testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
	Likewise.
	* testsuite/23_containers/set/cons/deduction.cc: Likewise.
	* testsuite/23_containers/set/modifiers/extract.cc: Likewise.
	* testsuite/23_containers/set/modifiers/merge.cc: Likewise.
	* testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
	* testsuite/23_containers/stack/deduction.cc: Likewise.
	* testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/modifiers/extract.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/modifiers/merge.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/modifiers/extract.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/modifiers/merge.cc:
	Likewise.
	* testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
	Likewise.
	* testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
	* testsuite/23_containers/vector/cons/deduction.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
	Likewise.

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

	* testsuite/21_strings/basic_string/79162.cc: Remove
	-std=gnu++17 from dg-options directive.
	* testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/79162.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/char/86138.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/deduction.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
	Likewise.
	* testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
	* testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
	* testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/compare/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/data/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/data/char/86169.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operators/char/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/capacity/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/cons/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/cons/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/cons/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/include.cc: Likewise.
	* testsuite/21_strings/basic_string_view/inserters/94051.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/literals/types.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/literals/values.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
	Likewise.
	* 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/modifiers/swap/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operators/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operators/char/89446.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/range_access/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
	* testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
	* testsuite/21_strings/char_traits/requirements/char/99181.cc:
	Likewise.
	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:

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

	* testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
	from dg-options directive.
	* testsuite/20_util/memory_resource/2.cc: Likewise.
	* testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
	* testsuite/20_util/monotonic_buffer_resource/93208.cc:
	Likewise.
	* testsuite/20_util/monotonic_buffer_resource/allocate.cc:
	Likewise.
	* testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
	Likewise.
	* testsuite/20_util/monotonic_buffer_resource/release.cc:
	Likewise.
	* testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
	Likewise.
	* testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
	* testsuite/20_util/polymorphic_allocator/construct_pair.cc:
	Likewise.
	* testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
	* testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
	* testsuite/20_util/synchronized_pool_resource/allocate.cc:
	Likewise.
	* testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
	Likewise.
	* testsuite/20_util/synchronized_pool_resource/cons.cc:
	Likewise.
	* testsuite/20_util/synchronized_pool_resource/cons_single.cc:
	Likewise.
	* testsuite/20_util/synchronized_pool_resource/is_equal.cc:
	Likewise.
	* testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
	Likewise.
	* testsuite/20_util/synchronized_pool_resource/options.cc:
	Likewise.
	* testsuite/20_util/synchronized_pool_resource/release.cc:
	Likewise.
	* testsuite/20_util/synchronized_pool_resource/release_single.cc:
	Likewise.
	* testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
	Likewise.
	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
	Likewise.
	* testsuite/20_util/unsynchronized_pool_resource/cons.cc:
	Likewise.
	* testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
	Likewise.
	* testsuite/20_util/unsynchronized_pool_resource/options.cc:
	Likewise.
	* testsuite/20_util/unsynchronized_pool_resource/release.cc:
	Likewise.
	* testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
	Likewise.
	* testsuite/23_containers/forward_list/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
	Likewise.
	* testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
	* testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
	* testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
	Likewise.
	* testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
	Likewise.
	* testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
	* testsuite/23_containers/unordered_map/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
	Likewise.
	* testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
	Likewise.
	* testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.

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

	* testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
	dg-options.
	* testsuite/29_atomics/atomic/is_always_lock_free.cc:
	* testsuite/29_atomics/atomic/requirements/typedefs.cc:
	* testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
	* testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
	* testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
	* testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
	* testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
	* testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
	Likewise.
	* testsuite/30_threads/shared_lock/70766.cc: Likewise.
	* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
	Likewise.
	* testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
	Likewise.
	* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.

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

	* testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
	dg-options directive.
	* testsuite/20_util/any/assign/2.cc: Likewise.
	* testsuite/20_util/any/assign/emplace.cc: Likewise.
	* testsuite/20_util/any/assign/exception.cc: Likewise.
	* testsuite/20_util/any/assign/self.cc: Likewise.
	* testsuite/20_util/any/cons/1.cc: Likewise.
	* testsuite/20_util/any/cons/2.cc: Likewise.
	* testsuite/20_util/any/cons/90415.cc: Likewise.
	* testsuite/20_util/any/cons/92156.cc: Likewise.
	* testsuite/20_util/any/cons/aligned.cc: Likewise.
	* testsuite/20_util/any/cons/explicit.cc: Likewise.
	* testsuite/20_util/any/cons/in_place.cc: Likewise.
	* testsuite/20_util/any/cons/nontrivial.cc: Likewise.
	* testsuite/20_util/any/make_any.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
	* testsuite/20_util/any/misc/swap.cc: Likewise.
	* testsuite/20_util/any/modifiers/1.cc: Likewise.
	* testsuite/20_util/any/modifiers/83658.cc: Likewise.
	* testsuite/20_util/any/modifiers/92156.cc: Likewise.
	* testsuite/20_util/any/observers/type.cc: Likewise.
	* testsuite/20_util/any/requirements.cc: Likewise.
	* testsuite/20_util/any/typedefs.cc: Likewise.
	* testsuite/20_util/optional/77288.cc: Likewise.
	* testsuite/20_util/optional/84601.cc: Likewise.
	* testsuite/20_util/optional/assignment/1.cc: Likewise.
	* testsuite/20_util/optional/assignment/2.cc: Likewise.
	* testsuite/20_util/optional/assignment/3.cc: Likewise.
	* testsuite/20_util/optional/assignment/4.cc: Likewise.
	* testsuite/20_util/optional/assignment/5.cc: Likewise.
	* testsuite/20_util/optional/assignment/6.cc: Likewise.
	* testsuite/20_util/optional/assignment/7.cc: Likewise.
	* testsuite/20_util/optional/assignment/8.cc: Likewise.
	* testsuite/20_util/optional/assignment/9.cc: Likewise.
	* testsuite/20_util/optional/bad_access.cc: Likewise.
	* testsuite/20_util/optional/cons/77727.cc: Likewise.
	* testsuite/20_util/optional/cons/85642.cc: Likewise.
	* testsuite/20_util/optional/cons/copy.cc: Likewise.
	* testsuite/20_util/optional/cons/deduction.cc: Likewise.
	* testsuite/20_util/optional/cons/default.cc: Likewise.
	* testsuite/20_util/optional/cons/move.cc: Likewise.
	* testsuite/20_util/optional/cons/trivial.cc: Likewise.
	* testsuite/20_util/optional/cons/value.cc: Likewise.
	* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
	* testsuite/20_util/optional/constexpr/cons/default.cc:
	Likewise.
	* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
	* testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
	* testsuite/20_util/optional/constexpr/make_optional.cc:
	Likewise.
	* testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
	* testsuite/20_util/optional/hash.cc: Likewise.
	* testsuite/20_util/optional/in_place.cc: Likewise.
	* testsuite/20_util/optional/make_optional.cc: Likewise.
	* testsuite/20_util/optional/nullopt.cc: Likewise.
	* testsuite/20_util/optional/observers/1.cc: Likewise.
	* testsuite/20_util/optional/observers/2.cc: Likewise.
	* testsuite/20_util/optional/observers/3.cc: Likewise.
	* testsuite/20_util/optional/observers/4.cc: Likewise.
	* testsuite/20_util/optional/observers/5.cc: Likewise.
	* testsuite/20_util/optional/observers/6.cc: Likewise.
	* testsuite/20_util/optional/relops/1.cc: Likewise.
	* testsuite/20_util/optional/relops/2.cc: Likewise.
	* testsuite/20_util/optional/relops/3.cc: Likewise.
	* testsuite/20_util/optional/relops/4.cc: Likewise.
	* testsuite/20_util/optional/relops/5.cc: Likewise.
	* testsuite/20_util/optional/relops/6.cc: Likewise.
	* testsuite/20_util/optional/relops/7.cc: Likewise.
	* testsuite/20_util/optional/requirements.cc: Likewise.
	* testsuite/20_util/optional/swap/1.cc: Likewise.
	* testsuite/20_util/optional/swap/2.cc: Likewise.
	* testsuite/20_util/optional/typedefs.cc: Likewise.
	* testsuite/20_util/variant/80165.cc: Likewise.
	* testsuite/20_util/variant/85183.cc: Likewise.
	* testsuite/20_util/variant/86874.cc: Likewise.
	* testsuite/20_util/variant/87431.cc: Likewise.
	* testsuite/20_util/variant/87619.cc: Likewise.
	* testsuite/20_util/variant/91807.cc: Likewise.
	* testsuite/20_util/variant/any.cc: Likewise.
	* testsuite/20_util/variant/compile.cc: Likewise.
	* testsuite/20_util/variant/deduction.cc: Likewise.
	* testsuite/20_util/variant/exception_safety.cc: Likewise.
	* testsuite/20_util/variant/hash.cc: Likewise.
	* testsuite/20_util/variant/index_type.cc: Likewise.
	* testsuite/20_util/variant/relops/89851.cc: Likewise.
	* testsuite/20_util/variant/relops/90008.cc: Likewise.
	* testsuite/20_util/variant/run.cc: Likewise.
	* testsuite/20_util/variant/visit.cc: Likewise.

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

	* testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
	-std=gnu++17 from dg-options directive.
	* testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
	* testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
	* testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
	* testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
	* testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
	* testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
	* testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
	* testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
	Likewise.
	* testsuite/27_io/filesystem/file_status/1.cc: Likewise.
	* testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
	* testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
	* testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
	* testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
	* testsuite/27_io/filesystem/iterators/directory_iterator.cc:
	Likewise.
	* testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
	* testsuite/27_io/filesystem/iterators/recursion_pending.cc:
	Likewise.
	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
	* testsuite/27_io/filesystem/operations/all.cc: Likewise.
	* testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
	* testsuite/27_io/filesystem/operations/copy.cc: Likewise.
	* testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
	* testsuite/27_io/filesystem/operations/create_directories.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/create_directory.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/create_symlink.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/current_path.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
	* testsuite/27_io/filesystem/operations/exists.cc: Likewise.
	* testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
	* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
	* testsuite/27_io/filesystem/operations/last_write_time.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/permissions.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
	* testsuite/27_io/filesystem/operations/read_symlink.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/relative.cc: Likewise.
	* testsuite/27_io/filesystem/operations/remove.cc: Likewise.
	* testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
	* testsuite/27_io/filesystem/operations/rename.cc: Likewise.
	* testsuite/27_io/filesystem/operations/resize_file.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/space.cc: Likewise.
	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
	* testsuite/27_io/filesystem/operations/symlink_status.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
	Likewise.
	* testsuite/27_io/filesystem/operations/weakly_canonical.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/append/path.cc: Likewise.
	* testsuite/27_io/filesystem/path/append/source.cc: Likewise.
	* testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
	* testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
	* testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
	* testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
	* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
	* testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
	* testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
	* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
	* testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
	* testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
	* testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
	* testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
	* testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
	* testsuite/27_io/filesystem/path/construct/default.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
	* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
	* testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
	* testsuite/27_io/filesystem/path/construct/string_view.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/decompose/extension.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/decompose/filename.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/decompose/parent_path.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/decompose/relative_path.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/decompose/root_name.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/decompose/root_path.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
	* testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
	* testsuite/27_io/filesystem/path/generation/normal.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/generation/normal2.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/generation/proximate.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/generation/relative.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
	* testsuite/27_io/filesystem/path/generic/generic_string.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
	* testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
	* testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
	* testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
	* testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
	* testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
	* testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
	* testsuite/27_io/filesystem/path/native/string-char8_t.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/native/string.cc: Likewise.
	* testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
	* testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
	* testsuite/27_io/filesystem/path/query/empty_neg.cc:
	* testsuite/27_io/filesystem/path/query/has_extension.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/query/has_filename.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/query/has_parent_path.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/query/has_relative_path.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/query/has_root_name.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/query/has_root_path.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
	* testsuite/27_io/filesystem/path/query/is_absolute.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/query/is_relative.cc:
	Likewise.
	* testsuite/experimental/filesystem/path/construct/string_view.cc:
	Likewise.

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

	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
	Remove -std=gnu++17 from dg-options.
	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
	* testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
	* testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
	* testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
	* testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
	* testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
	* testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
	Likewise.
	* testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
	* testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
	* testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
	Likewise.
	* testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
	Likewise.

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

	* testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
	for additional errors in C++20.
	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
	Likewise.
	* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
	* testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.

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

	* testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
	clash with std::any.

2021-05-07  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/istream (__rvalue_stream_extraction_t): Replace
	use of __rval_streamable.
	* include/std/ostream (__rvalue_stream_insertion_t): Likewise.
	(__rval_streamable): Remove.
	(_Require_derived_from_ios_base, __derived_from_ios_base): New
	helper for checking constraints.
	* testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
	reference to the wrong subclause of the standard.
	* testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
	New test.
	* testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
	errors.

2021-05-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
	Improve static_assert messages.
	* testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
	* testsuite/25_algorithms/copy_n/58982.cc: Likewise.

2021-05-06  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (filter_view::_Iterator::base): Make the
	const& overload unconstrained and return a const reference as
	per LWG 3533.  Make unconditionally noexcept.
	(transform_view::_Iterator::base): Likewise.
	(elements_view::_Iterator::base): Likewise.

2021-05-06  Patrick Palka  <ppalka@redhat.com>

	* include/bits/stl_iterator.h (move_iterator::base): Make the
	const& overload unconstrained and return a const reference as
	per LWG 3391.  Make unconditionally noexcept.
	(counted_iterator::base): Likewise.
	* testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
	* testsuite/24_iterators/move_iterator/move_only.cc: Adjust
	has_member_base concept to decay-copy the result of base().

2021-05-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits (remove_cvref_t): Define in terms of
	remove_cvref.
	* testsuite/20_util/remove_cvref/value.cc: Check alias.

2021-05-06  Jonathan Wakely  <jwakely@redhat.com>

	Revert:
	2021-05-05  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/charconv (__from_chars_alnum): Pass unsigned
	char to std::isdigit.

2021-05-05  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_util.h (enable_borrowed_range<subrange>):
	Remove constraints on this partial specialization.
	* include/std/ranges (enable_borrowed_range<iota_view>):
	Likewise.

2021-05-05  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (transform_view::_Iterator::iter_swap):
	Remove as per LWG 3520.
	(join_view::_Iterator::iter_swap): Add indirectly_swappable
	constraint as per LWG 3517.

2021-05-05  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/function_objects/invoke/3.cc: Check feature
	test macro.
	* testsuite/20_util/function_objects/invoke/version.cc: New test.

2021-05-05  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/charconv (__from_chars_alnum): Pass unsigned
	char to std::isdigit.

2021-05-05  Corentin Gay  <gay@adacore.com>

	* acinclude.m4: Add VxWorks-specific case for the
	configuration of ctypes.
	* configure: Regenerate.
	* config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
	version.
	* config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
	* config/os/vxworks/ctype_configure_char.cc: Likewise.
	* config/os/vxworks/ctype_inline.h: Likewise.
	* testsuite/28_regex/traits/char/isctype.cc: Defines
	NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
	* testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.

2021-05-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/future (promise::set_value): Check for existence
	of shared state before dereferncing it.
	(promise::set_exception, promise::set_value_at_thread_exit)
	(promise::set_exception_at_thread_exit): Likewise.
	(promise<R&>::set_value, promise<R&>::set_exception)
	(promise<R&>::set_value_at_thread_exit)
	(promise<R&>::set_exception_at_thread_exit): Likewise.
	(promise<void>::set_value, promise<void>::set_exception)
	(promise<void>::set_value_at_thread_exit)
	(promise<void>::set_exception_at_thread_exit): Likewise.
	* testsuite/30_threads/promise/members/at_thread_exit2.cc:
	Remove unused variable.

2021-05-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (basic_string(const CharT*, const A&)):
	Do not do arithmetic on null pointer.

2021-05-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
	(find_key_pointer(key_const_reference, false_type))
	(find_key_pointer(key_const_reference, true_type)): Do not
	dereference null pointer.

2021-05-04  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
	overflow.
	* testsuite/24_iterators/reverse_iterator/2.cc: Do not add
	non-zero value to null pointer.
	* testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
	Use past-the-end iterator for result.
	* testsuite/25_algorithms/move_backward/69478.cc: Likewise.
	* testsuite/25_algorithms/move_backward/93872.cc: Likewise.

2021-05-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100384
	* include/std/variant (__get_t): New alias template yielding the
	return type of std::get<N> on a variant.
	(__visit_result_t): New alias template yielding the result of
	std::visit.
	(__same_types): Move into namespace __detail::__variant.
	(__check_visitor_results): Likewise. Use __invoke_result_t and
	__get_t.
	(__check_visitor_result): Remove.
	(visit): Use __visit_result_t for return type.
	* testsuite/20_util/variant/100384.cc: New test.

2021-05-04  Jonathan Wakely  <jwakely@redhat.com>

	* acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
	checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
	* include/bits/random.h (_Select_uint_least_t<s, 1>):
	Use __SIZEOF_INT128__ to decide whether to use __int128.
	* include/std/charconv (__to_chars_unsigned_type): Likewise.

2021-05-03  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/xml/manual/ctype.xml: Move unix.org reference to https.
	* doc/html/manual/facets.html: Regenerate.

2021-04-30  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (__detail::__non_propating_cache): Define
	as per P2328.
	(join_view): Remove constraints on the value and reference types
	of the wrapped iterator type as per P2328.
	(join_view::_Iterator::_M_satisfy): Adjust as per P2328.
	(join_view::_Iterator::operator++): Likewise.
	(join_view::_M_inner): Use __non_propating_cache as per P2328.
	Remove now-redundant use of __maybe_present_t.
	* testsuite/std/ranges/adaptors/join.cc: Include <array>.
	(test10): New test.

2021-04-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (__cpp_lib_constexpr_string):
	Only define for C++17 and later.
	* include/std/version (__cpp_lib_semaphore): Fix condition
	to match the one in <semaphore>.

2021-04-30  Jonathan Wakely  <jwakely@redhat.com>

	* acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
	* include/bits/postypes.h: Remove include of <stdint.h> and
	definition/undefinition of the __STDC_LIMIT_MACROS and
	__STDC_CONSTANT_MACROS macros.
	(streamoff): Use __INT64_TYPE__ if defined.

2021-04-30  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (split_view::_InnerIter::operator++):
	Depend on _Base instead of _Vp directly, as per LWG 3532.

2021-04-30  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_util.h (subrange::subrange): Avoid
	list-initialization in delegating constructor.
	* include/std/ranges (single_view): Replace implicit guide
	with explicit deduction guide that decays its argument.
	(_Single::operator()): Avoid CTAD when constructing the
	single_view object.
	(_Iota::operator()): Avoid list-initialization.
	(__detail::__can_filter_view, _Filter::operator()): Likewise.
	(__detail::__can_transform_view, _Transform::operator()): Likewise.
	(take_view::begin): Likewise.
	(__detail::__can_take_view, _Take::operator()): Likewise.
	(__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
	(__detail::__can_drop_view, _Drop::operator()): Likewise.
	(__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
	(split_view::split_view): Use views::single when initializing
	_M_pattern.
	(__detail::__can_split_view, _Split::operator()): Avoid
	list-initialization.
	(_Counted::operator()): Likewise.
	* testsuite/std/ranges/p2367.cc: New test.

2021-04-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/60497
	* include/bits/basic_ios.tcc (basic_ios::copyfmt): use
	std::addressof.
	* include/bits/basic_string.tcc (basic_string::swap)
	(basic_string::assign): Likewise.
	* include/bits/deque.tcc (deque::operator=(const deque&)):
	Likewise.
	* include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
	Likewise.
	* include/bits/vector.tcc (vector::operator=(const vector&)):
	Likewise.

2021-04-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/istream (operator>>(Istream&&, x&)): Simplify, as
	per LWG 1203.
	* include/std/ostream (operator<<(Ostream&&, const x&)):
	Likewise.
	* testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
	Adjust dg-error pattern.
	* testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
	Likewise.
	* testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
	is_extractable trait to replace std::__is_extractable. Make it
	work with rvalue streams as well as lvalues, to replace f() and
	g() helper functions.
	* testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
	Define is_insertable trait to replace std::__is_insertable. Make
	it work with rvalue streams as well as lvalues, to replace f()
	and g() helper functions.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
	errors from new constraints.
	* testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
	which are no longer expected to compile.
	* testsuite/27_io/rvalue_streams.cc: Adjust existing test.
	Verify LWG 1203 changes.

2021-04-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100285
	* include/experimental/socket (__basic_socket_impl::set_option)
	(__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
	Just set error code.
	* testsuite/experimental/net/socket/socket_base.cc: CHeck
	for <sys/socket.h> not <socket.h>.

2021-04-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100180
	PR libstdc++/100286
	PR libstdc++/100351
	* testsuite/experimental/net/internet/address/v4/comparisons.cc:
	Use new effective-target keyword.
	* testsuite/experimental/net/internet/address/v4/cons.cc:
	Likewise.
	* testsuite/experimental/net/internet/address/v4/creation.cc:
	Likewise.
	* testsuite/experimental/net/internet/address/v4/members.cc:
	Likewise.
	* testsuite/experimental/net/internet/address/v6/members.cc:
	Likewise.
	* testsuite/experimental/net/internet/resolver/base.cc:
	Likewise.
	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
	Likewise.
	* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
	Likewise.
	* testsuite/experimental/net/internet/socket/opt.cc:
	Likewise.
	* testsuite/experimental/net/internet/tcp.cc:
	Likewise.
	* testsuite/experimental/net/internet/udp.cc:
	Likewise.
	* testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
	New proc to check net_ts_ip et.

2021-04-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/97930
	* testsuite/20_util/pair/requirements/structural.cc: New test.

2021-04-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
	new definitions for constructors and assignment operators using
	concepts for constraints.
	* testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
	later.
	* testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
	expected error messages to also match C++20 errors.

2021-04-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99957
	* include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
	Combine and replace with ...
	(_PCC::_DeprConsPair): New SFINAE helper function.
	(pair): Merge preprocessor blocks so that all C++03 members
	are defined together at the end.
	(pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
	Replace _T1 and _T2 parameters with __null_ptr_constant and
	adjust constraints.
	* testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
	* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
	* testsuite/20_util/pair/cons/99957.cc: New test.

2021-04-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
	* include/std/version (__cpp_lib_constexpr_string): Define.
	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
	Check for __cpp_lib_constexpr_string.
	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
	Likewise.
	* testsuite/21_strings/char_traits/requirements/version.cc: New test.

2021-04-28  Jonathan Wakely  <jwakely@redhat.com>

	* doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
	dealing with errors. Use '@' to prevent shell command being
	echoed.
	* doc/Makefile.in: Regenerate.

2021-04-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100298
	* include/bits/std_thread.h (thread::hardware_concurrency): Add
	missing noexcept to inline definition for non-gthreads targets.

2021-04-28  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100187
	PR libstdc++/100237
	PR libstdc++/100249
	PR libstdc++/100287
	* include/bits/ranges_algo.h (__search_n_fn::operator()): Give
	the __value_comp lambda an explicit bool return type.
	(__is_permutation_fn::operator()): Give the __proj_scan local
	variable auto&& return type.  Give the __comp_scan lambda an
	explicit bool return type.
	(__remove_fn::operator()): Give the __pred lambda an explicit
	bool return type.
	(__partition_fn::operator()): Don't std::move __first twice
	when returning an empty subrange.
	(__min_fn::operator()): Don't std::move __comp.
	(__max_fn::operator()): Likewise.
	(__minmax_fn::operator()): Likewise.

2021-04-27  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100290
	* include/std/ranges (join_view::_Iterator::operator++): Correct
	the return type of the lambda to avoid returning a copy of
	_M_parent->_M_inner.
	* testsuite/std/ranges/adaptors/join.cc (test10): New test.

2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	Revert:
	2021-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/100182
	* testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
	ia32.
	* testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
	ia32.

2021-04-27  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/internet (address_v6::bytes_type): Adjust
	formatting.
	(basic_endpoint): Define _M_is_v6() to put all checks for
	AF_INET6 in one place.
	(basic_endpoint::resize): Simplify.
	(operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
	(operator!=(const tcp&, const tcp&)): Likewise.
	(operator==(const udp&, const udp&)): Likewise.
	(operator!=(const udp&, const udp&)): Likewise.
	* testsuite/experimental/net/internet/tcp.cc: New test.
	* testsuite/experimental/net/internet/udp.cc: New test.

2021-04-27  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100286
	* include/experimental/internet (resolver_errc, resolver_category())
	(make_error_code, make_error_condition): Define unconditionally,
	only make enumerators and use of gai_strerror depend on the
	availability of <netdb.h>.
	(address_v4::to_string): Use correct constant for string length.
	(address_v4::to_string, address_v6::to_string): Define
	unconditionally, throw if unsupported.
	(make_address_v4, make_address_v6): Define unconditionally.
	Return an error if unsupported.
	(tcp, udp, v6_only, unicast::hops, multicast::*): Define
	conditionally,
	* testsuite/experimental/net/internet/socket/opt.cc: Check for
	<netinet/in.h> and <netinet/tcp.h> before using types from
	namespace net::ip.

2021-04-27  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100285
	* include/experimental/internet (resolver_base::flags):
	Define overloaded operators as hidden friends.
	* include/experimental/socket (socket_base::message_flags):
	Likewise.

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

	* include/experimental/internet (tcp::no_delay, v6_only)
	(unicast::hops, multicast::hops, multicast::enable_loopback):
	Change access of base class and static data members. Add
	using-declaration for __socket_crtp::operator=(_Tp).
	(multicast::__mcastopt): New type.
	(multicast::join_group, multicast::leave_group): Derive from
	__mcastopt for common implementation.
	* include/experimental/socket: Add comment.
	* testsuite/experimental/net/internet/socket/opt.cc: New test.
	* testsuite/experimental/net/socket/socket_base.cc: Check for
	protected constructor/destructor of socket_base. Check for
	explicit constructors of socket option classes.

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

	* include/experimental/bits/net.h (__socket_base): Add
	bool template parameter to allow BooleanSocketOption and
	IntegerSocketOption to have different __socket_base<int>
	base classes.
	(__socket_base<bool>): Adjust base class.
	(__socket_base<int>): Add partial specialization.
	(__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
	* include/experimental/socket (socket_base::broadcast)
	(socket_base::debug, socket_base::do_not_route)
	(socket_base::keep_alive, socket_base::linger)
	(socket_base::out_of_band_inline)
	(socket_base::receive_buffer_size)
	(socket_base::receive_low_watermark)
	(socket_base::reuse_address, socket_base::send_buffer_size)
	(socket_base::send_low_watermark): Add using-declaration for
	__socket_crtp::operator=(_Tp).
	* testsuite/experimental/net/socket/socket_base.cc: Check
	properties of socket option types.

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

	* include/experimental/internet (resolver_base::flags): Remove
	enumerators. Initialize constants directly with desired values.
	Make all operators constexpr and noexcept.
	* testsuite/experimental/net/internet/resolver/base.cc: Use
	__gnu_test::test_bitmask_values for bitmask type. Check
	construction and destruction is protected.

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

	* include/bits/semaphore_base.h: Include <exception> and <errno.h>.

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

	PR libstdc++/100259
	* include/experimental/internet (net::ip::make_error_code)
	(net::ip::make_error_condition, net::ip::make_network_v4)
	(net::ip::operator==(const udp&, const udp&)): Add 'inline'.

2021-04-24  David Edelsohn  <dje.gcc@gmail.com>

	* testsuite/lib/dg-options.exp (atomic_link_flags): New.
	(add_options_for_libatomic): Use atomic_link_flags.

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

	PR libstdc++/100180
	* include/experimental/io_context (io_context): Define
	dummy_pollfd type so that most member functions still compile
	without <poll.h> and struct pollfd.

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

	* include/experimental/io_context (io_context::async_wait): Add
	comment.
	* include/experimental/socket (basic_socket::async_connect):
	Cast wait_type constant to int.
	(basic_datagram_socket::async_receive): Likewise.
	(basic_datagram_socket::async_receive_from): Likewise.
	(basic_datagram_socket::async_send): Likewise.
	(basic_datagram_socket::async_send_to): Likewise.
	(basic_stream_socket::async_receive): Likewise.
	(basic_stream_socket::async_send): Likewise. Use io_context
	parameter directly, instead of via an executor.
	(basic_socket_acceptor::async_accept): Likewise.

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

	* include/experimental/socket (socket_base::shutdown_type):
	(socket_base::wait_type, socket_base::message_flags):
	Remove enumerators. Initialize constants directly with desired
	values.
	(socket_base::message_flags): Make all operators constexpr and
	noexcept.
	* testsuite/util/testsuite_common_types.h (test_bitmask_values):
	New test utility.
	* testsuite/experimental/net/socket/socket_base.cc: New test.

2021-04-22  David Edelsohn  <dje.gcc@gmail.com>

	* config/os/aix/atomicity.h: Delete.

2021-04-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
	Handle system_clock as well as steady_clock.
	* testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
	* testsuite/30_threads/semaphore/try_acquire_until.cc:
	Re-enable.

2021-04-22  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
	options for libatomic.

2021-04-22  Jonathan Wakely  <jwakely@redhat.com>

	* config/os/gnu-linux/os_defines.h: Fix type in comment.

2021-04-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99006
	* include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
	is not an array type.
	* include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
	* testsuite/20_util/shared_ptr/creation/99006.cc: New test.

2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>

	* include/bits/atomic_wait.h: Always notify waiters in the
	case of 'bare' address notification.

2021-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/100182
	* testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
	ia32.
	* testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
	ia32.

2021-04-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100179
	* include/bits/semaphore_base.h: Remove #error.
	* include/std/semaphore: Do not define anything unless one of
	the implementations is available.

2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>

	* include/bits/semaphore_base.h: Always reload __old in
	__atomic_semaphore::_S_do_try_acquire().
	* testsuite/30_threads/stop_token/stop_callback/destroy.cc:
	re-enable testcase.

2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99453
	* python/Makefile.am: Install libstdc++*-gdb.py more robustly.
	* python/Makefile.in: Regenerate.

2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>

	* include/bits/semaphore_base.h: Add missing _M_try_acquire()
	member to __platform_wait.

2021-04-21  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/latch: Replace tab characters in license text.
	* include/std/semaphore: Likewise.

2021-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/100164
	* acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
	rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
	* configure: Regenerated.
	* config.h.in: Regenerated.

2021-04-20  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
	test for targets not using futexes for semaphores.
	* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
	* testsuite/30_threads/stop_token/stop_callback/destroy.cc:
	Disable for all targets.

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

	* include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
	* include/Makefile.in: Regenerate.
	* include/bits/this_thread_sleep.h: New file.
	* include/bits/atomic_base.h: Adjust all calls
	to __atomic_wait/__atomic_notify for new call signatures.
	* include/bits/atomic_timed_wait.h: Extensive rewrite.
	* include/bits/atomic_wait.h: Likewise.
	* include/bits/semaphore_base.h: Adjust all calls
	to __atomic_wait/__atomic_notify for new call signatures.
	* include/std/atomic: Likewise.
	* include/std/barrier: Likewise.
	* include/std/latch: Likewise.
	* include/std/semaphore: Likewise.
	* include/std/thread (this_thread::sleep_for)
	(this_thread::sleep_until): Move to new header.
	* testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
	test.
	* testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
	* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
	* testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.

2021-04-20  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/95983
	* include/bits/stl_iterator.h (__detail::__move_iter_cat):
	Define.
	(move_iterator): Derive from the above in C++20 in order to
	conditionally define iterator_category as per P2259.
	(move_iterator::__base_cat): No longer used, so remove.
	(move_iterator::iterator_category): Remove in C++20.
	(__detail::__common_iter_use_postfix_proxy): Define.
	(common_iterator::_Proxy): Rename to ...
	(common_iterator:__arrow_proxy): ... this.
	(common_iterator::__postfix_proxy): Define as per P2259.
	(common_iterator::operator->): Adjust.
	(common_iterator::operator++): Adjust as per P2259.
	(iterator_traits<common_iterator>::_S_iter_cat): Define.
	(iterator_traits<common_iterator>::iterator_category): Change as
	per P2259.
	(__detail::__counted_iter_value_type): Define.
	(__detail::__counted_iter_concept): Define.
	(__detail::__counted_iter_cat): Define.
	(counted_iterator): Derive from the above three classes in order
	to conditionally define value_type, iterator_concept and
	iterator category respectively as per P2259.
	(counted_iterator::operator->): Define as per P2259.
	(incrementable_traits<counted_iterator>): Remove as per P2259.
	(iterator_traits<counted_iterator>): Adjust as per P2259.
	* include/std/ranges (__detail::__iota_view_iter_cat): Define.
	(iota_view::_Iterator): Derive from the above in order to
	conditionally define iterator_category as per P2259.
	(iota_view::_S_iter_cat): Rename to ...
	(iota_view::_S_iter_concept): ... this.
	(iota_view::iterator_concept): Use it to apply LWG 3291 changes.
	(iota_view::iterator_category): Remove.
	(__detail::__filter_view_iter_cat): Define.
	(filter_view::_Iterator): Derive from the above in order to
	conditionally define iterator_category as per P2259.
	(filter_view::_Iterator): Move to struct __filter_view_iter_cat.
	(filter_view::_Iterator::iterator_category): Remove.
	(transform_view::_Base): Define.
	(transform_view::__iter_cat): Define.
	(transform_view::_Iterator): Derive from the above in order to
	conditionally define iterator_category as per P2259.
	(transform_view::_Iterator::_Base): Just alias
	transform_view::_Base.
	(transform_view::_Iterator::_S_iter_cat): Move to struct
	transform_view::__iter_cat.
	(transform_view::_Iterator::iterator_category): Remove.
	(transform_view::_Sentinel::_Base): Just alias
	transform_view::_Base.
	(join_view::_Base): Define.
	(join_view::_Outer_iter): Define.
	(join_view::_Inner_iter): Define.
	(join_view::_S_ref_is_glvalue): Define.
	(join_view::__iter_cat): Define.
	(join_view::_Iterator): Derive from it in order to conditionally
	define iterator_category as per P2259.
	(join_view::_Iterator::_Base): Just alias join_view::_Base.
	(join_view::_Iterator::_S_ref_is_glvalue): Just alias
	join_view::_S_ref_is_glvalue.
	(join_view::_Iterator::_S_iter_cat): Move to struct
	transform_view::__iter_cat.
	(join_view::_Iterator::_Outer_iter): Just alias
	join_view::_Outer_iter.
	(join_view::_Iterator::_Inner_iter): Just alias
	join_view::_Inner_iter.
	(join_view::_Iterator::iterator_category): Remove.
	(join_view::_Sentinel::_Base): Just alias join_view::_Base.
	(__detail::__split_view_outer_iter_cat): Define.
	(__detail::__split_view_inner_iter_cat): Define.
	(split_view::_Base): Define.
	(split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
	in order to conditionally define iterator_category as per P2259.
	(split_view::_Outer_iter::iterator_category): Remove.
	(split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
	in order to conditionally define iterator_category as per P2259.
	(split_view::_Inner_iter::_S_iter_cat): Move to
	__split_view_inner_iter_cat.
	(split_view::_Inner_iter::iterator_category): Remove.
	(elements_view::_Base): Define.
	(elements_view::__iter_cat): Define.
	(elements_view::_Iterator): Derive from the above in order to
	conditionall define iterator_category as per P2259.
	(elements_view::_Iterator::_Base): Just alias
	elements_view::_Base.
	(elements_view::_Iterator::_S_iter_concept)
	(elements_view::_Iterator::iterator_concept): Define as per
	P2259.
	(elements_view::_Iterator::iterator_category): Remove.
	(elements_view::_Sentinel::_Base): Just alias
	elements_view::_Base.
	* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
	Adjust constraints on iterator_traits<counted_iterator>.
	* testsuite/std/ranges/p2259.cc: New test.

2021-04-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100146
	* include/std/charconv (__cpp_lib_to_chars): Define
	conditionally.
	* include/std/version (__cpp_lib_to_chars): Likewise..
	* testsuite/20_util/from_chars/4.cc: Only check feature test
	macro, not _GLIBCXX_HAVE_USELOCALE.
	* testsuite/20_util/from_chars/5.cc: Likewise.
	* testsuite/20_util/from_chars/6.cc: Likewise.
	* testsuite/20_util/to_chars/long_double.cc: Likewise.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
	versions with _IEEE128_ substring are found, set ieee_version_found
	to true.  Ignore missing symbols with _IEEE128_ in version name if
	!ieee_version_found.  Use i->first as version_name instead of
	i->second.version_name if the latter is empty.
	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.

2021-04-19  H.J. Lu  <hjl.tools@gmail.com>

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

2021-04-17  Jakub Jelinek  <jakub@redhat.com>

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

2021-04-17  Jakub Jelinek  <jakub@redhat.com>

	* 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/s390x-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.

2021-04-15  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
	add libatomic options for 32-bit sparc*-*-linux-gnu.

2021-04-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/96657
	* libsupc++/Makefile.am: Add atomicity.cc here.
	* src/c++98/Makefile.am: Remove it from here.
	* libsupc++/Makefile.in: Regenerate.
	* src/c++98/Makefile.in: Regenerate.
	* testsuite/18_support/exception_ptr/96657.cc: New test.

2021-04-13  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100060
	* include/std/bit: Only include <ext/numeric_traits.h> for
	hosted build, use <limits> otherwise.

2021-04-13  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/backwards_compatibility.xml: Remove porting
	notes for libg++ and libstdc++-v2, and bibliography.
	* doc/html/*: Regenerated.

2021-04-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/100044
	* include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
	Remove helper concept.
	(subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
	deduction guides, as per LWG 3404.
	* testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
	template argument deduction fails.

2021-04-12  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
	Adjust expected error for C++20 mode.
	* testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
	Likewise.

2021-04-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99995
	* testsuite/17_intro/headers/c++1998/49745.cc: Include all
	standard headers and XFAIL for effective-target c++20.

2021-04-09  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/99402
	* include/debug/helper_functions.h (__can_advance(_InputIterator,
	const std::pair<_Diff, _Distance_precision>&, int)): New.
	(__can_advance(const _Safe_iterator<>&,
	const std::pair<_Diff, _Distance_precision>&, int)): New.
	* include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
	use latter.
	(__glibcxx_check_can_increment_range): Adapt to use latter.
	(__glibcxx_check_can_decrement_range): Likewise.
	* include/debug/safe_iterator.h
	(_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
	int)): New.
	(__can_advance(const _Safe_iterator<>&,
	const std::pair<_Diff, _Distance_precision>&, int)): New.
	* include/debug/safe_iterator.tcc
	(_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
	int)): New.
	(_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
	std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
	__dp_sign_max_size.
	(__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
	(__copy_move_backward_a): Likewise.
	(__equal_aux): Likewise.
	* include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
	const std::pair<_Diff, _Distance_precision>&, int)): New.
	(__can_advance(const std::move_iterator<>&,
	const std::pair<_Diff, _Distance_precision>&, int)): New.
	* testsuite/25_algorithms/copy/debug/99402.cc: New test.

2021-04-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99985
	* include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
	to be a valid constexpr function in C++11.
	* testsuite/23_containers/unordered_set/cons/99985.cc: New test.

2021-04-09  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/fs_fwd.h: Fix doxygen group command.
	* include/bits/streambuf_iterator.h: Likewise.
	* include/bits/uses_allocator_args.h: Likewise.
	* include/std/memory: Likewise.
	* include/tr1/complex: Likewise.

2021-04-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h: Tweak doxygen comment.

2021-04-08  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (__detail::find): Define.
	(split_view::_OuterIter::operator++): Apply proposed resolution
	of LWG 3505.
	* testsuite/std/ranges/adaptors/split.cc (test10): New test.

2021-04-08  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (__detail::find_if): Simplify.
	(__detail::find_if_not): Likewise.
	(__detail::min): Remove.
	(__detail::mismatch): Simplify.
	(take_view::size): Use std::min instead of __detail::min.

2021-04-08  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (__detail::__returnable_element): New
	concept.
	(elements_view): Use this concept in its constraints.  Add
	missing private access specifier.
	(elements_view::_S_get_element): Define as per LWG 3502.
	(elements_view::operator*, elements_view::operator[]): Use
	_S_get_element.
	(elements_view::operator++): Remove unnecessary constraint
	as per LWG 3492.
	* testsuite/std/ranges/adaptors/elements.cc (test05): New test.

2021-04-08  Jonathan Wakely  <jwakely@redhat.com>

	* doc/Makefile.am (stamp-pdf-doxygen): Also grep for
	out-of-memory error in log file.
	* doc/Makefile.in: Regenerate.

2021-04-08  Jonathan Wakely  <jwakely@redhat.com>

	* configure: Regenerate.

2021-04-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.h: Fix doxygen group commands.
	* include/bits/regex_constants.h: Likewise.
	* include/tr1/random.h: Likewise.

2021-04-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
	New function to determine noexcept-specifier for move
	constructors.
	(_Hashtable): Use _S_nothrow_move() on move constructors.
	* testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
	Correct static assertion message.
	* testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
	Likewise.

2021-04-08  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/98384
	* testsuite/20_util/to_chars/long_double.cc: Don't run the test
	on targets without a large long double.  XFAIL the execution on
	targets with a non-conforming printf.

2021-04-08  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/99433
	* include/std/ranges (__adaptor::__maybe_refwrap): Remove.
	(__adaptor::__adaptor_invocable): New concept.
	(__adaptor::__adaptor_partial_app_viable): New concept.
	(__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
	non-template base class.
	(__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
	class template.
	(__adaptor::_Partial): New class template that represents
	partial application of a range adaptor non-closure.
	(__adaptor::__pipe_invocable): New concept.
	(__adaptor::_Pipe): New class template.
	(__detail::__can_ref_view): New concept.
	(__detail::__can_subrange): New concept.
	(all): Replace the lambda here with ...
	(_All): ... this functor.  Add appropriate constraints.
	(__detail::__can_filter_view): New concept.
	(filter, _Filter): As in all/_All.
	(__detail::__can_transform): New concept.
	(transform, _Transform): As in all/_All.
	(__detail::__can_take_view): New concept.
	(take, _Take): As in all/_All.
	(__detail::__can_take_while_view): New concept.
	(take_while, _TakeWhile): As in all/_All.
	(__detail::__can_drop_view): New concept.
	(drop, _Drop): As in all/_All.
	(__detail::__can_drop_while_view): New concept.
	(drop_while, _DropWhile): As in all/_All.
	(__detail::__can_join_view): New concept.
	(join, _Join): As in all/_All.
	(__detail::__can_split_view): New concept.
	(split, _Split): As in all/_All.  Rename template parameter
	_Fp to _Pattern.
	(__detail::__already_common): New concept.
	(__detail::__can_common_view): New concept.
	(common, _Common): As in all/_All.
	(__detail::__can_reverse_view): New concept.
	(reverse, _Reverse): As in all/_All.
	(__detail::__can_elements_view): New concept.
	(elements, _Elements): As in all/_All.
	(keys, values): Adjust.
	* testsuite/std/ranges/adaptors/99433.cc: New test.
	* testsuite/std/ranges/adaptors/all.cc: No longer expect that
	adding empty range adaptor closure objects to a pipeline doesn't
	increase the size of the pipeline.
	(test05): New test.
	* testsuite/std/ranges/adaptors/common.cc (test03): New test.
	* testsuite/std/ranges/adaptors/drop.cc (test09): New test.
	* testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
	* testsuite/std/ranges/adaptors/elements.cc (test04): New test.
	* testsuite/std/ranges/adaptors/filter.cc (test06): New test.
	* testsuite/std/ranges/adaptors/join.cc (test09): New test.
	* testsuite/std/ranges/adaptors/p2281.cc: New test.
	* testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
	* testsuite/std/ranges/adaptors/split.cc (test01, test04):
	Adjust.
	(test09): New test.
	* testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
	expected error message.
	(test02): Likewise.  Extend test.
	* testsuite/std/ranges/adaptors/take.cc (test06): New test.
	* testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
	* testsuite/std/ranges/adaptors/transform.cc (test07, test08):
	New test.

2021-04-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/string_view: Adjust Doxygen @file comment.

2021-04-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits (is_scoped_enum<T>): Constrain partial
	specialization to not match incomplete enum types. Use a
	requires-expression instead of instantiating is_convertible.
	(is_scoped_enum<const T>): Add as workaround for PR c++/99968.
	* testsuite/20_util/is_scoped_enum/value.cc: Check with
	incomplete types and opaque-enum-declarations.

2021-04-07  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99805
	* src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
	non-const member on _M_pathname, to avoid copy-on-write.
	* testsuite/27_io/filesystem/path/decompose/parent_path.cc:
	Check construction from strings that might be shared.

2021-04-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/move.h (forward, move, move_if_noexcept)
	(addressof): Add _GLIBCXX_NODISCARD.
	* include/bits/ranges_cmp.h (identity::operator()): Add
	nodiscard attribute.
	* include/c_global/cstddef (to_integer): Likewise.
	* include/std/bit (bit_cast): Likewise.
	* include/std/utility (as_const, to_underlying): Likewise.

2021-04-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/move.h (forward): Change static_assert message
	to be unambiguous about what must be true.
	* testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
	* testsuite/20_util/forward/f_neg.cc: Likewise.

2021-04-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/alloc_traits.h: Use markdown for code font.
	* include/bits/basic_string.h: Fix @param names.
	* include/bits/max_size_type.h: Remove period after @file.
	* include/bits/regex.h: Fix duplicate @retval names, and rename.
	* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
	group open to match existing group close.
	* include/ext/pb_ds/priority_queue.hpp: Add blank line before group
	open.

2021-04-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_base.h: Fix doxygen group close.
	* include/bits/basic_ios.h: Likewise.
	* include/bits/forward_list.h: Likewise.
	* include/bits/fs_dir.h: Likewise.
	* include/bits/fs_ops.h: Likewise.
	* include/bits/fs_path.h: Likewise.
	* include/bits/functional_hash.h: Likewise.
	* include/bits/gslice.h: Likewise.
	* include/bits/gslice_array.h: Likewise.
	* include/bits/hashtable_policy.h: Likewise.
	* include/bits/indirect_array.h: Likewise.
	* include/bits/locale_classes.h: Likewise.
	* include/bits/locale_facets.h: Likewise.
	* include/bits/locale_facets_nonio.h: Likewise.
	* include/bits/mask_array.h: Likewise.
	* include/bits/refwrap.h: Likewise.
	* include/bits/regex.h: Likewise.
	* include/bits/regex_automaton.h: Likewise.
	* include/bits/regex_compiler.h: Likewise.
	* include/bits/regex_constants.h: Likewise.
	* include/bits/regex_error.h: Likewise.
	* include/bits/regex_executor.h: Likewise.
	* include/bits/regex_scanner.h: Likewise.
	* include/bits/shared_ptr.h: Likewise.
	* include/bits/shared_ptr_atomic.h: Likewise.
	* include/bits/shared_ptr_base.h: Likewise.
	* include/bits/slice_array.h: Likewise.
	* include/bits/specfun.h: Likewise.
	* include/bits/std_function.h: Likewise.
	* include/bits/std_mutex.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_iterator.h: Likewise.
	* include/bits/stl_iterator_base_types.h: Likewise.
	* include/bits/stl_map.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_numeric.h: Likewise.
	* include/bits/stl_pair.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/stl_uninitialized.h: Likewise.
	* include/bits/stream_iterator.h: Likewise.
	* include/bits/streambuf_iterator.h: Likewise.
	* include/bits/unique_ptr.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/unordered_set.h: Likewise.
	* include/decimal/decimal: Likewise.
	* include/experimental/any: Likewise.
	* include/experimental/array: Likewise.
	* include/experimental/bits/fs_dir.h: Likewise.
	* include/experimental/bits/fs_fwd.h: Likewise.
	* include/experimental/bits/fs_ops.h: Likewise.
	* include/experimental/bits/fs_path.h: Likewise.
	* include/experimental/buffer: Likewise.
	* include/experimental/internet: Likewise.
	* include/experimental/optional: Likewise.
	* include/experimental/propagate_const: Likewise.
	* include/experimental/socket: Likewise.
	* include/ext/pb_ds/assoc_container.hpp: Likewise.
	* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
	Likewise.
	* include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
	* include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
	* include/ext/pb_ds/detail/types_traits.hpp: Likewise.
	* include/ext/pb_ds/exception.hpp: Likewise.
	* include/ext/pb_ds/priority_queue.hpp: Likewise.
	* include/ext/pb_ds/tag_and_trait.hpp: Likewise.
	* include/ext/random: Likewise.
	* include/std/any: Likewise.
	* include/std/atomic: Likewise.
	* include/std/bitset: Likewise.
	* include/std/chrono: Likewise.
	* include/std/complex: Likewise.
	* include/std/condition_variable: Likewise.
	* include/std/fstream: Likewise.
	* include/std/future: Likewise.
	* include/std/iostream: Likewise.
	* include/std/istream: Likewise.
	* include/std/mutex: Likewise.
	* include/std/numeric: Likewise.
	* include/std/ostream: Likewise.
	* include/std/ratio: Likewise.
	* include/std/shared_mutex: Likewise.
	* include/std/stdexcept: Likewise.
	* include/std/streambuf: Likewise.
	* include/std/system_error: Likewise.
	* include/std/thread: Likewise.
	* include/std/valarray: Likewise.
	* include/std/variant: Likewise.
	* include/tr1/cmath: Likewise.
	* include/tr1/regex: Likewise.
	* include/tr2/dynamic_bitset: Likewise.
	* libsupc++/atomic_lockfree_defines.h: Likewise.
	* libsupc++/exception: Likewise.
	* libsupc++/exception.h: Likewise.
	* libsupc++/exception_ptr.h: Likewise.
	* libsupc++/nested_exception.h: Likewise.

2021-03-31  Alexandre Oliva  <oliva@adacore.com>

	* testsuite/30_threads/future/members/poll.cc: Use faster
	after-ready call in the calibration loop.

2021-03-29  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
	* doc/html/manual/status.html: Regenerate.

2021-03-28  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/forward_list
	(forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
	* include/debug/list (list(list&&, const allocator_type&)): Likewise and add
	call to safe container allocator aware move constructor.
	* include/debug/vector (vector(vector&&, const allocator_type&)):
	Fix noexcept qualification.
	* testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
	Add allocator-extended move constructor noexceot qualification check.
	* testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.

2021-03-26  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/random.cc (USE_LCG): Define when a pseudo-random
	fallback is needed.
	[USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
	New helper functions and callback.
	(random_device::_M_init): Add 'prng' and 'all' enumerators.
	Replace switch with fallthrough with a series of 'if' statements.
	[USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
	checks fail.
	(random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
	token.
	(random_device::_M_getval): Check for callback unconditionally
	and always pass _M_file pointer.
	* testsuite/26_numerics/random/random_device/85494.cc: Remove
	effective-target check. Use new random_device_available helper.
	* testsuite/26_numerics/random/random_device/94087.cc: Likewise.
	* testsuite/26_numerics/random/random_device/cons/default-cow.cc:
	Remove effective-target check.
	* testsuite/26_numerics/random/random_device/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/random_device/cons/token.cc: Use
	new random_device_available helper. Test "prng" token.
	* testsuite/util/testsuite_random.h (random_device_available):
	New helper function.

2021-03-25  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/string
	(basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
	(basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
	(basic_string<>::erase): Adapt to take __const_iterator.
	(basic_string(const _CharT*, const _Allocator&)): Remove assign call.
	(basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
	remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
	[_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
	(__gnu_debug::u16string, __gnu_debug::u32string): New.
	(std::hash<__gnu_debug::basic_string<>>): New partial specialization.
	(std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
	* testsuite/util/exception/safety.h
	(erase_base<__gnu_debug::basic_string<>>): New partial specialization.
	(insert_base<__gnu_debug::basic_string<>>): Likewise.
	* testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
	New partial specialization.
	* testsuite/21_strings/basic_string/hash/debug.cc: New test.
	* testsuite/21_strings/basic_string/requirements/citerators.cc:
	Add test on __gnu_debug::string.
	* testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
	* testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
	* testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
	Likewise.
	* testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
	Likewise.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.

2021-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99672
	* testsuite/18_support/source_location/consteval.cc (main): Adjust
	expected column numbers.
	* testsuite/18_support/source_location/1.cc (main): Likewise.

2021-03-25  Jonathan Wakely  <jwakely@redhat.com>

	* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.

2021-03-25  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/util/exception/safety.h (setup_base::generate):
	Support seeding random engine.
	(erase_point, erase_range): Adjust range of random numbers to
	ensure dereferenceable iterators are used where required.
	(generation_prohibited::run): Do not try to erase from empty
	containers.
	* testsuite/util/testsuite_containergen.h (test_containers):
	Support seeding random engine.

2021-03-23  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
	line with a check that uses the const being/end overloads.

2021-03-23  Moritz Sichert  <sichert@in.tum.de>

	* include/std/ranges (reverse_view::begin, reverse_view::end):
	Qualify make_reverse_iterator calls to avoid ADL.
	* testsuite/std/ranges/adaptors/reverse.cc: Test that
	views::reverse works when make_reverse_iterator is defined
	in an associated namespace.

2021-03-23  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
	Do not define when compiling with Clang.

2021-03-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/string_view (basic_string_view(Range&&)): Define new
	constructor and deduction guide.
	* testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
	* testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.

2021-03-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
	Add missing 'noexcept' as per LWG 2280.
	(rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
	(rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
	* testsuite/24_iterators/range_access/range_access.cc: Check for
	expected noexcept specifiers. Check result types of generic
	std::begin and std::end overloads.
	* testsuite/24_iterators/range_access/range_access_cpp14.cc:
	Check for expected noexcept specifiers.
	* testsuite/24_iterators/range_access/range_access_cpp17.cc:
	Likewise.

2021-03-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits (is_scoped_enum): Define.
	* include/std/version (__cpp_lib_is_scoped_enum): Define.
	* testsuite/20_util/is_scoped_enum/value.cc: New test.
	* testsuite/20_util/is_scoped_enum/version.cc: New test.

2021-03-16  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99341
	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
	std::once_flag symbols.
	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
	* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
	* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
	Likewise.
	* config/abi/pre/gnu.ver: Likewise.
	* src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
	(struct __once_flag_compat): Remove.
	(_ZNSt9once_flag11_M_activateEv): Remove.
	(_ZNSt9once_flag9_M_finishEb): Remove.

2021-03-16  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99341
	* include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
	Revert to pthread_once_t implementation.
	[_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
	* src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
	(struct __once_flag_compat): New type matching the reverted
	implementation of once_flag using futexes.
	(once_flag::_M_activate): Remove, replace with ...
	(_ZNSt9once_flag11_M_activateEv): ... alias symbol.
	(once_flag::_M_finish): Remove, replace with ...
	(_ZNSt9once_flag9_M_finishEb): ... alias symbol.
	* testsuite/30_threads/call_once/66146.cc: Removed.

2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>

	* testsuite/17_intro/names.cc: Exclude j from the list
	of test symbols for Darwin.

2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>

	* config/os/bsd/darwin/ppc-extra.ver: Add matching for
	to_chars and from_chars for long double.

2021-03-15  Patrick Palka  <ppalka@redhat.com>

	* include/bits/max_size_type.h (__max_size_type::operator _Tp):
	Fix formatting.
	(__max_size_type::operator++): Define.
	(__max_size_type::operator--): Likewise.
	(__max_size_type::operator<=>): Conditionally define (in place
	of the other comparison operators).
	(__max_diff_type::operator _Tp): Fix formatting.
	(__max_diff_type::operator++): Define.
	(__max_diff_type::operator--): Likewise.
	(__max_diff_type::operator<=>): Conditionally define (in place
	of the other comparison operators).
	* testsuite/std/ranges/iota/max_size_type.cc (test01): Test
	these operator overloads.

2021-03-15  Caroline Tice  <cmtice@google.com>

	PR libstdc++/99172
	* src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
	AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
	AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
	filtered out.
	* src/Makefile.in: Regenerate.

2021-03-11  Patrick Palka  <ppalka@redhat.com>

	* src/c++17/floating_to_chars.cc: Simplify the file as if
	__SIZEOF_INT128__ is always defined.
	[!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
	a base-10 to_chars overload for the uint128_t class type.
	* src/c++17/uint128_t.h: New file.
	* testsuite/20_util/to_chars/long_double.cc: No longer expect an
	execution FAIL on targets that have a large long double type
	but lack __int128.

2021-03-11  Patrick Palka  <ppalka@redhat.com>

	* src/c++17/ryu/LOCAL_PATCHES: Update.
	* src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
	* src/c++17/ryu/generic_128.h: Likewise.
	* src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
	Use uint128_t instead of __uint128_t.
	(generic_binary_to_decimal): Likewise.

2021-03-11  Patrick Palka  <ppalka@redhat.com>

	* src/c++17/ryu/LOCAL_PATCHES: New file.

2021-03-11  Patrick Palka  <ppalka@redhat.com>

	* src/c++17/floating_to_chars.cc (uint128_t): New conditionally
	defined alias of unsigned __int128.
	(floating_type_traits_binary128::mantissa_t): Use uint128_t
	instead of unsigned __int128.
	(floating_type_traits<long double>::mantissa_t)
	[LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
	(get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
	and uint32_t explicit.  Simplify the extraction of mantissa,
	exponent and sign bit.

2021-03-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/barrier (barrier::arrival_token): New move-only
	class that encapsulates the underlying token value.

2021-03-11  Jonathan Wakely  <jwakely@redhat.com>

	* python/libstdcxx/v6/printers.py (find_type): Use tag attribute
	instead of unqualified() method.

2021-03-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99537
	* include/std/stop_token (_Stop_state_t::_M_release_ownership):
	Use acq_rel memory ordering.

2021-03-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99533
	* src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
	helper function to check for permission denied errors.
	* src/filesystem/dir.cc (recursive_directory_iterator):
	Likewise.
	* src/filesystem/dir-common.h (is_permission_denied_error): New
	helper function.

2021-03-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99536
	* include/bits/random.h (normal_distribution): Use
	default-initializer for _M_saved and _M_saved_available.

2021-03-10  John David Anglin  <danglin@gcc.gnu.org>

	* testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
	link with libatomic.
	* testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
	* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
	* testsuite/30_threads/barrier/arrive.cc: Likewise.
	* testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
	* testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
	* testsuite/30_threads/barrier/completion.cc: Likewise.
	* testsuite/30_threads/latch/3.cc: Likewise.
	* testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
	* testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
	* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.

2021-03-10  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99413
	* include/bits/align.h: Include debug/assertions.h.
	* include/bits/codecvt.h: Include bits/c++config.h.
	* include/bits/enable_special_members.h: Likewise.
	* include/bits/erase_if.h: Likewise.
	* include/bits/functional_hash.h: Include <type_traits>.
	* include/bits/invoke.h: Include bits/move.h.
	* include/bits/ostream_insert.h: Include bits/exception_defines.h.
	* include/bits/parse_numbers.h: Include <type_traits>.
	* include/bits/predefined_ops.h: Include bits/c++config.h.
	* include/bits/range_access.h: Include bits/stl_iterator.h.
	* include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
	* include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
	* include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
	* include/bits/uniform_int_dist.h: Include bits/concept_check.h.
	* include/bits/unique_lock.h: Include bits/std_mutex.h.
	* include/debug/assertions.h: Include bits/c++config.h.

2021-03-10  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
	(ranges::equal_to, ranges::not_equal_to): Do not constrain
	with __eq_builtin_ptr_cmp.
	(ranges::less, ranges::greater, ranges::less_equal)
	(ranges::greater_equal): Do not constrain with
	__less_builtin_ptr_cmp.
	* libsupc++/compare (compare_three_way): Do not constrain with
	__3way_builtin_ptr_cmp.
	* testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
	* testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
	* testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.

2021-03-10  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
	C++20 calendar types.

2021-03-06  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/99396
	* include/std/bit (__rotl, __rotr): Add optimized variants for power of
	two _Nd which the compiler can pattern match the rotates.

2021-03-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99382
	* testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
	Make storage larger than required. Verify no write to the last
	element.
	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
	Likewise.

2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

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

2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* include/experimental/bits/simd.h: Replace reserved _X, _B by
	_Xp, _Bp.
	* include/experimental/bits/simd_builtin.h: Likewise.
	* include/experimental/bits/simd_x86.h: Likewise.

2021-02-27  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99301
	* include/std/chrono (year_month_day::_M_days_since_epoch()):
	Convert chrono::month and chrono::day to unsigned before
	converting to uint32_t.

2021-02-25  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/chrono (year_month_day::_S_from_days): Perform
	all calculations with type uint32_t.

2021-02-25  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/abi.xml: Document versioning for GCC 11.
	* doc/html/manual/abi.html: Regenerate.

2021-02-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99270
	* testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
	FILE instead of FILE.

2021-02-25  Andreas Schwab  <schwab@suse.de>

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

2021-02-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99265
	* include/std/chrono (year_month_day::_S_from_days): Cast long
	to int explicitly.

2021-02-25  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/utility (to_underlying): Define.
	* include/std/version (__cpp_lib_to_underlying): Define.
	* testsuite/20_util/to_underlying/1.cc: New test.
	* testsuite/20_util/to_underlying/version.cc: New test.

2021-02-24  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99261
	* src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
	before value to be printed.

2021-02-24  Patrick Palka  <ppalka@redhat.com>

	* src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
	Relax the condition that guards the printf code path to accept
	F128_type as well as long double.

2021-02-24  Cassio Neri  <cassio.neri@gmail.com>

	* include/std/chrono (year_month_day_last:day): New
	implementation.

2021-02-24  Cassio Neri  <cassio.neri@gmail.com>

	* include/std/chrono (year::is_leap): New implementation.
	* testsuite/std/time/year/2.cc: New test.

2021-02-24  Cassio Neri  <cassio.neri@gmail.com>

	* include/std/chrono (year_month_day::_M_days_since_epoch):
	New implementation.
	* testsuite/std/time/year_month_day/4.cc: New test.

2021-02-24  Cassio Neri  <cassio.neri@gmail.com>

	* include/std/chrono (year_month_day::_S_from_days): New
	implementation.
	* testsuite/std/time/year_month_day/3.cc: New test.

2021-02-24  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/98384
	* testsuite/20_util/to_chars/long_double.cc: Include <optional>.
	(test01): Simplify verifying the nearby values by using a
	2-iteration loop and a dedicated output buffer to check that the
	nearby values are different.  Factor out the printf-based
	verification into a local function, and check that the leading
	hex digits agree before comparing to the output of printf.  Also
	verify the output by round-tripping it through from_chars.

2021-02-24  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98389
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
	symbols for long double arguments mangled as 'g'.
	* config/os/gnu-linux/ldbl-extra.ver: Likewise.
	* config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
	* src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
	Use -mabi=ibmlongdouble for floating_to_chars.cc.
	* src/c++17/Makefile.in: Regenerate.
	* src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
	New type defining type traits of IEEE binary128 format.
	(floating_type_traits<__float128>): Define specialization.
	(floating_type_traits<long double>): Define in terms of
	floating_type_traits_binary128 when appropriate.
	(floating_to_shortest_scientific): Handle __float128.
	(sprintf_ld): New function template for printing a long double
	or __ieee128 value using sprintf.
	(__floating_to_chars_shortest, __floating_to_chars_precision):
	Use sprintf_ld.
	(to_chars): Define overloads for __float128.

2021-02-24  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.

2021-02-23  Martin Sebor  <msebor@redhat.com>

	PR c++/99074
	* libsupc++/dyncast.cc (__dynamic_cast): Return null when
	first argument is null.

2021-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/99181
	* testsuite/21_strings/char_traits/requirements/char/99181.cc: New
	test.

2021-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/99181
	* include/bits/char_traits.h (char_traits<char>::compare): For
	constexpr evaluation don't call
	__gnu_cxx::char_traits<char_type>::compare but do the comparison loop
	directly.

2021-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/97549
	* include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.

2021-02-23  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/98384
	* src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
	the high- and low-order parts from an IBM long double value
	in an endian-agnostic way.

2021-02-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_wait.h (__thread_relax()): Call
	__thread_yield() not __gthread_yield().

2021-02-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_wait.h (__thread_yield()): Check
	_GLIBCXX_HAS_GTHREADS before using __gthread_yield.
	(__thread_relax()): Use __thread_yield() instead of repeating
	the preprocessor checks for __gthread_yield.

2021-02-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/mutex (once_flag::_M_activate()): Add explicit
	return statement for passive case.
	(once_flag::_M_finish(bool)): Use reserved name for parameter.

2021-02-14  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99096
	* testsuite/util/testsuite_fs.h: Always include <unistd.h>.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/88881
	* src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2014.xml: Document implementation
	specific properties of std::experimental::filesystem::rename.
	* doc/xml/manual/status_cxx2017.xml: Document implementation
	specific properties of std::filesystem::rename.
	* doc/html/*: Regenerate.
	* src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
	for directories on Windows.
	* src/filesystem/ops-common.h (__gnu_posix::rename): Use
	MoveFileExW on Windows.
	* testsuite/27_io/filesystem/operations/rename.cc: New test.
	* testsuite/experimental/filesystem/operations/rename.cc: New test.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/util/testsuite_fs.h (nonexistent_path): Add
	random number to the path.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/internet (address_v6::to_string): Include
	scope ID in string.
	* testsuite/experimental/net/internet/address/v6/members.cc:
	Test to_string() results.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/internet (address_v6::any): Avoid using
	memcpy in constexpr function.
	(address_v6::loopback): Likewise.
	(make_address_v6): Fix missing return statements on error paths.
	* include/experimental/io_context: Avoid -Wdangling-else
	warning.
	* testsuite/experimental/net/internet/address/v4/members.cc:
	Remove unused variables.
	* testsuite/experimental/net/internet/address/v6/members.cc:
	New test.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
	Add unused attribute to parameter.
	* src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
	Likewise.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
	if -fno-rtti is used.
	* testsuite/30_threads/async/forced_unwind.cc: Expect test
	to abort if -fno-rtti is used.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/util/testsuite_allocator.h (memory_resource):
	Remove requirement for RTTI and exceptions to be enabled.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
	static_cast when RTTI is disabled.
	* testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
	Likewise.
	* testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
	Likewise.
	* testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
	Likewise.
	* testsuite/27_io/basic_stringstream/str/char/2.cc:
	Likewise.
	* testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
	Likewise.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/ostream (__syncbuf_base::_S_get): Mark parameter
	as unused and only use dynamic_cast when RTTI is enabled.

2021-02-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99077
	* src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
	Change int parameter to error_code, to match std::ios_failure.
	(__throw_ios_failure(const char*, int)): Construct error_code
	from int parameter.

2021-02-11  Jonathan Wakely  <jwakely@redhat.com>

	* libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
	new macro.
	* libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
	macro instead of _GLIBCXX_EH_PTR_COMPAT.
	(operator==): Likewise.

2021-02-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99058
	* doc/xml/manual/status_cxx2011.xml: Document when support
	became stable.
	* doc/xml/manual/status_cxx2014.xml: Likewise.
	* doc/xml/manual/status_cxx2017.xml: Likewise.
	* doc/html/manual/status.html: Regenerate.

2021-02-10  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/88881
	* src/c++17/fs_ops.cc (fs::status): Re-enable workaround.

2021-02-10  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
	(fs::remove): Use std::system_category() for error codes from
	GetLastError().
	* src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
	Likewise.

2021-02-10  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
	in __MINGW32__ macro name.
	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
	* testsuite/27_io/filesystem/path/generation/proximate.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/generation/relative.cc:
	Likewise.
	* testsuite/util/testsuite_fs.h: Likewise.

2021-02-09  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_tree.h
	(__has_is_transparent, __has_is_transparent_t): Move...
	* include/bits/stl_function.h: ...here.
	* include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
	(_Hashtable_base<>::_M_equals_tr): New.
	* include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
	_Hashtable<>::_M_equal_range_tr): New member function templates to perform
	heterogeneous lookup.
	(_Hashtable<>::_M_find_before_node_tr): New.
	(_Hashtable<>::_M_find_node_tr): New.
	* include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
	unordered_map::contains<>, unordered_map::equal_range<>): New member function
	templates to perform heterogeneous lookup.
	(unordered_multimap::find<>, unordered_multimap::count<>,
	unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
	* include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
	unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
	(unordered_multiset::find<>, unordered_multiset::count<>,
	unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
	* include/debug/unordered_map
	(unordered_map::find<>, unordered_map::equal_range<>): Likewise.
	(unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
	* include/debug/unordered_set
	(unordered_set::find<>, unordered_set::equal_range<>): Likewise.
	(unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
	* testsuite/23_containers/unordered_map/operations/1.cc: New test.
	* testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
	* testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
	* testsuite/23_containers/unordered_set/operations/1.cc: New test.

2021-02-09  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_deque.h
	(std::operator-(deque::iterator, deque::iterator)): Replace if/then with
	a null pointer test.

2021-02-09  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/filesystem/operations/remove_all.cc: Remove
	test directory after making it writable again.
	* testsuite/experimental/filesystem/operations/remove_all.cc:
	Likewise.

2021-02-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99021
	* include/std/coroutine (coroutine_handle<P>::from_address): Add
	noexcept.

2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>

	* include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
	* src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.

2021-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/98465
	* include/bits/basic_string.tcc (basic_string::_M_replace): When __s
	points to the characters moved by earlier _S_move, compute the source
	address using expression based on the __p pointer rather than __s
	pointer.

2021-02-03  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/19_diagnostics/error_code/operators/not_equal.cc:
	Add comparison with same category and different values.
	* testsuite/19_diagnostics/error_code/operators/less.cc:
	Likewise. Fix comparison involving different categories.
	* testsuite/19_diagnostics/error_code/operators/three_way.cc:
	Likewise.
	* testsuite/19_diagnostics/error_condition/operators/less.cc:
	Add comment.
	* testsuite/19_diagnostics/error_condition/operators/three_way.cc:
	Likewise.

2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>

	* include/experimental/bits/simd_neon.h: Replace repeated vpadd
	calls with a single vaddv for aarch64.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/Makefile.am: Warn about the workaround. Add
	-fno-tree-vrp to CXXFLAGS passed to the check_simd script.
	Improve initial user feedback from make check-simd.
	* testsuite/Makefile.in: Regenerated.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* include/experimental/bits/simd.h: Add __detail::_Minimum and
	__detail::_Maximum to use them as _BinaryOperation to _S_reduce.
	Add hmin and hmax overloads for simd and const_where_expression.
	* include/experimental/bits/simd_scalar.h
	(_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
	parameter const-ref to allow calling _S_reduce with an rvalue.
	* testsuite/experimental/simd/tests/reductions.cc: Add tests for
	hmin and hmax. Since the compiler statically determined that all
	tests pass, repeat the test after a call to make_value_unknown.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/experimental/simd/tests/bits/verify.h (verify): Add
	instruction pointer data member. Ensure that the `if (m_failed)`
	branch is always inlined into the calling code. The body of the
	conditional can still be a function call. Move the get_ip call
	into the verify ctor to simplify the ctor calls.
	(COMPARE): Don't mention the use of all_of for reduction of a
	simd_mask. It only distracts from the real issue.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/experimental/simd/driver.sh: Abstract reading test
	options into read_src_option function. Read skip, only,
	expensive, and xfail via read_src_option. Add timeout and
	timeout-factor options and adjust timeout variable accordingly.
	* testsuite/experimental/simd/tests/loadstore.cc: Set
	timeout-factor 2.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/experimental/simd/driver.sh: When handling the pipe
	to log (and on verbose to stdout) count the lines. If it exceeds
	1000 log the issue and exit 125, which is then handled as a
	failure.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
	markup for long double on powerpc64*.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* include/experimental/bits/simd.h: Add __have_power10vec
	conditional on _ARCH_PWR10.
	* include/experimental/bits/simd_builtin.h: Forward declare
	_MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
	defined.
	(_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
	_SuperImpl for optimizations and correctness.
	* include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
	(_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
	Otherwise, for >=int use -vec_sums divided by a sizeof factor.
	For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/experimental/simd/driver.sh: Remove executable on
	SIGINT. Process compiler and test executable output: In verbose
	mode print messages immediately, limited to 1000 lines and
	breaking long lines to below $COLUMNS (or 1024 if not set).
	Communicating the exit status of the compiler / test with the
	necessary pipe is done via a message through stdout/-in.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/Makefile.am: Ensure .simd.summary is empty before
	collecting a new summary.
	* testsuite/Makefile.in: Regenerate.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/experimental/simd/generate_makefile.sh: Use
	different variables internally than documented for user
	overrides. This makes internal append/prepend work as intended.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/experimental/simd/driver.sh (verify_test): Print
	test output on run xfail. Do not repeat lines from the log that
	were already printed on stdout.
	(test_selector): Make the compiler flags pattern usable as a
	substring selector.
	(toplevel): Trap on SIGINT and remove the log and sum files.
	Call timout with --foreground to quickly terminate on SIGINT.
	* testsuite/experimental/simd/generate_makefile.sh: Simplify run
	targets via target patterns. Default DRIVEROPTS to -v for run
	targets. Remove log and sum files after completion of the run
	target (so that it's always recompiled).
	Place help text into text file for reasonable 'make help'
	performance.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* include/experimental/bits/simd.h: Remove unnecessary static
	assertion. Allow sizeof(8) integer __intrinsic_type to enable
	the necessary mask type.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* include/experimental/bits/simd.h: Let __intrinsic_type<long
	double, N> be valid if sizeof(long double) == sizeof(double) and
	use a __vector double as member type.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* include/experimental/bits/simd.h (__is_intrinsic_type): New
	internal type trait. Alias for __is_vector_type on x86.
	(_VectorTraitsImpl): Enable for __intrinsic_type in addition for
	__vector_type.
	(__intrin_bitcast): Allow casting to & from vector & intrinsic
	types.
	(__intrinsic_type): Explicitly specialize for NEON intrinsic
	vector types.

2021-02-03  Matthias Kretz  <kretz@kde.org>

	* testsuite/experimental/simd/driver.sh: Implement skip, only,
	expensive, and xfail markers. They can select on type, ABI tag
	subset number, target-triplet, and compiler flags.
	* testsuite/experimental/simd/generate_makefile.sh: The summary
	now includes lines for unexpected passes and expected failures.
	If the skip or only markers are only conditional on the type, do
	not generate rules for those types.
	* testsuite/experimental/simd/tests/abs.cc: Mark test expensive
	for ABI tag subsets 1-9.
	* testsuite/experimental/simd/tests/algorithms.cc: Ditto.
	* testsuite/experimental/simd/tests/broadcast.cc: Ditto.
	* testsuite/experimental/simd/tests/casts.cc: Ditto.
	* testsuite/experimental/simd/tests/generator.cc: Ditto.
	* testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
	* testsuite/experimental/simd/tests/loadstore.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
	* testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
	* testsuite/experimental/simd/tests/operators.cc: Ditto.
	* testsuite/experimental/simd/tests/reductions.cc: Ditto.
	* testsuite/experimental/simd/tests/simd.cc: Ditto.
	* testsuite/experimental/simd/tests/split_concat.cc: Ditto.
	* testsuite/experimental/simd/tests/splits.cc: Ditto.
	* testsuite/experimental/simd/tests/where.cc: Ditto.
	* testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
	addition replace "test only floattypes" marker by unconditional
	"float|double|ldouble" only marker.
	* testsuite/experimental/simd/tests/frexp.cc: Ditto.
	* testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
	* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
	Ditto.
	* testsuite/experimental/simd/tests/logarithm.cc: Ditto.
	* testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
	* testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
	* testsuite/experimental/simd/tests/remqo.cc: Ditto.
	* testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
	* testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
	* testsuite/experimental/simd/tests/sincos.cc: Ditto. In
	addition, xfail on run because the reference data is missing.

2021-02-02  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
	* doc/xml/manual/status_cxx2014.xml: Likewise.
	* doc/xml/manual/status_cxx2017.xml: Likewise.
	* doc/html/manual/status.html: Regenerate.

2021-02-01  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/70303
	* include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
	Return 0 if both iterators are value-initialized.
	* testsuite/23_containers/deque/70303.cc: New test.
	* testsuite/23_containers/vector/70303.cc: New test.

2021-02-01  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2011.xml: Update std::call_once
	status.
	* doc/xml/manual/status_cxx2014.xml: Likewise.
	* doc/xml/manual/status_cxx2017.xml: Likewise. Update
	std::from_chars and std::to_chars status. Fix formatting.
	* doc/html/manual/status.html: Regenerate.

2021-01-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/bits/numeric_traits.h: Update copyright
	dates.
	* include/experimental/bits/simd.h: Likewise.
	* include/experimental/bits/simd_builtin.h: Likewise.
	* include/experimental/bits/simd_converter.h: Likewise.
	* include/experimental/bits/simd_detail.h: Likewise.
	* include/experimental/bits/simd_fixed_size.h: Likewise.
	* include/experimental/bits/simd_math.h: Likewise.
	* include/experimental/bits/simd_neon.h: Likewise.
	* include/experimental/bits/simd_ppc.h: Likewise.
	* include/experimental/bits/simd_scalar.h: Likewise.
	* include/experimental/bits/simd_x86.h: Likewise.
	* include/experimental/bits/simd_x86_conversions.h: Likewise.
	* include/experimental/simd: Likewise.
	* testsuite/experimental/simd/*: Likewise.

2021-01-27  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
	* doc/html/*: Regenerate.

2021-01-27  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/experimental/simd/generate_makefile.sh: Use printf
	instead of echo when printing escape characters.

2021-01-27  Matthias Kretz  <kretz@kde.org>

	* scripts/check_simd: New file. This script is called from the
	the check-simd target. It determines a set of compiler flags and
	simulator setups for calling generate_makefile.sh and passes the
	information back to the check-simd target, which recurses to the
	generated Makefiles.
	* scripts/create_testsuite_files: Remove files below simd/tests/
	from testsuite_files and place them in testsuite_files_simd.
	* testsuite/Makefile.am: Add testsuite_files_simd. Add
	check-simd target.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/experimental/simd/driver.sh: New file. This script
	compiles and runs a given simd test, logging its output and
	status. It uses the timeout command to implement compile and
	test timeouts.
	* testsuite/experimental/simd/generate_makefile.sh: New file.
	This script generates a Makefile which uses driver.sh to compile
	and run the tests and collect the logs into a single log file.
	* testsuite/experimental/simd/tests/abs.cc: New file. Tests
	abs(simd).
	* testsuite/experimental/simd/tests/algorithms.cc: New file.
	Tests min/max(simd, simd).
	* testsuite/experimental/simd/tests/bits/conversions.h: New
	file. Contains functions to support tests involving conversions.
	* testsuite/experimental/simd/tests/bits/make_vec.h: New file.
	Support functions make_mask and make_vec.
	* testsuite/experimental/simd/tests/bits/mathreference.h: New
	file. Support functions to supply precomputed math function
	reference data.
	* testsuite/experimental/simd/tests/bits/metahelpers.h: New
	file. Support code for SFINAE testing.
	* testsuite/experimental/simd/tests/bits/simd_view.h: New file.
	* testsuite/experimental/simd/tests/bits/test_values.h: New
	file. Test functions to easily drive a test with simd objects
	initialized from a given list of values and a range of random
	values.
	* testsuite/experimental/simd/tests/bits/ulp.h: New file.
	Support code to determine the ULP distance of simd objects.
	* testsuite/experimental/simd/tests/bits/verify.h: New file.
	Test framework for COMPARE'ing simd objects and instantiating
	the test templates with value_type and ABI tag.
	* testsuite/experimental/simd/tests/broadcast.cc: New file. Test
	simd broadcasts.
	* testsuite/experimental/simd/tests/casts.cc: New file. Test
	simd casts.
	* testsuite/experimental/simd/tests/fpclassify.cc: New file.
	Test floating-point classification functions.
	* testsuite/experimental/simd/tests/frexp.cc: New file. Test
	frexp(simd).
	* testsuite/experimental/simd/tests/generator.cc: New file. Test
	simd generator constructor.
	* testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
	Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
	* testsuite/experimental/simd/tests/integer_operators.cc: New
	file. Test integer operators.
	* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
	New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
	modf(simd).
	* testsuite/experimental/simd/tests/loadstore.cc: New file. Test
	(converting) simd loads and stores.
	* testsuite/experimental/simd/tests/logarithm.cc: New file. Test
	log*(simd).
	* testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
	Test simd_mask broadcasts.
	* testsuite/experimental/simd/tests/mask_conversions.cc: New
	file. Test simd_mask conversions.
	* testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
	file. Test simd_mask implicit conversions.
	* testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
	Test simd_mask loads and stores.
	* testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
	file. Test simd_mask operators convert as specified.
	* testsuite/experimental/simd/tests/mask_operators.cc: New file.
	Test simd_mask compares, subscripts, and negation.
	* testsuite/experimental/simd/tests/mask_reductions.cc: New
	file. Test simd_mask reductions.
	* testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
	1-arg math functions on simd.
	* testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
	2-arg math functions on simd.
	* testsuite/experimental/simd/tests/operator_cvt.cc: New file.
	Test implicit conversions on simd binary operators behave as
	specified.
	* testsuite/experimental/simd/tests/operators.cc: New file. Test
	simd compares, subscripts, not, unary minus, plus, minus,
	multiplies, divides, increment, and decrement.
	* testsuite/experimental/simd/tests/reductions.cc: New file.
	Test reduce(simd).
	* testsuite/experimental/simd/tests/remqo.cc: New file. Test
	remqo(simd).
	* testsuite/experimental/simd/tests/simd.cc: New file. Basic
	sanity checks of simd types.
	* testsuite/experimental/simd/tests/sincos.cc: New file. Test
	sin(simd) and cos(simd).
	* testsuite/experimental/simd/tests/split_concat.cc: New file.
	Test split(simd) and concat(simd, simd).
	* testsuite/experimental/simd/tests/splits.cc: New file. Test
	split(simd_mask).
	* testsuite/experimental/simd/tests/trigonometric.cc: New file.
	Test remaining trigonometric functions on simd.
	* testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
	file. Test trunc(simd), ceil(simd), and floor(simd).
	* testsuite/experimental/simd/tests/where.cc: New file. Test
	masked operations using where.

2021-01-27  Matthias Kretz  <kretz@kde.org>

	* doc/xml/manual/status_cxx2017.xml: Add implementation status
	of the Parallelism TS 2. Document implementation-defined types
	and behavior.
	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Regenerate.
	* include/experimental/simd: New file. New header for
	Parallelism TS 2.
	* include/experimental/bits/numeric_traits.h: New file.
	Implementation of P1841R1 using internal naming. Addition of
	missing IEC559 functionality query.
	* include/experimental/bits/simd.h: New file. Definition of the
	public simd interfaces and general implementation helpers.
	* include/experimental/bits/simd_builtin.h: New file.
	Implementation of the _VecBuiltin simd_abi.
	* include/experimental/bits/simd_converter.h: New file. Generic
	simd conversions.
	* include/experimental/bits/simd_detail.h: New file. Internal
	macros for the simd implementation.
	* include/experimental/bits/simd_fixed_size.h: New file. Simd
	fixed_size ABI specific implementations.
	* include/experimental/bits/simd_math.h: New file. Math
	overloads for simd.
	* include/experimental/bits/simd_neon.h: New file. Simd NEON
	specific implementations.
	* include/experimental/bits/simd_ppc.h: New file. Implement bit
	shifts to avoid invalid results for integral types smaller than
	int.
	* include/experimental/bits/simd_scalar.h: New file. Simd scalar
	ABI specific implementations.
	* include/experimental/bits/simd_x86.h: New file. Simd x86
	specific implementations.
	* include/experimental/bits/simd_x86_conversions.h: New file.
	x86 specific conversion optimizations. The conversion patterns
	work around missing conversion patterns in the compiler and
	should be removed as soon as PR85048 is resolved.
	* testsuite/experimental/simd/standard_abi_usable.cc: New file.
	Test that all (not all fixed_size<N>, though) standard simd and
	simd_mask types are usable.
	* testsuite/experimental/simd/standard_abi_usable_2.cc: New
	file. As above but with -ffast-math.
	* testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
	from the standard test loop. Instead use
	check_vect_support_and_set_flags to build simd tests with the
	relevant machine flags.

2021-01-27  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/66414
	* include/bits/string_view.tcc
	(basic_string_view::find(const CharT*, size_type, size_type)):
	Optimize.

2021-01-27  Paul Fee  <paul.f.fee@gmail.com>

	* include/bits/basic_string.h (basic_string::contains): New
	member functions.
	* include/std/string_view (basic_string_view::contains):
	Likewise.
	* include/std/version (__cpp_lib_string_contains): Define.
	* testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
	Remove trailing whitespace.
	* testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
	* testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
	* testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
	* testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
	* testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.

2021-01-21  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++17/Makefile.in: Regenerate.

2021-01-20  David Edelsohn  <dje.gcc@gmail.com>

	* config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
	_OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
	__lc_type.
	(const char* ctype<char>:: is): Same.

2021-01-18  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98725
	* testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
	write to a wide character stream if wide character support is
	disabled in the library.

2021-01-18  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
	stringbuf not wstringbuf.

2021-01-18  Jakub Jelinek  <jakub@redhat.com>

	PR debug/98708
	* src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
	Compile with -gno-as-loc-support.
	* src/c++11/Makefile.in: Regenerated.

2021-01-16  H.J. Lu  <hjl.tools@gmail.com>

	* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
	Add -fcf-protection=none to -march=i486.

2021-01-14  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
	compliant.

2021-01-14  Alexandre Oliva  <oliva@adacore.com>

	* testsuite/30_threads/future/members/poll.cc: Calibrate
	iteration count.

2021-01-14  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/98466
	* include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
	(_Node_iterator()): Make default.
	(_Node_const_iterator()): Make default.
	* include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
	iterator checks.
	* include/debug/safe_iterator.h
	(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
	* include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
	Likewise.
	* include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
	_M_singular checks on input iterators.
	* src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
	checks.
	* testsuite/23_containers/deque/debug/98466.cc: New test.
	* testsuite/23_containers/unordered_map/debug/98466.cc: New test.

2021-01-14  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98471
	* include/bits/fs_path.h (__throw_conversion_error): New
	function to throw or abort on character conversion errors.
	(__wstr_from_utf8): Move definition after filesystem_error has
	been defined. Use __throw_conversion_error.
	(path::_S_convert<_EcharT>): Use __throw_conversion_error.
	(path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
	(path::u8string): Likewise.

2021-01-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/barrier: Update copyright years. Fix whitespace.
	* include/std/version: Fix whitespace.
	* testsuite/30_threads/barrier/1.cc: Update copyright years.
	* testsuite/30_threads/barrier/2.cc: Likewise.
	* testsuite/30_threads/barrier/arrive.cc: Likewise.
	* testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
	* testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
	* testsuite/30_threads/barrier/completion.cc: Likewise.

2021-01-13  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.

2021-01-10  David Edelsohn  <dje.gcc@gmail.com>

	PR libstdc++/98613
	* testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
	warning.
	* testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.

2021-01-08  Olivier Hainque  <hainque@adacore.com>

	* testsuite/20_util/bind/ref_neg.cc: Tweak the
	dg-prune-output regex for out-of-build-tree contexts.

2021-01-07  Thomas Rodgers  <trodgers@redhat.com>

	* doc/doxygen/user.cfg.in: Add new header.
	* include/Makefile.am (std_headers): likewise.
	* include/Makefile.in: Regenerate.
	* include/precompiled/stdc++.h: Add new header.
	* include/std/barrier: New file.
	* include/std/version: Add __cpp_lib_barrier feature test macro.
	* testsuite/30_threads/barrier/1.cc: New test.
	* testsuite/30_threads/barrier/2.cc: Likewise.
	* testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
	* testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
	* testsuite/30_threads/barrier/arrive.cc: Likewise.
	* testsuite/30_threads/barrier/completion.cc: Likewise.

2021-01-07  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/98384
	* testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
	instead of the non-standard nextupl and nextdownl.

2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* configure: Re-generate.

2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* include/precompiled/stdc++.h: Add <source_location> to C++20 section.

2021-01-01  Jakub Jelinek  <jakub@redhat.com>

	* ChangeLog-2020: Rotate ChangeLog.  New file.

Copyright (C) 2021 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
