Home | History | Annotate | Line # | Download | only in libstdc++-v3
      1 2020-12-27  Gerald Pfeifer  <gerald (a] pfeifer.com>
      2 
      3 	* doc/xml/manual/abi.xml: Update link to Arm ABI.
      4 	* doc/html/manual/abi.html: Regenerate.
      5 
      6 2020-12-27  Gerald Pfeifer  <gerald (a] pfeifer.com>
      7 
      8 	* doc/xml/manual/debug.xml: Move Valgrind references to https.
      9 	* doc/html/manual/debug.html: Regenerate.
     10 
     11 2020-12-26  Gerald Pfeifer  <gerald (a] pfeifer.com>
     12 
     13 	* doc/xml/manual/abi.xml: Update link to Intel's compatibility
     14 	with GNU compilers document.
     15 	* doc/html/manual/abi.html: Regenerate.
     16 
     17 2020-12-25  Gerald Pfeifer  <gerald (a] pfeifer.com>
     18 
     19 	* doc/xml/manual/messages.xml: Update link to Java docs.
     20 	* doc/html/manual/facets.html: Ditto.
     21 
     22 2020-12-25  Gerald Pfeifer  <gerald (a] pfeifer.com>
     23 
     24 	* doc/xml/manual/documentation_hacking.xml: Convert three links
     25 	to doxygen.nl to https.
     26 	* doc/html/manual/documentation_hacking.html: Regenerate.
     27 
     28 2020-12-23  Olivier Hainque  <hainque (a] adacore.com>
     29 
     30 	* testsuite/17_intro/names.cc: Account for VxWorks headers.
     31 
     32 2020-12-21  Patrick Palka  <ppalka (a] redhat.com>
     33 
     34 	* include/bits/c++config (_GLIBCXX_FLOAT_IS_IEEE_BINARY_32):
     35 	Define this macro.
     36 	(_GLIBCXX_DOUBLE_IS_IEEE_BINARY_64): Likewise.
     37 	* include/std/charconv (to_chars): Use these macros to
     38 	conditionally hide the overloads for floating-point types.
     39 	* src/c++17/floating_to_chars.cc: Use the macros to
     40 	conditionally disable this file.
     41 	(floating_type_traits<float>): Remove redundant static assert.
     42 	(floating_type_traits<double>): Likewise.
     43 	* testsuite/20_util/to_chars/double.cc: Run this test only on
     44 	ieee-floats effective targets.
     45 	* testsuite/20_util/to_chars/float.cc: Likewise.
     46 	* testsuite/20_util/to_chars/long_double.cc: Likewise.
     47 	* testsuite/lib/libstdc++.exp
     48 	(check_effective_target_ieee-floats): Define new proc for
     49 	detecting whether float and double have the IEEE binary32 and
     50 	binary64 formats.
     51 
     52 2020-12-20  Jonathan Wakely  <jwakely (a] redhat.com>
     53 
     54 	* include/std/semaphore: Fix indentation.
     55 
     56 2020-12-18  Patrick Palka  <ppalka (a] redhat.com>
     57 
     58 	PR libstdc++/98377
     59 	* src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
     60 	Fix mistake.
     61 
     62 2020-12-18  Patrick Palka  <ppalka (a] redhat.com>
     63 
     64 	PR libstdc++/98370
     65 	* src/c++17/floating_to_chars.cc (__floating_to_chars_shortest):
     66 	Provide explicit template arguments to the call to std::max.
     67 
     68 2020-12-18  Patrick Palka  <ppalka (a] redhat.com>
     69 
     70 	PR libstdc++/98374
     71 	* src/c++17/floating_to_chars.cc: Guard include of <langinfo.h>
     72 	with __has_include.
     73 	(__floating_to_chars_precision) [!defined(RADIXCHAR)]: Don't
     74 	attempt to obtain the radix character of the current locale,
     75 	just assume it's '.'.
     76 
     77 2020-12-18  Patrick Palka  <ppalka (a] redhat.com>
     78 
     79 	* src/c++17/floating_from_chars.cc (from_chars_impl)
     80 	[!defined(FE_TONEAREST)]: Don't adjust the rounding mode.
     81 	* src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
     82 	Likewise.
     83 
     84 2020-12-18  Patrick Palka  <ppalka (a] redhat.com>
     85 
     86 	* testsuite/20_util/to_chars/double.cc: New test, consisting of
     87 	testcases imported from the MSVC STL testsuite.
     88 	* testsuite/20_util/to_chars/float.cc: Likewise.
     89 
     90 2020-12-18  Patrick Palka  <ppalka (a] redhat.com>
     91 
     92 	* config/abi/pre/gnu.ver: Add new exports.
     93 	* include/std/charconv (to_chars): Declare the floating-point
     94 	overloads for float, double and long double.
     95 	* src/c++17/Makefile.am (sources): Add floating_to_chars.cc.
     96 	* src/c++17/Makefile.in: Regenerate.
     97 	* src/c++17/floating_to_chars.cc: New file.
     98 	(to_chars): Define for float, double and long double.
     99 	* testsuite/20_util/to_chars/long_double.cc: New test.
    100 
    101 2020-12-18  Patrick Palka  <ppalka (a] redhat.com>
    102 
    103 	* src/c++17/ryu/common.h, src/c++17/ryu/d2fixed.c,
    104 	src/c++17/ryu/d2fixed_full_table.h, src/c++17/ryu/d2s.c,
    105 	src/c++17/ryu/d2s_intrinsics.h, src/c++17/ryu/f2s.c,
    106 	src/c++17/ryu/f2s_intrinsics.h, src/c++17/ryu/generic_128.c:
    107 	Apply local modifications.
    108 
    109 2020-12-18  Patrick Palka  <ppalka (a] redhat.com>
    110 
    111 	* src/c++17/ryu/MERGE: New file.
    112 	* src/c++17/ryu/common.h, src/c++17/ryu/d2fixed.c,
    113 	src/c++17/ryu/d2fixed_full_table.h, src/c++17/ryu/d2s.c,
    114 	src/c++17/ryu/d2s_full_table.h, src/c++17/ryu/d2s_intrinsics.h,
    115 	src/c++17/ryu/digit_table.h, src/c++17/ryu/f2s.c,
    116 	src/c++17/ryu/f2s_intrinsics.h, src/c++17/ryu/generic_128.c,
    117 	src/c++17/ryu/generic_128.h, src/c++17/ryu/ryu_generic_128.h:
    118 	Import these files from the Ryu library.
    119 
    120 2020-12-17  Jonathan Wakely  <jwakely (a] redhat.com>
    121 
    122 	* config/os/djgpp/error_constants.h: Test POSIX errno macros
    123 	directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
    124 	* config/os/mingw32-w64/error_constants.h: Likewise.
    125 	* config/os/mingw32/error_constants.h: Likewise.
    126 
    127 2020-12-17  Jonathan Wakely  <jwakely (a] redhat.com>
    128 
    129 	* testsuite/lib/libstdc++.exp (check_v3_target_gthreads_timed):
    130 	Fix condition for _GTHREAD_USE_MUTEX_TIMEDLOCK test.
    131 
    132 2020-12-17  Jonathan Wakely  <jwakely (a] redhat.com>
    133 
    134 	* src/c++11/mutex.cc (std::once_flag::_M_finish): Add
    135 	maybe_unused attribute to variable used in assertion.
    136 
    137 2020-12-17  Jonathan Wakely  <jwakely (a] redhat.com>
    138 
    139 	PR libstdc++/98344
    140 	* include/bits/semaphore_base.h: Fix preprocessor condition.
    141 
    142 2020-12-17  Jonathan Wakely  <jwakely (a] redhat.com>
    143 
    144 	* include/bits/std_thread.h (hash<thread::id>): Move here,
    145 	from ...
    146 	* include/std/thread (hash<thread::id>): ... here.
    147 
    148 2020-12-17  Jonathan Wakely  <jwakely (a] redhat.com>
    149 
    150 	* config.h.in: Regenerate.
    151 	* configure: Regenerate.
    152 
    153 2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    154 
    155 	* Makefile.in: Regenerate.
    156 	* config.h.in: Regenerate.
    157 	* config/abi/pre/gnu.ver: Make patterns less greedy.
    158 	* config/os/gnu-linux/ldbl-ieee128-extra.ver: New file with patterns
    159 	for IEEE128 long double symbols.
    160 	* configure: Regenerate.
    161 	* configure.ac: Enable alternative 128-bit long double format on
    162 	powerpc64*-*-linux*.
    163 	* doc/Makefile.in: Regenerate.
    164 	* fragment.am: Regenerate.
    165 	* include/Makefile.am: Set _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT.
    166 	* include/Makefile.in: Regenerate.
    167 	* include/bits/c++config: Define inline namespace for new long
    168 	double symbols. Don't define _GLIBCXX_USE_FLOAT128 when it's the
    169 	same type as long double.
    170 	* include/bits/locale_classes.h [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]
    171 	(locale::_Impl::_M_init_extra_ldbl128): Declare new member function.
    172 	* include/bits/locale_facets.h (_GLIBCXX_NUM_FACETS): Simplify by
    173 	only counting narrow character facets.
    174 	(_GLIBCXX_NUM_CXX11_FACETS): Likewise.
    175 	(_GLIBCXX_NUM_LBDL_ALT128_FACETS): New.
    176 	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT] (num_get::__do_get): Define
    177 	vtable placeholder for __ibm128 long double type.
    178 	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
    179 	(num_get::__do_get): Declare vtable placeholder for __ibm128 long
    180 	double type.
    181 	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
    182 	(num_put::__do_put): Likewise.
    183 	* include/bits/locale_facets.tcc
    184 	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
    185 	(num_get::__do_get, num_put::__do_put): Define.
    186 	* include/bits/locale_facets_nonio.h
    187 	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
    188 	(money_get::__do_get): Declare vtable placeholder for __ibm128 long
    189 	double type.
    190 	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
    191 	(money_put::__do_put): Likewise.
    192 	* include/bits/locale_facets_nonio.tcc
    193 	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
    194 	(money_get::__do_get, money_put::__do_put): Define.
    195 	* include/ext/numeric_traits.h [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]
    196 	(__numeric_traits<__ibm128>, __numeric_traits<__ieee128>): Define.
    197 	* libsupc++/Makefile.in: Regenerate.
    198 	* po/Makefile.in: Regenerate.
    199 	* python/Makefile.in: Regenerate.
    200 	* src/Makefile.am: Add compatibility-ldbl-alt128.cc and
    201 	compatibility-ldbl-alt128-cxx11.cc sources and recipes for objects.
    202 	* src/Makefile.in: Regenerate.
    203 	* src/c++11/Makefile.in: Regenerate.
    204 	* src/c++11/compatibility-ldbl-alt128-cxx11.cc: New file defining
    205 	symbols using the old 128-bit long double format, for the cxx11 ABI.
    206 	* src/c++11/compatibility-ldbl-alt128.cc: Likewise, for the
    207 	gcc4-compatible ABI.
    208 	* src/c++11/compatibility-ldbl-facets-aliases.h: New header for long
    209 	double compat aliases.
    210 	* src/c++11/cow-locale_init.cc: Add comment.
    211 	* src/c++11/cxx11-locale-inst.cc: Define C and C_is_char
    212 	unconditionally.
    213 	* src/c++11/cxx11-wlocale-inst.cc: Add sanity check. Include
    214 	locale-inst.cc directly, not via cxx11-locale-inst.cc.
    215 	* src/c++11/locale-inst-monetary.h: New header for monetary
    216 	category instantiations.
    217 	* src/c++11/locale-inst-numeric.h: New header for numeric category
    218 	instantiations.
    219 	* src/c++11/locale-inst.cc: Include new headers for monetary,
    220 	numeric, and long double definitions.
    221 	* src/c++11/wlocale-inst.cc: Remove long double compat aliases that
    222 	are defined in new header now.
    223 	* src/c++17/Makefile.am: Use -mabi=ibmlongdouble for
    224 	floating_from_chars.cc.
    225 	* src/c++17/Makefile.in: Regenerate.
    226 	* src/c++17/floating_from_chars.cc (from_chars_impl): Add
    227 	if-constexpr branch for __ieee128.
    228 	(from_chars): Overload for __ieee128.
    229 	* src/c++20/Makefile.in: Regenerate.
    230 	* src/c++98/Makefile.in: Regenerate.
    231 	* src/c++98/locale_init.cc (num_facets): Adjust calculation.
    232 	(locale::_Impl::_Impl(size_t)): Call _M_init_extra_ldbl128.
    233 	* src/c++98/localename.cc (num_facets): Adjust calculation.
    234 	(locale::_Impl::_Impl(const char*, size_t)): Call
    235 	_M_init_extra_ldbl128.
    236 	* src/filesystem/Makefile.in: Regenerate.
    237 	* testsuite/Makefile.in: Regenerate.
    238 	* testsuite/util/testsuite_abi.cc: Add new symbol versions.
    239 	Allow new symbols to be added to GLIBCXX_IEEE128_3.4.29 and
    240 	CXXABI_IEEE128_1.3.13 too.
    241 	* testsuite/26_numerics/complex/abi_tag.cc: Add u9__ieee128 to
    242 	regex matching expected symbols.
    243 
    244 2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    245 
    246 	* include/std/utility: Use __has_builtin without checking if
    247 	it's defined.
    248 
    249 2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    250 
    251 	* include/bits/c++config: Warn if __STRICT_ANSI__ state is
    252 	inconsistent with __GLIBCXX_TYPE_INT_N_0.
    253 
    254 2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    255 
    256 	PR libstdc++/96083
    257 	* include/ext/throw_allocator.h: Use __has_builtin to check for
    258 	__builtin_sprintf support, and use std::sprintf if necessary.
    259 
    260 2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    261 
    262 	PR libstdc++/98319
    263 	* include/experimental/random: Only define contents for C++14
    264 	and later.
    265 	* include/experimental/source_location: Likewise.
    266 	* include/experimental/utility: Likewise.
    267 	* testsuite/experimental/feat-lib-fund.cc: Include all LFTS
    268 	headers that are present. Allow test to run for all modes.
    269 
    270 2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    271 
    272 	PR libstdc++/46447
    273 	* testsuite/performance/29_atomics/atomic_flag.cc: New test.
    274 
    275 2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    276 
    277 	PR libstdc++/93151
    278 	* acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Remove.
    279 	* configure.ac: Regenerate.
    280 	* config/os/generic/error_constants.h: Test POSIX errno macros
    281 	directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
    282 	* testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc:
    283 	Likewise.
    284 	* testsuite/19_diagnostics/headers/system_error/93151.cc: New
    285 	test.
    286 
    287 2020-12-15  Jonathan Wakely  <jwakely (a] redhat.com>
    288 
    289 	Revert:
    290 	2020-12-15  Jonathan Wakely  <jwakely (a] redhat.com>
    291 
    292 	PR libstdc++/98108
    293 	* include/std/iostream (__ioinit): Add init_priority attribute.
    294 
    295 2020-12-15  Keith Packard  <keithp (a] keithp.com>
    296 
    297 	* acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Allow "stdio_pure"
    298 	option and define _GLIBCXX_USE_PURE_STDIO when it is used. Also
    299 	add "stdio_posix" option as an alias for "stdio".
    300 	* config/io/basic_file_stdio.cc [_GLIBCXX_USE_PURE_STDIO]: Only
    301 	use defined stdio entry points for all I/O operations, without
    302 	direct calls to underlying POSIX functions.
    303 	* config.h.in: Regenerate.
    304 	* configure: Regenerate.
    305 
    306 2020-12-15  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
    307 
    308 	* testsuite/27_io/rvalue_streams.cc: Run the extraction to a char*
    309 	for C++17 and lower only.
    310 
    311 2020-12-15  Jonathan Wakely  <jwakely (a] redhat.com>
    312 
    313 	* testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc:
    314 	Add dg-timeout-factor directive.
    315 	* testsuite/ext/pb_ds/regression/tree_map_rand_debug.cc:
    316 	Increase timeout factor from 2.0 to 3.0.
    317 	* testsuite/ext/pb_ds/regression/tree_set_rand_debug.cc:
    318 	Likewise.
    319 	* testsuite/lib/libstdc++.exp (check_effective_target_debug-mode):
    320 	Define "debug-mode" as an effective-target keyword.
    321 
    322 2020-12-15  Jonathan Wakely  <jwakely (a] redhat.com>
    323 
    324 	* include/bits/c++config (__glibcxx_assert_1): Define as empty
    325 	for C++11.
    326 
    327 2020-12-15  Marius Hillenbrand  <mhillen (a] linux.ibm.com>
    328 
    329 	* testsuite/22_locale/locale/cons/5.cc: Add missing directives
    330 	for required locales.
    331 
    332 2020-12-15  Jonathan Wakely  <jwakely (a] redhat.com>
    333 
    334 	* include/bits/iterator_concepts.h (incrementable_traits<Tp>):
    335 	Remove workaround for PR c++/78173.
    336 
    337 2020-12-15  Vladimir Vishnevsky  <vv.os.swe (a] gmail.com>
    338 
    339 	* configure.ac: Skip AC_LIBTOOL_DLOPEN check if avr-libc is used.
    340 	* configure: Regenerate.
    341 
    342 2020-12-15  Jonathan Wakely  <jwakely (a] redhat.com>
    343 
    344 	PR libstdc++/98108
    345 	* include/std/iostream (__ioinit): Add init_priority attribute.
    346 
    347 2020-12-15  Gerald Pfeifer  <gerald (a] pfeifer.com>
    348 
    349 	* doc/xml/manual/codecvt.xml: Update link to Unicode-HOWTO.
    350 	* doc/html/manual/facets.html: Regenerate.
    351 
    352 2020-12-14  Franois Dumont  <fdumont (a] gcc.gnu.org>
    353 
    354 	* testsuite/23_containers/array/debug/back1_neg.cc: Target c++14 because assertion
    355 	is disabled in C++11.
    356 	* testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
    357 	* testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc: Likewise.
    358 
    359 2020-12-14  Martin Sebor  <msebor (a] redhat.com>
    360 
    361 	* testsuite/ext/vstring/requirements/exception/basic.cc: Suppress
    362 	a false positive warning.
    363 	* testsuite/ext/vstring/requirements/exception/propagation_consistent.cc:
    364 	  Same.
    365 
    366 2020-12-14  Franois Dumont  <fdumont (a] gcc.gnu.org>
    367 
    368 	* testsuite/23_containers/array/debug/back2_neg.cc: target c++14 because assertion
    369 	for constexpr is disabled in C++11.
    370 	* testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
    371 	* testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc: Likewise.
    372 	* testsuite/23_containers/vector/debug/multithreaded_swap.cc: Include <memory>
    373 	for shared_ptr.
    374 
    375 2020-12-12  Franois Dumont  <fdumont (a] gcc.gnu.org>
    376 
    377 	* include/debug/macros.h (__glibcxx_check_can_increment_range): Replace
    378 	_GLIBCXX_DEBUG_VERIFY_COND_AT usage with _GLIBCXX_DEBUG_VERIFY_AT_F.
    379 	(__glibcxx_check_can_decrement_range): Likewise.
    380 	* testsuite/25_algorithms/copy_backward/constexpr.cc (test03): New.
    381 	* testsuite/25_algorithms/copy/debug/constexpr_neg.cc: New test.
    382 	* testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: New test.
    383 	* testsuite/25_algorithms/equal/constexpr_neg.cc: New test.
    384 	* testsuite/25_algorithms/equal/debug/constexpr_neg.cc: New test.
    385 
    386 2020-12-10  Jonathan Wakely  <jwakely (a] redhat.com>
    387 
    388 	PR libstdc++/98226
    389 	* include/std/bit (__countl_one, __countr_one): Remove redundant
    390 	branches.
    391 
    392 2020-12-09  Jonathan Wakely  <jwakely (a] redhat.com>
    393 
    394 	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Define NO_SLEEP
    395 	if none of nanosleep, sleep and Sleep is available.
    396 	* config.h.in: Regenerate.
    397 	* configure: Regenerate.
    398 	* include/std/thread [_GLIBCXX_NO_SLEEP] (__sleep_for): Do
    399 	not declare.
    400 	[_GLIBCXX_NO_SLEEP] (sleep_for, sleep_until): Do not
    401 	define.
    402 	* src/c++11/thread.cc [_GLIBCXX_NO_SLEEP] (__sleep_for): Do
    403 	not define.
    404 
    405 2020-12-08  Jason Merrill  <jason (a] redhat.com>
    406 
    407 	PR c++/96299
    408 	* testsuite/18_support/comparisons/algorithms/partial_order.cc:
    409 	One more line needs to use VERIFY instead of static_assert.
    410 
    411 2020-12-08  Jonathan Wakely  <jwakely (a] redhat.com>
    412 
    413 	* doc/xml/manual/appendix_contributing.xml: Use consistent
    414 	indentation.
    415 	* doc/html/manual/source_code_style.html: Regenerate.
    416 
    417 2020-12-05  Iain Sandoe  <iain (a] sandoe.co.uk>
    418 
    419 	PR target/97865
    420 	* configure: Regenerate.
    421 
    422 2020-12-04  Jakub Jelinek  <jakub (a] redhat.com>
    423 
    424 	PR c++/80780
    425 	* testsuite/18_support/source_location/1.cc (main): Adjust for
    426 	__builtin_source_location using __PRETTY_FUNCTION__-like names instead
    427 	__FUNCTION__-like.
    428 	* testsuite/18_support/source_location/consteval.cc (main): Likewise.
    429 
    430 2020-12-03  Martin Sebor  <msebor (a] redhat.com>
    431 
    432 	* testsuite/ext/vstring/modifiers/clear/56166.cc: Suppress a false
    433 	positive warning.
    434 
    435 2020-12-03  Jonathan Wakely  <jwakely (a] redhat.com>
    436 
    437 	* testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Remove stray
    438 	word from copy&paste.
    439 	* testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
    440 
    441 2020-12-03  Jonathan Wakely  <jwakely (a] redhat.com>
    442 
    443 	* doc/xml/manual/status_cxx2020.xml: Update C++20 status.
    444 	* doc/html/*: Regenerate.
    445 
    446 2020-12-03  JeanHeyd Meneide  <phdofthehouse (a] gmail.com>
    447 
    448 	* doc/doxygen/user.cfg.in (INPUT): Add <source_location>.
    449 	* include/Makefile.am: Add <source_location>.
    450 	* include/Makefile.in: Regenerate.
    451 	* include/std/version (__cpp_lib_source_location): Define.
    452 	* include/std/source_location: New file.
    453 	* testsuite/18_support/source_location/1.cc: New test.
    454 	* testsuite/18_support/source_location/consteval.cc: New test.
    455 	* testsuite/18_support/source_location/srcloc.h: New test.
    456 	* testsuite/18_support/source_location/version.cc: New test.
    457 
    458 2020-12-03  Jonathan Wakely  <jwakely (a] redhat.com>
    459 
    460 	PR libstdc++/93121
    461 	* include/std/bit (__cpp_lib_bit_cast, bit_cast): Define.
    462 	* include/std/version (__cpp_lib_bit_cast): Define.
    463 	* testsuite/26_numerics/bit/bit.cast/bit_cast.cc: New test.
    464 	* testsuite/26_numerics/bit/bit.cast/version.cc: New test.
    465 
    466 2020-12-03  Jonathan Wakely  <jwakely (a] redhat.com>
    467 
    468 	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt:
    469 	Update.
    470 	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
    471 	Update.
    472 
    473 2020-12-03  Jonathan Wakely  <jwakely (a] redhat.com>
    474 
    475 	* include/std/array (array::operator[](size_t) const, array::front() const)
    476 	(array::back() const) [__cplusplus == 201103]: Disable
    477 	assertions.
    478 	* testsuite/23_containers/array/element_access/constexpr_element_access.cc:
    479 	Check for correct values.
    480 	* testsuite/23_containers/array/tuple_interface/get_neg.cc:
    481 	Adjust dg-error line numbers.
    482 	* testsuite/23_containers/array/debug/constexpr_c++11.cc: New test.
    483 
    484 2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
    485 
    486 	PR libstdc++/65480
    487 	PR libstdc++/68735
    488 	* python/libstdcxx/v6/printers.py (function_pointer_to_name):
    489 	New helper function to get the name of a function from its
    490 	address.
    491 	(StdExpAnyPrinter.__init__): Use it.
    492 
    493 2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
    494 
    495 	* testsuite/lib/dg-options.exp (add_options_for_libatomic):
    496 	Replace powerpc-ibm-aix* and powerpc*-*-darwin* with check for
    497 	powerpc && ilp32.
    498 
    499 2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
    500 
    501 	* testsuite/27_io/basic_istream/ignore/char/94749.cc: Add
    502 	dg-timeout-factor for ilp32 targets.
    503 	* testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc:
    504 	Likewise.
    505 
    506 2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
    507 
    508 	* include/ext/rope (rope::_S_concat_char_iter)
    509 	(rope::_S_destr_concat_char_iter): Add allocator parameter.
    510 	(rope::push_back, rope::append, rope::insert, operator+):
    511 	Pass allocator.
    512 	* include/ext/ropeimpl.h (rope::_S_concat_char_iter)
    513 	(rope::_S_destr_concat_char_iter): Add allocator parameter
    514 	and use it.
    515 	(_Rope_char_ref_proxy::operator=(_CharT)): Pass allocator.
    516 
    517 2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
    518 
    519 	* include/ext/rope: Fix indentation of access specifiers.
    520 
    521 2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
    522 
    523 	* include/bits/atomic_timed_wait.h: Use #if instead of #ifdef.
    524 	* include/bits/semaphore_base.h: Likewise.
    525 	* include/std/version: Remove trailing whitespace.
    526 
    527 2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
    528 
    529 	* python/libstdcxx/v6/printers.py (StdExpPathPrinter): Store the
    530 	name of the type and pass it to the iterator.
    531 	(StdPathPrinter): Likewise.
    532 	* testsuite/libstdc++-prettyprinters/filesystem-ts.cc: New test.
    533 
    534 2020-12-01  Thomas Rodgers  <trodgers (a] redhat.com>
    535 
    536 	* include/bits/atomic_base.h: Replace usage of
    537 	_GLIBCXX_HAVE_ATOMIC_WAIT with __cpp_lib_atomic_wait.
    538 	* include/bits/atomic_timed_wait.h: Likewise.
    539 	* include/bits/atomic_wait.h: Define __cpp_lib_atomic_wait
    540 	feature test macro.
    541 	* include/bits/semaphore_base.h: Replace usage of
    542 	_GLIBCXX_HAVE_ATOMIC_WAIT with __cpp_lib_atomic_wait.
    543 	* include/std/atomic: Likewise.
    544 	* include/std/latch: Likewise.
    545 	* include/std/semaphore: Likewise.
    546 	* include/std/version: Define __cpp_lib_atomic wait
    547 	feature test macro and replace usage of
    548 	_GLIBCXX_HAVE_ATOMIC_WAIT.
    549 	* testsuite/29_atomics/atomic/wait_notify/1.cc: New test.
    550 	* testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
    551 
    552 2020-12-01  Michael Weghorn  <m.weghorn (a] posteo.de>
    553 
    554 	* python/libstdcxx/v6/printers.py (StdBitIteratorPrinter)
    555 	(StdBitReferencePrinter): Add pretty-printers for
    556 	_Bit_reference, _Bit_iterator and _Bit_const_iterator.
    557 	* testsuite/libstdc++-prettyprinters/simple.cc: Test
    558 	std::_Bit_reference, std::_Bit_iterator and
    559 	std::_Bit_const_iterator.
    560 	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
    561 
    562 2020-12-01  Jonathan Wakely  <jwakely (a] redhat.com>
    563 
    564 	* include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Define macro to
    565 	work around different implementations of __has_builtin.
    566 	(_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
    567 	(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE)
    568 	(_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED)
    569 	(_GLIBCXX_HAVE_BUILTIN_IS_SAME, _GLIBCXX_HAVE_BUILTIN_LAUNDER):
    570 	Define using _GLIBCXX_HAS_BUILTIN.
    571 
    572 2020-12-01  Jonathan Wakely  <jwakely (a] redhat.com>
    573 
    574 	* testsuite/27_io/basic_istream/get/char/lwg3464.cc: Add
    575 	dg-timeout-factor directive.
    576 	* testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc:
    577 	Likewise.
    578 
    579 2020-12-01  Jonathan Wakely  <jwakely (a] redhat.com>
    580 
    581 	PR libstdc++/98003
    582 	* testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Add options for
    583 	libatomic.
    584 
    585 2020-11-30  Jonathan Wakely  <jwakely (a] redhat.com>
    586 
    587 	* doc/doxygen/user.cfg.in (INPUT): Add <latch> and <semaphore>.
    588 
    589 2020-11-30  Jonathan Wakely  <jwakely (a] redhat.com>
    590 
    591 	* testsuite/lib/libstdc++.exp (libstdc++_init): Reduce
    592 	default tool_timeout to 360.
    593 
    594 2020-11-30  Jonathan Wakely  <jwakely (a] redhat.com>
    595 
    596 	* testsuite/20_util/specialized_algorithms/pstl/*: Add
    597 	dg-timeout-factor.
    598 	* testsuite/25_algorithms/pstl/*: Likewise.
    599 	* testsuite/26_numerics/pstl/*: Likewise.
    600 	* testsuite/28_regex/*: Likewise.
    601 
    602 2020-11-29  John David Anglin  <danglin (a] gcc.gnu.org>
    603 
    604 	* configure: Regenerate.
    605 
    606 2020-11-27  Jonathan Wakely  <jwakely (a] redhat.com>
    607 
    608 	* testsuite/lib/libstdc++.exp (v3_try_preprocess): Define
    609 	new proc to preprocess a chunk of code.
    610 	(v3_check_preprocessor_condition): Define new proc to test
    611 	a preprocessor condition depending on GCC or libstdc++ macros.
    612 	(check_v3_target_debug_mode, check_v3_target_normal_mode):
    613 	Use v3_try_preprocess.
    614 	(check_v3_target_normal_namespace)
    615 	(check_v3_target_parallel_mode, check_v3_target_cstdint)
    616 	(check_v3_target_cmath, check_v3_target_atomic_builtins)
    617 	(check_v3_target_gthreads, check_v3_target_gthreads_timed)
    618 	(check_v3_target_sleep, check_v3_target_sched_yield)
    619 	(check_v3_target_string_conversions, check_v3_target_swprintf)
    620 	(check_v3_target_binary_io, check_v3_target_nprocs): Use
    621 	v3_check_preprocessor_condition.
    622 	(check_effective_target_cxx11): Likewise.
    623 	(check_effective_target_random_device): Likewise.
    624 	(check_effective_target_tbb-backend): Likewise.
    625 	(check_effective_target_futex): Likewise.
    626 	(check_v3_target_little_endian) Call check_effective_target_le.
    627 	(check_effective_target_atomic-builtins): New proc to define
    628 	new effective-target keyword.
    629 	(check_effective_target_gthreads-timed): Likewise.
    630 
    631 2020-11-27  Jonathan Wakely  <jwakely (a] redhat.com>
    632 
    633 	* testsuite/27_io/filesystem/operations/absolute.cc: Avoid
    634 	-Wrange-loop-construct warning.
    635 	* testsuite/27_io/filesystem/path/append/source.cc: Likewise.
    636 	* testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
    637 	* testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
    638 	* testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
    639 	* testsuite/27_io/filesystem/path/decompose/extension.cc:
    640 	Likewise.
    641 	* testsuite/27_io/filesystem/path/decompose/filename.cc:
    642 	Likewise.
    643 	* testsuite/27_io/filesystem/path/decompose/parent_path.cc:
    644 	Likewise.
    645 	* testsuite/27_io/filesystem/path/decompose/relative_path.cc:
    646 	Likewise.
    647 	* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
    648 	Likewise.
    649 	* testsuite/27_io/filesystem/path/decompose/root_path.cc:
    650 	Likewise.
    651 	* testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
    652 	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
    653 	Likewise.
    654 	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
    655 	Likewise.
    656 	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
    657 	Likewise.
    658 	* testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
    659 	* testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
    660 	* testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
    661 	Likewise.
    662 	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
    663 	Likewise.
    664 	* testsuite/27_io/filesystem/path/query/has_extension.cc:
    665 	Likewise.
    666 	* testsuite/27_io/filesystem/path/query/has_filename.cc:
    667 	Likewise.
    668 	* testsuite/27_io/filesystem/path/query/has_parent_path.cc:
    669 	Likewise.
    670 	* testsuite/27_io/filesystem/path/query/has_relative_path.cc:
    671 	Likewise.
    672 	* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
    673 	Likewise.
    674 	* testsuite/27_io/filesystem/path/query/has_root_name.cc:
    675 	Likewise.
    676 	* testsuite/27_io/filesystem/path/query/has_root_path.cc:
    677 	Likewise.
    678 	* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
    679 	* testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
    680 	* testsuite/experimental/filesystem/operations/absolute.cc:
    681 	Likewise.
    682 	* testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
    683 	* testsuite/experimental/filesystem/path/compare/path.cc:
    684 	Likewise.
    685 	* testsuite/experimental/filesystem/path/construct/copy.cc:
    686 	Likewise.
    687 	* testsuite/experimental/filesystem/path/decompose/extension.cc:
    688 	Likewise.
    689 	* testsuite/experimental/filesystem/path/decompose/filename.cc:
    690 	Likewise.
    691 	* testsuite/experimental/filesystem/path/decompose/parent_path.cc:
    692 	Likewise.
    693 	* testsuite/experimental/filesystem/path/decompose/relative_path.cc:
    694 	Likewise.
    695 	* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
    696 	Likewise.
    697 	* testsuite/experimental/filesystem/path/decompose/root_path.cc:
    698 	Likewise.
    699 	* testsuite/experimental/filesystem/path/itr/traversal.cc:
    700 	Likewise.
    701 	* testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
    702 	Likewise.
    703 	* testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
    704 	Likewise.
    705 	* testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
    706 	Likewise.
    707 	* testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
    708 	Likewise.
    709 	* testsuite/experimental/filesystem/path/query/has_extension.cc:
    710 	Likewise.
    711 	* testsuite/experimental/filesystem/path/query/has_filename.cc:
    712 	Likewise.
    713 	* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
    714 	Likewise.
    715 	* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
    716 	Likewise.
    717 	* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
    718 	Likewise.
    719 	* testsuite/experimental/filesystem/path/query/has_root_name.cc:
    720 	Likewise.
    721 	* testsuite/experimental/filesystem/path/query/has_root_path.cc:
    722 	Likewise.
    723 	* testsuite/experimental/filesystem/path/query/has_stem.cc:
    724 	Likewise.
    725 	* testsuite/experimental/filesystem/path/query/is_relative.cc:
    726 	Likewise.
    727 
    728 2020-11-27  Jonathan Wakely  <jwakely (a] redhat.com>
    729 
    730 	* src/c++98/locale.cc (locale::facet::_S_get_c_locale()):
    731 	Revert change to use __is_single_threaded.
    732 	* src/c++98/locale_init.cc (locale::_S_initialize()):
    733 	Likewise.
    734 
    735 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    736 
    737 	* include/bits/atomic_wait.h (_GLIBCXX_HAVE_ATOMIC_WAIT):
    738 	Define.
    739 	* include/bits/atomic_base.h: Check _GLIBCXX_HAVE_ATOMIC_WAIT.
    740 	* include/bits/atomic_timed_wait.h: Likewise.
    741 	* include/bits/semaphore_base.h: Likewise.
    742 	* include/std/atomic: Likewise.
    743 	* include/std/latch: Likewise.
    744 	* include/std/semaphore: Likewise.
    745 
    746 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    747 
    748 	* include/std/latch: Depend on _GLIBCXX_HAS_GTHREADS and
    749 	_GLIBCXX_HAVE_LINUX_FUTEX.
    750 	* include/std/version (__cpp_lib_latch): Define conditionally.
    751 
    752 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    753 
    754 	* testsuite/lib/libstdc++.exp (check_effective_target_gthreads):
    755 	Call check_v3_target_gthreads not check_v3_target_gthreads_timed.
    756 
    757 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    758 
    759 	* testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc:
    760 	Add dg-timeout-factor directive.
    761 	* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
    762 	Likewise.
    763 	* testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc:
    764 	Likewise.
    765 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc:
    766 	Likewise.
    767 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc:
    768 	Likewise.
    769 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc:
    770 	Likewise.
    771 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc:
    772 	Likewise.
    773 	* testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
    774 	Likewise.
    775 	* testsuite/28_regex/algorithms/regex_search/61720.cc: Likewise.
    776 	* testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc:
    777 	Likewise.
    778 	* testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc:
    779 	Likewise.
    780 	* testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
    781 
    782 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    783 
    784 	* testsuite/lib/libstdc++.exp (libstdc++_init): Only set
    785 	tool_timeout if it hasn't been set by the user already.
    786 
    787 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    788 
    789 	PR libstdc++/97936
    790 	* testsuite/29_atomics/atomic/wait_notify/bool.cc: Fix missed
    791 	notifications by making the new thread wait until the parent
    792 	thread is waiting on the condition variable.
    793 	* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
    794 	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
    795 	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
    796 
    797 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    798 
    799 	* testsuite/18_support/96817.cc: Use new effective-target
    800 	keywords to select supported targets more effectively.
    801 	* testsuite/30_threads/call_once/66146.cc: Likewise.
    802 	* testsuite/lib/libstdc++.exp (check_effective_target_futex):
    803 	Define new proc.
    804 	(check_effective_target_gthreads): Define new proc to replace
    805 	dg-require-gthreads.
    806 
    807 2020-11-26  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
    808 
    809 	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Remove libposix4
    810 	references.
    811 	<solaris*>: Don't use -lrt any longer.
    812 	* configure: Regenerate.
    813 	* doc/xml/manual/configure.xml (--enable-libstdcxx-time=OPTION):
    814 	Remove libposix4 reference.
    815 
    816 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    817 
    818 	PR libstdc++/98001
    819 	* testsuite/ext/stdio_filebuf/char/79820.cc: Do not pass invalid
    820 	FILE* to constructor.
    821 
    822 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    823 
    824 	* include/precompiled/stdc++.h: Add new headers.
    825 	* include/std/stop_token: Include <semaphore> unconditionally.
    826 
    827 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    828 
    829 	* include/bits/atomic_timed_wait.h (__cond_wait_until): Do not
    830 	perform redundant conversions to the same clock.
    831 
    832 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    833 
    834 	* include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
    835 	Do not define when _GLIBCXX_HAVE_LINUX_FUTEX is defined. Use
    836 	__condvar and mutex instead of __gthread_cond_t and
    837 	unique_lock<mutex>.
    838 	(__cond_wait_until): Likewise. Fix test for return value of
    839 	__cond_wait_until_impl.
    840 	(__timed_waiters::_M_do_wait_until): Use __condvar instead
    841 	of __gthread_cond_t.
    842 	* include/bits/atomic_wait.h: Remove <bits/unique_lock.h>
    843 	include. Only include <bits/std_mutex.h> if not using futexes.
    844 	(__platform_wait_max_value): Remove unused variable.
    845 	(__waiters::lock_t): Use lock_guard instead of unique_lock.
    846 	(__waiters::_M_cv): Use __condvar instead of __gthread_cond_t.
    847 	(__waiters::_M_do_wait(__platform_wait_t)): Likewise.
    848 	(__waiters::_M_notify()): Likewise. Use notify_one() if not
    849 	asked to notify all.
    850 	* include/bits/std_mutex.h (__condvar): New type.
    851 	* include/std/condition_variable (condition_variable::_M_cond)
    852 	(condition_variable::wait_until): Use __condvar instead of
    853 	__gthread_cond_t.
    854 	* src/c++11/condition_variable.cc (condition_variable): Define
    855 	default constructor and destructor as defaulted.
    856 	(condition_variable::wait, condition_variable::notify_one)
    857 	(condition_variable::notify_all): Forward to corresponding
    858 	member function of __condvar.
    859 
    860 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    861 
    862 	PR libstdc++/97936
    863 	* testsuite/29_atomics/atomic/wait_notify/bool.cc: Re-eneable
    864 	test.
    865 	* testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
    866 	* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
    867 	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
    868 	* testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
    869 	* testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
    870 	* testsuite/util/atomic/wait_notify_util.h: Fix missed
    871 	notifications by making the new thread wait until the parent
    872 	thread is waiting on the condition variable.
    873 
    874 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    875 
    876 	PR libstdc++/97935
    877 	* include/bits/iterator_concepts.h (__detail::__iter_without_category):
    878 	New helper concept.
    879 	(__iterator_traits::__cat): Use __detail::__iter_without_category.
    880 	* testsuite/24_iterators/associated_types/iterator.traits.cc: New test.
    881 
    882 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    883 
    884 	* testsuite/17_intro/names.cc: Do not test 'v' on AIX.
    885 
    886 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    887 
    888 	PR libstdc++/97936
    889 	* include/bits/atomic_wait.h (__platform_wait): Check errno,
    890 	not just the value of EAGAIN.
    891 	(__waiters::__waiters()): Fix name of data member.
    892 
    893 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    894 
    895 	PR libstdc++/97936
    896 	* include/bits/atomic_wait.h (__platform_wait): Return if futex
    897 	sets EAGAIN.
    898 	* testsuite/30_threads/latch/3.cc: Re-enable test.
    899 	* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
    900 
    901 2020-11-24  Jonathan Wakely  <jwakely (a] redhat.com>
    902 
    903 	PR libstdc++/97936
    904 	PR libstdc++/97944
    905 	* testsuite/29_atomics/atomic_integral/wait_notify.cc: Disable.
    906 	Do not require pthreads, but add -pthread when appropriate.
    907 	* testsuite/30_threads/jthread/95989.cc: Likewise.
    908 	* testsuite/30_threads/latch/3.cc: Likewise.
    909 	* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
    910 
    911 2020-11-24  Jonathan Wakely  <jwakely (a] redhat.com>
    912 
    913 	* testsuite/30_threads/jthread/95989.cc: Run all three test
    914 	functions, not just the first one twice.
    915 
    916 2020-11-24  Jonathan Wakely  <jwakely (a] redhat.com>
    917 
    918 	PR libstdc++/67791
    919 	* src/c++11/thread.cc (thread::_M_start_thread(_State_ptr, void (*)())):
    920 	Check that gthreads is available before calling __gthread_create.
    921 
    922 2020-11-24  Jonathan Wakely  <jwakely (a] redhat.com>
    923 
    924 	* src/c++98/locale.cc (locale::facet::_S_get_c_locale())
    925 	(locale::id::_M_id() const): Use __is_single_threaded.
    926 	* src/c++98/locale_init.cc (locale::_S_initialize()):
    927 	Likewise.
    928 
    929 2020-11-23  Jonathan Wakely  <jwakely (a] redhat.com>
    930 
    931 	* include/bits/semaphore_base.h
    932 	(__platform_semaphore::_M_try_acquire_until): Fix type of
    933 	variable.
    934 
    935 2020-11-23  Stephan Bergmann  <sbergman (a] redhat.com>
    936 
    937 	* include/bits/atomic_wait.h (__thread_relax, __thread_yield):
    938 	Add 'inline'.
    939 
    940 2020-11-23  Jonathan Wakely  <jwakely (a] redhat.com>
    941 
    942 	* acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for
    943 	* config.h.in: Regenerate.
    944 	* configure: Regenerate.
    945 	* include/bits/semaphore_base.h (_GLIBCXX_HAVE_POSIX_SEMAPHORE):
    946 	Check autoconf macro instead of defining it here.
    947 
    948 2020-11-23  Jonathan Wakely  <jwakely (a] redhat.com>
    949 
    950 	* include/bits/atomic_wait.h: Do not define anything unless
    951 	gthreads or futexes are available.
    952 	* include/bits/atomic_timed_wait.h: Likewise.
    953 	* include/bits/semaphore_base.h: Likewise.
    954 	* include/std/semaphore: Likewise.
    955 	* include/bits/atomic_base.h (atomic_flag::wait)
    956 	(atomic_flag::notify_one, atomic_flag::notify_all)
    957 	(__atomic_base<I>::wait, __atomic_base<I>::notify_one)
    958 	(__atomic_base<I>::notify_all, __atomic_base<P*>::wait)
    959 	(__atomic_base<P*>::notify_one, __atomic_base<P*>::notify_all)
    960 	(__atomic_impl::wait, __atomic_impl::notify_one)
    961 	(__atomic_impl::notify_all, __atomic_float::wait)
    962 	(__atomic_float::notify_one, __atomic_float::notify_all)
    963 	(__atomic_ref::wait, __atomic_ref::notify_one)
    964 	(__atomic_ref::notify_all): Only define if gthreads or futexes
    965 	are available.
    966 	* include/std/atomic (atomic::wait, atomic::notify_one)
    967 	(atomic::notify_all): Likewise.
    968 	* include/std/version (__cpp_lib_semaphore): Define
    969 	conditionally.
    970 
    971 2020-11-23  Jonathan Wakely  <jwakely (a] redhat.com>
    972 
    973 	PR libstdc++/97948
    974 	* testsuite/29_atomics/atomic_float/wait_notify.cc: Add options
    975 	for libatomic.
    976 	* testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
    977 	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
    978 
    979 2020-11-21  Jonathan Wakely  <jwakely (a] redhat.com>
    980 
    981 	* include/bits/atomic_base.h (atomic_flag::wait): Use correct
    982 	type for __atomic_wait call.
    983 	* include/bits/atomic_timed_wait.h (__atomic_wait_until): Check
    984 	_GLIBCXX_HAVE_LINUX_FUTEX.
    985 	* include/bits/atomic_wait.h (__atomic_notify): Likewise.
    986 	* include/bits/semaphore_base.h (_GLIBCXX_HAVE_POSIX_SEMAPHORE):
    987 	Only define if SEM_VALUE_MAX or _POSIX_SEM_VALUE_MAX is defined.
    988 	* testsuite/29_atomics/atomic/wait_notify/bool.cc: Disable on
    989 	non-linux targes.
    990 	* testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
    991 	* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
    992 	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
    993 	* testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
    994 
    995 2020-11-20  Thomas Rodgers  <trodgers (a] redhat.com>
    996 
    997 	* include/Makefile.am (bits_headers): Add new header.
    998 	* include/Makefile.in: Regenerate.
    999 	* include/bits/atomic_base.h (__atomic_flag::wait): Define.
   1000 	(__atomic_flag::notify_one): Likewise.
   1001 	(__atomic_flag::notify_all): Likewise.
   1002 	(__atomic_base<_Itp>::wait): Likewise.
   1003 	(__atomic_base<_Itp>::notify_one): Likewise.
   1004 	(__atomic_base<_Itp>::notify_all): Likewise.
   1005 	(__atomic_base<_Ptp*>::wait): Likewise.
   1006 	(__atomic_base<_Ptp*>::notify_one): Likewise.
   1007 	(__atomic_base<_Ptp*>::notify_all): Likewise.
   1008 	(__atomic_impl::wait): Likewise.
   1009 	(__atomic_impl::notify_one): Likewise.
   1010 	(__atomic_impl::notify_all): Likewise.
   1011 	(__atomic_float<_Fp>::wait): Likewise.
   1012 	(__atomic_float<_Fp>::notify_one): Likewise.
   1013 	(__atomic_float<_Fp>::notify_all): Likewise.
   1014 	(__atomic_ref<_Tp>::wait): Likewise.
   1015 	(__atomic_ref<_Tp>::notify_one): Likewise.
   1016 	(__atomic_ref<_Tp>::notify_all): Likewise.
   1017 	(atomic_wait<_Tp>): Likewise.
   1018 	(atomic_wait_explicit<_Tp>): Likewise.
   1019 	(atomic_notify_one<_Tp>): Likewise.
   1020 	(atomic_notify_all<_Tp>): Likewise.
   1021 	* include/bits/atomic_wait.h: New file.
   1022 	* include/bits/atomic_timed_wait.h: New file.
   1023 	* include/bits/semaphore_base.h: New file.
   1024 	* include/std/atomic (atomic<bool>::wait): Define.
   1025 	(atomic<bool>::wait_one): Likewise.
   1026 	(atomic<bool>::wait_all): Likewise.
   1027 	(atomic<_Tp>::wait): Likewise.
   1028 	(atomic<_Tp>::wait_one): Likewise.
   1029 	(atomic<_Tp>::wait_all): Likewise.
   1030 	(atomic<_Tp*>::wait): Likewise.
   1031 	(atomic<_Tp*>::wait_one): Likewise.
   1032 	(atomic<_Tp*>::wait_all): Likewise.
   1033 	* include/std/latch: New file.
   1034 	* include/std/semaphore: New file.
   1035 	* include/std/version: Add __cpp_lib_semaphore and
   1036 	__cpp_lib_latch defines.
   1037 	* testsuite/29_atomics/atomic/wait_notify/bool.cc: New test.
   1038 	* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
   1039 	* testsuite/29_atomics/atomic/wait_notify/generic.cc: Liekwise.
   1040 	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
   1041 	* testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
   1042 	* testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
   1043 	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
   1044 	* testsuite/30_threads/semaphore/1.cc: New test.
   1045 	* testsuite/30_threads/semaphore/2.cc: Likewise.
   1046 	* testsuite/30_threads/semaphore/least_max_value_neg.cc: Likewise.
   1047 	* testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
   1048 	* testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
   1049 	* testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
   1050 	* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
   1051 	* testsuite/30_threads/latch/1.cc: New test.
   1052 	* testsuite/30_threads/latch/2.cc: New test.
   1053 	* testsuite/30_threads/latch/3.cc: New test.
   1054 	* testsuite/util/atomic/wait_notify_util.h: New File.
   1055 
   1056 2020-11-20  Franois Dumont  <fdumont (a] gcc.gnu.org>
   1057 
   1058 	PR libstdc++/83938
   1059 	* include/bits/stl_tempbuf.h (get_temporary_buffer): Change __len
   1060 	computation in the loop to avoid truncation.
   1061 	* include/bits/stl_algo.h:
   1062 	(__inplace_merge): Take temporary buffer length from smallest range.
   1063 	(__stable_sort): Limit temporary buffer length.
   1064 	* testsuite/25_algorithms/inplace_merge/1.cc (test4): New.
   1065 	* testsuite/performance/25_algorithms/stable_sort.cc: Test stable_sort
   1066 	under different heap memory conditions.
   1067 	* testsuite/performance/25_algorithms/inplace_merge.cc: New test.
   1068 
   1069 2020-11-20  Franois Dumont  <fdumont (a] gcc.gnu.org>
   1070 
   1071 	* include/bits/move.h (_GLIBCXX_FWDREF): New.
   1072 	* include/bits/stl_tree.h: Adapt to use latter.
   1073 	(_Rb_tree<>::_M_clone_node): Add _MoveValue template parameter.
   1074 	(_Rb_tree<>::_M_mbegin): New.
   1075 	(_Rb_tree<>::_M_begin): Use latter.
   1076 	(_Rb_tree<>::_M_copy): Add _MoveValues template parameter.
   1077 	* testsuite/23_containers/map/allocator/move_cons.cc: New test.
   1078 	* testsuite/23_containers/multimap/allocator/move_cons.cc: New test.
   1079 	* testsuite/23_containers/multiset/allocator/move_cons.cc: New test.
   1080 	* testsuite/23_containers/set/allocator/move_cons.cc: New test.
   1081 
   1082 2020-11-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1083 
   1084 	PR libstdc++/92546
   1085 	* include/std/regex (pmr::smatch, pmr::wsmatch): Declare using
   1086 	underlying __normal_iterator type, not nested typedef
   1087 	basic_string::const_iterator.
   1088 
   1089 2020-11-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1090 
   1091 	PR libstdc++/95989
   1092 	* config/os/gnu-linux/os_defines.h (_GLIBCXX_NATIVE_THREAD_ID):
   1093 	Define new macro to get reliable thread ID.
   1094 	* include/bits/std_thread.h: (this_thread::get_id): Use new
   1095 	macro if it's defined.
   1096 	* testsuite/30_threads/jthread/95989.cc: New test.
   1097 	* testsuite/30_threads/this_thread/95989.cc: New test.
   1098 
   1099 2020-11-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1100 
   1101 	* testsuite/30_threads/async/async.cc: Include <thread>.
   1102 	* testsuite/30_threads/future/members/93456.cc: Likewise.
   1103 
   1104 2020-11-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1105 
   1106 	PR libstdc++/92546
   1107 	* include/Makefile.am: Add new <bits/std_thread.h> header.
   1108 	* include/Makefile.in: Regenerate.
   1109 	* include/std/future: Include new header instead of <thread>.
   1110 	* include/std/stop_token: Include new header instead of
   1111 	<bits/gthr.h>.
   1112 	(stop_token::_S_yield()): Use this_thread::yield().
   1113 	(_Stop_state_t::_M_requester): Change type to std::thread::id.
   1114 	(_Stop_state_t::_M_request_stop()): Use this_thread::get_id().
   1115 	(_Stop_state_t::_M_remove_callback(_Stop_cb*)): Likewise.
   1116 	Use __is_single_threaded() to decide whether to synchronize.
   1117 	* include/std/thread (thread, operator==, this_thread::get_id)
   1118 	(this_thread::yield): Move to new header.
   1119 	(operator<=>, operator!=, operator<, operator<=, operator>)
   1120 	(operator>=, hash<thread::id>, operator<<): Define even when
   1121 	gthreads not available.
   1122 	* src/c++11/thread.cc: Include <memory>.
   1123 	* include/bits/std_thread.h: New file.
   1124 	(thread, operator==, this_thread::get_id, this_thread::yield):
   1125 	Define even when gthreads not available.
   1126 	[!_GLIBCXX_HAS_GTHREADS] (thread::join, thread::detach)
   1127 	(thread::hardware_concurrency): Define inline.
   1128 
   1129 2020-11-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1130 
   1131 	PR libstdc++/93421
   1132 	PR libstdc++/93456
   1133 	* src/c++11/futex.cc (syscall_time_t): New typedef for
   1134 	the type of the syscall_timespec::tv_sec member.
   1135 	(relative_timespec, _M_futex_wait_until)
   1136 	(_M_futex_wait_until_steady): Use syscall_time_t in overflow
   1137 	checks, not time_t.
   1138 
   1139 2020-11-18  Patrick Palka  <ppalka (a] redhat.com>
   1140 
   1141 	* include/std/ranges (join_view::_Iterator::_M_satisfy): Uglify
   1142 	local variable inner.
   1143 	(join_view::_Iterator::operator->): Use _Inner_iter instead of
   1144 	_Outer_iter in the function signature as per LWG 3500.
   1145 	* testsuite/std/ranges/adaptors/join.cc (test08): Test it.
   1146 
   1147 2020-11-17  Jonathan Wakely  <jwakely (a] redhat.com>
   1148 
   1149 	PR libstdc++/93421
   1150 	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Fail if struct
   1151 	timespec isn't compatible with SYS_clock_gettime.
   1152 	* configure: Regenerate.
   1153 	* src/c++11/chrono.cc: Revert changes for time64 compatibility.
   1154 	Add static_assert instead.
   1155 	* src/c++11/futex.cc (_M_futex_wait_until_steady): Assume
   1156 	SYS_clock_gettime can use struct timespec.
   1157 
   1158 2020-11-17  Jonathan Wakely  <jwakely (a] redhat.com>
   1159 
   1160 	PR libstdc++/97869
   1161 	* include/precompiled/stdc++.h: Include <coroutine>.
   1162 	* include/std/version (__cpp_lib_span): Check __cpp_lib_concepts
   1163 	before defining.
   1164 
   1165 2020-11-17  Patrick Palka  <ppalka (a] redhat.com>
   1166 
   1167 	PR libstdc++/97828
   1168 	* include/bits/ranges_algo.h (__search_n_fn::operator()): Check
   1169 	random_access_iterator before using the backtracking
   1170 	implementation.  When the backwards scan fails prematurely,
   1171 	reset __remainder appropriately.
   1172 	* testsuite/25_algorithms/search_n/97828.cc: New test.
   1173 
   1174 2020-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
   1175 
   1176 	* src/Makefile.am (libstdc++-symbols.ver-sun): Remove -lrt from
   1177 	arguments passed to make_sunver.pl script.
   1178 	* src/Makefile.in: Regenerate.
   1179 
   1180 2020-11-15  Jason Merrill  <jason (a] redhat.com>
   1181 
   1182 	* testsuite/20_util/result_of/sfinae_friendly_1.cc: Adjust.
   1183 
   1184 2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1185 
   1186 	PR libstdc++/93421
   1187 	* src/c++11/chrono.cc [_GLIBCXX_USE_CLOCK_GETTIME_SYSCALL]
   1188 	(syscall_timespec): Define a type suitable for SYS_clock_gettime
   1189 	calls.
   1190 	(system_clock::now(), steady_clock::now()): Use syscall_timespec
   1191 	instead of timespec.
   1192 	* src/c++11/futex.cc (syscall_timespec): Define a type suitable
   1193 	for SYS_futex and SYS_clock_gettime calls.
   1194 	(relative_timespec): Use syscall_timespec instead of timespec.
   1195 	(__atomic_futex_unsigned_base::_M_futex_wait_until): Likewise.
   1196 	(__atomic_futex_unsigned_base::_M_futex_wait_until_steady):
   1197 	Likewise.
   1198 
   1199 2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1200 
   1201 	PR libstdc++/93456
   1202 	* src/c++11/futex.cc (relative_timespec): Remove redundant check
   1203 	negative values.
   1204 	* testsuite/30_threads/future/members/wait_until_overflow.cc: Moved to...
   1205 	* testsuite/30_threads/future/members/93456.cc: ...here.
   1206 
   1207 2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1208 
   1209 	* src/c++11/futex.cc (relative_timespec): Add [[unlikely]]
   1210 	attributes.
   1211 	(__atomic_futex_unsigned_base::_M_futex_wait_until)
   1212 	(__atomic_futex_unsigned_base::_M_futex_wait_until_steady):
   1213 	Check for overflow.
   1214 	* testsuite/30_threads/future/members/wait_until_overflow.cc:
   1215 	New test.
   1216 
   1217 2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1218 
   1219 	* src/c++11/futex.cc (relative_timespec): New function to
   1220 	create relative time from two absolute times.
   1221 	(__atomic_futex_unsigned_base::_M_futex_wait_until)
   1222 	(__atomic_futex_unsigned_base::_M_futex_wait_until_steady):
   1223 	Use relative_timespec.
   1224 
   1225 2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1226 
   1227 	* testsuite/30_threads/future/members/poll.cc: Require gthreads
   1228 	and add -pthread for targets that require it. Relax required
   1229 	ratio of wait_for calls before/after the future is ready.
   1230 
   1231 2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1232 
   1233 	* include/std/future (future::wait_for): Do not wait for
   1234 	durations less than or equal to zero.
   1235 	* src/c++11/futex.cc (_M_futex_wait_until)
   1236 	(_M_futex_wait_until_steady): Do not wait for timeouts before
   1237 	the epoch.
   1238 	* testsuite/30_threads/future/members/poll.cc: New test.
   1239 
   1240 2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1241 
   1242 	* include/ext/numeric_traits.h (__numeric_traits): Change
   1243 	primary template to always derive from __numeric_traits_integer.
   1244 	(__numeric_traits<float>, __numeric_traits<double>)
   1245 	(__numeric_traits<long double>): Add explicit specializations.
   1246 
   1247 2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1248 
   1249 	PR libstdc++/97798
   1250 	* include/ext/numeric_traits.h (__glibcxx_signed)
   1251 	(__glibcxx_digits, __glibcxx_min, __glibcxx_max): Remove
   1252 	macros.
   1253 	(__is_integer_nonstrict::__width): Define new constant.
   1254 	(__numeric_traits_integer): Define constants in terms of each
   1255 	other and __is_integer_nonstrict::__width, rather than the
   1256 	removed macros.
   1257 	(_GLIBCXX_INT_N_TRAITS): Macro to define explicit
   1258 	specializations for non-standard integer types.
   1259 
   1260 2020-11-11  Jonathan Yong  <10walls (a] gmail.com>
   1261 
   1262 	* acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Exclude
   1263 	cygwin and mingw from relro linker test.
   1264 	* configure: Regenerate.
   1265 
   1266 2020-11-11  Paul Scharnofske  <asynts (a] gmail.com>
   1267 
   1268 	* include/std/thread (jthread::operator=(jthread&&)): Transfer
   1269 	any existing state to a temporary that will request a stop and
   1270 	then join.
   1271 	* testsuite/30_threads/jthread/jthread.cc: Test move assignment.
   1272 
   1273 2020-11-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1274 
   1275 	* include/std/stop_token (_Stop_state_t::_M_requester): Define
   1276 	new struct with members to store and check the thread ID.
   1277 	(_Stop_state_t::_M_request_stop()): Use _M_requester._M_set().
   1278 	(_Stop_state_t::_M_remove_callback(_Stop_cb*)): Use
   1279 	_M_requester._M_is_current_thread().
   1280 
   1281 2020-11-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1282 
   1283 	* include/std/ostream (__syncbuf_base): New class template.
   1284 	(emit_on_flush, noemit_on_flush, flush_emit): New manipulators.
   1285 	* include/std/syncstream (basic_syncbuf): Derive from
   1286 	__syncbuf_base instead of basic_streambuf.
   1287 	(basic_syncbuf::operator=): Remove self-assignment check.
   1288 	(basic_syncbuf::swap): Remove self-swap check.
   1289 	(basic_syncbuf::emit): Do not skip pubsync() call if sequence
   1290 	is empty.
   1291 	(basic_syncbuf::sync): Remove no-op pubsync on stringbuf.
   1292 	(basic_syncbuf::overflow): Define override.
   1293 	* testsuite/27_io/basic_syncstream/basic_ops/1.cc: Test
   1294 	basic_osyncstream::put(char_type).
   1295 	* testsuite/27_io/basic_ostream/emit/1.cc: New test.
   1296 
   1297 2020-11-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1298 
   1299 	* config/locale/generic/c_locale.cc (__set_C_locale()): New function
   1300 	to set the "C" locale and return the name of the previous locale.
   1301 	(__convert_to_v<float>, __convert_to_v<double>)
   1302 	(__convert_to_v<long double>): Use __set_C_locale and set failbit on
   1303 	error.
   1304 
   1305 2020-11-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1306 
   1307 	* include/std/sstream (basic_stringbug, basic_istringstream)
   1308 	(basic_ostringstream, basic_stringstream): Reorder C++20
   1309 	constructors to be declared next to other constructors.
   1310 
   1311 2020-11-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1312 
   1313 	* config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten patterns.
   1314 	(GLIBCXX_3.4.29): Export new symbols.
   1315 	* include/bits/alloc_traits.h (__allocator_like): New concept.
   1316 	* include/std/sstream (basic_stringbuf::swap): Add exception
   1317 	specification.
   1318 	(basic_stringbuf::str() const): Add ref-qualifier. Use new
   1319 	_M_high_mark function.
   1320 	(basic_stringbuf::str(const SAlloc&) const): Define new function.
   1321 	(basic_stringbuf::str() &&): Likewise.
   1322 	(basic_stringbuf::str(const basic_string<C,T,SAlloc>&)):
   1323 	Likewise.
   1324 	(basic_stringbuf::str(basic_string<C,T,Alloc>&&)): Likewise.
   1325 	(basic_stringbuf::view() const): Use _M_high_mark.
   1326 	(basic_istringstream::str, basic_ostringstream::str)
   1327 	(basic_stringstream::str): Define new overloads.
   1328 	* src/c++20/sstream-inst.cc (basic_stringbuf::str)
   1329 	(basic_istringstream::str, basic_ostringstream::str)
   1330 	(basic_stringstream::str): Explicit instantiation definitions
   1331 	for new overloads.
   1332 	* testsuite/27_io/basic_istringstream/view/char/1.cc: Add more
   1333 	checks.
   1334 	* testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
   1335 	Likewise.
   1336 	* testsuite/27_io/basic_ostringstream/view/char/1.cc:
   1337 	Likewise.
   1338 	* testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
   1339 	Likewise.
   1340 	* testsuite/27_io/basic_stringstream/view/char/1.cc:
   1341 	Likewise.
   1342 	* testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
   1343 	Likewise.
   1344 	* testsuite/27_io/basic_istringstream/str/char/2.cc: New test.
   1345 	* testsuite/27_io/basic_istringstream/str/wchar_t/2.cc: New test.
   1346 	* testsuite/27_io/basic_ostringstream/str/char/3.cc: New test.
   1347 	* testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc: New test.
   1348 	* testsuite/27_io/basic_stringbuf/str/char/4.cc: New test.
   1349 	* testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: New test.
   1350 	* testsuite/27_io/basic_stringstream/str/char/5.cc: New test.
   1351 	* testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc: New test.
   1352 
   1353 2020-11-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1354 
   1355 	PR libstdc++/97415
   1356 	* include/std/sstream (basic_stringbuf::_M_update_egptr)
   1357 	(basic_stringbuf::__xfer_bufptrs::__xfer_bufptrs): Check for
   1358 	null before comparing pointers.
   1359 
   1360 2020-11-09  Franois Dumont  <fdumont (a] gcc.gnu.org>
   1361 
   1362 	* include/debug/array: Remove.
   1363 	* include/Makefile.am: Remove <debug/array>.
   1364 	* include/Makefile.in: Regenerate.
   1365 	* include/experimental/functional: Adapt.
   1366 	* include/std/array: Move to _GLIBCXX_INLINE_VERSION namespace.
   1367 	* include/std/functional: Adapt.
   1368 	* include/std/span: Adapt.
   1369 	* testsuite/23_containers/array/debug/back1_neg.cc:
   1370 	Remove dg-require-debug-mode. Add -D_GLIBCXX_ASSERTIONS option.
   1371 	* testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
   1372 	* testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
   1373 	* testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
   1374 	* testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
   1375 	Likewise.
   1376 	* testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
   1377 	Likewise.
   1378 	* testsuite/23_containers/array/element_access/60497.cc
   1379 	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
   1380 	Remove.
   1381 	* testsuite/23_containers/array/tuple_interface/get_neg.cc
   1382 	* testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc
   1383 	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
   1384 
   1385 2020-11-09  Franois Dumont  <fdumont (a] gcc.gnu.org>
   1386 
   1387 	* include/debug/assertions.h (__glibcxx_requires_non_empty_range):
   1388 	Remove __builtin_expect.
   1389 	(__glibcxx_requires_subscript): Likewise.
   1390 	(__glibcxx_requires_nonempty): Likewise.
   1391 	* include/debug/formatter.h (__check_singular): Add C++11 constexpr
   1392 	qualification.
   1393 	* include/debug/helper_functions.h (__check_singular): Likewise. Skip
   1394 	check if constant evaluated.
   1395 	(__valid_range): Do not skip check if constant evaluated.
   1396 	* include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_COND_AT): Add
   1397 	__builtin_expect.
   1398 	(_GLIBCXX_DEBUG_VERIFY_AT_F): Use __glibcxx_assert_1.
   1399 	* testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
   1400 	New test.
   1401 	* testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc: New test.
   1402 	* testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: New test.
   1403 	* testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
   1404 	New test.
   1405 	* testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
   1406 	New test.
   1407 	* testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
   1408 	New test.
   1409 	* testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc: New test.
   1410 	* testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: New test.
   1411 	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
   1412 	New test.
   1413 	* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: New test.
   1414 	* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: New test.
   1415 	* testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: New test.
   1416 	* testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc: New test.
   1417 	* testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc: New test.
   1418 	* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: New test.
   1419 	* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: New test.
   1420 	* testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: New test.
   1421 	* testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc: New test.
   1422 	* testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc: New test.
   1423 
   1424 2020-11-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1425 
   1426 	* include/bits/uniform_int_dist.h (__detail::_Power_of_2):
   1427 	Document that true result for zero is intentional.
   1428 
   1429 2020-11-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1430 
   1431 	* include/std/bit (__popcount): Remove redundant check for zero.
   1432 
   1433 2020-11-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1434 
   1435 	PR libstdc++/97729
   1436 	* libsupc++/exception_ptr.h (exception_ptr::exception_ptr())
   1437 	(exception_ptr::exception_ptr(const exception_ptr&))
   1438 	(exception_ptr::~exception_ptr()): Remove 'always_inline'
   1439 	attributes. Use 'inline' unconditionally.
   1440 
   1441 2020-11-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1442 
   1443 	PR libstdc++/97758
   1444 	* include/bits/std_function.h [!__cpp_rtti]: Include <typeinfo>.
   1445 
   1446 2020-11-07  Liu Hao  <lh_mouse (a] 126.com>
   1447 
   1448 	* libsupc++/cxxabi.h: (__cxa_atexit): mark with _GLIBCXX_CDTOR_CALLABI
   1449 	(__cxa_thread_atexit): ditto
   1450 	* libsupc++/atexit_thread.cc: (__cxa_atexit): mark with
   1451 	_GLIBCXX_CDTOR_CALLABI
   1452 	(__cxa_thread_atexit): ditto
   1453 	(elt): ditto
   1454 
   1455 2020-11-06  Jonathan Wakely  <jwakely (a] redhat.com>
   1456 
   1457 	* config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten up patterns
   1458 	for basic_stringbuf that refer to __xfer_bufptrs.
   1459 
   1460 2020-11-05  Marek Polacek  <polacek (a] redhat.com>
   1461 
   1462 	PR c++/25814
   1463 	* testsuite/20_util/reference_wrapper/lwg2993.cc: Add a dg-warning.
   1464 	* testsuite/25_algorithms/generate_n/87982_neg.cc: Likewise.
   1465 
   1466 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1467 
   1468 	PR libstdc++/96269
   1469 	* include/std/optional (operator==, operator!=, operator<)
   1470 	(operator>, operator<=, operator>=): Fix types used in
   1471 	SFINAE constraints.
   1472 	* testsuite/20_util/optional/relops/96269.cc: New test.
   1473 
   1474 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1475 
   1476 	PR libstdc++/97731
   1477 	* src/filesystem/dir.cc (recursive_directory_iterator): Call the
   1478 	right overload of _Dir::advance.
   1479 	* testsuite/experimental/filesystem/iterators/97731.cc: New test.
   1480 
   1481 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1482 
   1483 	PR libstdc++/97729
   1484 	* include/std/future (__basic_future::_M_get_result): Use
   1485 	nullptr for null pointer constant.
   1486 	* libsupc++/eh_ptr.cc (operator==, operator!=): Remove
   1487 	definitions.
   1488 	* libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Define
   1489 	macro to conditionally add __attribute__((__used__)).
   1490 	(operator==, operator!=, exception_ptr::exception_ptr())
   1491 	(exception_ptr::exception_ptr(const exception_ptr&))
   1492 	(exception_ptr::~exception_ptr())
   1493 	(exception_ptr::operator=(const exception_ptr&))
   1494 	(exception_ptr::swap(exception_ptr&)): Always define as
   1495 	inline. Add macro to be conditionally "used".
   1496 
   1497 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1498 
   1499 	PR libstdc++/97729
   1500 	* config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Add exports.
   1501 	* src/c++20/sstream-inst.cc (basic_stringbuf): Instantiate
   1502 	private constructor taking __xfer_bufptrs.
   1503 
   1504 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1505 
   1506 	* include/std/sstream (basic_stringbuf(const allocator_type&):
   1507 	Add explicit.
   1508 	(basic_stringbuf(const basic_string<C,T,SA>&, openmode, const A&)):
   1509 	Call _M_stringbuf_init. Construct _M_string from pointer and length
   1510 	to avoid constraint checks for string view.
   1511 	(basic_stringbuf::view()): Make __sv_type alias local to the
   1512 	function.
   1513 	(basic_istringstream(const basic_string<C,T,SA>&, openmode, const A&)):
   1514 	Pass string to _M_streambuf instead of constructing a temporary
   1515 	with the wrong allocator.
   1516 	(basic_ostringstream(const basic_string<C,T,SA>&, openmode, const A&)):
   1517 	Likewise.
   1518 	(basic_stringstream(const basic_string<C,T,SA>&, openmode, const A&)):
   1519 	Likewise.
   1520 	* src/c++20/sstream-inst.cc: Use string_view and wstring_view
   1521 	typedefs in explicit instantiations.
   1522 	* testsuite/27_io/basic_istringstream/cons/char/1.cc: Add more
   1523 	tests for constructors.
   1524 	* testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
   1525 	* testsuite/27_io/basic_stringbuf/cons/char/1.cc: Likewise.
   1526 	* testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
   1527 	* testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise.
   1528 	* testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
   1529 	* testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
   1530 
   1531 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1532 
   1533 	* include/std/sstream: Adjust whitespace.
   1534 
   1535 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1536 
   1537 	PR libstdc++/97719
   1538 	* include/std/sstream (basic_stringstream(string_type&&, openmode)):
   1539 	Fix default argument.
   1540 	* testsuite/27_io/basic_stringstream/cons/char/97719.cc: New test.
   1541 
   1542 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1543 
   1544 	* testsuite/18_support/96817.cc: Fail fast if the library is
   1545 	configured to not use futexes.
   1546 
   1547 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1548 
   1549 	PR libstdc++/94971
   1550 	* include/bits/stl_algo.h (search(FIter, FIter, const Searcher):
   1551 	Adjust #if condition.
   1552 	* include/parallel/algo.h (search(FIter, FIter, const Searcher&):
   1553 	Define new overload for C++17.
   1554 
   1555 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1556 
   1557 	PR libstdc++/92285
   1558 	* doc/xml/manual/evolution.xml: Document change to base class.
   1559 	* doc/html/manual/api.html: Regenerate.
   1560 
   1561 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1562 
   1563 	* include/bits/uniform_int_dist.h (uniform_int_distribution::_S_nd):
   1564 	Use qualified-id to refer to static member functions.
   1565 
   1566 2020-11-03  Jonathan Wakely  <jwakely (a] redhat.com>
   1567 
   1568 	* include/std/syncstream: Include <bits/std_mutex.h>
   1569 	unconditionally.
   1570 
   1571 2020-11-03  Franois Dumont  <fdumont (a] gcc.gnu.org>
   1572 
   1573 	* config/abi/pre/gnu-versioned-namespace.ver:
   1574 	Add __istream_extract and _Safe_local_iterator_base::_M_attach_single
   1575 	symbols.
   1576 
   1577 2020-11-03  Jonathan Wakely  <jwakely (a] redhat.com>
   1578 
   1579 	* src/c++11/mutex.cc [_GLIBCXX_HAVE_TLS] (__once_proxy): Define
   1580 	separately for TLS targets.
   1581 	[!_GLIBCXX_HAVE_TLS] (__get_once_functor_lock_ptr): Replace with ...
   1582 	(set_lock_ptr): ... this. Set new value and return previous
   1583 	value.
   1584 	[!_GLIBCXX_HAVE_TLS] (__set_once_functor_lock_ptr): Adjust to
   1585 	use set_lock_ptr.
   1586 	[!_GLIBCXX_HAVE_TLS] (__once_proxy): Likewise.
   1587 
   1588 2020-11-03  Jonathan Wakely  <jwakely (a] redhat.com>
   1589 
   1590 	PR libstdc++/55394
   1591 	PR libstdc++/66146
   1592 	PR libstdc++/84323
   1593 	* config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Add new symbols.
   1594 	* include/std/mutex [!_GLIBCXX_HAS_GTHREADS] (once_flag): Define
   1595 	even when gthreads is not supported.
   1596 	(once_flag::_M_once) [_GLIBCXX_HAVE_LINUX_FUTEX]: Change type
   1597 	from __gthread_once_t to int.
   1598 	(once_flag::_M_passive(), once_flag::_M_activate())
   1599 	(once_flag::_M_finish(bool), once_flag::_Active_execution):
   1600 	Define new members for futex and non-threaded implementation.
   1601 	[_GLIBCXX_HAS_GTHREADS] (once_flag::_Prepare_execution): New
   1602 	RAII helper type.
   1603 	(call_once): Use new members of once_flag.
   1604 	* src/c++11/mutex.cc (std::once_flag::_M_activate): Define.
   1605 	(std::once_flag::_M_finish): Define.
   1606 	* testsuite/30_threads/call_once/39909.cc: Do not require
   1607 	gthreads.
   1608 	* testsuite/30_threads/call_once/49668.cc: Likewise.
   1609 	* testsuite/30_threads/call_once/60497.cc: Likewise.
   1610 	* testsuite/30_threads/call_once/call_once1.cc: Likewise.
   1611 	* testsuite/30_threads/call_once/dr2442.cc: Likewise.
   1612 	* testsuite/30_threads/call_once/once_flag.cc: Add test for
   1613 	constexpr constructor.
   1614 	* testsuite/30_threads/call_once/66146.cc: New test.
   1615 	* testsuite/30_threads/call_once/constexpr.cc: Removed.
   1616 	* testsuite/30_threads/once_flag/cons/constexpr.cc: Removed.
   1617 
   1618 2020-11-03  Jonathan Yong  <10walls (a] gmail.com>
   1619 
   1620 	* src/Makefile.am (libstdc___la_LINK): Add lt_host_flags.
   1621 	* src/Makefile.in: Regenerate.
   1622 
   1623 2020-11-02  Thomas Rodgers  <trodgers (a] redhat.com>
   1624 
   1625 	* doc/doxygen/user.cfg.in (INPUT): Add new header.
   1626 	* include/Makefile.am (std_headers): Add new header.
   1627 	* include/Makefile.in: Regenerate.
   1628 	* include/precompiled/stdc++.h: Include new header.
   1629 	* include/std/syncstream: New header.
   1630 	* include/std/version: Add __cpp_lib_syncbuf.
   1631 	* testsuite/27_io/basic_syncbuf/1.cc: New test.
   1632 	* testsuite/27_io/basic_syncbuf/2.cc: Likewise.
   1633 	* testsuite/27_io/basic_syncbuf/basic_ops/1.cc:
   1634 	Likewise.
   1635 	* testsuite/27_io/basic_syncbuf/requirements/types.cc:
   1636 	Likewise.
   1637 	* testsuite/27_io/basic_syncbuf/sync_ops/1.cc:
   1638 	Likewise.
   1639 	* testsuite/27_io/basic_syncstream/1.cc: Likewise.
   1640 	* testsuite/27_io/basic_syncstream/2.cc: Likewise.
   1641 	* testsuite/27_io/basic_syncstream/basic_ops/1.cc:
   1642 	Likewise.
   1643 	* testsuite/27_io/basic_syncstream/requirements/types.cc:
   1644 	Likewise.
   1645 
   1646 2020-11-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1647 
   1648 	* include/std/type_traits (is_integral<wchar_t>)
   1649 	(make_unsigned<wchar_t>, make_signed<wchar_t>): Define based
   1650 	on #ifdef __WCHAR_TYPE__ instead of _GLIBCXX_USE_WCHAR_T.
   1651 	* include/bits/cpp_type_traits.h (__is_integer<wchar_t>)
   1652 	(__is_char<wchar_t>): Likewise.
   1653 
   1654 2020-10-31  Franois Dumont  <fdumont (a] gcc.gnu.org>
   1655 
   1656 	* src/c++17/floating_from_chars.cc (_GLIBCXX_USE_CX11_ABI): Add define.
   1657 	(buffering_string): New.
   1658 	[!_GLIBCXX_USE_CXX11_ABI](reserve_string): New.
   1659 	(from_chars): Adapt.
   1660 	* src/c++20/sstream-inst.cc: Limit instantiations to
   1661 	_GLIBCXX_USE_CXX11_ABI.
   1662 
   1663 2020-10-31  Jonathan Wakely  <jwakely (a] redhat.com>
   1664 
   1665 	* include/bits/random.h (independent_bit_engine): Fix typo
   1666 	in comment.
   1667 	(shuffle_order_engine): Fix incorrect description in comment.
   1668 	* include/bits/random.tcc (__representable_as_double
   1669 	(__p1_representable_as_double): New helper functions.
   1670 	(shuffle_order_engine::operator()): Use double for calculation
   1671 	if (max() - min() + 1) is representable as double.
   1672 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
   1673 	line number.
   1674 
   1675 2020-10-31  Jonathan Wakely  <jwakely (a] redhat.com>
   1676 
   1677 	PR libstdc++/96958
   1678 	* include/bits/hashtable_policy.h (_Prime_rehash_policy)
   1679 	(_Power2_rehash_policy): Use ceil and floor instead of ceill and
   1680 	floorl.
   1681 	* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy): Likewise.
   1682 	Use double instead of long double.
   1683 
   1684 2020-10-31  Patrick Palka  <ppalka (a] redhat.com>
   1685 
   1686 	PR libstdc++/97600
   1687 	* include/std/ranges (basic_istream_view::begin): Initialize
   1688 	_Iterator from 'this' instead of '*this'.
   1689 	(basic_istream_view::_Iterator::_Iterator): Adjust constructor
   1690 	accordingly.
   1691 	(filter_view::_Iterator::_Iterator): Take a filter_view*
   1692 	argument instead of a filter_view& argument.
   1693 	(filter_view::_Sentinel::_Sentinel): Likewise.
   1694 	(filter_view::begin): Initialize _Iterator from 'this' instead
   1695 	of '*this'.
   1696 	(filter_view::end): Likewise.
   1697 	(transform_view::_Iterator::_Iterator): Take a _Parent* instead
   1698 	of a _Parent&.
   1699 	(filter_view::_Iterator::operator+): Adjust accordingly.
   1700 	(filter_view::_Iterator::operator-): Likewise.
   1701 	(filter_view::begin): Initialize _Iterator from 'this' instead
   1702 	of '*this'.
   1703 	(filter_view::end): Likewise.
   1704 	(join_view::_Iterator): Take a _Parent* instead of a _Parent&.
   1705 	(join_view::_Sentinel): Likewise.
   1706 	(join_view::begin): Initialize _Iterator from 'this' instead of
   1707 	'*this'.
   1708 	(join_view::end): Initialize _Sentinel from 'this' instead of
   1709 	'*this'.
   1710 	(split_view::_OuterIter): Take a _Parent& instead of a _Parent*.
   1711 	(split_view::begin): Initialize _OuterIter from 'this' instead
   1712 	of '*this'.
   1713 	(split_view::end): Likewise.
   1714 	* testsuite/std/ranges/97600.cc: New test.
   1715 
   1716 2020-10-30  Jonathan Wakely  <jwakely (a] redhat.com>
   1717 
   1718 	* include/std/ranges (enable_borrowed_view<take_view<T>>)
   1719 	(enable_borrowed_view<drop_view<T>>)
   1720 	(enable_borrowed_view<drop_while_view<T>>)
   1721 	(enable_borrowed_view<reverse_view<T>>)
   1722 	(enable_borrowed_view<common_view<T>>)
   1723 	(enable_borrowed_view<elements_view<T>>): Add partial
   1724 	specializations as per P2017R1.
   1725 	* testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
   1726 	New test.
   1727 
   1728 2020-10-30  Jonathan Wakely  <jwakely (a] redhat.com>
   1729 
   1730 	PR libstdc++/96958
   1731 	* include/bits/hashtable_policy.h (_Prime_rehash_policy)
   1732 	(_Power2_rehash_policy): Use double instead of long double.
   1733 
   1734 2020-10-30  Jonathan Wakely  <jwakely (a] redhat.com>
   1735 
   1736 	* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
   1737 	Avoid -Wcatch-value warnings.
   1738 
   1739 2020-10-30  Patrick Palka  <ppalka (a] redhat.com>
   1740 
   1741 	* include/std/ranges (__detail::__box): For the partial
   1742 	specialization used by types that are already semiregular,
   1743 	make the default constructor value-initialize the underlying
   1744 	object instead of default-initializing it.  Make its in place
   1745 	constructor explicit.
   1746 	* testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
   1747 	Augment test.
   1748 
   1749 2020-10-30  David Edelsohn  <dje.gcc (a] gmail.com>
   1750 
   1751 	* testsuite/20_util/unique_ptr/creation/for_overwrite.cc: XFAIL on AIX.
   1752 
   1753 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1754 
   1755 	* config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten patterns
   1756 	for old <sstream> symbols some more.
   1757 
   1758 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1759 
   1760 	* include/bits/ranges_util.h (subrange::subrange(R&&)): Use
   1761 	direct-initialization instead of list-initialization, so a
   1762 	potential narrowing conversion from ranges::size(r) to the
   1763 	stored size isn't ill-formed.
   1764 
   1765 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1766 
   1767 	* include/bits/parse_numbers.h (_Select_int_base): Avoid
   1768 	narrowing conversion in constant expression.
   1769 	* include/experimental/buffer (buffer_copy): Avoid narrowing
   1770 	conversion.
   1771 	* include/experimental/internet (hash<>::operator()): Do not
   1772 	use deprecated 'argument_type' member.
   1773 	* include/std/variant (variant::emplace): Use cast instead
   1774 	of implicit conversion from size_t to narrower unsigned type.
   1775 
   1776 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1777 
   1778 	* include/tr1/shared_ptr.h (__shared_count, __shared_ptr)
   1779 	(shared_ptr): Add diagnostic pragmas around uses of auto_ptr.
   1780 	* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
   1781 	Adust dg-error line numbers.
   1782 
   1783 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1784 
   1785 	* testsuite/18_support/96817.cc: Avoid -Wunused warnings.
   1786 	* testsuite/20_util/any/assign/2.cc: Likewise.
   1787 	* testsuite/20_util/any/cons/2.cc: Likewise.
   1788 	* testsuite/20_util/align/1.cc: Avoid -Wsign-compare warning.
   1789 	* testsuite/20_util/function/65760.cc: Avoid -Wunused warning.
   1790 	* testsuite/20_util/function/1.cc: Avoid -Wcatch-value warning.
   1791 	* testsuite/20_util/function/cons/move_target.cc: Avoid -Wunused
   1792 	warning.
   1793 	* testsuite/20_util/headers/memory/synopsis.cc: Add exception
   1794 	specification.
   1795 	* testsuite/20_util/monotonic_buffer_resource/allocate.cc: Avoid
   1796 	-Wsign-compare warning.
   1797 	* testsuite/20_util/tuple/cons/deduction.cc: Avoid -Wunused
   1798 	warning.
   1799 	* testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc:
   1800 	Avoid -Wdeprecated-copy warning.
   1801 	* testsuite/21_strings/basic_string/56166.cc: Avoid
   1802 	-Wcatch-value warning.
   1803 	* testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
   1804 	Avoid -Wcatch-value warnings.
   1805 	* testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
   1806 	Likewise.
   1807 	* testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
   1808 	Likewise.
   1809 	* testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
   1810 	Likewise.
   1811 	* testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
   1812 	Likewise.
   1813 	* testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
   1814 	Likewise.
   1815 	* testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
   1816 	Likewise.
   1817 	* testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc:
   1818 	Likewise.
   1819 	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc:
   1820 	Likewise.
   1821 	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc:
   1822 	Likewise.
   1823 	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc:
   1824 	Likewise.
   1825 	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc:
   1826 	Likewise.
   1827 	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc:
   1828 	Likewise.
   1829 	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc:
   1830 	Likewise.
   1831 	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc:
   1832 	Likewise.
   1833 	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc:
   1834 	Likewise.
   1835 	* testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
   1836 	Prune additional diagnostics.
   1837 	* testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
   1838 	Likewise.
   1839 	* testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
   1840 	Likewise.
   1841 	* testsuite/21_strings/headers/string/synopsis.cc: Add exception
   1842 	specifications.
   1843 	* testsuite/22_locale/locale/cons/12352.cc: Define sized
   1844 	delete operators to avoid warnings.
   1845 	* testsuite/23_containers/deque/modifiers/swap/1.cc: Add
   1846 	exception specification.
   1847 	* testsuite/23_containers/forward_list/cons/11.cc: Avoid
   1848 	-Wdeprecated-copy warning.
   1849 	* testsuite/23_containers/headers/bitset/synopsis.cc: Add
   1850 	exception specification.
   1851 	* testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
   1852 	* testsuite/23_containers/headers/forward_list/synopsis.cc:
   1853 	Likewise.
   1854 	* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
   1855 	* testsuite/23_containers/headers/map/synopsis.cc: Likewise.
   1856 	* testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
   1857 	* testsuite/23_containers/headers/set/synopsis.cc: Likewise.
   1858 	* testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
   1859 	* testsuite/23_containers/list/modifiers/swap/1.cc: Likewise.
   1860 	* testsuite/23_containers/map/modifiers/swap/1.cc: Likewise.
   1861 	* testsuite/23_containers/multimap/modifiers/swap/1.cc:
   1862 	Likewise.
   1863 	* testsuite/23_containers/multiset/modifiers/swap/1.cc:
   1864 	Likewise.
   1865 	* testsuite/23_containers/set/modifiers/swap/1.cc: Likewise.
   1866 	* testsuite/23_containers/unordered_set/56267-2.cc: Avoid
   1867 	-Wdeprecated-copy warning.
   1868 	* testsuite/23_containers/vector/bool/23632.cc: Avoid
   1869 	-Wempty-body warning.
   1870 	* testsuite/23_containers/vector/modifiers/swap/1.cc: Add
   1871 	exception specification.
   1872 	* testsuite/25_algorithms/heap/moveable2.cc: Fix misplaced
   1873 	parentheses around arguments.
   1874 	* testsuite/25_algorithms/sample/1.cc: Use return value.
   1875 	* testsuite/25_algorithms/search/searcher.cc: Avoid -Wunused
   1876 	warnings.
   1877 	* testsuite/27_io/basic_ostream/exceptions/char/9561.cc:
   1878 	Likewise.
   1879 	* testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc:
   1880 	Likewise.
   1881 	* testsuite/27_io/filesystem/operations/remove_all.cc: Avoid
   1882 	-Wsign-compare warning.
   1883 	* testsuite/experimental/any/assign/2.cc: Avoid -Wunused warnings.
   1884 	* testsuite/experimental/any/cons/2.cc: Likewise.
   1885 	* testsuite/experimental/filesystem/operations/remove_all.cc:
   1886 	Avoid -Wign-compare warning.
   1887 	* testsuite/experimental/memory/observer_ptr/cons/cons.cc:
   1888 	Likewise.
   1889 	* testsuite/experimental/memory_resource/null_memory_resource.cc:
   1890 	Likewise.
   1891 	* testsuite/experimental/source_location/1.cc: Avoid -Waddress
   1892 	warning.
   1893 	* testsuite/ext/pod_char_traits.cc: Avoid -Wunused warning.
   1894 	* testsuite/ext/vstring/modifiers/clear/56166.cc: Avoid
   1895 	-Wcatch-value.
   1896 	* testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
   1897 	Avoid -Wunused warning.
   1898 	* testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc:
   1899 	Likewise.
   1900 	* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
   1901 	Prune additional warnings.
   1902 	* testsuite/tr1/3_function_objects/function/1.cc: Avoid
   1903 	-Wcatch-value warning.
   1904 	* testsuite/util/replacement_memory_operators.h: Define sized
   1905 	delete to avoid warnings.
   1906 	* testsuite/util/testsuite_api.h (_NonDefaultConstructible): Add
   1907 	user-declared assignment operator to stop -Wdeprecated-copy
   1908 	warnings.
   1909 	* testsuite/util/testsuite_containers.h: Avoid -Wunused warning.
   1910 	* testsuite/util/testsuite_iterators.h: Avoid -Wsign-compare
   1911 	warnings.
   1912 	* testsuite/util/testsuite_new_operators.h: Define sized deleted.
   1913 
   1914 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1915 
   1916 	* testsuite/25_algorithms/all_of/constexpr.cc: Check result of
   1917 	the algorithm.
   1918 	* testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
   1919 	* testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
   1920 	* testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
   1921 	* testsuite/25_algorithms/count/constexpr.cc: Likewise.
   1922 	* testsuite/25_algorithms/equal/constexpr.cc: Likewise.
   1923 	* testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
   1924 	* testsuite/25_algorithms/fill/constexpr.cc: Likewise.
   1925 	* testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
   1926 	* testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
   1927 	* testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
   1928 	* testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
   1929 	* testsuite/25_algorithms/is_sorted_until/constexpr.cc:
   1930 	Likewise.
   1931 	* testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
   1932 	Likewise.
   1933 	* testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
   1934 	* testsuite/25_algorithms/merge/constexpr.cc: Likewise.
   1935 	* testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
   1936 	* testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
   1937 	* testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
   1938 	* testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
   1939 	* testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
   1940 	* testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
   1941 	* testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
   1942 	* testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
   1943 	* testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
   1944 	* testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
   1945 	* testsuite/25_algorithms/search/constexpr.cc: Likewise.
   1946 	* testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
   1947 	* testsuite/25_algorithms/set_intersection/constexpr.cc:
   1948 	Likewise.
   1949 	* testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
   1950 	Likewise.
   1951 	* testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
   1952 	* testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
   1953 	* testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
   1954 
   1955 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1956 
   1957 	* include/bits/uniform_int_dist.h (_Power_of_two): Add
   1958 	constexpr.
   1959 	(uniform_int_distribution::_S_nd): Add static_assert to ensure
   1960 	the wider type is twice as wide as the result type.
   1961 	(uniform_int_distribution::__generate_impl): Add static_assert
   1962 	and declare variables as constexpr where appropriate.
   1963 	(uniform_int_distribution:operator()): Likewise. Only consider
   1964 	the uniform random bit generator's range of possible results
   1965 	when deciding whether _S_nd can be used, not the __uctype type.
   1966 
   1967 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1968 
   1969 	* include/ext/rope (_Refcount_Base::_M_ref_count): Remove
   1970 	volatile qualifier.
   1971 	(_Refcount_Base::_M_decr()): Likewise.
   1972 
   1973 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1974 
   1975 	* include/bits/std_function.h (_Function_handler<void, void>):
   1976 	Define explicit specialization used for invalid target types.
   1977 	(_Base_manager::_M_manager) [!__cpp_rtti]: Return null.
   1978 	(function::target_type()): Check for null pointer.
   1979 	(function::target()): Define unconditionall. Fix bug with
   1980 	const_cast of function pointer type.
   1981 	(function::target() const): Define unconditionally, but
   1982 	only use RTTI if enabled.
   1983 	* testsuite/20_util/function/target_no_rtti.cc: New test.
   1984 
   1985 2020-10-29  Patrick Palka  <ppalka (a] redhat.com>
   1986 
   1987 	* testsuite/25_algorithms/lexicographical_compare/constrained.cc:
   1988 	(test03): Fix initializing the vector vy with the array y of size 4.
   1989 
   1990 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   1991 
   1992 	* include/bits/hashtable_policy.h (_Local_iterator_base): Cast
   1993 	value to avoid -Wsign-compare warnings.
   1994 	* include/bits/regex.h (sub_match::_M_str): Avoid narrowing
   1995 	conversion.
   1996 	* include/bits/regex_compiler.tcc (_Compiler::_M_quantifier):
   1997 	Initialize variable to avoid -Wmaybe-uninitialized warning.
   1998 	* include/bits/shared_ptr_base.h (_Sp_counted_deleter::_Impl):
   1999 	Reorder mem-initializer-list to avoid -Wreorder warning.
   2000 	* include/bits/stl_tree.h (_Rb_tree_impl): Explicitly
   2001 	initialize base class in copy constructor.
   2002 	* include/debug/safe_iterator.h (_Safe_iterator): Likewise.
   2003 	* include/ext/debug_allocator.h: Reorder mem-initializer-list
   2004 	to avoid -Wreorder warning.
   2005 	* include/ext/throw_allocator.h (throw_allocator_limit)
   2006 	(throw_allocator_random): Add user-declared assignment operators
   2007 	to avoid -Wdeprecated-copy warnings.
   2008 
   2009 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2010 
   2011 	* include/bits/uniform_int_dist.h (uniform_int_distribution):
   2012 	Rename _UniformRandomNumberGenerator template parameters to
   2013 	_UniformRandomBitGenerator, as per P0346R1.
   2014 
   2015 2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2016 
   2017 	* include/std/sstream (basic_stringbuf(__string_type&&, openmode)):
   2018 	Call _M_init_syncbuf to set up get/put areas. Also qualify
   2019 	std::move.
   2020 
   2021 2020-10-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2022 
   2023 	* config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Remove duplicate
   2024 	patterns.
   2025 	(CXXABI_1.3.13): Restore missing piece.
   2026 
   2027 2020-10-28  Thomas Rodgers  <trodgers (a] redhat.com>
   2028 
   2029 	* acinclude.m4 (glibcxx_SUBDIRS): Add src/c++20.
   2030 	* config/abi/pre/gnu.ver (GLIBCXX_3.4.29): New symbols.
   2031 	* configure: Regenerate.
   2032 	* include/std/sstream:
   2033 	(basic_stringbuf::basic_stringbuf(allocator const&)): New constructor.
   2034 	(basic_stringbuf::basic_stringbuf(openmode, allocator const&)): Likewise.
   2035 	(basic_stringbuf::basic_stringbuf(basic_string&&, openmode)): Likewise.
   2036 	(basic_stringbuf::basic_stringbuf(basic_stringbuf&&, allocator const&)):
   2037 	Likewise.
   2038 	(basic_stringbuf::get_allocator()): New method.
   2039 	(basic_stringbuf::view()): Likewise.
   2040 	(basic_istringstream::basic_istringstream(basic_string&&, openmode)):
   2041 	New constructor.
   2042 	(basic_istringstream::basic_istringstream(openmode, allocator const&)):
   2043 	Likewise
   2044 	(basic_istringstream::view()): New method.
   2045 	(basic_ostringstream::basic_ostringstream(basic_string&&, openmode)):
   2046 	New constructor.
   2047 	(basic_ostringstream::basic_ostringstream(openmode, allocator const&)):
   2048 	Likewise
   2049 	(basic_ostringstream::view()): New method.
   2050 	(basic_stringstream::basic_stringstream(basic_string&&, openmode)):
   2051 	New constructor.
   2052 	(basic_stringstream::basic_stringstream(openmode, allocator const&)):
   2053 	Likewise
   2054 	(basic_stringstream::view()): New method.
   2055 	* src/Makefile.in: Add c++20 directory.
   2056 	* src/Makefile.am: Regenerate.
   2057 	* src/c++20/Makefile.am: Add makefile for new sub-directory.
   2058 	* src/c++20/Makefile.in: Generate.
   2059 	* src/c++20/sstream-inst.cc: New file defining explicit
   2060 	instantiations for basic_stringbuf, basic_istringstream,
   2061 	basic_ostringstream, and basic_stringstream member functions
   2062 	added in C++20.
   2063 	* testsuite/27_io/basic_stringbuf/cons/char/2.cc: New test.
   2064 	* testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
   2065 	* testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
   2066 	* testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
   2067 	* testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
   2068 	* testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc: Likewise.
   2069 	* testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
   2070 	* testsuite/27_io/basic_istringstream/view/wchar_t/1.cc: Likewise.
   2071 	* testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
   2072 	* testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc: Likewise.
   2073 	* testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
   2074 	* testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc: Likewise.
   2075 	* testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
   2076 	* testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc: Likewise.
   2077 	* testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
   2078 	* testsuite/27_io/basic_stringstream/view/wchar_t/1.cc: Likewise.
   2079 
   2080 2020-10-28  Patrick Palka  <ppalka (a] redhat.com>
   2081 
   2082 	PR libstdc++/97613
   2083 	* include/std/chrono (year_month_weekday::operator sys_days):
   2084 	Cast the result of index() to int so that the initializer for
   2085 	days{} is sign-extended when it's converted to the underlying
   2086 	type.
   2087 	* testsuite/std/time/year_month_weekday/3.cc: New test.
   2088 
   2089 2020-10-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2090 
   2091 	* libsupc++/new_opnt.cc (new): Add comment about forced unwind
   2092 	exceptions.
   2093 
   2094 2020-10-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2095 
   2096 	PR libstdc++/94268
   2097 	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_BUFSIZ):
   2098 	Define.
   2099 	* config/os/mingw32/os_defines.h (_GLIBCXX_BUFSIZ):
   2100 	Define.
   2101 	* include/bits/fstream.tcc: Use _GLIBCXX_BUFSIZ instead
   2102 	of BUFSIZ.
   2103 	* include/ext/stdio_filebuf.h: Likewise.
   2104 	* include/std/fstream (_GLIBCXX_BUFSIZ): Define.
   2105 
   2106 2020-10-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2107 
   2108 	PR libstdc++/95592
   2109 	* include/bits/valarray_after.h (_DEFINE_EXPR_UNARY_OPERATOR)
   2110 	(_DEFINE_EXPR_BINARY_OPERATOR, _DEFINE_EXPR_BINARY_FUNCTION):
   2111 	Use elaborated-type-specifier and qualified-id to avoid
   2112 	ambiguities with QNX system headers.
   2113 	* testsuite/26_numerics/valarray/95592.cc: New test.
   2114 
   2115 2020-10-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2116 
   2117 	PR libstdc++/95609
   2118 	* include/std/span (span): Reorder data members to match common
   2119 	implementations of struct iovec.
   2120 	* testsuite/23_containers/span/layout_compat.cc: New test.
   2121 
   2122 2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   2123 
   2124 	* include/std/functional (std::_Placeholder): Define for C++98
   2125 	as well as later standards.
   2126 	* include/tr1/functional (std::placeholders::_1 etc): Declare
   2127 	for C++98.
   2128 	(tr1::_Placeholder): Replace with using-declaration for
   2129 	std::_Placeholder.
   2130 	(tr1::placeholders::_1 etc.): Replace with using-directive for
   2131 	std::placeholders.
   2132 
   2133 2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   2134 
   2135 	* include/tr1/ell_integral.tcc (__ellint_rf, __ellint_rd)
   2136 	(__ellint_rc, __ellint_rj): Remove unused variables.
   2137 	* include/tr1/modified_bessel_func.tcc (__airy): Likewise.
   2138 
   2139 2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   2140 
   2141 	* include/bits/locale_conv.h (__str_codecvt_out_all):
   2142 	Add cast to compare operands of the same signedness.
   2143 	* include/bits/locale_facets_nonio.tcc
   2144 	(time_get::_M_extract_wday_or_month): Likewise.
   2145 	* include/bits/sstream.tcc (basic_stringbuf::overflow):
   2146 	Likewise.
   2147 	* include/tr1/legendre_function.tcc (__sph_legendre): Use
   2148 	unsigned for loop variable.
   2149 
   2150 2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   2151 
   2152 	* include/std/charconv (from_chars): Add noexcept to match
   2153 	definitions in src/c++17/floating_from_chars.cc
   2154 
   2155 2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   2156 
   2157 	* src/c++17/fs_dir.cc (fs::directory_iterator::operator*):
   2158 	Add noexcept. Do not throw on precondition violation.
   2159 
   2160 2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   2161 
   2162 	* include/bits/fs_path.h (path::_List::begin, path::_List::end):
   2163 	Add noexcept to match definitions in src/c++17/fs_path.cc.
   2164 
   2165 2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   2166 
   2167 	* testsuite/experimental/memory_resource/new_delete_resource.cc:
   2168 	Add missing <cstdint> header.
   2169 	* testsuite/experimental/memory_resource/resource_adaptor.cc:
   2170 	Likewise.
   2171 
   2172 2020-10-26  Jonathan Wakely  <jwakely (a] redhat.com>
   2173 
   2174 	* include/experimental/executor (strand::_State): Fix thinko.
   2175 
   2176 2020-10-26  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   2177 
   2178 	* include/std/type_traits (__is_nt_constructible_impl): Remove.
   2179 	(__is_nothrow_constructible_impl): Adjust.
   2180 	(is_nothrow_default_constructible): Likewise.
   2181 	(__is_nt_assignable_impl): Remove.
   2182 	(__is_nothrow_assignable_impl): Adjust.
   2183 
   2184 2020-10-26  Jonathan Wakely  <jwakely (a] redhat.com>
   2185 
   2186 	PR libstdc++/97570
   2187 	* libsupc++/new_opa.cc: Declare size_t in global namespace.
   2188 	Remove unused header.
   2189 
   2190 2020-10-26  Stephan Bergmann  <sbergman (a] redhat.com>
   2191 
   2192 	* include/bits/shared_ptr_base.h
   2193 	(_Sp_counted_base::_M_add_ref_lock_nothrow(): Add noexcept to
   2194 	definitions to match declaration.
   2195 	(__shared_count(const __weak_count&, nothrow_t)): Add noexcept
   2196 	to declaration to match definition.
   2197 
   2198 2020-10-23  Patrick Palka  <ppalka (a] redhat.com>
   2199 
   2200 	* include/std/ranges (single_view::single_view): Mark the
   2201 	in place constructor explicit as per LWG 3428.
   2202 	(take_view): Remove the constraint on the deduction guide's
   2203 	template parameter as per LWG 3447.
   2204 
   2205 2020-10-23  Jonathan Wakely  <jwakely (a] redhat.com>
   2206 
   2207 	* include/experimental/memory_resource: Include <tuple>.
   2208 	(polymorphic_allocator::construct): Qualify forward_as_tuple.
   2209 	* include/std/memory_resource: Likewise.
   2210 
   2211 2020-10-22  Jonathan Wakely  <jwakely (a] redhat.com>
   2212 
   2213 	* testsuite/30_threads/condition_variable/members/68519.cc:
   2214 	Define recent_epoch_float_clock::duration to meet the Cpp17Clock
   2215 	requirements.
   2216 
   2217 2020-10-22  Jonathan Wakely  <jwakely (a] redhat.com>
   2218 
   2219 	* include/std/shared_mutex: Only include <condition_variable>
   2220 	when pthread_rwlock_t and POSIX timers are not available.
   2221 	(__cpp_lib_shared_mutex, __cpp_lib_shared_timed_mutex): Change
   2222 	value to be type 'long'.
   2223 	* include/std/version (__cpp_lib_shared_mutex)
   2224 	(__cpp_lib_shared_timed_mutex): Likewise.
   2225 
   2226 2020-10-22  Jonathan Wakely  <jwakely (a] redhat.com>
   2227 
   2228 	* include/Makefile.am: Add new header.
   2229 	* include/Makefile.in: Regenerate.
   2230 	* include/bits/shared_ptr.h: Include <iosfwd>.
   2231 	* include/bits/shared_ptr_base.h: Include required headers here
   2232 	directly, instead of in <memory>.
   2233 	* include/bits/uses_allocator_args.h: New file. Move utility
   2234 	functions for uses-allocator construction from <memory> to here.
   2235 	Only define the utility functions when concepts are available.
   2236 	(__cpp_lib_make_obj_using_allocator): Define non-standard
   2237 	feature test macro.
   2238 	* include/std/condition_variable: Remove unused headers.
   2239 	* include/std/future: Likewise.
   2240 	* include/std/memory: Remove headers that are not needed
   2241 	directly, and are now inclkuded where they're needed. Include
   2242 	new <bits/uses_allocator_args.h> header.
   2243 	* include/std/memory_resource: Include only the necessary
   2244 	headers. Use new feature test macro to detect support for the
   2245 	utility functions.
   2246 	* include/std/scoped_allocator: Likewise.
   2247 	* include/std/version (__cpp_lib_make_obj_using_allocator):
   2248 	Define.
   2249 
   2250 2020-10-22  Olivier Hainque  <hainque (a] adacore.com>
   2251 
   2252 	* crossconfig.m4: Turn vxworks matcher into vxworks*.
   2253 	* configure.host: Likewise.
   2254 	* configure: Regenerate.
   2255 
   2256 2020-10-21  Jonathan Wakely  <jwakely (a] redhat.com>
   2257 
   2258 	* include/bits/shared_ptr.h (shared_ptr(const weak_ptr&, nothrow_t)):
   2259 	Add noexcept.
   2260 	* include/bits/shared_ptr_base.h (_Sp_counted_base::_M_add_ref_lock):
   2261 	Remove specializations and just call _M_add_ref_lock_nothrow.
   2262 	(__shared_count, __shared_ptr): Use nullptr for null pointer
   2263 	constants.
   2264 	(__shared_count(const __weak_count&)): Use _M_add_ref_lock_nothrow
   2265 	instead of _M_add_ref_lock.
   2266 	(__shared_count(const __weak_count&, nothrow_t)): Add noexcept.
   2267 	(__shared_ptr::operator bool()): Add noexcept.
   2268 	(__shared_ptr(const __weak_ptr&, nothrow_t)): Add noexcept.
   2269 
   2270 2020-10-21  Jonathan Wakely  <jwakely (a] redhat.com>
   2271 
   2272 	PR libstdc++/97512
   2273 	* include/bits/ranges_util.h (tuple_size<subrange>)
   2274 	(tuple_element<I, cv subrange>): Move here from ...
   2275 	* include/std/ranges: ... here.
   2276 	* testsuite/std/ranges/subrange/97512.cc: New test.
   2277 
   2278 2020-10-21  Thomas Rodgers  <trodgers (a] redhat.com>
   2279 
   2280 	* include/pstl/algorithm_impl.h: Update file.
   2281 	* include/pstl/execution_impl.h: Likewise.
   2282 	* include/pstl/glue_algorithm_impl.h: Likewise.
   2283 	* include/pstl/glue_memory_impl.h: Likewise.
   2284 	* include/pstl/glue_numeric_impl.h: Likewise.
   2285 	* include/pstl/memory_impl.h: Likewise.
   2286 	* include/pstl/numeric_impl.h: Likewise.
   2287 	* include/pstl/parallel_backend.h: Likewise.
   2288 	* include/pstl/parallel_backend_serial.h: Likewise.
   2289 	* include/pstl/parallel_backend_tbb.h: Likewise.
   2290 	* include/pstl/parallel_backend_utils.h: Likewise.
   2291 	* include/pstl/pstl_config.h: Likewise.
   2292 	* include/pstl/unseq_backend_simd.h: Likewise.
   2293 
   2294 2020-10-20  Franois Dumont  <fdumont (a] gcc.gnu.org>
   2295 
   2296 	* include/bits/hashtable_policy.h
   2297 	(_Hash_node_value_base<>): Remove _Hash_node_base inheritance.
   2298 	(_Hash_node_code_cache<bool _Cache_hash_code>): New.
   2299 	(_Hash_node_value<typename _Value, bool _Cache_hash_code>): New.
   2300 	(_Hash_node<>): Inherits _Hash_node_base<> and _Hash_node_value<>.
   2301 	(_Map_base<>::__node_type): Remove.
   2302 	(_Map_base<>::iterator): Remove.
   2303 	(_Insert_base<>::__hash_cached): New.
   2304 	(_Insert_base<>::__constant_iterators): New.
   2305 	(_Insert_base<>::__hashtable_alloc): New.
   2306 	(_Insert_base<>::__node_type): Remove.
   2307 	(_Insert_base<>::__node_ptr): New.
   2308 	(_Hash_code_base<>): Remove specializations.
   2309 	(_Hash_code_base<>::__node_type): Remove.
   2310 	(_Hash_code_base<>::_M_bucket_index(const __node_type*, size_t)):
   2311 	Replace by...
   2312 	(_Hash_code_base<>::_M_bucket_index(const _Hash_node_value<>&, size_t)):
   2313 	...this.
   2314 	(_Hash_code_base<>::_M_store_code(__node_type*, __hash_code)):
   2315 	Replace by...
   2316 	(_Hash_code_base<>::_M_store_code(_Hash_node_code_cache<>&, __hash_code)):
   2317 	...this.
   2318 	(_Hash_code_base<>::_M_copy_code(__node_type*, const __node_type*)):
   2319 	Replace by...
   2320 	(_Hash_code_base<>::_M_copy_code(_Hash_node_code_cache<>&,
   2321 	const _Hash_node_code_base<>&)): ...this.
   2322 	(_Hashtable_base<>::__constant_iterators): Remove.
   2323 	(_Hashtable_base<>::__unique_keys): Remove.
   2324 	(_Hashtable_base<>::__node_type): Remove.
   2325 	(_Hashtable_base<>::iterator): Remove.
   2326 	(_Hashtable_base<>::const_iterator): Remove.
   2327 	(_Hashtable_base<>::local_iterator): Remove.
   2328 	(_Hashtable_base<>::const_local_iterator): Remove.
   2329 	(_Hashtable_base<>::__ireturn_type): Remove.
   2330 	(_Hashtable_base<>::_Equal_hash_code<>::_S_equals): Replace by...
   2331 	(_Hashtable_base<>::_S_equals(__hash_code, const _Hash_node_code_hash<>&)):
   2332 	...this.
   2333 	(_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals): Replace by...
   2334 	(_Hashtable_base<>::_S_node_equals(__hash_code,
   2335 	const _Hash_node_code_hash<>&)): ...this.
   2336 	(_Hashtable_base<>::_Equal_hash_code<>): Remove.
   2337 	(_Hashtable_base<>::_M_equals): Adapt.
   2338 	(_Hashtable_baxe<>::_M_node_equals): Adapt.
   2339 	(_Equality<>::_M_equal): Adapt.
   2340 	(_Hashtable_alloc<>::__node_ptr): New.
   2341 	(_Hashtable_alloc<>::__bucket_type): Rename into...
   2342 	(_Hashtable_alloc<>::__node_base_ptr): ...this.
   2343 	(_Hashtable_alloc<>::__bucket_alloc_type): Rename into...
   2344 	(_Hashtable_alloc<>::__buckets_alloc_type): ...this.
   2345 	(_Hashtable_alloc<>::__bucket_alloc_traits): Rename into...
   2346 	(_Hashtable_alloc<>::__buckets_alloc_traits): ...this.
   2347 	(_Hashtable_alloc<>::__buckets_ptr): New.
   2348 	(_Hashtable_alloc<>::_M_allocate_node): Adapt.
   2349 	(_Hashtable_alloc<>::_M_deallocate_node): Adapt.
   2350 	(_Hashtable_alloc<>::_M_deallocate_node_ptr): Adapt.
   2351 	(_Hashtable_alloc<>::_M_deallocate_nodes): Adapt.
   2352 	(_Hashtable_alloc<>::_M_allocate_buckets): Adapt.
   2353 	(_Hashtable_alloc<>::_M_deallocate_buckets): Adapt.
   2354 	* include/bits/hashtable.h (_Hashtable<>): Adapt.
   2355 
   2356 2020-10-20  Aldy Hernandez  <aldyh (a] redhat.com>
   2357 
   2358 	* testsuite/21_strings/basic_string/capacity/1.cc: Pass
   2359 	-Wno-stringop-overflow to test.
   2360 
   2361 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   2362 
   2363 	PR libstdc++/95917
   2364 	* include/std/coroutine (__noop_coro_frame): Replace with
   2365 	noop_coroutine_handle::__frame.
   2366 	(__dummy_resume_destroy): Define inline in __frame.
   2367 	(__noop_coro_fr): Replace with noop_coroutine_handle::_S_fr
   2368 	and define as inline.
   2369 	* testsuite/18_support/coroutines/95917.cc: New test.
   2370 
   2371 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   2372 
   2373 	* include/std/coroutine (coroutine_handle<_Promise>): Remove
   2374 	base class. Add constructors, conversions, accessors etc. as
   2375 	proposed for LWG 3460.
   2376 	(coroutine_handle<noop_coroutine_promise>): Likewise.
   2377 	* testsuite/18_support/coroutines/lwg3460.cc: New test.
   2378 
   2379 2020-10-19  Jonathan Wakely  <jwakely (a] redhat.com>
   2380 
   2381 	* include/bits/unique_ptr.h (make_unique_for_overwrite): Define
   2382 	for C++20.
   2383 	* testsuite/20_util/unique_ptr/creation/array_neg.cc: Remove
   2384 	unused header. Adjust standard reference.
   2385 	* testsuite/20_util/unique_ptr/creation/for_overwrite.cc: New test.
   2386 	* testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc: New test.
   2387 
   2388 2020-10-19  Jonathan Wakely  <jwakely (a] redhat.com>
   2389 
   2390 	* include/std/tuple (_Head_base<Idx, Head, true>): Use reserved
   2391 	form of __no_unique_address__ attribute because
   2392 	no_unique_address is not reserved prior to C++20.
   2393 
   2394 2020-10-19  Jonathan Wakely  <jwakely (a] redhat.com>
   2395 
   2396 	* include/bits/node_handle.h (_Node_handle_common): Replace
   2397 	std::optional with custom type.
   2398 	* testsuite/20_util/variant/exception_safety.cc: Add missing
   2399 	header include.
   2400 
   2401 2020-10-19  Jonathan Wakely  <jwakely (a] redhat.com>
   2402 
   2403 	* include/precompiled/expc++.h: Removed.
   2404 
   2405 2020-10-17  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   2406 
   2407 	PR libstdc++/97449
   2408 	* include/std/variant
   2409 	(__gen_vtable_impl<>::_S_apply_single_alt):
   2410 	Diagnose visitor return type mismatches here..
   2411 	(__gen_vtable_impl</*base case*/>::_S_apply):
   2412 	..not here.
   2413 
   2414 2020-10-15  Jonathan Wakely  <jwakely (a] redhat.com>
   2415 
   2416 	* include/std/concepts: Fix typos in copyright notice.
   2417 	* include/std/ranges: Likewise.
   2418 
   2419 2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   2420 
   2421 	PR libstdc++/97415
   2422 	* include/std/sstream (basic_stringbuf::str()): Check for
   2423 	null egptr() before comparing to non-null pptr().
   2424 
   2425 2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   2426 
   2427 	* testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc:
   2428 	Do not generate debug info.
   2429 	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc:
   2430 	Likewise.
   2431 
   2432 2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   2433 
   2434 	* include/bits/basic_string.h (basic_string(const Alloc&))
   2435 	(basic_string(const basic_string&)
   2436 	(basic_string(const CharT*, size_type, const Alloc&))
   2437 	(basic_string(const CharT*, const Alloc&))
   2438 	(basic_string(size_type, CharT, const Alloc&))
   2439 	(basic_string(initializer_list<CharT>, const Alloc&))
   2440 	(basic_string(InputIterator, InputIterator, const Alloc&)):
   2441 	Define inline in class body.
   2442 	* include/bits/basic_string.tcc (basic_string(const Alloc&))
   2443 	(basic_string(const basic_string&)
   2444 	(basic_string(const CharT*, size_type, const Alloc&))
   2445 	(basic_string(const CharT*, const Alloc&))
   2446 	(basic_string(size_type, CharT, const Alloc&))
   2447 	(basic_string(initializer_list<CharT>, const Alloc&))
   2448 	(basic_string(InputIterator, InputIterator, const Alloc&)):
   2449 	Move definitions into class body.
   2450 
   2451 2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   2452 
   2453 	* testsuite/lib/libstdc++.exp (check_effective_target_cxx11-abi):
   2454 	Add comments about which test flags get used by the check.
   2455 
   2456 2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   2457 
   2458 	* testsuite/21_strings/basic_string/allocator/char/copy.cc: Make
   2459 	comment more precise about what isn't supported by COW strings.
   2460 	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
   2461 	Likewise.
   2462 	* testsuite/21_strings/basic_string/allocator/char/move.cc:
   2463 	Likewise.
   2464 	* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
   2465 	Likewise.
   2466 	* testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
   2467 	Likewise.
   2468 	* testsuite/21_strings/basic_string/allocator/char/operator_plus.cc:
   2469 	Likewise.
   2470 	* testsuite/21_strings/basic_string/allocator/char/swap.cc:
   2471 	Likewise.
   2472 	* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
   2473 	Likewise.
   2474 	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
   2475 	Likewise.
   2476 	* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
   2477 	Likewise.
   2478 	* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
   2479 	Likewise.
   2480 	* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
   2481 	Likewise.
   2482 	* testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc:
   2483 	Likewise.
   2484 	* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
   2485 	Likewise.
   2486 
   2487 2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   2488 
   2489 	* testsuite/21_strings/basic_string/allocator/char/minimal.cc:
   2490 	Do not require cxx11-abi effective target.
   2491 	* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
   2492 	Likewise.
   2493 	* testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
   2494 
   2495 2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   2496 
   2497 	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
   2498 	(basic_string(const _CharT*, const _Alloc&)): Constrain to
   2499 	require an allocator-like type to fix CTAD ambiguity (LWG 3706).
   2500 	* testsuite/21_strings/basic_string/cons/char/deduction.cc:
   2501 	Remove dg-skip-if.
   2502 	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
   2503 	Likewise.
   2504 
   2505 2020-10-13  Nuno Lopes  <nuno.lopes (a] ist.utl.pt>
   2506 
   2507 	* include/bits/stl_algo.h (any_of): Fix incorrect description
   2508 	in comment.
   2509 
   2510 2020-10-13  Jonathan Wakely  <jwakely (a] redhat.com>
   2511 
   2512 	* doc/xml/manual/evolution.xml: Document some API changes
   2513 	and deprecations.
   2514 	* doc/xml/manual/intro.xml: Document LWG 2499.
   2515 	* doc/xml/manual/status_cxx2020.xml: Update status.
   2516 	* doc/html/*: Regenerate.
   2517 
   2518 2020-10-13  Jonathan Wakely  <jwakely (a] redhat.com>
   2519 
   2520 	* doc/xml/book.txml: Remove trailing whitespace.
   2521 	* doc/xml/chapter.txml: Likewise.
   2522 	* doc/xml/class.txml: Likewise.
   2523 	* doc/xml/gnu/fdl-1.3.xml: Likewise.
   2524 	* doc/xml/gnu/gpl-3.0.xml: Likewise.
   2525 	* doc/xml/manual/abi.xml: Likewise.
   2526 	* doc/xml/manual/algorithms.xml: Likewise.
   2527 	* doc/xml/manual/allocator.xml: Likewise.
   2528 	* doc/xml/manual/appendix_contributing.xml: Likewise.
   2529 	* doc/xml/manual/appendix_free.xml: Likewise.
   2530 	* doc/xml/manual/appendix_porting.xml: Likewise.
   2531 	* doc/xml/manual/atomics.xml: Likewise.
   2532 	* doc/xml/manual/auto_ptr.xml: Likewise.
   2533 	* doc/xml/manual/backwards_compatibility.xml: Likewise.
   2534 	* doc/xml/manual/bitmap_allocator.xml: Likewise.
   2535 	* doc/xml/manual/build_hacking.xml: Likewise.
   2536 	* doc/xml/manual/codecvt.xml: Likewise.
   2537 	* doc/xml/manual/concurrency.xml: Likewise.
   2538 	* doc/xml/manual/concurrency_extensions.xml: Likewise.
   2539 	* doc/xml/manual/configure.xml: Likewise.
   2540 	* doc/xml/manual/containers.xml: Likewise.
   2541 	* doc/xml/manual/ctype.xml: Likewise.
   2542 	* doc/xml/manual/debug.xml: Likewise.
   2543 	* doc/xml/manual/debug_mode.xml: Likewise.
   2544 	* doc/xml/manual/diagnostics.xml: Likewise.
   2545 	* doc/xml/manual/documentation_hacking.xml: Likewise.
   2546 	* doc/xml/manual/evolution.xml: Likewise.
   2547 	* doc/xml/manual/internals.xml: Likewise.
   2548 	* doc/xml/manual/intro.xml: Likewise.
   2549 	* doc/xml/manual/io.xml: Likewise.
   2550 	* doc/xml/manual/iterators.xml: Likewise.
   2551 	* doc/xml/manual/locale.xml: Likewise.
   2552 	* doc/xml/manual/localization.xml: Likewise.
   2553 	* doc/xml/manual/messages.xml: Likewise.
   2554 	* doc/xml/manual/mt_allocator.xml: Likewise.
   2555 	* doc/xml/manual/numerics.xml: Likewise.
   2556 	* doc/xml/manual/parallel_mode.xml: Likewise.
   2557 	* doc/xml/manual/policy_data_structures.xml: Likewise.
   2558 	* doc/xml/manual/prerequisites.xml: Likewise.
   2559 	* doc/xml/manual/shared_ptr.xml: Likewise.
   2560 	* doc/xml/manual/spine.xml: Likewise.
   2561 	* doc/xml/manual/status_cxxtr1.xml: Likewise.
   2562 	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
   2563 	* doc/xml/manual/strings.xml: Likewise.
   2564 	* doc/xml/manual/support.xml: Likewise.
   2565 	* doc/xml/manual/test.xml: Likewise.
   2566 	* doc/xml/manual/test_policy_data_structures.xml: Likewise.
   2567 	* doc/xml/manual/using.xml: Likewise.
   2568 	* doc/xml/manual/using_exceptions.xml: Likewise.
   2569 	* doc/xml/manual/utilities.xml: Likewise.
   2570 	* doc/html/*: Regenerate.
   2571 
   2572 2020-10-12  Patrick Palka  <ppalka (a] redhat.com>
   2573 
   2574 	* include/std/ranges (take_while_view::begin): Constrain the
   2575 	const overload further as per LWG 3450.
   2576 	(take_while_view::end): Likewise.
   2577 	* testsuite/std/ranges/adaptors/take_while.cc: Add test for LWG
   2578 	3450.
   2579 
   2580 2020-10-12  Patrick Palka  <ppalka (a] redhat.com>
   2581 
   2582 	PR libstdc++/95322
   2583 	* include/std/ranges (take_view::_CI): Define this alias
   2584 	template as per LWG 3449 and remove ...
   2585 	(take_view::_Sentinel::_CI): ... this type alias.
   2586 	(take_view::_Sentinel::operator==): Adjust use of _CI
   2587 	accordingly.  Define a second overload that accepts an iterator
   2588 	of the opposite constness as per LWG 3449.
   2589 	(take_while_view::_Sentinel::operator==): Likewise.
   2590 	* testsuite/std/ranges/adaptors/95322.cc: Add tests for LWG 3449.
   2591 
   2592 2020-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2593 
   2594 	* doc/doxygen/user.cfg.in: Update to Doxygen 1.8.20 format.
   2595 
   2596 2020-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2597 
   2598 	* doc/doxygen/user.cfg.in (PREDEFINED): Use __cplusplus=201703L
   2599 	so that C++17 features are documented.
   2600 
   2601 2020-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2602 
   2603 	* include/bits/stl_algobase.h (copy, move, copy_backward)
   2604 	(move_backward): Fix documentation for returned iterator.
   2605 
   2606 2020-10-12  Martin Sebor  <msebor (a] redhat.com>
   2607 
   2608 	PR c++/97201
   2609 	* libsupc++/new (operator new): Add attribute alloc_size and malloc.
   2610 
   2611 2020-10-11  Clement Chigot  <clement.chigot (a] atos.net>
   2612 
   2613 	* config/os/aix/t-aix: Add complementary mode object file to
   2614 	libstdc++fs.a
   2615 
   2616 2020-10-10  Jonathan Wakely  <jwakely (a] redhat.com>
   2617 
   2618 	PR libstdc++/97362
   2619 	* doc/html/manual/source_code_style.html: Regenerate.
   2620 	* doc/xml/manual/appendix_contributing.xml: Add __deref to
   2621 	BADNAMES.
   2622 	* include/debug/functions.h (_Irreflexive_checker::__deref):
   2623 	Rename to __ref.
   2624 	* testsuite/17_intro/badnames.cc: Check __deref.
   2625 
   2626 2020-10-10  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   2627 
   2628 	* include/std/variant (__check_visitor_result):
   2629 	Use size_t for indexes.
   2630 	(__check_visitor_results): Likewise.
   2631 
   2632 2020-10-09  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   2633 
   2634 	PR libstdc++/95904
   2635 	* include/std/variant (__deduce_visit_result): Add a nested ::type.
   2636 	(__gen_vtable_impl</*base case*/>::_S_apply):
   2637 	Check the visitor return type.
   2638 	(__same_types): New.
   2639 	(__check_visitor_result): Likewise.
   2640 	(__check_visitor_results): Likewise.
   2641 	(visit(_Visitor&&, _Variants&&...)): Use __check_visitor_results
   2642 	in case we're visiting just one variant.
   2643 	* testsuite/20_util/variant/visit_neg.cc: Adjust.
   2644 
   2645 2020-10-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2646 
   2647 	PR libstdc++/97311
   2648 	* include/bits/random.tcc (seed_seq::generate): Use uint32_t for
   2649 	calculations. Also split the first loop into three loops to
   2650 	avoid branching on k on every iteration, resolving PR 94823.
   2651 	* testsuite/26_numerics/random/seed_seq/97311.cc: New test.
   2652 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-erro
   2653 	line number.
   2654 
   2655 2020-10-09  Daniel Lemire  <lemire (a] gmail.com>
   2656 
   2657 	* include/bits/uniform_int_dist.h (uniform_int_distribution::_S_nd):
   2658 	New member function implementing Lemire's "nearly divisionless"
   2659 	algorithm.
   2660 	(uniform_int_distribution::operator()): Use _S_nd when the range
   2661 	of the URBG is the full width of the result type.
   2662 
   2663 2020-10-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2664 
   2665 	* testsuite/Makefile.am: Set and export variable separately.
   2666 	* testsuite/Makefile.in: Regenerate.
   2667 
   2668 2020-10-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2669 
   2670 	* scripts/check_performance: Use gnu++11 instead of gnu++0x.
   2671 	* testsuite/Makefile.am (check-performance): Export CXXFLAGS to
   2672 	child process.
   2673 	* testsuite/Makefile.in: Regenerate.
   2674 
   2675 2020-10-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2676 
   2677 	* testsuite/performance/26_numerics/random_dist.cc: New test.
   2678 
   2679 2020-10-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2680 
   2681 	* testsuite/util/testsuite_performance.h (report_header): Remove
   2682 	unused variable.
   2683 
   2684 2020-10-08  Patrick Palka  <ppalka (a] redhat.com>
   2685 
   2686 	PR libstdc++/95788
   2687 	* include/bits/ranges_uninitialized.h:
   2688 	(__construct_at_fn::operator()): Rewrite in terms of
   2689 	std::construct_at.  Declare it conditionally noexcept.  Qualify
   2690 	calls to declval in its requires-clause.
   2691 	* testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
   2692 	New test.
   2693 
   2694 2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2695 
   2696 	PR libstdc++/82584
   2697 	* include/bits/random.tcc
   2698 	(discrete_distribution::param_type::_M_initialize)
   2699 	(piecewise_constant_distribution::param_type::_M_initialize)
   2700 	(piecewise_linear_distribution::param_type::_M_initialize):
   2701 	Add assertions for positive sums..
   2702 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
   2703 	line.
   2704 
   2705 2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2706 
   2707 	* include/bits/ios_base.h (ios_base::failure): Add constructors
   2708 	takeing error_code argument. Add code() member function.
   2709 	* testsuite/27_io/ios_base/failure/cxx11.cc: Allow test to
   2710 	run for the old ABI but do not check for derivation from
   2711 	std::system_error.
   2712 	* testsuite/27_io/ios_base/failure/error_code.cc: New test.
   2713 
   2714 2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2715 
   2716 	* include/bits/random.h (__detail::_Mod): Revert last change.
   2717 	(__detail::__mod): Do not use _Mod for a==0 case.
   2718 	* testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
   2719 	Check other cases with a==0. Also check runtime results.
   2720 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
   2721 	line.
   2722 
   2723 2020-10-07  Jonathan Wakely  <jwakely (a] redhat.com>
   2724 
   2725 	* include/bits/random.h (__detail::_Mod): Avoid divide by zero.
   2726 	* testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
   2727 	New test.
   2728 
   2729 2020-10-07  Jonathan Wakely  <jwakely (a] redhat.com>
   2730 
   2731 	* include/bits/random.h (seed_seq(initializer_list<T>)): Rename
   2732 	parameter to use reserved name.
   2733 	* include/bits/ranges_algo.h (shift_left, shift_right): Rename
   2734 	template parameters to use reserved name.
   2735 	* libsupc++/exception_ptr.h (exception_ptr): Likewise for
   2736 	parameters and local variables.
   2737 	* testsuite/17_intro/names.cc: Check "il". Do not check "d" and
   2738 	"y" in C++20 mode.
   2739 
   2740 2020-10-06  Jonathan Wakely  <jwakely (a] redhat.com>
   2741 
   2742 	PR libstdc++/90295
   2743 	* config/abi/pre/gnu.ver (CXXABI_1.3.13): New symbol version.
   2744 	(exception_ptr::_M_addref(), exception_ptr::_M_release()):
   2745 	Export symbols.
   2746 	* libsupc++/eh_ptr.cc (exception_ptr::exception_ptr()):
   2747 	Remove out-of-line definition.
   2748 	(exception_ptr::exception_ptr(const exception_ptr&)):
   2749 	Likewise.
   2750 	(exception_ptr::~exception_ptr()): Likewise.
   2751 	(exception_ptr::operator=(const exception_ptr&)):
   2752 	Likewise.
   2753 	(exception_ptr::swap(exception_ptr&)): Likewise.
   2754 	(exception_ptr::_M_addref()): Add branch prediction.
   2755 	* libsupc++/exception_ptr.h (exception_ptr::operator bool):
   2756 	Add noexcept.
   2757 	[!_GLIBCXX_EH_PTR_COMPAT] (operator==, operator!=): Define
   2758 	inline as hidden friends. Remove declarations at namespace
   2759 	scope.
   2760 	(exception_ptr::exception_ptr()): Define inline.
   2761 	(exception_ptr::exception_ptr(const exception_ptr&)):
   2762 	Likewise.
   2763 	(exception_ptr::~exception_ptr()): Likewise.
   2764 	(exception_ptr::operator=(const exception_ptr&)):
   2765 	Likewise.
   2766 	(exception_ptr::swap(exception_ptr&)): Likewise.
   2767 	* testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.13.
   2768 	* testsuite/18_support/exception_ptr/90295.cc: New test.
   2769 
   2770 2020-10-06  Jonathan Wakely  <jwakely (a] redhat.com>
   2771 
   2772 	* include/std/ranges (join_view): Remove deduction guide.
   2773 	(views::join): Add explicit template argument list to prevent
   2774 	deducing the wrong type.
   2775 	* testsuite/std/ranges/adaptors/join.cc: Move test for LWG 3474
   2776 	here, from ...
   2777 	* testsuite/std/ranges/adaptors/join_lwg3474.cc: Removed.
   2778 
   2779 2020-10-05  Jonathan Wakely  <jwakely (a] redhat.com>
   2780 
   2781 	* include/bits/regex.h: Use __int_traits<int> instead of
   2782 	std::numeric_limits<int>.
   2783 	* include/bits/uniform_int_dist.h: Use __int_traits<T>::__max
   2784 	instead of std::numeric_limits<T>::max().
   2785 	* include/bits/hashtable_policy.h: Use size_t(-1) instead of
   2786 	std::numeric_limits<size_t>::max().
   2787 	* include/std/regex: Include <ext/numeric_traits.h>.
   2788 	* include/std/string_view: Use typedef for __int_traits<int>.
   2789 	* src/c++11/hashtable_c++0x.cc: Use size_t(-1) instead of
   2790 	std::numeric_limits<size_t>::max().
   2791 	* testsuite/std/ranges/iota/96042.cc: Include <limits>.
   2792 	* testsuite/std/ranges/iota/difference_type.cc: Likewise.
   2793 	* testsuite/std/ranges/subrange/96042.cc: Likewise.
   2794 
   2795 2020-10-05  Jonathan Wakely  <jwakely (a] redhat.com>
   2796 
   2797 	* include/std/numeric: Move all #include directives to the top
   2798 	of the header.
   2799 	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
   2800 	numbers.
   2801 	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
   2802 
   2803 2020-10-05  Jonathan Wakely  <jwakely (a] redhat.com>
   2804 
   2805 	* config/abi/pre/gnu.ver: Add new symbol.
   2806 	* include/bits/functexcept.h (__throw_bad_array_new_length):
   2807 	Declare new function.
   2808 	* include/ext/malloc_allocator.h (malloc_allocator::allocate):
   2809 	Throw bad_array_new_length for impossible sizes (LWG 3190).
   2810 	* include/ext/new_allocator.h (new_allocator::allocate):
   2811 	Likewise.
   2812 	* include/std/memory_resource (polymorphic_allocator::allocate)
   2813 	(polymorphic_allocator::allocate_object): Use new function,
   2814 	__throw_bad_array_new_length.
   2815 	* src/c++11/functexcept.cc (__throw_bad_array_new_length):
   2816 	Define.
   2817 	* testsuite/20_util/allocator/lwg3190.cc: New test.
   2818 
   2819 2020-10-05  Mike Crowe  <mac (a] mcrowe.com>
   2820 
   2821 	PR libstdc++/91486
   2822 	* include/bits/atomic_futex.h:
   2823 	(__atomic_futex_unsigned::_M_load_when_equal_until): Use target
   2824 	clock duration type when rounding.
   2825 	* testsuite/30_threads/async/async.cc (test_pr91486_wait_for):
   2826 	Rename from test_pr91486.
   2827 	(float_steady_clock): New class for test.
   2828 	(test_pr91486_wait_until): New test.
   2829 
   2830 2020-10-05  Mike Crowe  <mac (a] mcrowe.com>
   2831 
   2832 	* testsuite/20_util/duration_cast/rounding_c++11.cc: Copy
   2833 	rounding.cc and alter to support compilation for C++11 and to
   2834 	test std::chrono::__detail::ceil.
   2835 
   2836 2020-10-02  Jonathan Wakely  <jwakely (a] redhat.com>
   2837 
   2838 	* testsuite/29_atomics/atomic_float/value_init.cc: Use float
   2839 	instead of double so that __atomic_load_8 isn't needed.
   2840 
   2841 2020-10-02  Jonathan Wakely  <jwakely (a] redhat.com>
   2842 
   2843 	* testsuite/18_support/96817.cc: Use terminate handler that
   2844 	calls _Exit(0).
   2845 
   2846 2020-10-02  Patrick Palka  <ppalka (a] redhat.com>
   2847 
   2848 	* include/bits/stl_iterator.h (reverse_iterator::iter_move):
   2849 	Define for C++20 as per P0896.
   2850 	(reverse_iterator::iter_swap): Likewise.
   2851 	(move_iterator::operator*): Apply P0896 changes for C++20.
   2852 	(move_iterator::operator[]): Likewise.
   2853 	* testsuite/24_iterators/reverse_iterator/cust.cc: New test.
   2854 
   2855 2020-10-01  Jonathan Wakely  <jwakely (a] redhat.com>
   2856 
   2857 	* config/cpu/arm/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST_AND_ACQUIRE):
   2858 	Do not try to dereference return value of __atomic_load_n.
   2859 
   2860 2020-09-30  Jonathan Wakely  <jwakely (a] redhat.com>
   2861 
   2862 	* config/cpu/arm/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST_AND_ACQUIRE):
   2863 	(_GLIBCXX_GUARD_SET_AND_RELEASE): Define for EABI.
   2864 
   2865 2020-09-30  Jonathan Wakely  <jwakely (a] redhat.com>
   2866 
   2867 	* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
   2868 	Define for GCC 11 or when !__is_identifier(__is_same).
   2869 	(_GLIBCXX_BUILTIN_IS_SAME_AS): Remove.
   2870 	* include/std/type_traits (is_same, is_same_v): Replace uses
   2871 	of _GLIBCXX_BUILTIN_IS_SAME_AS.
   2872 
   2873 2020-09-28  Patrick Palka  <ppalka (a] redhat.com>
   2874 
   2875 	* include/std/ranges (filter_view): Declare the data member
   2876 	_M_base last instead of first, and adjust constructors' member
   2877 	initializer lists accordingly.
   2878 	(transform_view): Likewise.
   2879 	(take_view): Likewise.
   2880 	(take_while_view): Likewise.
   2881 	(drop_view): Likewise.
   2882 	(drop_while_view): Likewise.
   2883 	(join_view): Likewise.
   2884 	(split_view): Likewise (and tweak nearby formatting).
   2885 	(reverse_view): Likewise.
   2886 	* testsuite/std/ranges/adaptors/sizeof.cc: Update expected
   2887 	sizes.
   2888 
   2889 2020-09-28  Patrick Palka  <ppalka (a] redhat.com>
   2890 
   2891 	* testsuite/std/ranges/adaptors/sizeof.cc: New test.
   2892 
   2893 2020-09-28  Patrick Palka  <ppalka (a] redhat.com>
   2894 
   2895 	* include/bits/ranges_util.h (subrange::_M_end): Give it
   2896 	[[no_unique_address]].
   2897 	* testsuite/std/ranges/subrange/sizeof.cc: New test.
   2898 
   2899 2020-09-28  Patrick Palka  <ppalka (a] redhat.com>
   2900 
   2901 	* include/std/ranges (iota_view::_M_bound): Give it
   2902 	[[no_unique_address]].
   2903 	* testsuite/std/ranges/iota/iota_view.cc: Check that an
   2904 	unbounded iota_view has minimal size.
   2905 
   2906 2020-09-27  Clement Chigot  <clement.chigot (a] atos.net>
   2907 
   2908 	* config/os/aix/t-aix: Use $(AR) without -X32_64.
   2909 
   2910 2020-09-26  Jonathan Wakely  <jwakely (a] redhat.com>
   2911 
   2912 	PR libstdc++/96817
   2913 	* include/ext/atomicity.h (__gnu_cxx::__is_single_threaded()):
   2914 	New function wrapping __libc_single_threaded if available.
   2915 	(__exchange_and_add_dispatch, __atomic_add_dispatch): Use it.
   2916 	* libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_abort)
   2917 	(__cxa_guard_release): Likewise.
   2918 	* testsuite/18_support/96817.cc: New test.
   2919 
   2920 2020-09-25  Jonathan Wakely  <jwakely (a] redhat.com>
   2921 
   2922 	* libsupc++/Makefile.am: Remove redundant -std=gnu++1z flags.
   2923 	* libsupc++/Makefile.in: Regenerate.
   2924 
   2925 2020-09-24  Antony Polukhin  <antoshkka (a] gmail.com>
   2926 
   2927 	PR libstdc++/71579
   2928 	* include/std/type_traits (invoke_result, is_invocable)
   2929 	(is_invocable_r, is_nothrow_invocable, is_nothrow_invocable_r):
   2930 	Add static_asserts to make sure that the arguments of the type
   2931 	traits are not misused with incomplete types.
   2932 	* testsuite/20_util/invoke_result/incomplete_args_neg.cc: New test.
   2933 	* testsuite/20_util/is_invocable/incomplete_args_neg.cc: New test.
   2934 	* testsuite/20_util/is_invocable/incomplete_neg.cc: New test.
   2935 	* testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc:
   2936 	New test.
   2937 	* testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc: Check
   2938 	for error on incomplete type usage in trait.
   2939 
   2940 2020-09-24  Patrick Palka  <ppalka (a] redhat.com>
   2941 
   2942 	* include/std/ranges (__detail::__boxable): Split out the
   2943 	associated constraints of __box into here.
   2944 	(__detail::__box): Use the __boxable concept.  Define a leaner
   2945 	partial specialization for semiregular types.
   2946 	(single_view::_M_value): Give it [[no_unique_address]].
   2947 	(filter_view::_M_pred): Likewise.
   2948 	(transform_view::_M_fun): Likewise.
   2949 	(take_while_view::_M_pred): Likewise.
   2950 	(drop_while_view::_M_pred):: Likewise.
   2951 	* testsuite/std/ranges/adaptors/detail/semiregular_box.cc: New
   2952 	test.
   2953 
   2954 2020-09-24  Jonathan Wakely  <jwakely (a] redhat.com>
   2955 
   2956 	* doc/xml/manual/configure.xml: Correct name of option.
   2957 	* doc/html/*: Regenerate.
   2958 
   2959 2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   2960 
   2961 	PR libstdc++/97167
   2962 	* src/c++17/fs_path.cc (path::_Parser::root_path()): Check
   2963 	for empty string before inspecting the first character.
   2964 	* testsuite/27_io/filesystem/path/append/source.cc: Append
   2965 	empty string_view to path.
   2966 
   2967 2020-09-22  Glen Joseph Fernandes  <glenjofe (a] gmail.com>
   2968 
   2969 	* include/bits/align.h (align): Fix overflow handling.
   2970 	* testsuite/20_util/align/3.cc: New test.
   2971 
   2972 2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   2973 
   2974 	* include/Makefile.am: Add new headers and adjust for renamed
   2975 	header.
   2976 	* include/Makefile.in: Regenerate.
   2977 	* include/bits/iterator_concepts.h: Adjust for renamed header.
   2978 	* include/bits/range_access.h (ranges::*): Move to new
   2979 	<bits/ranges_base.h> header.
   2980 	* include/bits/ranges_algobase.h: Include new <bits/ranges_base.h>
   2981 	header instead of <ranges>.
   2982 	* include/bits/ranges_algo.h: Include new <bits/ranges_util.h>
   2983 	header.
   2984 	* include/bits/range_cmp.h: Moved to...
   2985 	* include/bits/ranges_cmp.h: ...here.
   2986 	* include/bits/ranges_base.h: New header.
   2987 	* include/bits/ranges_util.h: New header.
   2988 	* include/experimental/string_view: Include new
   2989 	<bits/ranges_base.h> header.
   2990 	* include/std/functional: Adjust for renamed header.
   2991 	* include/std/ranges (ranges::view_base, ranges::enable_view)
   2992 	(ranges::dangling, ranges::borrowed_iterator_t): Move to new
   2993 	<bits/ranges_base.h> header.
   2994 	(ranges::view_interface, ranges::subrange)
   2995 	(ranges::borrowed_subrange_t): Move to new <bits/ranges_util.h>
   2996 	header.
   2997 	* include/std/span: Include new <bits/ranges_base.h> header.
   2998 	* include/std/string_view: Likewise.
   2999 	* testsuite/24_iterators/back_insert_iterator/pr93884.cc: Add
   3000 	missing <ranges> header.
   3001 	* testsuite/24_iterators/front_insert_iterator/pr93884.cc:
   3002 	Likewise.
   3003 
   3004 2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   3005 
   3006 	PR libstdc++/96803
   3007 	* include/std/tuple
   3008 	(_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
   3009 	Use correct value category in __use_alloc call.
   3010 	* testsuite/20_util/tuple/cons/96803.cc: Check with constructors
   3011 	that require correct value category to be used.
   3012 
   3013 2020-09-22  Patrick Palka  <ppalka (a] redhat.com>
   3014 
   3015 	* include/std/span (span::front): Remove static_assert.
   3016 	(span::back): Likewise.
   3017 	(span::operator[]): Likewise.
   3018 	* testsuite/23_containers/span/back_neg.cc: Rewrite to verify
   3019 	that we check the preconditions of back() only when it's called.
   3020 	* testsuite/23_containers/span/front_neg.cc: Likewise for
   3021 	front().
   3022 	* testsuite/23_containers/span/index_op_neg.cc: Likewise for
   3023 	operator[].
   3024 
   3025 2020-09-22  Patrick Palka  <ppalka (a] redhat.com>
   3026 
   3027 	* include/bits/stl_algo.h (__sample): Exit early when the
   3028 	input range is empty.
   3029 	* testsuite/25_algorithms/sample/3.cc: New test.
   3030 
   3031 2020-09-22  Patrick Palka  <ppalka (a] redhat.com>
   3032 
   3033 	* include/bits/stl_algo.h (for_each_n): Mark constexpr for C++20.
   3034 	(search): Likewise for the overload that takes a searcher.
   3035 	* testsuite/25_algorithms/for_each/constexpr.cc: Test constexpr
   3036 	std::for_each_n.
   3037 	* testsuite/25_algorithms/search/constexpr.cc: Test constexpr
   3038 	std::search overload that takes a searcher.
   3039 
   3040 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3041 
   3042 	* include/bits/c++config (__replacement_assert): Add noreturn
   3043 	attribute.
   3044 	(__glibcxx_assert_impl): Use __builtin_expect to hint that the
   3045 	assertion is expected to pass.
   3046 
   3047 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3048 
   3049 	* include/std/ranges (drop_view::begin()): Adjust constraints
   3050 	to match the correct condition for O(1) ranges::next (LWG 3482).
   3051 	* testsuite/std/ranges/adaptors/drop.cc: Check that iterator is
   3052 	cached for non-sized_range.
   3053 
   3054 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3055 
   3056 	* include/std/ranges (transform_view, elements_view): Relax
   3057 	constraints on operator- for iterators, as per LWG 3483.
   3058 	* testsuite/std/ranges/adaptors/elements.cc: Check that we
   3059 	can take the difference of two iterators from a non-random
   3060 	access range.
   3061 	* testsuite/std/ranges/adaptors/transform.cc: Likewise.
   3062 
   3063 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3064 
   3065 	PR libstdc++/97132
   3066 	* include/bits/align.h (align) [!_GLIBCXX_USE_C99_STDINT_TR1]:
   3067 	Remove unused code.
   3068 	(assume_aligned): Do not use __builtin_assume_aligned during
   3069 	constant evaluation.
   3070 	* testsuite/20_util/assume_aligned/1.cc: Improve test.
   3071 	* testsuite/20_util/assume_aligned/97132.cc: New test.
   3072 
   3073 2020-09-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3074 
   3075 	PR libstdc++/97101
   3076 	* include/std/functional (bind_front): Fix order of parameters
   3077 	in is_nothrow_constructible_v specialization.
   3078 	* testsuite/20_util/function_objects/bind_front/97101.cc: New test.
   3079 
   3080 2020-09-11  Thomas Rodgers  <trodgers (a] redhat.com>
   3081 
   3082 	* include/std/memory: Move #include <bits/align.h> inside C++11
   3083 	conditional includes.
   3084 
   3085 2020-09-11  Thomas Rodgers  <trodgers (a] redhat.com>
   3086 
   3087 	* include/Makefile.am (bits_headers): Add new header.
   3088 	* include/Makefile.in: Regenerate.
   3089 	* include/bits/align.h: New file.
   3090 	* include/std/memory (align): Move definition to bits/align.h.
   3091 	(assume_aligned): Likewise.
   3092 
   3093 2020-09-11  Jonathan Wakely  <jwakely (a] redhat.com>
   3094 
   3095 	* include/std/chrono [C++17] (chrono::__detail::ceil): Add
   3096 	using declaration to make chrono::ceil available for internal
   3097 	use with a consistent name.
   3098 	(chrono::__detail::__ceil_impl): New function template.
   3099 	(chrono::__detail::ceil): Use __ceil_impl to compare and
   3100 	increment the value. Remove SFINAE constraint.
   3101 
   3102 2020-09-11  Jonathan Wakely  <jwakely (a] redhat.com>
   3103 
   3104 	* include/bits/regex_error.h (__throw_regex_error): Fix
   3105 	parameter declaration and use reserved attribute names.
   3106 
   3107 2020-09-11  Mike Crowe  <mac (a] mcrowe.com>
   3108 
   3109 	* include/std/condition_variable (condition_variable::wait_until):
   3110 	Convert delta to steady_clock duration before adding to current
   3111 	steady_clock time to avoid rounding errors described in PR68519.
   3112 	(condition_variable::wait_for): Simplify calculation of absolute
   3113 	time by using chrono::__detail::ceil in both overloads.
   3114 	* testsuite/30_threads/condition_variable/members/68519.cc:
   3115 	(test_wait_for): Renamed from test01. Replace unassigned val
   3116 	variable with constant false. Reduce scope of mx and cv
   3117 	variables to just test_wait_for function.
   3118 	(test_wait_until): Add new test case.
   3119 
   3120 2020-09-11  Mike Crowe  <mac (a] mcrowe.com>
   3121 
   3122 	PR libstdc++/91486
   3123 	* include/bits/atomic_futex.h
   3124 	(__atomic_futex_unsigned::_M_load_when_equal_for)
   3125 	(__atomic_futex_unsigned::_M_load_when_equal_until): Use
   3126 	__detail::ceil to convert delta to the reference clock
   3127 	duration type to avoid resolution problems.
   3128 	* include/std/chrono (__detail::ceil): Move implementation
   3129 	of std::chrono::ceil into private namespace so that it's
   3130 	available to pre-C++17 code.
   3131 	* testsuite/30_threads/async/async.cc (test_pr91486):
   3132 	Test __atomic_futex_unsigned::_M_load_when_equal_for.
   3133 
   3134 2020-09-11  Mike Crowe  <mac (a] mcrowe.com>
   3135 
   3136 	* include/bits/atomic_futex.h
   3137 	(__atomic_futex_unsigned::_M_load_when_equal_until): Add
   3138 	loop on generic _Clock to check the timeout against _Clock
   3139 	again after _M_load_when_equal_until returns indicating a
   3140 	timeout.
   3141 	* testsuite/30_threads/async/async.cc: Invent slow_clock
   3142 	that runs at an eleventh of steady_clock's speed. Use it
   3143 	to test the user-supplied-clock variant of
   3144 	__atomic_futex_unsigned::_M_load_when_equal_until works
   3145 	generally with test03 and loops correctly when the timeout
   3146 	time hasn't been reached in test04.
   3147 
   3148 2020-09-11  Mike Crowe  <mac (a] mcrowe.com>
   3149 
   3150 	PR libstdc++/93542
   3151 	* include/bits/atomic_futex.h (__atomic_futex_unsigned): Change
   3152 	__clock_t typedef to use steady_clock so that unknown clocks are
   3153 	synced to it rather than system_clock. Change existing __clock_t
   3154 	overloads of _M_load_and_text_until_impl and
   3155 	_M_load_when_equal_until to use system_clock explicitly. Remove
   3156 	comment about DR 887 since these changes address that problem as
   3157 	best as we currently able.
   3158 
   3159 2020-09-11  Mike Crowe  <mac (a] mcrowe.com>
   3160 
   3161 	PR libstdc++/93542
   3162 	* config/abi/pre/gnu.ver: Update for addition of
   3163 	__atomic_futex_unsigned_base::_M_futex_wait_until_steady.
   3164 	* include/bits/atomic_futex.h (__atomic_futex_unsigned_base):
   3165 	Add comments to clarify that _M_futex_wait_until and
   3166 	_M_load_and_test_until use CLOCK_REALTIME.
   3167 	(__atomic_futex_unsigned_base::_M_futex_wait_until_steady)
   3168 	(__atomic_futex_unsigned_base::_M_load_and_text_until_steady):
   3169 	New member functions that use CLOCK_MONOTONIC.
   3170 	(__atomic_futex_unsigned_base::_M_load_and_test_until_impl)
   3171 	(__atomic_futex_unsigned_base::_M_load_when_equal_until): Add
   3172 	overloads that accept a steady_clock time_point and use the
   3173 	new member functions.
   3174 	* src/c++11/futex.cc: Include headers required for
   3175 	clock_gettime.
   3176 	(futex_clock_monotonic_flag): New constant to tell futex to
   3177 	use CLOCK_MONOTONIC to match existing futex_clock_realtime_flag.
   3178 	(futex_clock_monotonic_unavailable): New global to store the
   3179 	result of trying to use CLOCK_MONOTONIC.
   3180 	(__atomic_futex_unsigned_base::_M_futex_wait_until_steady): Add
   3181 	new variant of _M_futex_wait_until that uses CLOCK_MONOTONIC to
   3182 	support waiting using steady_clock.
   3183 
   3184 2020-09-11  Mike Crowe  <mac (a] mcrowe.com>
   3185 
   3186 	* src/c++11/futex.cc: Add new constants for required futex
   3187 	flags.  Add futex_clock_realtime_unavailable flag to store
   3188 	result of trying to use FUTEX_CLOCK_REALTIME.
   3189 	(__atomic_futex_unsigned_base::_M_futex_wait_until): Try to
   3190 	use FUTEX_WAIT_BITSET with FUTEX_CLOCK_REALTIME and only
   3191 	fall back to using gettimeofday and FUTEX_WAIT if that's not
   3192 	supported.
   3193 
   3194 2020-09-11  Mike Crowe  <mac (a] mcrowe.com>
   3195 
   3196 	* testsuite/30_threads/async/async.cc (test02): Test steady_clock
   3197 	with std::future::wait_until.
   3198 	(test03): Add new test templated on clock type waiting for future
   3199 	associated with async to resolve.
   3200 	(main): Call test03 to test both system_clock and steady_clock.
   3201 
   3202 2020-09-11  Torbjrn SVENSSON  <torbjorn.svensson (a] st.com>
   3203 	    Christophe Lyon  <christophe.lyon (a] linaro.org>
   3204 
   3205 	* libsupc++/eh_call.cc: Avoid warning with -fno-exceptions.
   3206 
   3207 2020-09-11  Torbjrn SVENSSON  <torbjorn.svensson (a] st.com>
   3208 	    Christophe Lyon  <christophe.lyon (a] linaro.org>
   3209 
   3210 	* libsupc++/eh_call.cc: Avoid warning with -fno-exceptions.
   3211 
   3212 2020-09-11  Christophe Lyon  <christophe.lyon (a] linaro.org>
   3213 
   3214 	* include/bits/regex_error.h: Avoid warning with -fno-exceptions.
   3215 
   3216 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3217 
   3218 	* include/bits/locale_conv.h (__do_str_codecvt, __str_codecvt_in_all):
   3219 	Add casts to compare types of the same signedness.
   3220 
   3221 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3222 
   3223 	* include/bits/ranges_algobase.h (__equal_fn): Remove unused
   3224 	typedef.
   3225 
   3226 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3227 
   3228 	* include/std/version (__cpp_lib_array_constexpr):
   3229 	(__cpp_lib_constexpr_char_traits): Only define C++17 value when
   3230 	compiling C++17.
   3231 
   3232 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3233 
   3234 	* include/experimental/bits/shared_ptr.h (shared_ptr(auto_ptr&&))
   3235 	(operator=(auto_ptr&&)): Add diagnostic pragmas to suppress
   3236 	warnings for uses of std::auto_ptr.
   3237 	* include/experimental/type_traits (is_literal_type_v):
   3238 	Likewise, for use of std::is_literal_type.
   3239 	* include/std/condition_variable (condition_variable_any::_Unlock):
   3240 	Likewise, for use of std::uncaught_exception.
   3241 
   3242 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3243 
   3244 	* include/bits/fs_path.h (path::_List::type()): Avoid narrowing
   3245 	conversion.
   3246 	* include/std/chrono (operator+(const year&, const years&)):
   3247 	Likewise.
   3248 
   3249 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3250 
   3251 	* include/bits/codecvt.h (codecvt_byname): Remove names of
   3252 	unused parameters.
   3253 
   3254 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3255 
   3256 	* include/bits/locale_facets_nonio.tcc: Adjust whitespace.
   3257 
   3258 2020-09-10  Krystian Kuniarek  <krystian.kuzniarek (a] gmail.com>
   3259 
   3260 	* include/c_global/cmath (__lerp): Avoid -Wparentheses warnings.
   3261 
   3262 2020-09-10  Krystian Kuniarek  <krystian.kuzniarek (a] gmail.com>
   3263 
   3264 	* include/bits/atomic_base.h: Fix -Wunused-variable
   3265 	warnings.
   3266 	* include/ext/new_allocator.h: Fix -Wunused-parameter
   3267 	warnings.
   3268 
   3269 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3270 
   3271 	* include/bits/stl_iterator.h (counted_iterator): Add assertions
   3272 	to check preconditions added by LWG 3472.
   3273 
   3274 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3275 
   3276 	PR libstdc++/94160
   3277 	* src/c++17/memory_resource.cc (munge_options): Round
   3278 	max_blocks_per_chunk to a multiple of four.
   3279 	(__pool_resource::_M_alloc_pools()): Simplify slightly.
   3280 	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
   3281 	Check that valid pointers are returned when small values are
   3282 	used for max_blocks_per_chunk.
   3283 
   3284 2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3285 
   3286 	PR libstdc++/96942
   3287 	* include/std/memory_resource (monotonic_buffer_resource::do_allocate):
   3288 	Use __builtin_expect when checking if a new buffer needs to be
   3289 	allocated from the upstream resource, and for checks for edge
   3290 	cases like zero sized buffers and allocations.
   3291 	* src/c++17/memory_resource.cc (aligned_size): New class template.
   3292 	(aligned_ceil): New helper function to round up to a given
   3293 	alignment.
   3294 	(monotonic_buffer_resource::chunk): Replace _M_size and _M_align
   3295 	with an aligned_size member. Remove _M_canary member. Change _M_next
   3296 	to pointer instead of unaligned buffer.
   3297 	(monotonic_buffer_resource::chunk::allocate): Round up to multiple
   3298 	of 64 instead of to power of two. Check for size overflow. Remove
   3299 	redundant check for minimum required alignment.
   3300 	(monotonic_buffer_resource::chunk::release): Adjust for changes
   3301 	to data members.
   3302 	(monotonic_buffer_resource::_M_new_buffer): Use aligned_ceil.
   3303 	(big_block): Replace _M_size and _M_align with aligned_size
   3304 	member.
   3305 	(big_block::big_block): Check for size overflow.
   3306 	(big_block::size, big_block::align): Adjust to use aligned_size.
   3307 	(big_block::alloc_size): Use aligned_ceil.
   3308 	(munge_options): Use aligned_ceil.
   3309 	(__pool_resource::allocate): Use big_block::align for alignment.
   3310 	* testsuite/20_util/monotonic_buffer_resource/allocate.cc: Check
   3311 	upstream resource gets expected values for impossible sizes.
   3312 	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
   3313 	Likewise. Adjust checks for expected alignment in existing test.
   3314 
   3315 2020-09-07  Jonathan Wakely  <jwakely (a] redhat.com>
   3316 
   3317 	* include/std/chrono (duration::_S_gcd): Use invariant that
   3318 	neither value is zero initially.
   3319 
   3320 2020-09-07  Jonathan Wakely  <jwakely (a] redhat.com>
   3321 
   3322 	* include/std/ranges (__box): Simplify constraints as per LWG 3477.
   3323 
   3324 2020-09-03  Jonathan Wakely  <jwakely (a] redhat.com>
   3325 
   3326 	PR libstdc++/96592
   3327 	* include/std/tuple (_TupleConstraints<true, T...>): Use
   3328 	alternative is_constructible instead of std::is_constructible.
   3329 	* testsuite/20_util/tuple/cons/96592.cc: New test.
   3330 
   3331 2020-09-03  Jonathan Wakely  <jwakely (a] redhat.com>
   3332 
   3333 	* include/std/chrono (duration::_S_gcd): Use iterative algorithm
   3334 	for C++14 and later.
   3335 	* include/std/numeric (__detail::__gcd): Replace recursive
   3336 	Euclidean algorithm with iterative version of binary GCD algorithm.
   3337 	* testsuite/26_numerics/gcd/1.cc: Test additional inputs.
   3338 	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
   3339 	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
   3340 	* testsuite/experimental/numeric/gcd.cc: Test additional inputs.
   3341 	* testsuite/26_numerics/gcd/2.cc: New test.
   3342 
   3343 2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   3344 
   3345 	PR libstdc++/92978
   3346 	* testsuite/experimental/numeric/92978.cc: Use experimental::lcm
   3347 	not std::lcm.
   3348 
   3349 2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   3350 
   3351 	PR libstdc++/96851
   3352 	* include/bits/cpp_type_traits.h (__is_memcmp_ordered):
   3353 	New trait that says if memcmp can be used for ordering.
   3354 	(__is_memcmp_ordered_with): Likewise, for two types.
   3355 	* include/bits/deque.tcc (__lex_cmp_dit): Use new traits
   3356 	instead of __is_byte and __numeric_traits.
   3357 	(__lexicographical_compare_aux1): Likewise.
   3358 	* include/bits/ranges_algo.h (__lexicographical_compare_fn):
   3359 	Likewise.
   3360 	* include/bits/stl_algobase.h (__lexicographical_compare_aux1)
   3361 	(__is_byte_iter): Likewise.
   3362 	* include/std/array (operator<=>): Likewise. Only use memcmp
   3363 	when std::is_constant_evaluated() is false.
   3364 	* testsuite/23_containers/array/comparison_operators/96851.cc:
   3365 	New test.
   3366 	* testsuite/23_containers/array/tuple_interface/get_neg.cc:
   3367 	Adjust dg-error line numbers.
   3368 
   3369 2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   3370 
   3371 	* include/bits/stl_iterator.h: Include <bits/exception_defines.h>
   3372 	for definitions of __try, __catch and __throw_exception_again.
   3373 	(counted_iterator::operator++(int)): Use __throw_exception_again
   3374 	instead of throw.
   3375 	* libsupc++/new: Include <bits/exception.h> not <exception>.
   3376 	* libsupc++/new_opvnt.cc: Include <bits/exception_defines.h>.
   3377 	* testsuite/18_support/destroying_delete.cc: Include
   3378 	<type_traits> for std::is_same_v definition.
   3379 	* testsuite/20_util/variant/index_type.cc: Qualify size_t.
   3380 
   3381 2020-09-01  Jonathan Wakely  <jwakely (a] redhat.com>
   3382 
   3383 	PR libstdc++/71960
   3384 	* include/bits/c++config (__glibcxx_assert_impl): Remove
   3385 	do-while so that uses of the macro need to add it.
   3386 	(__glibcxx_assert): Rename macro for runtime assertions
   3387 	to __glibcxx_assert_2.
   3388 	(__glibcxx_assert_1): Define macro for constexpr assertions.
   3389 	(__glibcxx_assert): Define macro for constexpr and runtime
   3390 	assertions.
   3391 	* include/bits/range_access.h (ranges::advance): Remove
   3392 	redundant precondition checks during constant evaluation.
   3393 	* include/parallel/base.h (_GLIBCXX_PARALLEL_ASSERT): Always
   3394 	use do-while in macro expansion.
   3395 	* include/std/ranges (iota_view::iota_view(W, B)): Remove
   3396 	redundant braces.
   3397 
   3398 2020-09-01  Jonathan Wakely  <jwakely (a] redhat.com>
   3399 
   3400 	* include/std/chrono (duration::_S_gcd(intmax_t, intmax_t)):
   3401 	New helper function for finding GCD of two positive intmax_t
   3402 	values.
   3403 	(duration::__divide): New helper alias for dividing one period
   3404 	by another.
   3405 	(duration::__is_harmonic): Use __divide not ratio_divide.
   3406 	(duration(const duration<R2, P2>&)): Require the duration rep
   3407 	types to be convertible.
   3408 	* testsuite/20_util/duration/cons/dr2094.cc: New test.
   3409 	* testsuite/20_util/duration/requirements/reduced_period.cc:
   3410 	Fix definition of unused member functions in test type.
   3411 	* testsuite/20_util/duration/requirements/typedefs_neg2.cc:
   3412 	Adjust expected errors.
   3413 
   3414 2020-08-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3415 
   3416 	* include/std/numeric (__detail::__absu(bool)): Make deleted
   3417 	function a function template, so it will be chosen for calls
   3418 	with an explicit template argument list.
   3419 	* testsuite/26_numerics/gcd/gcd_neg.cc: Add dg-prune-output.
   3420 	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
   3421 
   3422 2020-08-28  Jonathan Wakely  <jwakely (a] redhat.com>
   3423 
   3424 	* include/std/chrono (common_type): Fix partial specializations
   3425 	for a single duration type to use the common_type of the rep.
   3426 	(duration::operator+, duration::operator-): Fix return types
   3427 	to also use the common_type of the rep.
   3428 	* testsuite/20_util/duration/requirements/reduced_period.cc:
   3429 	Check duration using a rep that has common_type specialized.
   3430 
   3431 2020-08-28  Jonathan Wakely  <jwakely (a] redhat.com>
   3432 
   3433 	PR libstdc++/92978
   3434 	* include/std/numeric (__abs_integral): Replace with ...
   3435 	(__detail::__absu): New function template that returns an
   3436 	unsigned type, guaranteeing it can represent the most
   3437 	negative signed value.
   3438 	(__detail::__gcd, __detail::__lcm): Require arguments to
   3439 	be unsigned and therefore already non-negative.
   3440 	(gcd, lcm): Convert arguments to absolute value as unsigned
   3441 	type before calling __detail::__gcd or __detail::__lcm.
   3442 	* include/experimental/numeric (gcd, lcm): Likewise.
   3443 	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust expected
   3444 	errors.
   3445 	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
   3446 	* testsuite/26_numerics/gcd/92978.cc: New test.
   3447 	* testsuite/26_numerics/lcm/92978.cc: New test.
   3448 	* testsuite/experimental/numeric/92978.cc: New test.
   3449 
   3450 2020-08-27  Jonathan Wakely  <jwakely (a] redhat.com>
   3451 
   3452 	* include/std/chrono (__duration_common_type): Ensure the
   3453 	reduced ratio is used. Remove unused partial specialization
   3454 	using __failure_type.
   3455 	(common_type): Pass reduced ratios to __duration_common_type.
   3456 	Add partial specializations for simple cases involving a single
   3457 	duration or time_point type.
   3458 	(duration::period): Use reduced ratio.
   3459 	(duration::operator+(), duration::operator-()): Return duration
   3460 	type using the reduced ratio.
   3461 	* testsuite/20_util/duration/requirements/typedefs_neg2.cc:
   3462 	Adjust expected errors.
   3463 	* testsuite/20_util/duration/requirements/reduced_period.cc: New test.
   3464 
   3465 2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   3466 
   3467 	* include/std/chrono (year_month::operator+): Properly handle a
   3468 	month value of 0 by casting the month value to int before
   3469 	subtracting 1 from it so that the difference is sign-extended in
   3470 	the subsequent addition.
   3471 	* testsuite/std/time/year_month/1.cc: Test adding months to a
   3472 	year_month whose month component is below or above the
   3473 	normalized range of [1,12].
   3474 
   3475 2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   3476 
   3477 	* include/std/chrono
   3478 	(__detail::__months_years_conversion_disambiguator): Define.
   3479 	(year_month::operator+=): Templatize the 'months'-based overload
   3480 	so that the 'years'-based overload is selected in case of
   3481 	equally-ranked implicit conversion sequences to both 'months'
   3482 	and 'years' from the supplied argument.
   3483 	(year_month::operator-=): Likewise.
   3484 	(year_month::operator+): Likewise.
   3485 	(year_month::operator-): Likewise.
   3486 	(year_month_day::operator+=): Likewise.
   3487 	(year_month_day::operator-=): Likewise.
   3488 	(year_month_day::operator+): Likewise.
   3489 	(year_month_day::operator-): Likewise.
   3490 	(year_month_day_last::operator+=): Likewise.
   3491 	(year_month_day_last::operator-=): Likewise.
   3492 	(year_month_day_last::operator+): Likewise
   3493 	(year_month_day_last::operator-): Likewise.
   3494 	(year_month_day_weekday::operator+=): Likewise
   3495 	(year_month_day_weekday::operator-=): Likewise.
   3496 	(year_month_day_weekday::operator+): Likewise.
   3497 	(year_month_day_weekday::operator-): Likewise.
   3498 	(year_month_day_weekday_last::operator+=): Likewise
   3499 	(year_month_day_weekday_last::operator-=): Likewise.
   3500 	(year_month_day_weekday_last::operator+): Likewise.
   3501 	(year_month_day_weekday_last::operator-): Likewise.
   3502 	(testsuite/std/time/year_month/2.cc): New test.
   3503 	(testsuite/std/time/year_month_day/2.cc): New test.
   3504 	(testsuite/std/time/year_month_day_last/2.cc): New test.
   3505 	(testsuite/std/time/year_month_weekday/2.cc): New test.
   3506 	(testsuite/std/time/year_month_weekday_last/2.cc): New test.
   3507 	* testsuite/std/time/year_month/2.cc: New file.
   3508 	* testsuite/std/time/year_month_day/2.cc: New file.
   3509 	* testsuite/std/time/year_month_day_last/2.cc: New file.
   3510 	* testsuite/std/time/year_month_weekday/2.cc: New file.
   3511 	* testsuite/std/time/year_month_weekday_last/2.cc: New file.
   3512 
   3513 2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   3514 
   3515 	PR libstdc++/95322
   3516 	* include/std/ranges (transform_view::sentinel::__distance_from):
   3517 	Give this a deduced return type.
   3518 	(transform_view::sentinel::operator-): Adjust the return type so
   3519 	that it's based on the constness of the iterator rather than
   3520 	that of the sentinel.
   3521 	* testsuite/std/ranges/adaptors/95322.cc: Refer to LWG 3488.
   3522 
   3523 2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   3524 
   3525 	* include/std/ranges (elements_view::begin): Adjust constraints.
   3526 	(elements_view::end): Likewise.
   3527 	(elements_view::_Sentinel::operator==): Templatize to take both
   3528 	_Iterator<true> and _Iterator<false>.
   3529 	(elements_view::_Sentinel::operator-): Likewise.
   3530 	* testsuite/std/ranges/adaptors/elements.cc: Add testcase for
   3531 	the example from P1994R1.
   3532 	* testsuite/std/ranges/adaptors/lwg3406.cc: New test.
   3533 
   3534 2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   3535 
   3536 	* include/std/ranges (elements_view::end): Replace these two
   3537 	overloads with four new overloads.
   3538 	(elements_view::_Iterator::operator==): Remove.
   3539 	(elements_view::_Iterator::operator-): Likewise.
   3540 	(elements_view::_Sentinel): Define.
   3541 
   3542 2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   3543 
   3544 	* include/std/tuple (_Tuple_impl): Whitespaces changes for
   3545 	consistent indentation. Also use __enable_if_t alias template.
   3546 
   3547 2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   3548 
   3549 	PR libstdc++/96803
   3550 	* include/std/tuple
   3551 	(_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
   3552 	Replace parameter pack with a type parameter and a pack and pass
   3553 	the first type to __use_alloc.
   3554 	* testsuite/20_util/tuple/cons/96803.cc: New test.
   3555 
   3556 2020-08-26  Patrick Palka  <ppalka (a] redhat.com>
   3557 
   3558 	* include/std/chrono (year_month_weekday::operator==): Compare
   3559 	weekday_indexed instead of weekday.
   3560 	* testsuite/std/time/year_month_weekday/1.cc: Augment testcase.
   3561 
   3562 2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   3563 
   3564 	* include/bits/hashtable_policy.h (_Hash_code_base): Change
   3565 	index of _Hashtable_ebo_helper base class.
   3566 	* testsuite/23_containers/unordered_map/dup_types.cc: New test.
   3567 
   3568 2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   3569 
   3570 	PR libstdc++/71960
   3571 	* include/experimental/string_view (basic_string_view):
   3572 	Enable debug assertions.
   3573 	* include/std/string_view (basic_string_view):
   3574 	Likewise.
   3575 
   3576 2020-08-26  Franois Dumont  <fdumont (a] gcc.gnu.org>
   3577 
   3578 	* include/bits/hashtable_policy.h (_Hashtable<>): Rename _H1 into _Hash
   3579 	_H2 into _RangeHash and _Hash into _Unused.
   3580 	(_Hastable_base<>): Likewise.
   3581 	(_Map_base<>): Likewise.
   3582 	(_Insert_base<>): Likewise.
   3583 	(_Insert<>): Likewise.
   3584 	(_Rehash_base<>): Likewise.
   3585 	(_Local_iterator_base<>): Likewise.
   3586 	(_Hash_code_base<>): Likewise.
   3587 	(_Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false>):
   3588 	Remove.
   3589 	(_Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, true>):
   3590 	Remove.
   3591 	(_Hash_code_base<_Key, _Value, _ExtractKey, _Hash, _RangeHas, _Unused,
   3592 	bool>): Remove _Hashtable_ebo_helper<2, _RangeHash> base type..
   3593 	(_Hash_code_base<>::_M_bucket_index(const _Key&, __hash_code, size_t)):
   3594 	Replace by...
   3595 	(_Hash_code_base<>::_M_bucket_index(__hash_code, size_t)): ...this.
   3596 	(_Local_iterator<>): Remove _H1 and _H2 template parameters.
   3597 	(_Local_const_iterator<>): Likewise.
   3598 	(_Equality<>): Likewise.
   3599 	(_Map_base<>::operator[](const key_type&): Adapt.
   3600 	(_Map_base<>::operator[](key_type&&): Adapt.
   3601 	(_Identity::operator()): Add noexcept.
   3602 	(_Select1st::operator()): Likewise.
   3603 	(_Hash_code_base<>): Remove _Hashtable_ebo_helper<0, _ExtractKey> base
   3604 	type.
   3605 	(_Hash_code_base::_M_extract): Remove.
   3606 	* include/bits/hashtable.h (_Hashtable<>): Remove _H1 and _H2 template
   3607 	parameters. Remove _ExtractKey from constructors.
   3608 	(_Hashtable<>::_M_insert_unique_node(const key_type&, size_t,
   3609 	__hash_code, __node_type*, size_t)): Replace by...
   3610 	(_Hashtable<>::_M_insert_unique_node(size_t, __hash_code,
   3611 	 __node_type*, size_t)): ...this.
   3612 	(_Hashtable<>::_M_insert_muti_node(__node_type*, const key_type&,
   3613 	__hash_code, __node_type*)): Replace by...
   3614 	(_Hashtable<>::_M_insert_multi_node(__node_type*, __hash_code,
   3615 	__node_type*)): ...this.
   3616 	(_Hashtable<>::__key_extract): Remove.
   3617 	* include/bits/node_handle.h: Adapt.
   3618 
   3619 2020-08-25  Jonathan Wakely  <jwakely (a] redhat.com>
   3620 
   3621 	* testsuite/21_strings/debug/iterator_self_move_assign_neg.cc: Removed.
   3622 	* testsuite/21_strings/debug/self_move_assign_neg.cc: Removed.
   3623 	* testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc: Removed.
   3624 	* testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Removed.
   3625 	* testsuite/23_containers/forward_list/debug/iterator_self_move_assign_neg.cc: Removed.
   3626 	* testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc: Removed.
   3627 	* testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc: Removed.
   3628 	* testsuite/23_containers/list/debug/self_move_assign_neg.cc: Removed.
   3629 	* testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc: Removed.
   3630 	* testsuite/23_containers/map/debug/self_move_assign_neg.cc: Removed.
   3631 	* testsuite/23_containers/multimap/debug/iterator_self_move_assign_neg.cc: Removed.
   3632 	* testsuite/23_containers/multimap/debug/self_move_assign_neg.cc: Removed.
   3633 	* testsuite/23_containers/multiset/debug/iterator_self_move_assign_neg.cc: Removed.
   3634 	* testsuite/23_containers/multiset/debug/self_move_assign_neg.cc: Removed.
   3635 	* testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc: Removed.
   3636 	* testsuite/23_containers/set/debug/self_move_assign_neg.cc: Removed.
   3637 	* testsuite/23_containers/unordered_map/debug/iterator_self_move_assign_neg.cc: Removed.
   3638 	* testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc: Removed.
   3639 	* testsuite/23_containers/unordered_multimap/debug/iterator_self_move_assign_neg.cc:
   3640 	Removed.
   3641 	* testsuite/23_containers/unordered_multimap/debug/self_move_assign_neg.cc: Removed.
   3642 	* testsuite/23_containers/unordered_multiset/debug/iterator_self_move_assign_neg.cc:
   3643 	Removed.
   3644 	* testsuite/23_containers/unordered_multiset/debug/self_move_assign_neg.cc: Removed.
   3645 	* testsuite/23_containers/unordered_set/debug/iterator_self_move_assign_neg.cc: Removed.
   3646 	* testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc: Removed.
   3647 	* testsuite/23_containers/vector/debug/iterator_self_move_assign_neg.cc: Removed.
   3648 	* testsuite/23_containers/vector/debug/self_move_assign_neg.cc: Removed.
   3649 
   3650 2020-08-25  Patrick Palka  <ppalka (a] redhat.com>
   3651 
   3652 	* include/std/chrono (year_month_weekday::ok): Fix assert.
   3653 
   3654 2020-08-25  Jonathan Wakely  <jwakely (a] redhat.com>
   3655 
   3656 	* include/std/future (future, shared_future. promise): Add
   3657 	is_destructible assertion (LWG 3466). Adjust string-literal for
   3658 	!is_array and !is_function assertions.
   3659 	* testsuite/30_threads/future/requirements/lwg3458.cc: Check
   3660 	types with no accessible destructor. Adjust expected errors.
   3661 	* testsuite/30_threads/promise/requirements/lwg3466.cc:
   3662 	Likewise.
   3663 	* testsuite/30_threads/shared_future/requirements/lwg3458.cc:
   3664 	Likewise.
   3665 
   3666 2020-08-25  Patrick Palka  <ppalka (a] redhat.com>
   3667 	    Ed Smith-Rowland  <3dw4rd (a] verizon.net>
   3668 	    Jonathan Wakely  <jwakely (a] redhat.com>
   3669 
   3670 	* include/std/chrono (time_point::operator++)
   3671 	(time_point::operator--): Define.
   3672 	(utc_clock, tai_clock, gps_clock): Forward declare.
   3673 	(utc_time, utc_seconds, tai_time, tai_seconds, gps_time)
   3674 	(gps_seconds): Define.
   3675 	(is_clock<utc_clock>, is_clock<tai_clock>, is_clock<gps_clock>)
   3676 	(is_clock_v<utc_clock>, is_clock_v<tai_clock>)
   3677 	(is_clock_v<gps_clock>): Define these specializations.
   3678 	(leap_second_info): Define.
   3679 	(day, month, year, weekday, weekday_indexed)
   3680 	(weekday_last, month_day, month_day_last, month_weekday)
   3681 	(month_weekday_last, year_month, year_month_day)
   3682 	(year_month_day_last, year_month_weekday, year_month_weekday_last):
   3683 	Declare and later define.
   3684 	(last_spec, last, __detail::__days_per_month)
   3685 	(__detail::__days_per_month, __detail::__last_day): Define.
   3686 	(January, February, March, April, May, June, July, August)
   3687 	(September, October, November, December, Sunday, Monday, Tuesday)
   3688 	(Wednesday, Thursday, Friday, Saturday): Define.
   3689 	(weekday::operator[]): Define out-of-line.
   3690 	(year_month_day::_S_from_days, year_month_day::M_days_since_epoch):
   3691 	Likewise.
   3692 	(year_month_day::year_month_day, year_month_day::ok): Likewise.
   3693 	(__detail::__pow10, hh_mm_ss): Define.
   3694 	(literals::chrono_literals::operator""d)
   3695 	(literals::chrono_literals::operator""y): Define.
   3696 	(is_am, is_pm, make12, make24): Define.
   3697 	* testsuite/20_util/time_point/4.cc: New test.
   3698 	* testsuite/std/time/day/1.cc: New test.
   3699 	* testsuite/std/time/hh_mm_ss/1.cc: New test.
   3700 	* testsuite/std/time/is_am/1.cc: New test.
   3701 	* testsuite/std/time/is_pm/1.cc: New test.
   3702 	* testsuite/std/time/make12/1.cc: New test.
   3703 	* testsuite/std/time/make24/1.cc: New test.
   3704 	* testsuite/std/time/month/1.cc: New test.
   3705 	* testsuite/std/time/month_day/1.cc: New test.
   3706 	* testsuite/std/time/month_day_last/1.cc: New test.
   3707 	* testsuite/std/time/month_weekday/1.cc: New test.
   3708 	* testsuite/std/time/month_weekday_last/1.cc: New test.
   3709 	* testsuite/std/time/weekday/1.cc: New test.
   3710 	* testsuite/std/time/weekday_indexed/1.cc: New test.
   3711 	* testsuite/std/time/weekday_last/1.cc: New test.
   3712 	* testsuite/std/time/year/1.cc: New test.
   3713 	* testsuite/std/time/year_month/1.cc: New test.
   3714 	* testsuite/std/time/year_month_day/1.cc: New test.
   3715 	* testsuite/std/time/year_month_day_last/1.cc: New test.
   3716 	* testsuite/std/time/year_month_weekday/1.cc: New test.
   3717 	* testsuite/std/time/year_month_weekday_last/1.cc: New test.
   3718 
   3719 2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3720 
   3721 	* include/std/ranges (join_view): Add deduction guide (LWG 3474).
   3722 	* testsuite/std/ranges/adaptors/join_lwg3474.cc: New test.
   3723 
   3724 2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3725 
   3726 	* include/bits/iterator_concepts.h (indirectly_readable): Add
   3727 	partial specializations to resolve ambiguities (LWG 3446).
   3728 	* testsuite/24_iterators/associated_types/readable.traits.cc:
   3729 	Check types with both value_type and element_type.
   3730 
   3731 2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3732 
   3733 	* include/std/ranges (ranges::iota_view::size()): Perform all
   3734 	calculations in the right unsigned types.
   3735 	* testsuite/std/ranges/iota/size.cc: New test.
   3736 
   3737 2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3738 
   3739 	PR libstdc++/96766
   3740 	* include/std/variant (_Variant_storage): Replace implicit
   3741 	conversions from size_t to __index_type with explicit casts.
   3742 
   3743 2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3744 
   3745 	* testsuite/30_threads/packaged_task/cons/alloc.cc: Run for
   3746 	C++11 and skip for C++17 or later.
   3747 
   3748 2020-08-24  Corentin Gay  <gay (a] adacore.com>
   3749 
   3750 	* testsuite/20_util/shared_ptr/atomic/3.cc: Do not require POSIX
   3751 	threads and add -pthread only on targets supporting them.
   3752 	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
   3753 	Likewise.
   3754 	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
   3755 	Likewise.
   3756 	* testsuite/30_threads/async/42819.cc: Likewise.
   3757 	* testsuite/30_threads/async/49668.cc: Likewise.
   3758 	* testsuite/30_threads/async/54297.cc: Likewise.
   3759 	* testsuite/30_threads/async/any.cc: Likewise.
   3760 	* testsuite/30_threads/async/async.cc: Likewise.
   3761 	* testsuite/30_threads/async/except.cc: Likewise.
   3762 	* testsuite/30_threads/async/launch.cc: Likewise.
   3763 	* testsuite/30_threads/async/lwg2021.cc: Likewise.
   3764 	* testsuite/30_threads/async/sync.cc: Likewise. : Likewise.
   3765 	* testsuite/30_threads/call_once/39909.cc: Likewise.
   3766 	* testsuite/30_threads/call_once/49668.cc: Likewise.
   3767 	* testsuite/30_threads/call_once/60497.cc: Likewise.
   3768 	* testsuite/30_threads/call_once/call_once1.cc: Likewise.
   3769 	* testsuite/30_threads/call_once/dr2442.cc: Likewise.
   3770 	* testsuite/30_threads/condition_variable/54185.cc: Likewise.
   3771 	* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
   3772 	* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
   3773 	* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
   3774 	* testsuite/30_threads/condition_variable/members/3.cc: Likewise.
   3775 	* testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
   3776 	* testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
   3777 	* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
   3778 	Likewise.
   3779 	* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
   3780 	* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
   3781 	* testsuite/30_threads/condition_variable_any/cond.cc: Likewise.
   3782 	* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
   3783 	* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
   3784 	* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
   3785 	* testsuite/30_threads/future/cons/move.cc: Likewise.
   3786 	* testsuite/30_threads/future/members/45133.cc: Likewise.
   3787 	* testsuite/30_threads/future/members/get.cc: Likewise.
   3788 	* testsuite/30_threads/future/members/get2.cc: Likewise.
   3789 	* testsuite/30_threads/future/members/share.cc: Likewise.
   3790 	* testsuite/30_threads/future/members/valid.cc: Likewise.
   3791 	* testsuite/30_threads/future/members/wait.cc: Likewise.
   3792 	* testsuite/30_threads/future/members/wait_for.cc: Likewise.
   3793 	* testsuite/30_threads/future/members/wait_until.cc: Likewise.
   3794 	* testsuite/30_threads/lock/1.cc: Likewise.
   3795 	* testsuite/30_threads/lock/2.cc: Likewise.
   3796 	* testsuite/30_threads/lock/3.cc: Likewise.
   3797 	* testsuite/30_threads/lock/4.cc: Likewise.
   3798 	* testsuite/30_threads/mutex/cons/1.cc: Likewise.
   3799 	* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
   3800 	* testsuite/30_threads/mutex/lock/1.cc: Likewise.
   3801 	* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
   3802 	* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
   3803 	* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
   3804 	* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
   3805 	* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
   3806 	* testsuite/30_threads/mutex/unlock/2.cc: Likewise.
   3807 	* testsuite/30_threads/packaged_task/49668.cc: Likewise.
   3808 	* testsuite/30_threads/packaged_task/60564.cc: Likewise.
   3809 	* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
   3810 	* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
   3811 	* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
   3812 	* testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
   3813 	* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
   3814 	* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
   3815 	* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
   3816 	* testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
   3817 	Likewise.
   3818 	* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
   3819 	* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
   3820 	* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
   3821 	* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
   3822 	* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
   3823 	* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
   3824 	* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
   3825 	* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
   3826 	* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
   3827 	* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
   3828 	* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
   3829 	* testsuite/30_threads/promise/60966.cc: Likewise.
   3830 	* testsuite/30_threads/promise/cons/1.cc: Likewise.
   3831 	* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
   3832 	* testsuite/30_threads/promise/cons/move.cc: Likewise.
   3833 	* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
   3834 	* testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
   3835 	* testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
   3836 	* testsuite/30_threads/promise/members/get_future.cc: Likewise.
   3837 	* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
   3838 	* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
   3839 	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
   3840 	* testsuite/30_threads/promise/members/set_value.cc: Likewise.
   3841 	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
   3842 	* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
   3843 	* testsuite/30_threads/promise/members/swap.cc: Likewise.
   3844 	* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
   3845 	* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
   3846 	Likewise.
   3847 	* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
   3848 	* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
   3849 	* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
   3850 	Likewise.
   3851 	* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
   3852 	* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
   3853 	* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
   3854 	* testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
   3855 	* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
   3856 	* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
   3857 	Likewise.
   3858 	* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
   3859 	* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
   3860 	* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
   3861 	Likewise.
   3862 	* testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
   3863 	Likewise.
   3864 	* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
   3865 	* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
   3866 	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
   3867 	Likewise.
   3868 	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
   3869 	Likewise.
   3870 	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
   3871 	Likewise.
   3872 	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
   3873 	Likewise.
   3874 	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
   3875 	Likewise.
   3876 	* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
   3877 	* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
   3878 	* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
   3879 	* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
   3880 	* testsuite/30_threads/shared_future/members/get.cc: Likewise.
   3881 	* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
   3882 	* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
   3883 	* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
   3884 	* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
   3885 	* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
   3886 	* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
   3887 	* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
   3888 	* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
   3889 	* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
   3890 	* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
   3891 	* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
   3892 	* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
   3893 	* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
   3894 	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
   3895 	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
   3896 	* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
   3897 	* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
   3898 	* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
   3899 	* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
   3900 	* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
   3901 	* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
   3902 	* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
   3903 	* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
   3904 	* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
   3905 	* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
   3906 	* testsuite/30_threads/this_thread/1.cc: Likewise.
   3907 	* testsuite/30_threads/this_thread/sleep_for-mt.cc: Likewise.
   3908 	* testsuite/30_threads/this_thread/sleep_until-mt.cc: Likewise.
   3909 	* testsuite/30_threads/thread/cons/1.cc: Likewise.
   3910 	* testsuite/30_threads/thread/cons/2.cc: Likewise.
   3911 	* testsuite/30_threads/thread/cons/3.cc: Likewise.
   3912 	* testsuite/30_threads/thread/cons/4.cc: Likewise.
   3913 	* testsuite/30_threads/thread/cons/49668.cc: Likewise.
   3914 	* testsuite/30_threads/thread/cons/5.cc: Likewise.
   3915 	* testsuite/30_threads/thread/cons/6.cc: Likewise.
   3916 	* testsuite/30_threads/thread/cons/7.cc: Likewise.
   3917 	* testsuite/30_threads/thread/cons/8.cc: Likewise.
   3918 	* testsuite/30_threads/thread/cons/9.cc: Likewise.
   3919 	* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
   3920 	* testsuite/30_threads/thread/cons/terminate.cc: Likewise.
   3921 	* testsuite/30_threads/thread/members/1.cc: Likewise.
   3922 	* testsuite/30_threads/thread/members/2.cc: Likewise.
   3923 	* testsuite/30_threads/thread/members/3.cc: Likewise.
   3924 	* testsuite/30_threads/thread/members/4.cc: Likewise.
   3925 	* testsuite/30_threads/thread/members/5.cc: Likewise.
   3926 	* testsuite/30_threads/thread/members/hardware_concurrency.cc:
   3927 	Likewise.
   3928 	* testsuite/30_threads/thread/native_handle/typesizes.cc: Likewise.
   3929 	* testsuite/30_threads/thread/swap/1.cc: Likewise.
   3930 	* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
   3931 	* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
   3932 	Likewise.
   3933 	* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
   3934 	* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
   3935 	* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
   3936 	Likewise.
   3937 	* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
   3938 	* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
   3939 	* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
   3940 	* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
   3941 	* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
   3942 	* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
   3943 	* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
   3944 	* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
   3945 	* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
   3946 	* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
   3947 	* testsuite/30_threads/try_lock/1.cc: Likewise.
   3948 	* testsuite/30_threads/try_lock/2.cc: Likewise.
   3949 	* testsuite/30_threads/try_lock/3.cc: Likewise.
   3950 	* testsuite/30_threads/try_lock/4.cc: Likewise.
   3951 	* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
   3952 	* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
   3953 	* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
   3954 	* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
   3955 	* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
   3956 	* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
   3957 	* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
   3958 	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
   3959 	* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
   3960 	* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
   3961 	* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
   3962 
   3963 2020-08-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3964 
   3965 	PR libstdc++/96736
   3966 	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Do not
   3967 	test "cold" on darwin.
   3968 	* testsuite/17_intro/headers/c++2011/all_attributes.cc:
   3969 	Likewise.
   3970 	* testsuite/17_intro/headers/c++2014/all_attributes.cc:
   3971 	Likewise.
   3972 	* testsuite/17_intro/headers/c++2017/all_attributes.cc:
   3973 	Likewise.
   3974 	* testsuite/17_intro/headers/c++2020/all_attributes.cc:
   3975 	Likewise.
   3976 
   3977 2020-08-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3978 
   3979 	PR libstdc++/96718
   3980 	* testsuite/25_algorithms/pstl/feature_test-2.cc: Require
   3981 	tbb-backend effective target.
   3982 	* testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
   3983 	* testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
   3984 	* testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
   3985 
   3986 2020-08-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3987 
   3988 	* include/bits/iterator_concepts.h [__STRICT_ANSI__]
   3989 	(incrementable_traits<__int128>): Define specialization.
   3990 	(incrementable_traits<unsigned __int128>): Likewise.
   3991 	* testsuite/std/ranges/iota/96042.cc: Test iota_view with
   3992 	__int128.
   3993 
   3994 2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   3995 	    Patrick Palka  <ppalka (a] redhat.com>
   3996 
   3997 	PR libstdc++/96042
   3998 	* include/bits/range_access.h (__detail::__to_unsigned_like):
   3999 	Do not use make_unsigned_t<T> in the return type, as it can
   4000 	result in an error before the integral<T> constraint is checked.
   4001 	[__STRICT_ANSI__]: Add overloads for 128-bit integer types.
   4002 	(__detail::__make_unsigned_like_t): Define as the return type
   4003 	of __to_unsigned_like.
   4004 	* testsuite/std/ranges/subrange/96042.cc: New test.
   4005 
   4006 2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   4007 
   4008 	* include/bits/stl_tree.h (operator!=, operator>, operator<=)
   4009 	(operator>=): Remove deprecated functions.
   4010 
   4011 2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   4012 
   4013 	PR libstdc++/96042
   4014 	* include/ext/numeric_traits.h (__is_integer_nonstrict): New
   4015 	trait which is true for 128-bit integers even in strict modes.
   4016 	(__numeric_traits_integer, __numeric_traits): Use
   4017 	__is_integer_nonstrict instead of __is_integer.
   4018 	* include/std/limits [__STRICT_ANSI__ && __SIZEOF_INT128__]
   4019 	(numeric_limits<__int128>, (numeric_limits<unsigned __int128>):
   4020 	Define.
   4021 	* testsuite/std/ranges/iota/96042.cc: New test.
   4022 
   4023 2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   4024 
   4025 	* include/bits/c++config (_GLIBCXX_DEPRECATED_SUGGEST)
   4026 	(_GLIBCXX11_DEPRECATED, _GLIBCXX11_DEPRECATED_SUGGEST)
   4027 	(_GLIBCXX17_DEPRECATED_SUGGEST, _GLIBCXX20_DEPRECATED_SUGGEST):
   4028 	Add new macros to comment.
   4029 
   4030 2020-08-19  Patrick Palka  <ppalka (a] redhat.com>
   4031 
   4032 	* include/Makefile.am (bits_headers): Add new header
   4033 	<bits/max_size_type.h>.
   4034 	* include/Makefile.in: Regenerate.
   4035 	* include/bits/iterator_concepts.h
   4036 	(ranges::__detail::__max_diff_type): Remove definition, replace
   4037 	with forward declaration of class __max_diff_type.
   4038 	(__detail::__max_size_type): Remove definition, replace with
   4039 	forward declaration of class __max_size_type.
   4040 	(__detail::__is_unsigned_int128, __is_signed_int128)
   4041 	(__is_int128): New concepts.
   4042 	(__detail::__is_integer_like): Accept __int128 and unsigned
   4043 	__int128.
   4044 	(__detail::__is_signed_integer_like): Accept __int128.
   4045 	* include/bits/max_size_type.h: New header.
   4046 	* include/bits/range_access.h: Include <bits/max_size_type.h>.
   4047 	(__detail::__to_unsigned_like): Two new overloads.
   4048 	* testsuite/std/ranges/iota/difference_type.cc: New test.
   4049 	* testsuite/std/ranges/iota/max_size_type.cc: New test.
   4050 
   4051 2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   4052 
   4053 	* include/bits/c++config (_GLIBCXX_DEPRECATED): Define for all
   4054 	standard modes.
   4055 	(_GLIBCXX_DEPRECATED_SUGGEST): New macro for "use 'foo' instead"
   4056 	message in deprecated warnings.
   4057 	(_GLIBCXX11_DEPRECATED, _GLIBCXX11_DEPRECATED_SUGGEST): New
   4058 	macros for marking features deprecated in C++11.
   4059 	(_GLIBCXX17_DEPRECATED_SUGGEST, _GLIBCXX20_DEPRECATED_SUGGEST):
   4060 	New macros.
   4061 	* include/backward/auto_ptr.h (auto_ptr_ref, auto_ptr<void>):
   4062 	Use _GLIBCXX11_DEPRECATED instead of _GLIBCXX_DEPRECATED.
   4063 	(auto_ptr): Use _GLIBCXX11_DEPRECATED_SUGGEST.
   4064 	* include/backward/binders.h (binder1st, binder2nd): Likewise.
   4065 	* include/bits/ios_base.h (io_state, open_mode, seek_dir)
   4066 	(streampos, streamoff): Use _GLIBCXX_DEPRECATED_SUGGEST.
   4067 	* include/std/streambuf (stossc): Replace C++11 attribute
   4068 	with _GLIBCXX_DEPRECATED_SUGGEST.
   4069 	* include/std/type_traits (__is_nullptr_t): Use
   4070 	_GLIBCXX_DEPRECATED_SUGGEST instead of _GLIBCXX_DEPRECATED.
   4071 	* testsuite/27_io/types/1.cc: Check for deprecated warnings.
   4072 	Also check for io_state, open_mode and seek_dir typedefs.
   4073 
   4074 2020-08-19  Antony Polukhin  <antoshkka (a] gmail.com>
   4075 
   4076 	PR libstdc++/71579
   4077 	* include/std/type_traits (invoke_result, is_nothrow_invocable_r)
   4078 	Add static_asserts to make sure that the argument of the type
   4079 	trait is not misused with incomplete types.
   4080 	(is_swappable_with, is_nothrow_swappable_with): Add static_asserts
   4081 	to make sure that the first and second arguments of the type trait
   4082 	are not misused with incomplete types.
   4083 	* testsuite/20_util/invoke_result/incomplete_neg.cc: New test.
   4084 	* testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc: New test.
   4085 	* testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc: New test.
   4086 	* testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc: New
   4087 	test.
   4088 	* testsuite/20_util/is_swappable_with/incomplete_neg.cc: New test.
   4089 
   4090 2020-08-18  David Edelsohn  <dje.gcc (a] gmail.com>
   4091 	    Clement Chigot  <clement.chigot (a] atos.net>
   4092 
   4093 	* config/os/aix/t-aix: Add complementary mode object files to
   4094 	libsupc++.a
   4095 
   4096 2020-08-18  Jonathan Wakely  <jwakely (a] redhat.com>
   4097 
   4098 	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Check
   4099 	"cold" isn't used in the library. Also check <cxxabi.h>.
   4100 	* testsuite/17_intro/headers/c++2011/all_attributes.cc:
   4101 	Likewise.
   4102 	* testsuite/17_intro/headers/c++2014/all_attributes.cc:
   4103 	Likewise.
   4104 	* testsuite/17_intro/headers/c++2017/all_attributes.cc:
   4105 	Likewise.
   4106 	* testsuite/17_intro/headers/c++2020/all_attributes.cc:
   4107 	Likewise.
   4108 
   4109 2020-08-18  Jonathan Wakely  <jwakely (a] redhat.com>
   4110 
   4111 	PR libstdc++/69724
   4112 	* include/std/future (__future_base::_S_make_deferred_state)
   4113 	(__future_base::_S_make_async_state): Remove.
   4114 	(__future_base::_Deferred_state): Change constructor to accept a
   4115 	parameter pack of arguments and forward them to the call
   4116 	wrapper.
   4117 	(__future_base::_Async_state_impl): Likewise. Replace lambda
   4118 	expression with a named member function.
   4119 	(async): Construct state object directly from the arguments,
   4120 	instead of using thread::__make_invoker, _S_make_deferred_state
   4121 	and _S_make_async_state. Move shared state into the returned
   4122 	future.
   4123 	* include/std/thread (thread::_Call_wrapper): New alias
   4124 	template for use by constructor and std::async.
   4125 	(thread::thread(Callable&&, Args&&...)): Create state object
   4126 	directly instead of using _S_make_state.
   4127 	(thread::__make_invoker, thread::__decayed_tuple)
   4128 	(thread::_S_make_state): Remove.
   4129 	* testsuite/30_threads/async/69724.cc: New test.
   4130 
   4131 2020-08-17  Jonathan Wakely  <jwakely (a] redhat.com>
   4132 
   4133 	PR libstdc++/55713
   4134 	PR libstdc++/71096
   4135 	PR libstdc++/93147
   4136 	* include/std/tuple [__has_cpp_attribute(no_unique_address)]
   4137 	(_Head_base<Idx, Head, true>): New definition of the partial
   4138 	specialization, using [[no_unique_address]] instead of
   4139 	inheritance.
   4140 	* testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
   4141 	output.
   4142 	* testsuite/20_util/tuple/comparison_operators/93147.cc: New test.
   4143 	* testsuite/20_util/tuple/creation_functions/55713.cc: New test.
   4144 	* testsuite/20_util/tuple/element_access/71096.cc: New test.
   4145 
   4146 2020-08-14  Lewis Hyatt  <lhyatt (a] gmail.com>
   4147 
   4148 	* testsuite/lib/libstdc++.exp: Use the new option
   4149 	-fdiagnostics-plain-output.
   4150 
   4151 2020-08-13  Jonathan Wakely  <jwakely (a] redhat.com>
   4152 
   4153 	* acinclude.m4 (GLIBCXX_ENABLE_CHEADERS): Warn if the c_std
   4154 	option is used and fail unless --enable-cheaders-obsolete is
   4155 	also used.
   4156 	* configure: Regenerate.
   4157 
   4158 2020-08-12  Jonathan Wakely  <jwakely (a] redhat.com>
   4159 
   4160 	PR libstdc++/85828
   4161 	* include/bits/basic_string.h (operator=(basic_string&&)): Check
   4162 	for self-move before copying with char_traits::copy.
   4163 	* include/bits/hashtable.h (operator=(_Hashtable&&)): Check for
   4164 	self-move.
   4165 	* include/bits/stl_deque.h (_M_move_assign1(deque&&, false_type)):
   4166 	Check for equal allocators.
   4167 	* include/bits/stl_list.h (_M_move_assign(list&&, true_type)):
   4168 	Call clear() instead of _M_clear().
   4169 	* include/debug/formatter.h (__msg_self_move_assign): Change
   4170 	comment.
   4171 	* include/debug/macros.h (__glibcxx_check_self_move_assign):
   4172 	(_GLIBCXX_DEBUG_VERIFY): Remove.
   4173 	* include/debug/safe_container.h (operator=(_Safe_container&&)):
   4174 	Remove assertion check for safe move and make it well-defined.
   4175 	* include/debug/safe_iterator.h (operator=(_Safe_iterator&&)):
   4176 	Remove assertion check for self-move.
   4177 	* include/debug/safe_local_iterator.h
   4178 	(operator=(_Safe_local_iterator&&)): Likewise.
   4179 	* testsuite/21_strings/basic_string/cons/char/self_move.cc: New test.
   4180 	* testsuite/23_containers/deque/cons/self_move.cc: New test.
   4181 	* testsuite/23_containers/forward_list/cons/self_move.cc: New test.
   4182 	* testsuite/23_containers/list/cons/self_move.cc: New test.
   4183 	* testsuite/23_containers/set/cons/self_move.cc: New test.
   4184 	* testsuite/23_containers/unordered_set/cons/self_move.cc: New test.
   4185 	* testsuite/23_containers/vector/cons/self_move.cc: New test.
   4186 
   4187 2020-08-11  Franois Dumont  <fdumont (a] gcc.gnu.org>
   4188 
   4189 	PR libstdc++/91620
   4190 	* include/bits/forward_list.tcc (forward_list<>::remove): Collect nodes
   4191 	to destroy in an intermediate forward_list.
   4192 	(forward_list<>::remove_if, forward_list<>::unique): Likewise.
   4193 	* include/bits/list.tcc (list<>::remove, list<>::unique): Likewise.
   4194 	(list<>::remove_if): Likewise.
   4195 	* include/debug/forward_list (forward_list<>::_M_erase_after): Remove.
   4196 	(forward_list<>::erase_after): Adapt.
   4197 	(forward_list<>::remove, forward_list<>::remove_if): Collect nodes to
   4198 	destroy in an intermediate forward_list.
   4199 	(forward_list<>::unique): Likewise.
   4200 	* include/debug/list (list<>::remove, list<>::unique): Likewise.
   4201 	(list<>::remove_if): Likewise.
   4202 	* testsuite/23_containers/forward_list/operations/91620.cc: New test.
   4203 	* testsuite/23_containers/list/operations/91620.cc: New test.
   4204 
   4205 2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   4206 
   4207 	* testsuite/30_threads/thread/cons/84535.cc: Use a custom
   4208 	namespace.
   4209 	* testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
   4210 
   4211 2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   4212 
   4213 	PR libstdc++/89760
   4214 	* include/experimental/executor [!_GLIBCXX_HAS_GTHREADS]:
   4215 	(execution_context::mutex_type): Define dummy mutex type.
   4216 	(system_context): Use execution_context::mutex_type.
   4217 	(system_context) [!_GLIBCXX_HAS_GTHREADS]: Define dummy
   4218 	thread and condition variable types.
   4219 	[!_GLIBCXX_HAS_GTHREADS] (system_context::_M_run()): Do not
   4220 	define.
   4221 	(system_context::_M_post) [!_GLIBCXX_HAS_GTHREADS]: Throw
   4222 	an exception when threads aren't available.
   4223 	(strand::running_in_this_thread()): Defer to _M_state.
   4224 	(strand::_State::running_in_this_thread()): New function.
   4225 	(use_future_t): Do not depend on _GLIBCXX_USE_C99_STDINT_TR1.
   4226 	* include/experimental/io_context (io_context): Use the
   4227 	execution_context::mutex_type alias. Replace stack of thread
   4228 	IDs with counter.
   4229 	* testsuite/experimental/net/execution_context/use_service.cc:
   4230 	Enable test for non-pthread targets.
   4231 
   4232 2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   4233 
   4234 	* include/experimental/executor (system_context::a__tag): Make
   4235 	default constructor explicit.
   4236 
   4237 2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   4238 
   4239 	* include/experimental/executor (system_context::_M_run()):
   4240 	Fix predicate.
   4241 	* testsuite/experimental/net/system_context/1.cc: New test.
   4242 
   4243 2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   4244 
   4245 	* include/std/stop_token: Check _GLIBCXX_HAS_GTHREADS using
   4246 	#ifdef instead of #if.
   4247 	(stop_token::_S_yield()): Check _GLIBCXX_HAS_GTHREADS before
   4248 	using __gthread_yield.
   4249 
   4250 2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   4251 
   4252 	* include/std/thread [!_GLIBCXX_HAS_GTHREADS] (this_thread::yield)
   4253 	(this_thread::sleep_until): Define.
   4254 	[!_GLIBCXX_HAS_GTHREADS] (this_thread::sleep_for): Define. Replace
   4255 	use of __gthread_time_t typedef with timespec.
   4256 	* src/c++11/thread.cc [!_GLIBCXX_HAS_GTHREADS] (__sleep_for):
   4257 	Likewise.
   4258 	* testsuite/30_threads/this_thread/2.cc: Moved to...
   4259 	* testsuite/30_threads/this_thread/yield.cc: ...here.
   4260 	* testsuite/30_threads/this_thread/3.cc: Moved to...
   4261 	* testsuite/30_threads/this_thread/sleep_for-mt.cc: ...here.
   4262 	* testsuite/30_threads/this_thread/4.cc: Moved to...
   4263 	* testsuite/30_threads/this_thread/sleep_until-mt.cc: ...here.
   4264 	* testsuite/30_threads/this_thread/58038.cc: Add
   4265 	dg-require-sleep.
   4266 	* testsuite/30_threads/this_thread/60421.cc: Likewise.
   4267 	* testsuite/30_threads/this_thread/sleep_for.cc: New test.
   4268 	* testsuite/30_threads/this_thread/sleep_until.cc: New test.
   4269 
   4270 2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   4271 
   4272 	PR libstdc++/94681
   4273 	* src/c++17/fs_ops.cc (read_symlink): Use posix::lstat instead
   4274 	of calling ::lstat directly.
   4275 	* src/filesystem/ops.cc (read_symlink): Likewise.
   4276 
   4277 2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   4278 
   4279 	* python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__):
   4280 	Use gdb.Type.strip_typedefs().
   4281 	* testsuite/libstdc++-prettyprinters/compat.cc: Use a typedef in
   4282 	the emulated old type.
   4283 
   4284 2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   4285 
   4286 	PR libstdc++/94681
   4287 	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Do not depend on
   4288 	$enable_libstdcxx_filesystem_ts.
   4289 	* configure: Regenerate.
   4290 
   4291 2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   4292 
   4293 	PR libstdc++/93904
   4294 	* include/bits/stl_iterator.h (inserter): Do not deduce
   4295 	iterator type (LWG 561).
   4296 	* testsuite/24_iterators/insert_iterator/dr561.cc: New test.
   4297 
   4298 2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   4299 
   4300 	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI=0]
   4301 	(basic_string::reserve()): Do nothing if exceptions are not
   4302 	enabled.
   4303 
   4304 2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   4305 
   4306 	PR libstdc++/95749
   4307 	* src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
   4308 	(stat_type): Change to __stat64.
   4309 	(stat): Use _wstat64.
   4310 
   4311 2020-08-07  Jonathan Wakely  <jwakely (a] redhat.com>
   4312 
   4313 	PR libstdc++/96303
   4314 	* include/debug/bitset (bitset::operator==): Call _M_base() on
   4315 	right operand.
   4316 	(bitset::operator!=): Likewise, but don't define it at all when
   4317 	default comparisons are supported by the compiler.
   4318 	* testsuite/23_containers/bitset/operations/96303.cc: New test.
   4319 
   4320 2020-08-07  Jonathan Wakely  <jwakely (a] redhat.com>
   4321 
   4322 	* testsuite/18_support/comparisons/algorithms/partial_order.cc:
   4323 	Replace VERIFY with static_assert where the compiler now
   4324 	allows it.
   4325 	* testsuite/18_support/comparisons/algorithms/weak_order.cc:
   4326 	Likewise.
   4327 
   4328 2020-08-07  Jonathan Wakely  <jwakely (a] redhat.com>
   4329 
   4330 	* config/abi/pre/gnu.ver: Fix wildcards for wstring symbols.
   4331 
   4332 2020-08-06  Andrew Luo  <andrewluotechnologies (a] outlook.com>
   4333 	    Jonathan Wakely  <jwakely (a] redhat.com>
   4334 
   4335 	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Use less greedy
   4336 	patterns for basic_string members.
   4337 	(GLIBCXX_3.4.29): Export new basic_string::reserve symbols.
   4338 	* doc/xml/manual/status_cxx2020.xml: Update P0966 status.
   4339 	* include/bits/basic_string.h (shrink_to_fit()): Call reserve().
   4340 	(reserve(size_type)): Remove default argument.
   4341 	(reserve()): Declare new overload.
   4342 	[!_GLIBCXX_USE_CXX11_ABI] (shrink_to_fit, reserve): Likewise.
   4343 	* include/bits/basic_string.tcc (reserve(size_type)): Remove
   4344 	support for shrinking capacity.
   4345 	(reserve()): Perform shrink-to-fit operation.
   4346 	[!_GLIBCXX_USE_CXX11_ABI] (reserve): Likewise.
   4347 	* testsuite/21_strings/basic_string/capacity/1.cc: Adjust to
   4348 	reflect new behavior.
   4349 	* testsuite/21_strings/basic_string/capacity/char/1.cc:
   4350 	Likewise.
   4351 	* testsuite/21_strings/basic_string/capacity/char/18654.cc:
   4352 	Likewise.
   4353 	* testsuite/21_strings/basic_string/capacity/char/2.cc:
   4354 	Likewise.
   4355 	* testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
   4356 	Likewise.
   4357 	* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
   4358 	Likewise.
   4359 	* testsuite/21_strings/basic_string/capacity/wchar_t/2.cc:
   4360 	Likewise.
   4361 
   4362 2020-08-06  Jonathan Wakely  <jwakely (a] redhat.com>
   4363 
   4364 	* include/bits/basic_string.tcc
   4365 	(operator>>(basic_istream&, basic_string&)): Do not set eofbit
   4366 	if extraction stopped after in.width() characters.
   4367 	* src/c++98/istream-string.cc (operator>>(istream&, string&)):
   4368 	Likewise.
   4369 	* include/bits/istream.tcc (__istream_extract): Do not set
   4370 	eofbit if extraction stopped after n-1 characters.
   4371 	* src/c++98/istream.cc (__istream_extract): Likewise.
   4372 	* testsuite/21_strings/basic_string/inserters_extractors/char/13.cc: New test.
   4373 	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc: New test.
   4374 	* testsuite/27_io/basic_istream/extractors_character/char/5.cc: New test.
   4375 	* testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc: New test.
   4376 
   4377 2020-08-06  Jonathan Wakely  <jwakely (a] redhat.com>
   4378 
   4379 	PR libstdc++/96484
   4380 	* src/c++17/fs_ops.cc (fs::read_symlink): Return an error
   4381 	immediately for non-symlinks.
   4382 	* src/filesystem/ops.cc (fs::read_symlink): Likewise.
   4383 
   4384 2020-08-06  Jonathan Wakely  <jwakely (a] redhat.com>
   4385 
   4386 	* include/std/istream (operator>>(istream&, char*)): Add
   4387 	attributes to get warnings for pointers that are null or known
   4388 	to point to the end of a buffer. Request upper bound from
   4389 	__builtin_object_size check and handle zero-sized buffer case.
   4390 	(operator>>(istream&, signed char))
   4391 	(operator>>(istream&, unsigned char*)): Add attributes.
   4392 	* testsuite/27_io/basic_istream/extractors_character/char/overflow.cc:
   4393 	Check extracting into the middle of a buffer.
   4394 	* testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc: New test.
   4395 
   4396 2020-08-05  Jonathan Wakely  <jwakely (a] redhat.com>
   4397 
   4398 	* include/std/atomic (atomic<T>::store): Reformat.
   4399 
   4400 2020-08-05  Jonathan Wakely  <jwakely (a] redhat.com>
   4401 
   4402 	* doc/xml/manual/status_cxx2017.xml: Replace oneAPI DPC++ link
   4403 	with LLVM repo for PSTL.
   4404 	* doc/html/manual/status.html: Regenerate.
   4405 
   4406 2020-08-05  Jonathan Wakely  <jwakely (a] redhat.com>
   4407 
   4408 	* config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Export new symbols.
   4409 	* include/bits/istream.tcc (__istream_extract): New function
   4410 	template implementing both of operator>>(istream&, char*) and
   4411 	operator>>(istream&, char(&)[N]). Add explicit instantiation
   4412 	declaration for it. Remove explicit instantiation declarations
   4413 	for old function templates.
   4414 	* include/std/istream (__istream_extract): Declare.
   4415 	(operator>>(basic_istream<C,T>&, C*)): Define inline and simply
   4416 	call __istream_extract.
   4417 	(operator>>(basic_istream<char,T>&, signed char*)): Likewise.
   4418 	(operator>>(basic_istream<char,T>&, unsigned char*)): Likewise.
   4419 	(operator>>(basic_istream<C,T>&, C(7)[N])): Define for LWG 2499.
   4420 	(operator>>(basic_istream<char,T>&, signed char(&)[N])):
   4421 	Likewise.
   4422 	(operator>>(basic_istream<char,T>&, unsigned char(&)[N])):
   4423 	Likewise.
   4424 	* include/std/streambuf (basic_streambuf): Declare char overload
   4425 	of __istream_extract as a friend.
   4426 	* src/c++11/istream-inst.cc: Add explicit instantiation
   4427 	definition for wchar_t overload of __istream_extract. Remove
   4428 	explicit instantiation definitions of old operator>> overloads
   4429 	for versioned-namespace build.
   4430 	* src/c++98/istream.cc (operator>>(istream&, char*)): Replace
   4431 	with __istream_extract(istream&, char*, streamsize).
   4432 	* testsuite/27_io/basic_istream/extractors_character/char/3.cc:
   4433 	Do not use variable-length array.
   4434 	* testsuite/27_io/basic_istream/extractors_character/char/4.cc:
   4435 	Do not run test for C++20.
   4436 	* testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc:
   4437 	Do not test writing to pointers for C++20.
   4438 	* testsuite/27_io/basic_istream/extractors_character/char/9826.cc:
   4439 	Use array instead of pointer.
   4440 	* testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc:
   4441 	Do not use variable-length array.
   4442 	* testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
   4443 	Do not run test for C++20.
   4444 	* testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc:
   4445 	Do not test writing to pointers for C++20.
   4446 	* testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
   4447 	New test.
   4448 	* testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
   4449 	New test.
   4450 	* testsuite/27_io/basic_istream/extractors_character/char/overflow.cc:
   4451 	New test.
   4452 	* testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
   4453 	New test.
   4454 	* testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
   4455 	New test.
   4456 
   4457 2020-08-01  Gerald Pfeifer  <gerald (a] pfeifer.com>
   4458 
   4459 	* doc/xml/manual/using_exceptions.xml: Move www.stroustrup.com to
   4460 	https.
   4461 	* doc/html/manual/using_exceptions.html: Regenerate.
   4462 
   4463 2020-07-31  Gerald Pfeifer  <gerald (a] pfeifer.com>
   4464 
   4465 	* doc/xml/manual/status_cxx2017.xml: ParallelSTL is now part
   4466 	of oneAPI DPC++ Library on Github.
   4467 	* doc/html/manual/status.html: Regenerate.
   4468 
   4469 2020-07-31  Franois Dumont  <fdumont (a] gcc.gnu.org>
   4470 
   4471 	* include/bits/stl_bvector.h
   4472 	[_GLIBCXX_INLINE_VERSION](_Bvector_impl_data::_M_start): Define as
   4473 	_Bit_type*.
   4474 	(_Bvector_impl_data(const _Bvector_impl_data&)): Default.
   4475 	(_Bvector_impl_data(_Bvector_impl_data&&)): Delegate to latter.
   4476 	(_Bvector_impl_data::operator=(const _Bvector_impl_data&)): Default.
   4477 	(_Bvector_impl_data::_M_move_data(_Bvector_impl_data&&)): Use latter.
   4478 	(_Bvector_impl_data::_M_reset()): Likewise.
   4479 	(_Bvector_impl_data::_M_swap_data): New.
   4480 	(_Bvector_impl::_Bvector_impl(_Bvector_impl&&)): Implement explicitely.
   4481 	(_Bvector_impl::_Bvector_impl(_Bit_alloc_type&&, _Bvector_impl&&)): New.
   4482 	(_Bvector_base::_Bvector_base(_Bvector_base&&, const allocator_type&)):
   4483 	New, use latter.
   4484 	(vector::vector(vector&&, const allocator_type&, true_type)): New, use
   4485 	latter.
   4486 	(vector::vector(vector&&, const allocator_type&, false_type)): New.
   4487 	(vector::vector(vector&&, const allocator_type&)): Use latters.
   4488 	(vector::vector(const vector&, const allocator_type&)): Adapt.
   4489 	[__cplusplus >= 201103](vector::vector(_InputIt, _InputIt,
   4490 	const allocator_type&)): Use _M_initialize_range.
   4491 	(vector::operator[](size_type)): Use iterator operator[].
   4492 	(vector::operator[](size_type) const): Use const_iterator operator[].
   4493 	(vector::swap(vector&)): Add assertions on allocators. Use _M_swap_data.
   4494 	[__cplusplus >= 201103](vector::insert(const_iterator, _InputIt,
   4495 	_InputIt)): Use _M_insert_range.
   4496 	(vector::_M_initialize(size_type)): Adapt.
   4497 	[__cplusplus >= 201103](vector::_M_initialize_dispatch): Remove.
   4498 	[__cplusplus >= 201103](vector::_M_insert_dispatch): Remove.
   4499 	* python/libstdcxx/v6/printers.py (StdVectorPrinter._iterator): Stop
   4500 	using start _M_offset.
   4501 	(StdVectorPrinter.to_string): Likewise.
   4502 	* testsuite/23_containers/vector/bool/allocator/swap.cc: Adapt.
   4503 	* testsuite/23_containers/vector/bool/cons/noexcept_move_construct.cc:
   4504 	Add check.
   4505 
   4506 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4507 
   4508 	* testsuite/27_io/basic_istream/ignore/char/94749.cc: Use 0
   4509 	instead of nullptr.
   4510 	* testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc:
   4511 	Likewise.
   4512 
   4513 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4514 
   4515 	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc:
   4516 	Move struct to namespace scope.
   4517 
   4518 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4519 
   4520 	* testsuite/26_numerics/numbers/float128.cc: Check
   4521 	__STRICT_ANSI__ before using __float128.
   4522 	* testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc:
   4523 	Likewise.
   4524 
   4525 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4526 
   4527 	* testsuite/18_support/set_terminate.cc: Require C++11 or
   4528 	higher.
   4529 	* testsuite/28_regex/simple_c++11.cc: Likewise.
   4530 	* testsuite/tr1/headers/c++200x/complex.cc: Likewise.
   4531 	* testsuite/24_iterators/headers/iterator/synopsis.cc:
   4532 	Require C++14 or lower.
   4533 
   4534 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4535 
   4536 	* testsuite/23_containers/span/back_assert_neg.cc: Split c++2a
   4537 	effective-target from xfail selector.
   4538 	* testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
   4539 	* testsuite/23_containers/span/first_assert_neg.cc: Likewise.
   4540 	* testsuite/23_containers/span/front_assert_neg.cc: Likewise.
   4541 	* testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
   4542 	* testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
   4543 	* testsuite/23_containers/span/last_assert_neg.cc: Likewise.
   4544 	* testsuite/23_containers/span/subspan_2_assert_neg.cc:
   4545 	Likewise.
   4546 	* testsuite/23_containers/span/subspan_3_assert_neg.cc:
   4547 	Likewise.
   4548 	* testsuite/23_containers/span/subspan_4_assert_neg.cc:
   4549 	Likewise.
   4550 	* testsuite/23_containers/span/subspan_5_assert_neg.cc:
   4551 	Likewise.
   4552 	* testsuite/23_containers/span/subspan_6_assert_neg.cc:
   4553 	Likewise.
   4554 	* testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
   4555 
   4556 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4557 
   4558 	* testsuite/20_util/reference_wrapper/83427.cc: Adjust
   4559 	effective-target to specific language mode only.
   4560 	* testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
   4561 	Likewise.
   4562 	* testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
   4563 	Likewise.
   4564 	* testsuite/24_iterators/headers/iterator/synopsis_c++11.cc:
   4565 	Likewise.
   4566 	* testsuite/24_iterators/headers/iterator/synopsis_c++14.cc:
   4567 	Likewise.
   4568 	* testsuite/26_numerics/valarray/69116.cc:
   4569 	Likewise.
   4570 	* testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc:
   4571 	Remove whitespace at end of file.
   4572 	* testsuite/30_threads/headers/future/std_c++0x_neg.cc:
   4573 	Likewise.
   4574 
   4575 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4576 
   4577 	* testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
   4578 	c++17 effective-target.
   4579 	* testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
   4580 	Likewise.
   4581 	* testsuite/17_intro/headers/c++2017/all_no_rtti.cc: Likewise.
   4582 	* testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
   4583 	Likewise.
   4584 	* testsuite/17_intro/headers/c++2017/operator_names.cc:
   4585 	Likewise.
   4586 	* testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
   4587 	* testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
   4588 	Likewise.
   4589 	* testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
   4590 	Likewise.
   4591 	* testsuite/19_diagnostics/error_code/is_error_code_v.cc:
   4592 	Likewise.
   4593 	* testsuite/20_util/any/assign/1.cc: Likewise.
   4594 	* testsuite/20_util/any/assign/2.cc: Likewise.
   4595 	* testsuite/20_util/any/assign/emplace.cc: Likewise.
   4596 	* testsuite/20_util/any/assign/exception.cc: Likewise.
   4597 	* testsuite/20_util/any/assign/self.cc: Likewise.
   4598 	* testsuite/20_util/any/cons/1.cc: Likewise.
   4599 	* testsuite/20_util/any/cons/2.cc: Likewise.
   4600 	* testsuite/20_util/any/cons/aligned.cc: Likewise.
   4601 	* testsuite/20_util/any/cons/explicit.cc: Likewise.
   4602 	* testsuite/20_util/any/cons/in_place.cc: Likewise.
   4603 	* testsuite/20_util/any/cons/nontrivial.cc: Likewise.
   4604 	* testsuite/20_util/any/make_any.cc: Likewise.
   4605 	* testsuite/20_util/any/misc/any_cast.cc: Likewise.
   4606 	* testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
   4607 	* testsuite/20_util/any/misc/swap.cc: Likewise.
   4608 	* testsuite/20_util/any/modifiers/1.cc: Likewise.
   4609 	* testsuite/20_util/any/observers/type.cc: Likewise.
   4610 	* testsuite/20_util/any/requirements.cc: Likewise.
   4611 	* testsuite/20_util/any/typedefs.cc: Likewise.
   4612 	* testsuite/20_util/as_const/1.cc: Likewise.
   4613 	* testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
   4614 	* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
   4615 	* testsuite/20_util/bool_constant/requirements.cc: Likewise.
   4616 	* testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
   4617 	Likewise.
   4618 	* testsuite/20_util/duration_cast/rounding.cc: Likewise.
   4619 	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
   4620 	Likewise.
   4621 	* testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
   4622 	* testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
   4623 	* testsuite/20_util/function_objects/searchers.cc: Likewise.
   4624 	* testsuite/20_util/in_place/requirements.cc: Likewise.
   4625 	* testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
   4626 	Likewise.
   4627 	* testsuite/20_util/is_invocable/requirements/typedefs.cc:
   4628 	Likewise.
   4629 	* testsuite/20_util/is_invocable/value.cc: Likewise.
   4630 	* testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
   4631 	Likewise.
   4632 	* testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc:
   4633 	Likewise.
   4634 	* testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
   4635 	Likewise.
   4636 	* testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
   4637 	Likewise.
   4638 	* testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
   4639 	* testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
   4640 	Likewise.
   4641 	* testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
   4642 	Likewise.
   4643 	* testsuite/20_util/is_nothrow_swappable_with/value.cc:
   4644 	Likewise.
   4645 	* testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
   4646 	Likewise.
   4647 	* testsuite/20_util/is_swappable/requirements/typedefs.cc:
   4648 	Likewise.
   4649 	* testsuite/20_util/is_swappable/value.cc: Likewise.
   4650 	* testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
   4651 	Likewise.
   4652 	* testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
   4653 	Likewise.
   4654 	* testsuite/20_util/is_swappable_with/value.cc: Likewise.
   4655 	* testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
   4656 	Likewise.
   4657 	* testsuite/20_util/logical_traits/requirements/typedefs.cc:
   4658 	Likewise.
   4659 	* testsuite/20_util/logical_traits/value.cc: Likewise.
   4660 	* testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
   4661 	* testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
   4662 	* testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
   4663 	* testsuite/20_util/optional/hash.cc: Likewise.
   4664 	* testsuite/20_util/pair/swap_cxx17.cc: Likewise.
   4665 	* testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
   4666 	* testsuite/20_util/shared_ptr/requirements/weak_type.cc:
   4667 	Likewise.
   4668 	* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
   4669 	Likewise.
   4670 	* testsuite/20_util/tuple/apply/1.cc: Likewise.
   4671 	* testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
   4672 	* testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
   4673 	* testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
   4674 	* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
   4675 	Likewise.
   4676 	* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
   4677 	Likewise.
   4678 	* testsuite/20_util/variant/any.cc: Likewise.
   4679 	* testsuite/20_util/variant/compile.cc: Likewise.
   4680 	* testsuite/20_util/variant/hash.cc: Likewise.
   4681 	* testsuite/20_util/variant/index_type.cc: Likewise.
   4682 	* testsuite/20_util/variant/run.cc: Likewise.
   4683 	* testsuite/20_util/void_t/1.cc: Likewise.
   4684 	* testsuite/21_strings/basic_string/79162.cc: Likewise.
   4685 	* testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
   4686 	* testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
   4687 	* testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
   4688 	* testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
   4689 	* testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
   4690 	Likewise.
   4691 	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
   4692 	Likewise.
   4693 	* testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
   4694 	Likewise.
   4695 	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
   4696 	Likewise.
   4697 	* testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
   4698 	Likewise.
   4699 	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
   4700 	Likewise.
   4701 	* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
   4702 	Likewise.
   4703 	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
   4704 	Likewise.
   4705 	* testsuite/21_strings/basic_string/operations/compare/char/2.cc:
   4706 	Likewise.
   4707 	* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
   4708 	Likewise.
   4709 	* testsuite/21_strings/basic_string/operations/data/char/2.cc:
   4710 	Likewise.
   4711 	* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
   4712 	Likewise.
   4713 	* testsuite/21_strings/basic_string/operations/find/char/5.cc:
   4714 	Likewise.
   4715 	* testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
   4716 	Likewise.
   4717 	* testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
   4718 	* testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
   4719 	Likewise.
   4720 	* testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
   4721 	* testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
   4722 	* testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
   4723 	* testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
   4724 	* testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
   4725 	Likewise.
   4726 	* testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
   4727 	Likewise.
   4728 	* testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
   4729 	Likewise.
   4730 	* testsuite/21_strings/basic_string_view/element_access/char/1.cc:
   4731 	Likewise.
   4732 	* testsuite/21_strings/basic_string_view/element_access/char/2.cc:
   4733 	Likewise.
   4734 	* testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
   4735 	Likewise.
   4736 	* testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
   4737 	Likewise.
   4738 	* testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
   4739 	Likewise.
   4740 	* testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
   4741 	Likewise.
   4742 	* testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
   4743 	Likewise.
   4744 	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
   4745 	Likewise.
   4746 	* testsuite/21_strings/basic_string_view/include.cc: Likewise.
   4747 	* testsuite/21_strings/basic_string_view/inserters/char/1.cc:
   4748 	Likewise.
   4749 	* testsuite/21_strings/basic_string_view/inserters/char/2.cc:
   4750 	Likewise.
   4751 	* testsuite/21_strings/basic_string_view/inserters/char/3.cc:
   4752 	Likewise.
   4753 	* testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
   4754 	Likewise.
   4755 	* testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
   4756 	Likewise.
   4757 	* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
   4758 	Likewise.
   4759 	* testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
   4760 	Likewise.
   4761 	* testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
   4762 	Likewise.
   4763 	* testsuite/21_strings/basic_string_view/literals/types.cc:
   4764 	Likewise.
   4765 	* testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
   4766 	Likewise.
   4767 	* testsuite/21_strings/basic_string_view/literals/values.cc:
   4768 	Likewise.
   4769 	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
   4770 	Likewise.
   4771 	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
   4772 	Likewise.
   4773 	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
   4774 	Likewise.
   4775 	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
   4776 	Likewise.
   4777 	* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
   4778 	Likewise.
   4779 	* testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
   4780 	Likewise.
   4781 	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
   4782 	Likewise.
   4783 	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
   4784 	Likewise.
   4785 	* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
   4786 	Likewise.
   4787 	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
   4788 	Likewise.
   4789 	* testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
   4790 	Likewise.
   4791 	* testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
   4792 	Likewise.
   4793 	* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
   4794 	Likewise.
   4795 	* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
   4796 	Likewise.
   4797 	* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
   4798 	Likewise.
   4799 	* testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
   4800 	Likewise.
   4801 	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
   4802 	Likewise.
   4803 	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
   4804 	Likewise.
   4805 	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
   4806 	Likewise.
   4807 	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
   4808 	Likewise.
   4809 	* testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
   4810 	Likewise.
   4811 	* testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
   4812 	Likewise.
   4813 	* testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
   4814 	Likewise.
   4815 	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
   4816 	Likewise.
   4817 	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
   4818 	Likewise.
   4819 	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
   4820 	Likewise.
   4821 	* testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
   4822 	Likewise.
   4823 	* testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
   4824 	Likewise.
   4825 	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
   4826 	Likewise.
   4827 	* testsuite/21_strings/basic_string_view/range_access/char/1.cc:
   4828 	Likewise.
   4829 	* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
   4830 	Likewise.
   4831 	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
   4832 	Likewise.
   4833 	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
   4834 	Likewise.
   4835 	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
   4836 	Likewise.
   4837 	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
   4838 	Likewise.
   4839 	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
   4840 	Likewise.
   4841 	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
   4842 	Likewise.
   4843 	* testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
   4844 	Likewise.
   4845 	* testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
   4846 	* testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
   4847 	* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
   4848 	Likewise.
   4849 	* testsuite/23_containers/map/modifiers/extract.cc: Likewise.
   4850 	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
   4851 	Likewise.
   4852 	* testsuite/23_containers/map/modifiers/merge.cc: Likewise.
   4853 	* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
   4854 	* testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
   4855 	* testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
   4856 	* testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
   4857 	* testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
   4858 	* testsuite/23_containers/set/modifiers/extract.cc: Likewise.
   4859 	* testsuite/23_containers/set/modifiers/merge.cc: Likewise.
   4860 	* testsuite/23_containers/unordered_map/modifiers/extract.cc:
   4861 	Likewise.
   4862 	* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
   4863 	Likewise.
   4864 	* testsuite/23_containers/unordered_map/modifiers/merge.cc:
   4865 	Likewise.
   4866 	* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
   4867 	Likewise.
   4868 	* testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
   4869 	Likewise.
   4870 	* testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
   4871 	Likewise.
   4872 	* testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
   4873 	Likewise.
   4874 	* testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
   4875 	Likewise.
   4876 	* testsuite/23_containers/unordered_set/modifiers/extract.cc:
   4877 	Likewise.
   4878 	* testsuite/23_containers/unordered_set/modifiers/merge.cc:
   4879 	Likewise.
   4880 	* testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
   4881 	Likewise.
   4882 	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
   4883 	Likewise.
   4884 	* testsuite/25_algorithms/clamp/1.cc: Likewise.
   4885 	* testsuite/25_algorithms/clamp/2.cc: Likewise.
   4886 	* testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
   4887 	* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
   4888 	Likewise.
   4889 	* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
   4890 	Likewise.
   4891 	* testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
   4892 	Likewise.
   4893 	* testsuite/26_numerics/headers/cmath/special_functions_global.cc:
   4894 	Likewise.
   4895 	* testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
   4896 	Likewise.
   4897 	* testsuite/29_atomics/atomic/is_always_lock_free.cc: Likewise.
   4898 	* testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
   4899 	Likewise.
   4900 	* testsuite/30_threads/shared_lock/70766.cc: Likewise.
   4901 	* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
   4902 	* testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
   4903 	Likewise.
   4904 	* testsuite/30_threads/shared_mutex/cons/copy_neg.cc:
   4905 	Likewise.
   4906 	* testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
   4907 	Likewise.
   4908 	* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
   4909 	* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
   4910 	* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
   4911 
   4912 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4913 
   4914 	PR libstdc++/96382
   4915 	* include/bits/stl_iterator.h (reverse_iterator): Friend
   4916 	declaration should not depend on __cplusplus.
   4917 
   4918 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4919 
   4920 	* testsuite/experimental/filesystem/filesystem_error/cons.cc:
   4921 	Remove -std=gnu++17 option.
   4922 
   4923 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4924 
   4925 	* testsuite/20_util/is_aggregate/value.cc: Adjust for changes to
   4926 	definition of aggregates in C++20.
   4927 	* testsuite/20_util/optional/requirements.cc: Adjust for
   4928 	defaulted comparisons in C++20.
   4929 
   4930 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4931 
   4932 	* testsuite/20_util/tuple/78939.cc: Suppress warnings about
   4933 	deprecation of volatile-qualified structured bindings in C++20.
   4934 	* testsuite/20_util/variable_templates_for_traits.cc: Likewise
   4935 	for deprecation of is_pod in C++20
   4936 
   4937 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4938 
   4939 	* testsuite/20_util/time_point_cast/rounding.cc: Remove
   4940 	duplicate dg-do directive and add c++17 effective target.
   4941 
   4942 2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   4943 
   4944 	* src/c++17/floating_from_chars.cc (from_chars_impl): Use
   4945 	LC_ALL_MASK not LC_ALL.
   4946 
   4947 2020-07-31  Richard Biener  <rguenther (a] suse.de>
   4948 
   4949 	PR debug/96383
   4950 	* testsuite/20_util/assume_aligned/3.cc: Use -g0.
   4951 
   4952 2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
   4953 
   4954 	* include/bits/basic_string.h (size_type, difference_type):
   4955 	Use allocator_traits to obtain the allocator's size_type and
   4956 	difference_type.
   4957 
   4958 2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
   4959 
   4960 	PR libstdc++/96279
   4961 	* src/c++17/floating_from_chars.cc (from_chars_impl): Use
   4962 	isinf unqualified.
   4963 	[!_GLIBCXX_USE_C99_STDLIB]: Use strtod for float and long
   4964 	double.
   4965 
   4966 2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
   4967 
   4968 	* testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc:
   4969 	Use allocator with the correct value type.
   4970 	* testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc:
   4971 	Likewise.
   4972 
   4973 2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
   4974 
   4975 	* testsuite/20_util/from_chars/4.cc: Pass non-const iterator
   4976 	to string::insert.
   4977 
   4978 2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
   4979 
   4980 	* include/bits/iterator_concepts.h (__detail::__cv_bool): New
   4981 	helper concept.
   4982 	(__detail::__integral_nonbool): Likewise.
   4983 	(__detail::__is_integer_like): Use __integral_nonbool.
   4984 	* testsuite/std/ranges/access/lwg3467.cc: New test.
   4985 
   4986 2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
   4987 
   4988 	* testsuite/20_util/from_chars/4.cc: Use dg-add-options ieee.
   4989 	* testsuite/29_atomics/atomic_float/1.cc: Likewise.
   4990 
   4991 2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
   4992 
   4993 	* testsuite/23_containers/vector/bool/72847.cc: Use the
   4994 	exceptions_enabled effective-target keyword instead of
   4995 	checking for an explicit -fno-exceptions option.
   4996 	* testsuite/util/testsuite_abi.cc (examine_symbol): Remove
   4997 	redundant try-catch.
   4998 	* testsuite/util/testsuite_allocator.h [!__cpp_exceptions]:
   4999 	Do not define check_allocate_max_size and memory_resource.
   5000 	* testsuite/util/testsuite_containers.h: Replace comment with
   5001 	#error if wrong standard dialect used.
   5002 	* testsuite/util/testsuite_shared.cc: Likewise.
   5003 
   5004 2020-07-29  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5005 
   5006 	* include/bits/hashtable_policy.h (_Node_iterator_base()): New.
   5007 	(operator==(const _Node_iterator_base&, const _Node_iterator_base&)):
   5008 	Make hidden friend.
   5009 	(operator!=(const _Node_iterator_base&, const _Node_iterator_base&)):
   5010 	Make hidden friend.
   5011 	(_Local_iterator_base<>): Inherits _Node_iterator_base.
   5012 	(_Local_iterator_base<>::_M_cur): Remove.
   5013 	(_Local_iterator_base<>::_M_curr()): Remove.
   5014 	(operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
   5015 	Remove.
   5016 	(operator!=(const _Local_iterator_base&, const _Local_iterator_base&)):
   5017 	Remove.
   5018 	* include/debug/unordered_map (unordered_map<>::_M_invalidate): Adapt.
   5019 	(unordered_multimap<>::_M_invalidate): Adapt.
   5020 	* include/debug/unordered_set (unordered_set<>::_M_invalidate): Adapt.
   5021 	(unordered_multiset<>::_M_invalidate): Adapt.
   5022 
   5023 2020-07-29  David Edelsohn  <dje.gcc (a] gmail.com>
   5024 	    Jonathan Wakely  <jwakely (a] redhat.com>
   5025 	    Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   5026 
   5027 	* testsuite/lib/dg-options.exp (add_options_for_libatomic): Add
   5028 	target powerpc-ibm-aix* and powerpc*-*-darwin*.
   5029 	* testsuite/29_atomics/atomic_float/value_init.cc: Add options
   5030 	for libatomic.
   5031 
   5032 2020-07-29  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5033 
   5034 	* include/bits/hashtable.h
   5035 	(_Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, true_type)):
   5036 	Add noexcept qualification.
   5037 	(_Hashtable(_Hashtable&&)): Fix noexcept qualification.
   5038 	(_Hashtable(_Hashtable&&, const allocator_type&)): Add noexcept
   5039 	qualification.
   5040 	* include/bits/unordered_map.h
   5041 	(unordered_map(unordered_map&&, const allocator_type&)): Add noexcept
   5042 	qualification.
   5043 	(unordered_multimap(unordered_multimap&&, const allocator_type&)):
   5044 	Likewise.
   5045 	* include/bits/unordered_set.h
   5046 	(unordered_set(unordered_set&&, const allocator_type&)): Likewise.
   5047 	(unordered_multiset(unordered_multiset&&, const allocator_type&)):
   5048 	Likewise.
   5049 	* include/debug/unordered_map
   5050 	(unordered_map(unordered_map&&, const allocator_type&)): Likewise.
   5051 	(unordered_multimap(unordered_multimap&&, const allocator_type&)):
   5052 	Likewise.
   5053 	* include/debug/unordered_set
   5054 	(unordered_set(unordered_set&&, const allocator_type&)): Likewise.
   5055 	(unordered_multiset(unordered_multiset&&, const allocator_type&)):
   5056 	Likewise.
   5057 	* testsuite/23_containers/unordered_map/allocator/default_init.cc:
   5058 	New test.
   5059 	* testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc:
   5060 	New test.
   5061 	* testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
   5062 	New test.
   5063 	* testsuite/23_containers/unordered_map/modifiers/move_assign.cc:
   5064 	New test.
   5065 	* testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc:
   5066 	New test.
   5067 	* testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
   5068 	New test.
   5069 	* testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc:
   5070 	New test.
   5071 	* testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
   5072 	New test.
   5073 	* testsuite/23_containers/unordered_set/allocator/default_init.cc:
   5074 	New test.
   5075 	* testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc:
   5076 	New test.
   5077 	* testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
   5078 	New test.
   5079 
   5080 2020-07-28  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5081 
   5082 	* include/bits/hashtable.h
   5083 	(_Hashtable<>(_InputIterator, _InputIterator, size_t, const _H1&,
   5084 	const _H2&, const _Hash&, const _Equal&, const _ExtractKey&,
   5085 	const allocator_type&, true_type)): New.
   5086 	(_Hashtable<>(_InputIterator, _InputIterator, size_t, const _H1&,
   5087 	const _H2&, const _Hash&, const _Equal&, const _ExtractKey&,
   5088 	const allocator_type&, false_type)): New.
   5089 	(_Hashtable<>(_InputIterator, _InputIterator, size_t, const _H1&,
   5090 	const _H2&, const _Hash&, const _Equal&, const _ExtractKey&,
   5091 	const allocator_type&)): Delegate to latters.
   5092 	(operator=(initializer_list<value_type>)): Rehash if too small.
   5093 	(_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Remove
   5094 	size_t len parameter.
   5095 	* include/bits/hashtable_policy.h (_Insert_base<>::_M_insert_range):
   5096 	Do not try to get input range distance.
   5097 	* testsuite/23_containers/unordered_set/cons/bucket_hint.cc: New test.
   5098 	* testsuite/23_containers/unordered_set/modifiers/insert.cc: New test.
   5099 
   5100 2020-07-27  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5101 
   5102 	* include/bits/hashtable_policy.h (_Map_base<>::at): Use
   5103 	_Hashtable<>::find.
   5104 	(_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals):New.
   5105 	(_Hashtable_base<>::_M_node_equals): New, use latter.
   5106 	(_Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash,
   5107 	_RehashPolicy, false>::_M_equal): Adapt to use latter.
   5108 	* include/bits/hashtable.h (_Hashtable<>::_M_update_bbegin): New.
   5109 	(_Hashtable<>::_M_assign): Use latter.
   5110 	(_Hashtable<>::_M_move_assign): Likewise.
   5111 	(_Hashtable<>(_Hashtable<>&&)): Likewise.
   5112 	(_Hashtable<>(_Hashtable<>&&, const allocator_type&)): Likewise.
   5113 	(_Hashtable<>::swap): Likewise.
   5114 	(_Hashtable<>::find): Build iterator directly from _M_find_node result.
   5115 	(_Hashtable<>::count): Use _Hashtable<>::find.
   5116 	(_Hashtable<>::equal_range): Likewise.
   5117 	(_Hashtable<>::_M_erase(false_type, const key_type&)): Use
   5118 	_M_node_equals.
   5119 
   5120 2020-07-27  Jonathan Wakely  <jwakely (a] redhat.com>
   5121 
   5122 	* src/c++17/floating_from_chars.cc (from_chars_impl): Ensure
   5123 	that FE_NEAREST is used.
   5124 	* testsuite/20_util/from_chars/4.cc: Do not use if constexpr in
   5125 	a { target c++14 } test.
   5126 	[!_GLIBCXX_HAVE_USELOCALE]: Disable all tests.
   5127 	* testsuite/20_util/from_chars/5.cc [!_GLIBCXX_HAVE_USELOCALE]:
   5128 	Likewise.
   5129 	* testsuite/20_util/from_chars/6.cc: New test.
   5130 
   5131 2020-07-22  Jonathan Wakely  <jwakely (a] redhat.com>
   5132 
   5133 	* include/std/future (future, shared_future, promise): Add
   5134 	static assertions to the primary template to reject array and
   5135 	function types.
   5136 	* testsuite/30_threads/future/requirements/lwg3458.cc: New test.
   5137 	* testsuite/30_threads/promise/requirements/lwg3466.cc: New test.
   5138 	* testsuite/30_threads/shared_future/requirements/lwg3458.cc: New test.
   5139 
   5140 2020-07-22  Jonathan Wakely  <jwakely (a] redhat.com>
   5141 
   5142 	* include/bits/stl_iterator.h (reverse_iterator): Constrain
   5143 	converting constructor and converting assignment operator.
   5144 	Access source iterator's data member directly instead of
   5145 	calling base().
   5146 	(move_iterator): Likewise.
   5147 	* testsuite/24_iterators/move_iterator/dr3435.cc: New test.
   5148 	* testsuite/24_iterators/reverse_iterator/dr3435.cc: New test.
   5149 
   5150 2020-07-20  Jonathan Wakely  <jwakely (a] redhat.com>
   5151 
   5152 	* acinclude.m4 (libtool_VERSION): Bump version.
   5153 	* config.h.in: Regenerate.
   5154 	* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.29 version and new
   5155 	exports.
   5156 	* config/os/gnu-linux/ldbl-extra.ver: Add _GLIBCXX_LDBL_3.4.29
   5157 	version and new export.
   5158 	* configure: Regenerate.
   5159 	* configure.ac: Check for <xlocale.h> and uselocale.
   5160 	* crossconfig.m4: Add macro or checks for uselocale.
   5161 	* include/std/charconv (from_chars): Declare overloads for
   5162 	float, double, and long double.
   5163 	* src/c++17/Makefile.am: Add new file.
   5164 	* src/c++17/Makefile.in: Regenerate.
   5165 	* src/c++17/floating_from_chars.cc: New file.
   5166 	(from_chars): Define for float, double, and long double.
   5167 	* testsuite/20_util/from_chars/1_c++20_neg.cc: Prune extra
   5168 	diagnostics caused by new overloads.
   5169 	* testsuite/20_util/from_chars/1_neg.cc: Likewise.
   5170 	* testsuite/20_util/from_chars/2.cc: Check leading '+'.
   5171 	* testsuite/20_util/from_chars/4.cc: New test.
   5172 	* testsuite/20_util/from_chars/5.cc: New test.
   5173 	* testsuite/util/testsuite_abi.cc: Add new symbol versions.
   5174 
   5175 2020-07-20  Jonathan Wakely  <jwakely (a] redhat.com>
   5176 
   5177 	* include/bits/istream.tcc
   5178 	(basic_istream::get(__streambuf_type&, char_type): Use unsigned
   5179 	long long for counter and check if it would overflow _M_gcount.
   5180 	* testsuite/27_io/basic_istream/get/char/lwg3464.cc: New test.
   5181 	* testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: New test.
   5182 
   5183 2020-07-17  Iain Sandoe  <iain (a] sandoe.co.uk>
   5184 
   5185 	* include/std/coroutine: Mark the methods of the
   5186 	trivial awaitables as constexpr.
   5187 
   5188 2020-07-14  David Edelsohn  <dje.gcc (a] gmail.com>
   5189 
   5190 	* config/os/aix/t-aix: Set BITS from compiler cpp macro.
   5191 
   5192 2020-07-13  Jonathan Wakely  <jwakely (a] redhat.com>
   5193 
   5194 	PR libstdc++/94749
   5195 	PR libstdc++/96161
   5196 	* include/bits/istream.tcc (basic_istream::ignore(streamsize))
   5197 	[n == max]: Check overflow conditions on _M_gcount. Rely on
   5198 	the fact that either EOF or the delimiter was reached.
   5199 	[n < max]: Check _M_gcount < n before checking for EOF or
   5200 	delimiter.
   5201 	(basic_istream::ignore(streamsize, char_type): Likewise.
   5202 	* src/c++98/compatibility.cc (istream::ignore(streamsize))
   5203 	(wistream::ignore(streamsize)): Likewise.
   5204 	* src/c++98/istream.cc (istream::ignore(streamsize, char_type))
   5205 	(wistream::ignore(streamsize, char_type)): Likewise.
   5206 	* testsuite/27_io/basic_istream/ignore/char/94749.cc: Check that
   5207 	delimiter is discarded if the number of characters ignored
   5208 	doesn't fit in streamsize.
   5209 	* testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc:
   5210 	Likewise.
   5211 	* testsuite/27_io/basic_istream/ignore/char/96161.cc: New test.
   5212 	* testsuite/27_io/basic_istream/ignore/wchar_t/96161.cc: New test.
   5213 
   5214 2020-07-08  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5215 
   5216 	* include/bits/stl_tree.h (_Rb_tree_impl(_Rb_tree_impl&&)): Add noexcept
   5217 	qualification based only on _Compare one.
   5218 	* testsuite/23_containers/map/cons/noexcept_move_construct.cc: Add
   5219 	static asserts.
   5220 	* testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
   5221 	Likewise.
   5222 	* testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
   5223 	Likewise.
   5224 	* testsuite/23_containers/set/cons/noexcept_move_construct.cc: Likewise.
   5225 
   5226 2020-07-07  Jonathan Wakely  <jwakely (a] redhat.com>
   5227 
   5228 	* include/std/limits: Whitespace changes.
   5229 
   5230 2020-07-07  Jonathan Wakely  <jwakely (a] redhat.com>
   5231 
   5232 	* include/Makefile.am: Remove bits/int_limits.h.
   5233 	* include/Makefile.in: Regenerate.
   5234 	* include/bits/int_limits.h: Removed.
   5235 	* include/bits/parse_numbers.h (_Select_int_base): Replace
   5236 	__int_limits with __int_traits.
   5237 	* include/bits/range_access.h (_SSize::operator()): Likewise.
   5238 	* include/ext/numeric_traits.h (__numeric_traits_integer): Add
   5239 	static assertion.
   5240 	(__int_traits): New alias template.
   5241 	* include/std/bit (__rotl, __rotr, __countl_zero, __countl_one)
   5242 	(__countr_zero, __countr_one, __popcount, __bit_ceil)
   5243 	(__bit_floor, __bit_width) Replace __int_limits with
   5244 	__int_traits.
   5245 	* include/std/charconv (__to_chars_8, __from_chars_binary)
   5246 	(__from_chars_alpha_to_num, from_chars): Likewise.
   5247 	* include/std/memory_resource (polymorphic_allocator::allocate)
   5248 	(polymorphic_allocator::allocate_object): Likewise.
   5249 	* include/std/string_view (basic_string_view::_S_compare):
   5250 	Likewise.
   5251 	* include/std/utility (cmp_equal, cmp_less, in_range): Likewise.
   5252 
   5253 2020-07-07  Jonathan Wakely  <jwakely (a] redhat.com>
   5254 
   5255 	* include/std/limits: Whitespace changes.
   5256 
   5257 2020-07-06  Jonathan Wakely  <jwakely (a] redhat.com>
   5258 
   5259 	* include/std/optional (_Optional_payload_base, _Optional_base)
   5260 	(optional, __optional_hash_call_base): Adjust whitespace and
   5261 	other formatting. Remove redundant && tokens on template
   5262 	arguments to type traits.
   5263 
   5264 2020-07-06  Jonathan Wakely  <jwakely (a] redhat.com>
   5265 
   5266 	* include/std/optional (make_optional): Add enable_if
   5267 	constraints and noexcept-specifier to each overload.
   5268 	* testsuite/20_util/optional/make_optional-2.cc: New test.
   5269 
   5270 2020-07-06  Jonathan Wakely  <jwakely (a] redhat.com>
   5271 
   5272 	PR libstdc++/96036
   5273 	* include/std/optional (optional): Add noexcept-specifier to
   5274 	every constructor, assignment operator, emplace function and
   5275 	dereference operator.
   5276 	* testsuite/20_util/optional/assignment/noexcept.cc: New test.
   5277 	* testsuite/20_util/optional/cons/noexcept.cc: New test.
   5278 
   5279 2020-07-06  Jonathan Wakely  <jwakely (a] redhat.com>
   5280 
   5281 	PR libstdc++/96063
   5282 	* include/bits/fs_dir.h: Use consistent tag in class-head.
   5283 	* include/bits/localefwd.h: Likewise.
   5284 	* include/bits/regex.h: Likewise.
   5285 	* include/bits/stl_map.h: Likewise.
   5286 	* include/bits/stl_multimap.h: Likewise.
   5287 	* include/bits/stl_multiset.h: Likewise.
   5288 	* include/bits/stl_set.h: Likewise.
   5289 	* include/std/complex: Likewise.
   5290 	* include/std/functional: Likewise.
   5291 	* include/std/future: Likewise.
   5292 	* include/std/system_error: Likewise.
   5293 	* include/std/thread: Likewise.
   5294 	* include/std/tuple: Likewise.
   5295 	* include/std/type_traits: Likewise.
   5296 	* include/std/valarray: Likewise.
   5297 
   5298 2020-07-02  Jonathan Wakely  <jwakely (a] redhat.com>
   5299 
   5300 	* testsuite/27_io/basic_ios/conv/voidptr.cc: Add c++98_only
   5301 	target selector.
   5302 
   5303 2020-07-02  Jonathan Wakely  <jwakely (a] redhat.com>
   5304 
   5305 	* testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc: Add
   5306 	c++98_only target selector.
   5307 	* testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc:
   5308 	Likewise.
   5309 	* testsuite/18_support/headers/cstdint/std_c++0x_neg.cc:
   5310 	Likewise.
   5311 	* testsuite/18_support/headers/new/synopsis_cxx98.cc: Likewise.
   5312 	* testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc:
   5313 	Likewise.
   5314 	* testsuite/20_util/headers/type_traits/std_c++0x_neg.cc:
   5315 	Likewise.
   5316 	* testsuite/23_containers/headers/array/std_c++0x_neg.cc:
   5317 	Likewise.
   5318 	* testsuite/23_containers/headers/tuple/std_c++0x_neg.cc:
   5319 	Likewise.
   5320 	* testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc:
   5321 	Likewise.
   5322 	* testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc:
   5323 	Likewise.
   5324 	* testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc:
   5325 	Likewise.
   5326 	* testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc:
   5327 	Likewise.
   5328 	* testsuite/26_numerics/headers/cmath/c99_classification_macros_c++98.cc:
   5329 	Likewise.
   5330 	* testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc:
   5331 	Likewise.
   5332 	* testsuite/26_numerics/headers/random/std_c++0x_neg.cc:
   5333 	Likewise.
   5334 	* testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc: Likewise.
   5335 	* testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Likewise.
   5336 	* testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc:
   5337 	Likewise.
   5338 	* testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc:
   5339 	Likewise.
   5340 	* testsuite/30_threads/headers/future/std_c++0x_neg.cc:
   5341 	Likewise.
   5342 	* testsuite/30_threads/headers/mutex/std_c++0x_neg.cc: Likewise.
   5343 	* testsuite/30_threads/headers/thread/std_c++0x_neg.cc:
   5344 	Likewise.
   5345 
   5346 2020-07-02  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   5347 
   5348 	PR libstdc++/91807
   5349 	* include/std/variant
   5350 	(_Copy_assign_base::operator=(const _Copy_assign_base&):
   5351 	Do the move-assignment from a temporary so that the temporary
   5352 	is constructed with an explicit index.
   5353 	* testsuite/20_util/variant/91807.cc: New.
   5354 
   5355 2020-07-02  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   5356 
   5357 	PR libstdc++/91153
   5358 	PR target/93224
   5359 	* testsuite/29_atomics/atomic_float/1.cc: Use different values
   5360 	for tests.
   5361 	* testsuite/29_atomics/atomic_ref/float.cc: Likewise.
   5362 
   5363 2020-07-01  Jonathan Wakely  <jwakely (a] redhat.com>
   5364 
   5365 	PR libstdc++/94627
   5366 	* include/bits/regex.h (operator==, operator!=): Remove noexcept
   5367 	equality comparisons for match_results.
   5368 	* testsuite/28_regex/match_results/94627.cc: New test.
   5369 
   5370 2020-07-01  Martin Sebor  <msebor (a] redhat.com>
   5371 
   5372 	* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: Adjust
   5373 	text of expected warning.
   5374 	* testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: Same.
   5375 	* testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc: Same.
   5376 	* testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc: Same.
   5377 	* testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc: Same.
   5378 
   5379 2020-06-29  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   5380 
   5381 	Revert:
   5382 	2020-06-28  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   5383 
   5384 	* include/bits/basic_string.h (string(_CharT*, const _Alloc&)):
   5385 	Add a __nonnull__ attribute.
   5386 	* testsuite/21_strings/basic_string/cons/char/nonnull.cc: New.
   5387 	* testsuite/21_strings/basic_string/cons/wchar_t/nonnull.cc: Likewise.
   5388 
   5389 2020-06-28  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   5390 
   5391 	* include/bits/basic_string.h (string(_CharT*, const _Alloc&)):
   5392 	Add a __nonnull__ attribute.
   5393 	* testsuite/21_strings/basic_string/cons/char/nonnull.cc: New.
   5394 	* testsuite/21_strings/basic_string/cons/wchar_t/nonnull.cc: Likewise.
   5395 
   5396 2020-06-28  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   5397 
   5398 	PR libstdc++/95915
   5399 	* include/std/type_traits (is_literal_type, is_literal_type_v):
   5400 	Deprecate in C++17.
   5401 	* include/std/variant (_Uninitialized):
   5402 	Adjust the condition and the comment.
   5403 	* testsuite/20_util/is_literal_type/deprecated-1z.cc: New.
   5404 	* testsuite/20_util/is_literal_type/requirements/explicit_instantiation.cc:
   5405 	Adjust.
   5406 	* testsuite/20_util/is_literal_type/requirements/typedefs.cc: Likewise.
   5407 	* testsuite/20_util/is_literal_type/value.cc: Likewise.
   5408 	* testsuite/20_util/optional/constexpr/nullopt.cc:
   5409 	Use __is_literal_type directly.
   5410 	* testsuite/20_util/optional/nullopt.cc: Likewise.
   5411 	* testsuite/20_util/variable_templates_for_traits.cc: Adjust.
   5412 	* testsuite/20_util/variant/95915.cc: New.
   5413 	* testsuite/20_util/variant/compile.cc: Add new test.
   5414 	* testsuite/experimental/optional/constexpr/nullopt.cc:
   5415 	Use __is_literal_type directly.
   5416 	* testsuite/experimental/optional/nullopt.cc: Likewise.
   5417 	* testsuite/experimental/type_traits/value.cc: Adjust.
   5418 	* testsuite/util/testsuite_common_types.h:
   5419 	Use __is_literal_type directly.
   5420 
   5421 2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   5422 
   5423 	* include/std/charconv (__from_chars_binary): Ignore leading zeros.
   5424 	* testsuite/20_util/from_chars/1.cc: Check "0x1" for all bases,
   5425 	not just 10 and 16.
   5426 	* testsuite/20_util/from_chars/3.cc: New test.
   5427 
   5428 2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   5429 
   5430 	* include/bits/stl_algobase.h (__find_if): Add FALLTHRU markers.
   5431 	* include/std/charconv (__detail::__to_chars): Avoid
   5432 	-Wsign-compare warning.
   5433 
   5434 2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   5435 
   5436 	PR libstdc++/95851
   5437 	* include/std/charconv (__to_chars_i): Check for zero-sized
   5438 	buffer unconditionally.
   5439 	* testsuite/20_util/to_chars/95851.cc: New test.
   5440 
   5441 2020-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
   5442 
   5443 	* testsuite/20_util/from_chars/1_c++20_neg.cc: Check enumeration
   5444 	type.
   5445 	* testsuite/20_util/from_chars/1_neg.cc: Likewise. Move dg-error
   5446 	directives outside preprocessor condition.
   5447 
   5448 2020-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
   5449 
   5450 	PR libstdc++/95832
   5451 	* include/std/variant (__detail::__variant::_Build_FUN): Remove
   5452 	partial specialization to prevent narrowing conversions to bool.
   5453 	* testsuite/20_util/variant/compile.cc: Test non-narrowing
   5454 	conversions to bool.
   5455 	* testsuite/20_util/variant/run.cc: Likewise.
   5456 
   5457 2020-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
   5458 
   5459 	* doc/Makefile.in: Regenerate.
   5460 	* include/Makefile.in: Regenerate.
   5461 	* libsupc++/Makefile.in: Regenerate.
   5462 	* po/Makefile.in: Regenerate.
   5463 	* python/Makefile.in: Regenerate.
   5464 	* src/Makefile.in: Regenerate.
   5465 	* src/c++11/Makefile.in: Regenerate.
   5466 	* src/c++17/Makefile.in: Regenerate.
   5467 	* src/c++98/Makefile.in: Regenerate.
   5468 	* src/filesystem/Makefile.in: Regenerate.
   5469 	* testsuite/Makefile.in: Regenerate.
   5470 
   5471 2020-06-22  David Edelsohn  <dje.gcc (a] gmail.com>
   5472 
   5473 	* Makefile.am: Use -include.
   5474 	* Makefile.in: Regenerate.
   5475 
   5476 2020-06-21  David Edelsohn  <dje.gcc (a] gmail.com>
   5477 
   5478 	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
   5479 	* Makefile.in: Regenerate.
   5480 	* configure.ac (tmake_file): Substitute.
   5481 	* configure: Regenerate.
   5482 	* configure.host (aix*): Define tmake_file.
   5483 	* config/os/aix/t-aix: New file.
   5484 
   5485 2020-06-20  Jason Merrill  <jason (a] redhat.com>
   5486 
   5487 	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
   5488 	Remove greedy_ops tests.
   5489 	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
   5490 	Remove greedy_ops tests.
   5491 
   5492 2020-06-19  Jonathan Wakely  <jwakely (a] redhat.com>
   5493 
   5494 	PR libstdc++/95765
   5495 	* include/bits/stl_algobase.h (__size_to_integer(float))
   5496 	(__size_to_integer(double), __size_to_integer(long double))
   5497 	(__size_to_integer(__float128)): Cast return type explicitly.
   5498 	* include/bits/stl_uninitialized.h (__uninitialized_default_1<true>):
   5499 	Remove unused typedef.
   5500 
   5501 2020-06-19  Jonathan Wakely  <jwakely (a] redhat.com>
   5502 
   5503 	* include/bits/stl_pair.h (_Index_tuple): Remove redundant
   5504 	namespace qualification.
   5505 	(pair::pair(tuple<>&, tuple<>&, _Index_tuple, _Index_tuple)):
   5506 	Likewise.
   5507 	* include/std/tuple (_Head_base, _Tuple_impl, tuple_size)
   5508 	(tuple_element, __get_helper, get, __make_tuple_impl)
   5509 	(__make_1st_indices, __tuple_concater)
   5510 	(pair::pair(tuple<>&, tuple<>&, _Index_tuple, _Index_tuple)):
   5511 	Likewise.
   5512 	* include/std/utility (tuple_element, __is_tuple_like_impl)
   5513 	(tuple_size, __pair_get, get): Likewise.
   5514 
   5515 2020-06-19  Jonathan Wakely  <jwakely (a] redhat.com>
   5516 
   5517 	* include/bits/std_function.h (function): Define all member
   5518 	functions inline.
   5519 
   5520 2020-06-19  Marc Glisse  <marc.glisse (a] inria.fr>
   5521 
   5522 	* include/bits/stl_algo.h (__includes): Simplify the code.
   5523 
   5524 2020-06-19  Marc Glisse  <marc.glisse (a] inria.fr>
   5525 
   5526 	* include/std/optional (optional()): Explicitly define it.
   5527 
   5528 2020-06-17  Jonathan Wakely  <jwakely (a] redhat.com>
   5529 
   5530 	PR libstdc++/94540
   5531 	* include/bits/stl_uninitialized.h (__uninitialized_default_1<true>):
   5532 	Construct the first value at *__first instead of on the stack.
   5533 	(__uninitialized_default_n_1<true>): Likewise.
   5534 	Improve comments on several of the non-standard algorithms.
   5535 	* testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc:
   5536 	New test.
   5537 	* testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc:
   5538 	New test.
   5539 	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
   5540 	New test.
   5541 	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
   5542 	New test.
   5543 	* testsuite/23_containers/vector/cons/94540.cc: New test.
   5544 
   5545 2020-06-17  Jonathan Wakely  <jwakely (a] redhat.com>
   5546 
   5547 	* testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
   5548 	Replace Value type with int so trivial code path is used.
   5549 	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
   5550 	Likewise.
   5551 
   5552 2020-06-17  Jonathan Wakely  <jwakely (a] redhat.com>
   5553 
   5554 	* include/bits/stl_uninitialized.h (uninitialized_fill_n): Only
   5555 	use std::fill_n when the size is an integral type.
   5556 	(__uninitialized_default_n): Likewise.
   5557 	* testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
   5558 	New test.
   5559 	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc:
   5560 	New test.
   5561 	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
   5562 	New test.
   5563 
   5564 2020-06-16  Jonathan Wakely  <jwakely (a] redhat.com>
   5565 
   5566 	PR libstdc++/95282
   5567 	* include/bits/atomic_base.h (__atomic_impl::load): Use the _Val
   5568 	alias instead of deducing _Tp as an unqualified type.
   5569 	(__atomic_impl::exchange): Use the _Val alias to remove volatile
   5570 	from the reinterpret_cast result type.
   5571 
   5572 2020-06-16  Jonathan Wakely  <jwakely (a] redhat.com>
   5573 
   5574 	* include/std/atomic (atomic): Add static assertions.
   5575 	* testsuite/29_atomics/atomic/requirements/types_neg.cc: New test.
   5576 
   5577 2020-06-16  Patrick Palka  <ppalka (a] redhat.com>
   5578 
   5579 	PR libstdc++/94003
   5580 	* testsuite/20_util/is_constructible/94003.cc: New test.
   5581 
   5582 2020-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
   5583 
   5584 	* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
   5585 	Update value for C++20.
   5586 	* include/std/version (__cpp_lib_constexpr_char_traits): Likewise.
   5587 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
   5588 	Update expected value.
   5589 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
   5590 	Likewise.
   5591 
   5592 2020-06-15  Paul Keir  <paul.keir (a] uws.ac.uk>
   5593 
   5594 	* include/bits/char_traits.h (char_traits::move): constexpr move with
   5595 	overlap was using copy_backward incorrectly.
   5596 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
   5597 	New test.
   5598 
   5599 2020-06-12  Jonathan Wakely  <jwakely (a] redhat.com>
   5600 
   5601 	* testsuite/29_atomics/atomic_flag/clear/1.cc: Also test clear()
   5602 	when the value is currently set.
   5603 	* testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc:
   5604 	Actually check the return value.
   5605 	* testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc:
   5606 	Likewise.
   5607 
   5608 2020-06-12  Jonathan Wakely  <jwakely (a] redhat.com>
   5609 
   5610 	* include/bits/atomic_base.h (atomic_flag::test): Add missing
   5611 	const qualifiers.
   5612 	* testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
   5613 	dg-options and verify results of test function.
   5614 	* testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
   5615 
   5616 2020-06-11  Jonathan Wakely  <jwakely (a] redhat.com>
   5617 
   5618 	PR libstdc++/94749
   5619 	* include/bits/istream.tcc (basic_istream::ignore(streamsize, CharT)):
   5620 	Only discard an extra character if we didn't already reach the
   5621 	maximum number.
   5622 	* src/c++98/istream.cc (istream::ignore(streamsiz, char))
   5623 	(wistream::ignore(streamsize, wchar_t)): Likewise.
   5624 	* testsuite/27_io/basic_istream/ignore/char/94749.cc: New test.
   5625 	* testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: New test.
   5626 
   5627 2020-06-10  Patrick Palka  <ppalka (a] redhat.com>
   5628 
   5629 	PR libstdc++/95578
   5630 	* include/bits/ranges_algo.h (__lexicographical_compare_fn):
   5631 	Also check that the iterator and sentinel have the same type before
   5632 	applying the unwrapping optimization for __normal_iterator.
   5633 	Split the check into two, one for the first iterator/sentinel
   5634 	pair and another for second iterator/sentinel pair.  Remove uses
   5635 	of __niter_base, and remove uses of std::move on a
   5636 	__normal_iterator.
   5637 	* include/bits/ranges_algobase.h (__equal_fn): Likewise.
   5638 	(__copy_or_move): Likewise.  Perform similar adjustments for
   5639 	the reverse_iterator and move_iterator optimizations.  Inline
   5640 	the checks into the if-constexprs, and use using-declarations to
   5641 	make them less visually noisy.  Remove uses of __niter_wrap.
   5642 	(__copy_or_move_backward): Likewise.
   5643 	* testsuite/25_algorithms/copy/95578.cc: New test.
   5644 	* testsuite/25_algorithms/copy_backward/95578.cc: New test.
   5645 	* testsuite/25_algorithms/equal/95578.cc: New test.
   5646 	* testsuite/25_algorithms/lexicographical_compare/95578.cc: New test.
   5647 	* testsuite/25_algorithms/move/95578.cc: New test.
   5648 	* testsuite/25_algorithms/move_backward/95578.cc: New test.
   5649 
   5650 2020-06-10  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5651 	    Jonathan Wakely  <jwakely (a] redhat.com>
   5652 
   5653 	* include/bits/deque.tcc (__lex_cmp_dit): New.
   5654 	(__lexicographical_compare_aux1): Define overloads for deque
   5655 	iterators.
   5656 	* include/bits/stl_algobase.h (__lexicographical_compare::__3way):
   5657 	New static member function.
   5658 	(__lexicographical_compare<true>::__3way): Likewise.
   5659 	(__lexicographical_compare<true>::__lc): Use __3way.
   5660 	(__lexicographical_compare_aux): Rename to
   5661 	__lexicographical_compare_aux1 and declare overloads for deque
   5662 	iterators.
   5663 	(__lexicographical_compare_aux): Define new forwarding function
   5664 	that calls __lexicographical_compare_aux1 and declare new overloads
   5665 	for safe iterators.
   5666 	(lexicographical_compare): Do not use __niter_base on
   5667 	parameters.
   5668 	* include/debug/safe_iterator.tcc
   5669 	(__lexicographical_compare_aux): Define overloads for safe
   5670 	iterators.
   5671 	* testsuite/25_algorithms/lexicographical_compare/1.cc: Add
   5672 	checks with random access iterators.
   5673 	* testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc:
   5674 	New test.
   5675 
   5676 2020-06-09  Jonathan Wakely  <jwakely (a] redhat.com>
   5677 
   5678 	* include/bits/stl_iterator.h (move_iterator::operator=): Define.
   5679 	* testsuite/24_iterators/move_iterator/dr3265.cc: New test.
   5680 
   5681 2020-06-09  Jonathan Wakely  <jwakely (a] redhat.com>
   5682 
   5683 	* include/std/optional (bad_optional_access): Define default
   5684 	constructor and destructor as defaulted.
   5685 	* testsuite/20_util/optional/bad_access.cc: New test.
   5686 
   5687 2020-06-08  Jonathan Wakely  <jwakely (a] redhat.com>
   5688 
   5689 	* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error
   5690 	line number.
   5691 	* testsuite/20_util/default_delete/void_neg.cc: Likewise.
   5692 
   5693 2020-06-08  Jonathan Wakely  <jwakely (a] redhat.com>
   5694 
   5695 	* include/bits/unique_ptr.h (operator<<): Define for C++20.
   5696 	* testsuite/20_util/unique_ptr/io/lwg2948.cc: New test.
   5697 
   5698 2020-06-04  Jonathan Wakely  <jwakely (a] redhat.com>
   5699 
   5700 	* include/bits/iterator_concepts.h (__detail::__ptr, __detail::__ref)
   5701 	(__detail::__cat, __detail::__diff): Move to class scope in the
   5702 	relevant __iterator_traits specializations.
   5703 	(__iterator_traits<>): Use nested class templates instead of ones from
   5704 	namespace __detail.
   5705 	* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Move to
   5706 	class scope in iterator_traits<common_iterator<I, S>>.
   5707 	(iterator_traits<common_iterator<I, S>>): Use nested class template
   5708 	instead of __detail::__common_iter_ptr.
   5709 
   5710 2020-06-04  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5711 
   5712 	* include/bits/stl_algo.h (__copy_n_a): Move to ...
   5713 	* include/bits/stl_algobase.h (__copy_n_a): ...here. Add __strict
   5714 	parameter.
   5715 	(__copy_n_a(istreambuf_iterator<>, _Size, _Deque_iterator<>, bool)):
   5716 	Declare.
   5717 	(__niter_base(const _Safe_iterator<_Ite, _Seq,
   5718 	random_access_iterator_tag>&)): Declare.
   5719 	(__copy_move_a2(istreambuf_iterator<>, istreambuf_iterator<>,
   5720 	_Deque_iterator<>)): Declare.
   5721 	* include/bits/deque.tcc
   5722 	(__copy_move_a2(istreambuf_iterator<>, istreambuf_iterator<>,
   5723 	_Deque_iterator<>)): New.
   5724 	(__copy_n_a(istreambuf_iterator<>, _Size, _Deque_iterator<>, bool)):
   5725 	New.
   5726 	* include/bits/streambuf_iterator.h
   5727 	(__copy_n_a(istreambuf_iterator<>, _Size, _CharT*, bool)): Adapt.
   5728 	* include/debug/safe_iterator.tcc (__niter_base): New.
   5729 	* testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
   5730 	(test03): New.
   5731 	* testsuite/25_algorithms/copy/streambuf_iterators/char/debug/deque_neg.cc:
   5732 	New test.
   5733 	* testsuite/25_algorithms/copy_n/debug/istreambuf_ite_deque_neg.cc:
   5734 	New test.
   5735 	* testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc: New test.
   5736 	* testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc:
   5737 	New test.
   5738 
   5739 2020-06-04  Jonathan Wakely  <jwakely (a] redhat.com>
   5740 
   5741 	* include/bits/ranges_algobase.h (__copy_n_fn): Only call
   5742 	ranges::copy for positive values.
   5743 	* include/bits/stl_algo.h (copy_n): Convert Size argument to an
   5744 	integral type and only call __copy_n for positive values.
   5745 	* testsuite/util/testsuite_iterators.h
   5746 	(random_access_iterator_wrapper::operator+=): Fix range check for
   5747 	negative values.
   5748 	(output_container, input_container, forward_container)
   5749 	(bidirectional_container, random_access_container): New alias
   5750 	templates.
   5751 	* testsuite/25_algorithms/copy_n/5.cc: New test.
   5752 
   5753 2020-06-02  Jonathan Wakely  <jwakely (a] redhat.com>
   5754 
   5755 	PR libstdc++/90102
   5756 	* include/debug/deque (deque(const _Base&)): Replace parameter
   5757 	with a struct that wraps a const _Base&.
   5758 	* include/debug/forward_list (forward_list(_Base_ref)): New
   5759 	constructor.
   5760 	* include/debug/list (list(const _Base&)): Replace parameter
   5761 	with a struct that wraps a const _Base&.
   5762 	* include/debug/map.h (map(const _Base&)): Likewise.
   5763 	* include/debug/multimap.h (multimap(const _Base&)): Likewise.
   5764 	* include/debug/multiset.h (multiset(const _Base&)): Likewise.
   5765 	* include/debug/set.h (set(const _Base&)): Likewise.
   5766 	* include/debug/unordered_map (unordered_map(const _Base&))
   5767 	(unordered_multimap(const _Base&)): Likewise.
   5768 	* include/debug/unordered_set (unordered_set(const _Base&))
   5769 	(unordered_multiset(const _Base&)): Likewise.
   5770 	* testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
   5771 	Adjust dg-error line number.
   5772 	* include/debug/vector (vector(const _Base&)): Likewise.
   5773 	* testsuite/23_containers/deque/debug/90102.cc: New test.
   5774 	* testsuite/23_containers/forward_list/debug/90102.cc: New test.
   5775 	* testsuite/23_containers/list/debug/90102.cc: New test.
   5776 	* testsuite/23_containers/map/debug/90102.cc: New test.
   5777 	* testsuite/23_containers/multimap/debug/90102.cc: New test.
   5778 	* testsuite/23_containers/multiset/debug/90102.cc: New test.
   5779 	* testsuite/23_containers/set/debug/90102.cc: New test.
   5780 	* testsuite/23_containers/unordered_map/debug/90102.cc: New test.
   5781 	* testsuite/23_containers/unordered_multimap/debug/90102.cc: New test.
   5782 	* testsuite/23_containers/unordered_multiset/debug/90102.cc: New test.
   5783 	* testsuite/23_containers/unordered_set/debug/90102.cc: New test.
   5784 	* testsuite/23_containers/vector/debug/90102.cc: New test.
   5785 
   5786 2020-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   5787 
   5788 	PR libstdc++/95392
   5789 	* include/bits/fs_path.h (path::_S_to_string): Move to
   5790 	namespace-scope and rename to ...
   5791 	(__detail::__string_from_range): ... this.
   5792 	[WINDOWS] (__detail::__wstr_from_utf8): New function template to
   5793 	convert a char sequence containing UTF-8 to wstring.
   5794 	(path::_S_convert(Iter, Iter)): Adjust call to _S_to_string.
   5795 	(path::_S_convert_loc(Iter, Iter, const locale&)): Likewise.
   5796 	(u8path(InputIterator, InputIterator)) [WINDOWS]: Use
   5797 	__string_from_range to obtain a contiguous range and
   5798 	__wstr_from_utf8 to obtain a wide string.
   5799 	(u8path(const Source&)) [WINDOWS]: Use __effective_range to
   5800 	obtain a contiguous range and __wstr_from_utf8 to obtain a wide
   5801 	string.
   5802 	(path::_S_convert(const _EcharT*, const _EcharT)) [WINDOWS]:
   5803 	Use __wstr_from_utf8.
   5804 
   5805 2020-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   5806 
   5807 	* testsuite/util/testsuite_iterators.h:
   5808 	(input_iterator_wrapper::operator++(int)): Return proxy object.
   5809 
   5810 2020-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   5811 
   5812 	* doc/xml/manual/evolution.xml: Document deprecation of
   5813 	__is_nullptr_t and removal of std::allocator members.
   5814 	* doc/html/manual/api.html: Regenerate.
   5815 
   5816 2020-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   5817 
   5818 	* doc/xml/manual/containers.xml: Replace <xref> with <link>.
   5819 	* doc/xml/manual/evolution.xml: Likewise.
   5820 	* doc/html/manual/api.html: Regenerate.
   5821 	* doc/html/manual/containers.html: Regenerate.
   5822 
   5823 2020-06-01  Gerald Pfeifer  <gerald (a] pfeifer.com>
   5824 
   5825 	* doc/xml/faq.xml: Adjust Valgrind reference and remove another.
   5826 	* doc/html/faq.html: Regenerate.
   5827 
   5828 2020-06-01  Gerald Pfeifer  <gerald (a] pfeifer.com>
   5829 
   5830 	* doc/xml/manual/policy_data_structures_biblio.xml: Remove
   5831 	stray change.
   5832 
   5833 2020-06-01  Gerald Pfeifer  <gerald (a] pfeifer.com>
   5834 
   5835 	* doc/xml/manual/policy_data_structures_biblio.xml: Switch
   5836 	www.cs.princeton.edu to https.
   5837 	* doc/html/manual/policy_data_structures.html: Regenerate.
   5838 
   5839 2020-05-31  Douglas B Rupp  <douglas.b.rupp (a] gmail.com>
   5840 
   5841 	* crossconfig.m4 (<*-vxworks>): Check for more math decls.
   5842 	* configure: Rebuild.
   5843 
   5844 2020-05-29  H.J. Lu  <hjl.tools (a] gmail.com>
   5845 
   5846 	PR bootstrap/95413
   5847 	* configure: Regenerated.
   5848 
   5849 2020-05-29  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5850 
   5851 	PR libstdc++/95079
   5852 	* include/bits/hashtable_policy.h (_Insert_base<>::try_emplace): New.
   5853 	* include/bits/unordered_map.h (unordered_map<>::try_emplace): Adapt.
   5854 	(unordered_map<>::insert_or_assign): Adapt.
   5855 
   5856 2020-05-27  Jonathan Wakely  <jwakely (a] redhat.com>
   5857 
   5858 	PR libstdc++/95282
   5859 	* include/bits/atomic_base.h (__atomic_impl::load): Add
   5860 	cv-qualifiers to parameter so that _Tp is deduced as the
   5861 	unqualified type.
   5862 	* testsuite/29_atomics/atomic_float/95282.cc: New test.
   5863 
   5864 2020-05-27  Jonathan Wakely  <jwakely (a] redhat.com>
   5865 
   5866 	PR libstdc++/95322
   5867 	* include/std/ranges (transform_view::_Sentinel): Allow hidden
   5868 	friends to work with _Iterator<true> and _Iterator<false>.
   5869 	(join_view::_Sentinel): Likewise.
   5870 	* testsuite/std/ranges/adaptors/95322.cc: New test.
   5871 
   5872 2020-05-27  Jonathan Wakely  <jwakely (a] redhat.com>
   5873 
   5874 	PR libstdc++/94354
   5875 	* include/bits/stl_iterator.h (reverse_iterator): Fix comparison
   5876 	operators to use the correct operations on the underlying
   5877 	iterators.
   5878 	* testsuite/24_iterators/reverse_iterator/rel_ops.cc: New test.
   5879 
   5880 2020-05-27  Jonathan Wakely  <jwakely (a] redhat.com>
   5881 
   5882 	* testsuite/18_support/comparisons/categories/zero_neg.cc: New test.
   5883 
   5884 2020-05-26  Patrick Palka  <ppalka (a] redhat.com>
   5885 
   5886 	PR libstdc++/95322
   5887 	* include/bits/stl_iterator.h (__detail::_Common_iter_proxy):
   5888 	Remove and instead define it ...
   5889 	(common_iterator::_Proxy): ... here.
   5890 	(common_iterator::operator->): Use it.
   5891 	* testsuite/24_iterators/common_iterator/2.cc: New test.
   5892 	* testsuite/std/ranges/adaptors/95322.cc: New test.
   5893 
   5894 2020-05-23  Patrick Palka  <ppalka (a] redhat.com>
   5895 
   5896 	PR libstdc++/93978
   5897 	* testsuite/std/ranges/adaptors/93978.cc: Add -Wall to
   5898 	dg-additional-options.  Avoid unused-but-set-variable warning.
   5899 
   5900 2020-05-23  Jonathan Wakely  <jwakely (a] redhat.com>
   5901 
   5902 	PR libstdc++/95289
   5903 	* include/debug/helper_functions.h (__get_distance): Only declare
   5904 	as a constexpr function for C++14 and up.
   5905 	* testsuite/25_algorithms/copy/debug/95289.cc: New test.
   5906 
   5907 	* include/bits/fs_path.h (__detail::_S_range_begin)
   5908 	(__detail::_S_range_end, path::_S_string_from_iter): Replace with
   5909 	overloaded function template __detail::__effective_range.
   5910 	(__detail::__effective_range): New overloaded function template to
   5911 	create a basic_string or basic_string_view for an effective range.
   5912 	(__detail::__value_type_is_char): Use __detail::__effective_range.
   5913 	Do not use remove_const on value type.
   5914 	(__detail::__value_type_is_char_or_char8_t): Likewise.
   5915 	(path::path(const Source&, format))
   5916 	(path::path(const Source&, const locale&))
   5917 	(path::operator/=(const Source&), path::append(const Source&))
   5918 	(path::concat(const Source&)): Use __detail::__effective_range.
   5919 	(path::_S_to_string(InputIterator, InputIterator)): New function
   5920 	template to create a string view if possible, or string otherwise.
   5921 	(path::_S_convert): Add overloads that convert a string returned
   5922 	by __detail::__effective_range. Use if-constexpr to inline conversion
   5923 	logic from all overloads of _Cvt::_S_convert.
   5924 	(path::_S_convert_loc): Add overload that converts a string. Use
   5925 	_S_to_string to avoid allocation when possible.
   5926 	(path::_Cvt): Remove.
   5927 	(path::operator+=(CharT)): Remove indirection through path::concat.
   5928 	* include/experimental/bits/fs_path.h (path::_S_convert_loc): Add
   5929 	overload for non-const pointers, to avoid constructing a std::string.
   5930 	* src/c++17/fs_path.cc (path::_S_convert_loc): Replace conditional
   5931 	compilation with call to _S_convert.
   5932 
   5933 	* include/bits/fs_path.h (__detail::_S_range_begin)
   5934 	(__detail::_S_range_end): Remove unintentional static specifiers.
   5935 	* include/experimental/bits/fs_path.h (__detail::_S_range_begin)
   5936 	(__detail::_S_range_end): Likewise.
   5937 
   5938 	* include/bits/fs_path.h (filesystem::__detail::__is_encoded_char):
   5939 	Replace alias template with variable template. Don't remove const.
   5940 	(filesystem::__detail::__is_path_src): Replace overloaded function
   5941 	template with variable template and specializations.
   5942 	(filesystem::__detail::__is_path_iter_src): Replace alias template
   5943 	with class template.
   5944 	(filesystem::__detail::_Path): Use __is_path_src. Remove support for
   5945 	iterator pairs.
   5946 	(filesystem::__detail::_Path2): New alias template for checking
   5947 	InputIterator requirements.
   5948 	(filesystem::__detail::__constructible_from): Remove.
   5949 	(filesystem::path): Replace _Path<Iter, Iter> with _Path2<Iter>.
   5950 	* testsuite/27_io/filesystem/path/construct/80762.cc: Check with two
   5951 	constructor arguments of void and void* types.
   5952 
   5953 2020-05-21  Matthias Kretz  <kretz (a] kde.org>
   5954 
   5955 	* testsuite/Makefile.am: Remove dup target_triplet and set tool,
   5956 	allowing runtest to work without arguments.
   5957 	* testsuite/Makefile.in: Regenerate.
   5958 
   5959 2020-05-21  Jonathan Wakely  <jwakely (a] redhat.com>
   5960 
   5961 	PR libstdc++/93983
   5962 	* include/bits/iterator_concepts.h (__detail::__cpp17_iterator):
   5963 	Reorder constraints to avoid recursion when constructors use
   5964 	iterator_traits (LWG 3420).
   5965 	* testsuite/24_iterators/customization_points/lwg3420.cc: New test.
   5966 
   5967 	* include/experimental/socket (basic_socket::is_open()
   5968 	(basic_socket_acceptor::is_open()): Use _GLIBCXX_NODISCARD macro.
   5969 
   5970 	* include/experimental/bits/net.h (__endpoint, __protocol)
   5971 	(__acceptable_protocol, __inet_protocol): New concepts.
   5972 	(__detail::__is_endpoint): Move trait from <experimental/socket>.
   5973 	(__is_protocol, __is_acceptable_protocol, __is_inet_protocol): New
   5974 	traits.
   5975 	(__endpoint, __protocol, __acceptable_protocol): New variable
   5976 	templates.
   5977 	* include/experimental/socket (__is_endpoint): Move to net.h header.
   5978 	(basic_socket, basic_socket_acceptor): Check requirements.
   5979 
   5980 	* include/experimental/executor (use_future_t::use_future_t()): Fix
   5981 	incorrect noexcept-specifier.
   5982 	* include/experimental/internet (basic_resolver_results): Adjust
   5983 	whitespace.
   5984 	* include/experimental/socket (__basic_socket_impl::release): Add
   5985 	member function.
   5986 	(basic_socket(io_context&, const endpoint_type&)): Fix argument to
   5987 	target constructor.
   5988 	(basic_socket::release(), basic_socket::release(error_code&)): Add
   5989 	missing member functions.
   5990 	(basic_socket::is_open()): Add nodiscard attribute.
   5991 	(basic_socket::close(error_code&)): Pass argument to base function.
   5992 	(basic_socket_acceptor::release())
   5993 	(basic_socket_acceptor::release(error_code&)): Add missing member
   5994 	functions.
   5995 	(basic_socket_acceptor::is_open()): Add nodiscard attribute.
   5996 	(basic_socket_streambuf::error()): Add noexcept.
   5997 	(basic_socket_iostream::error()): Likewise.
   5998 	* testsuite/experimental/net/socket/basic_socket.cc: New test.
   5999 
   6000 	* include/experimental/buffer: Replace typedefs with
   6001 	alias-declarations.
   6002 	* include/experimental/executor: Likewise.
   6003 	* include/experimental/internet: Likewise.
   6004 	* include/experimental/socket: Likewise.
   6005 	* include/experimental/timer: Likewise.
   6006 
   6007 2020-05-19  Jonathan Wakely  <jwakely (a] redhat.com>
   6008 
   6009 	PR libstdc++/94087
   6010 	* src/c++11/random.cc (__x86_rdseed): Allow fallback function to be
   6011 	passed in.
   6012 	(__x86_rdseed_rdrand): New function that uses rdseed with rdrand
   6013 	fallback.
   6014 	(random_device::_M_init): Use __x86_rdseed_rdrand when both
   6015 	instructions are available.
   6016 	* testsuite/26_numerics/random/random_device/94087.cc: New test.
   6017 
   6018 2020-05-19  Patrick Palka  <ppalka (a] redhat.com>
   6019 
   6020 	PR c++/66439
   6021 	* testsuite/20_util/pair/astuple/get_neg.cc: Prune "type/value
   6022 	mismatch" messages.
   6023 	* testsuite/20_util/tuple/element_access/get_neg.cc: Likewise.
   6024 
   6025 2020-05-15  H.J. Lu  <hongjiu.lu (a] intel.com>
   6026 
   6027 	PR bootstrap/95147
   6028 	* configure: Regenerated.
   6029 
   6030 2020-05-14  H.J. Lu  <hongjiu.lu (a] intel.com>
   6031 
   6032 	* configure: Regenerated.
   6033 
   6034 2020-05-13  Alexandre Oliva <oliva (a] adacore.com>
   6035 
   6036 	PR libstdc++/77691
   6037 	* include/experimental/memory_resource
   6038 	(__resource_adaptor_imp::do_allocate): Handle max_align_t on
   6039 	x86-vxworks as on x86-solaris.
   6040 	(__resource_adaptor_imp::do_deallocate): Likewise.
   6041 	* testsuite/experimental/memory_resource/new_delete_resource.cc:
   6042 	Drop xfail.
   6043 	(BAD_MAX_ALIGN_T): Define on x86-vxworks as on x86-solaris.
   6044 	(test03): Drop max-align test for char-aligned alloc.
   6045 
   6046 2020-05-08  Ulrich Drepper  <drepper (a] redhat.com>
   6047 
   6048 	* include/bits/atomic_base.h (atomic_flag): Implement test member
   6049 	function.
   6050 	* include/std/version: Define __cpp_lib_atomic_flag_test.
   6051 	* testsuite/29_atomics/atomic_flag/test/explicit.cc: New file.
   6052 	* testsuite/29_atomics/atomic_flag/test/implicit.cc: New file.
   6053 
   6054 2020-05-07  Jonathan Wakely  <jwakely (a] redhat.com>
   6055 
   6056 	PR libstdc++/94971 (partial)
   6057 	* include/bits/ranges_algo.h (ranges::__sample_fn): Qualify
   6058 	std::sample using macro to work in parallel mode.
   6059 	(__sort_fn): Likewise for std::sort.
   6060 	(ranges::__nth_element_fn): Likewise for std::nth_element.
   6061 	* include/bits/stl_algobase.h (lexicographical_compare_three_way):
   6062 	Likewise for std::__min_cmp.
   6063 	* include/parallel/algobase.h (lexicographical_compare_three_way):
   6064 	Add to namespace std::__parallel.
   6065 
   6066 	PR c/92472
   6067 	* include/parallel/multiway_merge.h (_GuardedIterator::operator*)
   6068 	(_GuardedIterator::operator _RAIter, _UnguardedIterator::operator*)
   6069 	(_UnguardedIterator::operator _RAIter): Add const qualifier.
   6070 	(operator<(_GuardedIterator&, _GuardedIterator&)
   6071 	(operator<=(_GuardedIterator&, _GuardedIterator&)
   6072 	(operator<(_UnguardedIterator&, _UnguardedIterator&)
   6073 	(operator<=(_UnguardedIterator&, _UnguardedIterator&): Change
   6074 	parameters to const references.
   6075 
   6076 2020-05-07  Eric Botcazou  <ebotcazou (a] adacore.com>
   6077 
   6078 	* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Update.
   6079 	* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
   6080 
   6081 2020-05-06  Franois Dumont  <fdumont (a] gcc.gnu.org>
   6082 
   6083 	* include/bits/stl_algobase.h (struct _Bit_iterator): New declaration.
   6084 	(std::__fill_a1(_Bit_iterator, _Bit_iterator, const bool&)): Likewise.
   6085 	* include/bits/stl_bvector.h (__fill_bvector): Move outside
   6086 	_GLIBCXX_STD_C namespace.
   6087 	(fill(_Bit_iterator, _Bit_iterator, const bool&)): Likewise and rename
   6088 	into...
   6089 	(__fill_a1): ...this.
   6090 	* testsuite/25_algorithms/fill/bvector/1.cc: New.
   6091 
   6092 2020-05-06  H.J. Lu  <hongjiu.lu (a] intel.com>
   6093 
   6094 	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
   6095 
   6096 2020-05-06  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   6097 
   6098 	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
   6099 	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
   6100 	Likewise.
   6101 	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
   6102 	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
   6103 	Likewise.
   6104 
   6105 2020-05-06  Martin Liska  <mliska (a] suse.cz>
   6106 
   6107 	Revert:
   6108 	2020-05-05  Martin Liska  <mliska (a] suse.cz>
   6109 	PR c/92472
   6110 	* include/parallel/multiway_merge.h:
   6111 	Use const for _Compare template argument.
   6112 
   6113 2020-05-06  Jonathan Wakely  <jwakely (a] redhat.com>
   6114 
   6115 	* doc/xml/manual/abi.xml (abi.versioning.history): Document library
   6116 	versions for GCC 9.[123] and 10.1 releases.
   6117 	* doc/html/*: Regenerate.
   6118 
   6119 2020-05-06  Jakub Jelinek  <jakub (a] redhat.com>
   6120 
   6121 	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
   6122 	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
   6123 	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
   6124 	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
   6125 	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
   6126 	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
   6127 	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
   6128 
   6129 2020-05-05  Martin Liska  <mliska (a] suse.cz>
   6130 
   6131 	PR c/92472
   6132 	* include/parallel/multiway_merge.h:
   6133 	Use const for _Compare template argument.
   6134 
   6135 2020-05-04  Fangrui Song  <maskray (a] google.com>
   6136 
   6137 	* libsupc++/cxxabi.h (__cxa_finalize): Fix return type.
   6138 
   6139 2020-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   6140 
   6141 	* doc/xml/faq.xml: Use working link for SGI STL FAQ.
   6142 	* doc/html/*: Regenerate.
   6143 
   6144 	PR libstdc++/94906
   6145 	* src/c++17/memory_resource.cc
   6146 	(monotonic_buffer_resource::_Chunk::release): Use size_t for shift
   6147 	operands.
   6148 
   6149 2020-05-04  Nathan Sidwell  <nathan (a] acm.org>
   6150 
   6151 	PR libstdc++/94747
   6152 	* libsupc++/dyncast.cc (__dynamic_cast): Cast offsetof to
   6153 	ptrdiff_t before negation, to show intent more clearly.
   6154 
   6155 2020-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   6156 
   6157 	PR libstdc++/94936
   6158 	* src/c++17/memory_resource.cc (synchronized_pool_resource::_TPools):
   6159 	Add comment about single-threaded behaviour.
   6160 	(synchronized_pool_resource::_TPools::move_nonempty_chunks()): Hoist
   6161 	class member access out of loop.
   6162 	(synchronized_pool_resource::synchronized_pool_resource())
   6163 	(synchronized_pool_resource::~synchronized_pool_resource())
   6164 	(synchronized_pool_resource::release()): Check __gthread_active_p
   6165 	before creating and/or deleting the thread-specific data key.
   6166 	(synchronized_pool_resource::_M_thread_specific_pools()): Adjust
   6167 	assertions.
   6168 	(synchronized_pool_resource::do_allocate(size_t, size_t)): Add fast
   6169 	path for single-threaded case.
   6170 	(synchronized_pool_resource::do_deallocate(void*, size_t, size_t)):
   6171 	Likewise. Return if unable to find a pool that owns the allocation.
   6172 	* testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
   6173 	New test.
   6174 	* testsuite/20_util/synchronized_pool_resource/cons_single.cc: New
   6175 	test.
   6176 	* testsuite/20_util/synchronized_pool_resource/release_single.cc: New
   6177 	test.
   6178 
   6179 2020-05-03  Jonathan Wakely  <jwakely (a] redhat.com>
   6180 
   6181 	PR libstdc++/94933
   6182 	* include/bits/stl_algobase.h (__fill_a1): Make overload for byte types
   6183 	usable in constant expressions.
   6184 	* testsuite/25_algorithms/fill_n/constexpr.cc: Test with bytes and
   6185 	non-scalars.
   6186 
   6187 2020-05-01  Jonathan Wakely  <jwakely (a] redhat.com>
   6188 
   6189 	PR libstdc++/94901
   6190 	* testsuite/17_intro/badnames.cc: Test values between _E9 and _E24 too.
   6191 
   6192 2020-05-01  Jonathan Wakely  <jwakely (a] redhat.com>
   6193 	    Patrick Palka  <ppalka (a] redhat.com>
   6194 
   6195 	PR libstdc++/92894
   6196 	* include/bits/iterator_concepts.h (ranges::__cust_imove::_IMove):
   6197 	Add trait to determine return type and an alias for it.
   6198 	(ranges::__cust_imove::_IMove::operator()): Use __result instead of
   6199 	deduced return type.
   6200 	(iter_rvalue_reference_t): Use _IMove::__type instead of checking
   6201 	the result of ranges::iter_move.
   6202 	(__detail::__indirectly_readable_impl): Use iter_rvalue_reference_t
   6203 	instead of checking the result of ranges::iter_move.
   6204 	* testsuite/24_iterators/customization_points/92894.cc: New test.
   6205 	* testsuite/24_iterators/indirect_callable/92894.cc: New test.
   6206 
   6207 2020-05-01  Jonathan Wakely  <jwakely (a] redhat.com>
   6208 
   6209 	PR libstdc++/94901
   6210 	* include/std/type_traits (__is_complete_or_unbounded): Replace
   6211 	BADNAME _T with _Tp.
   6212 	* testsuite/17_intro/badnames.cc: New test.
   6213 
   6214 2020-04-30  Jonathan Wakely  <jwakely (a] redhat.com>
   6215 
   6216 	PR libstdc++/89510
   6217 	* include/bits/alloc_traits.h (allocator_traits::_S_construct)
   6218 	(allocator_traits::_S_destroy)
   6219 	(allocator_traits<allocator<T>>::construct): Use traits in
   6220 	noexcept-specifiers.
   6221 	* include/bits/allocator.h (allocator<void>::construct)
   6222 	(allocator<void>::destroy): Likewise.
   6223 	* include/ext/malloc_allocator.h (malloc_allocator::construct)
   6224 	(malloc_allocator::destroy): Likewise.
   6225 	* include/ext/new_allocator.h (new_allocator::construct)
   6226 	(new_allocator::destroy): Likewise.
   6227 	* testsuite/20_util/allocator/89510.cc: New test.
   6228 	* testsuite/ext/malloc_allocator/89510.cc: New test.
   6229 	* testsuite/ext/new_allocator/89510.cc: New test.
   6230 
   6231 2020-04-29  Jonathan Wakely  <jwakely (a] redhat.com>
   6232 
   6233 	PR libstdc++/94854
   6234 	* include/bits/basic_string.tcc: Update comment about explicit
   6235 	instantiations.
   6236 
   6237 2020-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
   6238 
   6239 	PR libstdc++/91480
   6240 	* include/bits/allocator.h (__cpp_lib_allocator_is_always_equal):
   6241 	Remove non-standard macro.
   6242 	* include/bits/stl_iterator.h (__cpp_lib_constexpr_iterator): Define
   6243 	to indicate P1032R1 support.
   6244 	* include/bits/stl_pair.h (__cpp_lib_constexpr_utility): Likewise.
   6245 	* include/std/string_view (__cpp_lib_constexpr_string_view): Likewise.
   6246 	* include/std/tuple (__cpp_lib_constexpr_tuple): Likewise.
   6247 	* include/std/version (__cpp_lib_allocator_is_always_equal): Remove.
   6248 	(__cpp_lib_constexpr_iterator, __cpp_lib_constexpr_string_view)
   6249 	(__cpp_lib_constexpr_tuple, __cpp_lib_constexpr_utility): Define.
   6250 	* testsuite/20_util/function_objects/constexpr_searcher.cc: Check
   6251 	feature test macro.
   6252 	* testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: Likewise.
   6253 	* testsuite/21_strings/basic_string_view/operations/copy/char/
   6254 	constexpr.cc: Likewise.
   6255 	* testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
   6256 
   6257 	PR libstdc++/94831
   6258 	* include/bits/alloc_traits.h (_S_construct): Restore placement
   6259 	new-expression for C++11/14/17 and call std::construct_at directly
   6260 	for C++20.
   6261 	* include/bits/stl_construct.h (_Construct): Revert to non-constexpr
   6262 	function returning void.
   6263 	* testsuite/20_util/specialized_algorithms/
   6264 	uninitialized_value_construct/94831.cc: New test.
   6265 	* testsuite/23_containers/vector/cons/94831.cc: New test.
   6266 
   6267 2020-04-28  Patrick Palka  <ppalka (a] redhat.com>
   6268 
   6269 	LWG 3433 subrange::advance(n) has UB when n < 0
   6270 	* include/std/ranges (subrange::prev): Fix typo.
   6271 	(subrange::advance): Handle a negative argument as per the proposed
   6272 	resolution of LWG 3433.
   6273 	* testsuite/std/ranges/subrange/lwg3433.cc: New test.
   6274 
   6275 2020-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
   6276 	    Iain Sandoe  <iain (a] sandoe.co.uk>
   6277 
   6278 	PR c++/94759
   6279 	* include/std/coroutine: Implement handing for non-
   6280 	class coroutine return types.
   6281 
   6282 2020-04-24  Jonathan Wakely  <jwakely (a] redhat.com>
   6283 
   6284 	* include/experimental/executor (service_already_exists): Make default
   6285 	constructor public (LWG 3414).
   6286 	* testsuite/experimental/net/execution_context/make_service.cc: Check
   6287 	the service_already_exists can be default constructed.
   6288 
   6289 2020-04-24  Kamlesh Kumar  <kamleshbhalui (a] gmail.com>
   6290 	    Jonathan Wakely  <jwakely (a] redhat.com>
   6291 
   6292 	PR libstdc++/90415
   6293 	PR libstdc++/92156
   6294 	* include/std/any (any): Rename template parameters for consistency
   6295 	with the standard.
   6296 	(any::_Decay): Rename to _Decay_if_not_any.
   6297 	(any::any(T&&):: Remove is_constructible from constraints. Remove
   6298 	non-standard overload.
   6299 	(any::any(in_place_type_t<T>, Args&&...))
   6300 	(any::any(in_place_type_t<T>, initializer_list<U>, Args&&...))
   6301 	(any::emplace(Args&&...))
   6302 	(any::emplace(initializer_list<U>, Args&&...)):
   6303 	Use decay_t instead of _Decay.
   6304 	* testsuite/20_util/any/cons/90415.cc: New test.
   6305 	* testsuite/20_util/any/cons/92156.cc: New Test.
   6306 	* testsuite/20_util/any/misc/any_cast_neg.cc: Make dg-error directives
   6307 	more robust.
   6308 	* testsuite/20_util/any/modifiers/92156.cc: New test.
   6309 
   6310 2020-04-23  Jonathan Wakely  <jwakely (a] redhat.com>
   6311 
   6312 	* doc/xml/manual/status_cxx2020.xml: Update C++20 status table.
   6313 	* doc/html/*: Regenerate.
   6314 
   6315 	* include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Revert
   6316 	value for C++17 to 201803L because P0858R0 is supported for C++17.
   6317 	* include/std/version (__cpp_lib_array_constexpr): Likewise.
   6318 	* testsuite/23_containers/array/element_access/constexpr_c++17.cc:
   6319 	Check for value corresponding to P0031R0 features being tested.
   6320 	* testsuite/23_containers/array/requirements/constexpr_iter.cc:
   6321 	Check for value corresponding to P0858R0 features being tested.
   6322 
   6323 	* include/std/version (__cpp_lib_three_way_comparison): Define for
   6324 	freestanding builds.
   6325 
   6326 2020-04-23  Thomas Rodgers  <rodgert (a] appliantology.com>
   6327 
   6328 	* include/experimental/net/executor (system_context): Mark
   6329 	system_context::system_context() = delete.
   6330 	* testsuite/experimental/net/executor/1.cc: Add new
   6331 	test to check system_context is not default constructible.
   6332 
   6333 2020-04-23  Iain Sandoe  <iain (a] sandoe.co.uk>
   6334 
   6335 	* include/std/coroutine: Update the inline namespace to __n4861.
   6336 	Add the __cpp_lib_coroutine define, set to 201902L.
   6337 	* include/std/version: Add __cpp_lib_coroutine, set to 201902L.
   6338 
   6339 2020-04-22  Jonathan Wakely  <jwakely (a] redhat.com>
   6340 
   6341 	* include/std/execution (__cpp_lib_execution): Define to indicate
   6342 	support for P0024R2 and P1001R2.
   6343 	* include/std/version (__cpp_lib_execution): Define.
   6344 	* testsuite/25_algorithms/pstl/feature_test.cc: Only test macro
   6345 	defined by <algorithm>, move other tests to new tests ...
   6346 	* testsuite/25_algorithms/pstl/feature_test-2.cc: New test.
   6347 	* testsuite/25_algorithms/pstl/feature_test-3.cc: New test.
   6348 	* testsuite/25_algorithms/pstl/feature_test-4.cc: New test.
   6349 	* testsuite/25_algorithms/pstl/feature_test-5.cc: New test.
   6350 
   6351 	* include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Define
   6352 	different values for C++17 and C++20, to indicate different feature
   6353 	sets. Update value for C++20 to indicate P1032R1 support.
   6354 	* include/std/version (__cpp_lib_array_constexpr): Likewise.
   6355 	* testsuite/23_containers/array/comparison_operators/constexpr.cc:
   6356 	Check feature test macro.
   6357 	* testsuite/23_containers/array/element_access/constexpr_c++17.cc:
   6358 	New test.
   6359 	* testsuite/23_containers/array/requirements/constexpr_fill.cc: Check
   6360 	feature test macro.
   6361 	* testsuite/23_containers/array/requirements/constexpr_iter.cc: Test
   6362 	in C++17 mode and check feature test macro.
   6363 
   6364 	* include/std/utility (__cpp_lib_constexpr_algorithms): Do not define
   6365 	here.
   6366 	* testsuite/20_util/exchange/constexpr.cc: Do not expect macro to be
   6367 	defined by <utility>.
   6368 
   6369 	* include/std/functional (__cpp_lib_concepts): Update macro value to
   6370 	indicate P1964R2 support.
   6371 	* include/std/version (__cpp_lib_concepts): Likewise.
   6372 	* testsuite/std/concepts/1.cc: Adjust expected value.
   6373 	* testsuite/std/concepts/2.cc: Likewise.
   6374 
   6375 	* include/std/functional (__cpp_lib_constexpr_invoke): Rename to
   6376 	__cpp_lib_constexpr_functional.
   6377 	* include/std/version (__cpp_lib_constexpr_invoke): Likewise.
   6378 	* testsuite/20_util/function_objects/invoke/constexpr.cc: Adjust.
   6379 
   6380 	* include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define to
   6381 	indicate P1006R1 support.
   6382 	(__cpp_lib_to_address): Define to indicate P0653R2 support.
   6383 	* include/bits/range_access.h (__cpp_lib_ssize): Define to indicate
   6384 	P1227R2 support.
   6385 	* include/bits/ranges_algo.h (__cpp_lib_shift): Define to indicate
   6386 	P0769R2 support.
   6387 	* include/std/atomic (__cpp_lib_atomic_float): Define to indicate
   6388 	P0020R6 support.
   6389 	* include/std/memory (__cpp_lib_assume_aligned): Define to indicate
   6390 	P1007R3 support.
   6391 	* include/std/memory_resource (__cpp_lib_polymorphic_allocator):
   6392 	Define to indicate P0339R6 support.
   6393 	* include/std/string_view (__cpp_lib_starts_ends_with): Define to
   6394 	indicate P0457R2 support.
   6395 	* include/std/type_traits (__cpp_lib_is_nothrow_convertible): Define
   6396 	to indicate P0758R1 support.
   6397 	(__cpp_lib_remove_cvref): Define to indicate P0550R2 support.
   6398 	(__cpp_lib_type_identity): Define to indicate P0887R1 support.
   6399 	* include/std/version (__cpp_lib_atomic_float)
   6400 	(__cpp_lib_is_nothrow_convertible, __cpp_lib_remove_cvref)
   6401 	(__cpp_lib_type_identity, __cpp_lib_assume_aligned)
   6402 	(__cpp_lib_constexpr_memory, __cpp_lib_polymorphic_allocator)
   6403 	(__cpp_lib_shift, __cpp_lib_ssize, __cpp_lib_starts_ends_with)
   6404 	(__cpp_lib_to_address): Define.
   6405 	* testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
   6406 
   6407 	* include/bits/stl_map.h (__cpp_lib_map_insertion): Remove old
   6408 	macro.
   6409 	* include/bits/unordered_map.h (__cpp_lib_unordered_map_insertion):
   6410 	Likewise.
   6411 	* include/std/version (__cpp_lib_map_insertion)
   6412 	(__cpp_lib_unordered_map_insertion): Remove.
   6413 
   6414 	* include/std/condition_variable (__cpp_lib_jthread): Remove
   6415 	redundant definition.
   6416 	* include/std/stop_token (__cpp_lib_jthread): Update macro value to
   6417 	indicate P1869R1 support.
   6418 	* include/std/version (__cpp_lib_jthread): Update value.
   6419 	* testsuite/30_threads/condition_variable_any/stop_token/1.cc: Check
   6420 	for updated macro value.
   6421 	* testsuite/30_threads/condition_variable_any/stop_token/2.cc:
   6422 	Likewise.
   6423 	* testsuite/30_threads/jthread/1.cc: Likewise.
   6424 	* testsuite/30_threads/jthread/2.cc: Likewise.
   6425 	* testsuite/30_threads/stop_token/1.cc: Likewise.
   6426 	* testsuite/30_threads/stop_token/2.cc: Likewise.
   6427 
   6428 	* testsuite/21_strings/basic_string/erasure.cc: Check for
   6429 	__cpp_lib_erase_if macro.
   6430 	* testsuite/23_containers/deque/erasure.cc: Add header name to #error
   6431 	messages.
   6432 	* testsuite/23_containers/forward_list/erasure.cc: Likewise.
   6433 	* testsuite/23_containers/list/erasure.cc: Likewise.
   6434 	* testsuite/23_containers/map/erasure.cc: Likewise.
   6435 	* testsuite/23_containers/set/erasure.cc: Likewise.
   6436 	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
   6437 	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
   6438 	* testsuite/23_containers/vector/erasure.cc: Likewise.
   6439 
   6440 2020-04-21  Jonathan Wakely  <jwakely (a] redhat.com>
   6441 
   6442 	* include/bits/stl_iterator.h (__normal_iterator): Use synth-three-way
   6443 	to define operator<=>.
   6444 	* testsuite/24_iterators/normal_iterator/cmp_c++20.cc: New test.
   6445 
   6446 	* doc/Makefile.am (xml_sources_manual): Add missing XML files.
   6447 	* doc/Makefile.in: Regenerate.
   6448 	* doc/xml/manual/status_cxx1998.xml: Refer to "this section" instead
   6449 	of "this page".
   6450 	* doc/xml/manual/status_cxx2011.xml: Formatting and other corrections
   6451 	to the C++11 status table.
   6452 	* doc/xml/manual/status_cxx2014.xml: Replace list of C++14 feature
   6453 	proposals with table matching contents of the C++14 standard.
   6454 	* doc/xml/manual/status_cxx2017.xml: Add table matching contents of
   6455 	the C++17 standard.
   6456 	* doc/html/*: Regenerate.
   6457 
   6458 	PR c++/94149
   6459 	* include/std/type_traits (__is_nt_constructible_impl): Add partial
   6460 	specializations for bounded arrays with non-empty initializers.
   6461 	* testsuite/20_util/is_nothrow_constructible/value_c++20.cc: New test.
   6462 
   6463 2020-04-20  Thomas Rodgers  <trodgers (a] redhat.com>
   6464 
   6465 	* testsuite/lib/libstdc++.exp: Add additional_flags=
   6466 	-DTBB_SUPRESS_DEPRECATED_MESSAGES=1 to suppress warnings when
   6467 	compiling with a newer Thread Building Blocks.
   6468 
   6469 2020-04-20  Jonathan Wakely  <jwakely (a] redhat.com>
   6470 
   6471 	* testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test.
   6472 
   6473 	* testsuite/20_util/is_constructible/51185.cc: Make test class a
   6474 	non-aggregate so that the test verifies the same thing in all -std
   6475 	modes.
   6476 	* testsuite/20_util/is_constructible/value-2.cc: Adjust expected
   6477 	results for some types when paren-init for aggregates is supported.
   6478 
   6479 	* include/std/version (__cpp_lib_three_way_comparison): Update value.
   6480 	* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
   6481 	(__detail::__synth3way): Add noexcept-specifier.
   6482 
   6483 	* include/bits/stl_map.h (map): Define operator<=> and remove
   6484 	operator< for C++20.
   6485 	* include/bits/stl_multimap.h (multimap): Likewise.
   6486 	* include/bits/stl_multiset.h (multiset): Likewise.
   6487 	* include/bits/stl_set.h (set): Likewise.
   6488 	* include/bits/stl_tree.h (_Rb_tree): Likewise.
   6489 	(_Rb_tree_iterator, _Rb_tree_const_iterator): Remove redundant
   6490 	operator!= for C++20.
   6491 	* include/debug/map.h (__gnu_debug::map): Define operator<=> for C++20.
   6492 	* include/debug/multimap.h (__gnu_debug::multimap): Likewise.
   6493 	* include/debug/multiset.h (__gnu_debug::multiset): Likewise.
   6494 	* include/debug/set.h (__gnu_debug::set): Likewise.
   6495 	* testsuite/23_containers/map/operators/cmp_c++20.cc: New test.
   6496 	* testsuite/23_containers/multimap/operators/cmp_c++20.cc: New test.
   6497 	* testsuite/23_containers/multiset/operators/cmp_c++20.cc: New test.
   6498 	* testsuite/23_containers/set/operators/cmp_c++20.cc: New test.
   6499 
   6500 2020-04-20  Matthias Kretz  <kretz (a] kde.org>
   6501 
   6502 	* testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose.
   6503 
   6504 2020-04-19  Jonathan Wakely  <jwakely (a] redhat.com>
   6505 
   6506 	* include/bits/stl_queue.h (queue): Define operator<=> for C++20.
   6507 	* include/bits/stl_stack.h (stack): Likewise.
   6508 	* testsuite/23_containers/queue/cmp_c++20.cc: New test.
   6509 	* testsuite/23_containers/stack/cmp_c++20.cc: New test.
   6510 
   6511 	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
   6512 	Remove redundant operator!= for C++20.
   6513 	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
   6514 	Likewise.
   6515 	* include/debug/unordered_map (unordered_map, unordered_multimap):
   6516 	Likewise.
   6517 	* include/debug/unordered_set (unordered_set, unordered_multiset):
   6518 	Likewise.
   6519 
   6520 	PR other/94629
   6521 	* include/debug/formatter.h (_Error_formatter::_Parameter): Fix
   6522 	redundant assignment in constructor.
   6523 
   6524 2020-04-18  Jonathan Wakely  <jwakely (a] redhat.com>
   6525 
   6526 	* include/std/chrono (duration, time_point): Define operator<=> and
   6527 	remove redundant operator!= for C++20.
   6528 	* testsuite/20_util/duration/comparison_operators/three_way.cc: New
   6529 	test.
   6530 	* testsuite/20_util/time_point/comparison_operators/three_way.cc: New
   6531 	test.
   6532 
   6533 	* testsuite/util/native_type/native_priority_queue.hpp: Use
   6534 	allocator_traits to rebind allocator.
   6535 
   6536 2020-04-17  Jonathan Wakely  <jwakely (a] redhat.com>
   6537 
   6538 	* include/bits/forward_list.h (forward_list): Define operator<=> and
   6539 	remove redundant comparison operators for C++20.
   6540 	* include/bits/stl_bvector.h (vector<bool, Alloc>): Likewise.
   6541 	* include/bits/stl_deque.h (deque): Likewise.
   6542 	* include/bits/stl_iterator.h (__normal_iterator): Likewise.
   6543 	* include/bits/stl_list.h (list): Likewise.
   6544 	* include/bits/stl_vector.h (vector): Likewise.
   6545 	* include/debug/deque (__gnu_debug::deque): Likewise.
   6546 	* include/debug/forward_list (__gnu_debug::forward_list): Likewise.
   6547 	* include/debug/list (__gnu_debug::list): Likewise.
   6548 	* include/debug/safe_iterator.h (__gnu_debug::_Safe_iterator):
   6549 	Likewise.
   6550 	* include/debug/vector (__gnu_debug::vector): Likewise.
   6551 	* include/ext/pointer.h (__gnu_cxx::_Pointer_adapter): Define
   6552 	operator<=> for C++20.
   6553 	* testsuite/23_containers/deque/operators/cmp_c++20.cc: New test.
   6554 	* testsuite/23_containers/forward_list/cmp_c++20.cc: New test.
   6555 	* testsuite/23_containers/list/cmp_c++20.cc: New test.
   6556 	* testsuite/23_containers/vector/bool/cmp_c++20.cc: New test.
   6557 	* testsuite/23_containers/vector/cmp_c++20.cc: New test.
   6558 
   6559 	* include/bits/basic_string.h (basic_string): Define operator<=> and
   6560 	remove redundant comparison operators for C++20.
   6561 	* include/bits/char_traits.h (__gnu_cxx::char_traits, char_traits):
   6562 	Add comparison_category members.
   6563 	(__detail::__char_traits_cmp_cat): New helper to get comparison
   6564 	category from char traits class.
   6565 	* include/bits/regex.h (regex_traits::_RegexMask::operator!=): Do not
   6566 	define for C++20.
   6567 	(sub_match): Define operator<=> and remove redundant comparison
   6568 	operators for C++20.
   6569 	(match_results): Remove redundant operator!= for C++20.
   6570 	* include/std/string_view (basic_string_view): Define operator<=> and
   6571 	remove redundant comparison operators for C++20.
   6572 	* testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc: New
   6573 	test.
   6574 	* testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
   6575 	New test.
   6576 	* testsuite/21_strings/basic_string_view/operations/copy/char/
   6577 	constexpr.cc: Initialize variable.
   6578 	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/
   6579 	constexpr.cc: Likewise.
   6580 	* testsuite/21_strings/basic_string_view/operators/char/2.cc: Add
   6581 	dg-do directive and remove comments showing incorrect signatures.
   6582 	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
   6583 	Likewise.
   6584 	* testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
   6585 	New test.
   6586 	* testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
   6587 	New test.
   6588 	* testsuite/28_regex/sub_match/compare_c++20.cc: New test.
   6589 
   6590 2020-04-16  Jonathan Wakely  <jwakely (a] redhat.com>
   6591 
   6592 	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Remove
   6593 	name of unused parameter.
   6594 
   6595 2020-04-15  Jonathan Wakely  <jwakely (a] redhat.com>
   6596 
   6597 	* include/bits/fs_dir.h (file_status): Define operator== for C++20.
   6598 	(directory_entry): Define operator<=> and remove redundant comparison
   6599 	operators for C++20.
   6600 	* include/bits/fs_fwd.h (space_info): Define operator== for C++20.
   6601 	* include/bits/fs_path.h (path): Define operator<=> and remove
   6602 	redundant comparison operators for C++20.
   6603 	* testsuite/27_io/filesystem/path/compare/compare.cc: Fix comment.
   6604 	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
   6605 	* testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
   6606 	* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
   6607 
   6608 	* include/bits/allocator.h (operator!=): Do not define for C++20.
   6609 	* include/bits/locale_classes.h (operator!=): Likewise.
   6610 	* include/bits/std_function.h (operator==(nullptr_t, const function&))
   6611 	(operator!=(const function&, nullptr_t))
   6612 	(operator!=(nullptr_t, const function&)): Likewise.
   6613 	* include/ext/bitmap_allocator.h (operator!=): Likewise.
   6614 	* include/ext/debug_allocator.h (operator!=): Likewise.
   6615 	* include/ext/extptr_allocator.h (operator!=): Likewise.
   6616 	* include/ext/malloc_allocator.h (operator!=): Likewise.
   6617 	* include/ext/mt_allocator.h (operator!=): Likewise.
   6618 	* include/ext/new_allocator.h (operator!=): Likewise.
   6619 	* include/ext/pool_allocator.h (operator!=): Likewise.
   6620 	* include/ext/throw_allocator.h (operator!=): Likewise.
   6621 	* include/std/bitset (bitset::operator!=): Likewise.
   6622 	* include/std/memory_resource (operator!=): Likewise.
   6623 	* include/std/scoped_allocator (operator!=): Likewise.
   6624 
   6625 	* include/std/typeindex (operator<=>): Define for C++20.
   6626 	* testsuite/20_util/typeindex/comparison_operators_c++20.cc: New test.
   6627 
   6628 2020-04-14  Jonathan Wakely  <jwakely (a] redhat.com>
   6629 
   6630 	* libsupc++/compare (compare_three_way): Fix constraint so that
   6631 	BUILTIN-PTR-THREE-WAY does not require three_way_comparable_with.
   6632 	* testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc:
   6633 	New test.
   6634 
   6635 	PR libstdc++/94562
   6636 	* include/bits/shared_ptr.h (operator<=>): Define for C++20.
   6637 	* include/bits/shared_ptr_base.h (operator<=>): Likewise.
   6638 	* include/bits/unique_ptr.h (operator<=>): Add inline specifier.
   6639 	* testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc: New test.
   6640 	* testsuite/20_util/shared_ptr/comparison/less.cc: Do not expect
   6641 	std::less<A*> to be used when comparing std::shared_ptr<A> objects in
   6642 	C++20.
   6643 
   6644 	PR libstdc++/94565
   6645 	* libsupc++/compare (__unspec): Add noexcept-specifier to constructor.
   6646 	* testsuite/18_support/comparisons/categories/94565.cc: New test.
   6647 
   6648 2020-04-13  Iain Sandoe  <iain (a] sandoe.co.uk>
   6649 
   6650 	* include/std/coroutine: Update coroutines builtin define,
   6651 	per n4861.
   6652 
   6653 2020-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   6654 
   6655 	* libsupc++/compare (compare_three_way): Fix noexcept-specifier.
   6656 	(strong_order, weak_order, partial_order): Replace uses of <=> with
   6657 	compare_three_way function object (LWG 3324).
   6658 	* testsuite/18_support/comparisons/algorithms/partial_order.cc: Add
   6659 	equality operator so that X satisfies three_way_comparable.
   6660 	* testsuite/18_support/comparisons/algorithms/strong_order.cc:
   6661 	Likewise.
   6662 	* testsuite/18_support/comparisons/algorithms/weak_order.cc: Likewise.
   6663 
   6664 	* include/bits/unique_ptr.h (operator<=>): Define for C++20.
   6665 	* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line.
   6666 	* testsuite/20_util/default_delete/void_neg.cc: Likewise.
   6667 	* testsuite/20_util/unique_ptr/comparison/compare.cc: New test.
   6668 	* testsuite/20_util/unique_ptr/comparison/compare_c++20.cc: New test.
   6669 
   6670 2020-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   6671 
   6672 	* include/bits/slice_array.h (operator==(const slice&, const slice&)):
   6673 	Define for C++20.
   6674 	* include/std/complex (operator==(const T&, const complex<T>&))
   6675 	(operator!=(const complex<T>&, const complex<T>&))
   6676 	(operator!=(const complex<T>&, const T&))
   6677 	(operator!=(const T&, const complex<T>&)): Do not declare for C++20.
   6678 	* testsuite/26_numerics/slice/compare.cc: New test.
   6679 
   6680 	* include/std/charconv (to_chars_result, from_chars_result): Add
   6681 	defaulted equality comparisons for C++20.
   6682 	* testsuite/20_util/from_chars/compare.cc: New test.
   6683 	* testsuite/20_util/to_chars/compare.cc: New test.
   6684 
   6685 2020-04-07  Jonathan Wakely  <jwakely (a] redhat.com>
   6686 
   6687 	PR libstdc++/94520
   6688 	* include/std/charconv (__integer_to_chars_result_type)
   6689 	(__integer_from_chars_result_type): Use __or_ instead of __or_v_ to
   6690 	allow use in C++14.
   6691 	* testsuite/20_util/from_chars/1.cc: Run test as C++14 and replace
   6692 	use of std::string_view with std::string.
   6693 	* testsuite/20_util/from_chars/2.cc: Likewise.
   6694 	* testsuite/20_util/to_chars/1.cc: Likewise.
   6695 	* testsuite/20_util/to_chars/2.cc: Likewise.
   6696 
   6697 2020-04-06  Jonathan Wakely  <jwakely (a] redhat.com>
   6698 
   6699 	PR libstdc++/94498
   6700 	* include/bits/char_traits.h (__gnu_cxx::char_traits::move): Make it
   6701 	usable in constant expressions for C++20.
   6702 	(__gnu_cxx::char_traits::copy, __gnu_cxx::char_traits::assign): Add
   6703 	_GLIBCXX20_CONSTEXPR.
   6704 	(std::char_traits<char>, std::char_traits<wchar_t>)
   6705 	(std::char_traits<char8_t>): Make move, copy and assign usable in
   6706 	constant expressions for C++20.
   6707 	(std::char_traits<char16_t>, std::char_traits<char32_t>): Make move
   6708 	and copy usable in constant expressions for C++20.
   6709 	* include/std/string_view (basic_string_view::copy): Add
   6710 	_GLIBCXX20_CONSTEXPR.
   6711 	* testsuite/21_strings/basic_string_view/operations/copy/char/
   6712 	constexpr.cc: New test.
   6713 	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/
   6714 	constexpr.cc: New test.
   6715 
   6716 2020-04-05  Gerald Pfeifer  <gerald (a] pfeifer.com>
   6717 
   6718 	* doc/xml/manual/appendix_contributing.xml: Refer to Git
   6719 	documentation instead of Subversion.  Switch to https.
   6720 	* doc/html/manual/appendix_contributing.html: Regenerate.
   6721 
   6722 2020-04-03  Jonathan Wakely  <jwakely (a] redhat.com>
   6723 
   6724 	PR libstdc++/93960
   6725 	* include/bits/ptr_traits.h (__to_address): Add special case for debug
   6726 	iterators, to avoid dereferenceable check.
   6727 	* testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
   6728 	* testsuite/20_util/to_address/debug.cc: New test.
   6729 
   6730 2020-04-01  Andrea Corallo  <andrea.corallo (a] arm.com>
   6731 
   6732 	* testsuite/experimental/net/execution_context/use_service.cc:
   6733 	Require pthread and gthreads.
   6734 
   6735 2020-04-01  Gerald Pfeifer  <gerald (a] pfeifer.com>
   6736 
   6737 	* doc/xml/manual/appendix_free.xml: Move "free books" list from
   6738 	fsf.org to gnu.org.
   6739 	* doc/html/manual/appendix_free.html: Regenerate.
   6740 
   6741 2020-03-31  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   6742 
   6743 	Library-side tests for parenthesized aggregate init
   6744 
   6745 	PR c++/92878
   6746 	PR c++/92947
   6747 
   6748 	* testsuite/20_util/allocator_traits/members/92878_92947.cc: New.
   6749 	* testsuite/20_util/any/assign/92878_92947.cc: Likewise.
   6750 	* testsuite/20_util/any/cons/92878_92947.cc: Likewise.
   6751 	* testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
   6752 	* testsuite/20_util/optional/assignment/92878_92947.cc: Likewise.
   6753 	* testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
   6754 	* testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
   6755 	* testsuite/20_util/shared_ptr/creation/92878_92947.cc: Likewise.
   6756 	* testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
   6757 	Likewise.
   6758 	* testsuite/20_util/unique_ptr/creation/92878_92947.cc: Likewise.
   6759 	* testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
   6760 	* testsuite/20_util/variant/92878_92947.cc: Likewise.
   6761 	* testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
   6762 	Likewise.
   6763 	* testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
   6764 	Likewise.
   6765 	* testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
   6766 	Likewise.
   6767 	* testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
   6768 	Likewise.
   6769 	* testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
   6770 	Likewise.
   6771 	* testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
   6772 	Likewise.
   6773 	* testsuite/23_containers/priority_queue/92878_92947.cc: Likewise.
   6774 	* testsuite/23_containers/queue/92878_92947.cc: Likewise.
   6775 	* testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
   6776 	Likewise.
   6777 	* testsuite/23_containers/stack/92878_92947.cc: Likewise.
   6778 	* testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
   6779 	Likewise.
   6780 	* testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
   6781 	Likewise.
   6782 	* testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
   6783 	Likewise.
   6784 	* testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
   6785 	Likewise.
   6786 	* testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
   6787 	Likewise.
   6788 
   6789 2020-03-28  Jonathan Wakely  <jwakely (a] redhat.com>
   6790 
   6791 	* testsuite/20_util/is_constructible/value-2.cc: Fix test to account
   6792 	for changes due to parenthesized aggregate-initialization in C++20.
   6793 	* testsuite/20_util/time_point/cons/81468.cc: Fix test to not clash
   6794 	with std::chrono::sys_time in C++20.
   6795 
   6796 	* include/bits/stl_iterator.h (reverse_iterator): Use requires-clause
   6797 	to constrain C++20 versions of comparison operators. Fix backwards
   6798 	logic of relational operators.
   6799 	(move_iterator): Use requires-clause to constrain comparison operators
   6800 	in C++20. Do not declare non-standard same-type overloads for C++20.
   6801 	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: Check result
   6802 	of comparisons and check using greedy_ops type.
   6803 	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: Likewise.
   6804 	* testsuite/24_iterators/move_iterator/greedy_ops.cc: Remove redundant
   6805 	main function from compile-only test.
   6806 	* testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Likewise.
   6807 
   6808 2020-03-27  Jonathan Wakely  <jwakely (a] redhat.com>
   6809 
   6810 	* include/bits/range_cmp.h (__cpp_lib_ranges): Define.
   6811 	* include/bits/stl_iterator.h: Check value of __cpp_concepts so that
   6812 	C++20 concepts are required.
   6813 	* include/bits/stl_iterator_base_types.h: Likewise.
   6814 	* include/std/concepts: Likewise.
   6815 	* include/std/version: Likewise.
   6816 	* testsuite/std/ranges/headers/ranges/synopsis.cc: Check feature test
   6817 	macro.
   6818 
   6819 	* include/bits/stl_iterator.h (reverse_iterator::iterator_concept)
   6820 	(reverse_iterator::iterator_category): Define for C++20.
   6821 	(reverse_iterator): Define comparison operators correctly for C++20.
   6822 	(__normal_iterator): Add constraints to comparison operators for C++20.
   6823 	(move_iterator::operator++(int)) [__cpp_lib_concepts]: Define new
   6824 	overload for input iterators.
   6825 	(move_iterator): Add constraints to comparison operators for C++20.
   6826 	Define operator<=> for C++20.
   6827 	* testsuite/24_iterators/move_iterator/input_iterator.cc: New test.
   6828 	* testsuite/24_iterators/move_iterator/move_only.cc: New test.
   6829 	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: New test.
   6830 	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: New test.
   6831 
   6832 	* include/bits/iterator_concepts.h (__detail::__decay_copy)
   6833 	(__detail::__member_begin, __detail::__adl_begin): Move here from
   6834 	<bits/range_access.h>.
   6835 	(__detail::__ranges_begin, __detail::__range_iter_t): Define.
   6836 	* bits/range_access.h (__cust_access::__decay_copy)
   6837 	(__cust_access::__member_begin, __cust_access::__adl_begin): Move to
   6838 	<bits/iterator_concepts.h>.
   6839 	(ranges::iterator_t): Use __detail::__range_iter_t.
   6840 	* include/bits/stl_iterator.h (back_insert_iterator): Simplify
   6841 	conditional compilation. Add _GLIBCXX20_CONSTEXPR to all members.
   6842 	(front_insert_iterator): Likewise.
   6843 	(insert_iterator): Implement changes from P0896R4 for C++20.
   6844 	* testsuite/24_iterators/back_insert_iterator/constexpr.cc: New test.
   6845 	* testsuite/24_iterators/front_insert_iterator/constexpr.cc: New test.
   6846 	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Adjust
   6847 	for inclusion in synopsis_c++20.cc which expects different signatures
   6848 	for some function templates.
   6849 	* testsuite/24_iterators/insert_iterator/constexpr.cc: New test.
   6850 
   6851 	* include/std/type_traits (__is_array_convertible): Move definition
   6852 	to immediately after is_convertible.
   6853 
   6854 2020-03-26  Jonathan Wakely  <jwakely (a] redhat.com>
   6855 
   6856 	* include/std/chrono (chrono::days, chrono::weeks, chrono::years)
   6857 	(chrono::months, chrono::sys_days, chrono::local_t)
   6858 	(chrono::local_time, chrono::local_seconds, chrono::local_days):
   6859 	Define for C++20.
   6860 	(chrono::time_point): Add missing static assert.
   6861 	* testsuite/20_util/time_point/requirements/duration_neg.cc: New test.
   6862 	* testsuite/std/time/clock/file/overview.cc: New test.
   6863 	* testsuite/std/time/clock/file/members.cc: New test.
   6864 	* testsuite/std/time/syn_c++20.cc: New test.
   6865 
   6866 2020-03-25  Mike Crowe  <mac (a] mcrowe.com>
   6867 
   6868 	* testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc: New
   6869 	test.
   6870 	* testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc: New
   6871 	test.
   6872 
   6873 2020-03-25  Jonathan Wakely  <jwakely (a] redhat.com>
   6874 
   6875 	* include/bits/fs_fwd.h (filesystem::__file_clock): Move to ...
   6876 	* include/std/chrono (filesystem::__file_clock): Here.
   6877 	(filesystem::__file_clock::from_sys, filesystem::__file_clock::to_sys):
   6878 	Define public member functions for C++20.
   6879 	(is_clock, is_clock_v): Define traits for C++20.
   6880 	* include/std/condition_variable (condition_variable::wait_until): Add
   6881 	check for valid clock.
   6882 	* include/std/future (_State_baseV2::wait_until): Likewise.
   6883 	* include/std/mutex (__timed_mutex_impl::_M_try_lock_until): Likewise.
   6884 	* include/std/shared_mutex (shared_timed_mutex::try_lock_shared_until):
   6885 	Likewise.
   6886 	* include/std/thread (this_thread::sleep_until): Likewise.
   6887 	* testsuite/30_threads/condition_variable/members/2.cc: Qualify
   6888 	slow_clock with new namespace.
   6889 	* testsuite/30_threads/condition_variable/members/clock_neg.cc: New
   6890 	test.
   6891 	* testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
   6892 	New test.
   6893 	* testsuite/30_threads/future/members/clock_neg.cc: New test.
   6894 	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc:
   6895 	Qualify slow_clock with new namespace.
   6896 	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/
   6897 	clock_neg.cc: New test.
   6898 	* testsuite/30_threads/shared_future/members/clock_neg.cc: New
   6899 	test.
   6900 	* testsuite/30_threads/shared_lock/locking/clock_neg.cc: New test.
   6901 	* testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
   6902 	New test.
   6903 	* testsuite/30_threads/timed_mutex/try_lock_until/3.cc: Qualify
   6904 	slow_clock with new namespace.
   6905 	* testsuite/30_threads/timed_mutex/try_lock_until/4.cc: Likewise.
   6906 	* testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc: New
   6907 	test.
   6908 	* testsuite/30_threads/unique_lock/locking/clock_neg.cc: New test.
   6909 	* testsuite/std/time/traits/is_clock.cc: New test.
   6910 	* testsuite/util/slow_clock.h (slow_clock): Move to __gnu_test
   6911 	namespace.
   6912 
   6913 2020-03-21  Jonathan Wakely  <jwakely (a] redhat.com>
   6914 
   6915 	PR libstdc++/93245
   6916 	* include/experimental/bits/fs_path.h (path::generic_string<C,T,A>()):
   6917 	* testsuite/experimental/filesystem/path/generic/generic_string.cc:
   6918 	Improve test coverage.
   6919 
   6920 	PR libstdc++/94242
   6921 	* include/bits/fs_path.h (path::_S_str_convert): Replace first
   6922 	parameter with basic_string_view so that strings with different
   6923 	allocators can be accepted.
   6924 	(path::generic_string<C,T,A>()): Use basic_string object that uses the
   6925 	right allocator type.
   6926 	* testsuite/27_io/filesystem/path/generic/94242.cc: New test.
   6927 	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Improve
   6928 	test coverage.
   6929 
   6930 2020-03-18  Jonathan Wakely  <jwakely (a] redhat.com>
   6931 
   6932 	PR libstdc++/94033
   6933 	* include/std/type_traits (__is_nt_default_constructible_atom): Remove.
   6934 	(__is_nt_default_constructible_impl): Remove.
   6935 	(__is_nothrow_default_constructible_impl): Remove.
   6936 	(__is_nt_constructible_impl): Add bool template parameter. Adjust
   6937 	partial specializations.
   6938 	(__is_nothrow_constructible_impl): Replace class template with alias
   6939 	template.
   6940 	(is_nothrow_default_constructible): Derive from alias template
   6941 	__is_nothrow_constructible_impl instead of
   6942 	__is_nothrow_default_constructible_impl.
   6943 	* testsuite/20_util/is_nothrow_constructible/94003.cc: New test.
   6944 
   6945 	* include/std/stop_token (stop_token::_Stop_state_ref): Define
   6946 	comparison operators explicitly if the compiler won't synthesize them.
   6947 
   6948 	* include/bits/stl_algobase.h (__lexicographical_compare_aux): Check
   6949 	__cpp_lib_concepts before using iter_reference_t.
   6950 	* include/bits/stream_iterator.h (istream_iterator): Check
   6951 	__cpp_lib_concepts before using default_sentinel_t.
   6952 	* include/bits/streambuf_iterator.h (istreambuf_iterator): Likewise.
   6953 
   6954 	PR libstdc++/94203
   6955 	* include/experimental/executor (executor::executor(Executor)): Call
   6956 	make_shared directly instead of _M_create. Create _Tgt1 object.
   6957 	(executor::executor(allocator_arg_t, const ProtoAlloc&, Executor)):
   6958 	Call allocate_shared directly instead of _M_create. Create _Tgt2
   6959 	object.
   6960 	(executor::target_type): Add cast needed for new _Tgt interface.
   6961 	(executor::target): Define when RTTI is disabled. Use _Tgt::_M_func.
   6962 	(executor::_Tgt): Define the same interface whether RTTI is enabled or
   6963 	not.
   6964 	(executor::_Tgt::target_type, executor::_Tgt::target): Do not use
   6965 	std::type_info in the interface.
   6966 	(executor::_Tgt::_M_func): Add data member.
   6967 	(executor::_TgtImpl): Replace with _Tgt1 and _Tgt2 class templates.
   6968 	(executor::_Tgt1::_S_func): Define function to access target without
   6969 	depending on RTTI.
   6970 	(executor::_M_create): Remove.
   6971 	(operator==, operator!=): Simplify comparisons for executor.
   6972 	* include/experimental/socket (is_error_code_enum<socket_errc>):
   6973 	Define specialization before use.
   6974 	* testsuite/experimental/net/executor/1.cc: New test.
   6975 
   6976 2020-03-16  Jonathan Wakely  <jwakely (a] redhat.com>
   6977 
   6978 	PR libstdc++/94199
   6979 	* include/experimental/executor (service_already_exists): Add default
   6980 	constructor. Declare make_service to be a friend.
   6981 	* testsuite/experimental/net/execution_context/make_service.cc: New
   6982 	test.
   6983 
   6984 2020-03-12  Jonathan Wakely  <jwakely (a] redhat.com>
   6985 
   6986 	* testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Do not pass
   6987 	a null pointer to functions with nonnull(1) attribute.
   6988 
   6989 2020-03-11  Patrick Palka  <ppalka (a] redhat.com>
   6990 
   6991 	* include/std/ranges (split_view::_OuterIter::_OuterIter): Typo fix,
   6992 	'address' -> 'std::__addressof'.
   6993 	* testsuite/std/ranges/adaptors/split.cc: Test taking the split_view of
   6994 	a non-forward input_range.
   6995 	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper): Make
   6996 	default constructor protected instead of deleted, like with
   6997 	input_iterator_wrapper.
   6998 	(test_range::iterator): Add comment explaining that this type is used
   6999 	only when the underlying wrapper is input_iterator_wrapper or
   7000 	output_iterator_wrapper.  Remove delegating defaulted constructor so
   7001 	that the inherited default constructor is used instead.
   7002 
   7003 	LWG 3286 ranges::size is not required to be valid after a call to
   7004 	ranges::begin on an input range
   7005 	* include/std/ranges (subrange::subrange): Split single-argument
   7006 	constructor into two, one constrained by _S_store_size and another by
   7007 	!_S_store_size.
   7008 	(take_view::begin): Call size() before calling ranges::begin(_M_base).
   7009 	* testsuite/std/ranges/adaptors/lwg3286.cc: New test.
   7010 	* testsuite/std/ranges/subrange/lwg3286.cc: New test.
   7011 
   7012 2020-03-10  Jonathan Wakely  <jwakely (a] redhat.com>
   7013 
   7014 	* include/std/ranges (split_view::_OuterIter::__at_end): Use __current
   7015 	instead of _M_current.
   7016 	(split_view::_OuterIter::operator++): Likewise.
   7017 
   7018 	* include/std/ranges (transform_view::_Iterator::__iter_move): Remove.
   7019 	(transform_view::_Iterator::operator*): Add noexcept-specifier.
   7020 	(transform_view::_Iterator::iter_move): Inline __iter_move body here.
   7021 	(split_view::_OuterIter::__current): Add noexcept.
   7022 	(split_view::_InnerIter::__iter_swap): Remove.
   7023 	(split_view::_InnerIter::__iter_move): Remove.
   7024 	(split_view::_InnerIter::_M_i_current): New accessors.
   7025 	(split_view::_InnerIter::__at_end): Use _M_i_current().
   7026 	(split_view::_InnerIter::operator*): Likewise.
   7027 	(split_view::_InnerIter::operator++): Likewise.
   7028 	(iter_move(const _InnerIter&)): Likewise.
   7029 	(iter_swap(const _InnerIter&, const _InnerIter&)): Likewise.
   7030 	* testsuite/std/ranges/adaptors/split.cc: Check noexcept-specifier
   7031 	for iter_move and iter_swap on split_view's inner iterator.
   7032 
   7033 	PR c++/94117
   7034 	* include/std/ranges (ranges::transform_view::_Iterator::iter_move):
   7035 	Change expression in noexcept-specifier to match function body.
   7036 
   7037 	* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Add
   7038 	comment explaining multiple dg-do directives.
   7039 	* testsuite/24_iterators/ostream_iterator/1.cc: Fix do-do directive
   7040 	so test is run as well as compiled.
   7041 
   7042 2020-03-09  Jonathan Wakely  <jwakely (a] redhat.com>
   7043 
   7044 	PR libstdc++/94063
   7045 	* src/c++17/fs_path.cc (path::operator+=(const path&)): Add kluge to
   7046 	handle concatenations that change the type of the first component.
   7047 	(path::operator+=(basic_string_view<value_type>)): Likewise.
   7048 	* testsuite/27_io/filesystem/path/concat/94063.cc: New test.
   7049 
   7050 2020-03-06  Patrick Palka  <ppalka (a] redhat.com>
   7051 
   7052 	* include/std/ranges (join_view::_Sentinel<_Const>): Befriend
   7053 	join_view::_Sentinel<!_Const>.
   7054 	* testsuite/std/ranges/adaptors/join.cc: Augment test.
   7055 
   7056 	PR libstdc++/93978
   7057 	* include/bits/range_access.h (__cust_access::_Empty::operator()):
   7058 	Declare return type to be bool instead of auto.
   7059 	* testsuite/std/ranges/adaptors/93978.cc: New test.
   7060 
   7061 2020-03-06  Jonathan Wakely  <jwakely (a] redhat.com>
   7062 
   7063 	PR libstdc++/94069
   7064 	* include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
   7065 	(__shared_mutex_pthread::__shared_mutex_pthread()): Remove incorrect
   7066 	second argument to __glibcxx_rwlock_init.
   7067 	* testsuite/30_threads/shared_timed_mutex/94069.cc: New test.
   7068 
   7069 	PR libstdc++/93244
   7070 	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Adjust
   7071 	test to not fail due to PR 94063.
   7072 	* testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
   7073 	* testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
   7074 
   7075 2020-03-06  Andreas Krebbel  <krebbel (a] linux.ibm.com>
   7076 
   7077 	* src/c++11/system_error.cc: Omit the ENOTSUP case statement if it
   7078 	would match ENOSYS.
   7079 
   7080 2020-03-05  Jonathan Wakely  <jwakely (a] redhat.com>
   7081 
   7082 	* testsuite/27_io/filesystem/operations/all.cc: Mark unused variable.
   7083 	* testsuite/27_io/filesystem/operations/copy.cc: Fix typo.
   7084 	* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
   7085 	* testsuite/27_io/filesystem/operations/file_size.cc: Use correct type
   7086 	for return value, and in comparison.
   7087 	* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
   7088 
   7089 	PR libstdc++/94051
   7090 	* include/std/string_view: Include <bits/ostream_insert.h>.
   7091 	* testsuite/21_strings/basic_string_view/inserters/94051.cc: New test.
   7092 
   7093 2020-03-04  Jonathan Wakely  <jwakely (a] redhat.com>
   7094 
   7095 	* include/bits/cpp_type_traits.h (__memcpyable): Fix comment.
   7096 
   7097 2020-03-04  Patrick Palka  <ppalka (a] redhat.com>
   7098 
   7099 	PR libstdc++/94017
   7100 	* include/bits/ranges_algobase.h (__fill_n_fn::operator()): Refine
   7101 	condition for when to use memset, making sure to additionally check that
   7102 	the output pointer's value type is a non-volatile byte type.  Instead of
   7103 	requiring that the fill type is a byte type, just require that it's an
   7104 	integral type.
   7105 	* testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
   7106 	New test.
   7107 	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
   7108 	New test.
   7109 	* testsuite/25_algorithms/fill/94013.cc: Uncomment part of test that was
   7110 	blocked by PR 94017.
   7111 	* testsuite/25_algorithms/fill/94017.cc: New test.
   7112 	* testsuite/25_algorithms/fill_n/94017.cc: New test.
   7113 
   7114 	LWG 3355 The memory algorithms should support move-only input iterators
   7115 	introduced by P1207
   7116 	* include/bits/ranges_uninitialized.h
   7117 	(__uninitialized_copy_fn::operator()): Use std::move to avoid attempting
   7118 	to copy __ifirst, which could be a move-only input iterator.  Use
   7119 	operator- instead of ranges::distance to compute distance from a sized
   7120 	sentinel.
   7121 	(__uninitialized_copy_n_fn::operator()): Likewise.
   7122 	(__uninitialized_move_fn::operator()): Likewise.
   7123 	(__uninitialized_move_n_fn::operator()): Likewise.
   7124 	(__uninitialized_destroy_fn::operator()): Use std::move to avoid
   7125 	attempting to copy __first.
   7126 	(__uninitialized_destroy_n_fn::operator()): Likewise.
   7127 	* testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
   7128 	Augment test.
   7129 	* .../specialized_algorithms/uninitialized_copy/constrained.cc:
   7130 	Likewise.
   7131 	* .../specialized_algorithms/uninitialized_move/constrained.cc:
   7132 	Likewise.
   7133 
   7134 	* testsuite/util/testsuite_iterators.h (test_range::get_iterator): Make
   7135 	protected instead of private.
   7136 	(test_sized_range_sized_sent): New.
   7137 
   7138 	* testsuite/util/testsuite_iterators.h (input_iterator_wrapper_nocopy):
   7139 	New testsuite iterator.
   7140 	* testsuite/24_iterators/counted_iterator/lwg3389.cc: use it.
   7141 	* testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
   7142 
   7143 	* include/bits/ranges_uninitialized.h
   7144 	(uninitialized_copy_fn::operator()): Pass a reference type as the first
   7145 	argument to is_nothrow_assignable_v.
   7146 	(uninitialized_copy_fn::operator()): Likewise.
   7147 	(uninitialized_move_fn::operator()): Likewise.  Return an in_out_result
   7148 	with the input iterator stripped of its move_iterator.
   7149 	(uninitialized_move_n_fn::operator()): Likewise.
   7150 	(uninitialized_fill_fn::operator()): Pass a reference type as the first
   7151 	argument to is_nothrow_assignable_v.
   7152 	(uninitialized_fill_n_fn::operator()): Likewise.
   7153 
   7154 2020-03-03  Jonathan Wakely  <jwakely (a] redhat.com>
   7155 
   7156 	PR libstdc++/94013
   7157 	* include/bits/cpp_type_traits.h (__memcpyable, __memcmpable): New
   7158 	traits to control when to use memmove and memcmp optimizations.
   7159 	(__is_nonvolatile_trivially_copyable): New helper trait.
   7160 	* include/bits/ranges_algo.h (__lexicographical_compare_fn): Do not
   7161 	use memcmp optimization with volatile data.
   7162 	* include/bits/ranges_algobase.h (__equal_fn): Use __memcmpable.
   7163 	(__copy_or_move, __copy_or_move_backward): Use __memcpyable.
   7164 	* include/bits/stl_algobase.h (__copy_move_a2): Use __memcpyable.
   7165 	(__copy_move_backward_a2): Likewise.
   7166 	(__equal_aux1): Use __memcmpable.
   7167 	(__lexicographical_compare_aux): Do not use memcmp optimization with
   7168 	volatile data.
   7169 	* testsuite/25_algorithms/copy/94013.cc: New test.
   7170 	* testsuite/25_algorithms/copy_backward/94013.cc: New test.
   7171 	* testsuite/25_algorithms/equal/94013.cc: New test.
   7172 	* testsuite/25_algorithms/fill/94013.cc: New test.
   7173 	* testsuite/25_algorithms/lexicographical_compare/94013.cc: New test.
   7174 	* testsuite/25_algorithms/move/94013.cc: New test.
   7175 	* testsuite/25_algorithms/move_backward/94013.cc: New test.
   7176 
   7177 	* include/bits/stl_algobase.h (lexicographical_compare_three_way):
   7178 	Avoid redundant iterator comparisons (LWG 3410).
   7179 
   7180 2020-03-02  Jonathan Wakely  <jwakely (a] redhat.com>
   7181 
   7182 	PR libstdc++/93972
   7183 	* include/bits/stl_algobase.h (__memcmp): Allow pointer types to
   7184 	differ.
   7185 	* testsuite/25_algorithms/lexicographical_compare/uchar.cc: New test.
   7186 
   7187 	* include/std/ranges (__detail::__maybe_empty_t): Rename to
   7188 	__maybe_present_t.
   7189 	(__adaptor::_RangeAdaptor, join_view, split_view): Use new name.
   7190 
   7191 	* include/bits/ranges_algo.h (shift_right): Add 'typename' to
   7192 	dependent type.
   7193 
   7194 2020-03-01  H.J. Lu  <hongjiu.lu (a] intel.com>
   7195 
   7196 	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
   7197 
   7198 2020-02-29  John David Anglin  <danglin (a] gcc.gnu.org>
   7199 
   7200 	* testsuite/17_intro/headers/c++1998/charset.cc: Skip on *-*-hpux*.
   7201 	* testsuite/17_intro/headers/c++2011/charset.cc: Likewise.
   7202 	* testsuite/17_intro/headers/c++2014/charset.cc: Likewise.
   7203 	* testsuite/17_intro/headers/c++2017/charset.cc: Likewise.
   7204 	* testsuite/17_intro/headers/c++2020/charset.cc: Likewise.
   7205 
   7206 	* testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
   7207 	Add libatomic option.
   7208 	* testsuite/30_threads/jthread/jthread.cc: Likewise.
   7209 
   7210 2020-02-29  Franois Dumont  <fdumont (a] gcc.gnu.org>
   7211 
   7212 	* include/bits/stl_algo.h
   7213 	(__find_if, __count_if, __is_permutation, std::is_permutation): Move...
   7214 	* include/bits/stl_algobase.h: ...here.
   7215 	* include/bits/hashtable_policy.h: Remove <bits/stl_algo.h> include.
   7216 
   7217 2020-02-29  John David Anglin  <danglin (a] gcc.gnu.org>
   7218 
   7219 	* testsuite/30_threads/stop_token/stop_callback.cc: Add libatomic
   7220 	option.
   7221 	* testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
   7222 	Likewise.
   7223 	* testsuite/30_threads/stop_token/stop_callback/deadlock.cc: Likewise.
   7224 	* testsuite/30_threads/stop_token/stop_callback/destroy.cc: Likewise.
   7225 	* testsuite/30_threads/stop_token/stop_callback/invoke.cc: Likewise.
   7226 	* testsuite/30_threads/stop_token/stop_source.cc: Likewise.
   7227 	* testsuite/30_threads/stop_token/stop_source/assign.cc: Likewise.
   7228 	* testsuite/30_threads/stop_token/stop_token.cc: Likewise.
   7229 	* testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
   7230 	Likewise.
   7231 
   7232 	PR libstdc++/92906
   7233 	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
   7234 
   7235 2020-02-28  Patrick Palka  <ppalka (a] redhat.com>
   7236 
   7237 	PR libstdc++/93972
   7238 	* include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
   7239 	Fix condition for when to use memcmp, making it consistent with the
   7240 	corresponding condition used in std::lexicographical_compare.
   7241 	* testsuite/25_algorithms/lexicographical_compare/93972.cc: New test.
   7242 
   7243 	* testsuite/26_numerics/headers/numeric/synopsis.cc: Add signatures for
   7244 	functions introduced in C++11, C++17 and C++2a.  Add 'constexpr' to
   7245 	existing signatures for C++2a.
   7246 
   7247 2020-02-28  Jonathan Wakely  <jwakely (a] redhat.com>
   7248 
   7249 	* testsuite/24_iterators/range_operations/advance_debug_neg.cc: Run
   7250 	test instead of just compiling it.
   7251 
   7252 2020-02-28  Patrick Palka  <ppalka (a] redhat.com>
   7253 
   7254 	* include/std/ranges (reverse_view::_S_needs_cached_begin): Set to false
   7255 	whenever the underlying range models common_range.
   7256 
   7257 	* include/std/ranges (__detail::_CachedPosition): New struct.
   7258 	(views::filter_view::_S_needs_cached_begin): New member variable.
   7259 	(views::filter_view::_M_cached_begin): New member variable.
   7260 	(views::filter_view::begin): Use _M_cached_begin to cache its
   7261 	result.
   7262 	(views::drop_view::_S_needs_cached_begin): New static member variable.
   7263 	(views::drop_view::_M_cached_begin): New member variable.
   7264 	(views::drop_view::begin): Use _M_cached_begin to cache its result
   7265 	when _S_needs_cached_begin.
   7266 	(views::drop_while_view::_M_cached_begin): New member variable.
   7267 	(views::drop_while_view::begin): Use _M_cached_begin to cache its
   7268 	result.
   7269 	(views::reverse_view::_S_needs_cached_begin): New static member
   7270 	variable.
   7271 	(views::reverse_view::_M_cached_begin): New member variable.
   7272 	(views::reverse_view::begin): Use _M_cached_begin to cache its result
   7273 	when _S_needs_cached_begin.
   7274 	* testsuite/std/ranges/adaptors/drop.cc: Augment test to check that
   7275 	drop_view::begin caches its result.
   7276 	* testsuite/std/ranges/adaptors/drop_while.cc: Augment test to check
   7277 	that drop_while_view::begin caches its result.
   7278 	* testsuite/std/ranges/adaptors/filter.cc: Augment test to check that
   7279 	filter_view::begin caches its result.
   7280 	* testsuite/std/ranges/adaptors/reverse.cc: Augment test to check that
   7281 	reverse_view::begin caches its result.
   7282 
   7283 2020-02-28  Jonathan Wakely  <jwakely (a] redhat.com>
   7284 
   7285 	* testsuite/27_io/filesystem/operations/last_write_time.cc: Fixes for
   7286 	filesystems that silently truncate timestamps.
   7287 	* testsuite/experimental/filesystem/operations/last_write_time.cc:
   7288 	Likewise.
   7289 
   7290 	* testsuite/21_strings/basic_string/cons/char/1.cc: Disable
   7291 	-Wstringop-overflow warnings.
   7292 
   7293 2020-02-27  Jonathan Wakely  <jwakely (a] redhat.com>
   7294 
   7295 	* testsuite/lib/libstdc++.exp (v3_target_compile): Add
   7296 	-fdiagnostics-urls=never to options.
   7297 
   7298 2020-02-27  Patrick Palka  <ppalka (a] redhat.com>
   7299 
   7300 	* include/std/ranges (transform_view::_Iterator<_Const>): Befriend
   7301 	_Iterator<!_Const>.
   7302 	(transform_view::_Sentinel<_Const>): Befriend _Sentinel<!_Const>.
   7303 	(take_view::_Sentinel<_Const>): Likewise.
   7304 	(take_while_view::_Sentinel<_Const>): Likewise.
   7305 	(split_view::_OuterIter<_Const>): Befriend _OuterIter<!_Const>.
   7306 	* testsuite/std/ranges/adaptors/split.cc: Augment test.
   7307 	* testsuite/std/ranges/adaptors/take.cc: Augment test.
   7308 	* testsuite/std/ranges/adaptors/take_while.cc: Augment test.
   7309 	* testsuite/std/ranges/adaptors/transform.cc: Augment test.
   7310 
   7311 	* testsuite/25_algorithms/copy/constrained.cc: Don't assume that the
   7312 	base() of a vector<>::iterator is a pointer.
   7313 	* testsuite/25_algorithms/copy_backward/constrained.cc: Likewise.
   7314 	* testsuite/25_algorithms/move/constrained.cc: Likewise.
   7315 	* testsuite/25_algorithms/move_backward/constrained.cc: Likewise.
   7316 	* testsuite/25_algorithms/inplace_merge/constrained.cc: Use foo.data()
   7317 	instead of &foo[0].
   7318 	* testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
   7319 	* testsuite/25_algorithms/partial_sort_copy/constrained.cc: Likewise.
   7320 	* testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
   7321 	* testsuite/25_algorithms/sort/constrained.cc: Likewise.
   7322 	* testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
   7323 
   7324 2020-02-27  Jonathan Wakely  <jwakely (a] redhat.com>
   7325 
   7326 	* include/debug/array (operator<=>): Define for C++20.
   7327 	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
   7328 	Adjust dg-error line numbers.
   7329 	* testsuite/23_containers/array/tuple_interface/
   7330 	tuple_element_debug_neg.cc: Likewise.
   7331 
   7332 	* testsuite/23_containers/span/back_assert_neg.cc: Add #undef before
   7333 	defining _GLIBCXX_ASSERTIONS.
   7334 	* testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
   7335 	* testsuite/23_containers/span/first_assert_neg.cc: Likewise.
   7336 	* testsuite/23_containers/span/front_assert_neg.cc: Likewise.
   7337 	* testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
   7338 	* testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
   7339 	* testsuite/23_containers/span/last_assert_neg.cc: Likewise.
   7340 	* testsuite/23_containers/span/subspan_2_assert_neg.cc: Likewise.
   7341 	* testsuite/23_containers/span/subspan_3_assert_neg.cc: Likewise.
   7342 	* testsuite/23_containers/span/subspan_4_assert_neg.cc: Likewise.
   7343 	* testsuite/23_containers/span/subspan_5_assert_neg.cc: Likewise.
   7344 	* testsuite/23_containers/span/subspan_6_assert_neg.cc: Likewise.
   7345 	* testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
   7346 
   7347 	* include/debug/string (__gnu_debug::basic_string::insert): Fix for
   7348 	C++98 where the member function of the base class returns void.
   7349 
   7350 	* testsuite/util/testsuite_iterators.h (forward_iterator_wrapper): Add
   7351 	equality comparisons that support value-initialized iterators.
   7352 
   7353 	* include/bits/boost_concept_check.h (__function_requires): Add
   7354 	_GLIBCXX14_CONSTEXPR.
   7355 	* testsuite/25_algorithms/min/concept_checks.cc: New test.
   7356 
   7357 2020-02-26  Patrick Palka  <ppalka (a] redhat.com>
   7358 
   7359 	PR libstdc++/93936
   7360 	* include/std/ranges (split_view::_InnerIter::operator==): Compare
   7361 	the operands' _M_i rather than their _M_i.current().
   7362 	* testsuite/std/ranges/adaptors/split.cc: Augment test.
   7363 
   7364 	P1645R1 constexpr for <numeric> algorithms
   7365 	* include/bits/stl_numeric.h (iota, accumulate, inner_product,
   7366 	partial_sum, adjacent_difference): Make conditionally constexpr for
   7367 	C++20.
   7368 	* include/std/numeric (__cpp_lib_constexpr_numeric): Define this feature
   7369 	test macro.
   7370 	(reduce, transform_reduce, exclusive_scan, inclusive_scan,
   7371 	transform_exclusive_scan, transform_inclusive_scan): Make conditionally
   7372 	constexpr for C++20.
   7373 	* include/std/version (__cpp_lib_constexpr_numeric): Define.
   7374 	* testsuite/26_numerics/accumulate/constexpr.cc: New test.
   7375 	* testsuite/26_numerics/adjacent_difference/constexpr.cc: Likewise.
   7376 	* testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
   7377 	* testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
   7378 	* testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
   7379 	* testsuite/26_numerics/iota/constexpr.cc: Likewise.
   7380 	* testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
   7381 	* testsuite/26_numerics/reduce/constexpr.cc: Likewise.
   7382 	* testsuite/26_numerics/transform_exclusive_scan/constexpr.cc: Likewise.
   7383 	* testsuite/26_numerics/transform_inclusive_scan/constexpr.cc: Likewise.
   7384 	* testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
   7385 
   7386 2020-02-26  Jonathan Wakely  <jwakely (a] redhat.com>
   7387 
   7388 	* include/bits/ranges_algo.h (__lexicographical_compare_fn): Declare
   7389 	variables in smaller scope and avoid calling ranges::distance when we
   7390 	know they are pointers. Remove statically-unreachable use of
   7391 	__builtin_unreachable().
   7392 	* include/bits/stl_algobase.h (__lexicographical_compare::__lc):
   7393 	Define inline.
   7394 
   7395 	* include/std/ranges (__detail::__maybe_empty_t): Define new helper
   7396 	alias.
   7397 	(__detail::__maybe_const_t): Likewise.
   7398 	(__adaptor::_RangeAdaptor): Use __maybe_empty_t.
   7399 	(transform_view, take_view, take_while_view, elements_view): Use
   7400 	__maybe_const_t.
   7401 	(join_view, split_view): Use both.
   7402 
   7403 2020-02-25  Patrick Palka  <ppalka (a] redhat.com>
   7404 
   7405 	LWG 3397 basic_istream_view::iterator should not provide
   7406 	iterator_category
   7407 	* include/std/ranges (basic_istream_view:_Iterator::iterator_category):
   7408 	Rename to ...
   7409 	(basic_istream_view:_Iterator::iterator_concept): ... this.
   7410 	* testsuite/std/ranges/istream_view.cc: Augment test.
   7411 
   7412 	LWG 3325 Constrain return type of transformation function for
   7413 	transform_view
   7414 	* include/std/ranges (transform_view): Constrain the return type of the
   7415 	transformation function as per LWG 3325.
   7416 	* testsuite/std/ranges/adaptors/lwg3325_neg.cc: New test.
   7417 
   7418 	LWG 3313 join_view::_Iterator::operator-- is incorrectly constrained
   7419 	* include/std/ranges (join_view::_Iterator::operator--): Require that
   7420 	range_reference_t<_Base> models common_range.
   7421 	* testsuite/std/ranges/adaptors/lwg3313_neg.cc: New test.
   7422 
   7423 	LWG 3301 transform_view::_Iterator has incorrect iterator_category
   7424 	* include/std/ranges (transform_view::_Iterator::_S_iter_cat): Adjust
   7425 	determination of iterator_category as per LWG 3301.
   7426 	* testsuite/std/ranges/adaptors/transform.cc: Augment test.
   7427 
   7428 	LWG 3292 iota_view is under-constrained
   7429 	* include/std/ranges (iota_view): Require that _Winc models semiregular
   7430 	  as per LWG 3292.
   7431 	* testsuite/std/ranges/iota/lwg3292_neg.cc: New test.
   7432 
   7433 2020-02-25  Jonathan Wakely  <jwakely (a] redhat.com>
   7434 
   7435 	* include/bits/ranges_algobase.h (__copy_or_move): Do not use memmove
   7436 	during constant evaluation. Call __builtin_memmove directly instead of
   7437 	__memmove.
   7438 	(__copy_or_move_backward): Likewise.
   7439 	* include/bits/stl_algobase.h (__memmove): Remove.
   7440 	(__copy_move<M, true, random_access_iterator_tag>::__copy_m)
   7441 	(__copy_move_backward<M, true, random_access_iterator_tag>::__copy_m):
   7442 	Use __builtin_memmove directly instead of __memmove.
   7443 	(__copy_move_a2): Do not use memmove during constant evaluation.
   7444 	(__copy_move_backward_a2): Use _IsMove constant to select correct
   7445 	__copy_move_backward specialization.
   7446 	* testsuite/25_algorithms/copy_backward/constexpr.cc: Check for copies
   7447 	begin turned into moves during constant evaluation.
   7448 
   7449 	* testsuite/25_algorithms/move_backward/93872.cc: Add test left out of
   7450 	previous commit.
   7451 
   7452 	PR libstdc++/93872
   7453 	* include/bits/stl_algobase.h (__memmove): Cast away const before
   7454 	doing move assignment.
   7455 	* testsuite/25_algorithms/move/93872.cc: New test.
   7456 	* testsuite/25_algorithms/move_backward/93872.cc: New test.
   7457 
   7458 2020-02-24  Patrick Palka  <ppalka (a] redhat.com>
   7459 
   7460 	PR libstdc++/93884
   7461 	* include/bits/ranges_algobase.h (__copy_or_move,
   7462 	__copy_or_move_backward): Don't inspect the iter_value_t of the output
   7463 	iterator, instead inspect its iterator_traits directly.
   7464 	* include/bits/stl_iterator.h (back_insert_iterator::container):
   7465 	Conditionally initialize.
   7466 	(back_insert_iterator::difference_type): Conditionally define.
   7467 	(back_insert_iterator::back_insert_iterator): Conditionally define this
   7468 	default constructor.
   7469 	(front_insert_iterator::container): Conditionally initialize.
   7470 	(front_insert_iterator::difference_type): Conditionally define.
   7471 	(front_insert_iterator::front_insert_iterator): Conditionally define
   7472 	this default constructor.
   7473 	* 24_iterators/back_insert_iterator/pr93884.cc: New test.
   7474 	* 24_iterators/front_insert_iterator/pr93884.cc: New test.
   7475 
   7476 	P0769R2 Add shift to <algorithm>
   7477 	* include/bits/ranges_algo.h (shift_left, shift_right): New.
   7478 	* testsuite/25_algorithms/shift_left/1.cc: New test.
   7479 	* testsuite/25_algorithms/shift_right/1.cc: New test.
   7480 
   7481 2020-02-24  Jonathan Wakely  <jwakely (a] redhat.com>
   7482 
   7483 	* include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)):
   7484 	Make noexcept-specifier conditional.
   7485 	* testsuite/24_iterators/istream_iterator/cons/sentinel.cc: Check
   7486 	noexcept-specifier.
   7487 
   7488 	* include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)):
   7489 	Add constructor.
   7490 	(operator==(istream_iterator, default_sentinel_t)): Add operator.
   7491 	(ostream_iterator::difference_type): Define to ptrdiff_t for C++20.
   7492 	* include/bits/streambuf_iterator.h
   7493 	(istreambuf_iterator(default_sentinel_t)): Add constructor.
   7494 	(operator==(istreambuf_iterator, default_sentinel_t)): Add operator.
   7495 	* testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
   7496 	New test.
   7497 	* testsuite/24_iterators/istream_iterator/sentinel.cc: New test.
   7498 	* testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
   7499 	New test.
   7500 	* testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test.
   7501 
   7502 	* include/std/ranges (__deep_const_range, __enable_view_impl): Remove.
   7503 	(ranges::enable_view): Simplify (LWG 3326).
   7504 	* include/bits/range_access.h (ranges::enable_view): Declare.
   7505 	* include/bits/regex.h (__enable_view_impl): Remove partial
   7506 	specialization.
   7507 	* include/bits/stl_multiset.h (__enable_view_impl): Likewise.
   7508 	* include/bits/stl_set.h (__enable_view_impl): Likewise.
   7509 	* include/bits/unordered_set.h (__enable_view_impl): Likewise.
   7510 	* include/debug/multiset.h (__enable_view_impl): Likewise.
   7511 	* include/debug/set.h (__enable_view_impl): Likewise.
   7512 	* include/debug/unordered_set (__enable_view_impl): Likewise.
   7513 	* include/experimental/string_view (ranges::enable_view): Define
   7514 	partial specialization.
   7515 	* include/std/span (ranges::enable_view): Likewise.
   7516 	* include/std/string_view (ranges::enable_view): Likewise.
   7517 	* testsuite/std/ranges/view.cc: Check satisfaction of updated concept.
   7518 
   7519 2020-02-21  Jonathan Wakely  <jwakely (a] redhat.com>
   7520 
   7521 	* include/std/optional (operator<=>(optional<T>, optional<U>))
   7522 	(operator<=>(optional<T>, nullopt), operator<=>(optional<T>, U)):
   7523 	Define for C++20.
   7524 	* include/std/tuple (__tuple_cmp): New helper function for <=>.
   7525 	(operator<=>(tuple<T...>, tuple<U>...)): Define for C++20.
   7526 	* include/std/variant (operator<=>(variant<T...>, variant<T...>))
   7527 	(operator<=>(monostate, monostate)): Define for C++20.
   7528 	* testsuite/20_util/optional/relops/three_way.cc: New test.
   7529 	* testsuite/20_util/tuple/comparison_operators/three_way.cc: New test.
   7530 	* testsuite/20_util/variant/89851.cc: Move to ...
   7531 	* testsuite/20_util/variant/relops/89851.cc: ... here.
   7532 	* testsuite/20_util/variant/90008.cc: Move to ...
   7533 	* testsuite/20_util/variant/relops/90008.cc: ... here.
   7534 	* testsuite/20_util/variant/relops/three_way.cc: New test.
   7535 
   7536 2020-02-20  Patrick Palka  <ppalka (a] redhat.com>
   7537 
   7538 	* include/std/ranges (views::__adaptor::__maybe_refwrap): New utility
   7539 	function.
   7540 	(views::__adaptor::_RangeAdaptor::operator()): Add comments.  Use
   7541 	__maybe_refwrap to capture lvalue references by reference, and then use
   7542 	unwrap_reference_t to forward the by-reference captures as references.
   7543 	* testsuite/std/ranges/adaptors/split.cc: Augment test.
   7544 	* testsuite/std/ranges/adaptors/split_neg.cc: New test.
   7545 
   7546 	* include/std/ranges (iota_view): Forward declare _Sentinel.
   7547 	(iota_view::_Iterator): Befriend _Sentinel.
   7548 	(iota_view::_Sentinel::_M_equal): New member function.
   7549 	(iota_view::_Sentinel::operator==): Use it.
   7550 	(views::_Iota::operator()): Forward __f using the correct type.
   7551 	* testsuite/std/ranges/access/ssize.cc (test06): Don't call views::iota
   7552 	with integers of different signedness, to appease iota_view's deduction
   7553 	guide.
   7554 	* testsuite/std/ranges/iota/iota_view.cc: Augment test.
   7555 
   7556 2020-02-20  Jonathan Wakely  <jwakely (a] redhat.com>
   7557 
   7558 	* include/bits/range_access.h (ranges::begin): Reject array of
   7559 	incomplete type.
   7560 	(ranges::end, ranges::size): Require arrays to be bounded.
   7561 	(ranges::data): Require lvalue or borrowed_range.
   7562 	(ranges::iterator_t): Remove constraint.
   7563 	* testsuite/std/ranges/access/begin.cc: Do not check array of
   7564 	incomplete type.
   7565 	* testsuite/std/ranges/access/begin_neg.cc: New test.
   7566 	* testsuite/std/ranges/access/end_neg.cc: Adjust expected error.
   7567 	* testsuite/std/ranges/access/size_neg.cc: Adjust expected error.
   7568 	* testsuite/std/ranges/access/ssize.cc: Do not check array of
   7569 	incomplete type.
   7570 
   7571 	* include/std/system_error (error_category::operator<=>)
   7572 	(operator<=>(const error_code&, const error_code&))
   7573 	(operator<=>(const error_condition&, const error_condition&)): Define
   7574 	for C++20.
   7575 	* testsuite/19_diagnostics/error_category/operators/less.cc: New test.
   7576 	* testsuite/19_diagnostics/error_category/operators/three_way.cc: New
   7577 	test.
   7578 	* testsuite/19_diagnostics/error_code/operators/equal.cc: Remove
   7579 	incorrect comment.
   7580 	* testsuite/19_diagnostics/error_code/operators/less.cc: New test.
   7581 	* testsuite/19_diagnostics/error_code/operators/not_equal.cc: Remove
   7582 	incorrect comment.
   7583 	* testsuite/19_diagnostics/error_code/operators/three_way.cc: New test.
   7584 	* testsuite/19_diagnostics/error_condition/operators/equal.cc: Remove
   7585 	incorrect comment.
   7586 	* testsuite/19_diagnostics/error_condition/operators/less.cc: New test.
   7587 	* testsuite/19_diagnostics/error_condition/operators/not_equal.cc:
   7588 	Remove incorrect comment.
   7589 	* testsuite/19_diagnostics/error_condition/operators/three_way.cc: New
   7590 	test.
   7591 
   7592 	* libsupc++/typeinfo (type_info::operator!=): Remove for C++20.
   7593 
   7594 	* include/std/thread (thread::id::operator<=>): Define for C++20.
   7595 	* testsuite/30_threads/thread/id/70294.cc: Do not take addresses of
   7596 	functions in namespace std.
   7597 	* testsuite/30_threads/thread/id/operators_c++20.cc: New test.
   7598 
   7599 2020-02-19  Patrick Palka  <ppalka (a] redhat.com>
   7600 
   7601 	* testsuite/std/ranges/adaptors/split.cc (test03): Don't include the
   7602 	null terminator of the underlying string as part of the test_range.
   7603 	(main): Call test03.
   7604 
   7605 2020-02-19  Jonathan Wakely  <jwakely (a] redhat.com>
   7606 
   7607 	* include/bits/stl_iterator.h (common_iterator): Add copyable<I>
   7608 	requirement (LWG 3385).
   7609 	* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust
   7610 	expected declaration.
   7611 
   7612 	* include/std/ranges (take_while_view, drop_view, drop_while_view)
   7613 	(elements_view:_Iterator): Initialize data members (LWG 3364).
   7614 
   7615 	* libsupc++/compare (three_way_comparable): Remove always-false check
   7616 	that should have been removed with weak_equality (P1959R0).
   7617 	(three_way_comparable_with): Likewise. Reorder requirements (LWG 3360).
   7618 
   7619 	* include/std/concepts (__detail::__partially_ordered_with): Move here
   7620 	from <compare>.
   7621 	(totally_ordered, totally_ordered_with): Use __partially_ordered_with
   7622 	to simplify definition (LWG 3331).
   7623 	* libsupc++/compare (__detail::__partially_ordered_with): Move to
   7624 	<concepts>.
   7625 
   7626 	* include/std/concepts (totally_ordered_with): Remove redundant
   7627 	requirement (LWG 3329).
   7628 
   7629 	* include/std/ranges (__detail::__convertible_to_non_slicing): New
   7630 	helper concept.
   7631 	(__detail::__pair_like_convertible_to): Remove.
   7632 	(__detail::__pair_like_convertible_from): Add requirements for
   7633 	non-slicing conversions.
   7634 	(subrange): Constrain constructors with __convertible_to_non_slicing.
   7635 	Remove constructors from pair-like types. Add new deduction guide.
   7636 	* testsuite/std/ranges/subrange/lwg3282_neg.cc: New test.
   7637 
   7638 	* include/bits/iterator_concepts.h (iter_move): Add declaration to
   7639 	prevent unqualified lookup finding a suitable declaration (LWG 3247).
   7640 
   7641 	* include/std/memory_resource (polymorphic_allocator::allocate)
   7642 	(polymorphic_allocator::allocate_object): Change type of exception to
   7643 	bad_array_new_length (LWG 3237).
   7644 	* testsuite/20_util/polymorphic_allocator/lwg3237.cc: New test.
   7645 
   7646 	* include/std/type_traits (__cpp_lib_unwrap_ref): Define (LWG 3348).
   7647 	* include/std/version (__cpp_lib_unwrap_ref): Likewise.
   7648 	* testsuite/20_util/unwrap_reference/1.cc: Check macro.
   7649 	* testsuite/20_util/unwrap_reference/3.cc: New test.
   7650 
   7651 	* include/std/numeric (midpoint(T8, T*)): Do not check for complete
   7652 	type during overload resolution, use static assert instead (LWG 3200).
   7653 	* testsuite/26_numerics/midpoint/pointer.cc: Do not test with
   7654 	incomplete type.
   7655 	* testsuite/26_numerics/midpoint/pointer_neg.cc: New test.
   7656 
   7657 	* include/std/span (span(T (&)[N])): Use non-deduced context to
   7658 	prevent first parameter from interfering with class template argument
   7659 	deduction (LWG 3369).
   7660 	* testsuite/23_containers/span/deduction.cc: Add missing 'const'.
   7661 	* testsuite/23_containers/span/lwg3255.cc: Check for construction from
   7662 	rvalues.
   7663 
   7664 	* include/std/span (span::const_iterator, span::const_reverse_iterator)
   7665 	(span::cbegin(), span::cend(), span::crbegin(), span::crend()):
   7666 	Remove (LWG 3320).
   7667 	* testsuite/23_containers/span/everything.cc: Replace uses of cbegin
   7668 	and cend.
   7669 	* testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
   7670 	Likewise.
   7671 	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
   7672 	constrained.cc: Likewise.
   7673 	* testsuite/20_util/specialized_algorithms/
   7674 	uninitialized_default_construct/constrained.cc: Likewise.
   7675 	* testsuite/20_util/specialized_algorithms/uninitialized_fill/
   7676 	constrained.cc: Likewise.
   7677 	* testsuite/20_util/specialized_algorithms/uninitialized_move/
   7678 	constrained.cc: Likewise.
   7679 	* testsuite/20_util/specialized_algorithms/
   7680 	uninitialized_value_construct/constrained.cc: Likewise.
   7681 
   7682 	* include/bits/range_access.h (range_size_t): Define alias template.
   7683 	* include/std/ranges (all_view): Rename to views::all_t (LWG 3335).
   7684 	* testsuite/std/ranges/adaptors/filter.cc: Adjust to new name.
   7685 
   7686 	* include/std/ranges (filter_view, transform_view, take_view)
   7687 	(join_view, split_view, reverse_view): Remove commented-out converting
   7688 	constructors (LWG 3280).
   7689 
   7690 	* include/std/memory (uninitialized_construct_using_allocator): Use
   7691 	std::construct_at (LWG 3321).
   7692 
   7693 	* include/std/memory_resource (polymorphic_allocator::allocate_bytes)
   7694 	(polymorphic_allocator::allocate_object)
   7695 	(polymorphic_allocator::new_object): Add nodiscard attribute (LWG3304).
   7696 
   7697 	LWG 3379. "safe" in several library names is misleading
   7698 	* include/bits/range_access.h (enable_safe_range): Rename to
   7699 	enable_borrowed_range.
   7700 	(__detail::__maybe_safe_range): Rename to __maybe_borrowed_range.
   7701 	(safe_range): Rename to borrowed_range.
   7702 	* include/bits/ranges_algo.h: Adjust to use new names.
   7703 	* include/bits/ranges_algobase.h: Likewise.
   7704 	* include/bits/ranges_uninitialized.h: Likewise.
   7705 	* include/std/ranges: Likewise.
   7706 	(safe_iterator_t): Rename to borrowed_iterator_t.
   7707 	(safe_subrange_t): Rename to borrowed_subrange_t.
   7708 	* include/std/span: Adjust to use new names.
   7709 	* include/std/string_view: Likewise.
   7710 	* include/experimental/string_view: Likewise.
   7711 	* testsuite/std/ranges/access/begin.cc: Likewise.
   7712 	* testsuite/std/ranges/access/cbegin.cc: Likewise.
   7713 	* testsuite/std/ranges/access/cdata.cc: Likewise.
   7714 	* testsuite/std/ranges/access/cend.cc: Likewise.
   7715 	* testsuite/std/ranges/access/crbegin.cc: Likewise.
   7716 	* testsuite/std/ranges/access/crend.cc: Likewise.
   7717 	* testsuite/std/ranges/access/data.cc: Likewise.
   7718 	* testsuite/std/ranges/access/end.cc: Likewise.
   7719 	* testsuite/std/ranges/access/rbegin.cc: Likewise.
   7720 	* testsuite/std/ranges/access/rend.cc: Likewise.
   7721 	* testsuite/std/ranges/safe_range.cc: Likewise.
   7722 	* testsuite/std/ranges/safe_range_types.cc: Likewise.
   7723 	* testsuite/util/testsuite_iterators.h: Likewise.
   7724 
   7725 	* include/std/ranges (tuple_element<0, const subrange<I, S, K>>)
   7726 	(tuple_element<1, const subrange<I, S, K>>): Add partial
   7727 	specializations (LWG 3398).
   7728 	* testsuite/std/ranges/subrange/tuple_like.cc: New test.
   7729 
   7730 	* include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
   7731 	(__adjacent_find_fn, __remove_if_fn, __remove_copy_if_fn)
   7732 	(__unique_fn, __unique_copy_fn): Remove redundant conversions to bool.
   7733 
   7734 2020-02-18  Patrick Palka  <ppalka (a] redhat.com>
   7735 
   7736 	P1983R0 Wording for GB301, US296, US292, US291, and US283
   7737 	* include/std/ranges (filter_view::pred): New member function.
   7738 	(join_view::_Iterator::_Iterator): Remove now-redundant comment since
   7739 	P1983R0 fixes the highlighted issue in the same way.
   7740 	(join_view::_Iterator<_Const>): Add friend
   7741 	join_view::_Iterator<!_Const>.
   7742 	(join_view::_M_inner): Remove mutable specifier, effectively reverting
   7743 	the proposed wording changes of P3278.
   7744 	(join_view::begin): Refine the condition for when to return a const
   7745 	iterator.
   7746 	(split_view::_OuterIter::_OuterIter): Adjust constraints.
   7747 	* testsuite/std/ranges/adaptors/filter.cc: Test that filter_view::pred
   7748 	exists and works.
   7749 
   7750 2020-02-18  Jonathan Wakely  <jwakely (a] redhat.com>
   7751 
   7752 	PR libstdc++/93818
   7753 	* include/std/ranges (_RangeAdaptor): Add deduction guide.
   7754 	(filter_view::_Iterator): Add alias _Vp_iter and use in place of
   7755 	iterator_t<_Vp>.
   7756 	(filter_view::_Iterator::_S_iter_cat()): Add 'typename'.
   7757 	(transform_view::_Iterator): Add alias _Base_iter and use in place of
   7758 	iterator_t<_Base>.
   7759 	(transform_view::_Iterator::_S_iter_cat()): Add 'typename'.
   7760 	(join_view::_Iterator): Add _Outer_iter and _Inner_iter aliases.
   7761 	(join_view::_Iterator::_S_iter_cat()): Add 'typename'.
   7762 	(split_view::_InnerIter::_S_iter_cat()): Likewise.
   7763 
   7764 	* testsuite/20_util/integer_comparisons/equal.cc: Fix invalid
   7765 	assumption that long is wider than int.
   7766 	* testsuite/20_util/integer_comparisons/greater_equal.cc: Likewise.
   7767 	* testsuite/20_util/integer_comparisons/less.cc: Likewise.
   7768 	* testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
   7769 	* testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
   7770 
   7771 	P1976R2 Fixed-size span construction from dynamic range
   7772 	* include/std/span (__cpp_lib_span): Update value.
   7773 	(span(It, size_type), span(It, End)): Make conditionally explicit. Add
   7774 	assertion.
   7775 	(span(R&&), span(const span<OType, OExtent>&)): Likewise and relax
   7776 	constraints.
   7777 	(span::first<Count>(), span::last<Count>()): Use explicit type in
   7778 	return statement.
   7779 	(as_bytes, as_writable_bytes): Likewise.
   7780 	* include/std/version (__cpp_lib_span): Update value.
   7781 	* testsuite/23_containers/span/1.cc: Check new value.
   7782 	* testsuite/23_containers/span/2.cc: Check new value.
   7783 	* testsuite/23_containers/span/explicit.cc: New test.
   7784 
   7785 	* include/std/span (span::__is_compatible_array): Simplify alias
   7786 	template by using requires-clause.
   7787 	(span::__is_compatible_ref): New alias template for constraining
   7788 	constructors.
   7789 	(span::__is_compatible_iterator, span::__is_compatible_range): Remove.
   7790 	(span(It, size_type), span(It, End)): Use __is_compatible_ref.
   7791 	(span(T(&)[N], span(array<T, N>&), span(const array<T, N>&)): Remove
   7792 	redundant parentheses.
   7793 	(span(R&&)): Add missing constraints.
   7794 
   7795 	* include/std/span (span): Reorder members and rename template
   7796 	parameters to match declarations in the C++2a working paper.
   7797 
   7798 	P2116R0 Remove tuple-like protocol support from fixed-extent span
   7799 	* include/std/span (get, tuple_size, tuple_element): Remove.
   7800 	* testsuite/23_containers/span/everything.cc: Remove checks for
   7801 	tuple-like API.
   7802 	* testsuite/23_containers/span/get_neg.cc: Remove.
   7803 	* testsuite/23_containers/span/tuple_element_dynamic_neg.cc: Remove.
   7804 	* testsuite/23_containers/span/tuple_element_oob_neg.cc: Remove.
   7805 	* testsuite/23_containers/span/tuple_size_neg.cc: Remove.
   7806 
   7807 2020-02-17  Patrick Palka  <ppalka (a] redhat.com>
   7808 
   7809 	P2106R0 Alternative wording for GB315 and GB316
   7810 	* include/bits/ranges_algo.h (in_fun_result): New.
   7811 	(for_each_result, for_each_n_result): Change into an alias of
   7812 	in_fun_result.
   7813 	(in_in_result): New.
   7814 	(mismatch_result): Change into an alias of in_in_result.
   7815 	(copy_if_result): Change into an alias of in_out_result.
   7816 	(swap_ranges_result): Change into an alias of in_in_result.
   7817 	(unary_transform_result): Change into an alias of in_out_result.
   7818 	(in_in_out_result): New.
   7819 	(binary_transform_result): Change into an alias of in_in_out_result.
   7820 	(replace_copy_result, replace_copy_if_result, remove_copy_if_result,
   7821 	remove_copy_result, unique_copy_result, reverse_copy_result,
   7822 	rotate_copy_result, partial_sort_copy_result): Change into an alias of
   7823 	in_out_result.
   7824 	(in_out_out_result): New.
   7825 	(partition_copy_result, merge_result): Change into an alias of
   7826 	in_out_out_result.
   7827 	(set_union_result, set_intersection_result): Change into an alias of
   7828 	in_in_out_result.
   7829 	(set_difference_result): Change into an alias of in_out_result.
   7830 	(set_symmetric_difference): Change into an alias of in_in_out_result.
   7831 	(min_max_result): New.
   7832 	(minmax_result, minmax_element_result): Change into an alias of
   7833 	min_max_result.
   7834 	(in_found_result): New.
   7835 	(next_permutation_result, prev_permutation_result): Change into an alias
   7836 	of in_found_result.
   7837 	(__next_permutation_fn::operator(), __prev_permutation_fn::operator()):
   7838 	Adjust following changes to next_permutation_result and
   7839 	prev_permutation_result.
   7840 	* include/bits/ranges_algobase.h (in_out_result): New.
   7841 	(copy_result, move_result, move_backward_result, copy_backward_result,
   7842 	copy_n_result): Change into an alias of in_out_result.
   7843 	* include/bits/ranges_uninitialized.h (uninitialized_copy_result,
   7844 	uninitialized_copy_n_result, uninitialized_move_result,
   7845 	uninitialized_move_n_result): Likewise.
   7846 	* testsuite/25_algorithms/next_permutation/constrained.cc: Adjust uses of
   7847 	structured bindings.
   7848 	* testsuite/25_algorithms/prev_permutation/constrained.cc: Likewise.
   7849 
   7850 	P1243R4 Rangify new algorithms
   7851 	* include/bits/ranges_algo.h (for_each_n_result, __for_each_n_fn,
   7852 	for_each_n, __sample_fn, sample, __clamp_fn, clamp): New.
   7853 	* testsuite/25_algorithms/clamp/constrained.cc: New test.
   7854 	* testsuite/25_algorithms/for_each/constrained.cc: Augment test.
   7855 	* testsuite/25_algorithms/sample/constrained.cc: New test.
   7856 
   7857 2020-02-17  Jonathan Wakely  <jwakely (a] redhat.com>
   7858 
   7859 	P1964R2 Wording for boolean-testable
   7860 	* include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
   7861 	(__adjacent_find_fn): Cast result of predicate to bool.
   7862 	* include/std/concepts (__boolean): Remove.
   7863 	(__detail::__boolean_testable_impl, __detail::__boolean_testable): Add
   7864 	new helper concepts.
   7865 	(__detail::__weakly_eq_cmp_with, totally_ordered, totally_ordered_with)
   7866 	(predicate): Use __boolean_testable instead of boolean.
   7867 	* libsupc++/compare (__detail::__partially_ordered, _Synth3way):
   7868 	Likewise.
   7869 
   7870 	P1970R2 Consistency for size() functions: Add ranges::ssize
   7871 	* include/bits/range_access.h (_SSize, ssize): Define for C++20.
   7872 	* testsuite/std/ranges/access/ssize.cc: New test.
   7873 
   7874 	P1956R1 On the names of low-level bit manipulation functions
   7875 	* include/bits/hashtable_policy.h: Update comment.
   7876 	* include/std/bit (__ispow2, __ceil2, __floor2, __log2p1): Rename.
   7877 	(ispow2, ceil2, floor2, log2p1): Likewise.
   7878 	(__cpp_lib_int_pow2): Add feature test macro.
   7879 	* include/std/charconv (__to_chars_len_2): Adjust use of __log2p1.
   7880 	* include/std/memory (assume_aligned): Adjust use of ispow2.
   7881 	* include/std/version (__cpp_lib_int_pow2): Add.
   7882 	* libsupc++/new_opa.cc: Adjust use of __ispow2.
   7883 	* src/c++17/memory_resource.cc: Likewise, and for __ceil2 and __log2p1.
   7884 	* testsuite/17_intro/freestanding.cc: Adjust use of ispow2.
   7885 	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Rename to ...
   7886 	* testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: ... here.
   7887 	* testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Rename to ...
   7888 	* testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc: ... here.
   7889 	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Rename to ...
   7890 	* testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: ... here.
   7891 	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Rename to ...
   7892 	* testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: ... here.
   7893 	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Rename to ...
   7894 	* testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc: ... here.
   7895 
   7896 	* include/std/charconv: Add comment.
   7897 
   7898 	PR libstdc++/92546 (partial)
   7899 	* include/bits/random.h (uniform_random_bit_generator): Move definition
   7900 	to <bits/uniform_int_dist.h>.
   7901 	* include/bits/ranges_algo.h: Include <bits/uniform_int_dist.h> instead
   7902 	of <bits/random.h>.
   7903 	* include/bits/ranges_algobase.h: Do not include <cmath>.
   7904 	* include/bits/uniform_int_dist.h (uniform_random_bit_generator):
   7905 	Move here.
   7906 	* include/std/ranges: Do not include <limits>.
   7907 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
   7908 
   7909 	PR libstdc++/92546 (partial)
   7910 	* include/Makefile.am: Add new header.
   7911 	* include/Makefile.in: Regenerate.
   7912 	* include/bits/int_limits.h: New header.
   7913 	* include/bits/parse_numbers.h (__select_int::_Select_int): Replace
   7914 	numeric_limits with __detail::__int_limits.
   7915 	* include/std/bit (__rotl, __rotr, __countl_zero, __countl_one)
   7916 	(__countr_zero, __countr_one, __popcount, __ceil2, __floor2, __log2p1):
   7917 	Likewise.
   7918 	* include/std/charconv (__to_chars_8, __from_chars_binary)
   7919 	(__from_chars_alpha_to_num, from_chars): Likewise.
   7920 	* include/std/memory_resource (polymorphic_allocator::allocate)
   7921 	(polymorphic_allocator::allocate_object): Likewise.
   7922 	* include/std/string_view (basic_string_view::_S_compare): Likewise.
   7923 	* include/std/utility (in_range): Likewise.
   7924 	* testsuite/20_util/integer_comparisons/in_range_neg.cc: Adjust for
   7925 	extra error about incomplete type __int_limits<bool>.
   7926 	* testsuite/26_numerics/bit/bit.count/countl_one.cc: Include <limits>.
   7927 	* testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
   7928 	* testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
   7929 	* testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
   7930 	* testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
   7931 	* testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Likewise.
   7932 	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Likewise.
   7933 	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise.
   7934 	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise.
   7935 	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise.
   7936 	* testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
   7937 	* testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
   7938 
   7939 	* python/libstdcxx/v6/printers.py (StdCmpCatPrinter.to_string): Update
   7940 	value for partial_ordering::unordered.
   7941 
   7942 	* include/bits/iterator_concepts.h (indirectly_copyable_storable): Add
   7943 	const-qualified expression variations.
   7944 	* include/std/concepts (copyable): Likewise.
   7945 
   7946 	* include/std/type_traits (__is_standard_integer): New helper trait.
   7947 	* include/std/utility (cmp_equal, cmp_not_equal, cmp_less, cmp_greater)
   7948 	(cmp_less_equal, cmp_greater_equal, in_range): Define for C++20.
   7949 	* include/std/version (__cpp_lib_integer_comparison_functions): Define.
   7950 	* testsuite/20_util/integer_comparisons/1.cc: New test.
   7951 	* testsuite/20_util/integer_comparisons/2.cc: New test.
   7952 	* testsuite/20_util/integer_comparisons/equal.cc: New test.
   7953 	* testsuite/20_util/integer_comparisons/equal_neg.cc: New test.
   7954 	* testsuite/20_util/integer_comparisons/greater_equal.cc: New test.
   7955 	* testsuite/20_util/integer_comparisons/greater_equal_neg.cc: New test.
   7956 	* testsuite/20_util/integer_comparisons/greater_neg.cc: New test.
   7957 	* testsuite/20_util/integer_comparisons/in_range.cc: New test.
   7958 	* testsuite/20_util/integer_comparisons/in_range_neg.cc: New test.
   7959 	* testsuite/20_util/integer_comparisons/less.cc: New test.
   7960 	* testsuite/20_util/integer_comparisons/less_equal.cc: New test.
   7961 	* testsuite/20_util/integer_comparisons/less_equal_neg.cc: New test.
   7962 	* testsuite/20_util/integer_comparisons/less_neg.cc: New test.
   7963 	* testsuite/20_util/integer_comparisons/not_equal.cc: New test.
   7964 	* testsuite/20_util/integer_comparisons/not_equal_neg.cc: New test.
   7965 
   7966 2020-02-16  Patrick Palka  <ppalka (a] redhat.com>
   7967 
   7968 	* include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
   7969 	Move code after an early exit constexpr if to under an else branch.
   7970 	* include/bits/ranges_algobase.h (__equal_fn::operator()): Likewise.
   7971 
   7972 2020-02-15  Patrick Palka  <ppalka (a] redhat.com>
   7973 
   7974 	* include/bits/ranges_algo.h: Adjust whitespace and formatting.
   7975 	* include/bits/ranges_algobase.h: Likewise.
   7976 	* include/bits/ranges_uninitialized.h: Likewise.
   7977 
   7978 	* include/bits/ranges_algo.h: (adjacent_find, all_of, any_of,
   7979 	binary_search, copy_if, count, count_if, equal_range, find, find_end,
   7980 	find_first_of, find_if, find_if_not, for_each, generate, generate_n,
   7981 	includes, inplace_merge, is_heap, is_heap_until, is_partitioned,
   7982 	is_permutation, is_sorted, is_sorted_until, lexicographical_compare,
   7983 	lower_bound, make_heap, max, max_element, merge, min, min_element,
   7984 	minmax, minmax_element, mismatch, next_permutation, none_of,
   7985 	nth_element, partial_sort, partial_sort_copy, partition, partition_copy,
   7986 	partition_point, pop_heap, prev_permutation, push_heap, remove,
   7987 	remove_copy, remove_copy_if, remove_if, replace, replace_copy,
   7988 	replace_copy_if, replace_if, reverse, reverse_copy, rotate, rotate_copy,
   7989 	search, search_n, set_difference, set_intersection,
   7990 	set_symmetric_difference, set_union, shuffle, sort, sort_heap,
   7991 	stable_partition, stable_sort, swap_ranges, transform, unique,
   7992 	unique_copy, upper_bound): Convert into function objects.
   7993 	* include/bits/ranges_algobase.h: (equal, copy, move, copy_n, fill_n,
   7994 	fill, move_backward, copy_backward): Likewise.
   7995 	* include/bits/ranges_uninitialized.h (uninitialized_default_construct,
   7996 	uninitialized_default_construct_n, uninitialized_value_construct,
   7997 	uninitialized_value_construct_n, uninitialized_copy,
   7998 	uninitialized_copy_n, uninitialized_move, uninitialized_move_n,
   7999 	uninitialized_fill, uninitialized_fill_n, construct_at, destroy_at,
   8000 	destroy, destroy_n): Likewise.
   8001 
   8002 	* include/bits/ranges_algo.h (ranges::__find_end): Fold into ...
   8003 	(ranges::find_end): ... here.
   8004 	(ranges::__lexicographical_compare): Fold into ...
   8005 	(ranges::lexicographical_compare): ... here.
   8006 	* include/bits/ranges_algobase.h (ranges::__equal): Fold into ...
   8007 	(ranges::equal): ... here.
   8008 
   8009 2020-02-15  Jonathan Wakely  <jwakely (a] redhat.com>
   8010 
   8011 	* include/bits/erase_if.h (__cpp_lib_erase_if): Define to 202002L.
   8012 	* include/std/deque: Likewise.
   8013 	* include/std/forward_list: Likewise.
   8014 	* include/std/list: Likewise.
   8015 	* include/std/string: Likewise.
   8016 	* include/std/vector: Likewise.
   8017 	* include/std/version: Likewise.
   8018 	* testsuite/23_containers/deque/erasure.cc: Test for new value.
   8019 	* testsuite/23_containers/forward_list/erasure.cc: Likewise.
   8020 	* testsuite/23_containers/list/erasure.cc: Likewise.
   8021 	* testsuite/23_containers/map/erasure.cc: Likewise.
   8022 	* testsuite/23_containers/set/erasure.cc: Likewise.
   8023 	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
   8024 	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
   8025 	* testsuite/23_containers/vector/erasure.cc: Likewise.
   8026 
   8027 2020-02-15  Jonathan Wakely  <jwakely (a] redhat.com>
   8028 
   8029 	* include/bits/random.h (uniform_random_bit_generator): Require min()
   8030 	and max() to be constant expressions and min() to be less than max().
   8031 	* testsuite/26_numerics/random/concept.cc: Check additional cases.
   8032 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
   8033 
   8034 2020-02-13  Patrick Palka  <ppalka (a] redhat.com>
   8035 
   8036 	* include/Makefile.am: Add <bits/ranges_uninitialized.h>.
   8037 	* include/Makefile.in: Regenerate.
   8038 	* include/bits/ranges_uninitialized.h: New header.
   8039 	* include/std/memory: Include it.
   8040 	* testsuite/20_util/specialized_algorithms/destroy/constrained.cc: New
   8041 	test.
   8042 	* .../uninitialized_copy/constrained.cc: New test.
   8043 	* .../uninitialized_default_construct/constrained.cc: New test.
   8044 	* .../uninitialized_fill/constrained.cc: New test.
   8045 	* .../uninitialized_move/constrained.cc: New test.
   8046 	* .../uninitialized_value_construct/constrained.cc: New test.
   8047 
   8048 	* include/Makefile.am: Add bits/ranges_algobase.h
   8049 	* include/Makefile.in: Regenerate.
   8050 	* bits/ranges_algo.h: Include <bits/ranges_algobase.h> and refactor
   8051 	existing #includes.
   8052 	(__detail::__is_normal_iterator, __detail::is_reverse_iterator,
   8053 	__detail::__is_move_iterator, copy_result, move_result,
   8054 	__equal, equal, copy_result, move_result, move_backward_result,
   8055 	copy_backward_result, __copy_or_move_backward, __copy_or_move, copy,
   8056 	move, copy_backward, move_backward, copy_n_result, copy_n, fill_n,
   8057 	fill): Split out into ...
   8058 	* bits/range_algobase.h: ... this new header.
   8059 
   8060 2020-02-12  Patrick Palka  <ppalka (a] redhat.com>
   8061 
   8062 	LWG 3389 and LWG 3390
   8063 	* include/bits/stl_iterator.h (move_move_iterator): Use std::move when
   8064 	constructing the move_iterator with __i.
   8065 	(counted_iterator::counted_iterator): Use std::move when initializing
   8066 	M_current with __i.
   8067 	* testsuite/24_iterators/counted_iterator/lwg3389.cc: New test.
   8068 	* testsuite/24_iterators/move_iterator/lwg3390.cc: New test.
   8069 
   8070 2020-02-12  Sandra Loosemore  <sandra (a] codesourcery.com>
   8071 
   8072 	PR libstdc++/79193
   8073 	PR libstdc++/88999
   8074 
   8075 	* configure: Regenerated.
   8076 
   8077 2020-02-12  Franois Dumont  <fdumont (a] gcc.gnu.org>
   8078 
   8079 	* include/bits/hashtable.h
   8080 	(_Hashtable<>(_Hashtable&&, std::allocator_type&)): Add
   8081 	missing std namespace qualification to forward call.
   8082 
   8083 2020-02-09  Jonathan Wakely  <jwakely (a] redhat.com>
   8084 
   8085 	* testsuite/20_util/function_objects/range.cmp/equal_to.cc: Fix
   8086 	comment.
   8087 	* testsuite/20_util/function_objects/range.cmp/less.ccL Likewise.
   8088 
   8089 	* include/std/ranges: Fix non-ASCII characters in comment.
   8090 
   8091 	* include/bits/range_cmp.h (__detail::__eq_builtin_ptr_cmp): Require
   8092 	equality comparison to be valid and return bool.
   8093 	(__detail::__less_builtin_ptr_cmp): Likewise for less-than comparison.
   8094 	* testsuite/20_util/function_objects/range.cmp/equal_to.cc: Check
   8095 	type with ambiguous conversion to fundamental types.
   8096 	* testsuite/20_util/function_objects/range.cmp/less.cc: Likewise.
   8097 
   8098 2020-02-07  Jonathan Wakely  <jwakely (a] redhat.com>
   8099 
   8100 	* include/bits/iterator_concepts.h (iter_difference_t, iter_value_t):
   8101 	Use remove_cvref_t.
   8102 	(readable_traits): Rename to indirectly_readable_traits.
   8103 	(readable): Rename to indirectly_readable.
   8104 	(writable): Rename to indirectly_writable.
   8105 	(__detail::__iter_exchange_move): Do not use remove_reference_t.
   8106 	(indirectly_swappable): Adjust requires expression parameter types.
   8107 	expression.
   8108 	* include/bits/ranges_algo.h (ranges::transform, ranges::replace)
   8109 	(ranges::replace_if, ranges::generate_n, ranges::generate)
   8110 	(ranges::remove): Use new name for writable.
   8111 	* include/bits/stl_iterator.h (__detail::__common_iter_has_arrow):
   8112 	Use new name for readable.
   8113 	* include/ext/pointer.h (readable_traits<_Pointer_adapter<P>>): Use
   8114 	new name for readable_traits.
   8115 	* testsuite/24_iterators/associated_types/readable.traits.cc: Likewise.
   8116 	* testsuite/24_iterators/indirect_callable/projected.cc: Adjust for
   8117 	new definition of indirectly_readable.
   8118 
   8119 	* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Change
   8120 	to take parameters of common_iterator, instead of the common_iterator
   8121 	type itself. Fix argument for __common_iter_has_arrow constraint.
   8122 	(iterator_traits<common_iterator<I, S>>::pointer): Adjust.
   8123 
   8124 2020-02-07  Jonathan Wakely  <jwakely (a] redhat.com>
   8125 
   8126 	* include/std/ranges (iota_view): Add braces to prevent -Wempty-body
   8127 	warning.
   8128 	(basic_istream_view::_Iterator::operator++()): Add missing return.
   8129 
   8130 2020-02-07  Patrick Palka  <ppalka (a] redhat.com>
   8131 
   8132 	* include/bits/ranges_algo.h: Remove extraneous &&.
   8133 
   8134 	* include/std/ranges (ranges::__detail::__stream_extractable,
   8135 	ranges::basic_istream_view, ranges::istream_view): Define.
   8136 	* testsuite/std/ranges/istream_view: New test.
   8137 
   8138 	Implement C++20 range adaptors
   8139 	* include/std/ranges: Include <bits/refwrap.h> and <tuple>.
   8140 	(subrange::_S_store_size): Mark as const instead of constexpr to
   8141 	avoid what seems to be a bug in GCC.
   8142 	(__detail::__box): Give it defaulted copy and move constructors.
   8143 	(ranges::views::_Single::operator()): Mark constexpr.
   8144 	(ranges::views::_Iota::operator()): Mark constexpr.
   8145 	(__detail::Empty): Define.
   8146 	(ranges::views::__closure::_RangeAdaptor,
   8147 	ranges::views::__closure::_RangeAdaptorClosure, ref_view, all_view,
   8148 	ranges::views::all, ranges::__detail::find_if,
   8149 	ranges::__detail::find_if_not, ranges::__detail::mismatch,
   8150 	ranges::detail::min, filter_view, ranges::views::filter, transform_view,
   8151 	ranges::views::transform, take_view, ranges::views::take,
   8152 	take_while_view, ranges::views::take_while, drop_view,
   8153 	ranges::views::drop, join_view, ranges::views::join,
   8154 	__detail::require_constant, __detail::tiny_range, split_view,
   8155 	ranges::views::split, ranges::views::_Counted, ranges::views::counted,
   8156 	common_view, ranges::views::common, reverse_view,
   8157 	ranges::views::reverse,
   8158 	ranges::views::__detail::__is_reversible_subrange,
   8159 	ranges::views::__detail::__is_reverse_view, reverse_view,
   8160 	ranges::views::reverse, __detail::__has_tuple_element, elements_view,
   8161 	ranges::views::elements, ranges::views::keys, ranges::views::values):
   8162 	Define.
   8163 	(views): Alias for ranges::views.
   8164 	(tuple_size<ranges::subrange<>>, tuple_element<0, ranges::subrange>,
   8165 	tuple_element<1, ranges::subrange>): New partial specializations.
   8166 	* testsuite/std/ranges/adaptors/all.cc: New test.
   8167 	* testsuite/std/ranges/adaptors/common.cc: Likewise.
   8168 	* testsuite/std/ranges/adaptors/counted.cc: Likewise.
   8169 	* testsuite/std/ranges/adaptors/drop.cc: Likewise.
   8170 	* testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
   8171 	* testsuite/std/ranges/adaptors/elements.cc: Likewise.
   8172 	* testsuite/std/ranges/adaptors/filter.cc: Likewise.
   8173 	* testsuite/std/ranges/adaptors/join.cc: Likewise.
   8174 	* testsuite/std/ranges/adaptors/reverse.cc: Likewise.
   8175 	* testsuite/std/ranges/adaptors/split.cc: Likewise.
   8176 	* testsuite/std/ranges/adaptors/take.cc: Likewise.
   8177 	* testsuite/std/ranges/adaptors/take_while.cc: Likewise.
   8178 	* testsuite/std/ranges/adaptors/transform.cc: Likewise.
   8179 
   8180 2020-02-07  Jonathan Wakely  <jwakely (a] redhat.com>
   8181 
   8182 	* libsupc++/compare (__cmp_cat::type): Define typedef for underlying
   8183 	type of enumerations and comparison category types.
   8184 	(__cmp_cat::_Ord, __cmp_cat::_Ncmp): Add underlying type.
   8185 	(__cmp_cat::_Ncmp::unordered): Change value to 2.
   8186 	(partial_ordering::_M_value, weak_ordering::_M_value)
   8187 	(strong_ordering::_M_value): Change type to __cmp_cat::type.
   8188 	(partial_ordering::_M_is_ordered): Remove data member.
   8189 	(partial_ordering): Use second bit of _M_value for unordered. Adjust
   8190 	comparison operators.
   8191 	(weak_ordering::operator partial_ordering): Simplify to remove
   8192 	branches.
   8193 	(operator<=>(unspecified, weak_ordering)): Likewise.
   8194 	(strong_ordering::operator partial_ordering): Likewise.
   8195 	(strong_ordering::operator weak_ordering): Likewise.
   8196 	(operator<=>(unspecified, strong_ordering)): Likewise.
   8197 	* testsuite/18_support/comparisons/categories/partialord.cc: New test.
   8198 	* testsuite/18_support/comparisons/categories/strongord.cc: New test.
   8199 	* testsuite/18_support/comparisons/categories/weakord.cc: New test.
   8200 
   8201 	* include/std/ranges (iota_view::_Iterator): Fix typo in name of
   8202 	__cpp_lib_three_way_comparison macro and use deduced return type for
   8203 	operator<=>.
   8204 	* testsuite/std/ranges/iota/iterator.cc: New test.
   8205 
   8206 2020-02-07  Patrick Palka  <ppalka (a] redhat.com>
   8207 	    Jonathan Wakely  <jwakely (a] redhat.com>
   8208 
   8209 	Implement C++20 constrained algorithms
   8210 	* include/Makefile.am: Add new header.
   8211 	* include/Makefile.in: Regenerate.
   8212 	* include/std/algorithm: Include <bits/ranges_algo.h>.
   8213 	* include/bits/ranges_algo.h: New file.
   8214 	* testsuite/25_algorithms/adjacent_find/constrained.cc: New test.
   8215 	* testsuite/25_algorithms/all_of/constrained.cc: New test.
   8216 	* testsuite/25_algorithms/any_of/constrained.cc: New test.
   8217 	* testsuite/25_algorithms/binary_search/constrained.cc: New test.
   8218 	* testsuite/25_algorithms/copy/constrained.cc: New test.
   8219 	* testsuite/25_algorithms/copy_backward/constrained.cc: New test.
   8220 	* testsuite/25_algorithms/copy_if/constrained.cc: New test.
   8221 	* testsuite/25_algorithms/copy_n/constrained.cc: New test.
   8222 	* testsuite/25_algorithms/count/constrained.cc: New test.
   8223 	* testsuite/25_algorithms/count_if/constrained.cc: New test.
   8224 	* testsuite/25_algorithms/equal/constrained.cc: New test.
   8225 	* testsuite/25_algorithms/equal_range/constrained.cc: New test.
   8226 	* testsuite/25_algorithms/fill/constrained.cc: New test.
   8227 	* testsuite/25_algorithms/fill_n/constrained.cc: New test.
   8228 	* testsuite/25_algorithms/find/constrained.cc: New test.
   8229 	* testsuite/25_algorithms/find_end/constrained.cc: New test.
   8230 	* testsuite/25_algorithms/find_first_of/constrained.cc: New test.
   8231 	* testsuite/25_algorithms/find_if/constrained.cc: New test.
   8232 	* testsuite/25_algorithms/find_if_not/constrained.cc: New test.
   8233 	* testsuite/25_algorithms/for_each/constrained.cc: New test.
   8234 	* testsuite/25_algorithms/generate/constrained.cc: New test.
   8235 	* testsuite/25_algorithms/generate_n/constrained.cc: New test.
   8236 	* testsuite/25_algorithms/heap/constrained.cc: New test.
   8237 	* testsuite/25_algorithms/includes/constrained.cc: New test.
   8238 	* testsuite/25_algorithms/inplace_merge/constrained.cc: New test.
   8239 	* testsuite/25_algorithms/is_partitioned/constrained.cc: New test.
   8240 	* testsuite/25_algorithms/is_permutation/constrained.cc: New test.
   8241 	* testsuite/25_algorithms/is_sorted/constrained.cc: New test.
   8242 	* testsuite/25_algorithms/is_sorted_until/constrained.cc: New test.
   8243 	* testsuite/25_algorithms/lexicographical_compare/constrained.cc: New
   8244 	test.
   8245 	* testsuite/25_algorithms/lower_bound/constrained.cc: New test.
   8246 	* testsuite/25_algorithms/max/constrained.cc: New test.
   8247 	* testsuite/25_algorithms/max_element/constrained.cc: New test.
   8248 	* testsuite/25_algorithms/merge/constrained.cc: New test.
   8249 	* testsuite/25_algorithms/min/constrained.cc: New test.
   8250 	* testsuite/25_algorithms/min_element/constrained.cc: New test.
   8251 	* testsuite/25_algorithms/minmax/constrained.cc: New test.
   8252 	* testsuite/25_algorithms/minmax_element/constrained.cc: New test.
   8253 	* testsuite/25_algorithms/mismatch/constrained.cc: New test.
   8254 	* testsuite/25_algorithms/move/constrained.cc: New test.
   8255 	* testsuite/25_algorithms/move_backward/constrained.cc: New test.
   8256 	* testsuite/25_algorithms/next_permutation/constrained.cc: New test.
   8257 	* testsuite/25_algorithms/none_of/constrained.cc: New test.
   8258 	* testsuite/25_algorithms/nth_element/constrained.cc: New test.
   8259 	* testsuite/25_algorithms/partial_sort/constrained.cc: New test.
   8260 	* testsuite/25_algorithms/partial_sort_copy/constrained.cc: New test.
   8261 	* testsuite/25_algorithms/partition/constrained.cc: New test.
   8262 	* testsuite/25_algorithms/partition_copy/constrained.cc: New test.
   8263 	* testsuite/25_algorithms/partition_point/constrained.cc: New test.
   8264 	* testsuite/25_algorithms/prev_permutation/constrained.cc: New test.
   8265 	* testsuite/25_algorithms/remove/constrained.cc: New test.
   8266 	* testsuite/25_algorithms/remove_copy/constrained.cc: New test.
   8267 	* testsuite/25_algorithms/remove_copy_if/constrained.cc: New test.
   8268 	* testsuite/25_algorithms/remove_if/constrained.cc: New test.
   8269 	* testsuite/25_algorithms/replace/constrained.cc: New test.
   8270 	* testsuite/25_algorithms/replace_copy/constrained.cc: New test.
   8271 	* testsuite/25_algorithms/replace_copy_if/constrained.cc: New test.
   8272 	* testsuite/25_algorithms/replace_if/constrained.cc: New test.
   8273 	* testsuite/25_algorithms/reverse/constrained.cc: New test.
   8274 	* testsuite/25_algorithms/reverse_copy/constrained.cc: New test.
   8275 	* testsuite/25_algorithms/rotate/constrained.cc: New test.
   8276 	* testsuite/25_algorithms/rotate_copy/constrained.cc: New test.
   8277 	* testsuite/25_algorithms/search/constrained.cc: New test.
   8278 	* testsuite/25_algorithms/search_n/constrained.cc: New test.
   8279 	* testsuite/25_algorithms/set_difference/constrained.cc: New test.
   8280 	* testsuite/25_algorithms/set_intersection/constrained.cc: New test.
   8281 	* testsuite/25_algorithms/set_symmetric_difference/constrained.cc: New
   8282 	test.
   8283 	* testsuite/25_algorithms/set_union/constrained.cc: New test.
   8284 	* testsuite/25_algorithms/shuffle/constrained.cc: New test.
   8285 	* testsuite/25_algorithms/sort/constrained.cc: New test.
   8286 	* testsuite/25_algorithms/stable_partition/constrained.cc: New test.
   8287 	* testsuite/25_algorithms/stable_sort/constrained.cc: New test.
   8288 	* testsuite/25_algorithms/swap_ranges/constrained.cc: New test.
   8289 	* testsuite/25_algorithms/transform/constrained.cc: New test.
   8290 	* testsuite/25_algorithms/unique/constrained.cc: New test.
   8291 	* testsuite/25_algorithms/unique_copy/constrained.cc: New test.
   8292 	* testsuite/25_algorithms/upper_bound/constrained.cc: New test.
   8293 
   8294 2020-02-06  Jonathan Wakely  <jwakely (a] redhat.com>
   8295 
   8296 	* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Fix PR
   8297 	number in comment. Fix indentation.
   8298 
   8299 	* include/bits/stl_algobase.h (__iter_swap, __iter_swap<true>): Remove
   8300 	redundant _GLIBCXX20_CONSTEXPR.
   8301 
   8302 	* include/std/ranges (viewable_range): Replace decay_t with
   8303 	remove_cvref_t (LWG 3375).
   8304 
   8305 2020-02-05  Jonathan Wakely  <jwakely (a] redhat.com>
   8306 
   8307 	* include/bits/iterator_concepts.h (iter_reference_t)
   8308 	(iter_rvalue_reference_t, iter_common_reference_t, indirect_result_t):
   8309 	Remove workarounds for PR c++/67704.
   8310 	* testsuite/24_iterators/aliases.cc: New test.
   8311 
   8312 2020-02-05  Patrick Palka  <ppalka (a] redhat.com>
   8313 
   8314 	* include/bits/stl_iterator.h (move_iterator::move_iterator): Move __i
   8315 	when initializing _M_current.
   8316 	(move_iterator::base): Split into two overloads differing in
   8317 	ref-qualifiers as in P1207R4 for C++20.
   8318 
   8319 2020-02-04  Jonathan Wakely  <jwakely (a] redhat.com>
   8320 
   8321 	* include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Un-define after
   8322 	use.
   8323 
   8324 	PR libstdc++/93562
   8325 	* include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define.
   8326 	(unique_ptr::swap, unique_ptr<T[], D>::swap): Call it.
   8327 	* testsuite/20_util/unique_ptr/modifiers/93562.cc: New test.
   8328 
   8329 2020-02-01  Andrew Burgess  <andrew.burgess (a] embecosm.com>
   8330 
   8331 	* configure: Regenerate.
   8332 
   8333 2020-01-31  Patrick Palka  <ppalka (a] redhat.com>
   8334 
   8335 	* testsuite/24_iterators/range_operations/distance.cc: Do not assume
   8336 	test_range::end() returns the same type as test_range::begin().
   8337 	* testsuite/24_iterators/range_operations/next.cc: Likewise.
   8338 	* testsuite/24_iterators/range_operations/prev.cc: Likewise.
   8339 	* testsuite/util/testsuite_iterators.h (__gnu_test::test_range::end):
   8340 	Always return a sentinel<I>.
   8341 
   8342 2020-01-29  Jonathan Wakely  <jwakely (a] redhat.com>
   8343 
   8344 	PR libstdc++/92895
   8345 	* include/std/stop_token (stop_token::stop_possible()): Call new
   8346 	_M_stop_possible() function.
   8347 	(stop_token::stop_requested()): Do not use stop_possible().
   8348 	(stop_token::binary_semaphore): New class, as temporary stand-in for
   8349 	std::binary_semaphore.
   8350 	(stop_token::_Stop_cb::_M_callback): Add noexcept to type.
   8351 	(stop_token::_Stop_cb::_M_destroyed, stop_token::_Stop_cb::_M_done):
   8352 	New data members for symchronization with stop_callback destruction.
   8353 	(stop_token::_Stop_cb::_Stop_cb): Make non-template.
   8354 	(stop_token::_Stop_cb::_M_linked, stop_token::_Stop_cb::_S_execute):
   8355 	Remove.
   8356 	(stop_token::_Stop_cb::_M_run): New member function.
   8357 	(stop_token::_Stop_state::_M_stopped, stop_token::_Stop_state::_M_mtx):
   8358 	Remove.
   8359 	(stop_token::_Stop_state::_M_owners): New data member to track
   8360 	reference count for ownership.
   8361 	(stop_token::_Stop_state::_M_value): New data member combining a
   8362 	spinlock, the stop requested flag, and the reference count for
   8363 	associated stop_source objects.
   8364 	(stop_token::_Stop_state::_M_requester): New data member for
   8365 	synchronization with stop_callback destruction.
   8366 	(stop_token::_Stop_state::_M_stop_possible()): New member function.
   8367 	(stop_token::_Stop_state::_M_stop_requested()): Inspect relevant bit
   8368 	of _M_value.
   8369 	(stop_token::_Stop_state::_M_add_owner)
   8370 	(stop_token::_Stop_state::_M_release_ownership)
   8371 	(stop_token::_Stop_state::_M_add_ssrc)
   8372 	(stop_token::_Stop_state::_M_sub_ssrc): New member functions for
   8373 	updating reference counts.
   8374 	(stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
   8375 	(stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
   8376 	(stop_token::_Stop_state::_M_try_lock)
   8377 	(stop_token::_Stop_state::_M_try_lock_and_stop)
   8378 	(stop_token::_Stop_state::_M_do_try_lock): New member functions for
   8379 	managing spinlock.
   8380 	(stop_token::_Stop_state::_M_request_stop): Use atomic operations to
   8381 	read and update state. Release lock while running callbacks. Use new
   8382 	data members to synchronize with callback destruction.
   8383 	(stop_token::_Stop_state::_M_remove_callback): Likewise.
   8384 	(stop_token::_Stop_state::_M_register_callback): Use atomic operations
   8385 	to read and update state.
   8386 	(stop_token::_Stop_state_ref): Handle type to manage _Stop_state,
   8387 	replacing shared_ptr.
   8388 	(stop_source::stop_source(const stop_source&)): Update reference count.
   8389 	(stop_source::operator=(const stop_source&)): Likewise.
   8390 	(stop_source::~stop_source()): Likewise.
   8391 	(stop_source::stop_source(stop_source&&)): Define as defaulted.
   8392 	(stop_source::operator=(stop_source&&)): Establish postcondition on
   8393 	parameter.
   8394 	(stop_callback): Enforce preconditions on template parameter. Replace
   8395 	base class with data member of new _Cb_impl type.
   8396 	(stop_callback::stop_callback(const stop_token&, Cb&&))
   8397 	(stop_callback::stop_callback(stop_token&&, Cb&&)): Fix TOCTTOU race.
   8398 	(stop_callback::_Cb_impl): New type wrapping _Callback member and
   8399 	defining the _S_execute member function.
   8400 	* testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: New
   8401 	test.
   8402 	* testsuite/30_threads/stop_token/stop_callback/deadlock.cc: New test.
   8403 	* testsuite/30_threads/stop_token/stop_callback/destroy.cc: New test.
   8404 	* testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
   8405 	New test.
   8406 	* testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: New
   8407 	test.
   8408 	* testsuite/30_threads/stop_token/stop_callback/invoke.cc: New test.
   8409 	* testsuite/30_threads/stop_token/stop_source/assign.cc: New test.
   8410 	* testsuite/30_threads/stop_token/stop_token/stop_possible.cc: New
   8411 	test.
   8412 
   8413 	* libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use
   8414 	three_way_comparable_with.
   8415 	(__detail::__3way_cmp_with): Remove workaround for fixed bug.
   8416 	(compare_three_way::operator()): Remove redundant constraint from
   8417 	requires-clause.
   8418 	(__detail::_Synth3way::operator()): Use three_way_comparable_with
   8419 	instead of workaround.
   8420 	* testsuite/18_support/comparisons/object/93479.cc: Prune extra
   8421 	output due to simplified constraints on compare_three_way::operator().
   8422 
   8423 	PR libstdc++/93479
   8424 	* libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid.
   8425 	* testsuite/18_support/comparisons/object/93479.cc: New test.
   8426 
   8427 	* testsuite/std/ranges/access/end.cc: Do not assume test_range::end()
   8428 	returns the same type as test_range::begin(). Add comments.
   8429 	* testsuite/std/ranges/access/rbegin.cc: Likewise.
   8430 	* testsuite/std/ranges/access/rend.cc: Likewise.
   8431 	* testsuite/std/ranges/range.cc: Do not assume the sentinel for
   8432 	test_range is the same as its iterator type.
   8433 	* testsuite/util/testsuite_iterators.h (test_range::sentinel): Add
   8434 	operator- overloads to satisfy sized_sentinel_for when the iterator
   8435 	satisfies random_access_iterator.
   8436 
   8437 2020-01-28  Jonathan Wakely  <jwakely (a] redhat.com>
   8438 
   8439 	PR libstdc++/93470
   8440 	* include/bits/refwrap.h (reference_wrapper::operator()): Restrict
   8441 	static assertion to object types.
   8442 
   8443 	PR libstdc++/93325
   8444 	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
   8445 	clock_gettime instead of explicit glibc version check.
   8446 	* configure: Regenerate.
   8447 
   8448 2020-01-28  Martin Liska  <mliska (a] suse.cz>
   8449 
   8450 	PR libstdc++/93478
   8451 	* include/std/atomic: Fix typo.
   8452 	* include/std/optional: Likewise.
   8453 
   8454 2020-01-27  Andrew Burgess  <andrew.burgess (a] embecosm.com>
   8455 
   8456 	* configure: Regenerate.
   8457 
   8458 2020-01-27  Jonathan Wakely  <jwakely (a] redhat.com>
   8459 
   8460 	PR libstdc++/93426
   8461 	* include/std/span (span): Fix deduction guide.
   8462 	* testsuite/23_containers/span/deduction.cc: New test.
   8463 
   8464 2020-01-24  Jonathan Wakely  <jwakely (a] redhat.com>
   8465 
   8466 	* libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
   8467 	(__cmp_cat::_Ord::equivalent): Add enumerator.
   8468 	(__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
   8469 	and greater.
   8470 	(partial_ordering, weak_ordering, strong_ordering): Remove
   8471 	constructors taking __cmp_cat::_Eq parameters. Use renamed
   8472 	enumerators.
   8473 
   8474 2020-01-24  Maciej W. Rozycki  <macro (a] wdc.com>
   8475 
   8476 	* acinclude.m4: Handle `--with-toolexeclibdir='.
   8477 	* Makefile.in: Regenerate.
   8478 	* aclocal.m4: Regenerate.
   8479 	* configure: Regenerate.
   8480 	* doc/Makefile.in: Regenerate.
   8481 	* include/Makefile.in: Regenerate.
   8482 	* libsupc++/Makefile.in: Regenerate.
   8483 	* po/Makefile.in: Regenerate.
   8484 	* python/Makefile.in: Regenerate.
   8485 	* src/Makefile.in: Regenerate.
   8486 	* src/c++11/Makefile.in: Regenerate.
   8487 	* src/c++17/Makefile.in: Regenerate.
   8488 	* src/c++98/Makefile.in: Regenerate.
   8489 	* src/filesystem/Makefile.in: Regenerate.
   8490 	* testsuite/Makefile.in: Regenerate.
   8491 
   8492 2020-01-23  Alexandre Oliva <oliva (a] adacore.com>
   8493 
   8494 	* crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
   8495 	* configure: Rebuild.
   8496 
   8497 	* testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
   8498 
   8499 2020-01-23  Jonathan Wakely  <jwakely (a] redhat.com>
   8500 
   8501 	PR libstdc++/91947
   8502 	* include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
   8503 	rule.
   8504 	* include/Makefile.in: Regenerate.
   8505 
   8506 2020-01-20  Jonathan Wakely  <jwakely (a] redhat.com>
   8507 
   8508 	* doc/xml/faq.xml: Fix grammar.
   8509 	* doc/xml/manual/appendix_contributing.xml: Improve instructions.
   8510 	* doc/xml/manual/spine.xml: Update copyright years.
   8511 	* doc/html/*: Regenerate.
   8512 
   8513 2020-01-19  Eric S. Raymond <esr (a] thyrsus.com>
   8514 
   8515 	* doc/xml/faq.xml: Update for SVN -> Git transition.
   8516 	* doc/xml/manual/appendix_contributing.xml: Likewise.
   8517 	* doc/xml/manual/status_cxx1998.xml: Likewise.
   8518 	* doc/xml/manual/status_cxx2011.xml: Likewise.
   8519 	* doc/xml/manual/status_cxx2014.xml: Likewise.
   8520 	* doc/xml/manual/status_cxx2017.xml: Likewise.
   8521 	* doc/xml/manual/status_cxx2020.xml: Likewise.
   8522 	* doc/xml/manual/status_cxxtr1.xml: Likewise.
   8523 	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
   8524 
   8525 2020-01-18  Iain Sandoe  <iain (a] sandoe.co.uk>
   8526 
   8527 	* include/Makefile.am: Add coroutine to the std set.
   8528 	* include/Makefile.in: Regenerated.
   8529 	* include/std/coroutine: New file.
   8530 
   8531 2020-01-17  Jonathan Wakely  <jwakely (a] redhat.com>
   8532 
   8533 	PR libstdc++/92376
   8534 	* include/bits/c++config: Only do PSTL config when the header is
   8535 	present, to fix freestanding.
   8536 	* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
   8537 	functions if they were detected by configure.
   8538 
   8539 2020-01-16  Kai-Uwe Eckhardt  <kuehro (a] gmx.de>
   8540 	    Matthew Bauer  <mjbauer95 (a] gmail.com>
   8541 	    Jonathan Wakely  <jwakely (a] redhat.com>
   8542 
   8543 	PR bootstrap/64271 (partial)
   8544 	* config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
   8545 	to unsigned short.
   8546 	(ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
   8547 	(ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
   8548 	definitions with NetBSD upstream.
   8549 	(ctype_base::blank): Use _CTYPE_BL.
   8550 	* config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
   8551 	Declaration.
   8552 	(ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
   8553 	(ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
   8554 	parameters to unsigned char.
   8555 	* config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
   8556 
   8557 2020-01-16  Franois Dumont  <fdumont (a] gcc.gnu.org>
   8558 
   8559 	PR libstdc++/91263
   8560 	* include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
   8561 	* include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
   8562 	(_Equality_base): Remove.
   8563 	(_Equality<>::_M_equal): Review implementation. Use
   8564 	std::is_permutation.
   8565 	* testsuite/23_containers/unordered_multiset/operators/1.cc
   8566 	(Hash, Equal, test02, test03): New.
   8567 	* testsuite/23_containers/unordered_set/operators/1.cc
   8568 	(Hash, Equal, test02, test03): New.
   8569 
   8570 2020-01-15  Jonathan Wakely  <jwakely (a] redhat.com>
   8571 
   8572 	PR libstdc++/93267
   8573 	* include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
   8574 	Move here from <bits/range_access.h> and define using __int128 when
   8575 	available.
   8576 	(__is_integer_like, __is_signed_integer_like): Move here from
   8577 	<bits/range_access.h>.
   8578 	(weakly_incrementable): Use __is_signed_integer_like.
   8579 	* include/bits/range_access.h (__max_diff_type, __max_size_type)
   8580 	(__is_integer_like, __is_signed_integer_like): Move to
   8581 	<bits/iterator_concepts.h>.
   8582 	(__make_unsigned_like_t): Move here from <ranges>.
   8583 	* include/std/ranges (__make_unsigned_like_t): Move to
   8584 	<bits/range_access.h>.
   8585 	(iota_view): Replace using-directive with using-declarations.
   8586 	* testsuite/std/ranges/iota/93267.cc: New test.
   8587 	* testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
   8588 
   8589 2020-01-13  Jonathan Wakely  <jwakely (a] redhat.com>
   8590 
   8591 	PR libstdc++/93244
   8592 	* include/bits/fs_path.h (path::generic_string<C,A>)
   8593 	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
   8594 	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
   8595 	root-dir is converted to forward slash in generic pathname.
   8596 	* testsuite/27_io/filesystem/path/generic/utf.cc: New test.
   8597 	* testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
   8598 
   8599 	PR libstdc++/58605
   8600 	* include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
   8601 	Define.
   8602 	(__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
   8603 	(__atomic_float): Add default member initializer for C++20.
   8604 	* include/std/atomic (atomic): Likewise.
   8605 	(atomic::atomic()): Remove noexcept-specifier on default constructor.
   8606 	* include/std/version (__cpp_lib_atomic_value_initialization): Define.
   8607 	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
   8608 	number.
   8609 	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
   8610 	* testsuite/29_atomics/atomic/cons/value_init.cc: New test.
   8611 	* testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
   8612 	* testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
   8613 	expected result for is_trivially_default_constructible.
   8614 	* testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
   8615 	* testsuite/29_atomics/atomic_float/value_init.cc: New test.
   8616 	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
   8617 	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
   8618 	* testsuite/29_atomics/atomic_integral/cons/value_init.cc
   8619 	* testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
   8620 	expected results for is_trivially_default_constructible.
   8621 	* testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
   8622 	new test generator.
   8623 
   8624 2020-01-10  Jonathan Wakely  <jwakely (a] redhat.com>
   8625 
   8626 	* testsuite/util/testsuite_iterators.h: Improve comment.
   8627 
   8628 	* testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
   8629 	initialization syntax.
   8630 
   8631 	PR libstdc++/92285
   8632 	* include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
   8633 	of base class independent of __cplusplus value.
   8634 	[__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
   8635 	type defined in the base class
   8636 	* testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
   8637 	* testsuite/24_iterators/istreambuf_iterator/requirements/
   8638 	base_classes.cc: Adjust expected base class for C++98.
   8639 
   8640 2020-01-09  Olivier Hainque  <hainque (a] adacore.com>
   8641 
   8642 	* doc/xml/manual/appendix_contributing.xml: Document _C2
   8643 	as a reserved identifier, by VxWorks.
   8644 	* include/bits/stl_map.h: Rename _C2 template typenames	as _Cmp2.
   8645 	* include/bits/stl_multimap.h: Likewise.
   8646 
   8647 2020-01-09  Jonathan Wakely  <jwakely (a] redhat.com>
   8648 
   8649 	* include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
   8650 	(_ExtPtr_allocator::operator!=): Add missing const qualifiers.
   8651 	* include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
   8652 	partial specialization to disambiguate the two constrained
   8653 	specializations.
   8654 
   8655 	* include/experimental/type_traits (experimental::is_pod_v): Disable
   8656 	-Wdeprecated-declarations warnings around reference to std::is_pod.
   8657 	* include/std/type_traits (is_pod_v): Likewise.
   8658 	* testsuite/18_support/max_align_t/requirements/2.cc: Also check
   8659 	is_standard_layout and is_trivial. Do not check is_pod for C++20.
   8660 	* testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
   8661 	Add -Wno-deprecated for C++20.
   8662 	* testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
   8663 	* testsuite/20_util/is_pod/value.cc: Likewise.
   8664 	* testsuite/experimental/type_traits/value.cc: Likewise.
   8665 
   8666 2020-01-09  JeanHeyd "ThePhD" Meneide  <phdofthehouse (a] gmail.com>
   8667 
   8668 	* include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
   8669 	* include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
   8670 	* testuite/20_util/is_pod/deprecated-2a.cc: New test.
   8671 
   8672 2020-01-09  Jonathan Wakely  <jwakely (a] redhat.com>
   8673 
   8674 	PR libstdc++/93205
   8675 	* include/bits/random.h (operator>>): Check stream operation succeeds.
   8676 	* include/bits/random.tcc (operator<<): Remove redundant __ostream_type
   8677 	typedefs.
   8678 	(operator>>): Remove redundant __istream_type typedefs. Check stream
   8679 	operations succeed.
   8680 	(__extract_params): New function to fill a vector from a stream.
   8681 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
   8682 
   8683 	PR libstdc++/93208
   8684 	* config/abi/pre/gnu.ver: Add new exports.
   8685 	* include/std/memory_resource (memory_resource::~memory_resource()):
   8686 	Do not define inline.
   8687 	(monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
   8688 	* src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
   8689 	Define.
   8690 	(monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
   8691 	* testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
   8692 
   8693 2020-01-09  Franois Dumont  <fdumont (a] gcc.gnu.org>
   8694 
   8695 	PR libstdc++/92124
   8696 	* include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
   8697 	template alias.
   8698 	(_Hashtable<>::__fwd_value_for): New.
   8699 	(_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
   8700 	parameter.
   8701 	(_Hashtable<>::_M_assign<>): Add _Ht template parameter.
   8702 	(_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
   8703 	(_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
   8704 	with std::move.
   8705 	(_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
   8706 	(_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
   8707 	Adapt.
   8708 	(_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
   8709 	Adapt.
   8710 	* testsuite/23_containers/unordered_set/92124.cc: New.
   8711 
   8712 2020-01-08  Jonathan Wakely  <jwakely (a] redhat.com>
   8713 
   8714 	PR libstdc++/93201
   8715 	* src/c++17/fs_ops.cc (do_remove_all): New function implementing more
   8716 	detailed error reporting for remove_all. Check result of recursive
   8717 	call before incrementing iterator.
   8718 	(remove_all(const path&), remove_all(const path&, error_code&)): Use
   8719 	do_remove_all.
   8720 	* src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
   8721 	result of recursive call before incrementing iterator.
   8722 	* testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
   8723 	are reported correctly.
   8724 	* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
   8725 
   8726 2020-01-07  Thomas Rodgers  <trodgers (a] redhat.com>
   8727 
   8728 	* include/std/condition_variable
   8729 	(condition_variable_any::wait_on): Rename to match current draft
   8730 	standard.
   8731 	(condition_variable_any::wait_on_until): Likewise.
   8732 	(condition_variable_any::wait_on_for): Likewise.
   8733 	* testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
   8734 	Adjust tests to account for renamed methods.
   8735 
   8736 2020-01-07  Franois Dumont  <fdumont (a] gcc.gnu.org>
   8737 
   8738 	PR libstdc++/92124
   8739 	* include/bits/stl_tree.h
   8740 	(_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
   8741 	std::move_if_noexcept by std::move.
   8742 	* testsuite/23_containers/map/92124.cc: New.
   8743 	* testsuite/23_containers/set/92124.cc: New.
   8744 
   8745 2020-01-06  Jonathan Wakely  <jwakely (a] redhat.com>
   8746 
   8747 	* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
   8748 	(stop_source): Likewise (LWG 3362).
   8749 	* testsuite/30_threads/stop_token/stop_source.cc: Test equality
   8750 	comparisons.
   8751 
   8752 	* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
   8753 	(lexicographical_compare_three_way): Do not depend on
   8754 	__cpp_lib_concepts.
   8755 	* include/std/version (__cpp_lib_three_way_comparison): Only define
   8756 	when __cpp_lib_concepts is defined.
   8757 	* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
   8758 
   8759 2020-01-03  Jonathan Wakely  <jwakely (a] redhat.com>
   8760 
   8761 	* include/bits/stl_algobase.h (lexicographical_compare_three_way):
   8762 	Only define four-argument overload when __cpp_lib_concepts is defined.
   8763 
   8764 2020-01-01  John David Anglin  <danglin (a] gcc.gnu.org>
   8765 
   8766 	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
   8767 
   8768 2020-01-01  Jakub Jelinek  <jakub (a] redhat.com>
   8769 
   8770 	Update copyright years.
   8771 
   8773 Copyright (C) 2020 Free Software Foundation, Inc.
   8774 
   8775 Copying and distribution of this file, with or without modification,
   8776 are permitted in any medium without royalty provided the copyright
   8777 notice and this notice are preserved.
   8778