Home | History | Annotate | Line # | Download | only in libstdc++-v3
ChangeLog revision 1.1.1.22
      1 2023-07-07  Release Manager
      2 
      3 	* GCC 10.5.0 released.
      4 
      5 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
      6 
      7 	Backported from master:
      8 	2021-10-11  Jonathan Wakely  <jwakely (a] redhat.com>
      9 
     10 	* testsuite/18_support/numeric_limits/lowest.cc: Use
     11 	numeric_limits<T>::is_integer instead of is_integral<T>::value.
     12 
     13 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
     14 
     15 	Backported from master:
     16 	2023-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
     17 
     18 	* doc/xml/manual/evolution.xml: Document removal of implicit
     19 	allocator rebinding extensions in strict mode and for C++20.
     20 	* doc/html/*: Regenerate.
     21 
     22 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
     23 
     24 	Backported from master:
     25 	2022-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
     26 
     27 	PR libstdc++/108118
     28 	* include/bits/shared_ptr_base.h (weak_ptr::operator=):
     29 	Implement as move-and-swap exactly as specified in the standard.
     30 	* testsuite/20_util/weak_ptr/cons/self_move.cc: New test.
     31 
     32 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
     33 
     34 	Backported from master:
     35 	2020-06-17  Jonathan Wakely  <jwakely (a] redhat.com>
     36 
     37 	PR libstdc++/94540
     38 	* include/bits/stl_uninitialized.h (__uninitialized_default_1<true>):
     39 	Construct the first value at *__first instead of on the stack.
     40 	(__uninitialized_default_n_1<true>): Likewise.
     41 	Improve comments on several of the non-standard algorithms.
     42 	* testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc:
     43 	New test.
     44 	* testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc:
     45 	New test.
     46 	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
     47 	New test.
     48 	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
     49 	New test.
     50 	* testsuite/23_containers/vector/cons/94540.cc: New test.
     51 
     52 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
     53 
     54 	Backported from master:
     55 	2022-08-22  Jonathan Wakely  <jwakely (a] redhat.com>
     56 
     57 	PR libstdc++/106607
     58 	* include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
     59 	Use built-ins to check for integer overflow in back-reference
     60 	number.
     61 	* testsuite/28_regex/basic_regex/106607.cc: New test.
     62 
     63 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
     64 
     65 	Backported from master:
     66 	2021-09-28  Jonathan Wakely  <jwakely (a] redhat.com>
     67 
     68 	* include/bits/regex.h (basic_regex, swap): Add noexcept to
     69 	non-throwing functions.
     70 	* include/bits/regex_automaton.h (_State_base, _State)
     71 	(_NFA_base): Likewise.
     72 	* include/bits/regex_compiler.h (_Compiler): Likewise.
     73 	* include/bits/regex_error.h (regex_error::code()): Likewise.
     74 	* include/bits/regex_scanner.h (_Scanner): Likewise.
     75 
     76 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
     77 
     78 	Backported from master:
     79 	2021-12-14  Jonathan Wakely  <jwakely (a] redhat.com>
     80 
     81 	PR libstdc++/102447
     82 	* include/bits/regex_compiler.h (_Compiler::_BracketState): New
     83 	class.
     84 	(_Compiler::_BrackeyMatcher): New alias template.
     85 	(_Compiler::_M_expression_term): Change pair<bool, CharT>
     86 	parameter to _BracketState. Process first character for
     87 	ECMAScript syntax as well as POSIX.
     88 	* include/bits/regex_compiler.tcc
     89 	(_Compiler::_M_insert_bracket_matcher): Pass _BracketState.
     90 	(_Compiler::_M_expression_term): Use _BracketState to store
     91 	state between calls. Improve handling of dashes in ranges.
     92 	* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
     93 	Add more tests for ranges containing dashes. Check invalid
     94 	ranges with character class at the beginning.
     95 
     96 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
     97 
     98 	Backported from master:
     99 	2021-09-29  Jonathan Wakely  <jwakely (a] redhat.com>
    100 
    101 	* include/bits/regex_compiler.h (_Compiler::_S_validate): New
    102 	function.
    103 	* include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
    104 	_S_validate to check flags.
    105 	* include/bits/regex_error.h (_S_grammar): New error code for
    106 	internal use.
    107 	* testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
    108 
    109 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
    110 
    111 	Backported from master:
    112 	2021-09-28  Jonathan Wakely  <jwakely (a] redhat.com>
    113 
    114 	* include/bits/regex_compiler.tcc: Add line break in empty while
    115 	statement.
    116 	* include/bits/regex_executor.tcc: Avoid unused parameter
    117 	warning.
    118 
    119 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
    120 
    121 	Backported from master:
    122 	2021-12-13  Jonathan Wakely  <jwakely (a] redhat.com>
    123 
    124 	PR libstdc++/103664
    125 	* include/bits/regex.h (__regex_replace): Declare.
    126 	(regex_replace): Use it.
    127 	* include/bits/regex.tcc (__regex_replace): Replace regex_replace
    128 	definition with __regex_replace.
    129 	* testsuite/28_regex/algorithms/regex_replace/char/103664.cc: New test.
    130 
    131 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
    132 
    133 	Backported from master:
    134 	2021-09-29  Jonathan Wakely  <jwakely (a] redhat.com>
    135 
    136 	PR libstdc++/84110
    137 	* include/bits/regex_error.h (regex_constants::_S_null): New
    138 	error code for internal use.
    139 	* include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
    140 	Check for null character.
    141 	* testsuite/28_regex/basic_regex/84110.cc: New test.
    142 
    143 2023-06-23  Jonathan Wakely  <jwakely (a] redhat.com>
    144 
    145 	Backported from master:
    146 	2020-09-11  Jonathan Wakely  <jwakely (a] redhat.com>
    147 
    148 	* include/bits/regex_error.h (__throw_regex_error): Fix
    149 	parameter declaration and use reserved attribute names.
    150 
    151 2023-06-23  Christophe Lyon  <christophe.lyon (a] linaro.org>
    152 
    153 	Backported from master:
    154 	2020-09-11  Christophe Lyon  <christophe.lyon (a] linaro.org>
    155 
    156 	* include/bits/regex_error.h: Avoid warning with -fno-exceptions.
    157 
    158 2023-05-21  Iain Sandoe  <iain (a] sandoe.co.uk>
    159 
    160 	* include/bits/fs_path.h: Rename __null_terminated to __nul_terminated
    161 	to avoid colliding with a macro in Darwin system headers.
    162 
    163 2023-05-03  Jonathan Wakely  <jwakely (a] redhat.com>
    164 
    165 	PR libstdc++/105844
    166 	* include/std/numeric (lcm): Ensure out-of-range result is
    167 	detected in constant evaluation.
    168 	* testsuite/26_numerics/lcm/105844.cc: Adjust dg-error string.
    169 
    170 2023-05-03  Jonathan Wakely  <jwakely (a] redhat.com>
    171 
    172 	Backported from master:
    173 	2022-06-10  Jonathan Wakely  <jwakely (a] redhat.com>
    174 
    175 	PR libstdc++/105844
    176 	* include/experimental/numeric (experimental::gcd): Simplify
    177 	assertions. Use __abs_r instead of __absu.
    178 	(experimental::lcm): Likewise. Remove use of __detail::__lcm so
    179 	overflow can be detected.
    180 	* include/std/numeric (__detail::__absu): Rename to __abs_r and
    181 	change to allow signed result type, so overflow can be detected.
    182 	(__detail::__lcm): Remove.
    183 	(gcd): Simplify assertions. Use __abs_r instead of __absu.
    184 	(lcm): Likewise. Remove use of __detail::__lcm so overflow can
    185 	be detected.
    186 	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
    187 	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
    188 	* testsuite/26_numerics/gcd/105844.cc: New test.
    189 	* testsuite/26_numerics/lcm/105844.cc: New test.
    190 
    191 2023-05-03  Jonathan Wakely  <jwakely (a] redhat.com>
    192 
    193 	Backported from master:
    194 	2023-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
    195 
    196 	* doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
    197 	from header paths.
    198 
    199 2023-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
    200 
    201 	Backported from master:
    202 	2020-11-24  Jonathan Wakely  <jwakely (a] redhat.com>
    203 
    204 	PR libstdc++/67791
    205 	* src/c++11/thread.cc (thread::_M_start_thread(_State_ptr, void (*)())):
    206 	Check that gthreads is available before calling __gthread_create.
    207 
    208 2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    209 
    210 	Backported from master:
    211 	2023-04-04  Jonathan Wakely  <jwakely (a] redhat.com>
    212 
    213 	* doc/xml/manual/extensions.xml: Remove std::bad_exception from
    214 	example program.
    215 	* doc/html/manual/ext_demangling.html: Regenerate.
    216 
    217 2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    218 
    219 	Backported from master:
    220 	2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    221 
    222 	* doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
    223 	HTML docs.
    224 	* include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
    225 	from doxygen docs.
    226 	* include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
    227 	Likewise.
    228 	* include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
    229 	Likewise.
    230 	* include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
    231 	Likewise.
    232 	* include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
    233 	(_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
    234 	(_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
    235 	(_DEFINE_BINARY_OPERATOR): Likewise.
    236 
    237 2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    238 
    239 	Backported from master:
    240 	2022-10-28  Jonathan Wakely  <jwakely (a] redhat.com>
    241 
    242 	* include/bits/fs_path.h (path::filename()): Fix dangling
    243 	reference.
    244 
    245 2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    246 
    247 	PR libstdc++/109064
    248 	* python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
    249 	Remove self-recursion in __init__. Add missing _supports.
    250 	* testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
    251 	and unique().
    252 
    253 2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    254 
    255 	Backported from master:
    256 	2023-02-28  Jonathan Wakely  <jwakely (a] redhat.com>
    257 
    258 	PR libstdc++/108952
    259 	* include/std/memory (uses_allocator_construction_args):
    260 	Implement LWG 3527.
    261 	* testsuite/20_util/pair/astuple/get-2.cc: New test.
    262 	* testsuite/20_util/scoped_allocator/108952.cc: New test.
    263 	* testsuite/20_util/uses_allocator/lwg3527.cc: New test.
    264 
    265 2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    266 
    267 	Backported from master:
    268 	2023-02-16  Jonathan Wakely  <jwakely (a] redhat.com>
    269 
    270 	* include/experimental/optional: Fix header name in comment.
    271 
    272 2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    273 
    274 	Backported from master:
    275 	2022-07-20  Jonathan Wakely  <jwakely (a] redhat.com>
    276 
    277 	PR libstdc++/100823
    278 	* include/bits/stl_iterator.h (common_iterator): Define move
    279 	constructor and move assignment operator.
    280 	(common_iterator::_M_assign): New function implementing
    281 	assignment.
    282 	(common_iterator::operator=): Use _M_assign.
    283 	(common_iterator::_S_valueless): New constant.
    284 	* testsuite/24_iterators/common_iterator/100823.cc: New test.
    285 
    286 2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    287 
    288 	Backported from master:
    289 	2022-07-20  Jonathan Wakely  <jwakely (a] redhat.com>
    290 
    291 	* include/bits/stl_iterator.h (common_iterator): Fix incorrect
    292 	uses of is_nothrow_assignable_v. Fix inconsistent constraints on
    293 	friend declaration. Do not move argument in copy constructor.
    294 	* testsuite/24_iterators/common_iterator/1.cc: Check for
    295 	noexcept constructibnle/assignable.
    296 
    297 2023-04-27  Jonathan Wakely  <jwakely (a] redhat.com>
    298 
    299 	Backported from master:
    300 	2022-11-23  Jonathan Wakely  <jwakely (a] redhat.com>
    301 
    302 	PR libstdc++/107814
    303 	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
    304 	Use a static buffer with space after it.
    305 
    306 2023-03-16  Jonathan Wakely  <jwakely (a] redhat.com>
    307 
    308 	Backported from master:
    309 	2023-02-02  Jonathan Wakely  <jwakely (a] redhat.com>
    310 
    311 	PR libstdc++/108636
    312 	* include/bits/fs_path.h (path::path(string_view, _Type))
    313 	(path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
    314 	definitions to ...
    315 	* src/c++17/fs_path.cc: ... here.
    316 	* testsuite/27_io/filesystem/path/108636.cc: New test.
    317 
    318 2022-11-08  Jonathan Wakely  <jwakely (a] redhat.com>
    319 
    320 	Backported from master:
    321 	2022-11-08  Jonathan Wakely  <jwakely (a] redhat.com>
    322 
    323 	* doc/xml/authors.xml: Remove empty author element.
    324 	* doc/xml/manual/spine.xml: Likewise.
    325 	* doc/html/*: Regenerate.
    326 
    327 2022-08-03  Jonathan Wakely  <jwakely (a] redhat.com>
    328 
    329 	Backported from master:
    330 	2021-08-31  Jonathan Wakely  <jwakely (a] redhat.com>
    331 
    332 	PR libstdc++/98421
    333 	* include/std/span (span(Iter, size_type), span(Iter, Iter)):
    334 	Add valid range checks.
    335 	* testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
    336 	* testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
    337 
    338 2022-08-03  Jonathan Wakely  <jwakely (a] redhat.com>
    339 
    340 	* include/bits/list.tcc (list::merge) [!USE_CXX11_ABI]: Remove
    341 	call to size() and try-catch block.
    342 
    343 2022-08-03  Tim Adye  <Tim.Adye (a] cern.ch>
    344 
    345 	Backported from master:
    346 	2021-06-04  Tim Adye  <Tim.Adye (a] cern.ch>
    347 
    348 	* include/std/any (any::_Manager::_S_access): New static
    349 	function to access the contained value.
    350 	(any::emplace, __any_caster): Use _S_access member of the
    351 	manager type.
    352 
    353 2022-08-03  Jonathan Wakely  <jwakely (a] redhat.com>
    354 
    355 	Backported from master:
    356 	2021-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
    357 
    358 	* include/std/ranges (subrange(i, s, n)): Remove assertion.
    359 	* testsuite/std/ranges/subrange/constexpr.cc: New test.
    360 
    361 2022-08-03  Jonathan Wakely  <jwakely (a] redhat.com>
    362 
    363 	Backported from master:
    364 	2021-11-10  Jonathan Wakely  <jwakely (a] redhat.com>
    365 
    366 	PR libstdc++/100748
    367 	PR libstdc++/103133
    368 	* config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
    369 	Define for glibc 2.34 and later.
    370 
    371 2022-07-23  Jonathan Wakely  <jwakely (a] redhat.com>
    372 
    373 	Backported from master:
    374 	2022-07-01  Jonathan Wakely  <jwakely (a] redhat.com>
    375 
    376 	PR libstdc++/106162
    377 	* include/Makefile.am (largefile-config.h): Add
    378 	stamp-${host_alias} prerequisite.
    379 	* include/Makefile.in: Regenerate.
    380 
    381 2022-07-23  Jonathan Wakely  <jwakely (a] redhat.com>
    382 
    383 	Backported from master:
    384 	2021-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
    385 
    386 	* include/bits/range_access.h (begin(valarray), end(valarray)):
    387 	Add noexcept.
    388 
    389 2022-07-22  Patrick Palka  <ppalka (a] redhat.com>
    390 
    391 	Backported from master:
    392 	2022-07-22  Patrick Palka  <ppalka (a] redhat.com>
    393 
    394 	PR libstdc++/106320
    395 	* include/std/ranges (single_view): Relax constraints on
    396 	default constructor so as to preserve pre-P2325R3 behavior.
    397 	(filter_view): Likewise.
    398 	(transform_view): Likewise.
    399 	(take_while_view): Likewise.
    400 	(drop_while_view): Likewise.
    401 	* testsuite/std/ranges/adaptors/join.cc (test13): New test.
    402 	* testsuite/std/ranges/p2325.cc: Fix S to be only non default
    403 	constructible and not also non copy constructible.  XFAIL the
    404 	tests that verify a non default constructible functor makes a
    405 	view non default constructible (lines 94, 97 and 98).  XFAIL
    406 	the test that effectively verifies a non default constructible
    407 	element type makes single_view non default constructible (line
    408 	114).
    409 
    410 2022-06-28  Release Manager
    411 
    412 	* GCC 10.4.0 released.
    413 
    414 2022-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
    415 
    416 	Backported from master:
    417 	2022-06-13  Jonathan Wakely  <jwakely (a] redhat.com>
    418 
    419 	* include/std/atomic (__atomic_val_t): Use __type_identity_t
    420 	instead of atomic<T>::value_type, as per LWG 3220.
    421 	* testsuite/29_atomics/atomic/lwg3220.cc: New test.
    422 
    423 2022-06-15  Mark Mentovai  <mark (a] mentovai.com>
    424 
    425 	Backported from master:
    426 	2022-06-13  Mark Mentovai  <mark (a] mentovai.com>
    427 
    428 	* include/experimental/bits/fs_path.h (__detail::__null_terminated):
    429 	Rename to __nul_terminated to avoid colliding with a macro in
    430 	Apple's SDK.
    431 
    432 2022-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
    433 
    434 	Backported from master:
    435 	2022-05-06  Jonathan Wakely  <jwakely (a] redhat.com>
    436 
    437 	PR libstdc++/104731
    438 	* testsuite/27_io/filesystem/iterators/error_reporting.cc:
    439 	Use a trailing char array as storage for dirent::d_name.
    440 
    441 2022-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
    442 
    443 	Backported from master:
    444 	2022-02-02  Jonathan Wakely  <jwakely (a] redhat.com>
    445 
    446 	* testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
    447 	autoconf macro to check whether d_type is present.
    448 	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
    449 	Likewise.
    450 
    451 2022-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
    452 
    453 	Backported from master:
    454 	2022-02-01  Jonathan Wakely  <jwakely (a] redhat.com>
    455 
    456 	* src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
    457 	Reset state to past-the-end iterator on error.
    458 	(fs::recursive_directory_iterator::pop(error_code&)): Likewise.
    459 	(fs::recursive_directory_iterator::pop()): Check _M_dirs before
    460 	it might get reset.
    461 	* src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
    462 	for the TS implementation.
    463 	* testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
    464 	* testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
    465 
    466 2022-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
    467 
    468 	* testsuite/23_containers/map/allocator/move_cons.cc: New test.
    469 	* testsuite/23_containers/multimap/allocator/move_cons.cc: New test.
    470 	* testsuite/23_containers/multiset/allocator/move_cons.cc: New test.
    471 	* testsuite/23_containers/set/allocator/move_cons.cc: New test.
    472 
    473 2022-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
    474 
    475 	Backported from master:
    476 	2021-12-01  Jonathan Wakely  <jwakely (a] redhat.com>
    477 
    478 	PR libstdc++/103501
    479 	* include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&, false_type)):
    480 	Clear container if elements have been moved-from.
    481 	* testsuite/23_containers/multiset/allocator/103501.cc: New test.
    482 	* testsuite/23_containers/set/allocator/103501.cc: New test.
    483 
    484 2022-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
    485 
    486 	PR libstdc++/97944
    487 	* testsuite/30_threads/jthread/95989.cc: Mark XFAIL.
    488 
    489 2022-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
    490 
    491 	Backported from master:
    492 	2020-11-24  Jonathan Wakely  <jwakely (a] redhat.com>
    493 
    494 	* testsuite/30_threads/jthread/95989.cc: Run all three test
    495 	functions, not just the first one twice.
    496 
    497 2022-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
    498 
    499 	Backported from master:
    500 	2022-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
    501 
    502 	PR libstdc++/99290
    503 	* src/c++17/fs_ops.cc (fs::copy): Pass error_code to
    504 	directory_iterator constructor, and check on each iteration.
    505 	* src/filesystem/ops.cc (fs::copy): Likewise.
    506 	* testsuite/27_io/filesystem/operations/copy.cc: Check for
    507 	errors during recursion.
    508 	* testsuite/experimental/filesystem/operations/copy.cc:
    509 	Likewise.
    510 
    511 2022-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
    512 
    513 	Backported from master:
    514 	2021-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
    515 
    516 	* testsuite/lib/gdb-test.exp: Add target selector support to the
    517 	dg-final directives.
    518 	* testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
    519 	C++20.
    520 	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
    521 	* testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
    522 	comment.
    523 
    524 2022-06-10  Jonathan Wakely  <jwakely (a] redhat.com>
    525 
    526 	Backported from master:
    527 	2022-06-10  Jonathan Wakely  <jwakely (a] redhat.com>
    528 
    529 	PR libstdc++/105915
    530 	* include/experimental/bits/fs_path.h (path::begin, path::end):
    531 	Remove noexcept from declarations.
    532 
    533 2022-05-31  Patrick Palka  <ppalka (a] redhat.com>
    534 
    535 	Backported from master:
    536 	2021-07-16  Patrick Palka  <ppalka (a] redhat.com>
    537 
    538 	PR libstdc++/103904
    539 	PR libstdc++/101231
    540 	* include/std/ranges (_CachedPosition::_M_get): For non-forward
    541 	ranges, just call __builtin_unreachable.
    542 	* testsuite/std/ranges/istream_view.cc (test05): New test.
    543 
    544 2022-05-31  Patrick Palka  <ppalka (a] redhat.com>
    545 
    546 	Backported from master:
    547 	2021-06-18  Patrick Palka  <ppalka (a] redhat.com>
    548 
    549 	PR libstdc++/103904
    550 	* include/bits/iterator_concepts.h (weakly_incrementable): Remove
    551 	default_initializable requirement.
    552 	* include/bits/stl_iterator.h (common_iterator): Constrain the
    553 	default ctor.
    554 	(counted_iterator): Likewise.
    555 	* include/std/ranges (ranges::view): Remove default_initializable
    556 	requirement.
    557 	(subrange): Constrain the default ctor.
    558 	(__detail::__box::operator=): Handle self-assignment.
    559 	(single_view): Constraint the default ctor.
    560 	(iota_view): Relax semiregular constraint to copyable.
    561 	Constrain the default ctor.
    562 	(iota_view::_Iterator): Constraint the default ctor.
    563 	(filter_view): Likewise.
    564 	(filter_view::_Iterator): Likewise.
    565 	(transform_view): Likewise.
    566 	(transform_view::_Iterator): Likewise.
    567 	(take_view): Likewise.
    568 	(take_view::_Iterator): Likewise.
    569 	(take_while_view): Likewise.
    570 	(take_while_view::_Iterator): Likewise.
    571 	(drop_while_view): Likewise.
    572 	(drop_while_view::_Iterator): Likewise.
    573 	(join_view): Likewise.
    574 	(split_view): Constrain the default ctor.
    575 	(common_view): Likewise.
    576 	(reverse_view): Likewise.
    577 	(elements_view): Likewise.
    578 	(elements_view::_Iterator): Likewise.
    579 	* include/std/span (enable_view<span<_ElementType, _Extent>>):
    580 	Define this partial specialization to true unconditionally.
    581 	* testsuite/std/ranges/p2325.cc: New test.
    582 	* testsuite/std/ranges/single_view.cc (test06): New test.
    583 	* testsuite/std/ranges/view.cc: Adjust now that view doesn't
    584 	require default_initializable.
    585 
    586 2022-05-29  Iain Sandoe  <iain (a] sandoe.co.uk>
    587 
    588 	Backported from master:
    589 	2021-03-15  Iain Sandoe  <iain (a] sandoe.co.uk>
    590 
    591 	* testsuite/17_intro/names.cc: Exclude j from the list
    592 	of test symbols for Darwin.
    593 
    594 2022-05-29  Iain Sandoe  <iain (a] sandoe.co.uk>
    595 
    596 	Backported from master:
    597 	2021-11-19  Iain Sandoe  <iain (a] sandoe.co.uk>
    598 
    599 	* testsuite/lib/prune.exp: Prune dsymutil (ld64) warning.
    600 
    601 2022-05-16  Jonathan Wakely  <jwakely (a] redhat.com>
    602 
    603 	Backported from master:
    604 	2022-05-16  Jonathan Wakely  <jwakely (a] redhat.com>
    605 
    606 	* doc/xml/manual/prerequisites.xml: Fix attributes for external
    607 	hyperlink.
    608 	* doc/html/manual/setup.html: Regenerate.
    609 
    610 2022-05-16  Jonathan Wakely  <jwakely (a] redhat.com>
    611 
    612 	Backported from master:
    613 	2022-05-16  Jonathan Wakely  <jwakely (a] redhat.com>
    614 
    615 	* doc/html/manual/status.html: Regenerate.
    616 	* doc/xml/manual/status_cxx2020.xml: Fix supported version for
    617 	C++20 bit operations.
    618 
    619 2022-05-09  Jonathan Wakely  <jwakely (a] redhat.com>
    620 
    621 	Backported from master:
    622 	2022-04-20  Jonathan Wakely  <jwakely (a] redhat.com>
    623 
    624 	PR libstdc++/93602
    625 	* doc/xml/manual/prerequisites.xml: Document libiconv
    626 	workarounds.
    627 	* doc/html/manual/setup.html: Regenerate.
    628 	* src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
    629 	* src/Makefile.in: Regenerate.
    630 
    631 2022-05-09  Jonathan Wakely  <jwakely (a] redhat.com>
    632 
    633 	Backported from master:
    634 	2022-05-06  Jonathan Wakely  <jwakely (a] redhat.com>
    635 
    636 	PR libstdc++/105502
    637 	* include/bits/random.tcc
    638 	(operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
    639 	Update state when __state_avail is false.
    640 	* testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
    641 	Check that deserialized object equals serialized one.
    642 
    643 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    644 
    645 	Backported from master:
    646 	2021-12-09  Jonathan Wakely  <jwakely (a] redhat.com>
    647 
    648 	* include/bits/stl_iterator.h (operator==, operator<=>): Define
    649 	overloads for homogeneous specializations of reverse_iterator,
    650 	__normal_iterator and move_iterator.
    651 
    652 2022-04-26  Patrick Palka  <ppalka (a] redhat.com>
    653 
    654 	Backported from master:
    655 	2021-10-21  Patrick Palka  <ppalka (a] redhat.com>
    656 
    657 	* include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
    658 	Make fully constexpr as per LWG 3595.
    659 	(common_iterator::__postfix_proxy): Likewise.
    660 
    661 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    662 
    663 	Backported from master:
    664 	2022-01-18  Jonathan Wakely  <jwakely (a] redhat.com>
    665 
    666 	PR libstdc++/104098
    667 	* include/bits/stl_iterator.h (reverse_iterator): Check
    668 	__cpp_lib_concepts instead of __cplusplus.
    669 
    670 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    671 
    672 	Backported from master:
    673 	2021-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
    674 
    675 	* include/bits/range_access.h (ranges::empty): Check whether
    676 	conversion to bool can throw.
    677 	* testsuite/std/ranges/access/empty.cc: Check for correct
    678 	noexcept-specifier.
    679 
    680 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    681 
    682 	PR libstdc++/102048
    683 	* include/ext/rope (rope::erase(size_type)): Deprecate broken
    684 	function.
    685 
    686 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    687 
    688 	Backported from master:
    689 	2021-10-01  Jonathan Wakely  <jwakely (a] redhat.com>
    690 
    691 	PR libstdc++/100153
    692 	* include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
    693 	When size() is zero just deallocate and reset.
    694 
    695 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    696 
    697 	Backported from master:
    698 	2021-11-01  Jonathan Wakely  <jwakely (a] redhat.com>
    699 
    700 	* include/std/span (span(Range&&)): Reorder constraints.
    701 
    702 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    703 
    704 	Backported from master:
    705 	2021-11-09  Jonathan Wakely  <jwakely (a] redhat.com>
    706 
    707 	* testsuite/26_numerics/random/random_device/cons/token.cc:
    708 	Retry if random devices produce the same value.
    709 
    710 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    711 
    712 	Backported from master:
    713 	2021-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
    714 
    715 	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
    716 	Fix reads past the end of strings.
    717 	* testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
    718 	Likewise.
    719 	* testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
    720 	Likewise.
    721 
    722 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    723 
    724 	Backported from master:
    725 	2021-11-10  Jonathan Wakely  <jwakely (a] redhat.com>
    726 
    727 	PR libstdc++/100117
    728 	* testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list
    729 	all C++ headers instead of including <bits/stdc++.h>
    730 
    731 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    732 
    733 	Backported from master:
    734 	2021-12-09  Jonathan Wakely  <jwakely (a] redhat.com>
    735 
    736 	PR libstdc++/103630
    737 	* libsupc++/exception_ptr.h (make_exception_ptr): Decay the
    738 	template parameter. Use typeid of the static type.
    739 	* testsuite/18_support/exception_ptr/103630.cc: New test.
    740 
    741 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    742 
    743 	Backported from master:
    744 	2022-01-17  Jonathan Wakely  <jwakely (a] redhat.com>
    745 
    746 	PR libstdc++/103650
    747 	* include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
    748 	* include/Makefile.in: Regenerate.
    749 	* testsuite/17_intro/headers/c++1998/103650.cc: New test.
    750 
    751 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    752 
    753 	Backported from master:
    754 	2022-02-04  Jonathan Wakely  <jwakely (a] redhat.com>
    755 
    756 	* include/experimental/bits/fs_ops.h (fs::copy_file): Remove
    757 	noexcept.
    758 	(fs::create_directories): Likewise.
    759 	(fs::remove_all): Likewise.
    760 	* src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
    761 	(fs::create_directories): Likewise.
    762 	(fs::remove_all): Likewise.
    763 
    764 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    765 
    766 	Backported from master:
    767 	2022-04-01  Jonathan Wakely  <jwakely (a] redhat.com>
    768 
    769 	* include/experimental/bits/fs_fwd.h (copy_file): Remove
    770 	incorrect noexcept from declaration.
    771 	* include/experimental/bits/fs_path.h (path::begin, path::end):
    772 	Add noexcept to declarations, to match definitions.
    773 
    774 2022-04-26  Timm Bder  <tbaeder (a] redhat.com>
    775 
    776 	Backported from master:
    777 	2022-04-01  Timm Bder  <tbaeder (a] redhat.com>
    778 
    779 	* include/bits/fs_ops.h: Fix filename in Doxygen comment.
    780 	* include/experimental/bits/fs_ops.h: Likewise.
    781 
    782 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    783 
    784 	Backported from master:
    785 	2022-04-20  Jonathan Wakely  <jwakely (a] redhat.com>
    786 
    787 	* testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
    788 	Check correct feature test macro.
    789 
    790 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    791 
    792 	Backported from master:
    793 	2022-04-14  Jonathan Wakely  <jwakely (a] redhat.com>
    794 
    795 	* doc/xml/manual/intro.xml: Fix comment.
    796 
    797 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    798 
    799 	Backported from master:
    800 	2022-03-03  Jonathan Wakely  <jwakely (a] redhat.com>
    801 
    802 	* testsuite/17_intro/names.cc (func): Undef on AIX.
    803 
    804 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    805 
    806 	Backported from master:
    807 	2022-01-27  Jonathan Wakely  <jwakely (a] redhat.com>
    808 
    809 	* include/bits/range_access.h (ranges::advance): Avoid signed
    810 	overflow. Do nothing if already equal to desired result.
    811 	* testsuite/24_iterators/range_operations/advance_overflow.cc:
    812 	New test.
    813 
    814 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    815 
    816 	Backported from master:
    817 	2022-01-06  Jonathan Wakely  <jwakely (a] redhat.com>
    818 
    819 	* testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
    820 
    821 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    822 
    823 	Backported from master:
    824 	2022-01-06  Jonathan Wakely  <jwakely (a] redhat.com>
    825 
    826 	PR libstdc++/103911
    827 	* include/std/charconv (__from_chars_alpha_to_num): Return
    828 	char instead of unsigned char. Change invalid return value to
    829 	127 instead of using numeric trait.
    830 	(__from_chars_alnum): Fix comment. Do not use std::isdigit.
    831 	Change type of variable to char.
    832 
    833 2022-04-26  Pavel I. Kryukov  <pavel.kryukov (a] phystech.edu>
    834 
    835 	Backported from master:
    836 	2022-01-06  Pavel I. Kryukov  <pavel.kryukov (a] phystech.edu>
    837 		    Jonathan Wakely  <jwakely (a] redhat.com>
    838 
    839 	PR libstdc++/103853
    840 	* include/bits/forward_list.tcc (forward_list::merge): Check for
    841 	self-merge.
    842 	* testsuite/23_containers/forward_list/operations/merge.cc: New test.
    843 
    844 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    845 
    846 	Backported from master:
    847 	2021-12-14  Jonathan Wakely  <jwakely (a] redhat.com>
    848 
    849 	* include/bits/regex_compiler.tcc (_Compiler::_M_match_token):
    850 	Use reserved name for parameter.
    851 	* testsuite/17_intro/names.cc: Check "token".
    852 
    853 2022-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
    854 
    855 	Backported from master:
    856 	2021-08-25  Jonathan Wakely  <jwakely (a] redhat.com>
    857 
    858 	* testsuite/17_intro/names.cc: Check 'sz'.
    859 
    860 2022-04-14  Jonathan Wakely  <jwakely (a] redhat.com>
    861 
    862 	* doc/xml/manual/status_cxx1998.xml: Refer to GCC 10 not
    863 	mainline.
    864 	* doc/xml/manual/status_cxx2011.xml: Likewise.
    865 	* doc/xml/manual/status_cxx2014.xml: Likewise.
    866 	* doc/xml/manual/status_cxx2017.xml: Likewise.
    867 	* doc/xml/manual/status_cxx2020.xml: Likewise.
    868 	* doc/xml/manual/status_cxxtr1.xml: Likewise.
    869 	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
    870 	* doc/html/manual/status.html: Regenerate.
    871 
    872 2022-02-17  Patrick Palka  <ppalka (a] redhat.com>
    873 
    874 	Backported from master:
    875 	2021-10-21  Patrick Palka  <ppalka (a] redhat.com>
    876 
    877 	PR libstdc++/102358
    878 	* include/bits/stl_iterator.h (__niter_base): Make constexpr
    879 	for C++20.
    880 	(__miter_base): Likewise.
    881 	* testsuite/25_algorithms/move/constexpr.cc: New test.
    882 
    883 2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    884 
    885 	Backported from master:
    886 	2021-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
    887 
    888 	* include/bits/char_traits.h (__gnu_cxx::char_traits::move):
    889 	Do not compare unrelated pointers during constant evaluation.
    890 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
    891 	Improve tests for char_traits::move.
    892 
    893 2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    894 
    895 	Backported from master:
    896 	2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    897 
    898 	PR libstdc++/103877
    899 	* doc/xml/faq.xml: Add '-x c++' to preprocessor command.
    900 	* doc/html/faq.html: Regenerate.
    901 
    902 2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    903 
    904 	Backported from master:
    905 	2021-12-04  Jonathan Wakely  <jwakely (a] redhat.com>
    906 
    907 	PR libstdc++/103549
    908 	* include/bits/regex.h (match_results): Give names to template
    909 	parameters in first declaration.
    910 	(match_results::_M_begin): Add default member-initializer.
    911 
    912 2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    913 
    914 	Backported from master:
    915 	2021-11-30  Jonathan Wakely  <jwakely (a] redhat.com>
    916 
    917 	PR libstdc++/103453
    918 	* config/allocator/malloc_allocator_base.h
    919 	(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define for Clang.
    920 	* config/allocator/new_allocator_base.h
    921 	(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Likewise.
    922 
    923 2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    924 
    925 	Backported from master:
    926 	2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    927 
    928 	* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
    929 	versioned namespace from the type name that is printed.
    930 
    931 2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    932 
    933 	Backported from master:
    934 	2021-08-28  Jonathan Wakely  <jwakely (a] redhat.com>
    935 
    936 	* include/bits/alloc_traits.h (allocator_traits): Add explicit
    937 	specialization for allocator<void>. Improve doxygen comments.
    938 	* include/bits/allocator.h (allocator<void>): Restore for the
    939 	versioned namespace.
    940 	(allocator<void>::construct, allocator<void>::destroy): Remove.
    941 	* include/ext/extptr_allocator.h (_Extptr_allocator<void>):
    942 	Add default constructor and converting constructor.
    943 
    944 2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    945 
    946 	Backported from master:
    947 	2021-11-23  Jonathan Wakely  <jwakely (a] redhat.com>
    948 
    949 	PR libstdc++/103086
    950 	* testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr
    951 	with non-empty pointer and non-empty deleter.
    952 
    953 2022-01-05  Jonathan Wakely  <jwakely (a] redhat.com>
    954 
    955 	Backported from master:
    956 	2021-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
    957 
    958 	PR libstdc++/103086
    959 	* python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
    960 	for accessing the tuple element stored in a _Tuple_impl node.
    961 	(tuple_get): New function for accessing a tuple element.
    962 	(unique_ptr_get): New function for accessing a unique_ptr.
    963 	(UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
    964 	* python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
    965 	tuple to its base class before accessing _M_head_impl.
    966 
    967 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    968 
    969 	Backported from master:
    970 	2021-07-22  Jonathan Wakely  <jwakely (a] redhat.com>
    971 
    972 	PR libstdc++/101571
    973 	* include/bits/ranges_uninitialized.h (_DestroyGuard): Change
    974 	constructor parameter to reference and use addressof.
    975 	* testsuite/util/testsuite_iterators.h: Define deleted operator&
    976 	overloads for test iterators.
    977 
    978 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    979 
    980 	Backported from master:
    981 	2021-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
    982 
    983 	PR libstdc++/101965
    984 	* include/std/charconv (__to_chars_i): Remove redundant check.
    985 
    986 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    987 
    988 	Backported from master:
    989 	2021-10-22  Jonathan Wakely  <jwakely (a] redhat.com>
    990 
    991 	PR libstdc++/102894
    992 	* include/std/any (make_any): Add SFINAE constraint.
    993 	* testsuite/20_util/any/102894.cc: New test.
    994 
    995 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    996 
    997 	PR libstdc++/102270
    998 	* include/std/tuple (_Head_base, _Tuple_impl): Add
    999 	_GLIBCXX20_CONSTEXPR to allocator-extended constructors.
   1000 	(tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
   1001 	* testsuite/20_util/tuple/cons/102270.cc: New test.
   1002 	* testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
   1003 	constexpr to constructor so it can be used for C++20 tests.
   1004 
   1005 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1006 
   1007 	Backported from master:
   1008 	2021-08-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1009 
   1010 	* testsuite/23_containers/unordered_map/cons/default.cc: Add
   1011 	equality comparison operators to allocator.
   1012 	* testsuite/23_containers/unordered_set/cons/default.cc:
   1013 	Likewise.
   1014 
   1015 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1016 
   1017 	Backported from master:
   1018 	2021-07-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1019 
   1020 	PR libstdc++/100863
   1021 	* include/bits/hashtable.h (_Hashtable): Conditionally delete
   1022 	default constructor by deriving from _Enable_default_constructor.
   1023 	Construct that base-class explicitly in all non-forwarding,
   1024 	non-defaulted constructors.
   1025 	* testsuite/23_containers/unordered_map/cons/default.cc: New test.
   1026 	* testsuite/23_containers/unordered_set/cons/default.cc: New test.
   1027 
   1028 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1029 
   1030 	Backported from master:
   1031 	2021-06-02  Jonathan Wakely  <jwakely (a] redhat.com>
   1032 
   1033 	PR libstdc++/100863
   1034 	PR libstdc++/65816
   1035 	* include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
   1036 	Value-initialize subobject.
   1037 	* testsuite/23_containers/unordered_map/allocator/default_init.cc:
   1038 	Remove XFAIL.
   1039 	* testsuite/23_containers/unordered_set/allocator/default_init.cc:
   1040 	Remove XFAIL.
   1041 
   1042 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1043 
   1044 	Backported from master:
   1045 	2021-09-28  Jonathan Wakely  <jwakely (a] redhat.com>
   1046 
   1047 	* include/bits/move.h (forward(remove_reference_t<T>&&)):
   1048 	Improve text of static_assert.
   1049 	* testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
   1050 	* testsuite/20_util/forward/f_neg.cc: Likewise.
   1051 
   1052 2021-11-26  Antony Polukhin  <antoshkka (a] gmail.com>
   1053 
   1054 	Backported from master:
   1055 	2021-08-17  Antony Polukhin  <antoshkka (a] gmail.com>
   1056 		    Jonathan Wakely  <jwakely (a] redhat.com>
   1057 
   1058 	* include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
   1059 	if distance is O(1).
   1060 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
   1061 	line number.
   1062 
   1063 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1064 
   1065 	Backported from master:
   1066 	2021-08-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1067 
   1068 	PR libstdc++/101870
   1069 	* include/c_global/cmath (hypot): Use __promoted_t.
   1070 	(lerp): Add new overload accepting any arithmetic types.
   1071 	* include/ext/type_traits.h (__promoted_t): New alias template.
   1072 	* testsuite/26_numerics/lerp.cc: Moved to...
   1073 	* testsuite/26_numerics/lerp/1.cc: ...here.
   1074 	* testsuite/26_numerics/lerp/constexpr.cc: New test.
   1075 	* testsuite/26_numerics/lerp/version.cc: New test.
   1076 
   1077 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1078 
   1079 	* testsuite/27_io/types/1.cc: Add c++11 target selector to
   1080 	warnings.
   1081 
   1082 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1083 
   1084 	Backported from master:
   1085 	2021-05-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1086 
   1087 	* testsuite/20_util/headers/memory/synopsis.cc: Define C++98
   1088 	alternative for macro.
   1089 	* testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
   1090 	target keyword.
   1091 	* testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
   1092 	syntax.
   1093 
   1094 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1095 
   1096 	* testsuite/23_containers/array/comparison_operators/96851.cc:
   1097 	Skip test in debug mode.
   1098 
   1099 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1100 
   1101 	* include/bits/stl_iterator.h: Include required header for
   1102 	std::iterator class template and iterator category tags.
   1103 
   1104 2021-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1105 
   1106 	Backported from master:
   1107 	2021-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
   1108 
   1109 	PR libstdc++/101608
   1110 	* include/bits/ranges_algobase.h (__fill_n_fn): Check for
   1111 	constant evaluation before using memset.
   1112 	* testsuite/25_algorithms/fill_n/constrained.cc: Check
   1113 	byte-sized values as well.
   1114 
   1115 2021-11-23  Jonathan Wakely  <jwakely (a] redhat.com>
   1116 
   1117 	Backported from master:
   1118 	2021-11-23  Jonathan Wakely  <jwakely (a] redhat.com>
   1119 
   1120 	PR libstdc++/103381
   1121 	* include/ext/bitmap_allocator.h: Include <bits/stl_function.h>
   1122 	instead of <functional>.
   1123 
   1124 2021-11-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1125 
   1126 	* include/std/valarray (begin, end): Remove nodiscard attribute.
   1127 
   1128 2021-11-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1129 
   1130 	Backported from master:
   1131 	2021-11-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1132 
   1133 	PR libstdc++/103022
   1134 	* include/std/valarray (begin, end): Do not dereference an empty
   1135 	valarray. Add noexcept and [[nodiscard]].
   1136 	* testsuite/26_numerics/valarray/range_access.cc: Check empty
   1137 	valarray. Check iterator properties. Run as well as compiling.
   1138 	* testsuite/26_numerics/valarray/range_access2.cc: Likewise.
   1139 	* testsuite/26_numerics/valarray/103022.cc: New test.
   1140 
   1141 2021-10-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1142 
   1143 	Backported from master:
   1144 	2021-10-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1145 
   1146 	* testsuite/28_regex/match_results/102667.C: Moved to...
   1147 	* testsuite/28_regex/match_results/102667.cc: ...here.
   1148 
   1149 2021-10-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1150 
   1151 	* testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
   1152 	Use -std=gnu++17 option.
   1153 
   1154 2021-10-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1155 
   1156 	Backported from master:
   1157 	2021-08-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1158 
   1159 	PR libstdc++/90787
   1160 	* testsuite/27_io/filesystem/iterators/directory_iterator.cc:
   1161 	Use new __gnu_test::permissions_are_testable() function.
   1162 	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
   1163 	Likewise.
   1164 	* testsuite/27_io/filesystem/operations/exists.cc: Likewise.
   1165 	* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
   1166 	* testsuite/27_io/filesystem/operations/remove.cc: Likewise.
   1167 	* testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
   1168 	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
   1169 	* testsuite/27_io/filesystem/operations/symlink_status.cc:
   1170 	Likewise.
   1171 	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
   1172 	Likewise.
   1173 	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
   1174 	Likewise.
   1175 	* testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
   1176 	Likewise.
   1177 	* testsuite/experimental/filesystem/operations/exists.cc:
   1178 	Likewise.
   1179 	* testsuite/experimental/filesystem/operations/is_empty.cc:
   1180 	Likewise.
   1181 	* testsuite/experimental/filesystem/operations/remove.cc:
   1182 	Likewise.
   1183 	* testsuite/experimental/filesystem/operations/remove_all.cc:
   1184 	Likewise.
   1185 	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
   1186 	Likewise.
   1187 	* testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
   1188 	New function to guess whether testing permissions will work.
   1189 
   1190 2021-10-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1191 
   1192 	* testsuite/27_io/filesystem/operations/remove_all.cc: Remove
   1193 	test directory after making it writable again.
   1194 	* testsuite/experimental/filesystem/operations/remove_all.cc:
   1195 	Likewise.
   1196 
   1197 2021-10-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1198 
   1199 	Backported from master:
   1200 	2021-06-22  Jonathan Wakely  <jwakely (a] redhat.com>
   1201 
   1202 	* include/bits/random.h (seed_seq): Constrain initializer-list
   1203 	constructor.
   1204 	* include/bits/random.tcc (seed_seq): Add template parameter.
   1205 	* testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
   1206 	for noexcept.
   1207 	* testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
   1208 	constraints.
   1209 
   1210 2021-10-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1211 
   1212 	Backported from master:
   1213 	2021-05-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1214 
   1215 	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
   1216 	Increase dg-timeout-factor to 4. Fix -Wunused-parameter
   1217 	warnings. Replace bitwise AND with logical AND in loop
   1218 	condition.
   1219 	* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
   1220 	Replace bitwise AND with logical AND in loop condition.
   1221 	* testsuite/util/pstl/test_utils.h: Remove unused parameter
   1222 	names.
   1223 
   1224 2021-10-13  Patrick Palka  <ppalka (a] redhat.com>
   1225 
   1226 	Backported from master:
   1227 	2021-04-28  Patrick Palka  <ppalka (a] redhat.com>
   1228 
   1229 	PR libstdc++/100187
   1230 	PR libstdc++/100237
   1231 	PR libstdc++/100249
   1232 	PR libstdc++/100287
   1233 	* include/bits/ranges_algo.h (__search_n_fn::operator()): Give
   1234 	the __value_comp lambda an explicit bool return type.
   1235 	(__is_permutation_fn::operator()): Give the __proj_scan local
   1236 	variable auto&& return type.  Give the __comp_scan lambda an
   1237 	explicit bool return type.
   1238 	(__remove_fn::operator()): Give the __pred lambda an explicit
   1239 	bool return type.
   1240 	(__partition_fn::operator()): Don't std::move __first twice
   1241 	when returning an empty subrange.
   1242 	(__min_fn::operator()): Don't std::move __comp.
   1243 	(__max_fn::operator()): Likewise.
   1244 	(__minmax_fn::operator()): Likewise.
   1245 
   1246 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1247 
   1248 	Backported from master:
   1249 	2021-08-02  Patrick Palka  <ppalka (a] redhat.com>
   1250 
   1251 	PR libstdc++/101599
   1252 	* include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
   1253 	Add missing std::move in return statement.
   1254 	(__partition_copy_fn::operator()): Rename templtae parameter
   1255 	_O2 to _Out2.  Uglify function parameters out_true and out_false.
   1256 	* include/bits/ranges_algobase.h (__copy_or_move): Add missing
   1257 	std::move to recursive call that unwraps a __normal_iterator
   1258 	output iterator.
   1259 	* testsuite/25_algorithms/copy/constrained.cc (test06): New test.
   1260 	* testsuite/25_algorithms/move/constrained.cc (test05): New test.
   1261 
   1262 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1263 
   1264 	Backported from master:
   1265 	2021-08-02  Patrick Palka  <ppalka (a] redhat.com>
   1266 
   1267 	PR libstdc++/101589
   1268 	* include/std/ranges (lazy_split_view::_InnerIter::base): Make
   1269 	the const& overload unconstrained and return a const reference
   1270 	as per LWG 3533.  Make unconditionally noexcept.
   1271 	(elements_view::base): Revert accidental r12-569 change.
   1272 	(elements_view::_Iterator::base): Make the const& overload
   1273 	unconstrained and return a const reference as per LWG 3533.
   1274 	Make unconditionally noexcept.
   1275 
   1276 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1277 
   1278 	Backported from master:
   1279 	2021-08-02  Patrick Palka  <ppalka (a] redhat.com>
   1280 
   1281 	PR libstdc++/101483
   1282 	* include/std/ranges (join_view::_Iterator::_Iterator): Add
   1283 	missing std::move.
   1284 
   1285 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1286 
   1287 	Backported from master:
   1288 	2021-06-20  Patrick Palka  <ppalka (a] redhat.com>
   1289 
   1290 	* include/std/ranges (split_view::_InnerIter::base): Define as
   1291 	per P2210.
   1292 
   1293 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1294 
   1295 	Backported from master:
   1296 	2021-06-19  Patrick Palka  <ppalka (a] redhat.com>
   1297 
   1298 	* include/std/ranges (transform_view::_Iterator::_S_iter_concept):
   1299 	Consider _Base instead of _Vp as per LWG 3555.
   1300 	(elements_view::_Iterator::_S_iter_concept): Likewise.
   1301 
   1302 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1303 
   1304 	Backported from master:
   1305 	2021-06-19  Patrick Palka  <ppalka (a] redhat.com>
   1306 
   1307 	* include/std/ranges (split_view::_OuterIter::value_type::begin):
   1308 	Remove the non-const overload, and remove the copyable constraint
   1309 	on the const overload as per LWG 3553.
   1310 
   1311 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1312 
   1313 	Backported from master:
   1314 	2021-06-19  Patrick Palka  <ppalka (a] redhat.com>
   1315 
   1316 	* include/bits/stl_iterator.h
   1317 	(__detail::__common_iter_use_postfix_proxy): Add
   1318 	move_constructible constraint as per LWG 3546.
   1319 	(common_iterator::__postfix_proxy): Adjust initializer of
   1320 	_M_keep as per LWG 3546.
   1321 
   1322 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1323 
   1324 	Backported from master:
   1325 	2021-06-18  Patrick Palka  <ppalka (a] redhat.com>
   1326 
   1327 	PR libstdc++/100387
   1328 	* include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
   1329 	to limit comparison complexity to 3*N/2.
   1330 	(__minmax_element_fn::operator()): Likewise.
   1331 	(shift_right): Avoid premature std::move of __result.
   1332 	* testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
   1333 	New tests.
   1334 	* testsuite/25_algorithms/minmax_element/constrained.cc (test02):
   1335 	Likewise.
   1336 
   1337 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1338 
   1339 	Backported from master:
   1340 	2021-06-18  Patrick Palka  <ppalka (a] redhat.com>
   1341 
   1342 	* include/std/concepts (convertible_to): Just use declval as per
   1343 	LWG 3557.
   1344 
   1345 2021-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1346 
   1347 	Backported from master:
   1348 	2021-05-21  Patrick Palka  <ppalka (a] redhat.com>
   1349 
   1350 	PR libstdc++/100606
   1351 	* include/std/ranges (drop_while_view::begin): Assert the
   1352 	precondition added by LWG 3490.
   1353 
   1354 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1355 
   1356 	Backported from master:
   1357 	2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1358 
   1359 	* testsuite/20_util/tuple/comparison_operators/overloaded.cc:
   1360 	Restore test for operator<.
   1361 
   1362 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1363 
   1364 	Backported from master:
   1365 	2021-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   1366 
   1367 	* testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
   1368 	* testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
   1369 
   1370 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1371 
   1372 	Backported from master:
   1373 	2021-10-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1374 
   1375 	* testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
   1376 	New test.
   1377 	* testsuite/23_containers/span/trivially_copyable.cc: New test.
   1378 
   1379 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1380 
   1381 	Backported from master:
   1382 	2021-08-16  Jonathan Wakely  <jwakely (a] redhat.com>
   1383 
   1384 	* python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
   1385 	Install another copy of the GDB hook.
   1386 	* python/Makefile.in: Regenerate.
   1387 
   1388 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1389 
   1390 	Backported from master:
   1391 	2021-08-17  Jonathan Wakely  <jwakely (a] redhat.com>
   1392 
   1393 	* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
   1394 	(build_libstdcxx_dictionary): Register printer for
   1395 	std::error_code and std::error_condition.
   1396 	* testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
   1397 
   1398 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1399 
   1400 	Backported from master:
   1401 	2021-09-23  Jonathan Wakely  <jwakely (a] redhat.com>
   1402 
   1403 	PR libstdc++/102425
   1404 	* src/c++11/system_error.cc
   1405 	(system_error_category::default_error_condition): Add 0 to
   1406 	switch.
   1407 	* testsuite/19_diagnostics/error_category/102425.cc: New test.
   1408 
   1409 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1410 
   1411 	Backported from master:
   1412 	2021-09-16  Jonathan Wakely  <jwakely (a] redhat.com>
   1413 
   1414 	* include/bits/fs_path.h (advance): Remove non-deducible
   1415 	template parameter.
   1416 
   1417 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1418 
   1419 	Backported from master:
   1420 	2021-08-28  Jonathan Wakely  <jwakely (a] redhat.com>
   1421 
   1422 	PR libstdc++/99876
   1423 	* src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
   1424 	to avoid unnecessary current_path() call.
   1425 
   1426 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1427 
   1428 	Backported from master:
   1429 	2021-09-17  Jonathan Wakely  <jwakely (a] redhat.com>
   1430 
   1431 	* testsuite/26_numerics/valarray/dr630-3.C: Moved to...
   1432 	* testsuite/26_numerics/valarray/dr630-3.cc: ...here.
   1433 	* testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
   1434 	* testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
   1435 
   1436 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1437 
   1438 	Backported from master:
   1439 	2021-09-16  Jonathan Wakely  <jwakely (a] redhat.com>
   1440 
   1441 	PR libstdc++/102280
   1442 	* include/std/span (span(Range&&)): Add constraint to deduction
   1443 	guide.
   1444 
   1445 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1446 
   1447 	Backported from master:
   1448 	2021-10-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1449 
   1450 	* testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
   1451 
   1452 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1453 
   1454 	Backported from master:
   1455 	2021-10-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1456 
   1457 	* testsuite/20_util/integer_comparisons/greater.cc: New test.
   1458 
   1459 2021-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1460 
   1461 	Backported from master:
   1462 	2021-10-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1463 
   1464 	PR libstdc++/102667
   1465 	* include/bits/regex.h (match_result::empty()): Optimize by
   1466 	calling the base function directly.
   1467 	(match_results::end()): Check _Base_type::empty() not empty().
   1468 	* testsuite/28_regex/match_results/102667.C: New test.
   1469 
   1470 2021-08-23  Jonathan Wakely  <jwakely (a] redhat.com>
   1471 
   1472 	Backported from master:
   1473 	2021-08-23  Jonathan Wakely  <jwakely (a] redhat.com>
   1474 
   1475 	* include/std/ranges (basic_istream_view): Add default template
   1476 	argument.
   1477 	* testsuite/std/ranges/istream_view.cc: Check it.
   1478 
   1479 2021-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1480 
   1481 	Backported from master:
   1482 	2021-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1483 
   1484 	PR libstdc++/100139
   1485 	* doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
   1486 	* doc/html/manual/status.html: Regenerate.
   1487 
   1488 2021-08-17  Thomas Schwinge  <thomas (a] codesourcery.com>
   1489 
   1490 	Backported from master:
   1491 	2021-08-17  Thomas Schwinge  <thomas (a] codesourcery.com>
   1492 
   1493 	* testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
   1494 	continued.
   1495 
   1496 2021-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1497 
   1498 	Backported from master:
   1499 	2021-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1500 
   1501 	PR libstdc++/101866
   1502 	* testsuite/experimental/random/randint.cc: Loop and retry if
   1503 	reseed() produces the same sequence.
   1504 
   1505 2021-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1506 
   1507 	Backported from master:
   1508 	2021-07-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1509 
   1510 	PR libstdc++/101510
   1511 	* src/c++17/fs_ops.cc (fs::create_directories): Use status
   1512 	instead of symlink_status.
   1513 	* src/filesystem/ops.cc (fs::create_directories): Likewise.
   1514 	* testsuite/27_io/filesystem/operations/create_directories.cc:
   1515 	Check symlink to existing directory.
   1516 	* testsuite/27_io/filesystem/operations/create_directory.cc: Do
   1517 	not test with symlinks on Windows.
   1518 	* testsuite/experimental/filesystem/operations/create_directories.cc:
   1519 	Check symlink to existing directory.
   1520 	* testsuite/experimental/filesystem/operations/create_directory.cc:
   1521 	Do not test with symlinks on Windows.
   1522 
   1523 2021-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1524 
   1525 	Backported from master:
   1526 	2021-07-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1527 
   1528 	PR libstdc++/101510
   1529 	* src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
   1530 	* testsuite/27_io/filesystem/operations/create_directory.cc:
   1531 	Test creating directory with name of existing symlink to
   1532 	directory.
   1533 	* testsuite/experimental/filesystem/operations/create_directory.cc:
   1534 	Likewise.
   1535 
   1536 2021-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1537 
   1538 	Backported from master:
   1539 	2021-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1540 
   1541 	PR libstdc++/101056
   1542 	* libsupc++/compare (compare_partial_order_fallback): Add
   1543 	constraint using reversed parameter order, as per LWG 3465.
   1544 	* testsuite/18_support/comparisons/algorithms/fallback.cc:
   1545 	Adjust expected result.
   1546 
   1547 2021-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1548 
   1549 	Backported from master:
   1550 	2021-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1551 
   1552 	* libsupc++/compare (__decayed_same_as): New helper concept.
   1553 	(strong_order, weak_order, partial_order): Constrain with new
   1554 	concept instead of using static_assert.
   1555 	(compare_strong_order_fallback, compare_weak_order_fallback)
   1556 	(compare_partial_order_fallback): Likewise. Do not deduce return
   1557 	types. Remove redundant if-constexpr checks.
   1558 	* testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
   1559 
   1560 2021-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1561 
   1562 	Backported from master:
   1563 	2021-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1564 
   1565 	PR libstdc++/100894
   1566 	* include/std/type_traits (__common_ref_impl<X&, Y&>): Only
   1567 	use the type if it's a reference.
   1568 	* testsuite/20_util/common_reference/100894.cc: New test.
   1569 
   1570 2021-07-22  Jonathan Wakely  <jwakely (a] redhat.com>
   1571 
   1572 	Backported from master:
   1573 	2021-04-15  Jonathan Wakely  <jwakely (a] redhat.com>
   1574 
   1575 	PR libstdc++/96657
   1576 	* libsupc++/Makefile.am: Add atomicity.cc here.
   1577 	* src/c++98/Makefile.am: Remove it from here.
   1578 	* libsupc++/Makefile.in: Regenerate.
   1579 	* src/c++98/Makefile.in: Regenerate.
   1580 	* testsuite/18_support/exception_ptr/96657.cc: New test.
   1581 
   1582 2021-07-22  Jonathan Wakely  <jwakely (a] redhat.com>
   1583 
   1584 	Backported from master:
   1585 	2021-06-07  Jonathan Wakely  <jwakely (a] redhat.com>
   1586 
   1587 	PR libstdc++/98842
   1588 	* include/std/optional (operator<=>(const optional<T>& const U&)):
   1589 	Add missing constraint and add workaround for template
   1590 	recursion.
   1591 	* testsuite/20_util/optional/relops/three_way.cc: Check that
   1592 	type without equality comparison cannot be compared when wrapped
   1593 	in std::optional.
   1594 
   1595 2021-07-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1596 
   1597 	Backported from master:
   1598 	2021-07-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1599 
   1600 	PR c++/101361
   1601 	* include/std/string_view (ends_with): Use traits_type::compare
   1602 	directly.
   1603 
   1604 2021-07-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1605 
   1606 	Backported from master:
   1607 	2021-07-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1608 
   1609 	PR libstdc++/101411
   1610 	* include/std/span (as_writable_bytes): Add requires-clause.
   1611 	* testsuite/23_containers/span/101411.cc: New test.
   1612 
   1613 2021-07-06  Avi Kivity  <avi (a] scylladb.com>
   1614 
   1615 	Backported from master:
   1616 	2021-06-07  Avi Kivity  <avi (a] scylladb.com>
   1617 
   1618 	PR libstdc++/100900
   1619 	* include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
   1620 	Add missing typename.
   1621 
   1622 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1623 
   1624 	Backported from master:
   1625 	2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1626 
   1627 	PR libstdc++/95833
   1628 	* include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
   1629 	incorrect static_assert with ones matching the 'Mandates'
   1630 	conditions in the standard.
   1631 	* testsuite/26_numerics/reduce/95833.cc: New test.
   1632 
   1633 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1634 
   1635 	* include/std/variant (__same_types, __check_visitor_results):
   1636 	Remove.
   1637 
   1638 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1639 
   1640 	Backported from master:
   1641 	2021-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1642 
   1643 	* include/std/future (promise::set_value): Check for existence
   1644 	of shared state before dereferncing it.
   1645 	(promise::set_exception, promise::set_value_at_thread_exit)
   1646 	(promise::set_exception_at_thread_exit): Likewise.
   1647 	(promise<R&>::set_value, promise<R&>::set_exception)
   1648 	(promise<R&>::set_value_at_thread_exit)
   1649 	(promise<R&>::set_exception_at_thread_exit): Likewise.
   1650 	(promise<void>::set_value, promise<void>::set_exception)
   1651 	(promise<void>::set_value_at_thread_exit)
   1652 	(promise<void>::set_exception_at_thread_exit): Likewise.
   1653 	* testsuite/30_threads/promise/members/at_thread_exit2.cc:
   1654 	Remove unused variable.
   1655 
   1656 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1657 
   1658 	Backported from master:
   1659 	2021-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1660 
   1661 	* include/bits/basic_string.h (basic_string(const CharT*, const A&)):
   1662 	Do not do arithmetic on null pointer.
   1663 
   1664 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1665 
   1666 	Backported from master:
   1667 	2021-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1668 
   1669 	* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
   1670 	(find_key_pointer(key_const_reference, false_type))
   1671 	(find_key_pointer(key_const_reference, true_type)): Do not
   1672 	dereference null pointer.
   1673 
   1674 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1675 
   1676 	Backported from master:
   1677 	2021-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1678 
   1679 	* testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
   1680 	overflow.
   1681 	* testsuite/24_iterators/reverse_iterator/2.cc: Do not add
   1682 	non-zero value to null pointer.
   1683 	* testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
   1684 	Use past-the-end iterator for result.
   1685 	* testsuite/25_algorithms/move_backward/69478.cc: Likewise.
   1686 	* testsuite/25_algorithms/move_backward/93872.cc: Likewise.
   1687 
   1688 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1689 
   1690 	Backported from master:
   1691 	2021-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1692 
   1693 	PR libstdc++/100384
   1694 	* include/std/variant (__get_t): New alias template yielding the
   1695 	return type of std::get<N> on a variant.
   1696 	(__visit_result_t): New alias template yielding the result of
   1697 	std::visit.
   1698 	(__same_types): Move into namespace __detail::__variant.
   1699 	(__check_visitor_results): Likewise. Use __invoke_result_t and
   1700 	__get_t.
   1701 	(__check_visitor_result): Remove.
   1702 	(visit): Use __visit_result_t for return type.
   1703 	* testsuite/20_util/variant/100384.cc: New test.
   1704 
   1705 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1706 
   1707 	Backported from master:
   1708 	2021-04-22  Jonathan Wakely  <jwakely (a] redhat.com>
   1709 
   1710 	PR libstdc++/99006
   1711 	* include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
   1712 	is not an array type.
   1713 	* include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
   1714 	* testsuite/20_util/shared_ptr/creation/99006.cc: New test.
   1715 
   1716 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1717 
   1718 	Backported from master:
   1719 	2021-05-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1720 
   1721 	* include/bits/allocator.h (allocator<void>) [C++20]: Add
   1722 	missing noexcept to constructor. Restore missing POCMA and
   1723 	is_always_equal_traits.
   1724 	* include/bits/memoryfwd.h (allocator_traits): Declare.
   1725 	* include/ext/malloc_allocator.h (malloc_allocator::allocate):
   1726 	Add nodiscard attribute. Add static assertion for LWG 3307.
   1727 	* include/ext/new_allocator.h (new_allocator::allocate): Add
   1728 	static assertion for LWG 3307.
   1729 	* testsuite/20_util/allocator/void.cc: Check that converting
   1730 	constructor is noexcept. Check for propagation traits and
   1731 	size_type and difference_type. Check that pointer and
   1732 	const_pointer are gone in C++20.
   1733 
   1734 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1735 
   1736 	Backported from master:
   1737 	2021-05-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1738 
   1739 	* include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
   1740 	Initialize a non-reference deleter from an rvalue, as per LWG
   1741 	3548.
   1742 	(__shared_ptr::_UniqCompatible): Add missing constraint.
   1743 	* testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
   1744 	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
   1745 	constraints.
   1746 
   1747 2021-06-18  Jonathan Wakely  <jwakely (a] redhat.com>
   1748 
   1749 	Backported from master:
   1750 	2021-06-17  Jonathan Wakely  <jwakely (a] redhat.com>
   1751 
   1752 	PR libstdc++/91488
   1753 	* include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
   1754 	define C++20 value when std::is_constant_evaluated is available.
   1755 	* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
   1756 	Likewise.
   1757 	(__constant_string_p, __constant_array_p): Give external
   1758 	linkage.
   1759 	* include/std/version (__cpp_lib_constexpr_char_traits)
   1760 	(__cpp_lib_constexpr_string): Only define C++20 values when
   1761 	is_constant_evaluated is available.
   1762 
   1763 2021-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1764 
   1765 	Backported from master:
   1766 	2021-05-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1767 
   1768 	* testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
   1769 	for additional errors in C++20.
   1770 	* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
   1771 	* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
   1772 
   1773 2021-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1774 
   1775 	Backported from master:
   1776 	2021-06-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1777 
   1778 	PR libstdc++/100982
   1779 	* include/std/optional (optional::operator=(const optional<U>&)):
   1780 	Fix value category used in is_assignable check.
   1781 	* testsuite/20_util/optional/assignment/100982.cc: New test.
   1782 
   1783 2021-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1784 
   1785 	Backported from master:
   1786 	2021-06-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1787 
   1788 	PR libstdc++/101034
   1789 	* include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
   1790 	(any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
   1791 	to use lvalue.
   1792 	* testsuite/20_util/any/cons/101034.cc: New test.
   1793 
   1794 2021-06-10  Patrick Palka  <ppalka (a] redhat.com>
   1795 
   1796 	Backported from master:
   1797 	2021-06-03  Patrick Palka  <ppalka (a] redhat.com>
   1798 
   1799 	PR libstdc++/100770
   1800 	* include/bits/ranges_algo.h (__detail::__can_reread_output):
   1801 	Factor out this concept from ...
   1802 	(__unique_copy_fn::operator()): ... here.  Use the concept
   1803 	throughout.
   1804 	* testsuite/std/ranges/range.cc: Remove now ill-formed use
   1805 	of range_value_t on an output_range.
   1806 	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
   1807 	Define value_type, pointer and reference member types to void.
   1808 
   1809 2021-06-10  Patrick Palka  <ppalka (a] redhat.com>
   1810 
   1811 	Backported from master:
   1812 	2021-05-21  Patrick Palka  <ppalka (a] redhat.com>
   1813 
   1814 	PR libstdc++/100690
   1815 	* include/std/ranges (iota_view::_Sentinel::_M_distance_from):
   1816 	Split out this member function from ...
   1817 	(iota_view::_Sentinel::operator-): ... here, for sake of access
   1818 	control.
   1819 	* testsuite/std/ranges/iota/iota_view.cc (test05): New test.
   1820 
   1821 2021-06-10  Patrick Palka  <ppalka (a] redhat.com>
   1822 
   1823 	Backported from master:
   1824 	2021-05-06  Patrick Palka  <ppalka (a] redhat.com>
   1825 
   1826 	* include/std/ranges (filter_view::_Iterator::base): Make the
   1827 	const& overload unconstrained and return a const reference as
   1828 	per LWG 3533.  Make unconditionally noexcept.
   1829 	(transform_view::_Iterator::base): Likewise.
   1830 	(elements_view::_Iterator::base): Likewise.
   1831 
   1832 2021-06-10  Patrick Palka  <ppalka (a] redhat.com>
   1833 
   1834 	Backported from master:
   1835 	2021-05-06  Patrick Palka  <ppalka (a] redhat.com>
   1836 
   1837 	* include/bits/stl_iterator.h (move_iterator::base): Make the
   1838 	const& overload unconstrained and return a const reference as
   1839 	per LWG 3391.  Make unconditionally noexcept.
   1840 	(counted_iterator::base): Likewise.
   1841 	* testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
   1842 	* testsuite/24_iterators/move_iterator/move_only.cc: Adjust
   1843 	has_member_base concept to decay-copy the result of base().
   1844 
   1845 2021-06-10  Patrick Palka  <ppalka (a] redhat.com>
   1846 
   1847 	Backported from master:
   1848 	2021-05-18  Patrick Palka  <ppalka (a] redhat.com>
   1849 
   1850 	PR libstdc++/100631
   1851 	* include/std/ranges (elements_view::_Sentinel::operator-): Use
   1852 	_M_distance_from in the other operator- overload too.
   1853 	* testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
   1854 
   1855 2021-06-10  Patrick Palka  <ppalka (a] redhat.com>
   1856 
   1857 	Backported from master:
   1858 	2021-05-18  Patrick Palka  <ppalka (a] redhat.com>
   1859 
   1860 	PR libstdc++/100631
   1861 	* include/std/ranges (elements_view::_Iterator): Also befriend
   1862 	_Sentinel<!_Const>.
   1863 	(elements_view::_Sentinel::_M_equal): Templatize.
   1864 	(elements_view::_Sentinel::_M_distance_from): Split out from ...
   1865 	(elements_view::_Sentinel::operator-): ... here.  Depend on
   1866 	_Base2 instead of _Base in the return type.
   1867 	* testsuite/std/ranges/adaptors/elements.cc (test06, test07):
   1868 	New tests.
   1869 
   1870 2021-06-10  Patrick Palka  <ppalka (a] redhat.com>
   1871 
   1872 	Backported from master:
   1873 	2021-05-20  Patrick Palka  <ppalka (a] redhat.com>
   1874 
   1875 	PR libstdc++/100639
   1876 	* include/bits/stl_iterator.h (reverse_iterator::difference_type):
   1877 	In C++20 mode, define in terms of iter_difference_t as per P0896R4.
   1878 	(reverse_iterator::reference): Likewise, but with iter_reference_t.
   1879 	(reverse_iterator::value_type): Likewise, but with iter_value_t.
   1880 	* testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
   1881 	* testsuite/24_iterators/reverse_iterator/100639.cc: New test.
   1882 
   1883 2021-06-03  Jonathan Wakely  <jwakely (a] redhat.com>
   1884 
   1885 	Backported from master:
   1886 	2021-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1887 
   1888 	PR libstdc++/100833
   1889 	* include/bits/range_access.h (ranges::advance(iter, n, sentinel)):
   1890 	Fix return value for no-op case.
   1891 	* testsuite/24_iterators/range_operations/advance.cc: Test
   1892 	return values of three-argument overload.
   1893 
   1894 2021-06-03  Jonathan Wakely  <jwakely (a] redhat.com>
   1895 
   1896 	Backported from master:
   1897 	2021-05-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1898 
   1899 	PR libstdc++/100768
   1900 	* include/bits/range_access.h (ranges::advance)
   1901 	(ranges::distance, ranges::next, ranges::prev): Replace
   1902 	function templates with function objects.
   1903 	* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
   1904 	Adjust for changes to function objects.
   1905 	* testsuite/std/ranges/adaptors/elements.cc: Add using
   1906 	declarations for names from namespace ranges.
   1907 	* testsuite/std/ranges/adaptors/transform.cc: Likewise.
   1908 	* testsuite/24_iterators/range_operations/100768.cc: New test.
   1909 
   1910 2021-06-03  Jonathan Wakely  <jwakely (a] redhat.com>
   1911 
   1912 	Backported from master:
   1913 	2021-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1914 
   1915 	PR libstdc++/99453
   1916 	* python/Makefile.am: Use archive name for printer hook if no
   1917 	dynamic library name is available.
   1918 	* python/Makefile.in: Regenerate.
   1919 
   1920 2021-06-03  Philippe Blain  <levraiphilippeblain (a] gmail.com>
   1921 
   1922 	Backported from master:
   1923 	2021-04-21  Philippe Blain  <levraiphilippeblain (a] gmail.com>
   1924 		    Jonathan Wakely  <jwakely (a] redhat.com>
   1925 
   1926 	PR libstdc++/99453
   1927 	* python/Makefile.am: Install libstdc++*-gdb.py more robustly.
   1928 	* python/Makefile.in: Regenerate.
   1929 
   1930 2021-05-17  Jonathan Wakely  <jwakely (a] redhat.com>
   1931 
   1932 	PR libstdc++/100630
   1933 	* include/bits/fs_path.h (__is_constructible_from): Test
   1934 	construction from a const lvalue, not an rvalue.
   1935 	* include/experimental/bits/fs_path.h (__is_constructible_from):
   1936 	Likewise.
   1937 	* testsuite/27_io/filesystem/path/construct/100630.cc: New test.
   1938 	* testsuite/experimental/filesystem/path/construct/100630.cc:
   1939 	New test.
   1940 
   1941 2021-05-17  Jonathan Wakely  <jwakely (a] redhat.com>
   1942 
   1943 	Backported from master:
   1944 	2021-03-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1945 
   1946 	* python/libstdcxx/v6/printers.py (find_type): Use tag attribute
   1947 	instead of unqualified() method.
   1948 
   1949 2021-05-05  Patrick Palka  <ppalka (a] redhat.com>
   1950 
   1951 	Backported from master:
   1952 	2021-05-05  Patrick Palka  <ppalka (a] redhat.com>
   1953 
   1954 	* include/std/ranges (transform_view::_Iterator::iter_swap):
   1955 	Remove as per LWG 3520.
   1956 	(join_view::_Iterator::iter_swap): Add indirectly_swappable
   1957 	constraint as per LWG 3517.
   1958 
   1959 2021-05-04  Patrick Palka  <ppalka (a] redhat.com>
   1960 
   1961 	Backported from master:
   1962 	2021-04-30  Patrick Palka  <ppalka (a] redhat.com>
   1963 
   1964 	* include/std/ranges (split_view::_InnerIter::operator++):
   1965 	Depend on _Base instead of _Vp directly, as per LWG 3532.
   1966 
   1967 2021-05-04  Patrick Palka  <ppalka (a] redhat.com>
   1968 
   1969 	Backported from master:
   1970 	2021-04-20  Patrick Palka  <ppalka (a] redhat.com>
   1971 
   1972 	PR libstdc++/95983
   1973 	* include/bits/stl_iterator.h (__detail::__move_iter_cat):
   1974 	Define.
   1975 	(move_iterator): Derive from the above in C++20 in order to
   1976 	conditionally define iterator_category as per P2259.
   1977 	(move_iterator::__base_cat): No longer used, so remove.
   1978 	(move_iterator::iterator_category): Remove in C++20.
   1979 	(__detail::__common_iter_use_postfix_proxy): Define.
   1980 	(common_iterator::_Proxy): Rename to ...
   1981 	(common_iterator:__arrow_proxy): ... this.
   1982 	(common_iterator::__postfix_proxy): Define as per P2259.
   1983 	(common_iterator::operator->): Adjust.
   1984 	(common_iterator::operator++): Adjust as per P2259.
   1985 	(iterator_traits<common_iterator>::_S_iter_cat): Define.
   1986 	(iterator_traits<common_iterator>::iterator_category): Change as
   1987 	per P2259.
   1988 	(__detail::__counted_iter_value_type): Define.
   1989 	(__detail::__counted_iter_concept): Define.
   1990 	(__detail::__counted_iter_cat): Define.
   1991 	(counted_iterator): Derive from the above three classes in order
   1992 	to conditionally define value_type, iterator_concept and
   1993 	iterator category respectively as per P2259.
   1994 	(counted_iterator::operator->): Define as per P2259.
   1995 	(incrementable_traits<counted_iterator>): Remove as per P2259.
   1996 	(iterator_traits<counted_iterator>): Adjust as per P2259.
   1997 	* include/std/ranges (__detail::__iota_view_iter_cat): Define.
   1998 	(iota_view::_Iterator): Derive from the above in order to
   1999 	conditionally define iterator_category as per P2259.
   2000 	(iota_view::_S_iter_cat): Rename to ...
   2001 	(iota_view::_S_iter_concept): ... this.
   2002 	(iota_view::iterator_concept): Use it to apply LWG 3291 changes.
   2003 	(iota_view::iterator_category): Remove.
   2004 	(__detail::__filter_view_iter_cat): Define.
   2005 	(filter_view::_Iterator): Derive from the above in order to
   2006 	conditionally define iterator_category as per P2259.
   2007 	(filter_view::_Iterator): Move to struct __filter_view_iter_cat.
   2008 	(filter_view::_Iterator::iterator_category): Remove.
   2009 	(transform_view::_Base): Define.
   2010 	(transform_view::__iter_cat): Define.
   2011 	(transform_view::_Iterator): Derive from the above in order to
   2012 	conditionally define iterator_category as per P2259.
   2013 	(transform_view::_Iterator::_Base): Just alias
   2014 	transform_view::_Base.
   2015 	(transform_view::_Iterator::_S_iter_cat): Move to struct
   2016 	transform_view::__iter_cat.
   2017 	(transform_view::_Iterator::iterator_category): Remove.
   2018 	(transform_view::_Sentinel::_Base): Just alias
   2019 	transform_view::_Base.
   2020 	(join_view::_Base): Define.
   2021 	(join_view::_Outer_iter): Define.
   2022 	(join_view::_Inner_iter): Define.
   2023 	(join_view::_S_ref_is_glvalue): Define.
   2024 	(join_view::__iter_cat): Define.
   2025 	(join_view::_Iterator): Derive from it in order to conditionally
   2026 	define iterator_category as per P2259.
   2027 	(join_view::_Iterator::_Base): Just alias join_view::_Base.
   2028 	(join_view::_Iterator::_S_ref_is_glvalue): Just alias
   2029 	join_view::_S_ref_is_glvalue.
   2030 	(join_view::_Iterator::_S_iter_cat): Move to struct
   2031 	transform_view::__iter_cat.
   2032 	(join_view::_Iterator::_Outer_iter): Just alias
   2033 	join_view::_Outer_iter.
   2034 	(join_view::_Iterator::_Inner_iter): Just alias
   2035 	join_view::_Inner_iter.
   2036 	(join_view::_Iterator::iterator_category): Remove.
   2037 	(join_view::_Sentinel::_Base): Just alias join_view::_Base.
   2038 	(__detail::__split_view_outer_iter_cat): Define.
   2039 	(__detail::__split_view_inner_iter_cat): Define.
   2040 	(split_view::_Base): Define.
   2041 	(split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
   2042 	in order to conditionally define iterator_category as per P2259.
   2043 	(split_view::_Outer_iter::iterator_category): Remove.
   2044 	(split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
   2045 	in order to conditionally define iterator_category as per P2259.
   2046 	(split_view::_Inner_iter::_S_iter_cat): Move to
   2047 	__split_view_inner_iter_cat.
   2048 	(split_view::_Inner_iter::iterator_category): Remove.
   2049 	(elements_view::_Base): Define.
   2050 	(elements_view::__iter_cat): Define.
   2051 	(elements_view::_Iterator): Derive from the above in order to
   2052 	conditionall define iterator_category as per P2259.
   2053 	(elements_view::_Iterator::_Base): Just alias
   2054 	elements_view::_Base.
   2055 	(elements_view::_Iterator::_S_iter_concept)
   2056 	(elements_view::_Iterator::iterator_concept): Define as per
   2057 	P2259.
   2058 	(elements_view::_Iterator::iterator_category): Remove.
   2059 	(elements_view::_Sentinel::_Base): Just alias
   2060 	elements_view::_Base.
   2061 	* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
   2062 	Adjust constraints on iterator_traits<counted_iterator>.
   2063 	* testsuite/std/ranges/p2259.cc: New test.
   2064 
   2065 2021-05-03  Patrick Palka  <ppalka (a] redhat.com>
   2066 
   2067 	Backported from master:
   2068 	2021-04-27  Patrick Palka  <ppalka (a] redhat.com>
   2069 
   2070 	PR libstdc++/100290
   2071 	* include/std/ranges (join_view::_Iterator::operator++): Correct
   2072 	the return type of the lambda to avoid returning a copy of
   2073 	_M_parent->_M_inner.
   2074 	* testsuite/std/ranges/adaptors/join.cc (test10): New test.
   2075 
   2076 2021-04-30  Jonathan Wakely  <jwakely (a] redhat.com>
   2077 
   2078 	Backported from master:
   2079 	2021-04-30  Jonathan Wakely  <jwakely (a] redhat.com>
   2080 
   2081 	* include/bits/basic_string.h (__cpp_lib_constexpr_string):
   2082 	Only define for C++17 and later.
   2083 
   2084 2021-04-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2085 
   2086 	Backported from master:
   2087 	2021-04-26  Jonathan Wakely  <jwakely (a] redhat.com>
   2088 
   2089 	PR libstdc++/100259
   2090 	* include/experimental/internet (net::ip::make_error_code)
   2091 	(net::ip::make_error_condition, net::ip::make_network_v4)
   2092 	(net::ip::operator==(const udp&, const udp&)): Add 'inline'.
   2093 
   2094 2021-04-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2095 
   2096 	Backported from master:
   2097 	2021-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2098 
   2099 	* include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
   2100 	* include/std/version (__cpp_lib_constexpr_string): Define.
   2101 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
   2102 	Check for __cpp_lib_constexpr_string.
   2103 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
   2104 	Likewise.
   2105 	* testsuite/21_strings/char_traits/requirements/version.cc: New test.
   2106 
   2107 2021-04-21  Jonathan Wakely  <jwakely (a] redhat.com>
   2108 
   2109 	PR libstdc++/100180
   2110 	* testsuite/experimental/net/internet/address/v6/members.cc:
   2111 	Require gthreads.
   2112 
   2113 2021-04-21  Patrick Palka  <ppalka (a] redhat.com>
   2114 
   2115 	Backported from master:
   2116 	2021-04-08  Patrick Palka  <ppalka (a] redhat.com>
   2117 
   2118 	* include/std/ranges (__detail::find): Define.
   2119 	(split_view::_OuterIter::operator++): Apply proposed resolution
   2120 	of LWG 3505.
   2121 	* testsuite/std/ranges/adaptors/split.cc (test10): New test.
   2122 
   2123 2021-04-21  Patrick Palka  <ppalka (a] redhat.com>
   2124 
   2125 	Backported from master:
   2126 	2021-04-08  Patrick Palka  <ppalka (a] redhat.com>
   2127 
   2128 	* include/std/ranges (__detail::find_if): Simplify.
   2129 	(__detail::find_if_not): Likewise.
   2130 	(__detail::min): Remove.
   2131 	(__detail::mismatch): Simplify.
   2132 	(take_view::size): Use std::min instead of __detail::min.
   2133 
   2134 2021-04-21  Patrick Palka  <ppalka (a] redhat.com>
   2135 
   2136 	Backported from master:
   2137 	2021-04-08  Patrick Palka  <ppalka (a] redhat.com>
   2138 
   2139 	* include/std/ranges (__detail::__returnable_element): New
   2140 	concept.
   2141 	(elements_view): Use this concept in its constraints.  Add
   2142 	missing private access specifier.
   2143 	(elements_view::_S_get_element): Define as per LWG 3502.
   2144 	(elements_view::operator*, elements_view::operator[]): Use
   2145 	_S_get_element.
   2146 	(elements_view::operator++): Remove unnecessary constraint
   2147 	as per LWG 3492.
   2148 	* testsuite/std/ranges/adaptors/elements.cc (test05): New test.
   2149 
   2150 2021-04-21  Patrick Palka  <ppalka (a] redhat.com>
   2151 
   2152 	Backported from master:
   2153 	2020-10-31  Patrick Palka  <ppalka (a] redhat.com>
   2154 
   2155 	PR libstdc++/97600
   2156 	* include/std/ranges (basic_istream_view::begin): Initialize
   2157 	_Iterator from 'this' instead of '*this'.
   2158 	(basic_istream_view::_Iterator::_Iterator): Adjust constructor
   2159 	accordingly.
   2160 	(filter_view::_Iterator::_Iterator): Take a filter_view*
   2161 	argument instead of a filter_view& argument.
   2162 	(filter_view::_Sentinel::_Sentinel): Likewise.
   2163 	(filter_view::begin): Initialize _Iterator from 'this' instead
   2164 	of '*this'.
   2165 	(filter_view::end): Likewise.
   2166 	(transform_view::_Iterator::_Iterator): Take a _Parent* instead
   2167 	of a _Parent&.
   2168 	(filter_view::_Iterator::operator+): Adjust accordingly.
   2169 	(filter_view::_Iterator::operator-): Likewise.
   2170 	(filter_view::begin): Initialize _Iterator from 'this' instead
   2171 	of '*this'.
   2172 	(filter_view::end): Likewise.
   2173 	(join_view::_Iterator): Take a _Parent* instead of a _Parent&.
   2174 	(join_view::_Sentinel): Likewise.
   2175 	(join_view::begin): Initialize _Iterator from 'this' instead of
   2176 	'*this'.
   2177 	(join_view::end): Initialize _Sentinel from 'this' instead of
   2178 	'*this'.
   2179 	(split_view::_OuterIter): Take a _Parent& instead of a _Parent*.
   2180 	(split_view::begin): Initialize _OuterIter from 'this' instead
   2181 	of '*this'.
   2182 	(split_view::end): Likewise.
   2183 	* testsuite/std/ranges/97600.cc: New test.
   2184 
   2185 2021-04-19  Franois Dumont  <fdumont (a] gcc.gnu.org>
   2186 
   2187 	PR libstdc++/99402
   2188 	* include/debug/helper_functions.h (__can_advance(_InputIterator,
   2189 	const std::pair<_Diff, _Distance_precision>&, int)): New.
   2190 	(__can_advance(const _Safe_iterator<>&,
   2191 	const std::pair<_Diff, _Distance_precision>&, int)): New.
   2192 	* include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
   2193 	use latter.
   2194 	(__glibcxx_check_can_increment_range): Adapt to use latter.
   2195 	(__glibcxx_check_can_decrement_range): Likewise.
   2196 	* include/debug/safe_iterator.h
   2197 	(_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
   2198 	int)): New.
   2199 	(__can_advance(const _Safe_iterator<>&,
   2200 	const std::pair<_Diff, _Distance_precision>&, int)): New.
   2201 	* include/debug/safe_iterator.tcc
   2202 	(_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
   2203 	int)): New.
   2204 	(_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
   2205 	std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
   2206 	__dp_sign_max_size.
   2207 	(__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
   2208 	(__copy_move_backward_a): Likewise.
   2209 	(__equal_aux): Likewise.
   2210 	* include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
   2211 	const std::pair<_Diff, _Distance_precision>&, int)): New.
   2212 	(__can_advance(const std::move_iterator<>&,
   2213 	const std::pair<_Diff, _Distance_precision>&, int)): New.
   2214 	* testsuite/25_algorithms/copy/debug/99402.cc: New test.
   2215 
   2216 2021-04-19  Jonathan Wakely  <jwakely (a] redhat.com>
   2217 
   2218 	Backported from master:
   2219 	2020-10-26  Jonathan Wakely  <jwakely (a] redhat.com>
   2220 
   2221 	PR libstdc++/97570
   2222 	* libsupc++/new_opa.cc: Declare size_t in global namespace.
   2223 	Remove unused header.
   2224 
   2225 2021-04-13  Jonathan Wakely  <jwakely (a] redhat.com>
   2226 
   2227 	Backported from master:
   2228 	2021-04-13  Jonathan Wakely  <jwakely (a] redhat.com>
   2229 
   2230 	PR libstdc++/100060
   2231 	* include/std/bit: Only include <ext/numeric_traits.h> for
   2232 	hosted build, use <limits> otherwise.
   2233 
   2234 2021-04-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2235 
   2236 	Backported from master:
   2237 	2021-04-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2238 
   2239 	PR libstdc++/100044
   2240 	* include/std/ranges (__detail::__iterator_sentinel_pair):
   2241 	Remove helper concept.
   2242 	(subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
   2243 	deduction guides, as per LWG 3404.
   2244 	* testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
   2245 	template argument deduction fails.
   2246 
   2247 2021-04-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2248 
   2249 	Backported from master:
   2250 	2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   2251 
   2252 	* include/bits/iterator_concepts.h (indirectly_readable): Add
   2253 	partial specializations to resolve ambiguities (LWG 3446).
   2254 	* testsuite/24_iterators/associated_types/readable.traits.cc:
   2255 	Check types with both value_type and element_type.
   2256 
   2257 2021-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2258 
   2259 	PR bootstrap/99983
   2260 	* include/bits/hashtable.h (_Hashtable): Fix noexcept-speciofier
   2261 	on definition to match the one on the declaration.
   2262 
   2263 2021-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2264 
   2265 	Backported from master:
   2266 	2021-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2267 
   2268 	PR libstdc++/99985
   2269 	* include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
   2270 	to be a valid constexpr function in C++11.
   2271 	* testsuite/23_containers/unordered_set/cons/99985.cc: New test.
   2272 
   2273 2021-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2274 
   2275 	Backported from master:
   2276 	2021-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2277 
   2278 	* include/bits/fs_fwd.h: Fix doxygen group command.
   2279 	* include/bits/streambuf_iterator.h: Likewise.
   2280 	* include/std/chrono: Likewise.
   2281 	* include/std/memory: Likewise.
   2282 	* include/std/thread: Likewise.
   2283 	* include/tr1/complex: Likewise.
   2284 
   2285 2021-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2286 
   2287 	Backported from master:
   2288 	2021-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2289 
   2290 	* include/bits/basic_string.h: Tweak doxygen comment.
   2291 
   2292 2021-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2293 
   2294 	Backported from master:
   2295 	2021-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2296 
   2297 	* include/bits/random.h: Fix doxygen group commands.
   2298 	* include/bits/regex_constants.h: Likewise.
   2299 	* include/tr1/random.h: Likewise.
   2300 
   2301 2021-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2302 
   2303 	Backported from master:
   2304 	2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
   2305 
   2306 	* testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc:
   2307 	Use allocator with the correct value type.
   2308 	* testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc:
   2309 	Likewise.
   2310 
   2311 2021-04-08  Franois Dumont  <fdumont (a] gcc.gnu.org>
   2312 
   2313 	Backported from master:
   2314 	2020-07-29  Franois Dumont  <fdumont (a] gcc.gnu.org>
   2315 
   2316 	PR libstdc++/96029
   2317 	* include/bits/hashtable.h
   2318 	(_Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, true_type)):
   2319 	Add noexcept qualification.
   2320 	(_Hashtable(_Hashtable&&)): Fix noexcept qualification.
   2321 	(_Hashtable(_Hashtable&&, const allocator_type&)): Add noexcept
   2322 	qualification.
   2323 	* include/bits/unordered_map.h
   2324 	(unordered_map(unordered_map&&, const allocator_type&)): Add noexcept
   2325 	qualification.
   2326 	(unordered_multimap(unordered_multimap&&, const allocator_type&)):
   2327 	Likewise.
   2328 	* include/bits/unordered_set.h
   2329 	(unordered_set(unordered_set&&, const allocator_type&)): Likewise.
   2330 	(unordered_multiset(unordered_multiset&&, const allocator_type&)):
   2331 	Likewise.
   2332 	* include/debug/unordered_map
   2333 	(unordered_map(unordered_map&&, const allocator_type&)): Likewise.
   2334 	(unordered_multimap(unordered_multimap&&, const allocator_type&)):
   2335 	Likewise.
   2336 	* include/debug/unordered_set
   2337 	(unordered_set(unordered_set&&, const allocator_type&)): Likewise.
   2338 	(unordered_multiset(unordered_multiset&&, const allocator_type&)):
   2339 	Likewise.
   2340 	* testsuite/23_containers/unordered_map/allocator/default_init.cc:
   2341 	New test.
   2342 	* testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc:
   2343 	New test.
   2344 	* testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
   2345 	New test.
   2346 	* testsuite/23_containers/unordered_map/modifiers/move_assign.cc:
   2347 	New test.
   2348 	* testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc:
   2349 	New test.
   2350 	* testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
   2351 	New test.
   2352 	* testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc:
   2353 	New test.
   2354 	* testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
   2355 	New test.
   2356 	* testsuite/23_containers/unordered_set/allocator/default_init.cc:
   2357 	New test.
   2358 	* testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc:
   2359 	New test.
   2360 	* testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
   2361 	New test.
   2362 
   2363 2021-04-08  Franois Dumont  <fdumont (a] gcc.gnu.org>
   2364 
   2365 	Backported from master:
   2366 	2020-07-08  Franois Dumont  <fdumont (a] gcc.gnu.org>
   2367 
   2368 	PR libstdc++/96029
   2369 	* include/bits/stl_tree.h (_Rb_tree_impl(_Rb_tree_impl&&)): Add noexcept
   2370 	qualification based only on _Compare one.
   2371 	* testsuite/23_containers/map/cons/noexcept_move_construct.cc: Add
   2372 	static asserts.
   2373 	* testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
   2374 	Likewise.
   2375 	* testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
   2376 	Likewise.
   2377 	* testsuite/23_containers/set/cons/noexcept_move_construct.cc: Likewise.
   2378 
   2379 2021-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2380 
   2381 	Backported from master:
   2382 	2021-04-07  Jonathan Wakely  <jwakely (a] redhat.com>
   2383 
   2384 	PR libstdc++/99805
   2385 	* src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
   2386 	non-const member on _M_pathname, to avoid copy-on-write.
   2387 	* testsuite/27_io/filesystem/path/decompose/parent_path.cc:
   2388 	Check construction from strings that might be shared.
   2389 
   2390 2021-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2391 
   2392 	* doc/xml/manual/status_cxx2017.xml: Replace Intel parallelstl
   2393 	link with LLVM repo for PSTL.
   2394 	* doc/html/manual/status.html: Regenerate.
   2395 
   2396 2021-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2397 
   2398 	Backported from master:
   2399 	2021-04-06  Jonathan Wakely  <jwakely (a] redhat.com>
   2400 
   2401 	* include/bits/alloc_traits.h: Use markdown for code font.
   2402 	* include/bits/basic_string.h: Fix @param names.
   2403 	* include/bits/regex.h: Fix duplicate @retval names, and rename.
   2404 	* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
   2405 	group open to match existing group close.
   2406 	* include/ext/pb_ds/priority_queue.hpp: Add blank line before group
   2407 	open.
   2408 
   2409 2021-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2410 
   2411 	Backported from master:
   2412 	2021-04-06  Jonathan Wakely  <jwakely (a] redhat.com>
   2413 
   2414 	* include/bits/atomic_base.h: Fix doxygen group close.
   2415 	* include/bits/basic_ios.h: Likewise.
   2416 	* include/bits/forward_list.h: Likewise.
   2417 	* include/bits/fs_dir.h: Likewise.
   2418 	* include/bits/fs_ops.h: Likewise.
   2419 	* include/bits/fs_path.h: Likewise.
   2420 	* include/bits/functional_hash.h: Likewise.
   2421 	* include/bits/gslice.h: Likewise.
   2422 	* include/bits/gslice_array.h: Likewise.
   2423 	* include/bits/hashtable_policy.h: Likewise.
   2424 	* include/bits/indirect_array.h: Likewise.
   2425 	* include/bits/locale_classes.h: Likewise.
   2426 	* include/bits/locale_facets.h: Likewise.
   2427 	* include/bits/locale_facets_nonio.h: Likewise.
   2428 	* include/bits/mask_array.h: Likewise.
   2429 	* include/bits/refwrap.h: Likewise.
   2430 	* include/bits/regex.h: Likewise.
   2431 	* include/bits/regex_automaton.h: Likewise.
   2432 	* include/bits/regex_compiler.h: Likewise.
   2433 	* include/bits/regex_constants.h: Likewise.
   2434 	* include/bits/regex_error.h: Likewise.
   2435 	* include/bits/regex_executor.h: Likewise.
   2436 	* include/bits/regex_scanner.h: Likewise.
   2437 	* include/bits/shared_ptr.h: Likewise.
   2438 	* include/bits/shared_ptr_atomic.h: Likewise.
   2439 	* include/bits/shared_ptr_base.h: Likewise.
   2440 	* include/bits/slice_array.h: Likewise.
   2441 	* include/bits/specfun.h: Likewise.
   2442 	* include/bits/std_function.h: Likewise.
   2443 	* include/bits/std_mutex.h: Likewise.
   2444 	* include/bits/stl_deque.h: Likewise.
   2445 	* include/bits/stl_iterator.h: Likewise.
   2446 	* include/bits/stl_iterator_base_types.h: Likewise.
   2447 	* include/bits/stl_map.h: Likewise.
   2448 	* include/bits/stl_multimap.h: Likewise.
   2449 	* include/bits/stl_multiset.h: Likewise.
   2450 	* include/bits/stl_numeric.h: Likewise.
   2451 	* include/bits/stl_pair.h: Likewise.
   2452 	* include/bits/stl_set.h: Likewise.
   2453 	* include/bits/stl_uninitialized.h: Likewise.
   2454 	* include/bits/stream_iterator.h: Likewise.
   2455 	* include/bits/streambuf_iterator.h: Likewise.
   2456 	* include/bits/unique_ptr.h: Likewise.
   2457 	* include/bits/unordered_map.h: Likewise.
   2458 	* include/bits/unordered_set.h: Likewise.
   2459 	* include/decimal/decimal: Likewise.
   2460 	* include/experimental/any: Likewise.
   2461 	* include/experimental/array: Likewise.
   2462 	* include/experimental/bits/fs_dir.h: Likewise.
   2463 	* include/experimental/bits/fs_fwd.h: Likewise.
   2464 	* include/experimental/bits/fs_ops.h: Likewise.
   2465 	* include/experimental/bits/fs_path.h: Likewise.
   2466 	* include/experimental/buffer: Likewise.
   2467 	* include/experimental/internet: Likewise.
   2468 	* include/experimental/optional: Likewise.
   2469 	* include/experimental/propagate_const: Likewise.
   2470 	* include/experimental/socket: Likewise.
   2471 	* include/ext/pb_ds/assoc_container.hpp: Likewise.
   2472 	* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
   2473 	Likewise.
   2474 	* include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
   2475 	* include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
   2476 	* include/ext/pb_ds/detail/types_traits.hpp: Likewise.
   2477 	* include/ext/pb_ds/exception.hpp: Likewise.
   2478 	* include/ext/pb_ds/priority_queue.hpp: Likewise.
   2479 	* include/ext/pb_ds/tag_and_trait.hpp: Likewise.
   2480 	* include/ext/random: Likewise.
   2481 	* include/std/any: Likewise.
   2482 	* include/std/atomic: Likewise.
   2483 	* include/std/bitset: Likewise.
   2484 	* include/std/chrono: Likewise.
   2485 	* include/std/complex: Likewise.
   2486 	* include/std/condition_variable: Likewise.
   2487 	* include/std/fstream: Likewise.
   2488 	* include/std/future: Likewise.
   2489 	* include/std/istream: Likewise.
   2490 	* include/std/iostream: Likewise.
   2491 	* include/std/mutex: Likewise.
   2492 	* include/std/numeric: Likewise.
   2493 	* include/std/ostream: Likewise.
   2494 	* include/std/ratio: Likewise.
   2495 	* include/std/shared_mutex: Likewise.
   2496 	* include/std/stdexcept: Likewise.
   2497 	* include/std/streambuf: Likewise.
   2498 	* include/std/system_error: Likewise.
   2499 	* include/std/valarray: Likewise.
   2500 	* include/std/variant: Likewise.
   2501 	* include/tr1/cmath: Likewise.
   2502 	* include/tr1/regex: Likewise.
   2503 	* include/tr2/dynamic_bitset: Likewise.
   2504 	* libsupc++/atomic_lockfree_defines.h: Likewise.
   2505 	* libsupc++/exception: Likewise.
   2506 	* libsupc++/exception.h: Likewise.
   2507 	* libsupc++/exception_ptr.h: Likewise.
   2508 	* libsupc++/nested_exception.h: Likewise.
   2509 
   2510 2021-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2511 
   2512 	Backported from master:
   2513 	2021-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2514 
   2515 	* include/std/string_view: Adjust Doxygen @file comment.
   2516 
   2517 2021-04-08  Release Manager
   2518 
   2519 	* GCC 10.3.0 released.
   2520 
   2521 2021-04-01  Jonathan Wakely  <jwakely (a] redhat.com>
   2522 
   2523 	Backported from master:
   2524 	2021-02-14  Jonathan Wakely  <jwakely (a] redhat.com>
   2525 
   2526 	PR libstdc++/99096
   2527 	* testsuite/util/testsuite_fs.h: Always include <unistd.h>.
   2528 
   2529 2021-04-01  Jonathan Wakely  <jwakely (a] redhat.com>
   2530 
   2531 	Backported from master:
   2532 	2020-12-17  Jonathan Wakely  <jwakely (a] redhat.com>
   2533 
   2534 	* config.h.in: Regenerate.
   2535 	* config/os/djgpp/error_constants.h: Test POSIX errno macros
   2536 	directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
   2537 	* config/os/mingw32-w64/error_constants.h: Likewise.
   2538 	* config/os/mingw32/error_constants.h: Likewise.
   2539 	* configure: Regenerate.
   2540 
   2541 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2542 
   2543 	Backported from master:
   2544 	2020-11-30  Jonathan Wakely  <jwakely (a] redhat.com>
   2545 
   2546 	* testsuite/20_util/specialized_algorithms/pstl/*: Add
   2547 	dg-timeout-factor.
   2548 	* testsuite/25_algorithms/pstl/*: Likewise.
   2549 	* testsuite/26_numerics/pstl/*: Likewise.
   2550 	* testsuite/28_regex/*: Likewise.
   2551 
   2552 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2553 
   2554 	Backported from master:
   2555 	2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   2556 
   2557 	* testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc:
   2558 	Add dg-timeout-factor directive.
   2559 	* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
   2560 	Likewise.
   2561 	* testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc:
   2562 	Likewise.
   2563 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc:
   2564 	Likewise.
   2565 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc:
   2566 	Likewise.
   2567 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc:
   2568 	Likewise.
   2569 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc:
   2570 	Likewise.
   2571 	* testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
   2572 	Likewise.
   2573 	* testsuite/28_regex/algorithms/regex_search/61720.cc: Likewise.
   2574 	* testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc:
   2575 	Likewise.
   2576 	* testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc:
   2577 	Likewise.
   2578 	* testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
   2579 
   2580 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2581 
   2582 	Backported from master:
   2583 	2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   2584 
   2585 	* include/std/stop_token: Check _GLIBCXX_HAS_GTHREADS using
   2586 	#ifdef instead of #if.
   2587 	(stop_token::_S_yield()): Check _GLIBCXX_HAS_GTHREADS before
   2588 	using __gthread_yield.
   2589 
   2590 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2591 
   2592 	Backported from master:
   2593 	2020-06-19  Jonathan Wakely  <jwakely (a] redhat.com>
   2594 
   2595 	PR libstdc++/95765
   2596 	* include/bits/stl_algobase.h (__size_to_integer(float))
   2597 	(__size_to_integer(double), __size_to_integer(long double))
   2598 	(__size_to_integer(__float128)): Cast return type explicitly.
   2599 
   2600 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2601 
   2602 	Backported from master:
   2603 	2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
   2604 
   2605 	* testsuite/17_intro/names.cc: Do not test 'v' on AIX.
   2606 
   2607 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2608 
   2609 	Backported from master:
   2610 	2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
   2611 
   2612 	* include/bits/basic_string.h (size_type, difference_type):
   2613 	Use allocator_traits to obtain the allocator's size_type and
   2614 	difference_type.
   2615 
   2616 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2617 
   2618 	Backported from master:
   2619 	2020-09-01  Jonathan Wakely  <jwakely (a] redhat.com>
   2620 
   2621 	* include/std/chrono (duration::_S_gcd(intmax_t, intmax_t)):
   2622 	New helper function for finding GCD of two positive intmax_t
   2623 	values.
   2624 	(duration::__divide): New helper alias for dividing one period
   2625 	by another.
   2626 	(duration::__is_harmonic): Use __divide not ratio_divide.
   2627 	(duration(const duration<R2, P2>&)): Require the duration rep
   2628 	types to be convertible.
   2629 	* testsuite/20_util/duration/cons/dr2094.cc: New test.
   2630 	* testsuite/20_util/duration/requirements/reduced_period.cc:
   2631 	Fix definition of unused member functions in test type.
   2632 	* testsuite/20_util/duration/requirements/typedefs_neg2.cc:
   2633 	Adjust expected errors.
   2634 
   2635 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2636 
   2637 	Backported from master:
   2638 	2020-08-27  Jonathan Wakely  <jwakely (a] redhat.com>
   2639 
   2640 	* include/std/chrono (__duration_common_type): Ensure the
   2641 	reduced ratio is used. Remove unused partial specialization
   2642 	using __failure_type.
   2643 	(common_type): Pass reduced ratios to __duration_common_type.
   2644 	Add partial specializations for simple cases involving a single
   2645 	duration or time_point type.
   2646 	(duration::period): Use reduced ratio.
   2647 	(duration::operator+(), duration::operator-()): Return duration
   2648 	type using the reduced ratio.
   2649 	* testsuite/20_util/duration/requirements/typedefs_neg2.cc:
   2650 	Adjust expected errors.
   2651 	* testsuite/20_util/duration/requirements/reduced_period.cc: New test.
   2652 
   2653 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2654 
   2655 	Backported from master:
   2656 	2020-09-03  Jonathan Wakely  <jwakely (a] redhat.com>
   2657 
   2658 	PR libstdc++/96592
   2659 	* include/std/tuple (_TupleConstraints<true, T...>): Use
   2660 	alternative is_constructible instead of std::is_constructible.
   2661 	* testsuite/20_util/tuple/cons/96592.cc: New test.
   2662 
   2663 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2664 
   2665 	Backported from master:
   2666 	2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   2667 
   2668 	* testsuite/20_util/is_aggregate/value.cc: Adjust for changes to
   2669 	definition of aggregates in C++20.
   2670 	* testsuite/20_util/optional/requirements.cc: Adjust for
   2671 	defaulted comparisons in C++20.
   2672 
   2673 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2674 
   2675 	Backported from master:
   2676 	2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   2677 
   2678 	* testsuite/20_util/tuple/78939.cc: Suppress warnings about
   2679 	deprecation of volatile-qualified structured bindings in C++20.
   2680 	* testsuite/20_util/variable_templates_for_traits.cc: Likewise
   2681 	for deprecation of is_pod in C++20
   2682 
   2683 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2684 
   2685 	Backported from master:
   2686 	2020-06-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2687 
   2688 	* include/std/optional (bad_optional_access): Define default
   2689 	constructor and destructor as defaulted.
   2690 	* testsuite/20_util/optional/bad_access.cc: New test.
   2691 
   2692 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2693 
   2694 	Backported from master:
   2695 	2020-06-04  Jonathan Wakely  <jwakely (a] redhat.com>
   2696 
   2697 	* include/bits/ranges_algobase.h (__copy_n_fn): Only call
   2698 	ranges::copy for positive values.
   2699 	* include/bits/stl_algo.h (copy_n): Convert Size argument to an
   2700 	integral type and only call __copy_n for positive values.
   2701 	* testsuite/util/testsuite_iterators.h
   2702 	(random_access_iterator_wrapper::operator+=): Fix range check for
   2703 	negative values.
   2704 	(output_container, input_container, forward_container)
   2705 	(bidirectional_container, random_access_container): New alias
   2706 	templates.
   2707 	* testsuite/25_algorithms/copy_n/5.cc: New test.
   2708 
   2709 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2710 
   2711 	Backported from master:
   2712 	2020-06-16  Jonathan Wakely  <jwakely (a] redhat.com>
   2713 
   2714 	* include/std/atomic (atomic): Add static assertions.
   2715 	* testsuite/29_atomics/atomic/requirements/types_neg.cc: New test.
   2716 
   2717 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2718 
   2719 	Backported from master:
   2720 	2020-06-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2721 
   2722 	* include/bits/stl_iterator.h (move_iterator::operator=): Define.
   2723 	* testsuite/24_iterators/move_iterator/dr3265.cc: New test.
   2724 
   2725 2021-03-29  Paul Keir  <paul.keir (a] uws.ac.uk>
   2726 
   2727 	Backported from master:
   2728 	2020-06-15  Paul Keir  <paul.keir (a] uws.ac.uk>
   2729 
   2730 	* include/bits/char_traits.h (char_traits::move): constexpr move with
   2731 	overlap was using copy_backward incorrectly.
   2732 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
   2733 	New test.
   2734 
   2735 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2736 
   2737 	Backported from master:
   2738 	2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   2739 
   2740 	* testsuite/20_util/time_point_cast/rounding.cc: Remove
   2741 	duplicate dg-do directive and add c++17 effective target.
   2742 
   2743 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2744 
   2745 	Backported from master:
   2746 	2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   2747 
   2748 	* testsuite/30_threads/thread/cons/84535.cc: Use a custom
   2749 	namespace.
   2750 	* testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
   2751 
   2752 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2753 
   2754 	Backported from master:
   2755 	2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   2756 
   2757 	* testsuite/lib/libstdc++.exp (libstdc++_init): Only set
   2758 	tool_timeout if it hasn't been set by the user already.
   2759 
   2760 2021-03-29  Moritz Sichert  <sichert (a] in.tum.de>
   2761 
   2762 	Backported from master:
   2763 	2021-03-23  Moritz Sichert  <sichert (a] in.tum.de>
   2764 
   2765 	* include/std/ranges (reverse_view::begin, reverse_view::end):
   2766 	Qualify make_reverse_iterator calls to avoid ADL.
   2767 	* testsuite/std/ranges/adaptors/reverse.cc: Test that
   2768 	views::reverse works when make_reverse_iterator is defined
   2769 	in an associated namespace.
   2770 
   2771 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2772 
   2773 	Backported from master:
   2774 	2021-03-22  Jonathan Wakely  <jwakely (a] redhat.com>
   2775 
   2776 	* include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
   2777 	Add missing 'noexcept' as per LWG 2280.
   2778 	(rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
   2779 	(rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
   2780 	* testsuite/24_iterators/range_access/range_access.cc: Check for
   2781 	expected noexcept specifiers. Check result types of generic
   2782 	std::begin and std::end overloads.
   2783 	* testsuite/24_iterators/range_access/range_access_cpp14.cc:
   2784 	Check for expected noexcept specifiers.
   2785 	* testsuite/24_iterators/range_access/range_access_cpp17.cc:
   2786 	Likewise.
   2787 
   2788 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2789 
   2790 	Backported from master:
   2791 	2021-03-11  Jonathan Wakely  <jwakely (a] redhat.com>
   2792 
   2793 	PR libstdc++/99537
   2794 	* include/std/stop_token (_Stop_state_t::_M_release_ownership):
   2795 	Use acq_rel memory ordering.
   2796 
   2797 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2798 
   2799 	Backported from master:
   2800 	2021-03-11  Jonathan Wakely  <jwakely (a] redhat.com>
   2801 
   2802 	PR libstdc++/99533
   2803 	* src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
   2804 	helper function to check for permission denied errors.
   2805 	* src/filesystem/dir.cc (recursive_directory_iterator):
   2806 	Likewise.
   2807 	* src/filesystem/dir-common.h (is_permission_denied_error): New
   2808 	helper function.
   2809 
   2810 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2811 
   2812 	Backported from master:
   2813 	2021-03-11  Jonathan Wakely  <jwakely (a] redhat.com>
   2814 
   2815 	PR libstdc++/99536
   2816 	* include/bits/random.h (normal_distribution): Use
   2817 	default-initializer for _M_saved and _M_saved_available.
   2818 
   2819 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2820 
   2821 	Backported from master:
   2822 	2021-03-10  Jonathan Wakely  <jwakely (a] redhat.com>
   2823 
   2824 	* include/bits/range_cmp.h (__eq_builtin_ptr_cmp): Remove.
   2825 	(ranges::equal_to, ranges::not_equal_to): Do not constrain
   2826 	with __eq_builtin_ptr_cmp.
   2827 	(ranges::less, ranges::greater, ranges::less_equal)
   2828 	(ranges::greater_equal): Do not constrain with
   2829 	__less_builtin_ptr_cmp.
   2830 	* libsupc++/compare (compare_three_way): Do not constrain with
   2831 	__3way_builtin_ptr_cmp.
   2832 	* testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
   2833 	* testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
   2834 	* testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
   2835 
   2836 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2837 
   2838 	Backported from master:
   2839 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2840 
   2841 	* doc/xml/manual/status_cxx2014.xml: Document implementation
   2842 	specific properties of std::experimental::filesystem::rename.
   2843 	* doc/xml/manual/status_cxx2017.xml: Document implementation
   2844 	specific properties of std::filesystem::rename.
   2845 	* doc/html/*: Regenerate.
   2846 	* src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
   2847 	for directories on Windows.
   2848 	* src/filesystem/ops-common.h (__gnu_posix::rename): Use
   2849 	MoveFileExW on Windows.
   2850 	* testsuite/27_io/filesystem/operations/rename.cc: New test.
   2851 	* testsuite/experimental/filesystem/operations/rename.cc: New test.
   2852 
   2853 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2854 
   2855 	Backported from master:
   2856 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2857 
   2858 	* testsuite/util/testsuite_fs.h (nonexistent_path): Add
   2859 	random number to the path.
   2860 
   2861 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2862 
   2863 	Backported from master:
   2864 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2865 
   2866 	* include/experimental/internet (address_v6::to_string): Include
   2867 	scope ID in string.
   2868 	(address_v6::loopback): Fix to be constexpr in C++14.
   2869 	* testsuite/experimental/net/internet/address/v6/members.cc:
   2870 	Test to_string() results.
   2871 
   2872 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2873 
   2874 	Backported from master:
   2875 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2876 
   2877 	* include/experimental/internet (address_v6::any): Avoid using
   2878 	memcpy in constexpr function.
   2879 	(address_v6::loopback): Likewise.
   2880 	(make_address_v6): Fix missing return statements on error paths.
   2881 	* include/experimental/io_context: Avoid -Wdangling-else
   2882 	warning.
   2883 	* testsuite/experimental/net/internet/address/v4/members.cc:
   2884 	Remove unused variables.
   2885 	* testsuite/experimental/net/internet/address/v6/members.cc:
   2886 	New test.
   2887 
   2888 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2889 
   2890 	Backported from master:
   2891 	2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2892 
   2893 	* testsuite/25_algorithms/all_of/constexpr.cc: Check result of
   2894 	the algorithm.
   2895 	* testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
   2896 	* testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
   2897 	* testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
   2898 	* testsuite/25_algorithms/count/constexpr.cc: Likewise.
   2899 	* testsuite/25_algorithms/equal/constexpr.cc: Likewise.
   2900 	* testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
   2901 	* testsuite/25_algorithms/fill/constexpr.cc: Likewise.
   2902 	* testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
   2903 	* testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
   2904 	* testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
   2905 	* testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
   2906 	* testsuite/25_algorithms/is_sorted_until/constexpr.cc:
   2907 	Likewise.
   2908 	* testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
   2909 	Likewise.
   2910 	* testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
   2911 	* testsuite/25_algorithms/merge/constexpr.cc: Likewise.
   2912 	* testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
   2913 	* testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
   2914 	* testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
   2915 	* testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
   2916 	* testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
   2917 	* testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
   2918 	* testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
   2919 	* testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
   2920 	* testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
   2921 	* testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
   2922 	* testsuite/25_algorithms/search/constexpr.cc: Likewise.
   2923 	* testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
   2924 	* testsuite/25_algorithms/set_intersection/constexpr.cc:
   2925 	Likewise.
   2926 	* testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
   2927 	Likewise.
   2928 	* testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
   2929 	* testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
   2930 	* testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
   2931 
   2932 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2933 
   2934 	Backported from master:
   2935 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2936 
   2937 	PR libstdc++/99077
   2938 	* src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
   2939 	Change int parameter to error_code, to match std::ios_failure.
   2940 	(__throw_ios_failure(const char*, int)): Construct error_code
   2941 	from int parameter.
   2942 
   2943 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2944 
   2945 	Backported from master:
   2946 	2021-02-11  Jonathan Wakely  <jwakely (a] redhat.com>
   2947 
   2948 	PR libstdc++/99058
   2949 	* doc/xml/manual/status_cxx2011.xml: Document when support
   2950 	became stable.
   2951 	* doc/xml/manual/status_cxx2014.xml: Likewise.
   2952 	* doc/xml/manual/status_cxx2017.xml: Likewise.
   2953 	* doc/html/manual/status.html: Regenerate.
   2954 
   2955 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2956 
   2957 	Backported from master:
   2958 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2959 
   2960 	PR libstdc++/88881
   2961 	* src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
   2962 
   2963 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2964 
   2965 	Backported from master:
   2966 	2021-02-10  Jonathan Wakely  <jwakely (a] redhat.com>
   2967 
   2968 	PR libstdc++/88881
   2969 	* src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
   2970 
   2971 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2972 
   2973 	Backported from master:
   2974 	2021-02-10  Jonathan Wakely  <jwakely (a] redhat.com>
   2975 
   2976 	* src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
   2977 	(fs::remove): Use std::system_category() for error codes from
   2978 	GetLastError().
   2979 	* src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
   2980 	Likewise.
   2981 
   2982 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2983 
   2984 	Backported from master:
   2985 	2021-02-10  Jonathan Wakely  <jwakely (a] redhat.com>
   2986 
   2987 	* testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
   2988 	in __MINGW32__ macro name.
   2989 	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
   2990 	* testsuite/27_io/filesystem/path/generation/proximate.cc:
   2991 	Likewise.
   2992 	* testsuite/27_io/filesystem/path/generation/relative.cc:
   2993 	Likewise.
   2994 	* testsuite/util/testsuite_fs.h: Likewise.
   2995 
   2996 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2997 
   2998 	Backported from master:
   2999 	2021-02-03  Jonathan Wakely  <jwakely (a] redhat.com>
   3000 
   3001 	* testsuite/19_diagnostics/error_code/operators/not_equal.cc:
   3002 	Add comparison with same category and different values.
   3003 	* testsuite/19_diagnostics/error_code/operators/less.cc:
   3004 	Likewise. Fix comparison involving different categories.
   3005 	* testsuite/19_diagnostics/error_code/operators/three_way.cc:
   3006 	Likewise.
   3007 	* testsuite/19_diagnostics/error_condition/operators/less.cc:
   3008 	Add comment.
   3009 	* testsuite/19_diagnostics/error_condition/operators/three_way.cc:
   3010 	Likewise.
   3011 
   3012 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3013 
   3014 	Backported from master:
   3015 	2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
   3016 
   3017 	PR libstdc++/98319
   3018 	* include/experimental/random: Only define contents for C++14
   3019 	and later.
   3020 	* include/experimental/source_location: Likewise.
   3021 	* include/experimental/utility: Likewise.
   3022 	* testsuite/experimental/feat-lib-fund.cc: Include all LFTS
   3023 	headers that are present. Allow test to run for all modes.
   3024 
   3025 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3026 
   3027 	Backported from master:
   3028 	2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
   3029 
   3030 	PR libstdc++/93151
   3031 	* acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Remove.
   3032 	* configure.ac: Regenerate.
   3033 	* config/os/generic/error_constants.h: Test POSIX errno macros
   3034 	directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
   3035 	* testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc:
   3036 	Likewise.
   3037 	* testsuite/19_diagnostics/headers/system_error/93151.cc: New
   3038 	test.
   3039 
   3040 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3041 
   3042 	Backported from master:
   3043 	2020-12-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3044 
   3045 	PR libstdc++/98226
   3046 	* include/std/bit (__countl_one, __countr_one): Remove redundant
   3047 	branches.
   3048 
   3049 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3050 
   3051 	Backported from master:
   3052 	2020-11-09  Jonathan Wakely  <jwakely (a] redhat.com>
   3053 
   3054 	* include/std/bit (__popcount): Remove redundant check for zero.
   3055 
   3056 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3057 
   3058 	Backported from master:
   3059 	2020-10-30  Jonathan Wakely  <jwakely (a] redhat.com>
   3060 
   3061 	* include/std/ranges (enable_borrowed_view<take_view<T>>)
   3062 	(enable_borrowed_view<drop_view<T>>)
   3063 	(enable_borrowed_view<drop_while_view<T>>)
   3064 	(enable_borrowed_view<reverse_view<T>>)
   3065 	(enable_borrowed_view<common_view<T>>)
   3066 	(enable_borrowed_view<elements_view<T>>): Add partial
   3067 	specializations as per P2017R1.
   3068 	* testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
   3069 	New test.
   3070 
   3071 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3072 
   3073 	Backported from master:
   3074 	2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3075 
   3076 	* include/std/ranges (subrange::subrange(R&&)): Use
   3077 	direct-initialization instead of list-initialization, so a
   3078 	potential narrowing conversion from ranges::size(r) to the
   3079 	stored size isn't ill-formed.
   3080 
   3081 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3082 
   3083 	Backported from master:
   3084 	2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   3085 
   3086 	PR libstdc++/82584
   3087 	* include/bits/random.tcc
   3088 	(discrete_distribution::param_type::_M_initialize)
   3089 	(piecewise_constant_distribution::param_type::_M_initialize)
   3090 	(piecewise_linear_distribution::param_type::_M_initialize):
   3091 	Add assertions for positive sums..
   3092 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
   3093 	line.
   3094 
   3095 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3096 
   3097 	Backported from master:
   3098 	2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   3099 
   3100 	* include/bits/random.h (__detail::_Mod): Revert last change.
   3101 	(__detail::__mod): Do not use _Mod for a==0 case.
   3102 	* testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
   3103 	Check other cases with a==0. Also check runtime results.
   3104 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
   3105 	line.
   3106 
   3107 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3108 
   3109 	Backported from master:
   3110 	2020-10-07  Jonathan Wakely  <jwakely (a] redhat.com>
   3111 
   3112 	* include/bits/random.h (__detail::_Mod): Avoid divide by zero.
   3113 	* testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
   3114 	New test.
   3115 
   3116 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3117 
   3118 	Backported from master:
   3119 	2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3120 
   3121 	* include/std/ranges (drop_view::begin()): Adjust constraints
   3122 	to match the correct condition for O(1) ranges::next (LWG 3482).
   3123 	* testsuite/std/ranges/adaptors/drop.cc: Check that iterator is
   3124 	cached for non-sized_range.
   3125 
   3126 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3127 
   3128 	Backported from master:
   3129 	2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3130 
   3131 	* include/std/ranges (transform_view, elements_view): Relax
   3132 	constraints on operator- for iterators, as per LWG 3483.
   3133 	* testsuite/std/ranges/adaptors/elements.cc: Check that we
   3134 	can take the difference of two iterators from a non-random
   3135 	access range.
   3136 	* testsuite/std/ranges/adaptors/transform.cc: Likewise.
   3137 
   3138 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3139 
   3140 	Backported from master:
   3141 	2020-10-28  Jonathan Wakely  <jwakely (a] redhat.com>
   3142 
   3143 	PR libstdc++/95592
   3144 	* include/bits/valarray_after.h (_DEFINE_EXPR_UNARY_OPERATOR)
   3145 	(_DEFINE_EXPR_BINARY_OPERATOR, _DEFINE_EXPR_BINARY_FUNCTION):
   3146 	Use elaborated-type-specifier and qualified-id to avoid
   3147 	ambiguities with QNX system headers.
   3148 	* testsuite/26_numerics/valarray/95592.cc: New test.
   3149 
   3150 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3151 
   3152 	Backported from master:
   3153 	2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   3154 
   3155 	* include/bits/locale_conv.h (__str_codecvt_out_all):
   3156 	Add cast to compare operands of the same signedness.
   3157 	* include/bits/locale_facets_nonio.tcc
   3158 	(time_get::_M_extract_wday_or_month): Likewise.
   3159 	* include/bits/sstream.tcc (basic_stringbuf::overflow):
   3160 	Likewise.
   3161 	* include/tr1/legendre_function.tcc (__sph_legendre): Use
   3162 	unsigned for loop variable.
   3163 
   3164 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3165 
   3166 	Backported from master:
   3167 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3168 
   3169 	* include/bits/locale_conv.h (__do_str_codecvt, __str_codecvt_in_all):
   3170 	Add casts to compare types of the same signedness.
   3171 
   3172 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3173 
   3174 	Backported from master:
   3175 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3176 
   3177 	* include/bits/ranges_algobase.h (__equal_fn): Remove unused
   3178 	typedef.
   3179 
   3180 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3181 
   3182 	Backported from master:
   3183 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3184 
   3185 	* include/experimental/bits/shared_ptr.h (shared_ptr(auto_ptr&&))
   3186 	(operator=(auto_ptr&&)): Add diagnostic pragmas to suppress
   3187 	warnings for uses of std::auto_ptr.
   3188 	* include/experimental/type_traits (is_literal_type_v):
   3189 	Likewise, for use of std::is_literal_type.
   3190 	* include/std/condition_variable (condition_variable_any::_Unlock):
   3191 	Likewise, for use of std::uncaught_exception.
   3192 
   3193 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3194 
   3195 	Backported from master:
   3196 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3197 
   3198 	* include/bits/fs_path.h (path::_List::type()): Avoid narrowing
   3199 	conversion.
   3200 
   3201 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3202 
   3203 	Backported from master:
   3204 	2020-09-07  Jonathan Wakely  <jwakely (a] redhat.com>
   3205 
   3206 	* include/std/ranges (__box): Simplify constraints as per LWG 3477.
   3207 
   3208 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3209 
   3210 	Backported from master:
   3211 	2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3212 
   3213 	* include/std/ranges (ranges::iota_view::size()): Perform all
   3214 	calculations in the right unsigned types.
   3215 	* testsuite/std/ranges/iota/size.cc: New test.
   3216 
   3217 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3218 
   3219 	Backported from master:
   3220 	2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   3221 
   3222 	* include/experimental/executor (system_context::_M_run()):
   3223 	Fix predicate.
   3224 	(system_context::join()): Do not join unless joinable.
   3225 	* testsuite/experimental/net/system_context/1.cc: New test.
   3226 
   3227 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3228 
   3229 	Backported from master:
   3230 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3231 
   3232 	* include/bits/stl_iterator.h (inserter): Do not deduce
   3233 	iterator type (LWG 561).
   3234 	* testsuite/24_iterators/insert_iterator/dr561.cc: New test.
   3235 
   3236 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3237 
   3238 	Backported from master:
   3239 	2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   3240 
   3241 	* include/bits/fs_path.h (path::_List::begin, path::_List::end):
   3242 	Add noexcept to match definitions in src/c++17/fs_path.cc.
   3243 
   3244 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
   3245 
   3246 	Backported from master:
   3247 	2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
   3248 
   3249 	* src/c++17/fs_dir.cc (fs::directory_iterator::operator*):
   3250 	Add noexcept. Do not throw on precondition violation.
   3251 
   3252 2021-03-19  Jakub Jelinek  <jakub (a] redhat.com>
   3253 
   3254 	Backported from master:
   3255 	2021-02-23  Jakub Jelinek  <jakub (a] redhat.com>
   3256 
   3257 	PR libstdc++/99181
   3258 	* testsuite/21_strings/char_traits/requirements/char/99181.cc: New
   3259 	test.
   3260 
   3261 2021-03-19  Jakub Jelinek  <jakub (a] redhat.com>
   3262 
   3263 	Backported from master:
   3264 	2021-02-23  Jakub Jelinek  <jakub (a] redhat.com>
   3265 
   3266 	PR libstdc++/99181
   3267 	* include/bits/char_traits.h (char_traits<char>::compare): For
   3268 	constexpr evaluation don't call
   3269 	__gnu_cxx::char_traits<char_type>::compare but do the comparison loop
   3270 	directly.
   3271 
   3272 2021-02-09  Jonathan Wakely  <jwakely (a] redhat.com>
   3273 
   3274 	Backported from master:
   3275 	2021-02-09  Jonathan Wakely  <jwakely (a] redhat.com>
   3276 
   3277 	PR libstdc++/99021
   3278 	* include/std/coroutine (coroutine_handle<P>::from_address): Add
   3279 	noexcept.
   3280 
   3281 2021-01-13  Jonathan Wakely  <jwakely (a] redhat.com>
   3282 
   3283 	PR libstdc++/98605
   3284 	* include/std/mutex (call_once): Use NOLINT to suppress clang
   3285 	analyzer warnings.
   3286 
   3287 2021-01-11  Jonathan Wakely  <jwakely (a] redhat.com>
   3288 
   3289 	Backported from master:
   3290 	2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
   3291 
   3292 	* python/libstdcxx/v6/printers.py (StdExpPathPrinter): Store the
   3293 	name of the type and pass it to the iterator.
   3294 	(StdPathPrinter): Likewise.
   3295 	* testsuite/libstdc++-prettyprinters/filesystem-ts.cc: New test.
   3296 
   3297 2021-01-11  Jonathan Wakely  <jwakely (a] redhat.com>
   3298 
   3299 	Backported from master:
   3300 	2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
   3301 
   3302 	PR libstdc++/96083
   3303 	* include/ext/throw_allocator.h: Use __has_builtin to check for
   3304 	__builtin_sprintf support, and use std::sprintf if necessary.
   3305 
   3306 2021-01-11  Jonathan Wakely  <jwakely (a] redhat.com>
   3307 
   3308 	Backported from master:
   3309 	2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
   3310 
   3311 	PR libstdc++/65480
   3312 	PR libstdc++/68735
   3313 	* python/libstdcxx/v6/printers.py (function_pointer_to_name):
   3314 	New helper function to get the name of a function from its
   3315 	address.
   3316 	(StdExpAnyPrinter.__init__): Use it.
   3317 
   3318 2021-01-11  Jonathan Wakely  <jwakely (a] redhat.com>
   3319 
   3320 	Backported from master:
   3321 	2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
   3322 
   3323 	* testsuite/experimental/filesystem/filesystem_error/cons.cc:
   3324 	Remove -std=gnu++17 option.
   3325 
   3326 2021-01-08  Iain Sandoe  <iain (a] sandoe.co.uk>
   3327 
   3328 	Backported from master:
   3329 	2020-07-17  Iain Sandoe  <iain (a] sandoe.co.uk>
   3330 
   3331 	* include/std/coroutine: Mark the methods of the
   3332 	trivial awaitables as constexpr.
   3333 
   3334 2021-01-03  Iain Sandoe  <iain (a] sandoe.co.uk>
   3335 	    Jakub Jelinek   <jakub (a] redhat.com>
   3336 
   3337 	PR target/97865
   3338 	* configure: Regenerate.
   3339 
   3340 2020-12-03  Jonathan Wakely  <jwakely (a] redhat.com>
   3341 
   3342 	Backported from master:
   3343 	2020-12-03  Jonathan Wakely  <jwakely (a] redhat.com>
   3344 
   3345 	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt:
   3346 	Update.
   3347 	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
   3348 	Update.
   3349 
   3350 2020-12-01  Patrick Palka  <ppalka (a] redhat.com>
   3351 
   3352 	Backported from master:
   3353 	2020-10-12  Patrick Palka  <ppalka (a] redhat.com>
   3354 
   3355 	PR libstdc++/95322
   3356 	* include/std/ranges (take_view::_CI): Define this alias
   3357 	template as per LWG 3449 and remove ...
   3358 	(take_view::_Sentinel::_CI): ... this type alias.
   3359 	(take_view::_Sentinel::operator==): Adjust use of _CI
   3360 	accordingly.  Define a second overload that accepts an iterator
   3361 	of the opposite constness as per LWG 3449.
   3362 	(take_while_view::_Sentinel::operator==): Likewise.
   3363 	* testsuite/std/ranges/adaptors/95322.cc: Add tests for LWG 3449.
   3364 
   3365 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   3366 
   3367 	Backported from master:
   3368 	2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
   3369 
   3370 	PR libstdc++/98001
   3371 	* testsuite/ext/stdio_filebuf/char/79820.cc: Do not pass invalid
   3372 	FILE* to constructor.
   3373 
   3374 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
   3375 
   3376 	Backported from master:
   3377 	2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
   3378 
   3379 	PR libstdc++/97935
   3380 	* include/bits/iterator_concepts.h (__detail::__iter_without_category):
   3381 	New helper concept.
   3382 	(__iterator_traits::__cat): Use __detail::__iter_without_category.
   3383 	* testsuite/24_iterators/associated_types/iterator.traits.cc: New test.
   3384 
   3385 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
   3386 
   3387 	Backported from master:
   3388 	2020-06-04  Jonathan Wakely  <jwakely (a] redhat.com>
   3389 
   3390 	* include/bits/iterator_concepts.h (__detail::__ptr, __detail::__ref)
   3391 	(__detail::__cat, __detail::__diff): Move to class scope in the
   3392 	relevant __iterator_traits specializations.
   3393 	(__iterator_traits<>): Use nested class templates instead of ones from
   3394 	namespace __detail.
   3395 	* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Move to
   3396 	class scope in iterator_traits<common_iterator<I, S>>.
   3397 	(iterator_traits<common_iterator<I, S>>): Use nested class template
   3398 	instead of __detail::__common_iter_ptr.
   3399 
   3400 2020-11-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3401 
   3402 	Backported from master:
   3403 	2020-10-02  Jonathan Wakely  <jwakely (a] redhat.com>
   3404 
   3405 	* testsuite/29_atomics/atomic_float/value_init.cc: Use float
   3406 	instead of double so that __atomic_load_8 isn't needed.
   3407 
   3408 2020-11-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3409 
   3410 	Backported from master:
   3411 	2020-11-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3412 
   3413 	PR libstdc++/92546
   3414 	* include/std/regex (pmr::smatch, pmr::wsmatch): Declare using
   3415 	underlying __normal_iterator type, not nested typedef
   3416 	basic_string::const_iterator.
   3417 
   3418 2020-11-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3419 
   3420 	PR libstdc++/97876
   3421 	* include/std/stop_token (_Stop_state_t): Define default
   3422 	constructor as user-provided not defaulted.
   3423 
   3424 2020-11-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3425 
   3426 	Backported from master:
   3427 	2020-11-19  Jonathan Wakely  <jwakely (a] redhat.com>
   3428 
   3429 	PR libstdc++/95989
   3430 	* config/os/gnu-linux/os_defines.h (_GLIBCXX_NATIVE_THREAD_ID):
   3431 	Define new macro to get reliable thread ID.
   3432 	* include/std/stop_token (_Stop_state_t::_M_request_stop):
   3433 	Use new macro if it's defined.
   3434 	(_Stop_state_t::_M_remove_callback): Likewise.
   3435 	* include/std/thread (this_thread::get_id): Likewise.
   3436 	* testsuite/30_threads/jthread/95989.cc: New test.
   3437 	* testsuite/30_threads/this_thread/95989.cc: New test.
   3438 
   3439 2020-11-18  Patrick Palka  <ppalka (a] redhat.com>
   3440 
   3441 	Backported from master:
   3442 	2020-11-18  Patrick Palka  <ppalka (a] redhat.com>
   3443 
   3444 	* include/std/ranges (join_view::_Iterator::_M_satisfy): Uglify
   3445 	local variable inner.
   3446 	(join_view::_Iterator::operator->): Use _Inner_iter instead of
   3447 	_Outer_iter in the function signature as per LWG 3500.
   3448 	* testsuite/std/ranges/adaptors/join.cc (test08): Test it.
   3449 
   3450 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
   3451 
   3452 	Backported from master:
   3453 	2020-10-06  Jonathan Wakely  <jwakely (a] redhat.com>
   3454 
   3455 	* include/std/ranges (join_view): Remove deduction guide.
   3456 	(views::join): Add explicit template argument list to prevent
   3457 	deducing the wrong type.
   3458 	* testsuite/std/ranges/adaptors/join.cc: Move test for LWG 3474
   3459 	here, from ...
   3460 	* testsuite/std/ranges/adaptors/join_lwg3474.cc: Removed.
   3461 
   3462 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
   3463 
   3464 	Backported from master:
   3465 	2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3466 
   3467 	* include/std/ranges (join_view): Add deduction guide (LWG 3474).
   3468 	* testsuite/std/ranges/adaptors/join_lwg3474.cc: New test.
   3469 
   3470 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
   3471 
   3472 	Backported from master:
   3473 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3474 
   3475 	* include/std/version (__cpp_lib_array_constexpr)
   3476 	(__cpp_lib_constexpr_char_traits): Only define C++17 value when
   3477 	compiling C++17.
   3478 
   3479 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
   3480 
   3481 	Backported from master:
   3482 	2020-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
   3483 
   3484 	* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
   3485 	Update value for C++20.
   3486 	* include/std/version (__cpp_lib_constexpr_char_traits): Likewise.
   3487 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
   3488 	Update expected value.
   3489 
   3490 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
   3491 
   3492 	Backported from master:
   3493 	2020-11-17  Jonathan Wakely  <jwakely (a] redhat.com>
   3494 
   3495 	PR libstdc++/97869
   3496 	* include/precompiled/stdc++.h: Include <coroutine>.
   3497 	* include/std/version (__cpp_lib_span): Check __cpp_lib_concepts
   3498 	before defining.
   3499 
   3500 2020-11-17  Patrick Palka  <ppalka (a] redhat.com>
   3501 
   3502 	Backported from master:
   3503 	2020-11-17  Patrick Palka  <ppalka (a] redhat.com>
   3504 
   3505 	PR libstdc++/97828
   3506 	* include/bits/ranges_algo.h (__search_n_fn::operator()): Check
   3507 	random_access_iterator before using the backtracking
   3508 	implementation.  When the backwards scan fails prematurely,
   3509 	reset __remainder appropriately.
   3510 	* testsuite/25_algorithms/search_n/97828.cc: New test.
   3511 
   3512 2020-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
   3513 
   3514 	Backported from master:
   3515 	2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   3516 
   3517 	PR libstdc++/93456
   3518 	* src/c++11/futex.cc (relative_timespec): Remove redundant check
   3519 	negative values.
   3520 	* testsuite/30_threads/future/members/93456.cc: New.
   3521 
   3522 2020-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
   3523 
   3524 	Backported from master:
   3525 	2020-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
   3526 
   3527 	* src/c++11/futex.cc (relative_timespec): New function to
   3528 	create relative time from two absolute times.
   3529 	(__atomic_futex_unsigned_base::_M_futex_wait_until): Use
   3530 	relative_timespec.
   3531 
   3532 2020-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
   3533 
   3534 	Backported from master:
   3535 	2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   3536 
   3537 	* include/std/future (future::wait_for): Do not wait for
   3538 	durations less than or equal to zero.
   3539 	* testsuite/30_threads/future/members/poll.cc: New test.
   3540 
   3541 2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   3542 
   3543 	Backported from master:
   3544 	2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   3545 
   3546 	PR libstdc++/97798
   3547 	* include/ext/numeric_traits.h (__glibcxx_signed)
   3548 	(__glibcxx_digits, __glibcxx_min, __glibcxx_max): Remove
   3549 	macros.
   3550 	(__is_integer_nonstrict::__width): Define new constant.
   3551 	(__numeric_traits_integer): Define constants in terms of each
   3552 	other and __is_integer_nonstrict::__width, rather than the
   3553 	removed macros.
   3554 	(_GLIBCXX_INT_N_TRAITS): Macro to define explicit
   3555 	specializations for non-standard integer types.
   3556 
   3557 2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   3558 
   3559 	PR libstdc++/96042
   3560 	* testsuite/std/ranges/iota/96042.cc: Only assert that the
   3561 	difference type is wider than long long if __int128 is
   3562 	supported.
   3563 
   3564 2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   3565 
   3566 	Backported from master:
   3567 	2020-08-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3568 
   3569 	* include/bits/iterator_concepts.h [__STRICT_ANSI__]
   3570 	(incrementable_traits<__int128>): Define specialization.
   3571 	(incrementable_traits<unsigned __int128>): Likewise.
   3572 	* testsuite/std/ranges/iota/96042.cc: Test iota_view with
   3573 	__int128.
   3574 
   3575 2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   3576 
   3577 	Backported from master:
   3578 	2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   3579 		    Patrick Palka  <ppalka (a] redhat.com>
   3580 
   3581 	PR libstdc++/96042
   3582 	* include/bits/range_access.h (__detail::__to_unsigned_like):
   3583 	Do not use make_unsigned_t<T> in the return type, as it can
   3584 	result in an error before the integral<T> constraint is checked.
   3585 	[__STRICT_ANSI__]: Add overloads for 128-bit integer types.
   3586 	(__detail::__make_unsigned_like_t): Define as the return type
   3587 	of __to_unsigned_like.
   3588 	* testsuite/std/ranges/subrange/96042.cc: New test.
   3589 
   3590 2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   3591 
   3592 	Backported from master:
   3593 	2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   3594 
   3595 	PR libstdc++/96042
   3596 	* include/ext/numeric_traits.h (__is_integer_nonstrict): New
   3597 	trait which is true for 128-bit integers even in strict modes.
   3598 	(__numeric_traits_integer, __numeric_traits): Use
   3599 	__is_integer_nonstrict instead of __is_integer.
   3600 	* include/std/limits [__STRICT_ANSI__ && __SIZEOF_INT128__]
   3601 	(numeric_limits<__int128>, (numeric_limits<unsigned __int128>):
   3602 	Define.
   3603 	* testsuite/std/ranges/iota/96042.cc: New test.
   3604 
   3605 2020-11-11  Paul Scharnofske  <asynts (a] gmail.com>
   3606 
   3607 	Backported from master:
   3608 	2020-11-11  Paul Scharnofske  <asynts (a] gmail.com>
   3609 
   3610 	* include/std/thread (jthread::operator=(jthread&&)): Transfer
   3611 	any existing state to a temporary that will request a stop and
   3612 	then join.
   3613 	* testsuite/30_threads/jthread/jthread.cc: Test move assignment.
   3614 
   3615 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   3616 
   3617 	Backported from master:
   3618 	2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   3619 
   3620 	PR libstdc++/96269
   3621 	* include/std/optional (operator==, operator!=, operator<)
   3622 	(operator>, operator<=, operator>=): Fix types used in
   3623 	SFINAE constraints.
   3624 	* testsuite/20_util/optional/relops/96269.cc: New test.
   3625 
   3626 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   3627 
   3628 	Backported from master:
   3629 	2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   3630 
   3631 	PR libstdc++/97731
   3632 	* src/filesystem/dir.cc (recursive_directory_iterator): Call the
   3633 	right overload of _Dir::advance.
   3634 	* testsuite/experimental/filesystem/iterators/97731.cc: New test.
   3635 
   3636 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   3637 
   3638 	Backported from master:
   3639 	2020-10-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3640 
   3641 	PR libstdc++/97362
   3642 	* doc/html/manual/source_code_style.html: Regenerate.
   3643 	* doc/xml/manual/appendix_contributing.xml: Add __deref to
   3644 	BADNAMES.
   3645 	* include/debug/functions.h (_Irreflexive_checker::__deref):
   3646 	Rename to __ref.
   3647 	* testsuite/17_intro/badnames.cc: Check __deref.
   3648 
   3649 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   3650 
   3651 	Backported from master:
   3652 	2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   3653 
   3654 	PR libstdc++/92285
   3655 	* doc/xml/manual/evolution.xml: Document change to base class.
   3656 	* doc/html/manual/api.html: Regenerate.
   3657 
   3658 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   3659 
   3660 	* doc/xml/manual/evolution.xml: Document new C++20 headers.
   3661 	* doc/html/*: Regenerate.
   3662 
   3663 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   3664 
   3665 	Backported from master:
   3666 	2020-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   3667 
   3668 	* doc/xml/manual/evolution.xml: Document deprecation of
   3669 	__is_nullptr_t and removal of std::allocator members.
   3670 	* doc/html/manual/api.html: Regenerate.
   3671 
   3672 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   3673 
   3674 	Backported from master:
   3675 	2020-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   3676 
   3677 	* doc/xml/manual/containers.xml: Replace <xref> with <link>.
   3678 	* doc/xml/manual/evolution.xml: Likewise.
   3679 	* doc/html/manual/api.html: Regenerate.
   3680 	* doc/html/manual/containers.html: Regenerate.
   3681 
   3682 2020-10-29  Patrick Palka  <ppalka (a] redhat.com>
   3683 
   3684 	Backported from master:
   3685 	2020-10-29  Patrick Palka  <ppalka (a] redhat.com>
   3686 
   3687 	* testsuite/25_algorithms/lexicographical_compare/constrained.cc:
   3688 	(test03): Fix initializing the vector vy with the array y of size 4.
   3689 
   3690 2020-10-28  Patrick Palka  <ppalka (a] redhat.com>
   3691 
   3692 	Backported from master:
   3693 	2020-10-23  Patrick Palka  <ppalka (a] redhat.com>
   3694 
   3695 	* include/std/ranges (single_view::single_view): Mark the
   3696 	in place constructor explicit as per LWG 3428.
   3697 	(take_view): Remove the constraint on the deduction guide's
   3698 	template parameter as per LWG 3447.
   3699 
   3700 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   3701 
   3702 	Backported from master:
   3703 	2020-09-22  Patrick Palka  <ppalka (a] redhat.com>
   3704 
   3705 	* include/std/span (span::front): Remove static_assert.
   3706 	(span::back): Likewise.
   3707 	(span::operator[]): Likewise.
   3708 	* testsuite/23_containers/span/back_neg.cc: Rewrite to verify
   3709 	that we check the preconditions of back() only when it's called.
   3710 	* testsuite/23_containers/span/front_neg.cc: Likewise for
   3711 	front().
   3712 	* testsuite/23_containers/span/index_op_neg.cc: Likewise for
   3713 	operator[].
   3714 
   3715 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   3716 
   3717 	Backported from master:
   3718 	2020-10-12  Patrick Palka  <ppalka (a] redhat.com>
   3719 
   3720 	* include/std/ranges (take_while_view::begin): Constrain the
   3721 	const overload further as per LWG 3450.
   3722 	(take_while_view::end): Likewise.
   3723 	* testsuite/std/ranges/adaptors/take_while.cc: Add test for LWG
   3724 	3450.
   3725 
   3726 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   3727 
   3728 	Backported from master:
   3729 	2020-09-22  Patrick Palka  <ppalka (a] redhat.com>
   3730 
   3731 	* include/bits/stl_algo.h (__sample): Exit early when the
   3732 	input range is empty.
   3733 	* testsuite/25_algorithms/sample/3.cc: New test.
   3734 
   3735 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   3736 
   3737 	Backported from master:
   3738 	2020-09-22  Patrick Palka  <ppalka (a] redhat.com>
   3739 
   3740 	* include/bits/stl_algo.h (for_each_n): Mark constexpr for C++20.
   3741 	(search): Likewise for the overload that takes a searcher.
   3742 	* testsuite/25_algorithms/for_each/constexpr.cc: Test constexpr
   3743 	std::for_each_n.
   3744 	* testsuite/25_algorithms/search/constexpr.cc: Test constexpr
   3745 	std::search overload that takes a searcher.
   3746 
   3747 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   3748 
   3749 	Backported from master:
   3750 	2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   3751 
   3752 	PR libstdc++/95322
   3753 	* include/std/ranges (transform_view::sentinel::__distance_from):
   3754 	Give this a deduced return type.
   3755 	(transform_view::sentinel::operator-): Adjust the return type so
   3756 	that it's based on the constness of the iterator rather than
   3757 	that of the sentinel.
   3758 	* testsuite/std/ranges/adaptors/95322.cc: Refer to LWG 3488.
   3759 
   3760 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   3761 
   3762 	Backported from master:
   3763 	2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   3764 
   3765 	* include/std/ranges (elements_view::begin): Adjust constraints.
   3766 	(elements_view::end): Likewise.
   3767 	(elements_view::_Sentinel::operator==): Templatize to take both
   3768 	_Iterator<true> and _Iterator<false>.
   3769 	(elements_view::_Sentinel::operator-): Likewise.
   3770 	* testsuite/std/ranges/adaptors/elements.cc: Add testcase for
   3771 	the example from P1994R1.
   3772 	* testsuite/std/ranges/adaptors/lwg3406.cc: New test.
   3773 
   3774 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   3775 
   3776 	Backported from master:
   3777 	2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   3778 
   3779 	* include/std/ranges (elements_view::end): Replace these two
   3780 	overloads with four new overloads.
   3781 	(elements_view::_Iterator::operator==): Remove.
   3782 	(elements_view::_Iterator::operator-): Likewise.
   3783 	(elements_view::_Sentinel): Define.
   3784 
   3785 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3786 
   3787 	Backported from master:
   3788 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3789 
   3790 	* python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__):
   3791 	Use gdb.Type.strip_typedefs().
   3792 	* testsuite/libstdc++-prettyprinters/compat.cc: Use a typedef in
   3793 	the emulated old type.
   3794 
   3795 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3796 
   3797 	Backported from master:
   3798 	2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   3799 
   3800 	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
   3801 	(basic_string(const _CharT*, const _Alloc&)): Constrain to
   3802 	require an allocator-like type to fix CTAD ambiguity (LWG 3706).
   3803 	Define inline.
   3804 	* include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
   3805 	(basic_string(const _CharT*, const _Alloc&)): Remove non-inline
   3806 	definition.
   3807 	* testsuite/21_strings/basic_string/cons/char/deduction.cc:
   3808 	Remove dg-skip-if.
   3809 	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
   3810 	Likewise.
   3811 
   3812 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3813 
   3814 	Backported from master:
   3815 	2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   3816 
   3817 	* testsuite/21_strings/basic_string/allocator/char/minimal.cc:
   3818 	Do not require cxx11-abi effective target.
   3819 	* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
   3820 	Likewise.
   3821 	* testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
   3822 
   3823 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3824 
   3825 	Backported from master:
   3826 	2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   3827 
   3828 	* include/bits/ios_base.h (ios_base::failure): Add constructors
   3829 	takeing error_code argument. Add code() member function.
   3830 	* testsuite/27_io/ios_base/failure/cxx11.cc: Allow test to
   3831 	run for the old ABI but do not check for derivation from
   3832 	std::system_error.
   3833 	* testsuite/27_io/ios_base/failure/error_code.cc: New test.
   3834 
   3835 2020-10-20  Nuno Lopes  <nuno.lopes (a] ist.utl.pt>
   3836 
   3837 	Backported from master:
   3838 	2020-10-13  Nuno Lopes  <nuno.lopes (a] ist.utl.pt>
   3839 
   3840 	* include/bits/stl_algo.h (any_of): Fix incorrect description
   3841 	in comment.
   3842 
   3843 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3844 
   3845 	Backported from master:
   3846 	2020-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   3847 
   3848 	* include/bits/stl_algobase.h (copy, move, copy_backward)
   3849 	(move_backward): Fix documentation for returned iterator.
   3850 
   3851 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3852 
   3853 	Backported from master:
   3854 	2020-09-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3855 
   3856 	* doc/xml/manual/configure.xml: Correct name of option.
   3857 	* doc/html/*: Regenerate.
   3858 
   3859 2020-10-19  Jonathan Wakely  <jwakely (a] redhat.com>
   3860 
   3861 	Backported from master:
   3862 	2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3863 
   3864 	PR libstdc++/97132
   3865 	* include/std/memory (assume_aligned): Do not use
   3866 	__builtin_assume_aligned during constant evaluation.
   3867 	* testsuite/20_util/assume_aligned/1.cc: Improve test.
   3868 	* testsuite/20_util/assume_aligned/97132.cc: New test.
   3869 
   3870 2020-10-15  Jonathan Wakely  <jwakely (a] redhat.com>
   3871 
   3872 	Backported from master:
   3873 	2020-10-15  Jonathan Wakely  <jwakely (a] redhat.com>
   3874 
   3875 	* include/std/concepts: Fix typos in copyright notice.
   3876 	* include/std/ranges: Likewise.
   3877 
   3878 2020-10-15  Jonathan Wakely  <jwakely (a] redhat.com>
   3879 
   3880 	* doc/xml/manual/status_cxx2020.xml: Remove red background for
   3881 	completed feature.
   3882 	* doc/html/manual/status.html: Regenerate.
   3883 
   3884 2020-10-13  Patrick Palka  <ppalka (a] redhat.com>
   3885 
   3886 	Backported from master:
   3887 	2020-10-08  Patrick Palka  <ppalka (a] redhat.com>
   3888 
   3889 	PR libstdc++/95788
   3890 	* include/bits/ranges_uninitialized.h:
   3891 	(__construct_at_fn::operator()): Rewrite in terms of
   3892 	std::construct_at.  Declare it conditionally noexcept.  Qualify
   3893 	calls to declval in its requires-clause.
   3894 	* testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
   3895 	New test.
   3896 
   3897 2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   3898 
   3899 	Backported from master:
   3900 	2020-10-07  Jonathan Wakely  <jwakely (a] redhat.com>
   3901 
   3902 	* include/bits/random.h (seed_seq(initializer_list<T>)): Rename
   3903 	parameter to use reserved name.
   3904 	* include/bits/ranges_algo.h (shift_left, shift_right): Rename
   3905 	template parameters to use reserved name.
   3906 	* testsuite/17_intro/names.cc: Check "il". Do not check "d" and
   3907 	"y" in C++20 mode.
   3908 
   3909 2020-10-06  Patrick Palka  <ppalka (a] redhat.com>
   3910 
   3911 	Backported from master:
   3912 	2020-10-02  Patrick Palka  <ppalka (a] redhat.com>
   3913 
   3914 	* include/bits/stl_iterator.h (reverse_iterator::iter_move):
   3915 	Define for C++20 as per P0896.
   3916 	(reverse_iterator::iter_swap): Likewise.
   3917 	(move_iterator::operator*): Apply P0896 changes for C++20.
   3918 	(move_iterator::operator[]): Likewise.
   3919 	* testsuite/24_iterators/reverse_iterator/cust.cc: New test.
   3920 
   3921 2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   3922 
   3923 	Backported from master:
   3924 	2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   3925 
   3926 	PR libstdc++/97167
   3927 	* src/c++17/fs_path.cc (path::_Parser::root_path()): Check
   3928 	for empty string before inspecting the first character.
   3929 	* testsuite/27_io/filesystem/path/append/source.cc: Append
   3930 	empty string_view to path.
   3931 
   3932 2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   3933 
   3934 	Backported from master:
   3935 	2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   3936 
   3937 	PR libstdc++/96803
   3938 	* include/std/tuple
   3939 	(_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
   3940 	Use correct value category in __use_alloc call.
   3941 	* testsuite/20_util/tuple/cons/96803.cc: Check with constructors
   3942 	that require correct value category to be used.
   3943 
   3944 2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   3945 
   3946 	Backported from master:
   3947 	2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   3948 
   3949 	PR libstdc++/96803
   3950 	* include/std/tuple
   3951 	(_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
   3952 	Replace parameter pack with a type parameter and a pack and pass
   3953 	the first type to __use_alloc.
   3954 	* testsuite/20_util/tuple/cons/96803.cc: New test.
   3955 
   3956 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3957 
   3958 	Backported from master:
   3959 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3960 
   3961 	PR libstdc++/94681
   3962 	* src/c++17/fs_ops.cc (read_symlink): Use posix::lstat instead
   3963 	of calling ::lstat directly.
   3964 	* src/filesystem/ops.cc (read_symlink): Likewise.
   3965 
   3966 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3967 
   3968 	Backported from master:
   3969 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3970 
   3971 	PR libstdc++/94681
   3972 	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Do not depend on
   3973 	$enable_libstdcxx_filesystem_ts.
   3974 	* configure: Regenerate.
   3975 
   3976 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3977 
   3978 	Backported from master:
   3979 	2020-09-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3980 
   3981 	PR libstdc++/97101
   3982 	* include/std/functional (bind_front): Fix order of parameters
   3983 	in is_nothrow_constructible_v specialization.
   3984 	* testsuite/20_util/function_objects/bind_front/97101.cc: New test.
   3985 
   3986 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3987 
   3988 	Backported from master:
   3989 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   3990 
   3991 	PR libstdc++/94160
   3992 	* src/c++17/memory_resource.cc (munge_options): Round
   3993 	max_blocks_per_chunk to a multiple of four.
   3994 	(__pool_resource::_M_alloc_pools()): Simplify slightly.
   3995 	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
   3996 	Check that valid pointers are returned when small values are
   3997 	used for max_blocks_per_chunk.
   3998 
   3999 2020-09-03  Jonathan Wakely  <jwakely (a] redhat.com>
   4000 
   4001 	Backported from master:
   4002 	2020-07-07  Jonathan Wakely  <jwakely (a] redhat.com>
   4003 
   4004 	* include/Makefile.am: Remove bits/int_limits.h.
   4005 	* include/Makefile.in: Regenerate.
   4006 	* include/bits/int_limits.h: Removed.
   4007 	* include/bits/parse_numbers.h (_Select_int_base): Replace
   4008 	__int_limits with __int_traits.
   4009 	* include/bits/range_access.h (_SSize::operator()): Likewise.
   4010 	* include/ext/numeric_traits.h (__numeric_traits_integer): Add
   4011 	static assertion.
   4012 	(__int_traits): New alias template.
   4013 	* include/std/bit (__rotl, __rotr, __countl_zero, __countl_one)
   4014 	(__countr_zero, __countr_one, __popcount, __bit_ceil)
   4015 	(__bit_floor, __bit_width) Replace __int_limits with
   4016 	__int_traits.
   4017 	* include/std/charconv (__to_chars_8, __from_chars_binary)
   4018 	(__from_chars_alpha_to_num, from_chars): Likewise.
   4019 	* include/std/memory_resource (polymorphic_allocator::allocate)
   4020 	(polymorphic_allocator::allocate_object): Likewise.
   4021 	* include/std/string_view (basic_string_view::_S_compare):
   4022 	Likewise.
   4023 	* include/std/utility (cmp_equal, cmp_less, in_range): Likewise.
   4024 
   4025 2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   4026 
   4027 	Backported from master:
   4028 	2020-08-28  Jonathan Wakely  <jwakely (a] redhat.com>
   4029 
   4030 	PR libstdc++/92978
   4031 	* include/std/numeric (__abs_integral): Replace with ...
   4032 	(__detail::__absu): New function template that returns an
   4033 	unsigned type, guaranteeing it can represent the most
   4034 	negative signed value.
   4035 	(__detail::__gcd, __detail::__lcm): Require arguments to
   4036 	be unsigned and therefore already non-negative.
   4037 	(gcd, lcm): Convert arguments to absolute value as unsigned
   4038 	type before calling __detail::__gcd or __detail::__lcm.
   4039 	* include/experimental/numeric (gcd, lcm): Likewise.
   4040 	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust expected
   4041 	errors.
   4042 	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
   4043 	* testsuite/26_numerics/gcd/92978.cc: New test.
   4044 	* testsuite/26_numerics/lcm/92978.cc: New test.
   4045 	* testsuite/experimental/numeric/92978.cc: New test.
   4046 
   4047 2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   4048 
   4049 	Backported from master:
   4050 	2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   4051 
   4052 	PR libstdc++/96851
   4053 	* include/bits/cpp_type_traits.h (__is_memcmp_ordered):
   4054 	New trait that says if memcmp can be used for ordering.
   4055 	(__is_memcmp_ordered_with): Likewise, for two types.
   4056 	* include/bits/ranges_algo.h (__lexicographical_compare_fn):
   4057 	Use new traits instead of __is_byte and __numeric_traits.
   4058 	* include/bits/stl_algobase.h (__lexicographical_compare_aux1)
   4059 	(__is_byte_iter): Likewise.
   4060 	* include/std/array (operator<=>): Likewise. Only use memcmp
   4061 	when std::is_constant_evaluated() is false.
   4062 	* testsuite/23_containers/array/comparison_operators/96851.cc:
   4063 	New test.
   4064 	* testsuite/23_containers/array/tuple_interface/get_neg.cc:
   4065 	Adjust dg-error line numbers.
   4066 
   4067 2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   4068 
   4069 	* include/bits/stl_iterator.h (counted_iterator::operator++(int)):
   4070 	Use __throw_exception_again macro.
   4071 
   4072 2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   4073 
   4074 	Backported from master:
   4075 	2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   4076 
   4077 	PR libstdc++/71960
   4078 	* include/experimental/string_view (basic_string_view):
   4079 	Enable debug assertions.
   4080 	* include/std/string_view (basic_string_view):
   4081 	Likewise.
   4082 
   4083 2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   4084 
   4085 	Backported from master:
   4086 	2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   4087 
   4088 	PR libstdc++/96766
   4089 	* include/std/variant (_Variant_storage): Replace implicit
   4090 	conversions from size_t to __index_type with explicit casts.
   4091 
   4092 2020-08-21  Jonathan Wakely  <jwakely (a] redhat.com>
   4093 
   4094 	Backported from master:
   4095 	2020-08-21  Jonathan Wakely  <jwakely (a] redhat.com>
   4096 
   4097 	PR libstdc++/96718
   4098 	* testsuite/25_algorithms/pstl/feature_test-2.cc: Require
   4099 	tbb-backend effective target.
   4100 	* testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
   4101 	* testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
   4102 	* testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
   4103 
   4104 2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   4105 
   4106 	Backported from master:
   4107 	2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   4108 
   4109 	* include/bits/c++config (_GLIBCXX_DEPRECATED_SUGGEST): New
   4110 	macro for "use 'foo' instead" message in deprecated warnings.
   4111 	* include/bits/ios_base.h (io_state, open_mode, seek_dir)
   4112 	(streampos, streamoff): Use _GLIBCXX_DEPRECATED_SUGGEST.
   4113 	* include/std/streambuf (stossc): Replace C++11 attribute
   4114 	with _GLIBCXX_DEPRECATED_SUGGEST.
   4115 	* include/std/type_traits (__is_nullptr_t): Use
   4116 	_GLIBCXX_DEPRECATED_SUGGEST instead of _GLIBCXX_DEPRECATED.
   4117 	* testsuite/27_io/types/1.cc: Check for deprecated warnings.
   4118 	Also check for io_state, open_mode and seek_dir typedefs.
   4119 
   4120 2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   4121 
   4122 	PR libstdc++/89760
   4123 	* testsuite/experimental/net/execution_context/make_service.cc:
   4124 	Add dg-require-gthreads.
   4125 	* testsuite/experimental/net/executor/1.cc: Likewise.
   4126 	* testsuite/experimental/net/headers.cc: Likewise.
   4127 	* testsuite/experimental/net/internet/address/v4/comparisons.cc:
   4128 	Likewise.
   4129 	* testsuite/experimental/net/internet/address/v4/cons.cc:
   4130 	Likewise.
   4131 	* testsuite/experimental/net/internet/address/v4/creation.cc:
   4132 	Likewise.
   4133 	* testsuite/experimental/net/internet/address/v4/members.cc:
   4134 	Likewise.
   4135 	* testsuite/experimental/net/internet/resolver/base.cc:
   4136 	Likewise.
   4137 	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
   4138 	Likewise.
   4139 	* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
   4140 	Likewise.
   4141 	* testsuite/experimental/net/socket/basic_socket.cc: Likewise.
   4142 	* testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
   4143 	* testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
   4144 	* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
   4145 
   4146 2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   4147 
   4148 	Backported from master:
   4149 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   4150 
   4151 	PR libstdc++/95749
   4152 	* src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
   4153 	(stat_type): Change to __stat64.
   4154 	(stat): Use _wstat64.
   4155 
   4156 2020-08-07  Jonathan Wakely  <jwakely (a] redhat.com>
   4157 
   4158 	Backported from master:
   4159 	2020-08-07  Jonathan Wakely  <jwakely (a] redhat.com>
   4160 
   4161 	PR libstdc++/96303
   4162 	* include/debug/bitset (bitset::operator==): Call _M_base() on
   4163 	right operand.
   4164 	(bitset::operator!=): Likewise, but don't define it at all when
   4165 	default comparisons are supported by the compiler.
   4166 	* testsuite/23_containers/bitset/operations/96303.cc: New test.
   4167 
   4168 2020-08-06  Jonathan Wakely  <jwakely (a] redhat.com>
   4169 
   4170 	Backported from master:
   4171 	2020-08-06  Jonathan Wakely  <jwakely (a] redhat.com>
   4172 
   4173 	PR libstdc++/96484
   4174 	* src/c++17/fs_ops.cc (fs::read_symlink): Return an error
   4175 	immediately for non-symlinks.
   4176 	* src/filesystem/ops.cc (fs::read_symlink): Likewise.
   4177 
   4178 2020-07-23  Release Manager
   4179 
   4180 	* GCC 10.2.0 released.
   4181 
   4182 2020-07-09  Jonathan Wakely  <jwakely (a] redhat.com>
   4183 
   4184 	Backported from master:
   4185 	2020-06-08  Jonathan Wakely  <jwakely (a] redhat.com>
   4186 
   4187 	* include/bits/unique_ptr.h (operator<<): Define for C++20.
   4188 	* testsuite/20_util/unique_ptr/io/lwg2948.cc: New test.
   4189 	* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error
   4190 	line number.
   4191 	* testsuite/20_util/default_delete/void_neg.cc: Likewise.
   4192 
   4193 2020-07-09  Jonathan Wakely  <jwakely (a] redhat.com>
   4194 
   4195 	Backported from master:
   4196 	2020-05-27  Jonathan Wakely  <jwakely (a] redhat.com>
   4197 
   4198 	PR libstdc++/95322
   4199 	* include/std/ranges (transform_view::_Sentinel): Allow hidden
   4200 	friends to work with _Iterator<true> and _Iterator<false>.
   4201 	(join_view::_Sentinel): Likewise.
   4202 	* testsuite/std/ranges/adaptors/95322.cc: New test.
   4203 
   4204 2020-07-09  Jonathan Wakely  <jwakely (a] redhat.com>
   4205 
   4206 	Backported from master:
   4207 	2020-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   4208 
   4209 	PR libstdc++/94936
   4210 	* src/c++17/memory_resource.cc (synchronized_pool_resource::_TPools):
   4211 	Add comment about single-threaded behaviour.
   4212 	(synchronized_pool_resource::_TPools::move_nonempty_chunks()): Hoist
   4213 	class member access out of loop.
   4214 	(synchronized_pool_resource::synchronized_pool_resource())
   4215 	(synchronized_pool_resource::~synchronized_pool_resource())
   4216 	(synchronized_pool_resource::release()): Check __gthread_active_p
   4217 	before creating and/or deleting the thread-specific data key.
   4218 	(synchronized_pool_resource::_M_thread_specific_pools()): Adjust
   4219 	assertions.
   4220 	(synchronized_pool_resource::do_allocate(size_t, size_t)): Add fast
   4221 	path for single-threaded case.
   4222 	(synchronized_pool_resource::do_deallocate(void*, size_t, size_t)):
   4223 	Likewise. Return if unable to find a pool that owns the allocation.
   4224 	* testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
   4225 	New test.
   4226 	* testsuite/20_util/synchronized_pool_resource/cons_single.cc: New
   4227 	test.
   4228 	* testsuite/20_util/synchronized_pool_resource/release_single.cc: New
   4229 	test.
   4230 
   4231 2020-07-09  Jonathan Wakely  <jwakely (a] redhat.com>
   4232 
   4233 	Backported from master:
   4234 	2020-05-19  Jonathan Wakely  <jwakely (a] redhat.com>
   4235 
   4236 	PR libstdc++/94087
   4237 	* src/c++11/random.cc (__x86_rdseed): Allow fallback function to be
   4238 	passed in.
   4239 	(__x86_rdseed_rdrand): New function that uses rdseed with rdrand
   4240 	fallback.
   4241 	(random_device::_M_init): Use __x86_rdseed_rdrand when both
   4242 	instructions are available.
   4243 	* testsuite/26_numerics/random/random_device/94087.cc: New test.
   4244 
   4245 2020-07-02  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   4246 
   4247 	Backported from master:
   4248 	2020-07-02  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   4249 
   4250 	PR libstdc++/91807
   4251 	* include/std/variant
   4252 	(_Copy_assign_base::operator=(const _Copy_assign_base&):
   4253 	Do the move-assignment from a temporary so that the temporary
   4254 	is constructed with an explicit index.
   4255 	* testsuite/20_util/variant/91807.cc: New.
   4256 
   4257 2020-07-02  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   4258 
   4259 	Backported from master:
   4260 	2020-07-02  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   4261 
   4262 	PR libstdc++/91153
   4263 	PR target/93224
   4264 	* testsuite/29_atomics/atomic_float/1.cc: Use different values
   4265 	for tests.
   4266 	* testsuite/29_atomics/atomic_ref/float.cc: Likewise.
   4267 
   4268 2020-07-01  Jonathan Wakely  <jwakely (a] redhat.com>
   4269 
   4270 	Backported from master:
   4271 	2020-06-16  Jonathan Wakely  <jwakely (a] redhat.com>
   4272 
   4273 	PR libstdc++/95282
   4274 	* include/bits/atomic_base.h (__atomic_impl::load): Add
   4275 	const-qualifier to parameter so that _Tp is deduced as the
   4276 	non-const type, and use _Val to get the unqualified type.
   4277 	(__atomic_impl::exchange): Use the _Val alias to remove
   4278 	volatile from the reinterpret_cast result type.
   4279 	* testsuite/29_atomics/atomic_float/95282.cc: New test.
   4280 
   4281 2020-07-01  Jonathan Wakely  <jwakely (a] redhat.com>
   4282 
   4283 	Backported from master:
   4284 	2020-07-01  Jonathan Wakely  <jwakely (a] redhat.com>
   4285 
   4286 	PR libstdc++/94627
   4287 	* include/bits/regex.h (operator==, operator!=): Remove noexcept
   4288 	equality comparisons for match_results.
   4289 	* testsuite/28_regex/match_results/94627.cc: New test.
   4290 
   4291 2020-06-29  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   4292 
   4293 	Backported from master:
   4294 	2020-06-28  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   4295 
   4296 	PR libstdc++/95915
   4297 	* include/std/variant (_Uninitialized):
   4298 	Adjust the condition and the comment.
   4299 	* testsuite/20_util/variant/95915.cc: New.
   4300 	* testsuite/20_util/variant/compile.cc: Add new test.
   4301 
   4302 2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   4303 
   4304 	Backported from master:
   4305 	2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   4306 
   4307 	* include/std/charconv (__from_chars_binary): Ignore leading zeros.
   4308 	* testsuite/20_util/from_chars/1.cc: Check "0x1" for all bases,
   4309 	not just 10 and 16.
   4310 	* testsuite/20_util/from_chars/3.cc: New test.
   4311 
   4312 2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   4313 
   4314 	Backported from master:
   4315 	2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   4316 
   4317 	* include/bits/stl_algobase.h (__find_if): Add FALLTHRU markers.
   4318 	* include/std/charconv (__detail::__to_chars): Avoid
   4319 	-Wsign-compare warning.
   4320 
   4321 2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   4322 
   4323 	Backported from master:
   4324 	2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   4325 
   4326 	PR libstdc++/95851
   4327 	* include/std/charconv (__to_chars_i): Check for zero-sized
   4328 	buffer unconditionally.
   4329 	* testsuite/20_util/to_chars/95851.cc: New test.
   4330 
   4331 2020-06-22  Jason Merrill  <jason (a] redhat.com>
   4332 
   4333 	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
   4334 	Remove greedy_ops tests.
   4335 	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
   4336 	Remove greedy_ops tests.
   4337 
   4338 2020-06-11  Patrick Palka  <ppalka (a] redhat.com>
   4339 
   4340 	PR libstdc++/95578
   4341 	* include/bits/ranges_algo.h (__lexicographical_compare_fn):
   4342 	Also check that the iterator and sentinel have the same type before
   4343 	applying the unwrapping optimization for __normal_iterator.
   4344 	Split the check into two, one for the first iterator/sentinel
   4345 	pair and another for second iterator/sentinel pair.  Remove uses
   4346 	of __niter_base, and remove uses of std::move on a
   4347 	__normal_iterator.
   4348 	* include/bits/ranges_algobase.h (__equal_fn): Likewise.
   4349 	(__copy_or_move): Likewise.  Perform similar adjustments for
   4350 	the reverse_iterator and move_iterator optimizations.  Inline
   4351 	the checks into the if-constexprs, and use using-declarations to
   4352 	make them less visually noisy.  Remove uses of __niter_wrap.
   4353 	(__copy_or_move_backward): Likewise.
   4354 	* testsuite/25_algorithms/copy/95578.cc: New test.
   4355 	* testsuite/25_algorithms/copy_backward/95578.cc: New test.
   4356 	* testsuite/25_algorithms/equal/95578.cc: New test.
   4357 	* testsuite/25_algorithms/lexicographical_compare/95578.cc: New test.
   4358 	* testsuite/25_algorithms/move/95578.cc: New test.
   4359 	* testsuite/25_algorithms/move_backward/95578.cc: New test.
   4360 
   4361 2020-05-28  Patrick Palka  <ppalka (a] redhat.com>
   4362 
   4363 	PR libstdc++/95322
   4364 	* include/bits/stl_iterator.h (__detail::_Common_iter_proxy):
   4365 	Remove and instead define it ...
   4366 	(common_iterator::_Proxy): ... here.
   4367 	(common_iterator::operator->): Use it.
   4368 	* testsuite/24_iterators/common_iterator/2.cc: New test.
   4369 	* testsuite/std/ranges/adaptors/95322.cc: New test.
   4370 
   4371 2020-05-26  Alexandre Oliva  <oliva (a] adacore.com>
   4372 
   4373 	PR libstdc++/77691
   4374 	* include/experimental/memory_resource
   4375 	(__resource_adaptor_imp::do_allocate): Handle max_align_t on
   4376 	x86-vxworks as on x86-solaris.
   4377 	(__resource_adaptor_imp::do_deallocate): Likewise.
   4378 	* testsuite/experimental/memory_resource/new_delete_resource.cc:
   4379 	Drop xfail.
   4380 	(BAD_MAX_ALIGN_T): Define on x86-vxworks as on x86-solaris.
   4381 	(test03): Drop max-align test for char-aligned alloc.
   4382 
   4383 2020-05-23  Jonathan Wakely  <jwakely (a] redhat.com>
   4384 
   4385 	Backport from mainline
   4386 	2020-05-23  Jonathan Wakely  <jwakely (a] redhat.com>
   4387 
   4388 	* include/bits/fs_path.h (__detail::_S_range_begin)
   4389 	(__detail::_S_range_end): Remove unintentional static specifiers.
   4390 	* include/experimental/bits/fs_path.h (__detail::_S_range_begin)
   4391 	(__detail::_S_range_end): Likewise.
   4392 
   4393 2020-05-23  Jonathan Wakely  <jwakely (a] redhat.com>
   4394 
   4395 	Backport from mainline
   4396 	2020-05-23  Jonathan Wakely  <jwakely (a] redhat.com>
   4397 
   4398 	PR libstdc++/95289
   4399 	* include/debug/helper_functions.h (__get_distance): Only declare
   4400 	as a constexpr function for C++14 and up.
   4401 	* testsuite/25_algorithms/copy/debug/95289.cc: New test.
   4402 
   4403 2020-05-21  Jonathan Wakely  <jwakely (a] redhat.com>
   4404 
   4405 	Backport from mainline
   4406 	2020-05-21  Jonathan Wakely  <jwakely (a] redhat.com>
   4407 
   4408 	* include/experimental/executor (use_future_t::use_future_t()): Fix
   4409 	incorrect noexcept-specifier.
   4410 	* include/experimental/internet (basic_resolver_results): Adjust
   4411 	whitespace.
   4412 	* include/experimental/socket (__basic_socket_impl::release): Add
   4413 	member function.
   4414 	(basic_socket(io_context&, const endpoint_type&)): Fix argument to
   4415 	target constructor.
   4416 	(basic_socket::release(), basic_socket::release(error_code&)): Add
   4417 	missing member functions.
   4418 	(basic_socket::is_open()): Add nodiscard attribute.
   4419 	(basic_socket::close(error_code&)): Pass argument to base function.
   4420 	(basic_socket_acceptor::release())
   4421 	(basic_socket_acceptor::release(error_code&)): Add missing member
   4422 	functions.
   4423 	(basic_socket_acceptor::is_open()): Add nodiscard attribute.
   4424 	(basic_socket_streambuf::error()): Add noexcept.
   4425 	(basic_socket_iostream::error()): Likewise.
   4426 	* testsuite/experimental/net/socket/basic_socket.cc: New test.
   4427 
   4428 2020-05-21  Jonathan Wakely  <jwakely (a] redhat.com>
   4429 
   4430 	Backport from mainline
   4431 	2020-05-21  Jonathan Wakely  <jwakely (a] redhat.com>
   4432 
   4433 	PR libstdc++/93983
   4434 	* include/bits/iterator_concepts.h (__detail::__cpp17_iterator):
   4435 	Reorder constraints to avoid recursion when constructors use
   4436 	iterator_traits (LWG 3420).
   4437 	* testsuite/24_iterators/customization_points/lwg3420.cc: New test.
   4438 
   4439 2020-05-12  Jonathan Wakely  <jwakely (a] redhat.com>
   4440 
   4441 	Backport from mainline
   4442 	2020-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   4443 
   4444 	PR libstdc++/94906
   4445 	* src/c++17/memory_resource.cc
   4446 	(monotonic_buffer_resource::_Chunk::release): Use size_t for shift
   4447 	operands.
   4448 
   4449 	Backport from mainline
   4450 	2020-05-03  Jonathan Wakely  <jwakely (a] redhat.com>
   4451 
   4452 	PR libstdc++/94933
   4453 	* include/bits/stl_algobase.h (__fill_a1): Make overload for byte types
   4454 	usable in constant expressions.
   4455 	* testsuite/25_algorithms/fill_n/constexpr.cc: Test with bytes and
   4456 	non-scalars.
   4457 
   4458 2020-05-07  Jonathan Wakely  <jwakely (a] redhat.com>
   4459 
   4460 	Backport from mainline
   4461 	2020-05-01  Jonathan Wakely  <jwakely (a] redhat.com>
   4462 		    Patrick Palka  <ppalka (a] redhat.com>
   4463 
   4464 	PR libstdc++/92894
   4465 	* include/bits/iterator_concepts.h (ranges::__cust_imove::_IMove):
   4466 	Add trait to determine return type and an alias for it.
   4467 	(ranges::__cust_imove::_IMove::operator()): Use __result instead of
   4468 	deduced return type.
   4469 	* testsuite/24_iterators/customization_points/92894.cc: New test.
   4470 	* testsuite/24_iterators/indirect_callable/92894.cc: New test.
   4471 
   4472 2020-05-07  Release Manager
   4473 
   4474 	* GCC 10.1.0 released.
   4475 
   4476 2020-05-07  Eric Botcazou  <ebotcazou (a] adacore.com>
   4477 
   4478 	* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Update.
   4479 	* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
   4480 
   4481 2020-05-06  H.J. Lu  <hongjiu.lu (a] intel.com>
   4482 
   4483 	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
   4484 
   4485 2020-05-06  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   4486 
   4487 	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
   4488 	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
   4489 	Likewise.
   4490 	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
   4491 	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
   4492 	Likewise.
   4493 
   4494 2020-05-06  Jonathan Wakely  <jwakely (a] redhat.com>
   4495 
   4496 	* doc/xml/manual/abi.xml (abi.versioning.history): Document library
   4497 	versions for GCC 9.[123] and 10.1 releases.
   4498 	* doc/html/*: Regenerate.
   4499 
   4500 2020-05-06  Jakub Jelinek  <jakub (a] redhat.com>
   4501 
   4502 	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
   4503 	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
   4504 	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
   4505 	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
   4506 	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
   4507 	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
   4508 	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
   4509 
   4510 2020-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   4511 
   4512 	* doc/xml/faq.xml: Use working link for SGI STL FAQ.
   4513 	* doc/html/*: Regenerate.
   4514 
   4515 2020-05-01  Jonathan Wakely  <jwakely (a] redhat.com>
   4516 
   4517 	Backport from mainline
   4518 	2020-05-01  Jonathan Wakely  <jwakely (a] redhat.com>
   4519 
   4520 	PR libstdc++/94901
   4521 	* include/std/type_traits (__is_complete_or_unbounded): Replace
   4522 	BADNAME _T with _Tp.
   4523 	* testsuite/17_intro/badnames.cc: New test.
   4524 
   4525 2020-04-30  Jonathan Wakely  <jwakely (a] redhat.com>
   4526 
   4527 	PR libstdc++/89510
   4528 	* include/bits/alloc_traits.h (allocator_traits::_S_construct)
   4529 	(allocator_traits::_S_destroy)
   4530 	(allocator_traits<allocator<T>>::construct): Use traits in
   4531 	noexcept-specifiers.
   4532 	* include/bits/allocator.h (allocator<void>::construct)
   4533 	(allocator<void>::destroy): Likewise.
   4534 	* include/ext/malloc_allocator.h (malloc_allocator::construct)
   4535 	(malloc_allocator::destroy): Likewise.
   4536 	* include/ext/new_allocator.h (new_allocator::construct)
   4537 	(new_allocator::destroy): Likewise.
   4538 	* testsuite/20_util/allocator/89510.cc: New test.
   4539 	* testsuite/ext/malloc_allocator/89510.cc: New test.
   4540 	* testsuite/ext/new_allocator/89510.cc: New test.
   4541 
   4542 2020-04-29  Jonathan Wakely  <jwakely (a] redhat.com>
   4543 
   4544 	PR libstdc++/94854
   4545 	* include/bits/basic_string.tcc: Update comment about explicit
   4546 	instantiations.
   4547 
   4548 2020-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
   4549 
   4550 	PR libstdc++/91480
   4551 	* include/bits/allocator.h (__cpp_lib_allocator_is_always_equal):
   4552 	Remove non-standard macro.
   4553 	* include/bits/stl_iterator.h (__cpp_lib_constexpr_iterator): Define
   4554 	to indicate P1032R1 support.
   4555 	* include/bits/stl_pair.h (__cpp_lib_constexpr_utility): Likewise.
   4556 	* include/std/string_view (__cpp_lib_constexpr_string_view): Likewise.
   4557 	* include/std/tuple (__cpp_lib_constexpr_tuple): Likewise.
   4558 	* include/std/version (__cpp_lib_allocator_is_always_equal): Remove.
   4559 	(__cpp_lib_constexpr_iterator, __cpp_lib_constexpr_string_view)
   4560 	(__cpp_lib_constexpr_tuple, __cpp_lib_constexpr_utility): Define.
   4561 	* testsuite/20_util/function_objects/constexpr_searcher.cc: Check
   4562 	feature test macro.
   4563 	* testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: Likewise.
   4564 	* testsuite/21_strings/basic_string_view/operations/copy/char/
   4565 	constexpr.cc: Likewise.
   4566 	* testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
   4567 
   4568 	PR libstdc++/94831
   4569 	* include/bits/alloc_traits.h (_S_construct): Restore placement
   4570 	new-expression for C++11/14/17 and call std::construct_at directly
   4571 	for C++20.
   4572 	* include/bits/stl_construct.h (_Construct): Revert to non-constexpr
   4573 	function returning void.
   4574 	* testsuite/20_util/specialized_algorithms/
   4575 	uninitialized_value_construct/94831.cc: New test.
   4576 	* testsuite/23_containers/vector/cons/94831.cc: New test.
   4577 
   4578 2020-04-28  Patrick Palka  <ppalka (a] redhat.com>
   4579 
   4580 	LWG 3433 subrange::advance(n) has UB when n < 0
   4581 	* include/std/ranges (subrange::prev): Fix typo.
   4582 	(subrange::advance): Handle a negative argument as per the proposed
   4583 	resolution of LWG 3433.
   4584 	* testsuite/std/ranges/subrange/lwg3433.cc: New test.
   4585 
   4586 2020-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
   4587 	    Iain Sandoe  <iain (a] sandoe.co.uk>
   4588 
   4589 	PR c++/94759
   4590 	* include/std/coroutine: Implement handing for non-
   4591 	class coroutine return types.
   4592 
   4593 2020-04-24  Jonathan Wakely  <jwakely (a] redhat.com>
   4594 
   4595 	* include/experimental/executor (service_already_exists): Make default
   4596 	constructor public (LWG 3414).
   4597 	* testsuite/experimental/net/execution_context/make_service.cc: Check
   4598 	the service_already_exists can be default constructed.
   4599 
   4600 2020-04-24  Kamlesh Kumar  <kamleshbhalui (a] gmail.com>
   4601 	    Jonathan Wakely  <jwakely (a] redhat.com>
   4602 
   4603 	PR libstdc++/90415
   4604 	PR libstdc++/92156
   4605 	* include/std/any (any): Rename template parameters for consistency
   4606 	with the standard.
   4607 	(any::_Decay): Rename to _Decay_if_not_any.
   4608 	(any::any(T&&):: Remove is_constructible from constraints. Remove
   4609 	non-standard overload.
   4610 	(any::any(in_place_type_t<T>, Args&&...))
   4611 	(any::any(in_place_type_t<T>, initializer_list<U>, Args&&...))
   4612 	(any::emplace(Args&&...))
   4613 	(any::emplace(initializer_list<U>, Args&&...)):
   4614 	Use decay_t instead of _Decay.
   4615 	* testsuite/20_util/any/cons/90415.cc: New test.
   4616 	* testsuite/20_util/any/cons/92156.cc: New Test.
   4617 	* testsuite/20_util/any/misc/any_cast_neg.cc: Make dg-error directives
   4618 	more robust.
   4619 	* testsuite/20_util/any/modifiers/92156.cc: New test.
   4620 
   4621 2020-04-23  Jonathan Wakely  <jwakely (a] redhat.com>
   4622 
   4623 	* doc/xml/manual/status_cxx2020.xml: Update C++20 status table.
   4624 	* doc/html/*: Regenerate.
   4625 
   4626 	* include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Revert
   4627 	value for C++17 to 201803L because P0858R0 is supported for C++17.
   4628 	* include/std/version (__cpp_lib_array_constexpr): Likewise.
   4629 	* testsuite/23_containers/array/element_access/constexpr_c++17.cc:
   4630 	Check for value corresponding to P0031R0 features being tested.
   4631 	* testsuite/23_containers/array/requirements/constexpr_iter.cc:
   4632 	Check for value corresponding to P0858R0 features being tested.
   4633 
   4634 	* include/std/version (__cpp_lib_three_way_comparison): Define for
   4635 	freestanding builds.
   4636 
   4637 2020-04-23  Thomas Rodgers  <rodgert (a] appliantology.com>
   4638 
   4639 	* include/experimental/net/executor (system_context): Mark
   4640 	system_context::system_context() = delete.
   4641 	* testsuite/experimental/net/executor/1.cc: Add new
   4642 	test to check system_context is not default constructible.
   4643 
   4644 2020-04-23  Iain Sandoe  <iain (a] sandoe.co.uk>
   4645 
   4646 	* include/std/coroutine: Update the inline namespace to __n4861.
   4647 	Add the __cpp_lib_coroutine define, set to 201902L.
   4648 	* include/std/version: Add __cpp_lib_coroutine, set to 201902L.
   4649 
   4650 2020-04-22  Jonathan Wakely  <jwakely (a] redhat.com>
   4651 
   4652 	* include/std/execution (__cpp_lib_execution): Define to indicate
   4653 	support for P0024R2 and P1001R2.
   4654 	* include/std/version (__cpp_lib_execution): Define.
   4655 	* testsuite/25_algorithms/pstl/feature_test.cc: Only test macro
   4656 	defined by <algorithm>, move other tests to new tests ...
   4657 	* testsuite/25_algorithms/pstl/feature_test-2.cc: New test.
   4658 	* testsuite/25_algorithms/pstl/feature_test-3.cc: New test.
   4659 	* testsuite/25_algorithms/pstl/feature_test-4.cc: New test.
   4660 	* testsuite/25_algorithms/pstl/feature_test-5.cc: New test.
   4661 
   4662 	* include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Define
   4663 	different values for C++17 and C++20, to indicate different feature
   4664 	sets. Update value for C++20 to indicate P1032R1 support.
   4665 	* include/std/version (__cpp_lib_array_constexpr): Likewise.
   4666 	* testsuite/23_containers/array/comparison_operators/constexpr.cc:
   4667 	Check feature test macro.
   4668 	* testsuite/23_containers/array/element_access/constexpr_c++17.cc:
   4669 	New test.
   4670 	* testsuite/23_containers/array/requirements/constexpr_fill.cc: Check
   4671 	feature test macro.
   4672 	* testsuite/23_containers/array/requirements/constexpr_iter.cc: Test
   4673 	in C++17 mode and check feature test macro.
   4674 
   4675 	* include/std/utility (__cpp_lib_constexpr_algorithms): Do not define
   4676 	here.
   4677 	* testsuite/20_util/exchange/constexpr.cc: Do not expect macro to be
   4678 	defined by <utility>.
   4679 
   4680 	* include/std/functional (__cpp_lib_concepts): Update macro value to
   4681 	indicate P1964R2 support.
   4682 	* include/std/version (__cpp_lib_concepts): Likewise.
   4683 	* testsuite/std/concepts/1.cc: Adjust expected value.
   4684 	* testsuite/std/concepts/2.cc: Likewise.
   4685 
   4686 	* include/std/functional (__cpp_lib_constexpr_invoke): Rename to
   4687 	__cpp_lib_constexpr_functional.
   4688 	* include/std/version (__cpp_lib_constexpr_invoke): Likewise.
   4689 	* testsuite/20_util/function_objects/invoke/constexpr.cc: Adjust.
   4690 
   4691 	* include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define to
   4692 	indicate P1006R1 support.
   4693 	(__cpp_lib_to_address): Define to indicate P0653R2 support.
   4694 	* include/bits/range_access.h (__cpp_lib_ssize): Define to indicate
   4695 	P1227R2 support.
   4696 	* include/bits/ranges_algo.h (__cpp_lib_shift): Define to indicate
   4697 	P0769R2 support.
   4698 	* include/std/atomic (__cpp_lib_atomic_float): Define to indicate
   4699 	P0020R6 support.
   4700 	* include/std/memory (__cpp_lib_assume_aligned): Define to indicate
   4701 	P1007R3 support.
   4702 	* include/std/memory_resource (__cpp_lib_polymorphic_allocator):
   4703 	Define to indicate P0339R6 support.
   4704 	* include/std/string_view (__cpp_lib_starts_ends_with): Define to
   4705 	indicate P0457R2 support.
   4706 	* include/std/type_traits (__cpp_lib_is_nothrow_convertible): Define
   4707 	to indicate P0758R1 support.
   4708 	(__cpp_lib_remove_cvref): Define to indicate P0550R2 support.
   4709 	(__cpp_lib_type_identity): Define to indicate P0887R1 support.
   4710 	* include/std/version (__cpp_lib_atomic_float)
   4711 	(__cpp_lib_is_nothrow_convertible, __cpp_lib_remove_cvref)
   4712 	(__cpp_lib_type_identity, __cpp_lib_assume_aligned)
   4713 	(__cpp_lib_constexpr_memory, __cpp_lib_polymorphic_allocator)
   4714 	(__cpp_lib_shift, __cpp_lib_ssize, __cpp_lib_starts_ends_with)
   4715 	(__cpp_lib_to_address): Define.
   4716 	* testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
   4717 
   4718 	* include/bits/stl_map.h (__cpp_lib_map_insertion): Remove old
   4719 	macro.
   4720 	* include/bits/unordered_map.h (__cpp_lib_unordered_map_insertion):
   4721 	Likewise.
   4722 	* include/std/version (__cpp_lib_map_insertion)
   4723 	(__cpp_lib_unordered_map_insertion): Remove.
   4724 
   4725 	* include/std/condition_variable (__cpp_lib_jthread): Remove
   4726 	redundant definition.
   4727 	* include/std/stop_token (__cpp_lib_jthread): Update macro value to
   4728 	indicate P1869R1 support.
   4729 	* include/std/version (__cpp_lib_jthread): Update value.
   4730 	* testsuite/30_threads/condition_variable_any/stop_token/1.cc: Check
   4731 	for updated macro value.
   4732 	* testsuite/30_threads/condition_variable_any/stop_token/2.cc:
   4733 	Likewise.
   4734 	* testsuite/30_threads/jthread/1.cc: Likewise.
   4735 	* testsuite/30_threads/jthread/2.cc: Likewise.
   4736 	* testsuite/30_threads/stop_token/1.cc: Likewise.
   4737 	* testsuite/30_threads/stop_token/2.cc: Likewise.
   4738 
   4739 	* testsuite/21_strings/basic_string/erasure.cc: Check for
   4740 	__cpp_lib_erase_if macro.
   4741 	* testsuite/23_containers/deque/erasure.cc: Add header name to #error
   4742 	messages.
   4743 	* testsuite/23_containers/forward_list/erasure.cc: Likewise.
   4744 	* testsuite/23_containers/list/erasure.cc: Likewise.
   4745 	* testsuite/23_containers/map/erasure.cc: Likewise.
   4746 	* testsuite/23_containers/set/erasure.cc: Likewise.
   4747 	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
   4748 	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
   4749 	* testsuite/23_containers/vector/erasure.cc: Likewise.
   4750 
   4751 2020-04-21  Jonathan Wakely  <jwakely (a] redhat.com>
   4752 
   4753 	* include/bits/stl_iterator.h (__normal_iterator): Use synth-three-way
   4754 	to define operator<=>.
   4755 	* testsuite/24_iterators/normal_iterator/cmp_c++20.cc: New test.
   4756 
   4757 	* doc/Makefile.am (xml_sources_manual): Add missing XML files.
   4758 	* doc/Makefile.in: Regenerate.
   4759 	* doc/xml/manual/status_cxx1998.xml: Refer to "this section" instead
   4760 	of "this page".
   4761 	* doc/xml/manual/status_cxx2011.xml: Formatting and other corrections
   4762 	to the C++11 status table.
   4763 	* doc/xml/manual/status_cxx2014.xml: Replace list of C++14 feature
   4764 	proposals with table matching contents of the C++14 standard.
   4765 	* doc/xml/manual/status_cxx2017.xml: Add table matching contents of
   4766 	the C++17 standard.
   4767 	* doc/html/*: Regenerate.
   4768 
   4769 	PR c++/94149
   4770 	* include/std/type_traits (__is_nt_constructible_impl): Add partial
   4771 	specializations for bounded arrays with non-empty initializers.
   4772 	* testsuite/20_util/is_nothrow_constructible/value_c++20.cc: New test.
   4773 
   4774 2020-04-20  Thomas Rodgers  <trodgers (a] redhat.com>
   4775 
   4776 	* testsuite/lib/libstdc++.exp: Add additional_flags=
   4777 	-DTBB_SUPRESS_DEPRECATED_MESSAGES=1 to suppress warnings when
   4778 	compiling with a newer Thread Building Blocks.
   4779 
   4780 2020-04-20  Jonathan Wakely  <jwakely (a] redhat.com>
   4781 
   4782 	* testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test.
   4783 
   4784 	* testsuite/20_util/is_constructible/51185.cc: Make test class a
   4785 	non-aggregate so that the test verifies the same thing in all -std
   4786 	modes.
   4787 	* testsuite/20_util/is_constructible/value-2.cc: Adjust expected
   4788 	results for some types when paren-init for aggregates is supported.
   4789 
   4790 	* include/std/version (__cpp_lib_three_way_comparison): Update value.
   4791 	* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
   4792 	(__detail::__synth3way): Add noexcept-specifier.
   4793 
   4794 	* include/bits/stl_map.h (map): Define operator<=> and remove
   4795 	operator< for C++20.
   4796 	* include/bits/stl_multimap.h (multimap): Likewise.
   4797 	* include/bits/stl_multiset.h (multiset): Likewise.
   4798 	* include/bits/stl_set.h (set): Likewise.
   4799 	* include/bits/stl_tree.h (_Rb_tree): Likewise.
   4800 	(_Rb_tree_iterator, _Rb_tree_const_iterator): Remove redundant
   4801 	operator!= for C++20.
   4802 	* include/debug/map.h (__gnu_debug::map): Define operator<=> for C++20.
   4803 	* include/debug/multimap.h (__gnu_debug::multimap): Likewise.
   4804 	* include/debug/multiset.h (__gnu_debug::multiset): Likewise.
   4805 	* include/debug/set.h (__gnu_debug::set): Likewise.
   4806 	* testsuite/23_containers/map/operators/cmp_c++20.cc: New test.
   4807 	* testsuite/23_containers/multimap/operators/cmp_c++20.cc: New test.
   4808 	* testsuite/23_containers/multiset/operators/cmp_c++20.cc: New test.
   4809 	* testsuite/23_containers/set/operators/cmp_c++20.cc: New test.
   4810 
   4811 2020-04-20  Matthias Kretz  <kretz (a] kde.org>
   4812 
   4813 	* testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose.
   4814 
   4815 2020-04-19  Jonathan Wakely  <jwakely (a] redhat.com>
   4816 
   4817 	* include/bits/stl_queue.h (queue): Define operator<=> for C++20.
   4818 	* include/bits/stl_stack.h (stack): Likewise.
   4819 	* testsuite/23_containers/queue/cmp_c++20.cc: New test.
   4820 	* testsuite/23_containers/stack/cmp_c++20.cc: New test.
   4821 
   4822 	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
   4823 	Remove redundant operator!= for C++20.
   4824 	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
   4825 	Likewise.
   4826 	* include/debug/unordered_map (unordered_map, unordered_multimap):
   4827 	Likewise.
   4828 	* include/debug/unordered_set (unordered_set, unordered_multiset):
   4829 	Likewise.
   4830 
   4831 	PR other/94629
   4832 	* include/debug/formatter.h (_Error_formatter::_Parameter): Fix
   4833 	redundant assignment in constructor.
   4834 
   4835 2020-04-18  Jonathan Wakely  <jwakely (a] redhat.com>
   4836 
   4837 	* include/std/chrono (duration, time_point): Define operator<=> and
   4838 	remove redundant operator!= for C++20.
   4839 	* testsuite/20_util/duration/comparison_operators/three_way.cc: New
   4840 	test.
   4841 	* testsuite/20_util/time_point/comparison_operators/three_way.cc: New
   4842 	test.
   4843 
   4844 	* testsuite/util/native_type/native_priority_queue.hpp: Use
   4845 	allocator_traits to rebind allocator.
   4846 
   4847 2020-04-17  Jonathan Wakely  <jwakely (a] redhat.com>
   4848 
   4849 	* include/bits/forward_list.h (forward_list): Define operator<=> and
   4850 	remove redundant comparison operators for C++20.
   4851 	* include/bits/stl_bvector.h (vector<bool, Alloc>): Likewise.
   4852 	* include/bits/stl_deque.h (deque): Likewise.
   4853 	* include/bits/stl_iterator.h (__normal_iterator): Likewise.
   4854 	* include/bits/stl_list.h (list): Likewise.
   4855 	* include/bits/stl_vector.h (vector): Likewise.
   4856 	* include/debug/deque (__gnu_debug::deque): Likewise.
   4857 	* include/debug/forward_list (__gnu_debug::forward_list): Likewise.
   4858 	* include/debug/list (__gnu_debug::list): Likewise.
   4859 	* include/debug/safe_iterator.h (__gnu_debug::_Safe_iterator):
   4860 	Likewise.
   4861 	* include/debug/vector (__gnu_debug::vector): Likewise.
   4862 	* include/ext/pointer.h (__gnu_cxx::_Pointer_adapter): Define
   4863 	operator<=> for C++20.
   4864 	* testsuite/23_containers/deque/operators/cmp_c++20.cc: New test.
   4865 	* testsuite/23_containers/forward_list/cmp_c++20.cc: New test.
   4866 	* testsuite/23_containers/list/cmp_c++20.cc: New test.
   4867 	* testsuite/23_containers/vector/bool/cmp_c++20.cc: New test.
   4868 	* testsuite/23_containers/vector/cmp_c++20.cc: New test.
   4869 
   4870 	* include/bits/basic_string.h (basic_string): Define operator<=> and
   4871 	remove redundant comparison operators for C++20.
   4872 	* include/bits/char_traits.h (__gnu_cxx::char_traits, char_traits):
   4873 	Add comparison_category members.
   4874 	(__detail::__char_traits_cmp_cat): New helper to get comparison
   4875 	category from char traits class.
   4876 	* include/bits/regex.h (regex_traits::_RegexMask::operator!=): Do not
   4877 	define for C++20.
   4878 	(sub_match): Define operator<=> and remove redundant comparison
   4879 	operators for C++20.
   4880 	(match_results): Remove redundant operator!= for C++20.
   4881 	* include/std/string_view (basic_string_view): Define operator<=> and
   4882 	remove redundant comparison operators for C++20.
   4883 	* testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc: New
   4884 	test.
   4885 	* testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
   4886 	New test.
   4887 	* testsuite/21_strings/basic_string_view/operations/copy/char/
   4888 	constexpr.cc: Initialize variable.
   4889 	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/
   4890 	constexpr.cc: Likewise.
   4891 	* testsuite/21_strings/basic_string_view/operators/char/2.cc: Add
   4892 	dg-do directive and remove comments showing incorrect signatures.
   4893 	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
   4894 	Likewise.
   4895 	* testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
   4896 	New test.
   4897 	* testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
   4898 	New test.
   4899 	* testsuite/28_regex/sub_match/compare_c++20.cc: New test.
   4900 
   4901 2020-04-16  Jonathan Wakely  <jwakely (a] redhat.com>
   4902 
   4903 	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Remove
   4904 	name of unused parameter.
   4905 
   4906 2020-04-15  Jonathan Wakely  <jwakely (a] redhat.com>
   4907 
   4908 	* include/bits/fs_dir.h (file_status): Define operator== for C++20.
   4909 	(directory_entry): Define operator<=> and remove redundant comparison
   4910 	operators for C++20.
   4911 	* include/bits/fs_fwd.h (space_info): Define operator== for C++20.
   4912 	* include/bits/fs_path.h (path): Define operator<=> and remove
   4913 	redundant comparison operators for C++20.
   4914 	* testsuite/27_io/filesystem/path/compare/compare.cc: Fix comment.
   4915 	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
   4916 	* testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
   4917 	* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
   4918 
   4919 	* include/bits/allocator.h (operator!=): Do not define for C++20.
   4920 	* include/bits/locale_classes.h (operator!=): Likewise.
   4921 	* include/bits/std_function.h (operator==(nullptr_t, const function&))
   4922 	(operator!=(const function&, nullptr_t))
   4923 	(operator!=(nullptr_t, const function&)): Likewise.
   4924 	* include/ext/bitmap_allocator.h (operator!=): Likewise.
   4925 	* include/ext/debug_allocator.h (operator!=): Likewise.
   4926 	* include/ext/extptr_allocator.h (operator!=): Likewise.
   4927 	* include/ext/malloc_allocator.h (operator!=): Likewise.
   4928 	* include/ext/mt_allocator.h (operator!=): Likewise.
   4929 	* include/ext/new_allocator.h (operator!=): Likewise.
   4930 	* include/ext/pool_allocator.h (operator!=): Likewise.
   4931 	* include/ext/throw_allocator.h (operator!=): Likewise.
   4932 	* include/std/bitset (bitset::operator!=): Likewise.
   4933 	* include/std/memory_resource (operator!=): Likewise.
   4934 	* include/std/scoped_allocator (operator!=): Likewise.
   4935 
   4936 	* include/std/typeindex (operator<=>): Define for C++20.
   4937 	* testsuite/20_util/typeindex/comparison_operators_c++20.cc: New test.
   4938 
   4939 2020-04-14  Jonathan Wakely  <jwakely (a] redhat.com>
   4940 
   4941 	* libsupc++/compare (compare_three_way): Fix constraint so that
   4942 	BUILTIN-PTR-THREE-WAY does not require three_way_comparable_with.
   4943 	* testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc:
   4944 	New test.
   4945 
   4946 	PR libstdc++/94562
   4947 	* include/bits/shared_ptr.h (operator<=>): Define for C++20.
   4948 	* include/bits/shared_ptr_base.h (operator<=>): Likewise.
   4949 	* include/bits/unique_ptr.h (operator<=>): Add inline specifier.
   4950 	* testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc: New test.
   4951 	* testsuite/20_util/shared_ptr/comparison/less.cc: Do not expect
   4952 	std::less<A*> to be used when comparing std::shared_ptr<A> objects in
   4953 	C++20.
   4954 
   4955 	PR libstdc++/94565
   4956 	* libsupc++/compare (__unspec): Add noexcept-specifier to constructor.
   4957 	* testsuite/18_support/comparisons/categories/94565.cc: New test.
   4958 
   4959 2020-04-13  Iain Sandoe  <iain (a] sandoe.co.uk>
   4960 
   4961 	* include/std/coroutine: Update coroutines builtin define,
   4962 	per n4861.
   4963 
   4964 2020-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   4965 
   4966 	* libsupc++/compare (compare_three_way): Fix noexcept-specifier.
   4967 	(strong_order, weak_order, partial_order): Replace uses of <=> with
   4968 	compare_three_way function object (LWG 3324).
   4969 	* testsuite/18_support/comparisons/algorithms/partial_order.cc: Add
   4970 	equality operator so that X satisfies three_way_comparable.
   4971 	* testsuite/18_support/comparisons/algorithms/strong_order.cc:
   4972 	Likewise.
   4973 	* testsuite/18_support/comparisons/algorithms/weak_order.cc: Likewise.
   4974 
   4975 	* include/bits/unique_ptr.h (operator<=>): Define for C++20.
   4976 	* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line.
   4977 	* testsuite/20_util/default_delete/void_neg.cc: Likewise.
   4978 	* testsuite/20_util/unique_ptr/comparison/compare.cc: New test.
   4979 	* testsuite/20_util/unique_ptr/comparison/compare_c++20.cc: New test.
   4980 
   4981 2020-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   4982 
   4983 	* include/bits/slice_array.h (operator==(const slice&, const slice&)):
   4984 	Define for C++20.
   4985 	* include/std/complex (operator==(const T&, const complex<T>&))
   4986 	(operator!=(const complex<T>&, const complex<T>&))
   4987 	(operator!=(const complex<T>&, const T&))
   4988 	(operator!=(const T&, const complex<T>&)): Do not declare for C++20.
   4989 	* testsuite/26_numerics/slice/compare.cc: New test.
   4990 
   4991 	* include/std/charconv (to_chars_result, from_chars_result): Add
   4992 	defaulted equality comparisons for C++20.
   4993 	* testsuite/20_util/from_chars/compare.cc: New test.
   4994 	* testsuite/20_util/to_chars/compare.cc: New test.
   4995 
   4996 2020-04-07  Jonathan Wakely  <jwakely (a] redhat.com>
   4997 
   4998 	PR libstdc++/94520
   4999 	* include/std/charconv (__integer_to_chars_result_type)
   5000 	(__integer_from_chars_result_type): Use __or_ instead of __or_v_ to
   5001 	allow use in C++14.
   5002 	* testsuite/20_util/from_chars/1.cc: Run test as C++14 and replace
   5003 	use of std::string_view with std::string.
   5004 	* testsuite/20_util/from_chars/2.cc: Likewise.
   5005 	* testsuite/20_util/to_chars/1.cc: Likewise.
   5006 	* testsuite/20_util/to_chars/2.cc: Likewise.
   5007 
   5008 2020-04-06  Jonathan Wakely  <jwakely (a] redhat.com>
   5009 
   5010 	PR libstdc++/94498
   5011 	* include/bits/char_traits.h (__gnu_cxx::char_traits::move): Make it
   5012 	usable in constant expressions for C++20.
   5013 	(__gnu_cxx::char_traits::copy, __gnu_cxx::char_traits::assign): Add
   5014 	_GLIBCXX20_CONSTEXPR.
   5015 	(std::char_traits<char>, std::char_traits<wchar_t>)
   5016 	(std::char_traits<char8_t>): Make move, copy and assign usable in
   5017 	constant expressions for C++20.
   5018 	(std::char_traits<char16_t>, std::char_traits<char32_t>): Make move
   5019 	and copy usable in constant expressions for C++20.
   5020 	* include/std/string_view (basic_string_view::copy): Add
   5021 	_GLIBCXX20_CONSTEXPR.
   5022 	* testsuite/21_strings/basic_string_view/operations/copy/char/
   5023 	constexpr.cc: New test.
   5024 	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/
   5025 	constexpr.cc: New test.
   5026 
   5027 2020-04-05  Gerald Pfeifer  <gerald (a] pfeifer.com>
   5028 
   5029 	* doc/xml/manual/appendix_contributing.xml: Refer to Git
   5030 	documentation instead of Subversion.  Switch to https.
   5031 	* doc/html/manual/appendix_contributing.html: Regenerate.
   5032 
   5033 2020-04-03  Jonathan Wakely  <jwakely (a] redhat.com>
   5034 
   5035 	PR libstdc++/93960
   5036 	* include/bits/ptr_traits.h (__to_address): Add special case for debug
   5037 	iterators, to avoid dereferenceable check.
   5038 	* testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
   5039 	* testsuite/20_util/to_address/debug.cc: New test.
   5040 
   5041 2020-04-01  Andrea Corallo  <andrea.corallo (a] arm.com>
   5042 
   5043 	* testsuite/experimental/net/execution_context/use_service.cc:
   5044 	Require pthread and gthreads.
   5045 
   5046 2020-04-01  Gerald Pfeifer  <gerald (a] pfeifer.com>
   5047 
   5048 	* doc/xml/manual/appendix_free.xml: Move "free books" list from
   5049 	fsf.org to gnu.org.
   5050 	* doc/html/manual/appendix_free.html: Regenerate.
   5051 
   5052 2020-03-31  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   5053 
   5054 	Library-side tests for parenthesized aggregate init
   5055 
   5056 	PR c++/92878
   5057 	PR c++/92947
   5058 
   5059 	* testsuite/20_util/allocator_traits/members/92878_92947.cc: New.
   5060 	* testsuite/20_util/any/assign/92878_92947.cc: Likewise.
   5061 	* testsuite/20_util/any/cons/92878_92947.cc: Likewise.
   5062 	* testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
   5063 	* testsuite/20_util/optional/assignment/92878_92947.cc: Likewise.
   5064 	* testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
   5065 	* testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
   5066 	* testsuite/20_util/shared_ptr/creation/92878_92947.cc: Likewise.
   5067 	* testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
   5068 	Likewise.
   5069 	* testsuite/20_util/unique_ptr/creation/92878_92947.cc: Likewise.
   5070 	* testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
   5071 	* testsuite/20_util/variant/92878_92947.cc: Likewise.
   5072 	* testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
   5073 	Likewise.
   5074 	* testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
   5075 	Likewise.
   5076 	* testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
   5077 	Likewise.
   5078 	* testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
   5079 	Likewise.
   5080 	* testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
   5081 	Likewise.
   5082 	* testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
   5083 	Likewise.
   5084 	* testsuite/23_containers/priority_queue/92878_92947.cc: Likewise.
   5085 	* testsuite/23_containers/queue/92878_92947.cc: Likewise.
   5086 	* testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
   5087 	Likewise.
   5088 	* testsuite/23_containers/stack/92878_92947.cc: Likewise.
   5089 	* testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
   5090 	Likewise.
   5091 	* testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
   5092 	Likewise.
   5093 	* testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
   5094 	Likewise.
   5095 	* testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
   5096 	Likewise.
   5097 	* testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
   5098 	Likewise.
   5099 
   5100 2020-03-28  Jonathan Wakely  <jwakely (a] redhat.com>
   5101 
   5102 	* testsuite/20_util/is_constructible/value-2.cc: Fix test to account
   5103 	for changes due to parenthesized aggregate-initialization in C++20.
   5104 	* testsuite/20_util/time_point/cons/81468.cc: Fix test to not clash
   5105 	with std::chrono::sys_time in C++20.
   5106 
   5107 	* include/bits/stl_iterator.h (reverse_iterator): Use requires-clause
   5108 	to constrain C++20 versions of comparison operators. Fix backwards
   5109 	logic of relational operators.
   5110 	(move_iterator): Use requires-clause to constrain comparison operators
   5111 	in C++20. Do not declare non-standard same-type overloads for C++20.
   5112 	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: Check result
   5113 	of comparisons and check using greedy_ops type.
   5114 	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: Likewise.
   5115 	* testsuite/24_iterators/move_iterator/greedy_ops.cc: Remove redundant
   5116 	main function from compile-only test.
   5117 	* testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Likewise.
   5118 
   5119 2020-03-27  Jonathan Wakely  <jwakely (a] redhat.com>
   5120 
   5121 	* include/bits/range_cmp.h (__cpp_lib_ranges): Define.
   5122 	* include/bits/stl_iterator.h: Check value of __cpp_concepts so that
   5123 	C++20 concepts are required.
   5124 	* include/bits/stl_iterator_base_types.h: Likewise.
   5125 	* include/std/concepts: Likewise.
   5126 	* include/std/version: Likewise.
   5127 	* testsuite/std/ranges/headers/ranges/synopsis.cc: Check feature test
   5128 	macro.
   5129 
   5130 	* include/bits/stl_iterator.h (reverse_iterator::iterator_concept)
   5131 	(reverse_iterator::iterator_category): Define for C++20.
   5132 	(reverse_iterator): Define comparison operators correctly for C++20.
   5133 	(__normal_iterator): Add constraints to comparison operators for C++20.
   5134 	(move_iterator::operator++(int)) [__cpp_lib_concepts]: Define new
   5135 	overload for input iterators.
   5136 	(move_iterator): Add constraints to comparison operators for C++20.
   5137 	Define operator<=> for C++20.
   5138 	* testsuite/24_iterators/move_iterator/input_iterator.cc: New test.
   5139 	* testsuite/24_iterators/move_iterator/move_only.cc: New test.
   5140 	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: New test.
   5141 	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: New test.
   5142 
   5143 	* include/bits/iterator_concepts.h (__detail::__decay_copy)
   5144 	(__detail::__member_begin, __detail::__adl_begin): Move here from
   5145 	<bits/range_access.h>.
   5146 	(__detail::__ranges_begin, __detail::__range_iter_t): Define.
   5147 	* bits/range_access.h (__cust_access::__decay_copy)
   5148 	(__cust_access::__member_begin, __cust_access::__adl_begin): Move to
   5149 	<bits/iterator_concepts.h>.
   5150 	(ranges::iterator_t): Use __detail::__range_iter_t.
   5151 	* include/bits/stl_iterator.h (back_insert_iterator): Simplify
   5152 	conditional compilation. Add _GLIBCXX20_CONSTEXPR to all members.
   5153 	(front_insert_iterator): Likewise.
   5154 	(insert_iterator): Implement changes from P0896R4 for C++20.
   5155 	* testsuite/24_iterators/back_insert_iterator/constexpr.cc: New test.
   5156 	* testsuite/24_iterators/front_insert_iterator/constexpr.cc: New test.
   5157 	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Adjust
   5158 	for inclusion in synopsis_c++20.cc which expects different signatures
   5159 	for some function templates.
   5160 	* testsuite/24_iterators/insert_iterator/constexpr.cc: New test.
   5161 
   5162 	* include/std/type_traits (__is_array_convertible): Move definition
   5163 	to immediately after is_convertible.
   5164 
   5165 2020-03-26  Jonathan Wakely  <jwakely (a] redhat.com>
   5166 
   5167 	* include/std/chrono (chrono::days, chrono::weeks, chrono::years)
   5168 	(chrono::months, chrono::sys_days, chrono::local_t)
   5169 	(chrono::local_time, chrono::local_seconds, chrono::local_days):
   5170 	Define for C++20.
   5171 	(chrono::time_point): Add missing static assert.
   5172 	* testsuite/20_util/time_point/requirements/duration_neg.cc: New test.
   5173 	* testsuite/std/time/clock/file/overview.cc: New test.
   5174 	* testsuite/std/time/clock/file/members.cc: New test.
   5175 	* testsuite/std/time/syn_c++20.cc: New test.
   5176 
   5177 2020-03-25  Mike Crowe  <mac (a] mcrowe.com>
   5178 
   5179 	* testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc: New
   5180 	test.
   5181 	* testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc: New
   5182 	test.
   5183 
   5184 2020-03-25  Jonathan Wakely  <jwakely (a] redhat.com>
   5185 
   5186 	* include/bits/fs_fwd.h (filesystem::__file_clock): Move to ...
   5187 	* include/std/chrono (filesystem::__file_clock): Here.
   5188 	(filesystem::__file_clock::from_sys, filesystem::__file_clock::to_sys):
   5189 	Define public member functions for C++20.
   5190 	(is_clock, is_clock_v): Define traits for C++20.
   5191 	* include/std/condition_variable (condition_variable::wait_until): Add
   5192 	check for valid clock.
   5193 	* include/std/future (_State_baseV2::wait_until): Likewise.
   5194 	* include/std/mutex (__timed_mutex_impl::_M_try_lock_until): Likewise.
   5195 	* include/std/shared_mutex (shared_timed_mutex::try_lock_shared_until):
   5196 	Likewise.
   5197 	* include/std/thread (this_thread::sleep_until): Likewise.
   5198 	* testsuite/30_threads/condition_variable/members/2.cc: Qualify
   5199 	slow_clock with new namespace.
   5200 	* testsuite/30_threads/condition_variable/members/clock_neg.cc: New
   5201 	test.
   5202 	* testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
   5203 	New test.
   5204 	* testsuite/30_threads/future/members/clock_neg.cc: New test.
   5205 	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc:
   5206 	Qualify slow_clock with new namespace.
   5207 	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/
   5208 	clock_neg.cc: New test.
   5209 	* testsuite/30_threads/shared_future/members/clock_neg.cc: New
   5210 	test.
   5211 	* testsuite/30_threads/shared_lock/locking/clock_neg.cc: New test.
   5212 	* testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
   5213 	New test.
   5214 	* testsuite/30_threads/timed_mutex/try_lock_until/3.cc: Qualify
   5215 	slow_clock with new namespace.
   5216 	* testsuite/30_threads/timed_mutex/try_lock_until/4.cc: Likewise.
   5217 	* testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc: New
   5218 	test.
   5219 	* testsuite/30_threads/unique_lock/locking/clock_neg.cc: New test.
   5220 	* testsuite/std/time/traits/is_clock.cc: New test.
   5221 	* testsuite/util/slow_clock.h (slow_clock): Move to __gnu_test
   5222 	namespace.
   5223 
   5224 2020-03-21  Jonathan Wakely  <jwakely (a] redhat.com>
   5225 
   5226 	PR libstdc++/93245
   5227 	* include/experimental/bits/fs_path.h (path::generic_string<C,T,A>()):
   5228 	* testsuite/experimental/filesystem/path/generic/generic_string.cc:
   5229 	Improve test coverage.
   5230 
   5231 	PR libstdc++/94242
   5232 	* include/bits/fs_path.h (path::_S_str_convert): Replace first
   5233 	parameter with basic_string_view so that strings with different
   5234 	allocators can be accepted.
   5235 	(path::generic_string<C,T,A>()): Use basic_string object that uses the
   5236 	right allocator type.
   5237 	* testsuite/27_io/filesystem/path/generic/94242.cc: New test.
   5238 	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Improve
   5239 	test coverage.
   5240 
   5241 2020-03-18  Jonathan Wakely  <jwakely (a] redhat.com>
   5242 
   5243 	PR libstdc++/94033
   5244 	* include/std/type_traits (__is_nt_default_constructible_atom): Remove.
   5245 	(__is_nt_default_constructible_impl): Remove.
   5246 	(__is_nothrow_default_constructible_impl): Remove.
   5247 	(__is_nt_constructible_impl): Add bool template parameter. Adjust
   5248 	partial specializations.
   5249 	(__is_nothrow_constructible_impl): Replace class template with alias
   5250 	template.
   5251 	(is_nothrow_default_constructible): Derive from alias template
   5252 	__is_nothrow_constructible_impl instead of
   5253 	__is_nothrow_default_constructible_impl.
   5254 	* testsuite/20_util/is_nothrow_constructible/94003.cc: New test.
   5255 
   5256 	* include/std/stop_token (stop_token::_Stop_state_ref): Define
   5257 	comparison operators explicitly if the compiler won't synthesize them.
   5258 
   5259 	* include/bits/stl_algobase.h (__lexicographical_compare_aux): Check
   5260 	__cpp_lib_concepts before using iter_reference_t.
   5261 	* include/bits/stream_iterator.h (istream_iterator): Check
   5262 	__cpp_lib_concepts before using default_sentinel_t.
   5263 	* include/bits/streambuf_iterator.h (istreambuf_iterator): Likewise.
   5264 
   5265 	PR libstdc++/94203
   5266 	* include/experimental/executor (executor::executor(Executor)): Call
   5267 	make_shared directly instead of _M_create. Create _Tgt1 object.
   5268 	(executor::executor(allocator_arg_t, const ProtoAlloc&, Executor)):
   5269 	Call allocate_shared directly instead of _M_create. Create _Tgt2
   5270 	object.
   5271 	(executor::target_type): Add cast needed for new _Tgt interface.
   5272 	(executor::target): Define when RTTI is disabled. Use _Tgt::_M_func.
   5273 	(executor::_Tgt): Define the same interface whether RTTI is enabled or
   5274 	not.
   5275 	(executor::_Tgt::target_type, executor::_Tgt::target): Do not use
   5276 	std::type_info in the interface.
   5277 	(executor::_Tgt::_M_func): Add data member.
   5278 	(executor::_TgtImpl): Replace with _Tgt1 and _Tgt2 class templates.
   5279 	(executor::_Tgt1::_S_func): Define function to access target without
   5280 	depending on RTTI.
   5281 	(executor::_M_create): Remove.
   5282 	(operator==, operator!=): Simplify comparisons for executor.
   5283 	* include/experimental/socket (is_error_code_enum<socket_errc>):
   5284 	Define specialization before use.
   5285 	* testsuite/experimental/net/executor/1.cc: New test.
   5286 
   5287 2020-03-16  Jonathan Wakely  <jwakely (a] redhat.com>
   5288 
   5289 	PR libstdc++/94199
   5290 	* include/experimental/executor (service_already_exists): Add default
   5291 	constructor. Declare make_service to be a friend.
   5292 	* testsuite/experimental/net/execution_context/make_service.cc: New
   5293 	test.
   5294 
   5295 2020-03-12  Jonathan Wakely  <jwakely (a] redhat.com>
   5296 
   5297 	* testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Do not pass
   5298 	a null pointer to functions with nonnull(1) attribute.
   5299 
   5300 2020-03-11  Patrick Palka  <ppalka (a] redhat.com>
   5301 
   5302 	* include/std/ranges (split_view::_OuterIter::_OuterIter): Typo fix,
   5303 	'address' -> 'std::__addressof'.
   5304 	* testsuite/std/ranges/adaptors/split.cc: Test taking the split_view of
   5305 	a non-forward input_range.
   5306 	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper): Make
   5307 	default constructor protected instead of deleted, like with
   5308 	input_iterator_wrapper.
   5309 	(test_range::iterator): Add comment explaining that this type is used
   5310 	only when the underlying wrapper is input_iterator_wrapper or
   5311 	output_iterator_wrapper.  Remove delegating defaulted constructor so
   5312 	that the inherited default constructor is used instead.
   5313 
   5314 	LWG 3286 ranges::size is not required to be valid after a call to
   5315 	ranges::begin on an input range
   5316 	* include/std/ranges (subrange::subrange): Split single-argument
   5317 	constructor into two, one constrained by _S_store_size and another by
   5318 	!_S_store_size.
   5319 	(take_view::begin): Call size() before calling ranges::begin(_M_base).
   5320 	* testsuite/std/ranges/adaptors/lwg3286.cc: New test.
   5321 	* testsuite/std/ranges/subrange/lwg3286.cc: New test.
   5322 
   5323 2020-03-10  Jonathan Wakely  <jwakely (a] redhat.com>
   5324 
   5325 	* include/std/ranges (split_view::_OuterIter::__at_end): Use __current
   5326 	instead of _M_current.
   5327 	(split_view::_OuterIter::operator++): Likewise.
   5328 
   5329 	* include/std/ranges (transform_view::_Iterator::__iter_move): Remove.
   5330 	(transform_view::_Iterator::operator*): Add noexcept-specifier.
   5331 	(transform_view::_Iterator::iter_move): Inline __iter_move body here.
   5332 	(split_view::_OuterIter::__current): Add noexcept.
   5333 	(split_view::_InnerIter::__iter_swap): Remove.
   5334 	(split_view::_InnerIter::__iter_move): Remove.
   5335 	(split_view::_InnerIter::_M_i_current): New accessors.
   5336 	(split_view::_InnerIter::__at_end): Use _M_i_current().
   5337 	(split_view::_InnerIter::operator*): Likewise.
   5338 	(split_view::_InnerIter::operator++): Likewise.
   5339 	(iter_move(const _InnerIter&)): Likewise.
   5340 	(iter_swap(const _InnerIter&, const _InnerIter&)): Likewise.
   5341 	* testsuite/std/ranges/adaptors/split.cc: Check noexcept-specifier
   5342 	for iter_move and iter_swap on split_view's inner iterator.
   5343 
   5344 	PR c++/94117
   5345 	* include/std/ranges (ranges::transform_view::_Iterator::iter_move):
   5346 	Change expression in noexcept-specifier to match function body.
   5347 
   5348 	* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Add
   5349 	comment explaining multiple dg-do directives.
   5350 	* testsuite/24_iterators/ostream_iterator/1.cc: Fix do-do directive
   5351 	so test is run as well as compiled.
   5352 
   5353 2020-03-09  Jonathan Wakely  <jwakely (a] redhat.com>
   5354 
   5355 	PR libstdc++/94063
   5356 	* src/c++17/fs_path.cc (path::operator+=(const path&)): Add kluge to
   5357 	handle concatenations that change the type of the first component.
   5358 	(path::operator+=(basic_string_view<value_type>)): Likewise.
   5359 	* testsuite/27_io/filesystem/path/concat/94063.cc: New test.
   5360 
   5361 2020-03-06  Patrick Palka  <ppalka (a] redhat.com>
   5362 
   5363 	* include/std/ranges (join_view::_Sentinel<_Const>): Befriend
   5364 	join_view::_Sentinel<!_Const>.
   5365 	* testsuite/std/ranges/adaptors/join.cc: Augment test.
   5366 
   5367 	PR libstdc++/93978
   5368 	* include/bits/range_access.h (__cust_access::_Empty::operator()):
   5369 	Declare return type to be bool instead of auto.
   5370 	* testsuite/std/ranges/adaptors/93978.cc: New test.
   5371 
   5372 2020-03-06  Jonathan Wakely  <jwakely (a] redhat.com>
   5373 
   5374 	PR libstdc++/94069
   5375 	* include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
   5376 	(__shared_mutex_pthread::__shared_mutex_pthread()): Remove incorrect
   5377 	second argument to __glibcxx_rwlock_init.
   5378 	* testsuite/30_threads/shared_timed_mutex/94069.cc: New test.
   5379 
   5380 	PR libstdc++/93244
   5381 	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Adjust
   5382 	test to not fail due to PR 94063.
   5383 	* testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
   5384 	* testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
   5385 
   5386 2020-03-06  Andreas Krebbel  <krebbel (a] linux.ibm.com>
   5387 
   5388 	* src/c++11/system_error.cc: Omit the ENOTSUP case statement if it
   5389 	would match ENOSYS.
   5390 
   5391 2020-03-05  Jonathan Wakely  <jwakely (a] redhat.com>
   5392 
   5393 	* testsuite/27_io/filesystem/operations/all.cc: Mark unused variable.
   5394 	* testsuite/27_io/filesystem/operations/copy.cc: Fix typo.
   5395 	* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
   5396 	* testsuite/27_io/filesystem/operations/file_size.cc: Use correct type
   5397 	for return value, and in comparison.
   5398 	* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
   5399 
   5400 	PR libstdc++/94051
   5401 	* include/std/string_view: Include <bits/ostream_insert.h>.
   5402 	* testsuite/21_strings/basic_string_view/inserters/94051.cc: New test.
   5403 
   5404 2020-03-04  Jonathan Wakely  <jwakely (a] redhat.com>
   5405 
   5406 	* include/bits/cpp_type_traits.h (__memcpyable): Fix comment.
   5407 
   5408 2020-03-04  Patrick Palka  <ppalka (a] redhat.com>
   5409 
   5410 	PR libstdc++/94017
   5411 	* include/bits/ranges_algobase.h (__fill_n_fn::operator()): Refine
   5412 	condition for when to use memset, making sure to additionally check that
   5413 	the output pointer's value type is a non-volatile byte type.  Instead of
   5414 	requiring that the fill type is a byte type, just require that it's an
   5415 	integral type.
   5416 	* testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
   5417 	New test.
   5418 	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
   5419 	New test.
   5420 	* testsuite/25_algorithms/fill/94013.cc: Uncomment part of test that was
   5421 	blocked by PR 94017.
   5422 	* testsuite/25_algorithms/fill/94017.cc: New test.
   5423 	* testsuite/25_algorithms/fill_n/94017.cc: New test.
   5424 
   5425 	LWG 3355 The memory algorithms should support move-only input iterators
   5426 	introduced by P1207
   5427 	* include/bits/ranges_uninitialized.h
   5428 	(__uninitialized_copy_fn::operator()): Use std::move to avoid attempting
   5429 	to copy __ifirst, which could be a move-only input iterator.  Use
   5430 	operator- instead of ranges::distance to compute distance from a sized
   5431 	sentinel.
   5432 	(__uninitialized_copy_n_fn::operator()): Likewise.
   5433 	(__uninitialized_move_fn::operator()): Likewise.
   5434 	(__uninitialized_move_n_fn::operator()): Likewise.
   5435 	(__uninitialized_destroy_fn::operator()): Use std::move to avoid
   5436 	attempting to copy __first.
   5437 	(__uninitialized_destroy_n_fn::operator()): Likewise.
   5438 	* testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
   5439 	Augment test.
   5440 	* .../specialized_algorithms/uninitialized_copy/constrained.cc:
   5441 	Likewise.
   5442 	* .../specialized_algorithms/uninitialized_move/constrained.cc:
   5443 	Likewise.
   5444 
   5445 	* testsuite/util/testsuite_iterators.h (test_range::get_iterator): Make
   5446 	protected instead of private.
   5447 	(test_sized_range_sized_sent): New.
   5448 
   5449 	* testsuite/util/testsuite_iterators.h (input_iterator_wrapper_nocopy):
   5450 	New testsuite iterator.
   5451 	* testsuite/24_iterators/counted_iterator/lwg3389.cc: use it.
   5452 	* testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
   5453 
   5454 	* include/bits/ranges_uninitialized.h
   5455 	(uninitialized_copy_fn::operator()): Pass a reference type as the first
   5456 	argument to is_nothrow_assignable_v.
   5457 	(uninitialized_copy_fn::operator()): Likewise.
   5458 	(uninitialized_move_fn::operator()): Likewise.  Return an in_out_result
   5459 	with the input iterator stripped of its move_iterator.
   5460 	(uninitialized_move_n_fn::operator()): Likewise.
   5461 	(uninitialized_fill_fn::operator()): Pass a reference type as the first
   5462 	argument to is_nothrow_assignable_v.
   5463 	(uninitialized_fill_n_fn::operator()): Likewise.
   5464 
   5465 2020-03-03  Jonathan Wakely  <jwakely (a] redhat.com>
   5466 
   5467 	PR libstdc++/94013
   5468 	* include/bits/cpp_type_traits.h (__memcpyable, __memcmpable): New
   5469 	traits to control when to use memmove and memcmp optimizations.
   5470 	(__is_nonvolatile_trivially_copyable): New helper trait.
   5471 	* include/bits/ranges_algo.h (__lexicographical_compare_fn): Do not
   5472 	use memcmp optimization with volatile data.
   5473 	* include/bits/ranges_algobase.h (__equal_fn): Use __memcmpable.
   5474 	(__copy_or_move, __copy_or_move_backward): Use __memcpyable.
   5475 	* include/bits/stl_algobase.h (__copy_move_a2): Use __memcpyable.
   5476 	(__copy_move_backward_a2): Likewise.
   5477 	(__equal_aux1): Use __memcmpable.
   5478 	(__lexicographical_compare_aux): Do not use memcmp optimization with
   5479 	volatile data.
   5480 	* testsuite/25_algorithms/copy/94013.cc: New test.
   5481 	* testsuite/25_algorithms/copy_backward/94013.cc: New test.
   5482 	* testsuite/25_algorithms/equal/94013.cc: New test.
   5483 	* testsuite/25_algorithms/fill/94013.cc: New test.
   5484 	* testsuite/25_algorithms/lexicographical_compare/94013.cc: New test.
   5485 	* testsuite/25_algorithms/move/94013.cc: New test.
   5486 	* testsuite/25_algorithms/move_backward/94013.cc: New test.
   5487 
   5488 	* include/bits/stl_algobase.h (lexicographical_compare_three_way):
   5489 	Avoid redundant iterator comparisons (LWG 3410).
   5490 
   5491 2020-03-02  Jonathan Wakely  <jwakely (a] redhat.com>
   5492 
   5493 	PR libstdc++/93972
   5494 	* include/bits/stl_algobase.h (__memcmp): Allow pointer types to
   5495 	differ.
   5496 	* testsuite/25_algorithms/lexicographical_compare/uchar.cc: New test.
   5497 
   5498 	* include/std/ranges (__detail::__maybe_empty_t): Rename to
   5499 	__maybe_present_t.
   5500 	(__adaptor::_RangeAdaptor, join_view, split_view): Use new name.
   5501 
   5502 	* include/bits/ranges_algo.h (shift_right): Add 'typename' to
   5503 	dependent type.
   5504 
   5505 2020-03-01  H.J. Lu  <hongjiu.lu (a] intel.com>
   5506 
   5507 	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
   5508 
   5509 2020-02-29  John David Anglin  <danglin (a] gcc.gnu.org>
   5510 
   5511 	* testsuite/17_intro/headers/c++1998/charset.cc: Skip on *-*-hpux*.
   5512 	* testsuite/17_intro/headers/c++2011/charset.cc: Likewise.
   5513 	* testsuite/17_intro/headers/c++2014/charset.cc: Likewise.
   5514 	* testsuite/17_intro/headers/c++2017/charset.cc: Likewise.
   5515 	* testsuite/17_intro/headers/c++2020/charset.cc: Likewise.
   5516 
   5517 	* testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
   5518 	Add libatomic option.
   5519 	* testsuite/30_threads/jthread/jthread.cc: Likewise.
   5520 
   5521 2020-02-29  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5522 
   5523 	* include/bits/stl_algo.h
   5524 	(__find_if, __count_if, __is_permutation, std::is_permutation): Move...
   5525 	* include/bits/stl_algobase.h: ...here.
   5526 	* include/bits/hashtable_policy.h: Remove <bits/stl_algo.h> include.
   5527 
   5528 2020-02-29  John David Anglin  <danglin (a] gcc.gnu.org>
   5529 
   5530 	* testsuite/30_threads/stop_token/stop_callback.cc: Add libatomic
   5531 	option.
   5532 	* testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
   5533 	Likewise.
   5534 	* testsuite/30_threads/stop_token/stop_callback/deadlock.cc: Likewise.
   5535 	* testsuite/30_threads/stop_token/stop_callback/destroy.cc: Likewise.
   5536 	* testsuite/30_threads/stop_token/stop_callback/invoke.cc: Likewise.
   5537 	* testsuite/30_threads/stop_token/stop_source.cc: Likewise.
   5538 	* testsuite/30_threads/stop_token/stop_source/assign.cc: Likewise.
   5539 	* testsuite/30_threads/stop_token/stop_token.cc: Likewise.
   5540 	* testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
   5541 	Likewise.
   5542 
   5543 	PR libstdc++/92906
   5544 	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
   5545 
   5546 2020-02-28  Patrick Palka  <ppalka (a] redhat.com>
   5547 
   5548 	PR libstdc++/93972
   5549 	* include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
   5550 	Fix condition for when to use memcmp, making it consistent with the
   5551 	corresponding condition used in std::lexicographical_compare.
   5552 	* testsuite/25_algorithms/lexicographical_compare/93972.cc: New test.
   5553 
   5554 	* testsuite/26_numerics/headers/numeric/synopsis.cc: Add signatures for
   5555 	functions introduced in C++11, C++17 and C++2a.  Add 'constexpr' to
   5556 	existing signatures for C++2a.
   5557 
   5558 2020-02-28  Jonathan Wakely  <jwakely (a] redhat.com>
   5559 
   5560 	* testsuite/24_iterators/range_operations/advance_debug_neg.cc: Run
   5561 	test instead of just compiling it.
   5562 
   5563 2020-02-28  Patrick Palka  <ppalka (a] redhat.com>
   5564 
   5565 	* include/std/ranges (reverse_view::_S_needs_cached_begin): Set to false
   5566 	whenever the underlying range models common_range.
   5567 
   5568 	* include/std/ranges (__detail::_CachedPosition): New struct.
   5569 	(views::filter_view::_S_needs_cached_begin): New member variable.
   5570 	(views::filter_view::_M_cached_begin): New member variable.
   5571 	(views::filter_view::begin): Use _M_cached_begin to cache its
   5572 	result.
   5573 	(views::drop_view::_S_needs_cached_begin): New static member variable.
   5574 	(views::drop_view::_M_cached_begin): New member variable.
   5575 	(views::drop_view::begin): Use _M_cached_begin to cache its result
   5576 	when _S_needs_cached_begin.
   5577 	(views::drop_while_view::_M_cached_begin): New member variable.
   5578 	(views::drop_while_view::begin): Use _M_cached_begin to cache its
   5579 	result.
   5580 	(views::reverse_view::_S_needs_cached_begin): New static member
   5581 	variable.
   5582 	(views::reverse_view::_M_cached_begin): New member variable.
   5583 	(views::reverse_view::begin): Use _M_cached_begin to cache its result
   5584 	when _S_needs_cached_begin.
   5585 	* testsuite/std/ranges/adaptors/drop.cc: Augment test to check that
   5586 	drop_view::begin caches its result.
   5587 	* testsuite/std/ranges/adaptors/drop_while.cc: Augment test to check
   5588 	that drop_while_view::begin caches its result.
   5589 	* testsuite/std/ranges/adaptors/filter.cc: Augment test to check that
   5590 	filter_view::begin caches its result.
   5591 	* testsuite/std/ranges/adaptors/reverse.cc: Augment test to check that
   5592 	reverse_view::begin caches its result.
   5593 
   5594 2020-02-28  Jonathan Wakely  <jwakely (a] redhat.com>
   5595 
   5596 	* testsuite/27_io/filesystem/operations/last_write_time.cc: Fixes for
   5597 	filesystems that silently truncate timestamps.
   5598 	* testsuite/experimental/filesystem/operations/last_write_time.cc:
   5599 	Likewise.
   5600 
   5601 	* testsuite/21_strings/basic_string/cons/char/1.cc: Disable
   5602 	-Wstringop-overflow warnings.
   5603 
   5604 2020-02-27  Jonathan Wakely  <jwakely (a] redhat.com>
   5605 
   5606 	* testsuite/lib/libstdc++.exp (v3_target_compile): Add
   5607 	-fdiagnostics-urls=never to options.
   5608 
   5609 2020-02-27  Patrick Palka  <ppalka (a] redhat.com>
   5610 
   5611 	* include/std/ranges (transform_view::_Iterator<_Const>): Befriend
   5612 	_Iterator<!_Const>.
   5613 	(transform_view::_Sentinel<_Const>): Befriend _Sentinel<!_Const>.
   5614 	(take_view::_Sentinel<_Const>): Likewise.
   5615 	(take_while_view::_Sentinel<_Const>): Likewise.
   5616 	(split_view::_OuterIter<_Const>): Befriend _OuterIter<!_Const>.
   5617 	* testsuite/std/ranges/adaptors/split.cc: Augment test.
   5618 	* testsuite/std/ranges/adaptors/take.cc: Augment test.
   5619 	* testsuite/std/ranges/adaptors/take_while.cc: Augment test.
   5620 	* testsuite/std/ranges/adaptors/transform.cc: Augment test.
   5621 
   5622 	* testsuite/25_algorithms/copy/constrained.cc: Don't assume that the
   5623 	base() of a vector<>::iterator is a pointer.
   5624 	* testsuite/25_algorithms/copy_backward/constrained.cc: Likewise.
   5625 	* testsuite/25_algorithms/move/constrained.cc: Likewise.
   5626 	* testsuite/25_algorithms/move_backward/constrained.cc: Likewise.
   5627 	* testsuite/25_algorithms/inplace_merge/constrained.cc: Use foo.data()
   5628 	instead of &foo[0].
   5629 	* testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
   5630 	* testsuite/25_algorithms/partial_sort_copy/constrained.cc: Likewise.
   5631 	* testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
   5632 	* testsuite/25_algorithms/sort/constrained.cc: Likewise.
   5633 	* testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
   5634 
   5635 2020-02-27  Jonathan Wakely  <jwakely (a] redhat.com>
   5636 
   5637 	* include/debug/array (operator<=>): Define for C++20.
   5638 	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
   5639 	Adjust dg-error line numbers.
   5640 	* testsuite/23_containers/array/tuple_interface/
   5641 	tuple_element_debug_neg.cc: Likewise.
   5642 
   5643 	* testsuite/23_containers/span/back_assert_neg.cc: Add #undef before
   5644 	defining _GLIBCXX_ASSERTIONS.
   5645 	* testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
   5646 	* testsuite/23_containers/span/first_assert_neg.cc: Likewise.
   5647 	* testsuite/23_containers/span/front_assert_neg.cc: Likewise.
   5648 	* testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
   5649 	* testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
   5650 	* testsuite/23_containers/span/last_assert_neg.cc: Likewise.
   5651 	* testsuite/23_containers/span/subspan_2_assert_neg.cc: Likewise.
   5652 	* testsuite/23_containers/span/subspan_3_assert_neg.cc: Likewise.
   5653 	* testsuite/23_containers/span/subspan_4_assert_neg.cc: Likewise.
   5654 	* testsuite/23_containers/span/subspan_5_assert_neg.cc: Likewise.
   5655 	* testsuite/23_containers/span/subspan_6_assert_neg.cc: Likewise.
   5656 	* testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
   5657 
   5658 	* include/debug/string (__gnu_debug::basic_string::insert): Fix for
   5659 	C++98 where the member function of the base class returns void.
   5660 
   5661 	* testsuite/util/testsuite_iterators.h (forward_iterator_wrapper): Add
   5662 	equality comparisons that support value-initialized iterators.
   5663 
   5664 	* include/bits/boost_concept_check.h (__function_requires): Add
   5665 	_GLIBCXX14_CONSTEXPR.
   5666 	* testsuite/25_algorithms/min/concept_checks.cc: New test.
   5667 
   5668 2020-02-26  Patrick Palka  <ppalka (a] redhat.com>
   5669 
   5670 	PR libstdc++/93936
   5671 	* include/std/ranges (split_view::_InnerIter::operator==): Compare
   5672 	the operands' _M_i rather than their _M_i.current().
   5673 	* testsuite/std/ranges/adaptors/split.cc: Augment test.
   5674 
   5675 	P1645R1 constexpr for <numeric> algorithms
   5676 	* include/bits/stl_numeric.h (iota, accumulate, inner_product,
   5677 	partial_sum, adjacent_difference): Make conditionally constexpr for
   5678 	C++20.
   5679 	* include/std/numeric (__cpp_lib_constexpr_numeric): Define this feature
   5680 	test macro.
   5681 	(reduce, transform_reduce, exclusive_scan, inclusive_scan,
   5682 	transform_exclusive_scan, transform_inclusive_scan): Make conditionally
   5683 	constexpr for C++20.
   5684 	* include/std/version (__cpp_lib_constexpr_numeric): Define.
   5685 	* testsuite/26_numerics/accumulate/constexpr.cc: New test.
   5686 	* testsuite/26_numerics/adjacent_difference/constexpr.cc: Likewise.
   5687 	* testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
   5688 	* testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
   5689 	* testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
   5690 	* testsuite/26_numerics/iota/constexpr.cc: Likewise.
   5691 	* testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
   5692 	* testsuite/26_numerics/reduce/constexpr.cc: Likewise.
   5693 	* testsuite/26_numerics/transform_exclusive_scan/constexpr.cc: Likewise.
   5694 	* testsuite/26_numerics/transform_inclusive_scan/constexpr.cc: Likewise.
   5695 	* testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
   5696 
   5697 2020-02-26  Jonathan Wakely  <jwakely (a] redhat.com>
   5698 
   5699 	* include/bits/ranges_algo.h (__lexicographical_compare_fn): Declare
   5700 	variables in smaller scope and avoid calling ranges::distance when we
   5701 	know they are pointers. Remove statically-unreachable use of
   5702 	__builtin_unreachable().
   5703 	* include/bits/stl_algobase.h (__lexicographical_compare::__lc):
   5704 	Define inline.
   5705 
   5706 	* include/std/ranges (__detail::__maybe_empty_t): Define new helper
   5707 	alias.
   5708 	(__detail::__maybe_const_t): Likewise.
   5709 	(__adaptor::_RangeAdaptor): Use __maybe_empty_t.
   5710 	(transform_view, take_view, take_while_view, elements_view): Use
   5711 	__maybe_const_t.
   5712 	(join_view, split_view): Use both.
   5713 
   5714 2020-02-25  Patrick Palka  <ppalka (a] redhat.com>
   5715 
   5716 	LWG 3397 basic_istream_view::iterator should not provide
   5717 	iterator_category
   5718 	* include/std/ranges (basic_istream_view:_Iterator::iterator_category):
   5719 	Rename to ...
   5720 	(basic_istream_view:_Iterator::iterator_concept): ... this.
   5721 	* testsuite/std/ranges/istream_view.cc: Augment test.
   5722 
   5723 	LWG 3325 Constrain return type of transformation function for
   5724 	transform_view
   5725 	* include/std/ranges (transform_view): Constrain the return type of the
   5726 	transformation function as per LWG 3325.
   5727 	* testsuite/std/ranges/adaptors/lwg3325_neg.cc: New test.
   5728 
   5729 	LWG 3313 join_view::_Iterator::operator-- is incorrectly constrained
   5730 	* include/std/ranges (join_view::_Iterator::operator--): Require that
   5731 	range_reference_t<_Base> models common_range.
   5732 	* testsuite/std/ranges/adaptors/lwg3313_neg.cc: New test.
   5733 
   5734 	LWG 3301 transform_view::_Iterator has incorrect iterator_category
   5735 	* include/std/ranges (transform_view::_Iterator::_S_iter_cat): Adjust
   5736 	determination of iterator_category as per LWG 3301.
   5737 	* testsuite/std/ranges/adaptors/transform.cc: Augment test.
   5738 
   5739 	LWG 3292 iota_view is under-constrained
   5740 	* include/std/ranges (iota_view): Require that _Winc models semiregular
   5741 	  as per LWG 3292.
   5742 	* testsuite/std/ranges/iota/lwg3292_neg.cc: New test.
   5743 
   5744 2020-02-25  Jonathan Wakely  <jwakely (a] redhat.com>
   5745 
   5746 	* include/bits/ranges_algobase.h (__copy_or_move): Do not use memmove
   5747 	during constant evaluation. Call __builtin_memmove directly instead of
   5748 	__memmove.
   5749 	(__copy_or_move_backward): Likewise.
   5750 	* include/bits/stl_algobase.h (__memmove): Remove.
   5751 	(__copy_move<M, true, random_access_iterator_tag>::__copy_m)
   5752 	(__copy_move_backward<M, true, random_access_iterator_tag>::__copy_m):
   5753 	Use __builtin_memmove directly instead of __memmove.
   5754 	(__copy_move_a2): Do not use memmove during constant evaluation.
   5755 	(__copy_move_backward_a2): Use _IsMove constant to select correct
   5756 	__copy_move_backward specialization.
   5757 	* testsuite/25_algorithms/copy_backward/constexpr.cc: Check for copies
   5758 	begin turned into moves during constant evaluation.
   5759 
   5760 	* testsuite/25_algorithms/move_backward/93872.cc: Add test left out of
   5761 	previous commit.
   5762 
   5763 	PR libstdc++/93872
   5764 	* include/bits/stl_algobase.h (__memmove): Cast away const before
   5765 	doing move assignment.
   5766 	* testsuite/25_algorithms/move/93872.cc: New test.
   5767 	* testsuite/25_algorithms/move_backward/93872.cc: New test.
   5768 
   5769 2020-02-24  Patrick Palka  <ppalka (a] redhat.com>
   5770 
   5771 	PR libstdc++/93884
   5772 	* include/bits/ranges_algobase.h (__copy_or_move,
   5773 	__copy_or_move_backward): Don't inspect the iter_value_t of the output
   5774 	iterator, instead inspect its iterator_traits directly.
   5775 	* include/bits/stl_iterator.h (back_insert_iterator::container):
   5776 	Conditionally initialize.
   5777 	(back_insert_iterator::difference_type): Conditionally define.
   5778 	(back_insert_iterator::back_insert_iterator): Conditionally define this
   5779 	default constructor.
   5780 	(front_insert_iterator::container): Conditionally initialize.
   5781 	(front_insert_iterator::difference_type): Conditionally define.
   5782 	(front_insert_iterator::front_insert_iterator): Conditionally define
   5783 	this default constructor.
   5784 	* 24_iterators/back_insert_iterator/pr93884.cc: New test.
   5785 	* 24_iterators/front_insert_iterator/pr93884.cc: New test.
   5786 
   5787 	P0769R2 Add shift to <algorithm>
   5788 	* include/bits/ranges_algo.h (shift_left, shift_right): New.
   5789 	* testsuite/25_algorithms/shift_left/1.cc: New test.
   5790 	* testsuite/25_algorithms/shift_right/1.cc: New test.
   5791 
   5792 2020-02-24  Jonathan Wakely  <jwakely (a] redhat.com>
   5793 
   5794 	* include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)):
   5795 	Make noexcept-specifier conditional.
   5796 	* testsuite/24_iterators/istream_iterator/cons/sentinel.cc: Check
   5797 	noexcept-specifier.
   5798 
   5799 	* include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)):
   5800 	Add constructor.
   5801 	(operator==(istream_iterator, default_sentinel_t)): Add operator.
   5802 	(ostream_iterator::difference_type): Define to ptrdiff_t for C++20.
   5803 	* include/bits/streambuf_iterator.h
   5804 	(istreambuf_iterator(default_sentinel_t)): Add constructor.
   5805 	(operator==(istreambuf_iterator, default_sentinel_t)): Add operator.
   5806 	* testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
   5807 	New test.
   5808 	* testsuite/24_iterators/istream_iterator/sentinel.cc: New test.
   5809 	* testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
   5810 	New test.
   5811 	* testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test.
   5812 
   5813 	* include/std/ranges (__deep_const_range, __enable_view_impl): Remove.
   5814 	(ranges::enable_view): Simplify (LWG 3326).
   5815 	* include/bits/range_access.h (ranges::enable_view): Declare.
   5816 	* include/bits/regex.h (__enable_view_impl): Remove partial
   5817 	specialization.
   5818 	* include/bits/stl_multiset.h (__enable_view_impl): Likewise.
   5819 	* include/bits/stl_set.h (__enable_view_impl): Likewise.
   5820 	* include/bits/unordered_set.h (__enable_view_impl): Likewise.
   5821 	* include/debug/multiset.h (__enable_view_impl): Likewise.
   5822 	* include/debug/set.h (__enable_view_impl): Likewise.
   5823 	* include/debug/unordered_set (__enable_view_impl): Likewise.
   5824 	* include/experimental/string_view (ranges::enable_view): Define
   5825 	partial specialization.
   5826 	* include/std/span (ranges::enable_view): Likewise.
   5827 	* include/std/string_view (ranges::enable_view): Likewise.
   5828 	* testsuite/std/ranges/view.cc: Check satisfaction of updated concept.
   5829 
   5830 2020-02-21  Jonathan Wakely  <jwakely (a] redhat.com>
   5831 
   5832 	* include/std/optional (operator<=>(optional<T>, optional<U>))
   5833 	(operator<=>(optional<T>, nullopt), operator<=>(optional<T>, U)):
   5834 	Define for C++20.
   5835 	* include/std/tuple (__tuple_cmp): New helper function for <=>.
   5836 	(operator<=>(tuple<T...>, tuple<U>...)): Define for C++20.
   5837 	* include/std/variant (operator<=>(variant<T...>, variant<T...>))
   5838 	(operator<=>(monostate, monostate)): Define for C++20.
   5839 	* testsuite/20_util/optional/relops/three_way.cc: New test.
   5840 	* testsuite/20_util/tuple/comparison_operators/three_way.cc: New test.
   5841 	* testsuite/20_util/variant/89851.cc: Move to ...
   5842 	* testsuite/20_util/variant/relops/89851.cc: ... here.
   5843 	* testsuite/20_util/variant/90008.cc: Move to ...
   5844 	* testsuite/20_util/variant/relops/90008.cc: ... here.
   5845 	* testsuite/20_util/variant/relops/three_way.cc: New test.
   5846 
   5847 2020-02-20  Patrick Palka  <ppalka (a] redhat.com>
   5848 
   5849 	* include/std/ranges (views::__adaptor::__maybe_refwrap): New utility
   5850 	function.
   5851 	(views::__adaptor::_RangeAdaptor::operator()): Add comments.  Use
   5852 	__maybe_refwrap to capture lvalue references by reference, and then use
   5853 	unwrap_reference_t to forward the by-reference captures as references.
   5854 	* testsuite/std/ranges/adaptors/split.cc: Augment test.
   5855 	* testsuite/std/ranges/adaptors/split_neg.cc: New test.
   5856 
   5857 	* include/std/ranges (iota_view): Forward declare _Sentinel.
   5858 	(iota_view::_Iterator): Befriend _Sentinel.
   5859 	(iota_view::_Sentinel::_M_equal): New member function.
   5860 	(iota_view::_Sentinel::operator==): Use it.
   5861 	(views::_Iota::operator()): Forward __f using the correct type.
   5862 	* testsuite/std/ranges/access/ssize.cc (test06): Don't call views::iota
   5863 	with integers of different signedness, to appease iota_view's deduction
   5864 	guide.
   5865 	* testsuite/std/ranges/iota/iota_view.cc: Augment test.
   5866 
   5867 2020-02-20  Jonathan Wakely  <jwakely (a] redhat.com>
   5868 
   5869 	* include/bits/range_access.h (ranges::begin): Reject array of
   5870 	incomplete type.
   5871 	(ranges::end, ranges::size): Require arrays to be bounded.
   5872 	(ranges::data): Require lvalue or borrowed_range.
   5873 	(ranges::iterator_t): Remove constraint.
   5874 	* testsuite/std/ranges/access/begin.cc: Do not check array of
   5875 	incomplete type.
   5876 	* testsuite/std/ranges/access/begin_neg.cc: New test.
   5877 	* testsuite/std/ranges/access/end_neg.cc: Adjust expected error.
   5878 	* testsuite/std/ranges/access/size_neg.cc: Adjust expected error.
   5879 	* testsuite/std/ranges/access/ssize.cc: Do not check array of
   5880 	incomplete type.
   5881 
   5882 	* include/std/system_error (error_category::operator<=>)
   5883 	(operator<=>(const error_code&, const error_code&))
   5884 	(operator<=>(const error_condition&, const error_condition&)): Define
   5885 	for C++20.
   5886 	* testsuite/19_diagnostics/error_category/operators/less.cc: New test.
   5887 	* testsuite/19_diagnostics/error_category/operators/three_way.cc: New
   5888 	test.
   5889 	* testsuite/19_diagnostics/error_code/operators/equal.cc: Remove
   5890 	incorrect comment.
   5891 	* testsuite/19_diagnostics/error_code/operators/less.cc: New test.
   5892 	* testsuite/19_diagnostics/error_code/operators/not_equal.cc: Remove
   5893 	incorrect comment.
   5894 	* testsuite/19_diagnostics/error_code/operators/three_way.cc: New test.
   5895 	* testsuite/19_diagnostics/error_condition/operators/equal.cc: Remove
   5896 	incorrect comment.
   5897 	* testsuite/19_diagnostics/error_condition/operators/less.cc: New test.
   5898 	* testsuite/19_diagnostics/error_condition/operators/not_equal.cc:
   5899 	Remove incorrect comment.
   5900 	* testsuite/19_diagnostics/error_condition/operators/three_way.cc: New
   5901 	test.
   5902 
   5903 	* libsupc++/typeinfo (type_info::operator!=): Remove for C++20.
   5904 
   5905 	* include/std/thread (thread::id::operator<=>): Define for C++20.
   5906 	* testsuite/30_threads/thread/id/70294.cc: Do not take addresses of
   5907 	functions in namespace std.
   5908 	* testsuite/30_threads/thread/id/operators_c++20.cc: New test.
   5909 
   5910 2020-02-19  Patrick Palka  <ppalka (a] redhat.com>
   5911 
   5912 	* testsuite/std/ranges/adaptors/split.cc (test03): Don't include the
   5913 	null terminator of the underlying string as part of the test_range.
   5914 	(main): Call test03.
   5915 
   5916 2020-02-19  Jonathan Wakely  <jwakely (a] redhat.com>
   5917 
   5918 	* include/bits/stl_iterator.h (common_iterator): Add copyable<I>
   5919 	requirement (LWG 3385).
   5920 	* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust
   5921 	expected declaration.
   5922 
   5923 	* include/std/ranges (take_while_view, drop_view, drop_while_view)
   5924 	(elements_view:_Iterator): Initialize data members (LWG 3364).
   5925 
   5926 	* libsupc++/compare (three_way_comparable): Remove always-false check
   5927 	that should have been removed with weak_equality (P1959R0).
   5928 	(three_way_comparable_with): Likewise. Reorder requirements (LWG 3360).
   5929 
   5930 	* include/std/concepts (__detail::__partially_ordered_with): Move here
   5931 	from <compare>.
   5932 	(totally_ordered, totally_ordered_with): Use __partially_ordered_with
   5933 	to simplify definition (LWG 3331).
   5934 	* libsupc++/compare (__detail::__partially_ordered_with): Move to
   5935 	<concepts>.
   5936 
   5937 	* include/std/concepts (totally_ordered_with): Remove redundant
   5938 	requirement (LWG 3329).
   5939 
   5940 	* include/std/ranges (__detail::__convertible_to_non_slicing): New
   5941 	helper concept.
   5942 	(__detail::__pair_like_convertible_to): Remove.
   5943 	(__detail::__pair_like_convertible_from): Add requirements for
   5944 	non-slicing conversions.
   5945 	(subrange): Constrain constructors with __convertible_to_non_slicing.
   5946 	Remove constructors from pair-like types. Add new deduction guide.
   5947 	* testsuite/std/ranges/subrange/lwg3282_neg.cc: New test.
   5948 
   5949 	* include/bits/iterator_concepts.h (iter_move): Add declaration to
   5950 	prevent unqualified lookup finding a suitable declaration (LWG 3247).
   5951 
   5952 	* include/std/memory_resource (polymorphic_allocator::allocate)
   5953 	(polymorphic_allocator::allocate_object): Change type of exception to
   5954 	bad_array_new_length (LWG 3237).
   5955 	* testsuite/20_util/polymorphic_allocator/lwg3237.cc: New test.
   5956 
   5957 	* include/std/type_traits (__cpp_lib_unwrap_ref): Define (LWG 3348).
   5958 	* include/std/version (__cpp_lib_unwrap_ref): Likewise.
   5959 	* testsuite/20_util/unwrap_reference/1.cc: Check macro.
   5960 	* testsuite/20_util/unwrap_reference/3.cc: New test.
   5961 
   5962 	* include/std/numeric (midpoint(T8, T*)): Do not check for complete
   5963 	type during overload resolution, use static assert instead (LWG 3200).
   5964 	* testsuite/26_numerics/midpoint/pointer.cc: Do not test with
   5965 	incomplete type.
   5966 	* testsuite/26_numerics/midpoint/pointer_neg.cc: New test.
   5967 
   5968 	* include/std/span (span(T (&)[N])): Use non-deduced context to
   5969 	prevent first parameter from interfering with class template argument
   5970 	deduction (LWG 3369).
   5971 	* testsuite/23_containers/span/deduction.cc: Add missing 'const'.
   5972 	* testsuite/23_containers/span/lwg3255.cc: Check for construction from
   5973 	rvalues.
   5974 
   5975 	* include/std/span (span::const_iterator, span::const_reverse_iterator)
   5976 	(span::cbegin(), span::cend(), span::crbegin(), span::crend()):
   5977 	Remove (LWG 3320).
   5978 	* testsuite/23_containers/span/everything.cc: Replace uses of cbegin
   5979 	and cend.
   5980 	* testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
   5981 	Likewise.
   5982 	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
   5983 	constrained.cc: Likewise.
   5984 	* testsuite/20_util/specialized_algorithms/
   5985 	uninitialized_default_construct/constrained.cc: Likewise.
   5986 	* testsuite/20_util/specialized_algorithms/uninitialized_fill/
   5987 	constrained.cc: Likewise.
   5988 	* testsuite/20_util/specialized_algorithms/uninitialized_move/
   5989 	constrained.cc: Likewise.
   5990 	* testsuite/20_util/specialized_algorithms/
   5991 	uninitialized_value_construct/constrained.cc: Likewise.
   5992 
   5993 	* include/bits/range_access.h (range_size_t): Define alias template.
   5994 	* include/std/ranges (all_view): Rename to views::all_t (LWG 3335).
   5995 	* testsuite/std/ranges/adaptors/filter.cc: Adjust to new name.
   5996 
   5997 	* include/std/ranges (filter_view, transform_view, take_view)
   5998 	(join_view, split_view, reverse_view): Remove commented-out converting
   5999 	constructors (LWG 3280).
   6000 
   6001 	* include/std/memory (uninitialized_construct_using_allocator): Use
   6002 	std::construct_at (LWG 3321).
   6003 
   6004 	* include/std/memory_resource (polymorphic_allocator::allocate_bytes)
   6005 	(polymorphic_allocator::allocate_object)
   6006 	(polymorphic_allocator::new_object): Add nodiscard attribute (LWG3304).
   6007 
   6008 	LWG 3379. "safe" in several library names is misleading
   6009 	* include/bits/range_access.h (enable_safe_range): Rename to
   6010 	enable_borrowed_range.
   6011 	(__detail::__maybe_safe_range): Rename to __maybe_borrowed_range.
   6012 	(safe_range): Rename to borrowed_range.
   6013 	* include/bits/ranges_algo.h: Adjust to use new names.
   6014 	* include/bits/ranges_algobase.h: Likewise.
   6015 	* include/bits/ranges_uninitialized.h: Likewise.
   6016 	* include/std/ranges: Likewise.
   6017 	(safe_iterator_t): Rename to borrowed_iterator_t.
   6018 	(safe_subrange_t): Rename to borrowed_subrange_t.
   6019 	* include/std/span: Adjust to use new names.
   6020 	* include/std/string_view: Likewise.
   6021 	* include/experimental/string_view: Likewise.
   6022 	* testsuite/std/ranges/access/begin.cc: Likewise.
   6023 	* testsuite/std/ranges/access/cbegin.cc: Likewise.
   6024 	* testsuite/std/ranges/access/cdata.cc: Likewise.
   6025 	* testsuite/std/ranges/access/cend.cc: Likewise.
   6026 	* testsuite/std/ranges/access/crbegin.cc: Likewise.
   6027 	* testsuite/std/ranges/access/crend.cc: Likewise.
   6028 	* testsuite/std/ranges/access/data.cc: Likewise.
   6029 	* testsuite/std/ranges/access/end.cc: Likewise.
   6030 	* testsuite/std/ranges/access/rbegin.cc: Likewise.
   6031 	* testsuite/std/ranges/access/rend.cc: Likewise.
   6032 	* testsuite/std/ranges/safe_range.cc: Likewise.
   6033 	* testsuite/std/ranges/safe_range_types.cc: Likewise.
   6034 	* testsuite/util/testsuite_iterators.h: Likewise.
   6035 
   6036 	* include/std/ranges (tuple_element<0, const subrange<I, S, K>>)
   6037 	(tuple_element<1, const subrange<I, S, K>>): Add partial
   6038 	specializations (LWG 3398).
   6039 	* testsuite/std/ranges/subrange/tuple_like.cc: New test.
   6040 
   6041 	* include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
   6042 	(__adjacent_find_fn, __remove_if_fn, __remove_copy_if_fn)
   6043 	(__unique_fn, __unique_copy_fn): Remove redundant conversions to bool.
   6044 
   6045 2020-02-18  Patrick Palka  <ppalka (a] redhat.com>
   6046 
   6047 	P1983R0 Wording for GB301, US296, US292, US291, and US283
   6048 	* include/std/ranges (filter_view::pred): New member function.
   6049 	(join_view::_Iterator::_Iterator): Remove now-redundant comment since
   6050 	P1983R0 fixes the highlighted issue in the same way.
   6051 	(join_view::_Iterator<_Const>): Add friend
   6052 	join_view::_Iterator<!_Const>.
   6053 	(join_view::_M_inner): Remove mutable specifier, effectively reverting
   6054 	the proposed wording changes of P3278.
   6055 	(join_view::begin): Refine the condition for when to return a const
   6056 	iterator.
   6057 	(split_view::_OuterIter::_OuterIter): Adjust constraints.
   6058 	* testsuite/std/ranges/adaptors/filter.cc: Test that filter_view::pred
   6059 	exists and works.
   6060 
   6061 2020-02-18  Jonathan Wakely  <jwakely (a] redhat.com>
   6062 
   6063 	PR libstdc++/93818
   6064 	* include/std/ranges (_RangeAdaptor): Add deduction guide.
   6065 	(filter_view::_Iterator): Add alias _Vp_iter and use in place of
   6066 	iterator_t<_Vp>.
   6067 	(filter_view::_Iterator::_S_iter_cat()): Add 'typename'.
   6068 	(transform_view::_Iterator): Add alias _Base_iter and use in place of
   6069 	iterator_t<_Base>.
   6070 	(transform_view::_Iterator::_S_iter_cat()): Add 'typename'.
   6071 	(join_view::_Iterator): Add _Outer_iter and _Inner_iter aliases.
   6072 	(join_view::_Iterator::_S_iter_cat()): Add 'typename'.
   6073 	(split_view::_InnerIter::_S_iter_cat()): Likewise.
   6074 
   6075 	* testsuite/20_util/integer_comparisons/equal.cc: Fix invalid
   6076 	assumption that long is wider than int.
   6077 	* testsuite/20_util/integer_comparisons/greater_equal.cc: Likewise.
   6078 	* testsuite/20_util/integer_comparisons/less.cc: Likewise.
   6079 	* testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
   6080 	* testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
   6081 
   6082 	P1976R2 Fixed-size span construction from dynamic range
   6083 	* include/std/span (__cpp_lib_span): Update value.
   6084 	(span(It, size_type), span(It, End)): Make conditionally explicit. Add
   6085 	assertion.
   6086 	(span(R&&), span(const span<OType, OExtent>&)): Likewise and relax
   6087 	constraints.
   6088 	(span::first<Count>(), span::last<Count>()): Use explicit type in
   6089 	return statement.
   6090 	(as_bytes, as_writable_bytes): Likewise.
   6091 	* include/std/version (__cpp_lib_span): Update value.
   6092 	* testsuite/23_containers/span/1.cc: Check new value.
   6093 	* testsuite/23_containers/span/2.cc: Check new value.
   6094 	* testsuite/23_containers/span/explicit.cc: New test.
   6095 
   6096 	* include/std/span (span::__is_compatible_array): Simplify alias
   6097 	template by using requires-clause.
   6098 	(span::__is_compatible_ref): New alias template for constraining
   6099 	constructors.
   6100 	(span::__is_compatible_iterator, span::__is_compatible_range): Remove.
   6101 	(span(It, size_type), span(It, End)): Use __is_compatible_ref.
   6102 	(span(T(&)[N], span(array<T, N>&), span(const array<T, N>&)): Remove
   6103 	redundant parentheses.
   6104 	(span(R&&)): Add missing constraints.
   6105 
   6106 	* include/std/span (span): Reorder members and rename template
   6107 	parameters to match declarations in the C++2a working paper.
   6108 
   6109 	P2116R0 Remove tuple-like protocol support from fixed-extent span
   6110 	* include/std/span (get, tuple_size, tuple_element): Remove.
   6111 	* testsuite/23_containers/span/everything.cc: Remove checks for
   6112 	tuple-like API.
   6113 	* testsuite/23_containers/span/get_neg.cc: Remove.
   6114 	* testsuite/23_containers/span/tuple_element_dynamic_neg.cc: Remove.
   6115 	* testsuite/23_containers/span/tuple_element_oob_neg.cc: Remove.
   6116 	* testsuite/23_containers/span/tuple_size_neg.cc: Remove.
   6117 
   6118 2020-02-17  Patrick Palka  <ppalka (a] redhat.com>
   6119 
   6120 	P2106R0 Alternative wording for GB315 and GB316
   6121 	* include/bits/ranges_algo.h (in_fun_result): New.
   6122 	(for_each_result, for_each_n_result): Change into an alias of
   6123 	in_fun_result.
   6124 	(in_in_result): New.
   6125 	(mismatch_result): Change into an alias of in_in_result.
   6126 	(copy_if_result): Change into an alias of in_out_result.
   6127 	(swap_ranges_result): Change into an alias of in_in_result.
   6128 	(unary_transform_result): Change into an alias of in_out_result.
   6129 	(in_in_out_result): New.
   6130 	(binary_transform_result): Change into an alias of in_in_out_result.
   6131 	(replace_copy_result, replace_copy_if_result, remove_copy_if_result,
   6132 	remove_copy_result, unique_copy_result, reverse_copy_result,
   6133 	rotate_copy_result, partial_sort_copy_result): Change into an alias of
   6134 	in_out_result.
   6135 	(in_out_out_result): New.
   6136 	(partition_copy_result, merge_result): Change into an alias of
   6137 	in_out_out_result.
   6138 	(set_union_result, set_intersection_result): Change into an alias of
   6139 	in_in_out_result.
   6140 	(set_difference_result): Change into an alias of in_out_result.
   6141 	(set_symmetric_difference): Change into an alias of in_in_out_result.
   6142 	(min_max_result): New.
   6143 	(minmax_result, minmax_element_result): Change into an alias of
   6144 	min_max_result.
   6145 	(in_found_result): New.
   6146 	(next_permutation_result, prev_permutation_result): Change into an alias
   6147 	of in_found_result.
   6148 	(__next_permutation_fn::operator(), __prev_permutation_fn::operator()):
   6149 	Adjust following changes to next_permutation_result and
   6150 	prev_permutation_result.
   6151 	* include/bits/ranges_algobase.h (in_out_result): New.
   6152 	(copy_result, move_result, move_backward_result, copy_backward_result,
   6153 	copy_n_result): Change into an alias of in_out_result.
   6154 	* include/bits/ranges_uninitialized.h (uninitialized_copy_result,
   6155 	uninitialized_copy_n_result, uninitialized_move_result,
   6156 	uninitialized_move_n_result): Likewise.
   6157 	* testsuite/25_algorithms/next_permutation/constrained.cc: Adjust uses of
   6158 	structured bindings.
   6159 	* testsuite/25_algorithms/prev_permutation/constrained.cc: Likewise.
   6160 
   6161 	P1243R4 Rangify new algorithms
   6162 	* include/bits/ranges_algo.h (for_each_n_result, __for_each_n_fn,
   6163 	for_each_n, __sample_fn, sample, __clamp_fn, clamp): New.
   6164 	* testsuite/25_algorithms/clamp/constrained.cc: New test.
   6165 	* testsuite/25_algorithms/for_each/constrained.cc: Augment test.
   6166 	* testsuite/25_algorithms/sample/constrained.cc: New test.
   6167 
   6168 2020-02-17  Jonathan Wakely  <jwakely (a] redhat.com>
   6169 
   6170 	P1964R2 Wording for boolean-testable
   6171 	* include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
   6172 	(__adjacent_find_fn): Cast result of predicate to bool.
   6173 	* include/std/concepts (__boolean): Remove.
   6174 	(__detail::__boolean_testable_impl, __detail::__boolean_testable): Add
   6175 	new helper concepts.
   6176 	(__detail::__weakly_eq_cmp_with, totally_ordered, totally_ordered_with)
   6177 	(predicate): Use __boolean_testable instead of boolean.
   6178 	* libsupc++/compare (__detail::__partially_ordered, _Synth3way):
   6179 	Likewise.
   6180 
   6181 	P1970R2 Consistency for size() functions: Add ranges::ssize
   6182 	* include/bits/range_access.h (_SSize, ssize): Define for C++20.
   6183 	* testsuite/std/ranges/access/ssize.cc: New test.
   6184 
   6185 	P1956R1 On the names of low-level bit manipulation functions
   6186 	* include/bits/hashtable_policy.h: Update comment.
   6187 	* include/std/bit (__ispow2, __ceil2, __floor2, __log2p1): Rename.
   6188 	(ispow2, ceil2, floor2, log2p1): Likewise.
   6189 	(__cpp_lib_int_pow2): Add feature test macro.
   6190 	* include/std/charconv (__to_chars_len_2): Adjust use of __log2p1.
   6191 	* include/std/memory (assume_aligned): Adjust use of ispow2.
   6192 	* include/std/version (__cpp_lib_int_pow2): Add.
   6193 	* libsupc++/new_opa.cc: Adjust use of __ispow2.
   6194 	* src/c++17/memory_resource.cc: Likewise, and for __ceil2 and __log2p1.
   6195 	* testsuite/17_intro/freestanding.cc: Adjust use of ispow2.
   6196 	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Rename to ...
   6197 	* testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: ... here.
   6198 	* testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Rename to ...
   6199 	* testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc: ... here.
   6200 	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Rename to ...
   6201 	* testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: ... here.
   6202 	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Rename to ...
   6203 	* testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: ... here.
   6204 	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Rename to ...
   6205 	* testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc: ... here.
   6206 
   6207 	* include/std/charconv: Add comment.
   6208 
   6209 	PR libstdc++/92546 (partial)
   6210 	* include/bits/random.h (uniform_random_bit_generator): Move definition
   6211 	to <bits/uniform_int_dist.h>.
   6212 	* include/bits/ranges_algo.h: Include <bits/uniform_int_dist.h> instead
   6213 	of <bits/random.h>.
   6214 	* include/bits/ranges_algobase.h: Do not include <cmath>.
   6215 	* include/bits/uniform_int_dist.h (uniform_random_bit_generator):
   6216 	Move here.
   6217 	* include/std/ranges: Do not include <limits>.
   6218 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
   6219 
   6220 	PR libstdc++/92546 (partial)
   6221 	* include/Makefile.am: Add new header.
   6222 	* include/Makefile.in: Regenerate.
   6223 	* include/bits/int_limits.h: New header.
   6224 	* include/bits/parse_numbers.h (__select_int::_Select_int): Replace
   6225 	numeric_limits with __detail::__int_limits.
   6226 	* include/std/bit (__rotl, __rotr, __countl_zero, __countl_one)
   6227 	(__countr_zero, __countr_one, __popcount, __ceil2, __floor2, __log2p1):
   6228 	Likewise.
   6229 	* include/std/charconv (__to_chars_8, __from_chars_binary)
   6230 	(__from_chars_alpha_to_num, from_chars): Likewise.
   6231 	* include/std/memory_resource (polymorphic_allocator::allocate)
   6232 	(polymorphic_allocator::allocate_object): Likewise.
   6233 	* include/std/string_view (basic_string_view::_S_compare): Likewise.
   6234 	* include/std/utility (in_range): Likewise.
   6235 	* testsuite/20_util/integer_comparisons/in_range_neg.cc: Adjust for
   6236 	extra error about incomplete type __int_limits<bool>.
   6237 	* testsuite/26_numerics/bit/bit.count/countl_one.cc: Include <limits>.
   6238 	* testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
   6239 	* testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
   6240 	* testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
   6241 	* testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
   6242 	* testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Likewise.
   6243 	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Likewise.
   6244 	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise.
   6245 	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise.
   6246 	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise.
   6247 	* testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
   6248 	* testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
   6249 
   6250 	* python/libstdcxx/v6/printers.py (StdCmpCatPrinter.to_string): Update
   6251 	value for partial_ordering::unordered.
   6252 
   6253 	* include/bits/iterator_concepts.h (indirectly_copyable_storable): Add
   6254 	const-qualified expression variations.
   6255 	* include/std/concepts (copyable): Likewise.
   6256 
   6257 	* include/std/type_traits (__is_standard_integer): New helper trait.
   6258 	* include/std/utility (cmp_equal, cmp_not_equal, cmp_less, cmp_greater)
   6259 	(cmp_less_equal, cmp_greater_equal, in_range): Define for C++20.
   6260 	* include/std/version (__cpp_lib_integer_comparison_functions): Define.
   6261 	* testsuite/20_util/integer_comparisons/1.cc: New test.
   6262 	* testsuite/20_util/integer_comparisons/2.cc: New test.
   6263 	* testsuite/20_util/integer_comparisons/equal.cc: New test.
   6264 	* testsuite/20_util/integer_comparisons/equal_neg.cc: New test.
   6265 	* testsuite/20_util/integer_comparisons/greater_equal.cc: New test.
   6266 	* testsuite/20_util/integer_comparisons/greater_equal_neg.cc: New test.
   6267 	* testsuite/20_util/integer_comparisons/greater_neg.cc: New test.
   6268 	* testsuite/20_util/integer_comparisons/in_range.cc: New test.
   6269 	* testsuite/20_util/integer_comparisons/in_range_neg.cc: New test.
   6270 	* testsuite/20_util/integer_comparisons/less.cc: New test.
   6271 	* testsuite/20_util/integer_comparisons/less_equal.cc: New test.
   6272 	* testsuite/20_util/integer_comparisons/less_equal_neg.cc: New test.
   6273 	* testsuite/20_util/integer_comparisons/less_neg.cc: New test.
   6274 	* testsuite/20_util/integer_comparisons/not_equal.cc: New test.
   6275 	* testsuite/20_util/integer_comparisons/not_equal_neg.cc: New test.
   6276 
   6277 2020-02-16  Patrick Palka  <ppalka (a] redhat.com>
   6278 
   6279 	* include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
   6280 	Move code after an early exit constexpr if to under an else branch.
   6281 	* include/bits/ranges_algobase.h (__equal_fn::operator()): Likewise.
   6282 
   6283 2020-02-15  Patrick Palka  <ppalka (a] redhat.com>
   6284 
   6285 	* include/bits/ranges_algo.h: Adjust whitespace and formatting.
   6286 	* include/bits/ranges_algobase.h: Likewise.
   6287 	* include/bits/ranges_uninitialized.h: Likewise.
   6288 
   6289 	* include/bits/ranges_algo.h: (adjacent_find, all_of, any_of,
   6290 	binary_search, copy_if, count, count_if, equal_range, find, find_end,
   6291 	find_first_of, find_if, find_if_not, for_each, generate, generate_n,
   6292 	includes, inplace_merge, is_heap, is_heap_until, is_partitioned,
   6293 	is_permutation, is_sorted, is_sorted_until, lexicographical_compare,
   6294 	lower_bound, make_heap, max, max_element, merge, min, min_element,
   6295 	minmax, minmax_element, mismatch, next_permutation, none_of,
   6296 	nth_element, partial_sort, partial_sort_copy, partition, partition_copy,
   6297 	partition_point, pop_heap, prev_permutation, push_heap, remove,
   6298 	remove_copy, remove_copy_if, remove_if, replace, replace_copy,
   6299 	replace_copy_if, replace_if, reverse, reverse_copy, rotate, rotate_copy,
   6300 	search, search_n, set_difference, set_intersection,
   6301 	set_symmetric_difference, set_union, shuffle, sort, sort_heap,
   6302 	stable_partition, stable_sort, swap_ranges, transform, unique,
   6303 	unique_copy, upper_bound): Convert into function objects.
   6304 	* include/bits/ranges_algobase.h: (equal, copy, move, copy_n, fill_n,
   6305 	fill, move_backward, copy_backward): Likewise.
   6306 	* include/bits/ranges_uninitialized.h (uninitialized_default_construct,
   6307 	uninitialized_default_construct_n, uninitialized_value_construct,
   6308 	uninitialized_value_construct_n, uninitialized_copy,
   6309 	uninitialized_copy_n, uninitialized_move, uninitialized_move_n,
   6310 	uninitialized_fill, uninitialized_fill_n, construct_at, destroy_at,
   6311 	destroy, destroy_n): Likewise.
   6312 
   6313 	* include/bits/ranges_algo.h (ranges::__find_end): Fold into ...
   6314 	(ranges::find_end): ... here.
   6315 	(ranges::__lexicographical_compare): Fold into ...
   6316 	(ranges::lexicographical_compare): ... here.
   6317 	* include/bits/ranges_algobase.h (ranges::__equal): Fold into ...
   6318 	(ranges::equal): ... here.
   6319 
   6320 2020-02-15  Jonathan Wakely  <jwakely (a] redhat.com>
   6321 
   6322 	* include/bits/erase_if.h (__cpp_lib_erase_if): Define to 202002L.
   6323 	* include/std/deque: Likewise.
   6324 	* include/std/forward_list: Likewise.
   6325 	* include/std/list: Likewise.
   6326 	* include/std/string: Likewise.
   6327 	* include/std/vector: Likewise.
   6328 	* include/std/version: Likewise.
   6329 	* testsuite/23_containers/deque/erasure.cc: Test for new value.
   6330 	* testsuite/23_containers/forward_list/erasure.cc: Likewise.
   6331 	* testsuite/23_containers/list/erasure.cc: Likewise.
   6332 	* testsuite/23_containers/map/erasure.cc: Likewise.
   6333 	* testsuite/23_containers/set/erasure.cc: Likewise.
   6334 	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
   6335 	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
   6336 	* testsuite/23_containers/vector/erasure.cc: Likewise.
   6337 
   6338 2020-02-15  Jonathan Wakely  <jwakely (a] redhat.com>
   6339 
   6340 	* include/bits/random.h (uniform_random_bit_generator): Require min()
   6341 	and max() to be constant expressions and min() to be less than max().
   6342 	* testsuite/26_numerics/random/concept.cc: Check additional cases.
   6343 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
   6344 
   6345 2020-02-13  Patrick Palka  <ppalka (a] redhat.com>
   6346 
   6347 	* include/Makefile.am: Add <bits/ranges_uninitialized.h>.
   6348 	* include/Makefile.in: Regenerate.
   6349 	* include/bits/ranges_uninitialized.h: New header.
   6350 	* include/std/memory: Include it.
   6351 	* testsuite/20_util/specialized_algorithms/destroy/constrained.cc: New
   6352 	test.
   6353 	* .../uninitialized_copy/constrained.cc: New test.
   6354 	* .../uninitialized_default_construct/constrained.cc: New test.
   6355 	* .../uninitialized_fill/constrained.cc: New test.
   6356 	* .../uninitialized_move/constrained.cc: New test.
   6357 	* .../uninitialized_value_construct/constrained.cc: New test.
   6358 
   6359 	* include/Makefile.am: Add bits/ranges_algobase.h
   6360 	* include/Makefile.in: Regenerate.
   6361 	* bits/ranges_algo.h: Include <bits/ranges_algobase.h> and refactor
   6362 	existing #includes.
   6363 	(__detail::__is_normal_iterator, __detail::is_reverse_iterator,
   6364 	__detail::__is_move_iterator, copy_result, move_result,
   6365 	__equal, equal, copy_result, move_result, move_backward_result,
   6366 	copy_backward_result, __copy_or_move_backward, __copy_or_move, copy,
   6367 	move, copy_backward, move_backward, copy_n_result, copy_n, fill_n,
   6368 	fill): Split out into ...
   6369 	* bits/range_algobase.h: ... this new header.
   6370 
   6371 2020-02-12  Patrick Palka  <ppalka (a] redhat.com>
   6372 
   6373 	LWG 3389 and LWG 3390
   6374 	* include/bits/stl_iterator.h (move_move_iterator): Use std::move when
   6375 	constructing the move_iterator with __i.
   6376 	(counted_iterator::counted_iterator): Use std::move when initializing
   6377 	M_current with __i.
   6378 	* testsuite/24_iterators/counted_iterator/lwg3389.cc: New test.
   6379 	* testsuite/24_iterators/move_iterator/lwg3390.cc: New test.
   6380 
   6381 2020-02-12  Sandra Loosemore  <sandra (a] codesourcery.com>
   6382 
   6383 	PR libstdc++/79193
   6384 	PR libstdc++/88999
   6385 
   6386 	* configure: Regenerated.
   6387 
   6388 2020-02-12  Franois Dumont  <fdumont (a] gcc.gnu.org>
   6389 
   6390 	* include/bits/hashtable.h
   6391 	(_Hashtable<>(_Hashtable&&, std::allocator_type&)): Add
   6392 	missing std namespace qualification to forward call.
   6393 
   6394 2020-02-09  Jonathan Wakely  <jwakely (a] redhat.com>
   6395 
   6396 	* testsuite/20_util/function_objects/range.cmp/equal_to.cc: Fix
   6397 	comment.
   6398 	* testsuite/20_util/function_objects/range.cmp/less.ccL Likewise.
   6399 
   6400 	* include/std/ranges: Fix non-ASCII characters in comment.
   6401 
   6402 	* include/bits/range_cmp.h (__detail::__eq_builtin_ptr_cmp): Require
   6403 	equality comparison to be valid and return bool.
   6404 	(__detail::__less_builtin_ptr_cmp): Likewise for less-than comparison.
   6405 	* testsuite/20_util/function_objects/range.cmp/equal_to.cc: Check
   6406 	type with ambiguous conversion to fundamental types.
   6407 	* testsuite/20_util/function_objects/range.cmp/less.cc: Likewise.
   6408 
   6409 2020-02-07  Jonathan Wakely  <jwakely (a] redhat.com>
   6410 
   6411 	* include/bits/iterator_concepts.h (iter_difference_t, iter_value_t):
   6412 	Use remove_cvref_t.
   6413 	(readable_traits): Rename to indirectly_readable_traits.
   6414 	(readable): Rename to indirectly_readable.
   6415 	(writable): Rename to indirectly_writable.
   6416 	(__detail::__iter_exchange_move): Do not use remove_reference_t.
   6417 	(indirectly_swappable): Adjust requires expression parameter types.
   6418 	expression.
   6419 	* include/bits/ranges_algo.h (ranges::transform, ranges::replace)
   6420 	(ranges::replace_if, ranges::generate_n, ranges::generate)
   6421 	(ranges::remove): Use new name for writable.
   6422 	* include/bits/stl_iterator.h (__detail::__common_iter_has_arrow):
   6423 	Use new name for readable.
   6424 	* include/ext/pointer.h (readable_traits<_Pointer_adapter<P>>): Use
   6425 	new name for readable_traits.
   6426 	* testsuite/24_iterators/associated_types/readable.traits.cc: Likewise.
   6427 	* testsuite/24_iterators/indirect_callable/projected.cc: Adjust for
   6428 	new definition of indirectly_readable.
   6429 
   6430 	* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Change
   6431 	to take parameters of common_iterator, instead of the common_iterator
   6432 	type itself. Fix argument for __common_iter_has_arrow constraint.
   6433 	(iterator_traits<common_iterator<I, S>>::pointer): Adjust.
   6434 
   6435 2020-02-07  Jonathan Wakely  <jwakely (a] redhat.com>
   6436 
   6437 	* include/std/ranges (iota_view): Add braces to prevent -Wempty-body
   6438 	warning.
   6439 	(basic_istream_view::_Iterator::operator++()): Add missing return.
   6440 
   6441 2020-02-07  Patrick Palka  <ppalka (a] redhat.com>
   6442 
   6443 	* include/bits/ranges_algo.h: Remove extraneous &&.
   6444 
   6445 	* include/std/ranges (ranges::__detail::__stream_extractable,
   6446 	ranges::basic_istream_view, ranges::istream_view): Define.
   6447 	* testsuite/std/ranges/istream_view: New test.
   6448 
   6449 	Implement C++20 range adaptors
   6450 	* include/std/ranges: Include <bits/refwrap.h> and <tuple>.
   6451 	(subrange::_S_store_size): Mark as const instead of constexpr to
   6452 	avoid what seems to be a bug in GCC.
   6453 	(__detail::__box): Give it defaulted copy and move constructors.
   6454 	(ranges::views::_Single::operator()): Mark constexpr.
   6455 	(ranges::views::_Iota::operator()): Mark constexpr.
   6456 	(__detail::Empty): Define.
   6457 	(ranges::views::__closure::_RangeAdaptor,
   6458 	ranges::views::__closure::_RangeAdaptorClosure, ref_view, all_view,
   6459 	ranges::views::all, ranges::__detail::find_if,
   6460 	ranges::__detail::find_if_not, ranges::__detail::mismatch,
   6461 	ranges::detail::min, filter_view, ranges::views::filter, transform_view,
   6462 	ranges::views::transform, take_view, ranges::views::take,
   6463 	take_while_view, ranges::views::take_while, drop_view,
   6464 	ranges::views::drop, join_view, ranges::views::join,
   6465 	__detail::require_constant, __detail::tiny_range, split_view,
   6466 	ranges::views::split, ranges::views::_Counted, ranges::views::counted,
   6467 	common_view, ranges::views::common, reverse_view,
   6468 	ranges::views::reverse,
   6469 	ranges::views::__detail::__is_reversible_subrange,
   6470 	ranges::views::__detail::__is_reverse_view, reverse_view,
   6471 	ranges::views::reverse, __detail::__has_tuple_element, elements_view,
   6472 	ranges::views::elements, ranges::views::keys, ranges::views::values):
   6473 	Define.
   6474 	(views): Alias for ranges::views.
   6475 	(tuple_size<ranges::subrange<>>, tuple_element<0, ranges::subrange>,
   6476 	tuple_element<1, ranges::subrange>): New partial specializations.
   6477 	* testsuite/std/ranges/adaptors/all.cc: New test.
   6478 	* testsuite/std/ranges/adaptors/common.cc: Likewise.
   6479 	* testsuite/std/ranges/adaptors/counted.cc: Likewise.
   6480 	* testsuite/std/ranges/adaptors/drop.cc: Likewise.
   6481 	* testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
   6482 	* testsuite/std/ranges/adaptors/elements.cc: Likewise.
   6483 	* testsuite/std/ranges/adaptors/filter.cc: Likewise.
   6484 	* testsuite/std/ranges/adaptors/join.cc: Likewise.
   6485 	* testsuite/std/ranges/adaptors/reverse.cc: Likewise.
   6486 	* testsuite/std/ranges/adaptors/split.cc: Likewise.
   6487 	* testsuite/std/ranges/adaptors/take.cc: Likewise.
   6488 	* testsuite/std/ranges/adaptors/take_while.cc: Likewise.
   6489 	* testsuite/std/ranges/adaptors/transform.cc: Likewise.
   6490 
   6491 2020-02-07  Jonathan Wakely  <jwakely (a] redhat.com>
   6492 
   6493 	* libsupc++/compare (__cmp_cat::type): Define typedef for underlying
   6494 	type of enumerations and comparison category types.
   6495 	(__cmp_cat::_Ord, __cmp_cat::_Ncmp): Add underlying type.
   6496 	(__cmp_cat::_Ncmp::unordered): Change value to 2.
   6497 	(partial_ordering::_M_value, weak_ordering::_M_value)
   6498 	(strong_ordering::_M_value): Change type to __cmp_cat::type.
   6499 	(partial_ordering::_M_is_ordered): Remove data member.
   6500 	(partial_ordering): Use second bit of _M_value for unordered. Adjust
   6501 	comparison operators.
   6502 	(weak_ordering::operator partial_ordering): Simplify to remove
   6503 	branches.
   6504 	(operator<=>(unspecified, weak_ordering)): Likewise.
   6505 	(strong_ordering::operator partial_ordering): Likewise.
   6506 	(strong_ordering::operator weak_ordering): Likewise.
   6507 	(operator<=>(unspecified, strong_ordering)): Likewise.
   6508 	* testsuite/18_support/comparisons/categories/partialord.cc: New test.
   6509 	* testsuite/18_support/comparisons/categories/strongord.cc: New test.
   6510 	* testsuite/18_support/comparisons/categories/weakord.cc: New test.
   6511 
   6512 	* include/std/ranges (iota_view::_Iterator): Fix typo in name of
   6513 	__cpp_lib_three_way_comparison macro and use deduced return type for
   6514 	operator<=>.
   6515 	* testsuite/std/ranges/iota/iterator.cc: New test.
   6516 
   6517 2020-02-07  Patrick Palka  <ppalka (a] redhat.com>
   6518 	    Jonathan Wakely  <jwakely (a] redhat.com>
   6519 
   6520 	Implement C++20 constrained algorithms
   6521 	* include/Makefile.am: Add new header.
   6522 	* include/Makefile.in: Regenerate.
   6523 	* include/std/algorithm: Include <bits/ranges_algo.h>.
   6524 	* include/bits/ranges_algo.h: New file.
   6525 	* testsuite/25_algorithms/adjacent_find/constrained.cc: New test.
   6526 	* testsuite/25_algorithms/all_of/constrained.cc: New test.
   6527 	* testsuite/25_algorithms/any_of/constrained.cc: New test.
   6528 	* testsuite/25_algorithms/binary_search/constrained.cc: New test.
   6529 	* testsuite/25_algorithms/copy/constrained.cc: New test.
   6530 	* testsuite/25_algorithms/copy_backward/constrained.cc: New test.
   6531 	* testsuite/25_algorithms/copy_if/constrained.cc: New test.
   6532 	* testsuite/25_algorithms/copy_n/constrained.cc: New test.
   6533 	* testsuite/25_algorithms/count/constrained.cc: New test.
   6534 	* testsuite/25_algorithms/count_if/constrained.cc: New test.
   6535 	* testsuite/25_algorithms/equal/constrained.cc: New test.
   6536 	* testsuite/25_algorithms/equal_range/constrained.cc: New test.
   6537 	* testsuite/25_algorithms/fill/constrained.cc: New test.
   6538 	* testsuite/25_algorithms/fill_n/constrained.cc: New test.
   6539 	* testsuite/25_algorithms/find/constrained.cc: New test.
   6540 	* testsuite/25_algorithms/find_end/constrained.cc: New test.
   6541 	* testsuite/25_algorithms/find_first_of/constrained.cc: New test.
   6542 	* testsuite/25_algorithms/find_if/constrained.cc: New test.
   6543 	* testsuite/25_algorithms/find_if_not/constrained.cc: New test.
   6544 	* testsuite/25_algorithms/for_each/constrained.cc: New test.
   6545 	* testsuite/25_algorithms/generate/constrained.cc: New test.
   6546 	* testsuite/25_algorithms/generate_n/constrained.cc: New test.
   6547 	* testsuite/25_algorithms/heap/constrained.cc: New test.
   6548 	* testsuite/25_algorithms/includes/constrained.cc: New test.
   6549 	* testsuite/25_algorithms/inplace_merge/constrained.cc: New test.
   6550 	* testsuite/25_algorithms/is_partitioned/constrained.cc: New test.
   6551 	* testsuite/25_algorithms/is_permutation/constrained.cc: New test.
   6552 	* testsuite/25_algorithms/is_sorted/constrained.cc: New test.
   6553 	* testsuite/25_algorithms/is_sorted_until/constrained.cc: New test.
   6554 	* testsuite/25_algorithms/lexicographical_compare/constrained.cc: New
   6555 	test.
   6556 	* testsuite/25_algorithms/lower_bound/constrained.cc: New test.
   6557 	* testsuite/25_algorithms/max/constrained.cc: New test.
   6558 	* testsuite/25_algorithms/max_element/constrained.cc: New test.
   6559 	* testsuite/25_algorithms/merge/constrained.cc: New test.
   6560 	* testsuite/25_algorithms/min/constrained.cc: New test.
   6561 	* testsuite/25_algorithms/min_element/constrained.cc: New test.
   6562 	* testsuite/25_algorithms/minmax/constrained.cc: New test.
   6563 	* testsuite/25_algorithms/minmax_element/constrained.cc: New test.
   6564 	* testsuite/25_algorithms/mismatch/constrained.cc: New test.
   6565 	* testsuite/25_algorithms/move/constrained.cc: New test.
   6566 	* testsuite/25_algorithms/move_backward/constrained.cc: New test.
   6567 	* testsuite/25_algorithms/next_permutation/constrained.cc: New test.
   6568 	* testsuite/25_algorithms/none_of/constrained.cc: New test.
   6569 	* testsuite/25_algorithms/nth_element/constrained.cc: New test.
   6570 	* testsuite/25_algorithms/partial_sort/constrained.cc: New test.
   6571 	* testsuite/25_algorithms/partial_sort_copy/constrained.cc: New test.
   6572 	* testsuite/25_algorithms/partition/constrained.cc: New test.
   6573 	* testsuite/25_algorithms/partition_copy/constrained.cc: New test.
   6574 	* testsuite/25_algorithms/partition_point/constrained.cc: New test.
   6575 	* testsuite/25_algorithms/prev_permutation/constrained.cc: New test.
   6576 	* testsuite/25_algorithms/remove/constrained.cc: New test.
   6577 	* testsuite/25_algorithms/remove_copy/constrained.cc: New test.
   6578 	* testsuite/25_algorithms/remove_copy_if/constrained.cc: New test.
   6579 	* testsuite/25_algorithms/remove_if/constrained.cc: New test.
   6580 	* testsuite/25_algorithms/replace/constrained.cc: New test.
   6581 	* testsuite/25_algorithms/replace_copy/constrained.cc: New test.
   6582 	* testsuite/25_algorithms/replace_copy_if/constrained.cc: New test.
   6583 	* testsuite/25_algorithms/replace_if/constrained.cc: New test.
   6584 	* testsuite/25_algorithms/reverse/constrained.cc: New test.
   6585 	* testsuite/25_algorithms/reverse_copy/constrained.cc: New test.
   6586 	* testsuite/25_algorithms/rotate/constrained.cc: New test.
   6587 	* testsuite/25_algorithms/rotate_copy/constrained.cc: New test.
   6588 	* testsuite/25_algorithms/search/constrained.cc: New test.
   6589 	* testsuite/25_algorithms/search_n/constrained.cc: New test.
   6590 	* testsuite/25_algorithms/set_difference/constrained.cc: New test.
   6591 	* testsuite/25_algorithms/set_intersection/constrained.cc: New test.
   6592 	* testsuite/25_algorithms/set_symmetric_difference/constrained.cc: New
   6593 	test.
   6594 	* testsuite/25_algorithms/set_union/constrained.cc: New test.
   6595 	* testsuite/25_algorithms/shuffle/constrained.cc: New test.
   6596 	* testsuite/25_algorithms/sort/constrained.cc: New test.
   6597 	* testsuite/25_algorithms/stable_partition/constrained.cc: New test.
   6598 	* testsuite/25_algorithms/stable_sort/constrained.cc: New test.
   6599 	* testsuite/25_algorithms/swap_ranges/constrained.cc: New test.
   6600 	* testsuite/25_algorithms/transform/constrained.cc: New test.
   6601 	* testsuite/25_algorithms/unique/constrained.cc: New test.
   6602 	* testsuite/25_algorithms/unique_copy/constrained.cc: New test.
   6603 	* testsuite/25_algorithms/upper_bound/constrained.cc: New test.
   6604 
   6605 2020-02-06  Jonathan Wakely  <jwakely (a] redhat.com>
   6606 
   6607 	* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Fix PR
   6608 	number in comment. Fix indentation.
   6609 
   6610 	* include/bits/stl_algobase.h (__iter_swap, __iter_swap<true>): Remove
   6611 	redundant _GLIBCXX20_CONSTEXPR.
   6612 
   6613 	* include/std/ranges (viewable_range): Replace decay_t with
   6614 	remove_cvref_t (LWG 3375).
   6615 
   6616 2020-02-05  Jonathan Wakely  <jwakely (a] redhat.com>
   6617 
   6618 	* include/bits/iterator_concepts.h (iter_reference_t)
   6619 	(iter_rvalue_reference_t, iter_common_reference_t, indirect_result_t):
   6620 	Remove workarounds for PR c++/67704.
   6621 	* testsuite/24_iterators/aliases.cc: New test.
   6622 
   6623 2020-02-05  Patrick Palka  <ppalka (a] redhat.com>
   6624 
   6625 	* include/bits/stl_iterator.h (move_iterator::move_iterator): Move __i
   6626 	when initializing _M_current.
   6627 	(move_iterator::base): Split into two overloads differing in
   6628 	ref-qualifiers as in P1207R4 for C++20.
   6629 
   6630 2020-02-04  Jonathan Wakely  <jwakely (a] redhat.com>
   6631 
   6632 	* include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Un-define after
   6633 	use.
   6634 
   6635 	PR libstdc++/93562
   6636 	* include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define.
   6637 	(unique_ptr::swap, unique_ptr<T[], D>::swap): Call it.
   6638 	* testsuite/20_util/unique_ptr/modifiers/93562.cc: New test.
   6639 
   6640 2020-02-01  Andrew Burgess  <andrew.burgess (a] embecosm.com>
   6641 
   6642 	* configure: Regenerate.
   6643 
   6644 2020-01-31  Patrick Palka  <ppalka (a] redhat.com>
   6645 
   6646 	* testsuite/24_iterators/range_operations/distance.cc: Do not assume
   6647 	test_range::end() returns the same type as test_range::begin().
   6648 	* testsuite/24_iterators/range_operations/next.cc: Likewise.
   6649 	* testsuite/24_iterators/range_operations/prev.cc: Likewise.
   6650 	* testsuite/util/testsuite_iterators.h (__gnu_test::test_range::end):
   6651 	Always return a sentinel<I>.
   6652 
   6653 2020-01-29  Jonathan Wakely  <jwakely (a] redhat.com>
   6654 
   6655 	PR libstdc++/92895
   6656 	* include/std/stop_token (stop_token::stop_possible()): Call new
   6657 	_M_stop_possible() function.
   6658 	(stop_token::stop_requested()): Do not use stop_possible().
   6659 	(stop_token::binary_semaphore): New class, as temporary stand-in for
   6660 	std::binary_semaphore.
   6661 	(stop_token::_Stop_cb::_M_callback): Add noexcept to type.
   6662 	(stop_token::_Stop_cb::_M_destroyed, stop_token::_Stop_cb::_M_done):
   6663 	New data members for symchronization with stop_callback destruction.
   6664 	(stop_token::_Stop_cb::_Stop_cb): Make non-template.
   6665 	(stop_token::_Stop_cb::_M_linked, stop_token::_Stop_cb::_S_execute):
   6666 	Remove.
   6667 	(stop_token::_Stop_cb::_M_run): New member function.
   6668 	(stop_token::_Stop_state::_M_stopped, stop_token::_Stop_state::_M_mtx):
   6669 	Remove.
   6670 	(stop_token::_Stop_state::_M_owners): New data member to track
   6671 	reference count for ownership.
   6672 	(stop_token::_Stop_state::_M_value): New data member combining a
   6673 	spinlock, the stop requested flag, and the reference count for
   6674 	associated stop_source objects.
   6675 	(stop_token::_Stop_state::_M_requester): New data member for
   6676 	synchronization with stop_callback destruction.
   6677 	(stop_token::_Stop_state::_M_stop_possible()): New member function.
   6678 	(stop_token::_Stop_state::_M_stop_requested()): Inspect relevant bit
   6679 	of _M_value.
   6680 	(stop_token::_Stop_state::_M_add_owner)
   6681 	(stop_token::_Stop_state::_M_release_ownership)
   6682 	(stop_token::_Stop_state::_M_add_ssrc)
   6683 	(stop_token::_Stop_state::_M_sub_ssrc): New member functions for
   6684 	updating reference counts.
   6685 	(stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
   6686 	(stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
   6687 	(stop_token::_Stop_state::_M_try_lock)
   6688 	(stop_token::_Stop_state::_M_try_lock_and_stop)
   6689 	(stop_token::_Stop_state::_M_do_try_lock): New member functions for
   6690 	managing spinlock.
   6691 	(stop_token::_Stop_state::_M_request_stop): Use atomic operations to
   6692 	read and update state. Release lock while running callbacks. Use new
   6693 	data members to synchronize with callback destruction.
   6694 	(stop_token::_Stop_state::_M_remove_callback): Likewise.
   6695 	(stop_token::_Stop_state::_M_register_callback): Use atomic operations
   6696 	to read and update state.
   6697 	(stop_token::_Stop_state_ref): Handle type to manage _Stop_state,
   6698 	replacing shared_ptr.
   6699 	(stop_source::stop_source(const stop_source&)): Update reference count.
   6700 	(stop_source::operator=(const stop_source&)): Likewise.
   6701 	(stop_source::~stop_source()): Likewise.
   6702 	(stop_source::stop_source(stop_source&&)): Define as defaulted.
   6703 	(stop_source::operator=(stop_source&&)): Establish postcondition on
   6704 	parameter.
   6705 	(stop_callback): Enforce preconditions on template parameter. Replace
   6706 	base class with data member of new _Cb_impl type.
   6707 	(stop_callback::stop_callback(const stop_token&, Cb&&))
   6708 	(stop_callback::stop_callback(stop_token&&, Cb&&)): Fix TOCTTOU race.
   6709 	(stop_callback::_Cb_impl): New type wrapping _Callback member and
   6710 	defining the _S_execute member function.
   6711 	* testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: New
   6712 	test.
   6713 	* testsuite/30_threads/stop_token/stop_callback/deadlock.cc: New test.
   6714 	* testsuite/30_threads/stop_token/stop_callback/destroy.cc: New test.
   6715 	* testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
   6716 	New test.
   6717 	* testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: New
   6718 	test.
   6719 	* testsuite/30_threads/stop_token/stop_callback/invoke.cc: New test.
   6720 	* testsuite/30_threads/stop_token/stop_source/assign.cc: New test.
   6721 	* testsuite/30_threads/stop_token/stop_token/stop_possible.cc: New
   6722 	test.
   6723 
   6724 	* libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use
   6725 	three_way_comparable_with.
   6726 	(__detail::__3way_cmp_with): Remove workaround for fixed bug.
   6727 	(compare_three_way::operator()): Remove redundant constraint from
   6728 	requires-clause.
   6729 	(__detail::_Synth3way::operator()): Use three_way_comparable_with
   6730 	instead of workaround.
   6731 	* testsuite/18_support/comparisons/object/93479.cc: Prune extra
   6732 	output due to simplified constraints on compare_three_way::operator().
   6733 
   6734 	PR libstdc++/93479
   6735 	* libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid.
   6736 	* testsuite/18_support/comparisons/object/93479.cc: New test.
   6737 
   6738 	* testsuite/std/ranges/access/end.cc: Do not assume test_range::end()
   6739 	returns the same type as test_range::begin(). Add comments.
   6740 	* testsuite/std/ranges/access/rbegin.cc: Likewise.
   6741 	* testsuite/std/ranges/access/rend.cc: Likewise.
   6742 	* testsuite/std/ranges/range.cc: Do not assume the sentinel for
   6743 	test_range is the same as its iterator type.
   6744 	* testsuite/util/testsuite_iterators.h (test_range::sentinel): Add
   6745 	operator- overloads to satisfy sized_sentinel_for when the iterator
   6746 	satisfies random_access_iterator.
   6747 
   6748 2020-01-28  Jonathan Wakely  <jwakely (a] redhat.com>
   6749 
   6750 	PR libstdc++/93470
   6751 	* include/bits/refwrap.h (reference_wrapper::operator()): Restrict
   6752 	static assertion to object types.
   6753 
   6754 	PR libstdc++/93325
   6755 	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
   6756 	clock_gettime instead of explicit glibc version check.
   6757 	* configure: Regenerate.
   6758 
   6759 2020-01-28  Martin Liska  <mliska (a] suse.cz>
   6760 
   6761 	PR libstdc++/93478
   6762 	* include/std/atomic: Fix typo.
   6763 	* include/std/optional: Likewise.
   6764 
   6765 2020-01-27  Andrew Burgess  <andrew.burgess (a] embecosm.com>
   6766 
   6767 	* configure: Regenerate.
   6768 
   6769 2020-01-27  Jonathan Wakely  <jwakely (a] redhat.com>
   6770 
   6771 	PR libstdc++/93426
   6772 	* include/std/span (span): Fix deduction guide.
   6773 	* testsuite/23_containers/span/deduction.cc: New test.
   6774 
   6775 2020-01-24  Jonathan Wakely  <jwakely (a] redhat.com>
   6776 
   6777 	* libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
   6778 	(__cmp_cat::_Ord::equivalent): Add enumerator.
   6779 	(__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
   6780 	and greater.
   6781 	(partial_ordering, weak_ordering, strong_ordering): Remove
   6782 	constructors taking __cmp_cat::_Eq parameters. Use renamed
   6783 	enumerators.
   6784 
   6785 2020-01-24  Maciej W. Rozycki  <macro (a] wdc.com>
   6786 
   6787 	* acinclude.m4: Handle `--with-toolexeclibdir='.
   6788 	* Makefile.in: Regenerate.
   6789 	* aclocal.m4: Regenerate.
   6790 	* configure: Regenerate.
   6791 	* doc/Makefile.in: Regenerate.
   6792 	* include/Makefile.in: Regenerate.
   6793 	* libsupc++/Makefile.in: Regenerate.
   6794 	* po/Makefile.in: Regenerate.
   6795 	* python/Makefile.in: Regenerate.
   6796 	* src/Makefile.in: Regenerate.
   6797 	* src/c++11/Makefile.in: Regenerate.
   6798 	* src/c++17/Makefile.in: Regenerate.
   6799 	* src/c++98/Makefile.in: Regenerate.
   6800 	* src/filesystem/Makefile.in: Regenerate.
   6801 	* testsuite/Makefile.in: Regenerate.
   6802 
   6803 2020-01-23  Alexandre Oliva <oliva (a] adacore.com>
   6804 
   6805 	* crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
   6806 	* configure: Rebuild.
   6807 
   6808 	* testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
   6809 
   6810 2020-01-23  Jonathan Wakely  <jwakely (a] redhat.com>
   6811 
   6812 	PR libstdc++/91947
   6813 	* include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
   6814 	rule.
   6815 	* include/Makefile.in: Regenerate.
   6816 
   6817 2020-01-20  Jonathan Wakely  <jwakely (a] redhat.com>
   6818 
   6819 	* doc/xml/faq.xml: Fix grammar.
   6820 	* doc/xml/manual/appendix_contributing.xml: Improve instructions.
   6821 	* doc/xml/manual/spine.xml: Update copyright years.
   6822 	* doc/html/*: Regenerate.
   6823 
   6824 2020-01-19  Eric S. Raymond <esr (a] thyrsus.com>
   6825 
   6826 	* doc/xml/faq.xml: Update for SVN -> Git transition.
   6827 	* doc/xml/manual/appendix_contributing.xml: Likewise.
   6828 	* doc/xml/manual/status_cxx1998.xml: Likewise.
   6829 	* doc/xml/manual/status_cxx2011.xml: Likewise.
   6830 	* doc/xml/manual/status_cxx2014.xml: Likewise.
   6831 	* doc/xml/manual/status_cxx2017.xml: Likewise.
   6832 	* doc/xml/manual/status_cxx2020.xml: Likewise.
   6833 	* doc/xml/manual/status_cxxtr1.xml: Likewise.
   6834 	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
   6835 
   6836 2020-01-18  Iain Sandoe  <iain (a] sandoe.co.uk>
   6837 
   6838 	* include/Makefile.am: Add coroutine to the std set.
   6839 	* include/Makefile.in: Regenerated.
   6840 	* include/std/coroutine: New file.
   6841 
   6842 2020-01-17  Jonathan Wakely  <jwakely (a] redhat.com>
   6843 
   6844 	PR libstdc++/92376
   6845 	* include/bits/c++config: Only do PSTL config when the header is
   6846 	present, to fix freestanding.
   6847 	* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
   6848 	functions if they were detected by configure.
   6849 
   6850 2020-01-16  Kai-Uwe Eckhardt  <kuehro (a] gmx.de>
   6851 	    Matthew Bauer  <mjbauer95 (a] gmail.com>
   6852 	    Jonathan Wakely  <jwakely (a] redhat.com>
   6853 
   6854 	PR bootstrap/64271 (partial)
   6855 	* config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
   6856 	to unsigned short.
   6857 	(ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
   6858 	(ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
   6859 	definitions with NetBSD upstream.
   6860 	(ctype_base::blank): Use _CTYPE_BL.
   6861 	* config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
   6862 	Declaration.
   6863 	(ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
   6864 	(ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
   6865 	parameters to unsigned char.
   6866 	* config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
   6867 
   6868 2020-01-16  Franois Dumont  <fdumont (a] gcc.gnu.org>
   6869 
   6870 	PR libstdc++/91263
   6871 	* include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
   6872 	* include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
   6873 	(_Equality_base): Remove.
   6874 	(_Equality<>::_M_equal): Review implementation. Use
   6875 	std::is_permutation.
   6876 	* testsuite/23_containers/unordered_multiset/operators/1.cc
   6877 	(Hash, Equal, test02, test03): New.
   6878 	* testsuite/23_containers/unordered_set/operators/1.cc
   6879 	(Hash, Equal, test02, test03): New.
   6880 
   6881 2020-01-15  Jonathan Wakely  <jwakely (a] redhat.com>
   6882 
   6883 	PR libstdc++/93267
   6884 	* include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
   6885 	Move here from <bits/range_access.h> and define using __int128 when
   6886 	available.
   6887 	(__is_integer_like, __is_signed_integer_like): Move here from
   6888 	<bits/range_access.h>.
   6889 	(weakly_incrementable): Use __is_signed_integer_like.
   6890 	* include/bits/range_access.h (__max_diff_type, __max_size_type)
   6891 	(__is_integer_like, __is_signed_integer_like): Move to
   6892 	<bits/iterator_concepts.h>.
   6893 	(__make_unsigned_like_t): Move here from <ranges>.
   6894 	* include/std/ranges (__make_unsigned_like_t): Move to
   6895 	<bits/range_access.h>.
   6896 	(iota_view): Replace using-directive with using-declarations.
   6897 	* testsuite/std/ranges/iota/93267.cc: New test.
   6898 	* testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
   6899 
   6900 2020-01-13  Jonathan Wakely  <jwakely (a] redhat.com>
   6901 
   6902 	PR libstdc++/93244
   6903 	* include/bits/fs_path.h (path::generic_string<C,A>)
   6904 	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
   6905 	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
   6906 	root-dir is converted to forward slash in generic pathname.
   6907 	* testsuite/27_io/filesystem/path/generic/utf.cc: New test.
   6908 	* testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
   6909 
   6910 	PR libstdc++/58605
   6911 	* include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
   6912 	Define.
   6913 	(__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
   6914 	(__atomic_float): Add default member initializer for C++20.
   6915 	* include/std/atomic (atomic): Likewise.
   6916 	(atomic::atomic()): Remove noexcept-specifier on default constructor.
   6917 	* include/std/version (__cpp_lib_atomic_value_initialization): Define.
   6918 	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
   6919 	number.
   6920 	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
   6921 	* testsuite/29_atomics/atomic/cons/value_init.cc: New test.
   6922 	* testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
   6923 	* testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
   6924 	expected result for is_trivially_default_constructible.
   6925 	* testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
   6926 	* testsuite/29_atomics/atomic_float/value_init.cc: New test.
   6927 	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
   6928 	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
   6929 	* testsuite/29_atomics/atomic_integral/cons/value_init.cc
   6930 	* testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
   6931 	expected results for is_trivially_default_constructible.
   6932 	* testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
   6933 	new test generator.
   6934 
   6935 2020-01-10  Jonathan Wakely  <jwakely (a] redhat.com>
   6936 
   6937 	* testsuite/util/testsuite_iterators.h: Improve comment.
   6938 
   6939 	* testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
   6940 	initialization syntax.
   6941 
   6942 	PR libstdc++/92285
   6943 	* include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
   6944 	of base class independent of __cplusplus value.
   6945 	[__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
   6946 	type defined in the base class
   6947 	* testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
   6948 	* testsuite/24_iterators/istreambuf_iterator/requirements/
   6949 	base_classes.cc: Adjust expected base class for C++98.
   6950 
   6951 2020-01-09  Olivier Hainque  <hainque (a] adacore.com>
   6952 
   6953 	* doc/xml/manual/appendix_contributing.xml: Document _C2
   6954 	as a reserved identifier, by VxWorks.
   6955 	* include/bits/stl_map.h: Rename _C2 template typenames	as _Cmp2.
   6956 	* include/bits/stl_multimap.h: Likewise.
   6957 
   6958 2020-01-09  Jonathan Wakely  <jwakely (a] redhat.com>
   6959 
   6960 	* include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
   6961 	(_ExtPtr_allocator::operator!=): Add missing const qualifiers.
   6962 	* include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
   6963 	partial specialization to disambiguate the two constrained
   6964 	specializations.
   6965 
   6966 	* include/experimental/type_traits (experimental::is_pod_v): Disable
   6967 	-Wdeprecated-declarations warnings around reference to std::is_pod.
   6968 	* include/std/type_traits (is_pod_v): Likewise.
   6969 	* testsuite/18_support/max_align_t/requirements/2.cc: Also check
   6970 	is_standard_layout and is_trivial. Do not check is_pod for C++20.
   6971 	* testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
   6972 	Add -Wno-deprecated for C++20.
   6973 	* testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
   6974 	* testsuite/20_util/is_pod/value.cc: Likewise.
   6975 	* testsuite/experimental/type_traits/value.cc: Likewise.
   6976 
   6977 2020-01-09  JeanHeyd "ThePhD" Meneide  <phdofthehouse (a] gmail.com>
   6978 
   6979 	* include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
   6980 	* include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
   6981 	* testuite/20_util/is_pod/deprecated-2a.cc: New test.
   6982 
   6983 2020-01-09  Jonathan Wakely  <jwakely (a] redhat.com>
   6984 
   6985 	PR libstdc++/93205
   6986 	* include/bits/random.h (operator>>): Check stream operation succeeds.
   6987 	* include/bits/random.tcc (operator<<): Remove redundant __ostream_type
   6988 	typedefs.
   6989 	(operator>>): Remove redundant __istream_type typedefs. Check stream
   6990 	operations succeed.
   6991 	(__extract_params): New function to fill a vector from a stream.
   6992 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
   6993 
   6994 	PR libstdc++/93208
   6995 	* config/abi/pre/gnu.ver: Add new exports.
   6996 	* include/std/memory_resource (memory_resource::~memory_resource()):
   6997 	Do not define inline.
   6998 	(monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
   6999 	* src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
   7000 	Define.
   7001 	(monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
   7002 	* testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
   7003 
   7004 2020-01-09  Franois Dumont  <fdumont (a] gcc.gnu.org>
   7005 
   7006 	PR libstdc++/92124
   7007 	* include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
   7008 	template alias.
   7009 	(_Hashtable<>::__fwd_value_for): New.
   7010 	(_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
   7011 	parameter.
   7012 	(_Hashtable<>::_M_assign<>): Add _Ht template parameter.
   7013 	(_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
   7014 	(_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
   7015 	with std::move.
   7016 	(_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
   7017 	(_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
   7018 	Adapt.
   7019 	(_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
   7020 	Adapt.
   7021 	* testsuite/23_containers/unordered_set/92124.cc: New.
   7022 
   7023 2020-01-08  Jonathan Wakely  <jwakely (a] redhat.com>
   7024 
   7025 	PR libstdc++/93201
   7026 	* src/c++17/fs_ops.cc (do_remove_all): New function implementing more
   7027 	detailed error reporting for remove_all. Check result of recursive
   7028 	call before incrementing iterator.
   7029 	(remove_all(const path&), remove_all(const path&, error_code&)): Use
   7030 	do_remove_all.
   7031 	* src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
   7032 	result of recursive call before incrementing iterator.
   7033 	* testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
   7034 	are reported correctly.
   7035 	* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
   7036 
   7037 2020-01-07  Thomas Rodgers  <trodgers (a] redhat.com>
   7038 
   7039 	* include/std/condition_variable
   7040 	(condition_variable_any::wait_on): Rename to match current draft
   7041 	standard.
   7042 	(condition_variable_any::wait_on_until): Likewise.
   7043 	(condition_variable_any::wait_on_for): Likewise.
   7044 	* testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
   7045 	Adjust tests to account for renamed methods.
   7046 
   7047 2020-01-07  Franois Dumont  <fdumont (a] gcc.gnu.org>
   7048 
   7049 	PR libstdc++/92124
   7050 	* include/bits/stl_tree.h
   7051 	(_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
   7052 	std::move_if_noexcept by std::move.
   7053 	* testsuite/23_containers/map/92124.cc: New.
   7054 	* testsuite/23_containers/set/92124.cc: New.
   7055 
   7056 2020-01-06  Jonathan Wakely  <jwakely (a] redhat.com>
   7057 
   7058 	* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
   7059 	(stop_source): Likewise (LWG 3362).
   7060 	* testsuite/30_threads/stop_token/stop_source.cc: Test equality
   7061 	comparisons.
   7062 
   7063 	* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
   7064 	(lexicographical_compare_three_way): Do not depend on
   7065 	__cpp_lib_concepts.
   7066 	* include/std/version (__cpp_lib_three_way_comparison): Only define
   7067 	when __cpp_lib_concepts is defined.
   7068 	* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
   7069 
   7070 2020-01-03  Jonathan Wakely  <jwakely (a] redhat.com>
   7071 
   7072 	* include/bits/stl_algobase.h (lexicographical_compare_three_way):
   7073 	Only define four-argument overload when __cpp_lib_concepts is defined.
   7074 
   7075 2020-01-01  John David Anglin  <danglin (a] gcc.gnu.org>
   7076 
   7077 	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
   7078 
   7079 2020-01-01  Jakub Jelinek  <jakub (a] redhat.com>
   7080 
   7081 	Update copyright years.
   7082 
   7084 Copyright (C) 2020 Free Software Foundation, Inc.
   7085 
   7086 Copying and distribution of this file, with or without modification,
   7087 are permitted in any medium without royalty provided the copyright
   7088 notice and this notice are preserved.
   7089