Home | History | Annotate | Line # | Download | only in libstdc++-v3
ChangeLog revision 1.1.1.20
      1 2021-04-08  Release Manager
      2 
      3 	* GCC 10.3.0 released.
      4 
      5 2021-04-01  Jonathan Wakely  <jwakely (a] redhat.com>
      6 
      7 	Backported from master:
      8 	2021-02-14  Jonathan Wakely  <jwakely (a] redhat.com>
      9 
     10 	PR libstdc++/99096
     11 	* testsuite/util/testsuite_fs.h: Always include <unistd.h>.
     12 
     13 2021-04-01  Jonathan Wakely  <jwakely (a] redhat.com>
     14 
     15 	Backported from master:
     16 	2020-12-17  Jonathan Wakely  <jwakely (a] redhat.com>
     17 
     18 	* config.h.in: Regenerate.
     19 	* config/os/djgpp/error_constants.h: Test POSIX errno macros
     20 	directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
     21 	* config/os/mingw32-w64/error_constants.h: Likewise.
     22 	* config/os/mingw32/error_constants.h: Likewise.
     23 	* configure: Regenerate.
     24 
     25 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
     26 
     27 	Backported from master:
     28 	2020-11-30  Jonathan Wakely  <jwakely (a] redhat.com>
     29 
     30 	* testsuite/20_util/specialized_algorithms/pstl/*: Add
     31 	dg-timeout-factor.
     32 	* testsuite/25_algorithms/pstl/*: Likewise.
     33 	* testsuite/26_numerics/pstl/*: Likewise.
     34 	* testsuite/28_regex/*: Likewise.
     35 
     36 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
     37 
     38 	Backported from master:
     39 	2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
     40 
     41 	* testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc:
     42 	Add dg-timeout-factor directive.
     43 	* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
     44 	Likewise.
     45 	* testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc:
     46 	Likewise.
     47 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc:
     48 	Likewise.
     49 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc:
     50 	Likewise.
     51 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc:
     52 	Likewise.
     53 	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc:
     54 	Likewise.
     55 	* testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
     56 	Likewise.
     57 	* testsuite/28_regex/algorithms/regex_search/61720.cc: Likewise.
     58 	* testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc:
     59 	Likewise.
     60 	* testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc:
     61 	Likewise.
     62 	* testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
     63 
     64 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
     65 
     66 	Backported from master:
     67 	2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
     68 
     69 	* include/std/stop_token: Check _GLIBCXX_HAS_GTHREADS using
     70 	#ifdef instead of #if.
     71 	(stop_token::_S_yield()): Check _GLIBCXX_HAS_GTHREADS before
     72 	using __gthread_yield.
     73 
     74 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
     75 
     76 	Backported from master:
     77 	2020-06-19  Jonathan Wakely  <jwakely (a] redhat.com>
     78 
     79 	PR libstdc++/95765
     80 	* include/bits/stl_algobase.h (__size_to_integer(float))
     81 	(__size_to_integer(double), __size_to_integer(long double))
     82 	(__size_to_integer(__float128)): Cast return type explicitly.
     83 
     84 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
     85 
     86 	Backported from master:
     87 	2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
     88 
     89 	* testsuite/17_intro/names.cc: Do not test 'v' on AIX.
     90 
     91 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
     92 
     93 	Backported from master:
     94 	2020-07-30  Jonathan Wakely  <jwakely (a] redhat.com>
     95 
     96 	* include/bits/basic_string.h (size_type, difference_type):
     97 	Use allocator_traits to obtain the allocator's size_type and
     98 	difference_type.
     99 
    100 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    101 
    102 	Backported from master:
    103 	2020-09-01  Jonathan Wakely  <jwakely (a] redhat.com>
    104 
    105 	* include/std/chrono (duration::_S_gcd(intmax_t, intmax_t)):
    106 	New helper function for finding GCD of two positive intmax_t
    107 	values.
    108 	(duration::__divide): New helper alias for dividing one period
    109 	by another.
    110 	(duration::__is_harmonic): Use __divide not ratio_divide.
    111 	(duration(const duration<R2, P2>&)): Require the duration rep
    112 	types to be convertible.
    113 	* testsuite/20_util/duration/cons/dr2094.cc: New test.
    114 	* testsuite/20_util/duration/requirements/reduced_period.cc:
    115 	Fix definition of unused member functions in test type.
    116 	* testsuite/20_util/duration/requirements/typedefs_neg2.cc:
    117 	Adjust expected errors.
    118 
    119 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    120 
    121 	Backported from master:
    122 	2020-08-27  Jonathan Wakely  <jwakely (a] redhat.com>
    123 
    124 	* include/std/chrono (__duration_common_type): Ensure the
    125 	reduced ratio is used. Remove unused partial specialization
    126 	using __failure_type.
    127 	(common_type): Pass reduced ratios to __duration_common_type.
    128 	Add partial specializations for simple cases involving a single
    129 	duration or time_point type.
    130 	(duration::period): Use reduced ratio.
    131 	(duration::operator+(), duration::operator-()): Return duration
    132 	type using the reduced ratio.
    133 	* testsuite/20_util/duration/requirements/typedefs_neg2.cc:
    134 	Adjust expected errors.
    135 	* testsuite/20_util/duration/requirements/reduced_period.cc: New test.
    136 
    137 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    138 
    139 	Backported from master:
    140 	2020-09-03  Jonathan Wakely  <jwakely (a] redhat.com>
    141 
    142 	PR libstdc++/96592
    143 	* include/std/tuple (_TupleConstraints<true, T...>): Use
    144 	alternative is_constructible instead of std::is_constructible.
    145 	* testsuite/20_util/tuple/cons/96592.cc: New test.
    146 
    147 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    148 
    149 	Backported from master:
    150 	2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
    151 
    152 	* testsuite/20_util/is_aggregate/value.cc: Adjust for changes to
    153 	definition of aggregates in C++20.
    154 	* testsuite/20_util/optional/requirements.cc: Adjust for
    155 	defaulted comparisons in C++20.
    156 
    157 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    158 
    159 	Backported from master:
    160 	2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
    161 
    162 	* testsuite/20_util/tuple/78939.cc: Suppress warnings about
    163 	deprecation of volatile-qualified structured bindings in C++20.
    164 	* testsuite/20_util/variable_templates_for_traits.cc: Likewise
    165 	for deprecation of is_pod in C++20
    166 
    167 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    168 
    169 	Backported from master:
    170 	2020-06-09  Jonathan Wakely  <jwakely (a] redhat.com>
    171 
    172 	* include/std/optional (bad_optional_access): Define default
    173 	constructor and destructor as defaulted.
    174 	* testsuite/20_util/optional/bad_access.cc: New test.
    175 
    176 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    177 
    178 	Backported from master:
    179 	2020-06-04  Jonathan Wakely  <jwakely (a] redhat.com>
    180 
    181 	* include/bits/ranges_algobase.h (__copy_n_fn): Only call
    182 	ranges::copy for positive values.
    183 	* include/bits/stl_algo.h (copy_n): Convert Size argument to an
    184 	integral type and only call __copy_n for positive values.
    185 	* testsuite/util/testsuite_iterators.h
    186 	(random_access_iterator_wrapper::operator+=): Fix range check for
    187 	negative values.
    188 	(output_container, input_container, forward_container)
    189 	(bidirectional_container, random_access_container): New alias
    190 	templates.
    191 	* testsuite/25_algorithms/copy_n/5.cc: New test.
    192 
    193 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    194 
    195 	Backported from master:
    196 	2020-06-16  Jonathan Wakely  <jwakely (a] redhat.com>
    197 
    198 	* include/std/atomic (atomic): Add static assertions.
    199 	* testsuite/29_atomics/atomic/requirements/types_neg.cc: New test.
    200 
    201 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    202 
    203 	Backported from master:
    204 	2020-06-09  Jonathan Wakely  <jwakely (a] redhat.com>
    205 
    206 	* include/bits/stl_iterator.h (move_iterator::operator=): Define.
    207 	* testsuite/24_iterators/move_iterator/dr3265.cc: New test.
    208 
    209 2021-03-29  Paul Keir  <paul.keir (a] uws.ac.uk>
    210 
    211 	Backported from master:
    212 	2020-06-15  Paul Keir  <paul.keir (a] uws.ac.uk>
    213 
    214 	* include/bits/char_traits.h (char_traits::move): constexpr move with
    215 	overlap was using copy_backward incorrectly.
    216 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
    217 	New test.
    218 
    219 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    220 
    221 	Backported from master:
    222 	2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
    223 
    224 	* testsuite/20_util/time_point_cast/rounding.cc: Remove
    225 	duplicate dg-do directive and add c++17 effective target.
    226 
    227 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    228 
    229 	Backported from master:
    230 	2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
    231 
    232 	* testsuite/30_threads/thread/cons/84535.cc: Use a custom
    233 	namespace.
    234 	* testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
    235 
    236 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    237 
    238 	Backported from master:
    239 	2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    240 
    241 	* testsuite/lib/libstdc++.exp (libstdc++_init): Only set
    242 	tool_timeout if it hasn't been set by the user already.
    243 
    244 2021-03-29  Moritz Sichert  <sichert (a] in.tum.de>
    245 
    246 	Backported from master:
    247 	2021-03-23  Moritz Sichert  <sichert (a] in.tum.de>
    248 
    249 	* include/std/ranges (reverse_view::begin, reverse_view::end):
    250 	Qualify make_reverse_iterator calls to avoid ADL.
    251 	* testsuite/std/ranges/adaptors/reverse.cc: Test that
    252 	views::reverse works when make_reverse_iterator is defined
    253 	in an associated namespace.
    254 
    255 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    256 
    257 	Backported from master:
    258 	2021-03-22  Jonathan Wakely  <jwakely (a] redhat.com>
    259 
    260 	* include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
    261 	Add missing 'noexcept' as per LWG 2280.
    262 	(rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
    263 	(rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
    264 	* testsuite/24_iterators/range_access/range_access.cc: Check for
    265 	expected noexcept specifiers. Check result types of generic
    266 	std::begin and std::end overloads.
    267 	* testsuite/24_iterators/range_access/range_access_cpp14.cc:
    268 	Check for expected noexcept specifiers.
    269 	* testsuite/24_iterators/range_access/range_access_cpp17.cc:
    270 	Likewise.
    271 
    272 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    273 
    274 	Backported from master:
    275 	2021-03-11  Jonathan Wakely  <jwakely (a] redhat.com>
    276 
    277 	PR libstdc++/99537
    278 	* include/std/stop_token (_Stop_state_t::_M_release_ownership):
    279 	Use acq_rel memory ordering.
    280 
    281 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    282 
    283 	Backported from master:
    284 	2021-03-11  Jonathan Wakely  <jwakely (a] redhat.com>
    285 
    286 	PR libstdc++/99533
    287 	* src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
    288 	helper function to check for permission denied errors.
    289 	* src/filesystem/dir.cc (recursive_directory_iterator):
    290 	Likewise.
    291 	* src/filesystem/dir-common.h (is_permission_denied_error): New
    292 	helper function.
    293 
    294 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    295 
    296 	Backported from master:
    297 	2021-03-11  Jonathan Wakely  <jwakely (a] redhat.com>
    298 
    299 	PR libstdc++/99536
    300 	* include/bits/random.h (normal_distribution): Use
    301 	default-initializer for _M_saved and _M_saved_available.
    302 
    303 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    304 
    305 	Backported from master:
    306 	2021-03-10  Jonathan Wakely  <jwakely (a] redhat.com>
    307 
    308 	* include/bits/range_cmp.h (__eq_builtin_ptr_cmp): Remove.
    309 	(ranges::equal_to, ranges::not_equal_to): Do not constrain
    310 	with __eq_builtin_ptr_cmp.
    311 	(ranges::less, ranges::greater, ranges::less_equal)
    312 	(ranges::greater_equal): Do not constrain with
    313 	__less_builtin_ptr_cmp.
    314 	* libsupc++/compare (compare_three_way): Do not constrain with
    315 	__3way_builtin_ptr_cmp.
    316 	* testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
    317 	* testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
    318 	* testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
    319 
    320 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    321 
    322 	Backported from master:
    323 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
    324 
    325 	* doc/xml/manual/status_cxx2014.xml: Document implementation
    326 	specific properties of std::experimental::filesystem::rename.
    327 	* doc/xml/manual/status_cxx2017.xml: Document implementation
    328 	specific properties of std::filesystem::rename.
    329 	* doc/html/*: Regenerate.
    330 	* src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
    331 	for directories on Windows.
    332 	* src/filesystem/ops-common.h (__gnu_posix::rename): Use
    333 	MoveFileExW on Windows.
    334 	* testsuite/27_io/filesystem/operations/rename.cc: New test.
    335 	* testsuite/experimental/filesystem/operations/rename.cc: New test.
    336 
    337 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    338 
    339 	Backported from master:
    340 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
    341 
    342 	* testsuite/util/testsuite_fs.h (nonexistent_path): Add
    343 	random number to the path.
    344 
    345 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    346 
    347 	Backported from master:
    348 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
    349 
    350 	* include/experimental/internet (address_v6::to_string): Include
    351 	scope ID in string.
    352 	(address_v6::loopback): Fix to be constexpr in C++14.
    353 	* testsuite/experimental/net/internet/address/v6/members.cc:
    354 	Test to_string() results.
    355 
    356 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    357 
    358 	Backported from master:
    359 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
    360 
    361 	* include/experimental/internet (address_v6::any): Avoid using
    362 	memcpy in constexpr function.
    363 	(address_v6::loopback): Likewise.
    364 	(make_address_v6): Fix missing return statements on error paths.
    365 	* include/experimental/io_context: Avoid -Wdangling-else
    366 	warning.
    367 	* testsuite/experimental/net/internet/address/v4/members.cc:
    368 	Remove unused variables.
    369 	* testsuite/experimental/net/internet/address/v6/members.cc:
    370 	New test.
    371 
    372 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    373 
    374 	Backported from master:
    375 	2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
    376 
    377 	* testsuite/25_algorithms/all_of/constexpr.cc: Check result of
    378 	the algorithm.
    379 	* testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
    380 	* testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
    381 	* testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
    382 	* testsuite/25_algorithms/count/constexpr.cc: Likewise.
    383 	* testsuite/25_algorithms/equal/constexpr.cc: Likewise.
    384 	* testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
    385 	* testsuite/25_algorithms/fill/constexpr.cc: Likewise.
    386 	* testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
    387 	* testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
    388 	* testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
    389 	* testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
    390 	* testsuite/25_algorithms/is_sorted_until/constexpr.cc:
    391 	Likewise.
    392 	* testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
    393 	Likewise.
    394 	* testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
    395 	* testsuite/25_algorithms/merge/constexpr.cc: Likewise.
    396 	* testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
    397 	* testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
    398 	* testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
    399 	* testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
    400 	* testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
    401 	* testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
    402 	* testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
    403 	* testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
    404 	* testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
    405 	* testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
    406 	* testsuite/25_algorithms/search/constexpr.cc: Likewise.
    407 	* testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
    408 	* testsuite/25_algorithms/set_intersection/constexpr.cc:
    409 	Likewise.
    410 	* testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
    411 	Likewise.
    412 	* testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
    413 	* testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
    414 	* testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
    415 
    416 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    417 
    418 	Backported from master:
    419 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
    420 
    421 	PR libstdc++/99077
    422 	* src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
    423 	Change int parameter to error_code, to match std::ios_failure.
    424 	(__throw_ios_failure(const char*, int)): Construct error_code
    425 	from int parameter.
    426 
    427 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    428 
    429 	Backported from master:
    430 	2021-02-11  Jonathan Wakely  <jwakely (a] redhat.com>
    431 
    432 	PR libstdc++/99058
    433 	* doc/xml/manual/status_cxx2011.xml: Document when support
    434 	became stable.
    435 	* doc/xml/manual/status_cxx2014.xml: Likewise.
    436 	* doc/xml/manual/status_cxx2017.xml: Likewise.
    437 	* doc/html/manual/status.html: Regenerate.
    438 
    439 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    440 
    441 	Backported from master:
    442 	2021-02-12  Jonathan Wakely  <jwakely (a] redhat.com>
    443 
    444 	PR libstdc++/88881
    445 	* src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
    446 
    447 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    448 
    449 	Backported from master:
    450 	2021-02-10  Jonathan Wakely  <jwakely (a] redhat.com>
    451 
    452 	PR libstdc++/88881
    453 	* src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
    454 
    455 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    456 
    457 	Backported from master:
    458 	2021-02-10  Jonathan Wakely  <jwakely (a] redhat.com>
    459 
    460 	* src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
    461 	(fs::remove): Use std::system_category() for error codes from
    462 	GetLastError().
    463 	* src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
    464 	Likewise.
    465 
    466 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    467 
    468 	Backported from master:
    469 	2021-02-10  Jonathan Wakely  <jwakely (a] redhat.com>
    470 
    471 	* testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
    472 	in __MINGW32__ macro name.
    473 	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
    474 	* testsuite/27_io/filesystem/path/generation/proximate.cc:
    475 	Likewise.
    476 	* testsuite/27_io/filesystem/path/generation/relative.cc:
    477 	Likewise.
    478 	* testsuite/util/testsuite_fs.h: Likewise.
    479 
    480 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    481 
    482 	Backported from master:
    483 	2021-02-03  Jonathan Wakely  <jwakely (a] redhat.com>
    484 
    485 	* testsuite/19_diagnostics/error_code/operators/not_equal.cc:
    486 	Add comparison with same category and different values.
    487 	* testsuite/19_diagnostics/error_code/operators/less.cc:
    488 	Likewise. Fix comparison involving different categories.
    489 	* testsuite/19_diagnostics/error_code/operators/three_way.cc:
    490 	Likewise.
    491 	* testsuite/19_diagnostics/error_condition/operators/less.cc:
    492 	Add comment.
    493 	* testsuite/19_diagnostics/error_condition/operators/three_way.cc:
    494 	Likewise.
    495 
    496 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    497 
    498 	Backported from master:
    499 	2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    500 
    501 	PR libstdc++/98319
    502 	* include/experimental/random: Only define contents for C++14
    503 	and later.
    504 	* include/experimental/source_location: Likewise.
    505 	* include/experimental/utility: Likewise.
    506 	* testsuite/experimental/feat-lib-fund.cc: Include all LFTS
    507 	headers that are present. Allow test to run for all modes.
    508 
    509 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    510 
    511 	Backported from master:
    512 	2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    513 
    514 	PR libstdc++/93151
    515 	* acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Remove.
    516 	* configure.ac: Regenerate.
    517 	* config/os/generic/error_constants.h: Test POSIX errno macros
    518 	directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
    519 	* testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc:
    520 	Likewise.
    521 	* testsuite/19_diagnostics/headers/system_error/93151.cc: New
    522 	test.
    523 
    524 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    525 
    526 	Backported from master:
    527 	2020-12-10  Jonathan Wakely  <jwakely (a] redhat.com>
    528 
    529 	PR libstdc++/98226
    530 	* include/std/bit (__countl_one, __countr_one): Remove redundant
    531 	branches.
    532 
    533 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    534 
    535 	Backported from master:
    536 	2020-11-09  Jonathan Wakely  <jwakely (a] redhat.com>
    537 
    538 	* include/std/bit (__popcount): Remove redundant check for zero.
    539 
    540 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    541 
    542 	Backported from master:
    543 	2020-10-30  Jonathan Wakely  <jwakely (a] redhat.com>
    544 
    545 	* include/std/ranges (enable_borrowed_view<take_view<T>>)
    546 	(enable_borrowed_view<drop_view<T>>)
    547 	(enable_borrowed_view<drop_while_view<T>>)
    548 	(enable_borrowed_view<reverse_view<T>>)
    549 	(enable_borrowed_view<common_view<T>>)
    550 	(enable_borrowed_view<elements_view<T>>): Add partial
    551 	specializations as per P2017R1.
    552 	* testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
    553 	New test.
    554 
    555 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    556 
    557 	Backported from master:
    558 	2020-10-29  Jonathan Wakely  <jwakely (a] redhat.com>
    559 
    560 	* include/std/ranges (subrange::subrange(R&&)): Use
    561 	direct-initialization instead of list-initialization, so a
    562 	potential narrowing conversion from ranges::size(r) to the
    563 	stored size isn't ill-formed.
    564 
    565 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    566 
    567 	Backported from master:
    568 	2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
    569 
    570 	PR libstdc++/82584
    571 	* include/bits/random.tcc
    572 	(discrete_distribution::param_type::_M_initialize)
    573 	(piecewise_constant_distribution::param_type::_M_initialize)
    574 	(piecewise_linear_distribution::param_type::_M_initialize):
    575 	Add assertions for positive sums..
    576 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
    577 	line.
    578 
    579 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    580 
    581 	Backported from master:
    582 	2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
    583 
    584 	* include/bits/random.h (__detail::_Mod): Revert last change.
    585 	(__detail::__mod): Do not use _Mod for a==0 case.
    586 	* testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
    587 	Check other cases with a==0. Also check runtime results.
    588 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
    589 	line.
    590 
    591 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    592 
    593 	Backported from master:
    594 	2020-10-07  Jonathan Wakely  <jwakely (a] redhat.com>
    595 
    596 	* include/bits/random.h (__detail::_Mod): Avoid divide by zero.
    597 	* testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
    598 	New test.
    599 
    600 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    601 
    602 	Backported from master:
    603 	2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
    604 
    605 	* include/std/ranges (drop_view::begin()): Adjust constraints
    606 	to match the correct condition for O(1) ranges::next (LWG 3482).
    607 	* testsuite/std/ranges/adaptors/drop.cc: Check that iterator is
    608 	cached for non-sized_range.
    609 
    610 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    611 
    612 	Backported from master:
    613 	2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
    614 
    615 	* include/std/ranges (transform_view, elements_view): Relax
    616 	constraints on operator- for iterators, as per LWG 3483.
    617 	* testsuite/std/ranges/adaptors/elements.cc: Check that we
    618 	can take the difference of two iterators from a non-random
    619 	access range.
    620 	* testsuite/std/ranges/adaptors/transform.cc: Likewise.
    621 
    622 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    623 
    624 	Backported from master:
    625 	2020-10-28  Jonathan Wakely  <jwakely (a] redhat.com>
    626 
    627 	PR libstdc++/95592
    628 	* include/bits/valarray_after.h (_DEFINE_EXPR_UNARY_OPERATOR)
    629 	(_DEFINE_EXPR_BINARY_OPERATOR, _DEFINE_EXPR_BINARY_FUNCTION):
    630 	Use elaborated-type-specifier and qualified-id to avoid
    631 	ambiguities with QNX system headers.
    632 	* testsuite/26_numerics/valarray/95592.cc: New test.
    633 
    634 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    635 
    636 	Backported from master:
    637 	2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
    638 
    639 	* include/bits/locale_conv.h (__str_codecvt_out_all):
    640 	Add cast to compare operands of the same signedness.
    641 	* include/bits/locale_facets_nonio.tcc
    642 	(time_get::_M_extract_wday_or_month): Likewise.
    643 	* include/bits/sstream.tcc (basic_stringbuf::overflow):
    644 	Likewise.
    645 	* include/tr1/legendre_function.tcc (__sph_legendre): Use
    646 	unsigned for loop variable.
    647 
    648 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    649 
    650 	Backported from master:
    651 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
    652 
    653 	* include/bits/locale_conv.h (__do_str_codecvt, __str_codecvt_in_all):
    654 	Add casts to compare types of the same signedness.
    655 
    656 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    657 
    658 	Backported from master:
    659 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
    660 
    661 	* include/bits/ranges_algobase.h (__equal_fn): Remove unused
    662 	typedef.
    663 
    664 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    665 
    666 	Backported from master:
    667 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
    668 
    669 	* include/experimental/bits/shared_ptr.h (shared_ptr(auto_ptr&&))
    670 	(operator=(auto_ptr&&)): Add diagnostic pragmas to suppress
    671 	warnings for uses of std::auto_ptr.
    672 	* include/experimental/type_traits (is_literal_type_v):
    673 	Likewise, for use of std::is_literal_type.
    674 	* include/std/condition_variable (condition_variable_any::_Unlock):
    675 	Likewise, for use of std::uncaught_exception.
    676 
    677 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    678 
    679 	Backported from master:
    680 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
    681 
    682 	* include/bits/fs_path.h (path::_List::type()): Avoid narrowing
    683 	conversion.
    684 
    685 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    686 
    687 	Backported from master:
    688 	2020-09-07  Jonathan Wakely  <jwakely (a] redhat.com>
    689 
    690 	* include/std/ranges (__box): Simplify constraints as per LWG 3477.
    691 
    692 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    693 
    694 	Backported from master:
    695 	2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
    696 
    697 	* include/std/ranges (ranges::iota_view::size()): Perform all
    698 	calculations in the right unsigned types.
    699 	* testsuite/std/ranges/iota/size.cc: New test.
    700 
    701 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    702 
    703 	Backported from master:
    704 	2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
    705 
    706 	* include/experimental/executor (system_context::_M_run()):
    707 	Fix predicate.
    708 	(system_context::join()): Do not join unless joinable.
    709 	* testsuite/experimental/net/system_context/1.cc: New test.
    710 
    711 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    712 
    713 	Backported from master:
    714 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
    715 
    716 	* include/bits/stl_iterator.h (inserter): Do not deduce
    717 	iterator type (LWG 561).
    718 	* testsuite/24_iterators/insert_iterator/dr561.cc: New test.
    719 
    720 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    721 
    722 	Backported from master:
    723 	2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
    724 
    725 	* include/bits/fs_path.h (path::_List::begin, path::_List::end):
    726 	Add noexcept to match definitions in src/c++17/fs_path.cc.
    727 
    728 2021-03-29  Jonathan Wakely  <jwakely (a] redhat.com>
    729 
    730 	Backported from master:
    731 	2020-10-27  Jonathan Wakely  <jwakely (a] redhat.com>
    732 
    733 	* src/c++17/fs_dir.cc (fs::directory_iterator::operator*):
    734 	Add noexcept. Do not throw on precondition violation.
    735 
    736 2021-03-19  Jakub Jelinek  <jakub (a] redhat.com>
    737 
    738 	Backported from master:
    739 	2021-02-23  Jakub Jelinek  <jakub (a] redhat.com>
    740 
    741 	PR libstdc++/99181
    742 	* testsuite/21_strings/char_traits/requirements/char/99181.cc: New
    743 	test.
    744 
    745 2021-03-19  Jakub Jelinek  <jakub (a] redhat.com>
    746 
    747 	Backported from master:
    748 	2021-02-23  Jakub Jelinek  <jakub (a] redhat.com>
    749 
    750 	PR libstdc++/99181
    751 	* include/bits/char_traits.h (char_traits<char>::compare): For
    752 	constexpr evaluation don't call
    753 	__gnu_cxx::char_traits<char_type>::compare but do the comparison loop
    754 	directly.
    755 
    756 2021-02-09  Jonathan Wakely  <jwakely (a] redhat.com>
    757 
    758 	Backported from master:
    759 	2021-02-09  Jonathan Wakely  <jwakely (a] redhat.com>
    760 
    761 	PR libstdc++/99021
    762 	* include/std/coroutine (coroutine_handle<P>::from_address): Add
    763 	noexcept.
    764 
    765 2021-01-13  Jonathan Wakely  <jwakely (a] redhat.com>
    766 
    767 	PR libstdc++/98605
    768 	* include/std/mutex (call_once): Use NOLINT to suppress clang
    769 	analyzer warnings.
    770 
    771 2021-01-11  Jonathan Wakely  <jwakely (a] redhat.com>
    772 
    773 	Backported from master:
    774 	2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
    775 
    776 	* python/libstdcxx/v6/printers.py (StdExpPathPrinter): Store the
    777 	name of the type and pass it to the iterator.
    778 	(StdPathPrinter): Likewise.
    779 	* testsuite/libstdc++-prettyprinters/filesystem-ts.cc: New test.
    780 
    781 2021-01-11  Jonathan Wakely  <jwakely (a] redhat.com>
    782 
    783 	Backported from master:
    784 	2020-12-16  Jonathan Wakely  <jwakely (a] redhat.com>
    785 
    786 	PR libstdc++/96083
    787 	* include/ext/throw_allocator.h: Use __has_builtin to check for
    788 	__builtin_sprintf support, and use std::sprintf if necessary.
    789 
    790 2021-01-11  Jonathan Wakely  <jwakely (a] redhat.com>
    791 
    792 	Backported from master:
    793 	2020-12-02  Jonathan Wakely  <jwakely (a] redhat.com>
    794 
    795 	PR libstdc++/65480
    796 	PR libstdc++/68735
    797 	* python/libstdcxx/v6/printers.py (function_pointer_to_name):
    798 	New helper function to get the name of a function from its
    799 	address.
    800 	(StdExpAnyPrinter.__init__): Use it.
    801 
    802 2021-01-11  Jonathan Wakely  <jwakely (a] redhat.com>
    803 
    804 	Backported from master:
    805 	2020-07-31  Jonathan Wakely  <jwakely (a] redhat.com>
    806 
    807 	* testsuite/experimental/filesystem/filesystem_error/cons.cc:
    808 	Remove -std=gnu++17 option.
    809 
    810 2021-01-08  Iain Sandoe  <iain (a] sandoe.co.uk>
    811 
    812 	Backported from master:
    813 	2020-07-17  Iain Sandoe  <iain (a] sandoe.co.uk>
    814 
    815 	* include/std/coroutine: Mark the methods of the
    816 	trivial awaitables as constexpr.
    817 
    818 2021-01-03  Iain Sandoe  <iain (a] sandoe.co.uk>
    819 	    Jakub Jelinek   <jakub (a] redhat.com>
    820 
    821 	PR target/97865
    822 	* configure: Regenerate.
    823 
    824 2020-12-03  Jonathan Wakely  <jwakely (a] redhat.com>
    825 
    826 	Backported from master:
    827 	2020-12-03  Jonathan Wakely  <jwakely (a] redhat.com>
    828 
    829 	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt:
    830 	Update.
    831 	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
    832 	Update.
    833 
    834 2020-12-01  Patrick Palka  <ppalka (a] redhat.com>
    835 
    836 	Backported from master:
    837 	2020-10-12  Patrick Palka  <ppalka (a] redhat.com>
    838 
    839 	PR libstdc++/95322
    840 	* include/std/ranges (take_view::_CI): Define this alias
    841 	template as per LWG 3449 and remove ...
    842 	(take_view::_Sentinel::_CI): ... this type alias.
    843 	(take_view::_Sentinel::operator==): Adjust use of _CI
    844 	accordingly.  Define a second overload that accepts an iterator
    845 	of the opposite constness as per LWG 3449.
    846 	(take_while_view::_Sentinel::operator==): Likewise.
    847 	* testsuite/std/ranges/adaptors/95322.cc: Add tests for LWG 3449.
    848 
    849 2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    850 
    851 	Backported from master:
    852 	2020-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    853 
    854 	PR libstdc++/98001
    855 	* testsuite/ext/stdio_filebuf/char/79820.cc: Do not pass invalid
    856 	FILE* to constructor.
    857 
    858 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    859 
    860 	Backported from master:
    861 	2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    862 
    863 	PR libstdc++/97935
    864 	* include/bits/iterator_concepts.h (__detail::__iter_without_category):
    865 	New helper concept.
    866 	(__iterator_traits::__cat): Use __detail::__iter_without_category.
    867 	* testsuite/24_iterators/associated_types/iterator.traits.cc: New test.
    868 
    869 2020-11-25  Jonathan Wakely  <jwakely (a] redhat.com>
    870 
    871 	Backported from master:
    872 	2020-06-04  Jonathan Wakely  <jwakely (a] redhat.com>
    873 
    874 	* include/bits/iterator_concepts.h (__detail::__ptr, __detail::__ref)
    875 	(__detail::__cat, __detail::__diff): Move to class scope in the
    876 	relevant __iterator_traits specializations.
    877 	(__iterator_traits<>): Use nested class templates instead of ones from
    878 	namespace __detail.
    879 	* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Move to
    880 	class scope in iterator_traits<common_iterator<I, S>>.
    881 	(iterator_traits<common_iterator<I, S>>): Use nested class template
    882 	instead of __detail::__common_iter_ptr.
    883 
    884 2020-11-24  Jonathan Wakely  <jwakely (a] redhat.com>
    885 
    886 	Backported from master:
    887 	2020-10-02  Jonathan Wakely  <jwakely (a] redhat.com>
    888 
    889 	* testsuite/29_atomics/atomic_float/value_init.cc: Use float
    890 	instead of double so that __atomic_load_8 isn't needed.
    891 
    892 2020-11-20  Jonathan Wakely  <jwakely (a] redhat.com>
    893 
    894 	Backported from master:
    895 	2020-11-20  Jonathan Wakely  <jwakely (a] redhat.com>
    896 
    897 	PR libstdc++/92546
    898 	* include/std/regex (pmr::smatch, pmr::wsmatch): Declare using
    899 	underlying __normal_iterator type, not nested typedef
    900 	basic_string::const_iterator.
    901 
    902 2020-11-20  Jonathan Wakely  <jwakely (a] redhat.com>
    903 
    904 	PR libstdc++/97876
    905 	* include/std/stop_token (_Stop_state_t): Define default
    906 	constructor as user-provided not defaulted.
    907 
    908 2020-11-20  Jonathan Wakely  <jwakely (a] redhat.com>
    909 
    910 	Backported from master:
    911 	2020-11-19  Jonathan Wakely  <jwakely (a] redhat.com>
    912 
    913 	PR libstdc++/95989
    914 	* config/os/gnu-linux/os_defines.h (_GLIBCXX_NATIVE_THREAD_ID):
    915 	Define new macro to get reliable thread ID.
    916 	* include/std/stop_token (_Stop_state_t::_M_request_stop):
    917 	Use new macro if it's defined.
    918 	(_Stop_state_t::_M_remove_callback): Likewise.
    919 	* include/std/thread (this_thread::get_id): Likewise.
    920 	* testsuite/30_threads/jthread/95989.cc: New test.
    921 	* testsuite/30_threads/this_thread/95989.cc: New test.
    922 
    923 2020-11-18  Patrick Palka  <ppalka (a] redhat.com>
    924 
    925 	Backported from master:
    926 	2020-11-18  Patrick Palka  <ppalka (a] redhat.com>
    927 
    928 	* include/std/ranges (join_view::_Iterator::_M_satisfy): Uglify
    929 	local variable inner.
    930 	(join_view::_Iterator::operator->): Use _Inner_iter instead of
    931 	_Outer_iter in the function signature as per LWG 3500.
    932 	* testsuite/std/ranges/adaptors/join.cc (test08): Test it.
    933 
    934 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
    935 
    936 	Backported from master:
    937 	2020-10-06  Jonathan Wakely  <jwakely (a] redhat.com>
    938 
    939 	* include/std/ranges (join_view): Remove deduction guide.
    940 	(views::join): Add explicit template argument list to prevent
    941 	deducing the wrong type.
    942 	* testsuite/std/ranges/adaptors/join.cc: Move test for LWG 3474
    943 	here, from ...
    944 	* testsuite/std/ranges/adaptors/join_lwg3474.cc: Removed.
    945 
    946 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
    947 
    948 	Backported from master:
    949 	2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
    950 
    951 	* include/std/ranges (join_view): Add deduction guide (LWG 3474).
    952 	* testsuite/std/ranges/adaptors/join_lwg3474.cc: New test.
    953 
    954 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
    955 
    956 	Backported from master:
    957 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
    958 
    959 	* include/std/version (__cpp_lib_array_constexpr)
    960 	(__cpp_lib_constexpr_char_traits): Only define C++17 value when
    961 	compiling C++17.
    962 
    963 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
    964 
    965 	Backported from master:
    966 	2020-06-15  Jonathan Wakely  <jwakely (a] redhat.com>
    967 
    968 	* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
    969 	Update value for C++20.
    970 	* include/std/version (__cpp_lib_constexpr_char_traits): Likewise.
    971 	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
    972 	Update expected value.
    973 
    974 2020-11-18  Jonathan Wakely  <jwakely (a] redhat.com>
    975 
    976 	Backported from master:
    977 	2020-11-17  Jonathan Wakely  <jwakely (a] redhat.com>
    978 
    979 	PR libstdc++/97869
    980 	* include/precompiled/stdc++.h: Include <coroutine>.
    981 	* include/std/version (__cpp_lib_span): Check __cpp_lib_concepts
    982 	before defining.
    983 
    984 2020-11-17  Patrick Palka  <ppalka (a] redhat.com>
    985 
    986 	Backported from master:
    987 	2020-11-17  Patrick Palka  <ppalka (a] redhat.com>
    988 
    989 	PR libstdc++/97828
    990 	* include/bits/ranges_algo.h (__search_n_fn::operator()): Check
    991 	random_access_iterator before using the backtracking
    992 	implementation.  When the backwards scan fails prematurely,
    993 	reset __remainder appropriately.
    994 	* testsuite/25_algorithms/search_n/97828.cc: New test.
    995 
    996 2020-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
    997 
    998 	Backported from master:
    999 	2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1000 
   1001 	PR libstdc++/93456
   1002 	* src/c++11/futex.cc (relative_timespec): Remove redundant check
   1003 	negative values.
   1004 	* testsuite/30_threads/future/members/93456.cc: New.
   1005 
   1006 2020-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
   1007 
   1008 	Backported from master:
   1009 	2020-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
   1010 
   1011 	* src/c++11/futex.cc (relative_timespec): New function to
   1012 	create relative time from two absolute times.
   1013 	(__atomic_futex_unsigned_base::_M_futex_wait_until): Use
   1014 	relative_timespec.
   1015 
   1016 2020-11-16  Jonathan Wakely  <jwakely (a] redhat.com>
   1017 
   1018 	Backported from master:
   1019 	2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1020 
   1021 	* include/std/future (future::wait_for): Do not wait for
   1022 	durations less than or equal to zero.
   1023 	* testsuite/30_threads/future/members/poll.cc: New test.
   1024 
   1025 2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1026 
   1027 	Backported from master:
   1028 	2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1029 
   1030 	PR libstdc++/97798
   1031 	* include/ext/numeric_traits.h (__glibcxx_signed)
   1032 	(__glibcxx_digits, __glibcxx_min, __glibcxx_max): Remove
   1033 	macros.
   1034 	(__is_integer_nonstrict::__width): Define new constant.
   1035 	(__numeric_traits_integer): Define constants in terms of each
   1036 	other and __is_integer_nonstrict::__width, rather than the
   1037 	removed macros.
   1038 	(_GLIBCXX_INT_N_TRAITS): Macro to define explicit
   1039 	specializations for non-standard integer types.
   1040 
   1041 2020-11-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1042 
   1043 	PR libstdc++/96042
   1044 	* testsuite/std/ranges/iota/96042.cc: Only assert that the
   1045 	difference type is wider than long long if __int128 is
   1046 	supported.
   1047 
   1048 2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1049 
   1050 	Backported from master:
   1051 	2020-08-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1052 
   1053 	* include/bits/iterator_concepts.h [__STRICT_ANSI__]
   1054 	(incrementable_traits<__int128>): Define specialization.
   1055 	(incrementable_traits<unsigned __int128>): Likewise.
   1056 	* testsuite/std/ranges/iota/96042.cc: Test iota_view with
   1057 	__int128.
   1058 
   1059 2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1060 
   1061 	Backported from master:
   1062 	2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1063 		    Patrick Palka  <ppalka (a] redhat.com>
   1064 
   1065 	PR libstdc++/96042
   1066 	* include/bits/range_access.h (__detail::__to_unsigned_like):
   1067 	Do not use make_unsigned_t<T> in the return type, as it can
   1068 	result in an error before the integral<T> constraint is checked.
   1069 	[__STRICT_ANSI__]: Add overloads for 128-bit integer types.
   1070 	(__detail::__make_unsigned_like_t): Define as the return type
   1071 	of __to_unsigned_like.
   1072 	* testsuite/std/ranges/subrange/96042.cc: New test.
   1073 
   1074 2020-11-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1075 
   1076 	Backported from master:
   1077 	2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1078 
   1079 	PR libstdc++/96042
   1080 	* include/ext/numeric_traits.h (__is_integer_nonstrict): New
   1081 	trait which is true for 128-bit integers even in strict modes.
   1082 	(__numeric_traits_integer, __numeric_traits): Use
   1083 	__is_integer_nonstrict instead of __is_integer.
   1084 	* include/std/limits [__STRICT_ANSI__ && __SIZEOF_INT128__]
   1085 	(numeric_limits<__int128>, (numeric_limits<unsigned __int128>):
   1086 	Define.
   1087 	* testsuite/std/ranges/iota/96042.cc: New test.
   1088 
   1089 2020-11-11  Paul Scharnofske  <asynts (a] gmail.com>
   1090 
   1091 	Backported from master:
   1092 	2020-11-11  Paul Scharnofske  <asynts (a] gmail.com>
   1093 
   1094 	* include/std/thread (jthread::operator=(jthread&&)): Transfer
   1095 	any existing state to a temporary that will request a stop and
   1096 	then join.
   1097 	* testsuite/30_threads/jthread/jthread.cc: Test move assignment.
   1098 
   1099 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1100 
   1101 	Backported from master:
   1102 	2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1103 
   1104 	PR libstdc++/96269
   1105 	* include/std/optional (operator==, operator!=, operator<)
   1106 	(operator>, operator<=, operator>=): Fix types used in
   1107 	SFINAE constraints.
   1108 	* testsuite/20_util/optional/relops/96269.cc: New test.
   1109 
   1110 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1111 
   1112 	Backported from master:
   1113 	2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1114 
   1115 	PR libstdc++/97731
   1116 	* src/filesystem/dir.cc (recursive_directory_iterator): Call the
   1117 	right overload of _Dir::advance.
   1118 	* testsuite/experimental/filesystem/iterators/97731.cc: New test.
   1119 
   1120 2020-11-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1121 
   1122 	Backported from master:
   1123 	2020-10-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1124 
   1125 	PR libstdc++/97362
   1126 	* doc/html/manual/source_code_style.html: Regenerate.
   1127 	* doc/xml/manual/appendix_contributing.xml: Add __deref to
   1128 	BADNAMES.
   1129 	* include/debug/functions.h (_Irreflexive_checker::__deref):
   1130 	Rename to __ref.
   1131 	* testsuite/17_intro/badnames.cc: Check __deref.
   1132 
   1133 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1134 
   1135 	Backported from master:
   1136 	2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1137 
   1138 	PR libstdc++/92285
   1139 	* doc/xml/manual/evolution.xml: Document change to base class.
   1140 	* doc/html/manual/api.html: Regenerate.
   1141 
   1142 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1143 
   1144 	* doc/xml/manual/evolution.xml: Document new C++20 headers.
   1145 	* doc/html/*: Regenerate.
   1146 
   1147 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1148 
   1149 	Backported from master:
   1150 	2020-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1151 
   1152 	* doc/xml/manual/evolution.xml: Document deprecation of
   1153 	__is_nullptr_t and removal of std::allocator members.
   1154 	* doc/html/manual/api.html: Regenerate.
   1155 
   1156 2020-11-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1157 
   1158 	Backported from master:
   1159 	2020-06-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1160 
   1161 	* doc/xml/manual/containers.xml: Replace <xref> with <link>.
   1162 	* doc/xml/manual/evolution.xml: Likewise.
   1163 	* doc/html/manual/api.html: Regenerate.
   1164 	* doc/html/manual/containers.html: Regenerate.
   1165 
   1166 2020-10-29  Patrick Palka  <ppalka (a] redhat.com>
   1167 
   1168 	Backported from master:
   1169 	2020-10-29  Patrick Palka  <ppalka (a] redhat.com>
   1170 
   1171 	* testsuite/25_algorithms/lexicographical_compare/constrained.cc:
   1172 	(test03): Fix initializing the vector vy with the array y of size 4.
   1173 
   1174 2020-10-28  Patrick Palka  <ppalka (a] redhat.com>
   1175 
   1176 	Backported from master:
   1177 	2020-10-23  Patrick Palka  <ppalka (a] redhat.com>
   1178 
   1179 	* include/std/ranges (single_view::single_view): Mark the
   1180 	in place constructor explicit as per LWG 3428.
   1181 	(take_view): Remove the constraint on the deduction guide's
   1182 	template parameter as per LWG 3447.
   1183 
   1184 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   1185 
   1186 	Backported from master:
   1187 	2020-09-22  Patrick Palka  <ppalka (a] redhat.com>
   1188 
   1189 	* include/std/span (span::front): Remove static_assert.
   1190 	(span::back): Likewise.
   1191 	(span::operator[]): Likewise.
   1192 	* testsuite/23_containers/span/back_neg.cc: Rewrite to verify
   1193 	that we check the preconditions of back() only when it's called.
   1194 	* testsuite/23_containers/span/front_neg.cc: Likewise for
   1195 	front().
   1196 	* testsuite/23_containers/span/index_op_neg.cc: Likewise for
   1197 	operator[].
   1198 
   1199 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   1200 
   1201 	Backported from master:
   1202 	2020-10-12  Patrick Palka  <ppalka (a] redhat.com>
   1203 
   1204 	* include/std/ranges (take_while_view::begin): Constrain the
   1205 	const overload further as per LWG 3450.
   1206 	(take_while_view::end): Likewise.
   1207 	* testsuite/std/ranges/adaptors/take_while.cc: Add test for LWG
   1208 	3450.
   1209 
   1210 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   1211 
   1212 	Backported from master:
   1213 	2020-09-22  Patrick Palka  <ppalka (a] redhat.com>
   1214 
   1215 	* include/bits/stl_algo.h (__sample): Exit early when the
   1216 	input range is empty.
   1217 	* testsuite/25_algorithms/sample/3.cc: New test.
   1218 
   1219 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   1220 
   1221 	Backported from master:
   1222 	2020-09-22  Patrick Palka  <ppalka (a] redhat.com>
   1223 
   1224 	* include/bits/stl_algo.h (for_each_n): Mark constexpr for C++20.
   1225 	(search): Likewise for the overload that takes a searcher.
   1226 	* testsuite/25_algorithms/for_each/constexpr.cc: Test constexpr
   1227 	std::for_each_n.
   1228 	* testsuite/25_algorithms/search/constexpr.cc: Test constexpr
   1229 	std::search overload that takes a searcher.
   1230 
   1231 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   1232 
   1233 	Backported from master:
   1234 	2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   1235 
   1236 	PR libstdc++/95322
   1237 	* include/std/ranges (transform_view::sentinel::__distance_from):
   1238 	Give this a deduced return type.
   1239 	(transform_view::sentinel::operator-): Adjust the return type so
   1240 	that it's based on the constness of the iterator rather than
   1241 	that of the sentinel.
   1242 	* testsuite/std/ranges/adaptors/95322.cc: Refer to LWG 3488.
   1243 
   1244 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   1245 
   1246 	Backported from master:
   1247 	2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   1248 
   1249 	* include/std/ranges (elements_view::begin): Adjust constraints.
   1250 	(elements_view::end): Likewise.
   1251 	(elements_view::_Sentinel::operator==): Templatize to take both
   1252 	_Iterator<true> and _Iterator<false>.
   1253 	(elements_view::_Sentinel::operator-): Likewise.
   1254 	* testsuite/std/ranges/adaptors/elements.cc: Add testcase for
   1255 	the example from P1994R1.
   1256 	* testsuite/std/ranges/adaptors/lwg3406.cc: New test.
   1257 
   1258 2020-10-21  Patrick Palka  <ppalka (a] redhat.com>
   1259 
   1260 	Backported from master:
   1261 	2020-08-27  Patrick Palka  <ppalka (a] redhat.com>
   1262 
   1263 	* include/std/ranges (elements_view::end): Replace these two
   1264 	overloads with four new overloads.
   1265 	(elements_view::_Iterator::operator==): Remove.
   1266 	(elements_view::_Iterator::operator-): Likewise.
   1267 	(elements_view::_Sentinel): Define.
   1268 
   1269 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1270 
   1271 	Backported from master:
   1272 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1273 
   1274 	* python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__):
   1275 	Use gdb.Type.strip_typedefs().
   1276 	* testsuite/libstdc++-prettyprinters/compat.cc: Use a typedef in
   1277 	the emulated old type.
   1278 
   1279 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1280 
   1281 	Backported from master:
   1282 	2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1283 
   1284 	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
   1285 	(basic_string(const _CharT*, const _Alloc&)): Constrain to
   1286 	require an allocator-like type to fix CTAD ambiguity (LWG 3706).
   1287 	Define inline.
   1288 	* include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
   1289 	(basic_string(const _CharT*, const _Alloc&)): Remove non-inline
   1290 	definition.
   1291 	* testsuite/21_strings/basic_string/cons/char/deduction.cc:
   1292 	Remove dg-skip-if.
   1293 	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
   1294 	Likewise.
   1295 
   1296 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1297 
   1298 	Backported from master:
   1299 	2020-10-14  Jonathan Wakely  <jwakely (a] redhat.com>
   1300 
   1301 	* testsuite/21_strings/basic_string/allocator/char/minimal.cc:
   1302 	Do not require cxx11-abi effective target.
   1303 	* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
   1304 	Likewise.
   1305 	* testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
   1306 
   1307 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1308 
   1309 	Backported from master:
   1310 	2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   1311 
   1312 	* include/bits/ios_base.h (ios_base::failure): Add constructors
   1313 	takeing error_code argument. Add code() member function.
   1314 	* testsuite/27_io/ios_base/failure/cxx11.cc: Allow test to
   1315 	run for the old ABI but do not check for derivation from
   1316 	std::system_error.
   1317 	* testsuite/27_io/ios_base/failure/error_code.cc: New test.
   1318 
   1319 2020-10-20  Nuno Lopes  <nuno.lopes (a] ist.utl.pt>
   1320 
   1321 	Backported from master:
   1322 	2020-10-13  Nuno Lopes  <nuno.lopes (a] ist.utl.pt>
   1323 
   1324 	* include/bits/stl_algo.h (any_of): Fix incorrect description
   1325 	in comment.
   1326 
   1327 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1328 
   1329 	Backported from master:
   1330 	2020-10-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1331 
   1332 	* include/bits/stl_algobase.h (copy, move, copy_backward)
   1333 	(move_backward): Fix documentation for returned iterator.
   1334 
   1335 2020-10-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1336 
   1337 	Backported from master:
   1338 	2020-09-24  Jonathan Wakely  <jwakely (a] redhat.com>
   1339 
   1340 	* doc/xml/manual/configure.xml: Correct name of option.
   1341 	* doc/html/*: Regenerate.
   1342 
   1343 2020-10-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1344 
   1345 	Backported from master:
   1346 	2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1347 
   1348 	PR libstdc++/97132
   1349 	* include/std/memory (assume_aligned): Do not use
   1350 	__builtin_assume_aligned during constant evaluation.
   1351 	* testsuite/20_util/assume_aligned/1.cc: Improve test.
   1352 	* testsuite/20_util/assume_aligned/97132.cc: New test.
   1353 
   1354 2020-10-15  Jonathan Wakely  <jwakely (a] redhat.com>
   1355 
   1356 	Backported from master:
   1357 	2020-10-15  Jonathan Wakely  <jwakely (a] redhat.com>
   1358 
   1359 	* include/std/concepts: Fix typos in copyright notice.
   1360 	* include/std/ranges: Likewise.
   1361 
   1362 2020-10-15  Jonathan Wakely  <jwakely (a] redhat.com>
   1363 
   1364 	* doc/xml/manual/status_cxx2020.xml: Remove red background for
   1365 	completed feature.
   1366 	* doc/html/manual/status.html: Regenerate.
   1367 
   1368 2020-10-13  Patrick Palka  <ppalka (a] redhat.com>
   1369 
   1370 	Backported from master:
   1371 	2020-10-08  Patrick Palka  <ppalka (a] redhat.com>
   1372 
   1373 	PR libstdc++/95788
   1374 	* include/bits/ranges_uninitialized.h:
   1375 	(__construct_at_fn::operator()): Rewrite in terms of
   1376 	std::construct_at.  Declare it conditionally noexcept.  Qualify
   1377 	calls to declval in its requires-clause.
   1378 	* testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
   1379 	New test.
   1380 
   1381 2020-10-08  Jonathan Wakely  <jwakely (a] redhat.com>
   1382 
   1383 	Backported from master:
   1384 	2020-10-07  Jonathan Wakely  <jwakely (a] redhat.com>
   1385 
   1386 	* include/bits/random.h (seed_seq(initializer_list<T>)): Rename
   1387 	parameter to use reserved name.
   1388 	* include/bits/ranges_algo.h (shift_left, shift_right): Rename
   1389 	template parameters to use reserved name.
   1390 	* testsuite/17_intro/names.cc: Check "il". Do not check "d" and
   1391 	"y" in C++20 mode.
   1392 
   1393 2020-10-06  Patrick Palka  <ppalka (a] redhat.com>
   1394 
   1395 	Backported from master:
   1396 	2020-10-02  Patrick Palka  <ppalka (a] redhat.com>
   1397 
   1398 	* include/bits/stl_iterator.h (reverse_iterator::iter_move):
   1399 	Define for C++20 as per P0896.
   1400 	(reverse_iterator::iter_swap): Likewise.
   1401 	(move_iterator::operator*): Apply P0896 changes for C++20.
   1402 	(move_iterator::operator[]): Likewise.
   1403 	* testsuite/24_iterators/reverse_iterator/cust.cc: New test.
   1404 
   1405 2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   1406 
   1407 	Backported from master:
   1408 	2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   1409 
   1410 	PR libstdc++/97167
   1411 	* src/c++17/fs_path.cc (path::_Parser::root_path()): Check
   1412 	for empty string before inspecting the first character.
   1413 	* testsuite/27_io/filesystem/path/append/source.cc: Append
   1414 	empty string_view to path.
   1415 
   1416 2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   1417 
   1418 	Backported from master:
   1419 	2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   1420 
   1421 	PR libstdc++/96803
   1422 	* include/std/tuple
   1423 	(_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
   1424 	Use correct value category in __use_alloc call.
   1425 	* testsuite/20_util/tuple/cons/96803.cc: Check with constructors
   1426 	that require correct value category to be used.
   1427 
   1428 2020-09-22  Jonathan Wakely  <jwakely (a] redhat.com>
   1429 
   1430 	Backported from master:
   1431 	2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1432 
   1433 	PR libstdc++/96803
   1434 	* include/std/tuple
   1435 	(_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
   1436 	Replace parameter pack with a type parameter and a pack and pass
   1437 	the first type to __use_alloc.
   1438 	* testsuite/20_util/tuple/cons/96803.cc: New test.
   1439 
   1440 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1441 
   1442 	Backported from master:
   1443 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1444 
   1445 	PR libstdc++/94681
   1446 	* src/c++17/fs_ops.cc (read_symlink): Use posix::lstat instead
   1447 	of calling ::lstat directly.
   1448 	* src/filesystem/ops.cc (read_symlink): Likewise.
   1449 
   1450 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1451 
   1452 	Backported from master:
   1453 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1454 
   1455 	PR libstdc++/94681
   1456 	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Do not depend on
   1457 	$enable_libstdcxx_filesystem_ts.
   1458 	* configure: Regenerate.
   1459 
   1460 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1461 
   1462 	Backported from master:
   1463 	2020-09-20  Jonathan Wakely  <jwakely (a] redhat.com>
   1464 
   1465 	PR libstdc++/97101
   1466 	* include/std/functional (bind_front): Fix order of parameters
   1467 	in is_nothrow_constructible_v specialization.
   1468 	* testsuite/20_util/function_objects/bind_front/97101.cc: New test.
   1469 
   1470 2020-09-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1471 
   1472 	Backported from master:
   1473 	2020-09-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1474 
   1475 	PR libstdc++/94160
   1476 	* src/c++17/memory_resource.cc (munge_options): Round
   1477 	max_blocks_per_chunk to a multiple of four.
   1478 	(__pool_resource::_M_alloc_pools()): Simplify slightly.
   1479 	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
   1480 	Check that valid pointers are returned when small values are
   1481 	used for max_blocks_per_chunk.
   1482 
   1483 2020-09-03  Jonathan Wakely  <jwakely (a] redhat.com>
   1484 
   1485 	Backported from master:
   1486 	2020-07-07  Jonathan Wakely  <jwakely (a] redhat.com>
   1487 
   1488 	* include/Makefile.am: Remove bits/int_limits.h.
   1489 	* include/Makefile.in: Regenerate.
   1490 	* include/bits/int_limits.h: Removed.
   1491 	* include/bits/parse_numbers.h (_Select_int_base): Replace
   1492 	__int_limits with __int_traits.
   1493 	* include/bits/range_access.h (_SSize::operator()): Likewise.
   1494 	* include/ext/numeric_traits.h (__numeric_traits_integer): Add
   1495 	static assertion.
   1496 	(__int_traits): New alias template.
   1497 	* include/std/bit (__rotl, __rotr, __countl_zero, __countl_one)
   1498 	(__countr_zero, __countr_one, __popcount, __bit_ceil)
   1499 	(__bit_floor, __bit_width) Replace __int_limits with
   1500 	__int_traits.
   1501 	* include/std/charconv (__to_chars_8, __from_chars_binary)
   1502 	(__from_chars_alpha_to_num, from_chars): Likewise.
   1503 	* include/std/memory_resource (polymorphic_allocator::allocate)
   1504 	(polymorphic_allocator::allocate_object): Likewise.
   1505 	* include/std/string_view (basic_string_view::_S_compare):
   1506 	Likewise.
   1507 	* include/std/utility (cmp_equal, cmp_less, in_range): Likewise.
   1508 
   1509 2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   1510 
   1511 	Backported from master:
   1512 	2020-08-28  Jonathan Wakely  <jwakely (a] redhat.com>
   1513 
   1514 	PR libstdc++/92978
   1515 	* include/std/numeric (__abs_integral): Replace with ...
   1516 	(__detail::__absu): New function template that returns an
   1517 	unsigned type, guaranteeing it can represent the most
   1518 	negative signed value.
   1519 	(__detail::__gcd, __detail::__lcm): Require arguments to
   1520 	be unsigned and therefore already non-negative.
   1521 	(gcd, lcm): Convert arguments to absolute value as unsigned
   1522 	type before calling __detail::__gcd or __detail::__lcm.
   1523 	* include/experimental/numeric (gcd, lcm): Likewise.
   1524 	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust expected
   1525 	errors.
   1526 	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
   1527 	* testsuite/26_numerics/gcd/92978.cc: New test.
   1528 	* testsuite/26_numerics/lcm/92978.cc: New test.
   1529 	* testsuite/experimental/numeric/92978.cc: New test.
   1530 
   1531 2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   1532 
   1533 	Backported from master:
   1534 	2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   1535 
   1536 	PR libstdc++/96851
   1537 	* include/bits/cpp_type_traits.h (__is_memcmp_ordered):
   1538 	New trait that says if memcmp can be used for ordering.
   1539 	(__is_memcmp_ordered_with): Likewise, for two types.
   1540 	* include/bits/ranges_algo.h (__lexicographical_compare_fn):
   1541 	Use new traits instead of __is_byte and __numeric_traits.
   1542 	* include/bits/stl_algobase.h (__lexicographical_compare_aux1)
   1543 	(__is_byte_iter): Likewise.
   1544 	* include/std/array (operator<=>): Likewise. Only use memcmp
   1545 	when std::is_constant_evaluated() is false.
   1546 	* testsuite/23_containers/array/comparison_operators/96851.cc:
   1547 	New test.
   1548 	* testsuite/23_containers/array/tuple_interface/get_neg.cc:
   1549 	Adjust dg-error line numbers.
   1550 
   1551 2020-09-02  Jonathan Wakely  <jwakely (a] redhat.com>
   1552 
   1553 	* include/bits/stl_iterator.h (counted_iterator::operator++(int)):
   1554 	Use __throw_exception_again macro.
   1555 
   1556 2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1557 
   1558 	Backported from master:
   1559 	2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1560 
   1561 	PR libstdc++/71960
   1562 	* include/experimental/string_view (basic_string_view):
   1563 	Enable debug assertions.
   1564 	* include/std/string_view (basic_string_view):
   1565 	Likewise.
   1566 
   1567 2020-08-26  Jonathan Wakely  <jwakely (a] redhat.com>
   1568 
   1569 	Backported from master:
   1570 	2020-08-24  Jonathan Wakely  <jwakely (a] redhat.com>
   1571 
   1572 	PR libstdc++/96766
   1573 	* include/std/variant (_Variant_storage): Replace implicit
   1574 	conversions from size_t to __index_type with explicit casts.
   1575 
   1576 2020-08-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1577 
   1578 	Backported from master:
   1579 	2020-08-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1580 
   1581 	PR libstdc++/96718
   1582 	* testsuite/25_algorithms/pstl/feature_test-2.cc: Require
   1583 	tbb-backend effective target.
   1584 	* testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
   1585 	* testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
   1586 	* testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
   1587 
   1588 2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1589 
   1590 	Backported from master:
   1591 	2020-08-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1592 
   1593 	* include/bits/c++config (_GLIBCXX_DEPRECATED_SUGGEST): New
   1594 	macro for "use 'foo' instead" message in deprecated warnings.
   1595 	* include/bits/ios_base.h (io_state, open_mode, seek_dir)
   1596 	(streampos, streamoff): Use _GLIBCXX_DEPRECATED_SUGGEST.
   1597 	* include/std/streambuf (stossc): Replace C++11 attribute
   1598 	with _GLIBCXX_DEPRECATED_SUGGEST.
   1599 	* include/std/type_traits (__is_nullptr_t): Use
   1600 	_GLIBCXX_DEPRECATED_SUGGEST instead of _GLIBCXX_DEPRECATED.
   1601 	* testsuite/27_io/types/1.cc: Check for deprecated warnings.
   1602 	Also check for io_state, open_mode and seek_dir typedefs.
   1603 
   1604 2020-08-11  Jonathan Wakely  <jwakely (a] redhat.com>
   1605 
   1606 	PR libstdc++/89760
   1607 	* testsuite/experimental/net/execution_context/make_service.cc:
   1608 	Add dg-require-gthreads.
   1609 	* testsuite/experimental/net/executor/1.cc: Likewise.
   1610 	* testsuite/experimental/net/headers.cc: Likewise.
   1611 	* testsuite/experimental/net/internet/address/v4/comparisons.cc:
   1612 	Likewise.
   1613 	* testsuite/experimental/net/internet/address/v4/cons.cc:
   1614 	Likewise.
   1615 	* testsuite/experimental/net/internet/address/v4/creation.cc:
   1616 	Likewise.
   1617 	* testsuite/experimental/net/internet/address/v4/members.cc:
   1618 	Likewise.
   1619 	* testsuite/experimental/net/internet/resolver/base.cc:
   1620 	Likewise.
   1621 	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
   1622 	Likewise.
   1623 	* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
   1624 	Likewise.
   1625 	* testsuite/experimental/net/socket/basic_socket.cc: Likewise.
   1626 	* testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
   1627 	* testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
   1628 	* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
   1629 
   1630 2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1631 
   1632 	Backported from master:
   1633 	2020-08-10  Jonathan Wakely  <jwakely (a] redhat.com>
   1634 
   1635 	PR libstdc++/95749
   1636 	* src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
   1637 	(stat_type): Change to __stat64.
   1638 	(stat): Use _wstat64.
   1639 
   1640 2020-08-07  Jonathan Wakely  <jwakely (a] redhat.com>
   1641 
   1642 	Backported from master:
   1643 	2020-08-07  Jonathan Wakely  <jwakely (a] redhat.com>
   1644 
   1645 	PR libstdc++/96303
   1646 	* include/debug/bitset (bitset::operator==): Call _M_base() on
   1647 	right operand.
   1648 	(bitset::operator!=): Likewise, but don't define it at all when
   1649 	default comparisons are supported by the compiler.
   1650 	* testsuite/23_containers/bitset/operations/96303.cc: New test.
   1651 
   1652 2020-08-06  Jonathan Wakely  <jwakely (a] redhat.com>
   1653 
   1654 	Backported from master:
   1655 	2020-08-06  Jonathan Wakely  <jwakely (a] redhat.com>
   1656 
   1657 	PR libstdc++/96484
   1658 	* src/c++17/fs_ops.cc (fs::read_symlink): Return an error
   1659 	immediately for non-symlinks.
   1660 	* src/filesystem/ops.cc (fs::read_symlink): Likewise.
   1661 
   1662 2020-07-23  Release Manager
   1663 
   1664 	* GCC 10.2.0 released.
   1665 
   1666 2020-07-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1667 
   1668 	Backported from master:
   1669 	2020-06-08  Jonathan Wakely  <jwakely (a] redhat.com>
   1670 
   1671 	* include/bits/unique_ptr.h (operator<<): Define for C++20.
   1672 	* testsuite/20_util/unique_ptr/io/lwg2948.cc: New test.
   1673 	* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error
   1674 	line number.
   1675 	* testsuite/20_util/default_delete/void_neg.cc: Likewise.
   1676 
   1677 2020-07-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1678 
   1679 	Backported from master:
   1680 	2020-05-27  Jonathan Wakely  <jwakely (a] redhat.com>
   1681 
   1682 	PR libstdc++/95322
   1683 	* include/std/ranges (transform_view::_Sentinel): Allow hidden
   1684 	friends to work with _Iterator<true> and _Iterator<false>.
   1685 	(join_view::_Sentinel): Likewise.
   1686 	* testsuite/std/ranges/adaptors/95322.cc: New test.
   1687 
   1688 2020-07-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1689 
   1690 	Backported from master:
   1691 	2020-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1692 
   1693 	PR libstdc++/94936
   1694 	* src/c++17/memory_resource.cc (synchronized_pool_resource::_TPools):
   1695 	Add comment about single-threaded behaviour.
   1696 	(synchronized_pool_resource::_TPools::move_nonempty_chunks()): Hoist
   1697 	class member access out of loop.
   1698 	(synchronized_pool_resource::synchronized_pool_resource())
   1699 	(synchronized_pool_resource::~synchronized_pool_resource())
   1700 	(synchronized_pool_resource::release()): Check __gthread_active_p
   1701 	before creating and/or deleting the thread-specific data key.
   1702 	(synchronized_pool_resource::_M_thread_specific_pools()): Adjust
   1703 	assertions.
   1704 	(synchronized_pool_resource::do_allocate(size_t, size_t)): Add fast
   1705 	path for single-threaded case.
   1706 	(synchronized_pool_resource::do_deallocate(void*, size_t, size_t)):
   1707 	Likewise. Return if unable to find a pool that owns the allocation.
   1708 	* testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
   1709 	New test.
   1710 	* testsuite/20_util/synchronized_pool_resource/cons_single.cc: New
   1711 	test.
   1712 	* testsuite/20_util/synchronized_pool_resource/release_single.cc: New
   1713 	test.
   1714 
   1715 2020-07-09  Jonathan Wakely  <jwakely (a] redhat.com>
   1716 
   1717 	Backported from master:
   1718 	2020-05-19  Jonathan Wakely  <jwakely (a] redhat.com>
   1719 
   1720 	PR libstdc++/94087
   1721 	* src/c++11/random.cc (__x86_rdseed): Allow fallback function to be
   1722 	passed in.
   1723 	(__x86_rdseed_rdrand): New function that uses rdseed with rdrand
   1724 	fallback.
   1725 	(random_device::_M_init): Use __x86_rdseed_rdrand when both
   1726 	instructions are available.
   1727 	* testsuite/26_numerics/random/random_device/94087.cc: New test.
   1728 
   1729 2020-07-02  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   1730 
   1731 	Backported from master:
   1732 	2020-07-02  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   1733 
   1734 	PR libstdc++/91807
   1735 	* include/std/variant
   1736 	(_Copy_assign_base::operator=(const _Copy_assign_base&):
   1737 	Do the move-assignment from a temporary so that the temporary
   1738 	is constructed with an explicit index.
   1739 	* testsuite/20_util/variant/91807.cc: New.
   1740 
   1741 2020-07-02  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   1742 
   1743 	Backported from master:
   1744 	2020-07-02  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   1745 
   1746 	PR libstdc++/91153
   1747 	PR target/93224
   1748 	* testsuite/29_atomics/atomic_float/1.cc: Use different values
   1749 	for tests.
   1750 	* testsuite/29_atomics/atomic_ref/float.cc: Likewise.
   1751 
   1752 2020-07-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1753 
   1754 	Backported from master:
   1755 	2020-06-16  Jonathan Wakely  <jwakely (a] redhat.com>
   1756 
   1757 	PR libstdc++/95282
   1758 	* include/bits/atomic_base.h (__atomic_impl::load): Add
   1759 	const-qualifier to parameter so that _Tp is deduced as the
   1760 	non-const type, and use _Val to get the unqualified type.
   1761 	(__atomic_impl::exchange): Use the _Val alias to remove
   1762 	volatile from the reinterpret_cast result type.
   1763 	* testsuite/29_atomics/atomic_float/95282.cc: New test.
   1764 
   1765 2020-07-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1766 
   1767 	Backported from master:
   1768 	2020-07-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1769 
   1770 	PR libstdc++/94627
   1771 	* include/bits/regex.h (operator==, operator!=): Remove noexcept
   1772 	equality comparisons for match_results.
   1773 	* testsuite/28_regex/match_results/94627.cc: New test.
   1774 
   1775 2020-06-29  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   1776 
   1777 	Backported from master:
   1778 	2020-06-28  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   1779 
   1780 	PR libstdc++/95915
   1781 	* include/std/variant (_Uninitialized):
   1782 	Adjust the condition and the comment.
   1783 	* testsuite/20_util/variant/95915.cc: New.
   1784 	* testsuite/20_util/variant/compile.cc: Add new test.
   1785 
   1786 2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   1787 
   1788 	Backported from master:
   1789 	2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   1790 
   1791 	* include/std/charconv (__from_chars_binary): Ignore leading zeros.
   1792 	* testsuite/20_util/from_chars/1.cc: Check "0x1" for all bases,
   1793 	not just 10 and 16.
   1794 	* testsuite/20_util/from_chars/3.cc: New test.
   1795 
   1796 2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   1797 
   1798 	Backported from master:
   1799 	2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   1800 
   1801 	* include/bits/stl_algobase.h (__find_if): Add FALLTHRU markers.
   1802 	* include/std/charconv (__detail::__to_chars): Avoid
   1803 	-Wsign-compare warning.
   1804 
   1805 2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   1806 
   1807 	Backported from master:
   1808 	2020-06-24  Jonathan Wakely  <jwakely (a] redhat.com>
   1809 
   1810 	PR libstdc++/95851
   1811 	* include/std/charconv (__to_chars_i): Check for zero-sized
   1812 	buffer unconditionally.
   1813 	* testsuite/20_util/to_chars/95851.cc: New test.
   1814 
   1815 2020-06-22  Jason Merrill  <jason (a] redhat.com>
   1816 
   1817 	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
   1818 	Remove greedy_ops tests.
   1819 	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
   1820 	Remove greedy_ops tests.
   1821 
   1822 2020-06-11  Patrick Palka  <ppalka (a] redhat.com>
   1823 
   1824 	PR libstdc++/95578
   1825 	* include/bits/ranges_algo.h (__lexicographical_compare_fn):
   1826 	Also check that the iterator and sentinel have the same type before
   1827 	applying the unwrapping optimization for __normal_iterator.
   1828 	Split the check into two, one for the first iterator/sentinel
   1829 	pair and another for second iterator/sentinel pair.  Remove uses
   1830 	of __niter_base, and remove uses of std::move on a
   1831 	__normal_iterator.
   1832 	* include/bits/ranges_algobase.h (__equal_fn): Likewise.
   1833 	(__copy_or_move): Likewise.  Perform similar adjustments for
   1834 	the reverse_iterator and move_iterator optimizations.  Inline
   1835 	the checks into the if-constexprs, and use using-declarations to
   1836 	make them less visually noisy.  Remove uses of __niter_wrap.
   1837 	(__copy_or_move_backward): Likewise.
   1838 	* testsuite/25_algorithms/copy/95578.cc: New test.
   1839 	* testsuite/25_algorithms/copy_backward/95578.cc: New test.
   1840 	* testsuite/25_algorithms/equal/95578.cc: New test.
   1841 	* testsuite/25_algorithms/lexicographical_compare/95578.cc: New test.
   1842 	* testsuite/25_algorithms/move/95578.cc: New test.
   1843 	* testsuite/25_algorithms/move_backward/95578.cc: New test.
   1844 
   1845 2020-05-28  Patrick Palka  <ppalka (a] redhat.com>
   1846 
   1847 	PR libstdc++/95322
   1848 	* include/bits/stl_iterator.h (__detail::_Common_iter_proxy):
   1849 	Remove and instead define it ...
   1850 	(common_iterator::_Proxy): ... here.
   1851 	(common_iterator::operator->): Use it.
   1852 	* testsuite/24_iterators/common_iterator/2.cc: New test.
   1853 	* testsuite/std/ranges/adaptors/95322.cc: New test.
   1854 
   1855 2020-05-26  Alexandre Oliva  <oliva (a] adacore.com>
   1856 
   1857 	PR libstdc++/77691
   1858 	* include/experimental/memory_resource
   1859 	(__resource_adaptor_imp::do_allocate): Handle max_align_t on
   1860 	x86-vxworks as on x86-solaris.
   1861 	(__resource_adaptor_imp::do_deallocate): Likewise.
   1862 	* testsuite/experimental/memory_resource/new_delete_resource.cc:
   1863 	Drop xfail.
   1864 	(BAD_MAX_ALIGN_T): Define on x86-vxworks as on x86-solaris.
   1865 	(test03): Drop max-align test for char-aligned alloc.
   1866 
   1867 2020-05-23  Jonathan Wakely  <jwakely (a] redhat.com>
   1868 
   1869 	Backport from mainline
   1870 	2020-05-23  Jonathan Wakely  <jwakely (a] redhat.com>
   1871 
   1872 	* include/bits/fs_path.h (__detail::_S_range_begin)
   1873 	(__detail::_S_range_end): Remove unintentional static specifiers.
   1874 	* include/experimental/bits/fs_path.h (__detail::_S_range_begin)
   1875 	(__detail::_S_range_end): Likewise.
   1876 
   1877 2020-05-23  Jonathan Wakely  <jwakely (a] redhat.com>
   1878 
   1879 	Backport from mainline
   1880 	2020-05-23  Jonathan Wakely  <jwakely (a] redhat.com>
   1881 
   1882 	PR libstdc++/95289
   1883 	* include/debug/helper_functions.h (__get_distance): Only declare
   1884 	as a constexpr function for C++14 and up.
   1885 	* testsuite/25_algorithms/copy/debug/95289.cc: New test.
   1886 
   1887 2020-05-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1888 
   1889 	Backport from mainline
   1890 	2020-05-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1891 
   1892 	* include/experimental/executor (use_future_t::use_future_t()): Fix
   1893 	incorrect noexcept-specifier.
   1894 	* include/experimental/internet (basic_resolver_results): Adjust
   1895 	whitespace.
   1896 	* include/experimental/socket (__basic_socket_impl::release): Add
   1897 	member function.
   1898 	(basic_socket(io_context&, const endpoint_type&)): Fix argument to
   1899 	target constructor.
   1900 	(basic_socket::release(), basic_socket::release(error_code&)): Add
   1901 	missing member functions.
   1902 	(basic_socket::is_open()): Add nodiscard attribute.
   1903 	(basic_socket::close(error_code&)): Pass argument to base function.
   1904 	(basic_socket_acceptor::release())
   1905 	(basic_socket_acceptor::release(error_code&)): Add missing member
   1906 	functions.
   1907 	(basic_socket_acceptor::is_open()): Add nodiscard attribute.
   1908 	(basic_socket_streambuf::error()): Add noexcept.
   1909 	(basic_socket_iostream::error()): Likewise.
   1910 	* testsuite/experimental/net/socket/basic_socket.cc: New test.
   1911 
   1912 2020-05-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1913 
   1914 	Backport from mainline
   1915 	2020-05-21  Jonathan Wakely  <jwakely (a] redhat.com>
   1916 
   1917 	PR libstdc++/93983
   1918 	* include/bits/iterator_concepts.h (__detail::__cpp17_iterator):
   1919 	Reorder constraints to avoid recursion when constructors use
   1920 	iterator_traits (LWG 3420).
   1921 	* testsuite/24_iterators/customization_points/lwg3420.cc: New test.
   1922 
   1923 2020-05-12  Jonathan Wakely  <jwakely (a] redhat.com>
   1924 
   1925 	Backport from mainline
   1926 	2020-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1927 
   1928 	PR libstdc++/94906
   1929 	* src/c++17/memory_resource.cc
   1930 	(monotonic_buffer_resource::_Chunk::release): Use size_t for shift
   1931 	operands.
   1932 
   1933 	Backport from mainline
   1934 	2020-05-03  Jonathan Wakely  <jwakely (a] redhat.com>
   1935 
   1936 	PR libstdc++/94933
   1937 	* include/bits/stl_algobase.h (__fill_a1): Make overload for byte types
   1938 	usable in constant expressions.
   1939 	* testsuite/25_algorithms/fill_n/constexpr.cc: Test with bytes and
   1940 	non-scalars.
   1941 
   1942 2020-05-07  Jonathan Wakely  <jwakely (a] redhat.com>
   1943 
   1944 	Backport from mainline
   1945 	2020-05-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1946 		    Patrick Palka  <ppalka (a] redhat.com>
   1947 
   1948 	PR libstdc++/92894
   1949 	* include/bits/iterator_concepts.h (ranges::__cust_imove::_IMove):
   1950 	Add trait to determine return type and an alias for it.
   1951 	(ranges::__cust_imove::_IMove::operator()): Use __result instead of
   1952 	deduced return type.
   1953 	* testsuite/24_iterators/customization_points/92894.cc: New test.
   1954 	* testsuite/24_iterators/indirect_callable/92894.cc: New test.
   1955 
   1956 2020-05-07  Release Manager
   1957 
   1958 	* GCC 10.1.0 released.
   1959 
   1960 2020-05-07  Eric Botcazou  <ebotcazou (a] adacore.com>
   1961 
   1962 	* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Update.
   1963 	* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
   1964 
   1965 2020-05-06  H.J. Lu  <hongjiu.lu (a] intel.com>
   1966 
   1967 	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
   1968 
   1969 2020-05-06  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   1970 
   1971 	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
   1972 	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
   1973 	Likewise.
   1974 	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
   1975 	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
   1976 	Likewise.
   1977 
   1978 2020-05-06  Jonathan Wakely  <jwakely (a] redhat.com>
   1979 
   1980 	* doc/xml/manual/abi.xml (abi.versioning.history): Document library
   1981 	versions for GCC 9.[123] and 10.1 releases.
   1982 	* doc/html/*: Regenerate.
   1983 
   1984 2020-05-06  Jakub Jelinek  <jakub (a] redhat.com>
   1985 
   1986 	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
   1987 	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
   1988 	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
   1989 	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
   1990 	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
   1991 	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
   1992 	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
   1993 
   1994 2020-05-04  Jonathan Wakely  <jwakely (a] redhat.com>
   1995 
   1996 	* doc/xml/faq.xml: Use working link for SGI STL FAQ.
   1997 	* doc/html/*: Regenerate.
   1998 
   1999 2020-05-01  Jonathan Wakely  <jwakely (a] redhat.com>
   2000 
   2001 	Backport from mainline
   2002 	2020-05-01  Jonathan Wakely  <jwakely (a] redhat.com>
   2003 
   2004 	PR libstdc++/94901
   2005 	* include/std/type_traits (__is_complete_or_unbounded): Replace
   2006 	BADNAME _T with _Tp.
   2007 	* testsuite/17_intro/badnames.cc: New test.
   2008 
   2009 2020-04-30  Jonathan Wakely  <jwakely (a] redhat.com>
   2010 
   2011 	PR libstdc++/89510
   2012 	* include/bits/alloc_traits.h (allocator_traits::_S_construct)
   2013 	(allocator_traits::_S_destroy)
   2014 	(allocator_traits<allocator<T>>::construct): Use traits in
   2015 	noexcept-specifiers.
   2016 	* include/bits/allocator.h (allocator<void>::construct)
   2017 	(allocator<void>::destroy): Likewise.
   2018 	* include/ext/malloc_allocator.h (malloc_allocator::construct)
   2019 	(malloc_allocator::destroy): Likewise.
   2020 	* include/ext/new_allocator.h (new_allocator::construct)
   2021 	(new_allocator::destroy): Likewise.
   2022 	* testsuite/20_util/allocator/89510.cc: New test.
   2023 	* testsuite/ext/malloc_allocator/89510.cc: New test.
   2024 	* testsuite/ext/new_allocator/89510.cc: New test.
   2025 
   2026 2020-04-29  Jonathan Wakely  <jwakely (a] redhat.com>
   2027 
   2028 	PR libstdc++/94854
   2029 	* include/bits/basic_string.tcc: Update comment about explicit
   2030 	instantiations.
   2031 
   2032 2020-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2033 
   2034 	PR libstdc++/91480
   2035 	* include/bits/allocator.h (__cpp_lib_allocator_is_always_equal):
   2036 	Remove non-standard macro.
   2037 	* include/bits/stl_iterator.h (__cpp_lib_constexpr_iterator): Define
   2038 	to indicate P1032R1 support.
   2039 	* include/bits/stl_pair.h (__cpp_lib_constexpr_utility): Likewise.
   2040 	* include/std/string_view (__cpp_lib_constexpr_string_view): Likewise.
   2041 	* include/std/tuple (__cpp_lib_constexpr_tuple): Likewise.
   2042 	* include/std/version (__cpp_lib_allocator_is_always_equal): Remove.
   2043 	(__cpp_lib_constexpr_iterator, __cpp_lib_constexpr_string_view)
   2044 	(__cpp_lib_constexpr_tuple, __cpp_lib_constexpr_utility): Define.
   2045 	* testsuite/20_util/function_objects/constexpr_searcher.cc: Check
   2046 	feature test macro.
   2047 	* testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: Likewise.
   2048 	* testsuite/21_strings/basic_string_view/operations/copy/char/
   2049 	constexpr.cc: Likewise.
   2050 	* testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
   2051 
   2052 	PR libstdc++/94831
   2053 	* include/bits/alloc_traits.h (_S_construct): Restore placement
   2054 	new-expression for C++11/14/17 and call std::construct_at directly
   2055 	for C++20.
   2056 	* include/bits/stl_construct.h (_Construct): Revert to non-constexpr
   2057 	function returning void.
   2058 	* testsuite/20_util/specialized_algorithms/
   2059 	uninitialized_value_construct/94831.cc: New test.
   2060 	* testsuite/23_containers/vector/cons/94831.cc: New test.
   2061 
   2062 2020-04-28  Patrick Palka  <ppalka (a] redhat.com>
   2063 
   2064 	LWG 3433 subrange::advance(n) has UB when n < 0
   2065 	* include/std/ranges (subrange::prev): Fix typo.
   2066 	(subrange::advance): Handle a negative argument as per the proposed
   2067 	resolution of LWG 3433.
   2068 	* testsuite/std/ranges/subrange/lwg3433.cc: New test.
   2069 
   2070 2020-04-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2071 	    Iain Sandoe  <iain (a] sandoe.co.uk>
   2072 
   2073 	PR c++/94759
   2074 	* include/std/coroutine: Implement handing for non-
   2075 	class coroutine return types.
   2076 
   2077 2020-04-24  Jonathan Wakely  <jwakely (a] redhat.com>
   2078 
   2079 	* include/experimental/executor (service_already_exists): Make default
   2080 	constructor public (LWG 3414).
   2081 	* testsuite/experimental/net/execution_context/make_service.cc: Check
   2082 	the service_already_exists can be default constructed.
   2083 
   2084 2020-04-24  Kamlesh Kumar  <kamleshbhalui (a] gmail.com>
   2085 	    Jonathan Wakely  <jwakely (a] redhat.com>
   2086 
   2087 	PR libstdc++/90415
   2088 	PR libstdc++/92156
   2089 	* include/std/any (any): Rename template parameters for consistency
   2090 	with the standard.
   2091 	(any::_Decay): Rename to _Decay_if_not_any.
   2092 	(any::any(T&&):: Remove is_constructible from constraints. Remove
   2093 	non-standard overload.
   2094 	(any::any(in_place_type_t<T>, Args&&...))
   2095 	(any::any(in_place_type_t<T>, initializer_list<U>, Args&&...))
   2096 	(any::emplace(Args&&...))
   2097 	(any::emplace(initializer_list<U>, Args&&...)):
   2098 	Use decay_t instead of _Decay.
   2099 	* testsuite/20_util/any/cons/90415.cc: New test.
   2100 	* testsuite/20_util/any/cons/92156.cc: New Test.
   2101 	* testsuite/20_util/any/misc/any_cast_neg.cc: Make dg-error directives
   2102 	more robust.
   2103 	* testsuite/20_util/any/modifiers/92156.cc: New test.
   2104 
   2105 2020-04-23  Jonathan Wakely  <jwakely (a] redhat.com>
   2106 
   2107 	* doc/xml/manual/status_cxx2020.xml: Update C++20 status table.
   2108 	* doc/html/*: Regenerate.
   2109 
   2110 	* include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Revert
   2111 	value for C++17 to 201803L because P0858R0 is supported for C++17.
   2112 	* include/std/version (__cpp_lib_array_constexpr): Likewise.
   2113 	* testsuite/23_containers/array/element_access/constexpr_c++17.cc:
   2114 	Check for value corresponding to P0031R0 features being tested.
   2115 	* testsuite/23_containers/array/requirements/constexpr_iter.cc:
   2116 	Check for value corresponding to P0858R0 features being tested.
   2117 
   2118 	* include/std/version (__cpp_lib_three_way_comparison): Define for
   2119 	freestanding builds.
   2120 
   2121 2020-04-23  Thomas Rodgers  <rodgert (a] appliantology.com>
   2122 
   2123 	* include/experimental/net/executor (system_context): Mark
   2124 	system_context::system_context() = delete.
   2125 	* testsuite/experimental/net/executor/1.cc: Add new
   2126 	test to check system_context is not default constructible.
   2127 
   2128 2020-04-23  Iain Sandoe  <iain (a] sandoe.co.uk>
   2129 
   2130 	* include/std/coroutine: Update the inline namespace to __n4861.
   2131 	Add the __cpp_lib_coroutine define, set to 201902L.
   2132 	* include/std/version: Add __cpp_lib_coroutine, set to 201902L.
   2133 
   2134 2020-04-22  Jonathan Wakely  <jwakely (a] redhat.com>
   2135 
   2136 	* include/std/execution (__cpp_lib_execution): Define to indicate
   2137 	support for P0024R2 and P1001R2.
   2138 	* include/std/version (__cpp_lib_execution): Define.
   2139 	* testsuite/25_algorithms/pstl/feature_test.cc: Only test macro
   2140 	defined by <algorithm>, move other tests to new tests ...
   2141 	* testsuite/25_algorithms/pstl/feature_test-2.cc: New test.
   2142 	* testsuite/25_algorithms/pstl/feature_test-3.cc: New test.
   2143 	* testsuite/25_algorithms/pstl/feature_test-4.cc: New test.
   2144 	* testsuite/25_algorithms/pstl/feature_test-5.cc: New test.
   2145 
   2146 	* include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Define
   2147 	different values for C++17 and C++20, to indicate different feature
   2148 	sets. Update value for C++20 to indicate P1032R1 support.
   2149 	* include/std/version (__cpp_lib_array_constexpr): Likewise.
   2150 	* testsuite/23_containers/array/comparison_operators/constexpr.cc:
   2151 	Check feature test macro.
   2152 	* testsuite/23_containers/array/element_access/constexpr_c++17.cc:
   2153 	New test.
   2154 	* testsuite/23_containers/array/requirements/constexpr_fill.cc: Check
   2155 	feature test macro.
   2156 	* testsuite/23_containers/array/requirements/constexpr_iter.cc: Test
   2157 	in C++17 mode and check feature test macro.
   2158 
   2159 	* include/std/utility (__cpp_lib_constexpr_algorithms): Do not define
   2160 	here.
   2161 	* testsuite/20_util/exchange/constexpr.cc: Do not expect macro to be
   2162 	defined by <utility>.
   2163 
   2164 	* include/std/functional (__cpp_lib_concepts): Update macro value to
   2165 	indicate P1964R2 support.
   2166 	* include/std/version (__cpp_lib_concepts): Likewise.
   2167 	* testsuite/std/concepts/1.cc: Adjust expected value.
   2168 	* testsuite/std/concepts/2.cc: Likewise.
   2169 
   2170 	* include/std/functional (__cpp_lib_constexpr_invoke): Rename to
   2171 	__cpp_lib_constexpr_functional.
   2172 	* include/std/version (__cpp_lib_constexpr_invoke): Likewise.
   2173 	* testsuite/20_util/function_objects/invoke/constexpr.cc: Adjust.
   2174 
   2175 	* include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define to
   2176 	indicate P1006R1 support.
   2177 	(__cpp_lib_to_address): Define to indicate P0653R2 support.
   2178 	* include/bits/range_access.h (__cpp_lib_ssize): Define to indicate
   2179 	P1227R2 support.
   2180 	* include/bits/ranges_algo.h (__cpp_lib_shift): Define to indicate
   2181 	P0769R2 support.
   2182 	* include/std/atomic (__cpp_lib_atomic_float): Define to indicate
   2183 	P0020R6 support.
   2184 	* include/std/memory (__cpp_lib_assume_aligned): Define to indicate
   2185 	P1007R3 support.
   2186 	* include/std/memory_resource (__cpp_lib_polymorphic_allocator):
   2187 	Define to indicate P0339R6 support.
   2188 	* include/std/string_view (__cpp_lib_starts_ends_with): Define to
   2189 	indicate P0457R2 support.
   2190 	* include/std/type_traits (__cpp_lib_is_nothrow_convertible): Define
   2191 	to indicate P0758R1 support.
   2192 	(__cpp_lib_remove_cvref): Define to indicate P0550R2 support.
   2193 	(__cpp_lib_type_identity): Define to indicate P0887R1 support.
   2194 	* include/std/version (__cpp_lib_atomic_float)
   2195 	(__cpp_lib_is_nothrow_convertible, __cpp_lib_remove_cvref)
   2196 	(__cpp_lib_type_identity, __cpp_lib_assume_aligned)
   2197 	(__cpp_lib_constexpr_memory, __cpp_lib_polymorphic_allocator)
   2198 	(__cpp_lib_shift, __cpp_lib_ssize, __cpp_lib_starts_ends_with)
   2199 	(__cpp_lib_to_address): Define.
   2200 	* testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
   2201 
   2202 	* include/bits/stl_map.h (__cpp_lib_map_insertion): Remove old
   2203 	macro.
   2204 	* include/bits/unordered_map.h (__cpp_lib_unordered_map_insertion):
   2205 	Likewise.
   2206 	* include/std/version (__cpp_lib_map_insertion)
   2207 	(__cpp_lib_unordered_map_insertion): Remove.
   2208 
   2209 	* include/std/condition_variable (__cpp_lib_jthread): Remove
   2210 	redundant definition.
   2211 	* include/std/stop_token (__cpp_lib_jthread): Update macro value to
   2212 	indicate P1869R1 support.
   2213 	* include/std/version (__cpp_lib_jthread): Update value.
   2214 	* testsuite/30_threads/condition_variable_any/stop_token/1.cc: Check
   2215 	for updated macro value.
   2216 	* testsuite/30_threads/condition_variable_any/stop_token/2.cc:
   2217 	Likewise.
   2218 	* testsuite/30_threads/jthread/1.cc: Likewise.
   2219 	* testsuite/30_threads/jthread/2.cc: Likewise.
   2220 	* testsuite/30_threads/stop_token/1.cc: Likewise.
   2221 	* testsuite/30_threads/stop_token/2.cc: Likewise.
   2222 
   2223 	* testsuite/21_strings/basic_string/erasure.cc: Check for
   2224 	__cpp_lib_erase_if macro.
   2225 	* testsuite/23_containers/deque/erasure.cc: Add header name to #error
   2226 	messages.
   2227 	* testsuite/23_containers/forward_list/erasure.cc: Likewise.
   2228 	* testsuite/23_containers/list/erasure.cc: Likewise.
   2229 	* testsuite/23_containers/map/erasure.cc: Likewise.
   2230 	* testsuite/23_containers/set/erasure.cc: Likewise.
   2231 	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
   2232 	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
   2233 	* testsuite/23_containers/vector/erasure.cc: Likewise.
   2234 
   2235 2020-04-21  Jonathan Wakely  <jwakely (a] redhat.com>
   2236 
   2237 	* include/bits/stl_iterator.h (__normal_iterator): Use synth-three-way
   2238 	to define operator<=>.
   2239 	* testsuite/24_iterators/normal_iterator/cmp_c++20.cc: New test.
   2240 
   2241 	* doc/Makefile.am (xml_sources_manual): Add missing XML files.
   2242 	* doc/Makefile.in: Regenerate.
   2243 	* doc/xml/manual/status_cxx1998.xml: Refer to "this section" instead
   2244 	of "this page".
   2245 	* doc/xml/manual/status_cxx2011.xml: Formatting and other corrections
   2246 	to the C++11 status table.
   2247 	* doc/xml/manual/status_cxx2014.xml: Replace list of C++14 feature
   2248 	proposals with table matching contents of the C++14 standard.
   2249 	* doc/xml/manual/status_cxx2017.xml: Add table matching contents of
   2250 	the C++17 standard.
   2251 	* doc/html/*: Regenerate.
   2252 
   2253 	PR c++/94149
   2254 	* include/std/type_traits (__is_nt_constructible_impl): Add partial
   2255 	specializations for bounded arrays with non-empty initializers.
   2256 	* testsuite/20_util/is_nothrow_constructible/value_c++20.cc: New test.
   2257 
   2258 2020-04-20  Thomas Rodgers  <trodgers (a] redhat.com>
   2259 
   2260 	* testsuite/lib/libstdc++.exp: Add additional_flags=
   2261 	-DTBB_SUPRESS_DEPRECATED_MESSAGES=1 to suppress warnings when
   2262 	compiling with a newer Thread Building Blocks.
   2263 
   2264 2020-04-20  Jonathan Wakely  <jwakely (a] redhat.com>
   2265 
   2266 	* testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test.
   2267 
   2268 	* testsuite/20_util/is_constructible/51185.cc: Make test class a
   2269 	non-aggregate so that the test verifies the same thing in all -std
   2270 	modes.
   2271 	* testsuite/20_util/is_constructible/value-2.cc: Adjust expected
   2272 	results for some types when paren-init for aggregates is supported.
   2273 
   2274 	* include/std/version (__cpp_lib_three_way_comparison): Update value.
   2275 	* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
   2276 	(__detail::__synth3way): Add noexcept-specifier.
   2277 
   2278 	* include/bits/stl_map.h (map): Define operator<=> and remove
   2279 	operator< for C++20.
   2280 	* include/bits/stl_multimap.h (multimap): Likewise.
   2281 	* include/bits/stl_multiset.h (multiset): Likewise.
   2282 	* include/bits/stl_set.h (set): Likewise.
   2283 	* include/bits/stl_tree.h (_Rb_tree): Likewise.
   2284 	(_Rb_tree_iterator, _Rb_tree_const_iterator): Remove redundant
   2285 	operator!= for C++20.
   2286 	* include/debug/map.h (__gnu_debug::map): Define operator<=> for C++20.
   2287 	* include/debug/multimap.h (__gnu_debug::multimap): Likewise.
   2288 	* include/debug/multiset.h (__gnu_debug::multiset): Likewise.
   2289 	* include/debug/set.h (__gnu_debug::set): Likewise.
   2290 	* testsuite/23_containers/map/operators/cmp_c++20.cc: New test.
   2291 	* testsuite/23_containers/multimap/operators/cmp_c++20.cc: New test.
   2292 	* testsuite/23_containers/multiset/operators/cmp_c++20.cc: New test.
   2293 	* testsuite/23_containers/set/operators/cmp_c++20.cc: New test.
   2294 
   2295 2020-04-20  Matthias Kretz  <kretz (a] kde.org>
   2296 
   2297 	* testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose.
   2298 
   2299 2020-04-19  Jonathan Wakely  <jwakely (a] redhat.com>
   2300 
   2301 	* include/bits/stl_queue.h (queue): Define operator<=> for C++20.
   2302 	* include/bits/stl_stack.h (stack): Likewise.
   2303 	* testsuite/23_containers/queue/cmp_c++20.cc: New test.
   2304 	* testsuite/23_containers/stack/cmp_c++20.cc: New test.
   2305 
   2306 	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
   2307 	Remove redundant operator!= for C++20.
   2308 	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
   2309 	Likewise.
   2310 	* include/debug/unordered_map (unordered_map, unordered_multimap):
   2311 	Likewise.
   2312 	* include/debug/unordered_set (unordered_set, unordered_multiset):
   2313 	Likewise.
   2314 
   2315 	PR other/94629
   2316 	* include/debug/formatter.h (_Error_formatter::_Parameter): Fix
   2317 	redundant assignment in constructor.
   2318 
   2319 2020-04-18  Jonathan Wakely  <jwakely (a] redhat.com>
   2320 
   2321 	* include/std/chrono (duration, time_point): Define operator<=> and
   2322 	remove redundant operator!= for C++20.
   2323 	* testsuite/20_util/duration/comparison_operators/three_way.cc: New
   2324 	test.
   2325 	* testsuite/20_util/time_point/comparison_operators/three_way.cc: New
   2326 	test.
   2327 
   2328 	* testsuite/util/native_type/native_priority_queue.hpp: Use
   2329 	allocator_traits to rebind allocator.
   2330 
   2331 2020-04-17  Jonathan Wakely  <jwakely (a] redhat.com>
   2332 
   2333 	* include/bits/forward_list.h (forward_list): Define operator<=> and
   2334 	remove redundant comparison operators for C++20.
   2335 	* include/bits/stl_bvector.h (vector<bool, Alloc>): Likewise.
   2336 	* include/bits/stl_deque.h (deque): Likewise.
   2337 	* include/bits/stl_iterator.h (__normal_iterator): Likewise.
   2338 	* include/bits/stl_list.h (list): Likewise.
   2339 	* include/bits/stl_vector.h (vector): Likewise.
   2340 	* include/debug/deque (__gnu_debug::deque): Likewise.
   2341 	* include/debug/forward_list (__gnu_debug::forward_list): Likewise.
   2342 	* include/debug/list (__gnu_debug::list): Likewise.
   2343 	* include/debug/safe_iterator.h (__gnu_debug::_Safe_iterator):
   2344 	Likewise.
   2345 	* include/debug/vector (__gnu_debug::vector): Likewise.
   2346 	* include/ext/pointer.h (__gnu_cxx::_Pointer_adapter): Define
   2347 	operator<=> for C++20.
   2348 	* testsuite/23_containers/deque/operators/cmp_c++20.cc: New test.
   2349 	* testsuite/23_containers/forward_list/cmp_c++20.cc: New test.
   2350 	* testsuite/23_containers/list/cmp_c++20.cc: New test.
   2351 	* testsuite/23_containers/vector/bool/cmp_c++20.cc: New test.
   2352 	* testsuite/23_containers/vector/cmp_c++20.cc: New test.
   2353 
   2354 	* include/bits/basic_string.h (basic_string): Define operator<=> and
   2355 	remove redundant comparison operators for C++20.
   2356 	* include/bits/char_traits.h (__gnu_cxx::char_traits, char_traits):
   2357 	Add comparison_category members.
   2358 	(__detail::__char_traits_cmp_cat): New helper to get comparison
   2359 	category from char traits class.
   2360 	* include/bits/regex.h (regex_traits::_RegexMask::operator!=): Do not
   2361 	define for C++20.
   2362 	(sub_match): Define operator<=> and remove redundant comparison
   2363 	operators for C++20.
   2364 	(match_results): Remove redundant operator!= for C++20.
   2365 	* include/std/string_view (basic_string_view): Define operator<=> and
   2366 	remove redundant comparison operators for C++20.
   2367 	* testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc: New
   2368 	test.
   2369 	* testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
   2370 	New test.
   2371 	* testsuite/21_strings/basic_string_view/operations/copy/char/
   2372 	constexpr.cc: Initialize variable.
   2373 	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/
   2374 	constexpr.cc: Likewise.
   2375 	* testsuite/21_strings/basic_string_view/operators/char/2.cc: Add
   2376 	dg-do directive and remove comments showing incorrect signatures.
   2377 	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
   2378 	Likewise.
   2379 	* testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
   2380 	New test.
   2381 	* testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
   2382 	New test.
   2383 	* testsuite/28_regex/sub_match/compare_c++20.cc: New test.
   2384 
   2385 2020-04-16  Jonathan Wakely  <jwakely (a] redhat.com>
   2386 
   2387 	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Remove
   2388 	name of unused parameter.
   2389 
   2390 2020-04-15  Jonathan Wakely  <jwakely (a] redhat.com>
   2391 
   2392 	* include/bits/fs_dir.h (file_status): Define operator== for C++20.
   2393 	(directory_entry): Define operator<=> and remove redundant comparison
   2394 	operators for C++20.
   2395 	* include/bits/fs_fwd.h (space_info): Define operator== for C++20.
   2396 	* include/bits/fs_path.h (path): Define operator<=> and remove
   2397 	redundant comparison operators for C++20.
   2398 	* testsuite/27_io/filesystem/path/compare/compare.cc: Fix comment.
   2399 	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
   2400 	* testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
   2401 	* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
   2402 
   2403 	* include/bits/allocator.h (operator!=): Do not define for C++20.
   2404 	* include/bits/locale_classes.h (operator!=): Likewise.
   2405 	* include/bits/std_function.h (operator==(nullptr_t, const function&))
   2406 	(operator!=(const function&, nullptr_t))
   2407 	(operator!=(nullptr_t, const function&)): Likewise.
   2408 	* include/ext/bitmap_allocator.h (operator!=): Likewise.
   2409 	* include/ext/debug_allocator.h (operator!=): Likewise.
   2410 	* include/ext/extptr_allocator.h (operator!=): Likewise.
   2411 	* include/ext/malloc_allocator.h (operator!=): Likewise.
   2412 	* include/ext/mt_allocator.h (operator!=): Likewise.
   2413 	* include/ext/new_allocator.h (operator!=): Likewise.
   2414 	* include/ext/pool_allocator.h (operator!=): Likewise.
   2415 	* include/ext/throw_allocator.h (operator!=): Likewise.
   2416 	* include/std/bitset (bitset::operator!=): Likewise.
   2417 	* include/std/memory_resource (operator!=): Likewise.
   2418 	* include/std/scoped_allocator (operator!=): Likewise.
   2419 
   2420 	* include/std/typeindex (operator<=>): Define for C++20.
   2421 	* testsuite/20_util/typeindex/comparison_operators_c++20.cc: New test.
   2422 
   2423 2020-04-14  Jonathan Wakely  <jwakely (a] redhat.com>
   2424 
   2425 	* libsupc++/compare (compare_three_way): Fix constraint so that
   2426 	BUILTIN-PTR-THREE-WAY does not require three_way_comparable_with.
   2427 	* testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc:
   2428 	New test.
   2429 
   2430 	PR libstdc++/94562
   2431 	* include/bits/shared_ptr.h (operator<=>): Define for C++20.
   2432 	* include/bits/shared_ptr_base.h (operator<=>): Likewise.
   2433 	* include/bits/unique_ptr.h (operator<=>): Add inline specifier.
   2434 	* testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc: New test.
   2435 	* testsuite/20_util/shared_ptr/comparison/less.cc: Do not expect
   2436 	std::less<A*> to be used when comparing std::shared_ptr<A> objects in
   2437 	C++20.
   2438 
   2439 	PR libstdc++/94565
   2440 	* libsupc++/compare (__unspec): Add noexcept-specifier to constructor.
   2441 	* testsuite/18_support/comparisons/categories/94565.cc: New test.
   2442 
   2443 2020-04-13  Iain Sandoe  <iain (a] sandoe.co.uk>
   2444 
   2445 	* include/std/coroutine: Update coroutines builtin define,
   2446 	per n4861.
   2447 
   2448 2020-04-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2449 
   2450 	* libsupc++/compare (compare_three_way): Fix noexcept-specifier.
   2451 	(strong_order, weak_order, partial_order): Replace uses of <=> with
   2452 	compare_three_way function object (LWG 3324).
   2453 	* testsuite/18_support/comparisons/algorithms/partial_order.cc: Add
   2454 	equality operator so that X satisfies three_way_comparable.
   2455 	* testsuite/18_support/comparisons/algorithms/strong_order.cc:
   2456 	Likewise.
   2457 	* testsuite/18_support/comparisons/algorithms/weak_order.cc: Likewise.
   2458 
   2459 	* include/bits/unique_ptr.h (operator<=>): Define for C++20.
   2460 	* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line.
   2461 	* testsuite/20_util/default_delete/void_neg.cc: Likewise.
   2462 	* testsuite/20_util/unique_ptr/comparison/compare.cc: New test.
   2463 	* testsuite/20_util/unique_ptr/comparison/compare_c++20.cc: New test.
   2464 
   2465 2020-04-08  Jonathan Wakely  <jwakely (a] redhat.com>
   2466 
   2467 	* include/bits/slice_array.h (operator==(const slice&, const slice&)):
   2468 	Define for C++20.
   2469 	* include/std/complex (operator==(const T&, const complex<T>&))
   2470 	(operator!=(const complex<T>&, const complex<T>&))
   2471 	(operator!=(const complex<T>&, const T&))
   2472 	(operator!=(const T&, const complex<T>&)): Do not declare for C++20.
   2473 	* testsuite/26_numerics/slice/compare.cc: New test.
   2474 
   2475 	* include/std/charconv (to_chars_result, from_chars_result): Add
   2476 	defaulted equality comparisons for C++20.
   2477 	* testsuite/20_util/from_chars/compare.cc: New test.
   2478 	* testsuite/20_util/to_chars/compare.cc: New test.
   2479 
   2480 2020-04-07  Jonathan Wakely  <jwakely (a] redhat.com>
   2481 
   2482 	PR libstdc++/94520
   2483 	* include/std/charconv (__integer_to_chars_result_type)
   2484 	(__integer_from_chars_result_type): Use __or_ instead of __or_v_ to
   2485 	allow use in C++14.
   2486 	* testsuite/20_util/from_chars/1.cc: Run test as C++14 and replace
   2487 	use of std::string_view with std::string.
   2488 	* testsuite/20_util/from_chars/2.cc: Likewise.
   2489 	* testsuite/20_util/to_chars/1.cc: Likewise.
   2490 	* testsuite/20_util/to_chars/2.cc: Likewise.
   2491 
   2492 2020-04-06  Jonathan Wakely  <jwakely (a] redhat.com>
   2493 
   2494 	PR libstdc++/94498
   2495 	* include/bits/char_traits.h (__gnu_cxx::char_traits::move): Make it
   2496 	usable in constant expressions for C++20.
   2497 	(__gnu_cxx::char_traits::copy, __gnu_cxx::char_traits::assign): Add
   2498 	_GLIBCXX20_CONSTEXPR.
   2499 	(std::char_traits<char>, std::char_traits<wchar_t>)
   2500 	(std::char_traits<char8_t>): Make move, copy and assign usable in
   2501 	constant expressions for C++20.
   2502 	(std::char_traits<char16_t>, std::char_traits<char32_t>): Make move
   2503 	and copy usable in constant expressions for C++20.
   2504 	* include/std/string_view (basic_string_view::copy): Add
   2505 	_GLIBCXX20_CONSTEXPR.
   2506 	* testsuite/21_strings/basic_string_view/operations/copy/char/
   2507 	constexpr.cc: New test.
   2508 	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/
   2509 	constexpr.cc: New test.
   2510 
   2511 2020-04-05  Gerald Pfeifer  <gerald (a] pfeifer.com>
   2512 
   2513 	* doc/xml/manual/appendix_contributing.xml: Refer to Git
   2514 	documentation instead of Subversion.  Switch to https.
   2515 	* doc/html/manual/appendix_contributing.html: Regenerate.
   2516 
   2517 2020-04-03  Jonathan Wakely  <jwakely (a] redhat.com>
   2518 
   2519 	PR libstdc++/93960
   2520 	* include/bits/ptr_traits.h (__to_address): Add special case for debug
   2521 	iterators, to avoid dereferenceable check.
   2522 	* testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
   2523 	* testsuite/20_util/to_address/debug.cc: New test.
   2524 
   2525 2020-04-01  Andrea Corallo  <andrea.corallo (a] arm.com>
   2526 
   2527 	* testsuite/experimental/net/execution_context/use_service.cc:
   2528 	Require pthread and gthreads.
   2529 
   2530 2020-04-01  Gerald Pfeifer  <gerald (a] pfeifer.com>
   2531 
   2532 	* doc/xml/manual/appendix_free.xml: Move "free books" list from
   2533 	fsf.org to gnu.org.
   2534 	* doc/html/manual/appendix_free.html: Regenerate.
   2535 
   2536 2020-03-31  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   2537 
   2538 	Library-side tests for parenthesized aggregate init
   2539 
   2540 	PR c++/92878
   2541 	PR c++/92947
   2542 
   2543 	* testsuite/20_util/allocator_traits/members/92878_92947.cc: New.
   2544 	* testsuite/20_util/any/assign/92878_92947.cc: Likewise.
   2545 	* testsuite/20_util/any/cons/92878_92947.cc: Likewise.
   2546 	* testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
   2547 	* testsuite/20_util/optional/assignment/92878_92947.cc: Likewise.
   2548 	* testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
   2549 	* testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
   2550 	* testsuite/20_util/shared_ptr/creation/92878_92947.cc: Likewise.
   2551 	* testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
   2552 	Likewise.
   2553 	* testsuite/20_util/unique_ptr/creation/92878_92947.cc: Likewise.
   2554 	* testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
   2555 	* testsuite/20_util/variant/92878_92947.cc: Likewise.
   2556 	* testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
   2557 	Likewise.
   2558 	* testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
   2559 	Likewise.
   2560 	* testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
   2561 	Likewise.
   2562 	* testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
   2563 	Likewise.
   2564 	* testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
   2565 	Likewise.
   2566 	* testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
   2567 	Likewise.
   2568 	* testsuite/23_containers/priority_queue/92878_92947.cc: Likewise.
   2569 	* testsuite/23_containers/queue/92878_92947.cc: Likewise.
   2570 	* testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
   2571 	Likewise.
   2572 	* testsuite/23_containers/stack/92878_92947.cc: Likewise.
   2573 	* testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
   2574 	Likewise.
   2575 	* testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
   2576 	Likewise.
   2577 	* testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
   2578 	Likewise.
   2579 	* testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
   2580 	Likewise.
   2581 	* testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
   2582 	Likewise.
   2583 
   2584 2020-03-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2585 
   2586 	* testsuite/20_util/is_constructible/value-2.cc: Fix test to account
   2587 	for changes due to parenthesized aggregate-initialization in C++20.
   2588 	* testsuite/20_util/time_point/cons/81468.cc: Fix test to not clash
   2589 	with std::chrono::sys_time in C++20.
   2590 
   2591 	* include/bits/stl_iterator.h (reverse_iterator): Use requires-clause
   2592 	to constrain C++20 versions of comparison operators. Fix backwards
   2593 	logic of relational operators.
   2594 	(move_iterator): Use requires-clause to constrain comparison operators
   2595 	in C++20. Do not declare non-standard same-type overloads for C++20.
   2596 	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: Check result
   2597 	of comparisons and check using greedy_ops type.
   2598 	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: Likewise.
   2599 	* testsuite/24_iterators/move_iterator/greedy_ops.cc: Remove redundant
   2600 	main function from compile-only test.
   2601 	* testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Likewise.
   2602 
   2603 2020-03-27  Jonathan Wakely  <jwakely (a] redhat.com>
   2604 
   2605 	* include/bits/range_cmp.h (__cpp_lib_ranges): Define.
   2606 	* include/bits/stl_iterator.h: Check value of __cpp_concepts so that
   2607 	C++20 concepts are required.
   2608 	* include/bits/stl_iterator_base_types.h: Likewise.
   2609 	* include/std/concepts: Likewise.
   2610 	* include/std/version: Likewise.
   2611 	* testsuite/std/ranges/headers/ranges/synopsis.cc: Check feature test
   2612 	macro.
   2613 
   2614 	* include/bits/stl_iterator.h (reverse_iterator::iterator_concept)
   2615 	(reverse_iterator::iterator_category): Define for C++20.
   2616 	(reverse_iterator): Define comparison operators correctly for C++20.
   2617 	(__normal_iterator): Add constraints to comparison operators for C++20.
   2618 	(move_iterator::operator++(int)) [__cpp_lib_concepts]: Define new
   2619 	overload for input iterators.
   2620 	(move_iterator): Add constraints to comparison operators for C++20.
   2621 	Define operator<=> for C++20.
   2622 	* testsuite/24_iterators/move_iterator/input_iterator.cc: New test.
   2623 	* testsuite/24_iterators/move_iterator/move_only.cc: New test.
   2624 	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: New test.
   2625 	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: New test.
   2626 
   2627 	* include/bits/iterator_concepts.h (__detail::__decay_copy)
   2628 	(__detail::__member_begin, __detail::__adl_begin): Move here from
   2629 	<bits/range_access.h>.
   2630 	(__detail::__ranges_begin, __detail::__range_iter_t): Define.
   2631 	* bits/range_access.h (__cust_access::__decay_copy)
   2632 	(__cust_access::__member_begin, __cust_access::__adl_begin): Move to
   2633 	<bits/iterator_concepts.h>.
   2634 	(ranges::iterator_t): Use __detail::__range_iter_t.
   2635 	* include/bits/stl_iterator.h (back_insert_iterator): Simplify
   2636 	conditional compilation. Add _GLIBCXX20_CONSTEXPR to all members.
   2637 	(front_insert_iterator): Likewise.
   2638 	(insert_iterator): Implement changes from P0896R4 for C++20.
   2639 	* testsuite/24_iterators/back_insert_iterator/constexpr.cc: New test.
   2640 	* testsuite/24_iterators/front_insert_iterator/constexpr.cc: New test.
   2641 	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Adjust
   2642 	for inclusion in synopsis_c++20.cc which expects different signatures
   2643 	for some function templates.
   2644 	* testsuite/24_iterators/insert_iterator/constexpr.cc: New test.
   2645 
   2646 	* include/std/type_traits (__is_array_convertible): Move definition
   2647 	to immediately after is_convertible.
   2648 
   2649 2020-03-26  Jonathan Wakely  <jwakely (a] redhat.com>
   2650 
   2651 	* include/std/chrono (chrono::days, chrono::weeks, chrono::years)
   2652 	(chrono::months, chrono::sys_days, chrono::local_t)
   2653 	(chrono::local_time, chrono::local_seconds, chrono::local_days):
   2654 	Define for C++20.
   2655 	(chrono::time_point): Add missing static assert.
   2656 	* testsuite/20_util/time_point/requirements/duration_neg.cc: New test.
   2657 	* testsuite/std/time/clock/file/overview.cc: New test.
   2658 	* testsuite/std/time/clock/file/members.cc: New test.
   2659 	* testsuite/std/time/syn_c++20.cc: New test.
   2660 
   2661 2020-03-25  Mike Crowe  <mac (a] mcrowe.com>
   2662 
   2663 	* testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc: New
   2664 	test.
   2665 	* testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc: New
   2666 	test.
   2667 
   2668 2020-03-25  Jonathan Wakely  <jwakely (a] redhat.com>
   2669 
   2670 	* include/bits/fs_fwd.h (filesystem::__file_clock): Move to ...
   2671 	* include/std/chrono (filesystem::__file_clock): Here.
   2672 	(filesystem::__file_clock::from_sys, filesystem::__file_clock::to_sys):
   2673 	Define public member functions for C++20.
   2674 	(is_clock, is_clock_v): Define traits for C++20.
   2675 	* include/std/condition_variable (condition_variable::wait_until): Add
   2676 	check for valid clock.
   2677 	* include/std/future (_State_baseV2::wait_until): Likewise.
   2678 	* include/std/mutex (__timed_mutex_impl::_M_try_lock_until): Likewise.
   2679 	* include/std/shared_mutex (shared_timed_mutex::try_lock_shared_until):
   2680 	Likewise.
   2681 	* include/std/thread (this_thread::sleep_until): Likewise.
   2682 	* testsuite/30_threads/condition_variable/members/2.cc: Qualify
   2683 	slow_clock with new namespace.
   2684 	* testsuite/30_threads/condition_variable/members/clock_neg.cc: New
   2685 	test.
   2686 	* testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
   2687 	New test.
   2688 	* testsuite/30_threads/future/members/clock_neg.cc: New test.
   2689 	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc:
   2690 	Qualify slow_clock with new namespace.
   2691 	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/
   2692 	clock_neg.cc: New test.
   2693 	* testsuite/30_threads/shared_future/members/clock_neg.cc: New
   2694 	test.
   2695 	* testsuite/30_threads/shared_lock/locking/clock_neg.cc: New test.
   2696 	* testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
   2697 	New test.
   2698 	* testsuite/30_threads/timed_mutex/try_lock_until/3.cc: Qualify
   2699 	slow_clock with new namespace.
   2700 	* testsuite/30_threads/timed_mutex/try_lock_until/4.cc: Likewise.
   2701 	* testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc: New
   2702 	test.
   2703 	* testsuite/30_threads/unique_lock/locking/clock_neg.cc: New test.
   2704 	* testsuite/std/time/traits/is_clock.cc: New test.
   2705 	* testsuite/util/slow_clock.h (slow_clock): Move to __gnu_test
   2706 	namespace.
   2707 
   2708 2020-03-21  Jonathan Wakely  <jwakely (a] redhat.com>
   2709 
   2710 	PR libstdc++/93245
   2711 	* include/experimental/bits/fs_path.h (path::generic_string<C,T,A>()):
   2712 	* testsuite/experimental/filesystem/path/generic/generic_string.cc:
   2713 	Improve test coverage.
   2714 
   2715 	PR libstdc++/94242
   2716 	* include/bits/fs_path.h (path::_S_str_convert): Replace first
   2717 	parameter with basic_string_view so that strings with different
   2718 	allocators can be accepted.
   2719 	(path::generic_string<C,T,A>()): Use basic_string object that uses the
   2720 	right allocator type.
   2721 	* testsuite/27_io/filesystem/path/generic/94242.cc: New test.
   2722 	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Improve
   2723 	test coverage.
   2724 
   2725 2020-03-18  Jonathan Wakely  <jwakely (a] redhat.com>
   2726 
   2727 	PR libstdc++/94033
   2728 	* include/std/type_traits (__is_nt_default_constructible_atom): Remove.
   2729 	(__is_nt_default_constructible_impl): Remove.
   2730 	(__is_nothrow_default_constructible_impl): Remove.
   2731 	(__is_nt_constructible_impl): Add bool template parameter. Adjust
   2732 	partial specializations.
   2733 	(__is_nothrow_constructible_impl): Replace class template with alias
   2734 	template.
   2735 	(is_nothrow_default_constructible): Derive from alias template
   2736 	__is_nothrow_constructible_impl instead of
   2737 	__is_nothrow_default_constructible_impl.
   2738 	* testsuite/20_util/is_nothrow_constructible/94003.cc: New test.
   2739 
   2740 	* include/std/stop_token (stop_token::_Stop_state_ref): Define
   2741 	comparison operators explicitly if the compiler won't synthesize them.
   2742 
   2743 	* include/bits/stl_algobase.h (__lexicographical_compare_aux): Check
   2744 	__cpp_lib_concepts before using iter_reference_t.
   2745 	* include/bits/stream_iterator.h (istream_iterator): Check
   2746 	__cpp_lib_concepts before using default_sentinel_t.
   2747 	* include/bits/streambuf_iterator.h (istreambuf_iterator): Likewise.
   2748 
   2749 	PR libstdc++/94203
   2750 	* include/experimental/executor (executor::executor(Executor)): Call
   2751 	make_shared directly instead of _M_create. Create _Tgt1 object.
   2752 	(executor::executor(allocator_arg_t, const ProtoAlloc&, Executor)):
   2753 	Call allocate_shared directly instead of _M_create. Create _Tgt2
   2754 	object.
   2755 	(executor::target_type): Add cast needed for new _Tgt interface.
   2756 	(executor::target): Define when RTTI is disabled. Use _Tgt::_M_func.
   2757 	(executor::_Tgt): Define the same interface whether RTTI is enabled or
   2758 	not.
   2759 	(executor::_Tgt::target_type, executor::_Tgt::target): Do not use
   2760 	std::type_info in the interface.
   2761 	(executor::_Tgt::_M_func): Add data member.
   2762 	(executor::_TgtImpl): Replace with _Tgt1 and _Tgt2 class templates.
   2763 	(executor::_Tgt1::_S_func): Define function to access target without
   2764 	depending on RTTI.
   2765 	(executor::_M_create): Remove.
   2766 	(operator==, operator!=): Simplify comparisons for executor.
   2767 	* include/experimental/socket (is_error_code_enum<socket_errc>):
   2768 	Define specialization before use.
   2769 	* testsuite/experimental/net/executor/1.cc: New test.
   2770 
   2771 2020-03-16  Jonathan Wakely  <jwakely (a] redhat.com>
   2772 
   2773 	PR libstdc++/94199
   2774 	* include/experimental/executor (service_already_exists): Add default
   2775 	constructor. Declare make_service to be a friend.
   2776 	* testsuite/experimental/net/execution_context/make_service.cc: New
   2777 	test.
   2778 
   2779 2020-03-12  Jonathan Wakely  <jwakely (a] redhat.com>
   2780 
   2781 	* testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Do not pass
   2782 	a null pointer to functions with nonnull(1) attribute.
   2783 
   2784 2020-03-11  Patrick Palka  <ppalka (a] redhat.com>
   2785 
   2786 	* include/std/ranges (split_view::_OuterIter::_OuterIter): Typo fix,
   2787 	'address' -> 'std::__addressof'.
   2788 	* testsuite/std/ranges/adaptors/split.cc: Test taking the split_view of
   2789 	a non-forward input_range.
   2790 	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper): Make
   2791 	default constructor protected instead of deleted, like with
   2792 	input_iterator_wrapper.
   2793 	(test_range::iterator): Add comment explaining that this type is used
   2794 	only when the underlying wrapper is input_iterator_wrapper or
   2795 	output_iterator_wrapper.  Remove delegating defaulted constructor so
   2796 	that the inherited default constructor is used instead.
   2797 
   2798 	LWG 3286 ranges::size is not required to be valid after a call to
   2799 	ranges::begin on an input range
   2800 	* include/std/ranges (subrange::subrange): Split single-argument
   2801 	constructor into two, one constrained by _S_store_size and another by
   2802 	!_S_store_size.
   2803 	(take_view::begin): Call size() before calling ranges::begin(_M_base).
   2804 	* testsuite/std/ranges/adaptors/lwg3286.cc: New test.
   2805 	* testsuite/std/ranges/subrange/lwg3286.cc: New test.
   2806 
   2807 2020-03-10  Jonathan Wakely  <jwakely (a] redhat.com>
   2808 
   2809 	* include/std/ranges (split_view::_OuterIter::__at_end): Use __current
   2810 	instead of _M_current.
   2811 	(split_view::_OuterIter::operator++): Likewise.
   2812 
   2813 	* include/std/ranges (transform_view::_Iterator::__iter_move): Remove.
   2814 	(transform_view::_Iterator::operator*): Add noexcept-specifier.
   2815 	(transform_view::_Iterator::iter_move): Inline __iter_move body here.
   2816 	(split_view::_OuterIter::__current): Add noexcept.
   2817 	(split_view::_InnerIter::__iter_swap): Remove.
   2818 	(split_view::_InnerIter::__iter_move): Remove.
   2819 	(split_view::_InnerIter::_M_i_current): New accessors.
   2820 	(split_view::_InnerIter::__at_end): Use _M_i_current().
   2821 	(split_view::_InnerIter::operator*): Likewise.
   2822 	(split_view::_InnerIter::operator++): Likewise.
   2823 	(iter_move(const _InnerIter&)): Likewise.
   2824 	(iter_swap(const _InnerIter&, const _InnerIter&)): Likewise.
   2825 	* testsuite/std/ranges/adaptors/split.cc: Check noexcept-specifier
   2826 	for iter_move and iter_swap on split_view's inner iterator.
   2827 
   2828 	PR c++/94117
   2829 	* include/std/ranges (ranges::transform_view::_Iterator::iter_move):
   2830 	Change expression in noexcept-specifier to match function body.
   2831 
   2832 	* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Add
   2833 	comment explaining multiple dg-do directives.
   2834 	* testsuite/24_iterators/ostream_iterator/1.cc: Fix do-do directive
   2835 	so test is run as well as compiled.
   2836 
   2837 2020-03-09  Jonathan Wakely  <jwakely (a] redhat.com>
   2838 
   2839 	PR libstdc++/94063
   2840 	* src/c++17/fs_path.cc (path::operator+=(const path&)): Add kluge to
   2841 	handle concatenations that change the type of the first component.
   2842 	(path::operator+=(basic_string_view<value_type>)): Likewise.
   2843 	* testsuite/27_io/filesystem/path/concat/94063.cc: New test.
   2844 
   2845 2020-03-06  Patrick Palka  <ppalka (a] redhat.com>
   2846 
   2847 	* include/std/ranges (join_view::_Sentinel<_Const>): Befriend
   2848 	join_view::_Sentinel<!_Const>.
   2849 	* testsuite/std/ranges/adaptors/join.cc: Augment test.
   2850 
   2851 	PR libstdc++/93978
   2852 	* include/bits/range_access.h (__cust_access::_Empty::operator()):
   2853 	Declare return type to be bool instead of auto.
   2854 	* testsuite/std/ranges/adaptors/93978.cc: New test.
   2855 
   2856 2020-03-06  Jonathan Wakely  <jwakely (a] redhat.com>
   2857 
   2858 	PR libstdc++/94069
   2859 	* include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
   2860 	(__shared_mutex_pthread::__shared_mutex_pthread()): Remove incorrect
   2861 	second argument to __glibcxx_rwlock_init.
   2862 	* testsuite/30_threads/shared_timed_mutex/94069.cc: New test.
   2863 
   2864 	PR libstdc++/93244
   2865 	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Adjust
   2866 	test to not fail due to PR 94063.
   2867 	* testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
   2868 	* testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
   2869 
   2870 2020-03-06  Andreas Krebbel  <krebbel (a] linux.ibm.com>
   2871 
   2872 	* src/c++11/system_error.cc: Omit the ENOTSUP case statement if it
   2873 	would match ENOSYS.
   2874 
   2875 2020-03-05  Jonathan Wakely  <jwakely (a] redhat.com>
   2876 
   2877 	* testsuite/27_io/filesystem/operations/all.cc: Mark unused variable.
   2878 	* testsuite/27_io/filesystem/operations/copy.cc: Fix typo.
   2879 	* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
   2880 	* testsuite/27_io/filesystem/operations/file_size.cc: Use correct type
   2881 	for return value, and in comparison.
   2882 	* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
   2883 
   2884 	PR libstdc++/94051
   2885 	* include/std/string_view: Include <bits/ostream_insert.h>.
   2886 	* testsuite/21_strings/basic_string_view/inserters/94051.cc: New test.
   2887 
   2888 2020-03-04  Jonathan Wakely  <jwakely (a] redhat.com>
   2889 
   2890 	* include/bits/cpp_type_traits.h (__memcpyable): Fix comment.
   2891 
   2892 2020-03-04  Patrick Palka  <ppalka (a] redhat.com>
   2893 
   2894 	PR libstdc++/94017
   2895 	* include/bits/ranges_algobase.h (__fill_n_fn::operator()): Refine
   2896 	condition for when to use memset, making sure to additionally check that
   2897 	the output pointer's value type is a non-volatile byte type.  Instead of
   2898 	requiring that the fill type is a byte type, just require that it's an
   2899 	integral type.
   2900 	* testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
   2901 	New test.
   2902 	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
   2903 	New test.
   2904 	* testsuite/25_algorithms/fill/94013.cc: Uncomment part of test that was
   2905 	blocked by PR 94017.
   2906 	* testsuite/25_algorithms/fill/94017.cc: New test.
   2907 	* testsuite/25_algorithms/fill_n/94017.cc: New test.
   2908 
   2909 	LWG 3355 The memory algorithms should support move-only input iterators
   2910 	introduced by P1207
   2911 	* include/bits/ranges_uninitialized.h
   2912 	(__uninitialized_copy_fn::operator()): Use std::move to avoid attempting
   2913 	to copy __ifirst, which could be a move-only input iterator.  Use
   2914 	operator- instead of ranges::distance to compute distance from a sized
   2915 	sentinel.
   2916 	(__uninitialized_copy_n_fn::operator()): Likewise.
   2917 	(__uninitialized_move_fn::operator()): Likewise.
   2918 	(__uninitialized_move_n_fn::operator()): Likewise.
   2919 	(__uninitialized_destroy_fn::operator()): Use std::move to avoid
   2920 	attempting to copy __first.
   2921 	(__uninitialized_destroy_n_fn::operator()): Likewise.
   2922 	* testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
   2923 	Augment test.
   2924 	* .../specialized_algorithms/uninitialized_copy/constrained.cc:
   2925 	Likewise.
   2926 	* .../specialized_algorithms/uninitialized_move/constrained.cc:
   2927 	Likewise.
   2928 
   2929 	* testsuite/util/testsuite_iterators.h (test_range::get_iterator): Make
   2930 	protected instead of private.
   2931 	(test_sized_range_sized_sent): New.
   2932 
   2933 	* testsuite/util/testsuite_iterators.h (input_iterator_wrapper_nocopy):
   2934 	New testsuite iterator.
   2935 	* testsuite/24_iterators/counted_iterator/lwg3389.cc: use it.
   2936 	* testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
   2937 
   2938 	* include/bits/ranges_uninitialized.h
   2939 	(uninitialized_copy_fn::operator()): Pass a reference type as the first
   2940 	argument to is_nothrow_assignable_v.
   2941 	(uninitialized_copy_fn::operator()): Likewise.
   2942 	(uninitialized_move_fn::operator()): Likewise.  Return an in_out_result
   2943 	with the input iterator stripped of its move_iterator.
   2944 	(uninitialized_move_n_fn::operator()): Likewise.
   2945 	(uninitialized_fill_fn::operator()): Pass a reference type as the first
   2946 	argument to is_nothrow_assignable_v.
   2947 	(uninitialized_fill_n_fn::operator()): Likewise.
   2948 
   2949 2020-03-03  Jonathan Wakely  <jwakely (a] redhat.com>
   2950 
   2951 	PR libstdc++/94013
   2952 	* include/bits/cpp_type_traits.h (__memcpyable, __memcmpable): New
   2953 	traits to control when to use memmove and memcmp optimizations.
   2954 	(__is_nonvolatile_trivially_copyable): New helper trait.
   2955 	* include/bits/ranges_algo.h (__lexicographical_compare_fn): Do not
   2956 	use memcmp optimization with volatile data.
   2957 	* include/bits/ranges_algobase.h (__equal_fn): Use __memcmpable.
   2958 	(__copy_or_move, __copy_or_move_backward): Use __memcpyable.
   2959 	* include/bits/stl_algobase.h (__copy_move_a2): Use __memcpyable.
   2960 	(__copy_move_backward_a2): Likewise.
   2961 	(__equal_aux1): Use __memcmpable.
   2962 	(__lexicographical_compare_aux): Do not use memcmp optimization with
   2963 	volatile data.
   2964 	* testsuite/25_algorithms/copy/94013.cc: New test.
   2965 	* testsuite/25_algorithms/copy_backward/94013.cc: New test.
   2966 	* testsuite/25_algorithms/equal/94013.cc: New test.
   2967 	* testsuite/25_algorithms/fill/94013.cc: New test.
   2968 	* testsuite/25_algorithms/lexicographical_compare/94013.cc: New test.
   2969 	* testsuite/25_algorithms/move/94013.cc: New test.
   2970 	* testsuite/25_algorithms/move_backward/94013.cc: New test.
   2971 
   2972 	* include/bits/stl_algobase.h (lexicographical_compare_three_way):
   2973 	Avoid redundant iterator comparisons (LWG 3410).
   2974 
   2975 2020-03-02  Jonathan Wakely  <jwakely (a] redhat.com>
   2976 
   2977 	PR libstdc++/93972
   2978 	* include/bits/stl_algobase.h (__memcmp): Allow pointer types to
   2979 	differ.
   2980 	* testsuite/25_algorithms/lexicographical_compare/uchar.cc: New test.
   2981 
   2982 	* include/std/ranges (__detail::__maybe_empty_t): Rename to
   2983 	__maybe_present_t.
   2984 	(__adaptor::_RangeAdaptor, join_view, split_view): Use new name.
   2985 
   2986 	* include/bits/ranges_algo.h (shift_right): Add 'typename' to
   2987 	dependent type.
   2988 
   2989 2020-03-01  H.J. Lu  <hongjiu.lu (a] intel.com>
   2990 
   2991 	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
   2992 
   2993 2020-02-29  John David Anglin  <danglin (a] gcc.gnu.org>
   2994 
   2995 	* testsuite/17_intro/headers/c++1998/charset.cc: Skip on *-*-hpux*.
   2996 	* testsuite/17_intro/headers/c++2011/charset.cc: Likewise.
   2997 	* testsuite/17_intro/headers/c++2014/charset.cc: Likewise.
   2998 	* testsuite/17_intro/headers/c++2017/charset.cc: Likewise.
   2999 	* testsuite/17_intro/headers/c++2020/charset.cc: Likewise.
   3000 
   3001 	* testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
   3002 	Add libatomic option.
   3003 	* testsuite/30_threads/jthread/jthread.cc: Likewise.
   3004 
   3005 2020-02-29  Franois Dumont  <fdumont (a] gcc.gnu.org>
   3006 
   3007 	* include/bits/stl_algo.h
   3008 	(__find_if, __count_if, __is_permutation, std::is_permutation): Move...
   3009 	* include/bits/stl_algobase.h: ...here.
   3010 	* include/bits/hashtable_policy.h: Remove <bits/stl_algo.h> include.
   3011 
   3012 2020-02-29  John David Anglin  <danglin (a] gcc.gnu.org>
   3013 
   3014 	* testsuite/30_threads/stop_token/stop_callback.cc: Add libatomic
   3015 	option.
   3016 	* testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
   3017 	Likewise.
   3018 	* testsuite/30_threads/stop_token/stop_callback/deadlock.cc: Likewise.
   3019 	* testsuite/30_threads/stop_token/stop_callback/destroy.cc: Likewise.
   3020 	* testsuite/30_threads/stop_token/stop_callback/invoke.cc: Likewise.
   3021 	* testsuite/30_threads/stop_token/stop_source.cc: Likewise.
   3022 	* testsuite/30_threads/stop_token/stop_source/assign.cc: Likewise.
   3023 	* testsuite/30_threads/stop_token/stop_token.cc: Likewise.
   3024 	* testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
   3025 	Likewise.
   3026 
   3027 	PR libstdc++/92906
   3028 	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
   3029 
   3030 2020-02-28  Patrick Palka  <ppalka (a] redhat.com>
   3031 
   3032 	PR libstdc++/93972
   3033 	* include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
   3034 	Fix condition for when to use memcmp, making it consistent with the
   3035 	corresponding condition used in std::lexicographical_compare.
   3036 	* testsuite/25_algorithms/lexicographical_compare/93972.cc: New test.
   3037 
   3038 	* testsuite/26_numerics/headers/numeric/synopsis.cc: Add signatures for
   3039 	functions introduced in C++11, C++17 and C++2a.  Add 'constexpr' to
   3040 	existing signatures for C++2a.
   3041 
   3042 2020-02-28  Jonathan Wakely  <jwakely (a] redhat.com>
   3043 
   3044 	* testsuite/24_iterators/range_operations/advance_debug_neg.cc: Run
   3045 	test instead of just compiling it.
   3046 
   3047 2020-02-28  Patrick Palka  <ppalka (a] redhat.com>
   3048 
   3049 	* include/std/ranges (reverse_view::_S_needs_cached_begin): Set to false
   3050 	whenever the underlying range models common_range.
   3051 
   3052 	* include/std/ranges (__detail::_CachedPosition): New struct.
   3053 	(views::filter_view::_S_needs_cached_begin): New member variable.
   3054 	(views::filter_view::_M_cached_begin): New member variable.
   3055 	(views::filter_view::begin): Use _M_cached_begin to cache its
   3056 	result.
   3057 	(views::drop_view::_S_needs_cached_begin): New static member variable.
   3058 	(views::drop_view::_M_cached_begin): New member variable.
   3059 	(views::drop_view::begin): Use _M_cached_begin to cache its result
   3060 	when _S_needs_cached_begin.
   3061 	(views::drop_while_view::_M_cached_begin): New member variable.
   3062 	(views::drop_while_view::begin): Use _M_cached_begin to cache its
   3063 	result.
   3064 	(views::reverse_view::_S_needs_cached_begin): New static member
   3065 	variable.
   3066 	(views::reverse_view::_M_cached_begin): New member variable.
   3067 	(views::reverse_view::begin): Use _M_cached_begin to cache its result
   3068 	when _S_needs_cached_begin.
   3069 	* testsuite/std/ranges/adaptors/drop.cc: Augment test to check that
   3070 	drop_view::begin caches its result.
   3071 	* testsuite/std/ranges/adaptors/drop_while.cc: Augment test to check
   3072 	that drop_while_view::begin caches its result.
   3073 	* testsuite/std/ranges/adaptors/filter.cc: Augment test to check that
   3074 	filter_view::begin caches its result.
   3075 	* testsuite/std/ranges/adaptors/reverse.cc: Augment test to check that
   3076 	reverse_view::begin caches its result.
   3077 
   3078 2020-02-28  Jonathan Wakely  <jwakely (a] redhat.com>
   3079 
   3080 	* testsuite/27_io/filesystem/operations/last_write_time.cc: Fixes for
   3081 	filesystems that silently truncate timestamps.
   3082 	* testsuite/experimental/filesystem/operations/last_write_time.cc:
   3083 	Likewise.
   3084 
   3085 	* testsuite/21_strings/basic_string/cons/char/1.cc: Disable
   3086 	-Wstringop-overflow warnings.
   3087 
   3088 2020-02-27  Jonathan Wakely  <jwakely (a] redhat.com>
   3089 
   3090 	* testsuite/lib/libstdc++.exp (v3_target_compile): Add
   3091 	-fdiagnostics-urls=never to options.
   3092 
   3093 2020-02-27  Patrick Palka  <ppalka (a] redhat.com>
   3094 
   3095 	* include/std/ranges (transform_view::_Iterator<_Const>): Befriend
   3096 	_Iterator<!_Const>.
   3097 	(transform_view::_Sentinel<_Const>): Befriend _Sentinel<!_Const>.
   3098 	(take_view::_Sentinel<_Const>): Likewise.
   3099 	(take_while_view::_Sentinel<_Const>): Likewise.
   3100 	(split_view::_OuterIter<_Const>): Befriend _OuterIter<!_Const>.
   3101 	* testsuite/std/ranges/adaptors/split.cc: Augment test.
   3102 	* testsuite/std/ranges/adaptors/take.cc: Augment test.
   3103 	* testsuite/std/ranges/adaptors/take_while.cc: Augment test.
   3104 	* testsuite/std/ranges/adaptors/transform.cc: Augment test.
   3105 
   3106 	* testsuite/25_algorithms/copy/constrained.cc: Don't assume that the
   3107 	base() of a vector<>::iterator is a pointer.
   3108 	* testsuite/25_algorithms/copy_backward/constrained.cc: Likewise.
   3109 	* testsuite/25_algorithms/move/constrained.cc: Likewise.
   3110 	* testsuite/25_algorithms/move_backward/constrained.cc: Likewise.
   3111 	* testsuite/25_algorithms/inplace_merge/constrained.cc: Use foo.data()
   3112 	instead of &foo[0].
   3113 	* testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
   3114 	* testsuite/25_algorithms/partial_sort_copy/constrained.cc: Likewise.
   3115 	* testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
   3116 	* testsuite/25_algorithms/sort/constrained.cc: Likewise.
   3117 	* testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
   3118 
   3119 2020-02-27  Jonathan Wakely  <jwakely (a] redhat.com>
   3120 
   3121 	* include/debug/array (operator<=>): Define for C++20.
   3122 	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
   3123 	Adjust dg-error line numbers.
   3124 	* testsuite/23_containers/array/tuple_interface/
   3125 	tuple_element_debug_neg.cc: Likewise.
   3126 
   3127 	* testsuite/23_containers/span/back_assert_neg.cc: Add #undef before
   3128 	defining _GLIBCXX_ASSERTIONS.
   3129 	* testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
   3130 	* testsuite/23_containers/span/first_assert_neg.cc: Likewise.
   3131 	* testsuite/23_containers/span/front_assert_neg.cc: Likewise.
   3132 	* testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
   3133 	* testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
   3134 	* testsuite/23_containers/span/last_assert_neg.cc: Likewise.
   3135 	* testsuite/23_containers/span/subspan_2_assert_neg.cc: Likewise.
   3136 	* testsuite/23_containers/span/subspan_3_assert_neg.cc: Likewise.
   3137 	* testsuite/23_containers/span/subspan_4_assert_neg.cc: Likewise.
   3138 	* testsuite/23_containers/span/subspan_5_assert_neg.cc: Likewise.
   3139 	* testsuite/23_containers/span/subspan_6_assert_neg.cc: Likewise.
   3140 	* testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
   3141 
   3142 	* include/debug/string (__gnu_debug::basic_string::insert): Fix for
   3143 	C++98 where the member function of the base class returns void.
   3144 
   3145 	* testsuite/util/testsuite_iterators.h (forward_iterator_wrapper): Add
   3146 	equality comparisons that support value-initialized iterators.
   3147 
   3148 	* include/bits/boost_concept_check.h (__function_requires): Add
   3149 	_GLIBCXX14_CONSTEXPR.
   3150 	* testsuite/25_algorithms/min/concept_checks.cc: New test.
   3151 
   3152 2020-02-26  Patrick Palka  <ppalka (a] redhat.com>
   3153 
   3154 	PR libstdc++/93936
   3155 	* include/std/ranges (split_view::_InnerIter::operator==): Compare
   3156 	the operands' _M_i rather than their _M_i.current().
   3157 	* testsuite/std/ranges/adaptors/split.cc: Augment test.
   3158 
   3159 	P1645R1 constexpr for <numeric> algorithms
   3160 	* include/bits/stl_numeric.h (iota, accumulate, inner_product,
   3161 	partial_sum, adjacent_difference): Make conditionally constexpr for
   3162 	C++20.
   3163 	* include/std/numeric (__cpp_lib_constexpr_numeric): Define this feature
   3164 	test macro.
   3165 	(reduce, transform_reduce, exclusive_scan, inclusive_scan,
   3166 	transform_exclusive_scan, transform_inclusive_scan): Make conditionally
   3167 	constexpr for C++20.
   3168 	* include/std/version (__cpp_lib_constexpr_numeric): Define.
   3169 	* testsuite/26_numerics/accumulate/constexpr.cc: New test.
   3170 	* testsuite/26_numerics/adjacent_difference/constexpr.cc: Likewise.
   3171 	* testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
   3172 	* testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
   3173 	* testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
   3174 	* testsuite/26_numerics/iota/constexpr.cc: Likewise.
   3175 	* testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
   3176 	* testsuite/26_numerics/reduce/constexpr.cc: Likewise.
   3177 	* testsuite/26_numerics/transform_exclusive_scan/constexpr.cc: Likewise.
   3178 	* testsuite/26_numerics/transform_inclusive_scan/constexpr.cc: Likewise.
   3179 	* testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
   3180 
   3181 2020-02-26  Jonathan Wakely  <jwakely (a] redhat.com>
   3182 
   3183 	* include/bits/ranges_algo.h (__lexicographical_compare_fn): Declare
   3184 	variables in smaller scope and avoid calling ranges::distance when we
   3185 	know they are pointers. Remove statically-unreachable use of
   3186 	__builtin_unreachable().
   3187 	* include/bits/stl_algobase.h (__lexicographical_compare::__lc):
   3188 	Define inline.
   3189 
   3190 	* include/std/ranges (__detail::__maybe_empty_t): Define new helper
   3191 	alias.
   3192 	(__detail::__maybe_const_t): Likewise.
   3193 	(__adaptor::_RangeAdaptor): Use __maybe_empty_t.
   3194 	(transform_view, take_view, take_while_view, elements_view): Use
   3195 	__maybe_const_t.
   3196 	(join_view, split_view): Use both.
   3197 
   3198 2020-02-25  Patrick Palka  <ppalka (a] redhat.com>
   3199 
   3200 	LWG 3397 basic_istream_view::iterator should not provide
   3201 	iterator_category
   3202 	* include/std/ranges (basic_istream_view:_Iterator::iterator_category):
   3203 	Rename to ...
   3204 	(basic_istream_view:_Iterator::iterator_concept): ... this.
   3205 	* testsuite/std/ranges/istream_view.cc: Augment test.
   3206 
   3207 	LWG 3325 Constrain return type of transformation function for
   3208 	transform_view
   3209 	* include/std/ranges (transform_view): Constrain the return type of the
   3210 	transformation function as per LWG 3325.
   3211 	* testsuite/std/ranges/adaptors/lwg3325_neg.cc: New test.
   3212 
   3213 	LWG 3313 join_view::_Iterator::operator-- is incorrectly constrained
   3214 	* include/std/ranges (join_view::_Iterator::operator--): Require that
   3215 	range_reference_t<_Base> models common_range.
   3216 	* testsuite/std/ranges/adaptors/lwg3313_neg.cc: New test.
   3217 
   3218 	LWG 3301 transform_view::_Iterator has incorrect iterator_category
   3219 	* include/std/ranges (transform_view::_Iterator::_S_iter_cat): Adjust
   3220 	determination of iterator_category as per LWG 3301.
   3221 	* testsuite/std/ranges/adaptors/transform.cc: Augment test.
   3222 
   3223 	LWG 3292 iota_view is under-constrained
   3224 	* include/std/ranges (iota_view): Require that _Winc models semiregular
   3225 	  as per LWG 3292.
   3226 	* testsuite/std/ranges/iota/lwg3292_neg.cc: New test.
   3227 
   3228 2020-02-25  Jonathan Wakely  <jwakely (a] redhat.com>
   3229 
   3230 	* include/bits/ranges_algobase.h (__copy_or_move): Do not use memmove
   3231 	during constant evaluation. Call __builtin_memmove directly instead of
   3232 	__memmove.
   3233 	(__copy_or_move_backward): Likewise.
   3234 	* include/bits/stl_algobase.h (__memmove): Remove.
   3235 	(__copy_move<M, true, random_access_iterator_tag>::__copy_m)
   3236 	(__copy_move_backward<M, true, random_access_iterator_tag>::__copy_m):
   3237 	Use __builtin_memmove directly instead of __memmove.
   3238 	(__copy_move_a2): Do not use memmove during constant evaluation.
   3239 	(__copy_move_backward_a2): Use _IsMove constant to select correct
   3240 	__copy_move_backward specialization.
   3241 	* testsuite/25_algorithms/copy_backward/constexpr.cc: Check for copies
   3242 	begin turned into moves during constant evaluation.
   3243 
   3244 	* testsuite/25_algorithms/move_backward/93872.cc: Add test left out of
   3245 	previous commit.
   3246 
   3247 	PR libstdc++/93872
   3248 	* include/bits/stl_algobase.h (__memmove): Cast away const before
   3249 	doing move assignment.
   3250 	* testsuite/25_algorithms/move/93872.cc: New test.
   3251 	* testsuite/25_algorithms/move_backward/93872.cc: New test.
   3252 
   3253 2020-02-24  Patrick Palka  <ppalka (a] redhat.com>
   3254 
   3255 	PR libstdc++/93884
   3256 	* include/bits/ranges_algobase.h (__copy_or_move,
   3257 	__copy_or_move_backward): Don't inspect the iter_value_t of the output
   3258 	iterator, instead inspect its iterator_traits directly.
   3259 	* include/bits/stl_iterator.h (back_insert_iterator::container):
   3260 	Conditionally initialize.
   3261 	(back_insert_iterator::difference_type): Conditionally define.
   3262 	(back_insert_iterator::back_insert_iterator): Conditionally define this
   3263 	default constructor.
   3264 	(front_insert_iterator::container): Conditionally initialize.
   3265 	(front_insert_iterator::difference_type): Conditionally define.
   3266 	(front_insert_iterator::front_insert_iterator): Conditionally define
   3267 	this default constructor.
   3268 	* 24_iterators/back_insert_iterator/pr93884.cc: New test.
   3269 	* 24_iterators/front_insert_iterator/pr93884.cc: New test.
   3270 
   3271 	P0769R2 Add shift to <algorithm>
   3272 	* include/bits/ranges_algo.h (shift_left, shift_right): New.
   3273 	* testsuite/25_algorithms/shift_left/1.cc: New test.
   3274 	* testsuite/25_algorithms/shift_right/1.cc: New test.
   3275 
   3276 2020-02-24  Jonathan Wakely  <jwakely (a] redhat.com>
   3277 
   3278 	* include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)):
   3279 	Make noexcept-specifier conditional.
   3280 	* testsuite/24_iterators/istream_iterator/cons/sentinel.cc: Check
   3281 	noexcept-specifier.
   3282 
   3283 	* include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)):
   3284 	Add constructor.
   3285 	(operator==(istream_iterator, default_sentinel_t)): Add operator.
   3286 	(ostream_iterator::difference_type): Define to ptrdiff_t for C++20.
   3287 	* include/bits/streambuf_iterator.h
   3288 	(istreambuf_iterator(default_sentinel_t)): Add constructor.
   3289 	(operator==(istreambuf_iterator, default_sentinel_t)): Add operator.
   3290 	* testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
   3291 	New test.
   3292 	* testsuite/24_iterators/istream_iterator/sentinel.cc: New test.
   3293 	* testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
   3294 	New test.
   3295 	* testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test.
   3296 
   3297 	* include/std/ranges (__deep_const_range, __enable_view_impl): Remove.
   3298 	(ranges::enable_view): Simplify (LWG 3326).
   3299 	* include/bits/range_access.h (ranges::enable_view): Declare.
   3300 	* include/bits/regex.h (__enable_view_impl): Remove partial
   3301 	specialization.
   3302 	* include/bits/stl_multiset.h (__enable_view_impl): Likewise.
   3303 	* include/bits/stl_set.h (__enable_view_impl): Likewise.
   3304 	* include/bits/unordered_set.h (__enable_view_impl): Likewise.
   3305 	* include/debug/multiset.h (__enable_view_impl): Likewise.
   3306 	* include/debug/set.h (__enable_view_impl): Likewise.
   3307 	* include/debug/unordered_set (__enable_view_impl): Likewise.
   3308 	* include/experimental/string_view (ranges::enable_view): Define
   3309 	partial specialization.
   3310 	* include/std/span (ranges::enable_view): Likewise.
   3311 	* include/std/string_view (ranges::enable_view): Likewise.
   3312 	* testsuite/std/ranges/view.cc: Check satisfaction of updated concept.
   3313 
   3314 2020-02-21  Jonathan Wakely  <jwakely (a] redhat.com>
   3315 
   3316 	* include/std/optional (operator<=>(optional<T>, optional<U>))
   3317 	(operator<=>(optional<T>, nullopt), operator<=>(optional<T>, U)):
   3318 	Define for C++20.
   3319 	* include/std/tuple (__tuple_cmp): New helper function for <=>.
   3320 	(operator<=>(tuple<T...>, tuple<U>...)): Define for C++20.
   3321 	* include/std/variant (operator<=>(variant<T...>, variant<T...>))
   3322 	(operator<=>(monostate, monostate)): Define for C++20.
   3323 	* testsuite/20_util/optional/relops/three_way.cc: New test.
   3324 	* testsuite/20_util/tuple/comparison_operators/three_way.cc: New test.
   3325 	* testsuite/20_util/variant/89851.cc: Move to ...
   3326 	* testsuite/20_util/variant/relops/89851.cc: ... here.
   3327 	* testsuite/20_util/variant/90008.cc: Move to ...
   3328 	* testsuite/20_util/variant/relops/90008.cc: ... here.
   3329 	* testsuite/20_util/variant/relops/three_way.cc: New test.
   3330 
   3331 2020-02-20  Patrick Palka  <ppalka (a] redhat.com>
   3332 
   3333 	* include/std/ranges (views::__adaptor::__maybe_refwrap): New utility
   3334 	function.
   3335 	(views::__adaptor::_RangeAdaptor::operator()): Add comments.  Use
   3336 	__maybe_refwrap to capture lvalue references by reference, and then use
   3337 	unwrap_reference_t to forward the by-reference captures as references.
   3338 	* testsuite/std/ranges/adaptors/split.cc: Augment test.
   3339 	* testsuite/std/ranges/adaptors/split_neg.cc: New test.
   3340 
   3341 	* include/std/ranges (iota_view): Forward declare _Sentinel.
   3342 	(iota_view::_Iterator): Befriend _Sentinel.
   3343 	(iota_view::_Sentinel::_M_equal): New member function.
   3344 	(iota_view::_Sentinel::operator==): Use it.
   3345 	(views::_Iota::operator()): Forward __f using the correct type.
   3346 	* testsuite/std/ranges/access/ssize.cc (test06): Don't call views::iota
   3347 	with integers of different signedness, to appease iota_view's deduction
   3348 	guide.
   3349 	* testsuite/std/ranges/iota/iota_view.cc: Augment test.
   3350 
   3351 2020-02-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3352 
   3353 	* include/bits/range_access.h (ranges::begin): Reject array of
   3354 	incomplete type.
   3355 	(ranges::end, ranges::size): Require arrays to be bounded.
   3356 	(ranges::data): Require lvalue or borrowed_range.
   3357 	(ranges::iterator_t): Remove constraint.
   3358 	* testsuite/std/ranges/access/begin.cc: Do not check array of
   3359 	incomplete type.
   3360 	* testsuite/std/ranges/access/begin_neg.cc: New test.
   3361 	* testsuite/std/ranges/access/end_neg.cc: Adjust expected error.
   3362 	* testsuite/std/ranges/access/size_neg.cc: Adjust expected error.
   3363 	* testsuite/std/ranges/access/ssize.cc: Do not check array of
   3364 	incomplete type.
   3365 
   3366 	* include/std/system_error (error_category::operator<=>)
   3367 	(operator<=>(const error_code&, const error_code&))
   3368 	(operator<=>(const error_condition&, const error_condition&)): Define
   3369 	for C++20.
   3370 	* testsuite/19_diagnostics/error_category/operators/less.cc: New test.
   3371 	* testsuite/19_diagnostics/error_category/operators/three_way.cc: New
   3372 	test.
   3373 	* testsuite/19_diagnostics/error_code/operators/equal.cc: Remove
   3374 	incorrect comment.
   3375 	* testsuite/19_diagnostics/error_code/operators/less.cc: New test.
   3376 	* testsuite/19_diagnostics/error_code/operators/not_equal.cc: Remove
   3377 	incorrect comment.
   3378 	* testsuite/19_diagnostics/error_code/operators/three_way.cc: New test.
   3379 	* testsuite/19_diagnostics/error_condition/operators/equal.cc: Remove
   3380 	incorrect comment.
   3381 	* testsuite/19_diagnostics/error_condition/operators/less.cc: New test.
   3382 	* testsuite/19_diagnostics/error_condition/operators/not_equal.cc:
   3383 	Remove incorrect comment.
   3384 	* testsuite/19_diagnostics/error_condition/operators/three_way.cc: New
   3385 	test.
   3386 
   3387 	* libsupc++/typeinfo (type_info::operator!=): Remove for C++20.
   3388 
   3389 	* include/std/thread (thread::id::operator<=>): Define for C++20.
   3390 	* testsuite/30_threads/thread/id/70294.cc: Do not take addresses of
   3391 	functions in namespace std.
   3392 	* testsuite/30_threads/thread/id/operators_c++20.cc: New test.
   3393 
   3394 2020-02-19  Patrick Palka  <ppalka (a] redhat.com>
   3395 
   3396 	* testsuite/std/ranges/adaptors/split.cc (test03): Don't include the
   3397 	null terminator of the underlying string as part of the test_range.
   3398 	(main): Call test03.
   3399 
   3400 2020-02-19  Jonathan Wakely  <jwakely (a] redhat.com>
   3401 
   3402 	* include/bits/stl_iterator.h (common_iterator): Add copyable<I>
   3403 	requirement (LWG 3385).
   3404 	* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust
   3405 	expected declaration.
   3406 
   3407 	* include/std/ranges (take_while_view, drop_view, drop_while_view)
   3408 	(elements_view:_Iterator): Initialize data members (LWG 3364).
   3409 
   3410 	* libsupc++/compare (three_way_comparable): Remove always-false check
   3411 	that should have been removed with weak_equality (P1959R0).
   3412 	(three_way_comparable_with): Likewise. Reorder requirements (LWG 3360).
   3413 
   3414 	* include/std/concepts (__detail::__partially_ordered_with): Move here
   3415 	from <compare>.
   3416 	(totally_ordered, totally_ordered_with): Use __partially_ordered_with
   3417 	to simplify definition (LWG 3331).
   3418 	* libsupc++/compare (__detail::__partially_ordered_with): Move to
   3419 	<concepts>.
   3420 
   3421 	* include/std/concepts (totally_ordered_with): Remove redundant
   3422 	requirement (LWG 3329).
   3423 
   3424 	* include/std/ranges (__detail::__convertible_to_non_slicing): New
   3425 	helper concept.
   3426 	(__detail::__pair_like_convertible_to): Remove.
   3427 	(__detail::__pair_like_convertible_from): Add requirements for
   3428 	non-slicing conversions.
   3429 	(subrange): Constrain constructors with __convertible_to_non_slicing.
   3430 	Remove constructors from pair-like types. Add new deduction guide.
   3431 	* testsuite/std/ranges/subrange/lwg3282_neg.cc: New test.
   3432 
   3433 	* include/bits/iterator_concepts.h (iter_move): Add declaration to
   3434 	prevent unqualified lookup finding a suitable declaration (LWG 3247).
   3435 
   3436 	* include/std/memory_resource (polymorphic_allocator::allocate)
   3437 	(polymorphic_allocator::allocate_object): Change type of exception to
   3438 	bad_array_new_length (LWG 3237).
   3439 	* testsuite/20_util/polymorphic_allocator/lwg3237.cc: New test.
   3440 
   3441 	* include/std/type_traits (__cpp_lib_unwrap_ref): Define (LWG 3348).
   3442 	* include/std/version (__cpp_lib_unwrap_ref): Likewise.
   3443 	* testsuite/20_util/unwrap_reference/1.cc: Check macro.
   3444 	* testsuite/20_util/unwrap_reference/3.cc: New test.
   3445 
   3446 	* include/std/numeric (midpoint(T8, T*)): Do not check for complete
   3447 	type during overload resolution, use static assert instead (LWG 3200).
   3448 	* testsuite/26_numerics/midpoint/pointer.cc: Do not test with
   3449 	incomplete type.
   3450 	* testsuite/26_numerics/midpoint/pointer_neg.cc: New test.
   3451 
   3452 	* include/std/span (span(T (&)[N])): Use non-deduced context to
   3453 	prevent first parameter from interfering with class template argument
   3454 	deduction (LWG 3369).
   3455 	* testsuite/23_containers/span/deduction.cc: Add missing 'const'.
   3456 	* testsuite/23_containers/span/lwg3255.cc: Check for construction from
   3457 	rvalues.
   3458 
   3459 	* include/std/span (span::const_iterator, span::const_reverse_iterator)
   3460 	(span::cbegin(), span::cend(), span::crbegin(), span::crend()):
   3461 	Remove (LWG 3320).
   3462 	* testsuite/23_containers/span/everything.cc: Replace uses of cbegin
   3463 	and cend.
   3464 	* testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
   3465 	Likewise.
   3466 	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
   3467 	constrained.cc: Likewise.
   3468 	* testsuite/20_util/specialized_algorithms/
   3469 	uninitialized_default_construct/constrained.cc: Likewise.
   3470 	* testsuite/20_util/specialized_algorithms/uninitialized_fill/
   3471 	constrained.cc: Likewise.
   3472 	* testsuite/20_util/specialized_algorithms/uninitialized_move/
   3473 	constrained.cc: Likewise.
   3474 	* testsuite/20_util/specialized_algorithms/
   3475 	uninitialized_value_construct/constrained.cc: Likewise.
   3476 
   3477 	* include/bits/range_access.h (range_size_t): Define alias template.
   3478 	* include/std/ranges (all_view): Rename to views::all_t (LWG 3335).
   3479 	* testsuite/std/ranges/adaptors/filter.cc: Adjust to new name.
   3480 
   3481 	* include/std/ranges (filter_view, transform_view, take_view)
   3482 	(join_view, split_view, reverse_view): Remove commented-out converting
   3483 	constructors (LWG 3280).
   3484 
   3485 	* include/std/memory (uninitialized_construct_using_allocator): Use
   3486 	std::construct_at (LWG 3321).
   3487 
   3488 	* include/std/memory_resource (polymorphic_allocator::allocate_bytes)
   3489 	(polymorphic_allocator::allocate_object)
   3490 	(polymorphic_allocator::new_object): Add nodiscard attribute (LWG3304).
   3491 
   3492 	LWG 3379. "safe" in several library names is misleading
   3493 	* include/bits/range_access.h (enable_safe_range): Rename to
   3494 	enable_borrowed_range.
   3495 	(__detail::__maybe_safe_range): Rename to __maybe_borrowed_range.
   3496 	(safe_range): Rename to borrowed_range.
   3497 	* include/bits/ranges_algo.h: Adjust to use new names.
   3498 	* include/bits/ranges_algobase.h: Likewise.
   3499 	* include/bits/ranges_uninitialized.h: Likewise.
   3500 	* include/std/ranges: Likewise.
   3501 	(safe_iterator_t): Rename to borrowed_iterator_t.
   3502 	(safe_subrange_t): Rename to borrowed_subrange_t.
   3503 	* include/std/span: Adjust to use new names.
   3504 	* include/std/string_view: Likewise.
   3505 	* include/experimental/string_view: Likewise.
   3506 	* testsuite/std/ranges/access/begin.cc: Likewise.
   3507 	* testsuite/std/ranges/access/cbegin.cc: Likewise.
   3508 	* testsuite/std/ranges/access/cdata.cc: Likewise.
   3509 	* testsuite/std/ranges/access/cend.cc: Likewise.
   3510 	* testsuite/std/ranges/access/crbegin.cc: Likewise.
   3511 	* testsuite/std/ranges/access/crend.cc: Likewise.
   3512 	* testsuite/std/ranges/access/data.cc: Likewise.
   3513 	* testsuite/std/ranges/access/end.cc: Likewise.
   3514 	* testsuite/std/ranges/access/rbegin.cc: Likewise.
   3515 	* testsuite/std/ranges/access/rend.cc: Likewise.
   3516 	* testsuite/std/ranges/safe_range.cc: Likewise.
   3517 	* testsuite/std/ranges/safe_range_types.cc: Likewise.
   3518 	* testsuite/util/testsuite_iterators.h: Likewise.
   3519 
   3520 	* include/std/ranges (tuple_element<0, const subrange<I, S, K>>)
   3521 	(tuple_element<1, const subrange<I, S, K>>): Add partial
   3522 	specializations (LWG 3398).
   3523 	* testsuite/std/ranges/subrange/tuple_like.cc: New test.
   3524 
   3525 	* include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
   3526 	(__adjacent_find_fn, __remove_if_fn, __remove_copy_if_fn)
   3527 	(__unique_fn, __unique_copy_fn): Remove redundant conversions to bool.
   3528 
   3529 2020-02-18  Patrick Palka  <ppalka (a] redhat.com>
   3530 
   3531 	P1983R0 Wording for GB301, US296, US292, US291, and US283
   3532 	* include/std/ranges (filter_view::pred): New member function.
   3533 	(join_view::_Iterator::_Iterator): Remove now-redundant comment since
   3534 	P1983R0 fixes the highlighted issue in the same way.
   3535 	(join_view::_Iterator<_Const>): Add friend
   3536 	join_view::_Iterator<!_Const>.
   3537 	(join_view::_M_inner): Remove mutable specifier, effectively reverting
   3538 	the proposed wording changes of P3278.
   3539 	(join_view::begin): Refine the condition for when to return a const
   3540 	iterator.
   3541 	(split_view::_OuterIter::_OuterIter): Adjust constraints.
   3542 	* testsuite/std/ranges/adaptors/filter.cc: Test that filter_view::pred
   3543 	exists and works.
   3544 
   3545 2020-02-18  Jonathan Wakely  <jwakely (a] redhat.com>
   3546 
   3547 	PR libstdc++/93818
   3548 	* include/std/ranges (_RangeAdaptor): Add deduction guide.
   3549 	(filter_view::_Iterator): Add alias _Vp_iter and use in place of
   3550 	iterator_t<_Vp>.
   3551 	(filter_view::_Iterator::_S_iter_cat()): Add 'typename'.
   3552 	(transform_view::_Iterator): Add alias _Base_iter and use in place of
   3553 	iterator_t<_Base>.
   3554 	(transform_view::_Iterator::_S_iter_cat()): Add 'typename'.
   3555 	(join_view::_Iterator): Add _Outer_iter and _Inner_iter aliases.
   3556 	(join_view::_Iterator::_S_iter_cat()): Add 'typename'.
   3557 	(split_view::_InnerIter::_S_iter_cat()): Likewise.
   3558 
   3559 	* testsuite/20_util/integer_comparisons/equal.cc: Fix invalid
   3560 	assumption that long is wider than int.
   3561 	* testsuite/20_util/integer_comparisons/greater_equal.cc: Likewise.
   3562 	* testsuite/20_util/integer_comparisons/less.cc: Likewise.
   3563 	* testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
   3564 	* testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
   3565 
   3566 	P1976R2 Fixed-size span construction from dynamic range
   3567 	* include/std/span (__cpp_lib_span): Update value.
   3568 	(span(It, size_type), span(It, End)): Make conditionally explicit. Add
   3569 	assertion.
   3570 	(span(R&&), span(const span<OType, OExtent>&)): Likewise and relax
   3571 	constraints.
   3572 	(span::first<Count>(), span::last<Count>()): Use explicit type in
   3573 	return statement.
   3574 	(as_bytes, as_writable_bytes): Likewise.
   3575 	* include/std/version (__cpp_lib_span): Update value.
   3576 	* testsuite/23_containers/span/1.cc: Check new value.
   3577 	* testsuite/23_containers/span/2.cc: Check new value.
   3578 	* testsuite/23_containers/span/explicit.cc: New test.
   3579 
   3580 	* include/std/span (span::__is_compatible_array): Simplify alias
   3581 	template by using requires-clause.
   3582 	(span::__is_compatible_ref): New alias template for constraining
   3583 	constructors.
   3584 	(span::__is_compatible_iterator, span::__is_compatible_range): Remove.
   3585 	(span(It, size_type), span(It, End)): Use __is_compatible_ref.
   3586 	(span(T(&)[N], span(array<T, N>&), span(const array<T, N>&)): Remove
   3587 	redundant parentheses.
   3588 	(span(R&&)): Add missing constraints.
   3589 
   3590 	* include/std/span (span): Reorder members and rename template
   3591 	parameters to match declarations in the C++2a working paper.
   3592 
   3593 	P2116R0 Remove tuple-like protocol support from fixed-extent span
   3594 	* include/std/span (get, tuple_size, tuple_element): Remove.
   3595 	* testsuite/23_containers/span/everything.cc: Remove checks for
   3596 	tuple-like API.
   3597 	* testsuite/23_containers/span/get_neg.cc: Remove.
   3598 	* testsuite/23_containers/span/tuple_element_dynamic_neg.cc: Remove.
   3599 	* testsuite/23_containers/span/tuple_element_oob_neg.cc: Remove.
   3600 	* testsuite/23_containers/span/tuple_size_neg.cc: Remove.
   3601 
   3602 2020-02-17  Patrick Palka  <ppalka (a] redhat.com>
   3603 
   3604 	P2106R0 Alternative wording for GB315 and GB316
   3605 	* include/bits/ranges_algo.h (in_fun_result): New.
   3606 	(for_each_result, for_each_n_result): Change into an alias of
   3607 	in_fun_result.
   3608 	(in_in_result): New.
   3609 	(mismatch_result): Change into an alias of in_in_result.
   3610 	(copy_if_result): Change into an alias of in_out_result.
   3611 	(swap_ranges_result): Change into an alias of in_in_result.
   3612 	(unary_transform_result): Change into an alias of in_out_result.
   3613 	(in_in_out_result): New.
   3614 	(binary_transform_result): Change into an alias of in_in_out_result.
   3615 	(replace_copy_result, replace_copy_if_result, remove_copy_if_result,
   3616 	remove_copy_result, unique_copy_result, reverse_copy_result,
   3617 	rotate_copy_result, partial_sort_copy_result): Change into an alias of
   3618 	in_out_result.
   3619 	(in_out_out_result): New.
   3620 	(partition_copy_result, merge_result): Change into an alias of
   3621 	in_out_out_result.
   3622 	(set_union_result, set_intersection_result): Change into an alias of
   3623 	in_in_out_result.
   3624 	(set_difference_result): Change into an alias of in_out_result.
   3625 	(set_symmetric_difference): Change into an alias of in_in_out_result.
   3626 	(min_max_result): New.
   3627 	(minmax_result, minmax_element_result): Change into an alias of
   3628 	min_max_result.
   3629 	(in_found_result): New.
   3630 	(next_permutation_result, prev_permutation_result): Change into an alias
   3631 	of in_found_result.
   3632 	(__next_permutation_fn::operator(), __prev_permutation_fn::operator()):
   3633 	Adjust following changes to next_permutation_result and
   3634 	prev_permutation_result.
   3635 	* include/bits/ranges_algobase.h (in_out_result): New.
   3636 	(copy_result, move_result, move_backward_result, copy_backward_result,
   3637 	copy_n_result): Change into an alias of in_out_result.
   3638 	* include/bits/ranges_uninitialized.h (uninitialized_copy_result,
   3639 	uninitialized_copy_n_result, uninitialized_move_result,
   3640 	uninitialized_move_n_result): Likewise.
   3641 	* testsuite/25_algorithms/next_permutation/constrained.cc: Adjust uses of
   3642 	structured bindings.
   3643 	* testsuite/25_algorithms/prev_permutation/constrained.cc: Likewise.
   3644 
   3645 	P1243R4 Rangify new algorithms
   3646 	* include/bits/ranges_algo.h (for_each_n_result, __for_each_n_fn,
   3647 	for_each_n, __sample_fn, sample, __clamp_fn, clamp): New.
   3648 	* testsuite/25_algorithms/clamp/constrained.cc: New test.
   3649 	* testsuite/25_algorithms/for_each/constrained.cc: Augment test.
   3650 	* testsuite/25_algorithms/sample/constrained.cc: New test.
   3651 
   3652 2020-02-17  Jonathan Wakely  <jwakely (a] redhat.com>
   3653 
   3654 	P1964R2 Wording for boolean-testable
   3655 	* include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
   3656 	(__adjacent_find_fn): Cast result of predicate to bool.
   3657 	* include/std/concepts (__boolean): Remove.
   3658 	(__detail::__boolean_testable_impl, __detail::__boolean_testable): Add
   3659 	new helper concepts.
   3660 	(__detail::__weakly_eq_cmp_with, totally_ordered, totally_ordered_with)
   3661 	(predicate): Use __boolean_testable instead of boolean.
   3662 	* libsupc++/compare (__detail::__partially_ordered, _Synth3way):
   3663 	Likewise.
   3664 
   3665 	P1970R2 Consistency for size() functions: Add ranges::ssize
   3666 	* include/bits/range_access.h (_SSize, ssize): Define for C++20.
   3667 	* testsuite/std/ranges/access/ssize.cc: New test.
   3668 
   3669 	P1956R1 On the names of low-level bit manipulation functions
   3670 	* include/bits/hashtable_policy.h: Update comment.
   3671 	* include/std/bit (__ispow2, __ceil2, __floor2, __log2p1): Rename.
   3672 	(ispow2, ceil2, floor2, log2p1): Likewise.
   3673 	(__cpp_lib_int_pow2): Add feature test macro.
   3674 	* include/std/charconv (__to_chars_len_2): Adjust use of __log2p1.
   3675 	* include/std/memory (assume_aligned): Adjust use of ispow2.
   3676 	* include/std/version (__cpp_lib_int_pow2): Add.
   3677 	* libsupc++/new_opa.cc: Adjust use of __ispow2.
   3678 	* src/c++17/memory_resource.cc: Likewise, and for __ceil2 and __log2p1.
   3679 	* testsuite/17_intro/freestanding.cc: Adjust use of ispow2.
   3680 	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Rename to ...
   3681 	* testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: ... here.
   3682 	* testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Rename to ...
   3683 	* testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc: ... here.
   3684 	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Rename to ...
   3685 	* testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: ... here.
   3686 	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Rename to ...
   3687 	* testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: ... here.
   3688 	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Rename to ...
   3689 	* testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc: ... here.
   3690 
   3691 	* include/std/charconv: Add comment.
   3692 
   3693 	PR libstdc++/92546 (partial)
   3694 	* include/bits/random.h (uniform_random_bit_generator): Move definition
   3695 	to <bits/uniform_int_dist.h>.
   3696 	* include/bits/ranges_algo.h: Include <bits/uniform_int_dist.h> instead
   3697 	of <bits/random.h>.
   3698 	* include/bits/ranges_algobase.h: Do not include <cmath>.
   3699 	* include/bits/uniform_int_dist.h (uniform_random_bit_generator):
   3700 	Move here.
   3701 	* include/std/ranges: Do not include <limits>.
   3702 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
   3703 
   3704 	PR libstdc++/92546 (partial)
   3705 	* include/Makefile.am: Add new header.
   3706 	* include/Makefile.in: Regenerate.
   3707 	* include/bits/int_limits.h: New header.
   3708 	* include/bits/parse_numbers.h (__select_int::_Select_int): Replace
   3709 	numeric_limits with __detail::__int_limits.
   3710 	* include/std/bit (__rotl, __rotr, __countl_zero, __countl_one)
   3711 	(__countr_zero, __countr_one, __popcount, __ceil2, __floor2, __log2p1):
   3712 	Likewise.
   3713 	* include/std/charconv (__to_chars_8, __from_chars_binary)
   3714 	(__from_chars_alpha_to_num, from_chars): Likewise.
   3715 	* include/std/memory_resource (polymorphic_allocator::allocate)
   3716 	(polymorphic_allocator::allocate_object): Likewise.
   3717 	* include/std/string_view (basic_string_view::_S_compare): Likewise.
   3718 	* include/std/utility (in_range): Likewise.
   3719 	* testsuite/20_util/integer_comparisons/in_range_neg.cc: Adjust for
   3720 	extra error about incomplete type __int_limits<bool>.
   3721 	* testsuite/26_numerics/bit/bit.count/countl_one.cc: Include <limits>.
   3722 	* testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
   3723 	* testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
   3724 	* testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
   3725 	* testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
   3726 	* testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Likewise.
   3727 	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Likewise.
   3728 	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise.
   3729 	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise.
   3730 	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise.
   3731 	* testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
   3732 	* testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
   3733 
   3734 	* python/libstdcxx/v6/printers.py (StdCmpCatPrinter.to_string): Update
   3735 	value for partial_ordering::unordered.
   3736 
   3737 	* include/bits/iterator_concepts.h (indirectly_copyable_storable): Add
   3738 	const-qualified expression variations.
   3739 	* include/std/concepts (copyable): Likewise.
   3740 
   3741 	* include/std/type_traits (__is_standard_integer): New helper trait.
   3742 	* include/std/utility (cmp_equal, cmp_not_equal, cmp_less, cmp_greater)
   3743 	(cmp_less_equal, cmp_greater_equal, in_range): Define for C++20.
   3744 	* include/std/version (__cpp_lib_integer_comparison_functions): Define.
   3745 	* testsuite/20_util/integer_comparisons/1.cc: New test.
   3746 	* testsuite/20_util/integer_comparisons/2.cc: New test.
   3747 	* testsuite/20_util/integer_comparisons/equal.cc: New test.
   3748 	* testsuite/20_util/integer_comparisons/equal_neg.cc: New test.
   3749 	* testsuite/20_util/integer_comparisons/greater_equal.cc: New test.
   3750 	* testsuite/20_util/integer_comparisons/greater_equal_neg.cc: New test.
   3751 	* testsuite/20_util/integer_comparisons/greater_neg.cc: New test.
   3752 	* testsuite/20_util/integer_comparisons/in_range.cc: New test.
   3753 	* testsuite/20_util/integer_comparisons/in_range_neg.cc: New test.
   3754 	* testsuite/20_util/integer_comparisons/less.cc: New test.
   3755 	* testsuite/20_util/integer_comparisons/less_equal.cc: New test.
   3756 	* testsuite/20_util/integer_comparisons/less_equal_neg.cc: New test.
   3757 	* testsuite/20_util/integer_comparisons/less_neg.cc: New test.
   3758 	* testsuite/20_util/integer_comparisons/not_equal.cc: New test.
   3759 	* testsuite/20_util/integer_comparisons/not_equal_neg.cc: New test.
   3760 
   3761 2020-02-16  Patrick Palka  <ppalka (a] redhat.com>
   3762 
   3763 	* include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
   3764 	Move code after an early exit constexpr if to under an else branch.
   3765 	* include/bits/ranges_algobase.h (__equal_fn::operator()): Likewise.
   3766 
   3767 2020-02-15  Patrick Palka  <ppalka (a] redhat.com>
   3768 
   3769 	* include/bits/ranges_algo.h: Adjust whitespace and formatting.
   3770 	* include/bits/ranges_algobase.h: Likewise.
   3771 	* include/bits/ranges_uninitialized.h: Likewise.
   3772 
   3773 	* include/bits/ranges_algo.h: (adjacent_find, all_of, any_of,
   3774 	binary_search, copy_if, count, count_if, equal_range, find, find_end,
   3775 	find_first_of, find_if, find_if_not, for_each, generate, generate_n,
   3776 	includes, inplace_merge, is_heap, is_heap_until, is_partitioned,
   3777 	is_permutation, is_sorted, is_sorted_until, lexicographical_compare,
   3778 	lower_bound, make_heap, max, max_element, merge, min, min_element,
   3779 	minmax, minmax_element, mismatch, next_permutation, none_of,
   3780 	nth_element, partial_sort, partial_sort_copy, partition, partition_copy,
   3781 	partition_point, pop_heap, prev_permutation, push_heap, remove,
   3782 	remove_copy, remove_copy_if, remove_if, replace, replace_copy,
   3783 	replace_copy_if, replace_if, reverse, reverse_copy, rotate, rotate_copy,
   3784 	search, search_n, set_difference, set_intersection,
   3785 	set_symmetric_difference, set_union, shuffle, sort, sort_heap,
   3786 	stable_partition, stable_sort, swap_ranges, transform, unique,
   3787 	unique_copy, upper_bound): Convert into function objects.
   3788 	* include/bits/ranges_algobase.h: (equal, copy, move, copy_n, fill_n,
   3789 	fill, move_backward, copy_backward): Likewise.
   3790 	* include/bits/ranges_uninitialized.h (uninitialized_default_construct,
   3791 	uninitialized_default_construct_n, uninitialized_value_construct,
   3792 	uninitialized_value_construct_n, uninitialized_copy,
   3793 	uninitialized_copy_n, uninitialized_move, uninitialized_move_n,
   3794 	uninitialized_fill, uninitialized_fill_n, construct_at, destroy_at,
   3795 	destroy, destroy_n): Likewise.
   3796 
   3797 	* include/bits/ranges_algo.h (ranges::__find_end): Fold into ...
   3798 	(ranges::find_end): ... here.
   3799 	(ranges::__lexicographical_compare): Fold into ...
   3800 	(ranges::lexicographical_compare): ... here.
   3801 	* include/bits/ranges_algobase.h (ranges::__equal): Fold into ...
   3802 	(ranges::equal): ... here.
   3803 
   3804 2020-02-15  Jonathan Wakely  <jwakely (a] redhat.com>
   3805 
   3806 	* include/bits/erase_if.h (__cpp_lib_erase_if): Define to 202002L.
   3807 	* include/std/deque: Likewise.
   3808 	* include/std/forward_list: Likewise.
   3809 	* include/std/list: Likewise.
   3810 	* include/std/string: Likewise.
   3811 	* include/std/vector: Likewise.
   3812 	* include/std/version: Likewise.
   3813 	* testsuite/23_containers/deque/erasure.cc: Test for new value.
   3814 	* testsuite/23_containers/forward_list/erasure.cc: Likewise.
   3815 	* testsuite/23_containers/list/erasure.cc: Likewise.
   3816 	* testsuite/23_containers/map/erasure.cc: Likewise.
   3817 	* testsuite/23_containers/set/erasure.cc: Likewise.
   3818 	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
   3819 	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
   3820 	* testsuite/23_containers/vector/erasure.cc: Likewise.
   3821 
   3822 2020-02-15  Jonathan Wakely  <jwakely (a] redhat.com>
   3823 
   3824 	* include/bits/random.h (uniform_random_bit_generator): Require min()
   3825 	and max() to be constant expressions and min() to be less than max().
   3826 	* testsuite/26_numerics/random/concept.cc: Check additional cases.
   3827 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
   3828 
   3829 2020-02-13  Patrick Palka  <ppalka (a] redhat.com>
   3830 
   3831 	* include/Makefile.am: Add <bits/ranges_uninitialized.h>.
   3832 	* include/Makefile.in: Regenerate.
   3833 	* include/bits/ranges_uninitialized.h: New header.
   3834 	* include/std/memory: Include it.
   3835 	* testsuite/20_util/specialized_algorithms/destroy/constrained.cc: New
   3836 	test.
   3837 	* .../uninitialized_copy/constrained.cc: New test.
   3838 	* .../uninitialized_default_construct/constrained.cc: New test.
   3839 	* .../uninitialized_fill/constrained.cc: New test.
   3840 	* .../uninitialized_move/constrained.cc: New test.
   3841 	* .../uninitialized_value_construct/constrained.cc: New test.
   3842 
   3843 	* include/Makefile.am: Add bits/ranges_algobase.h
   3844 	* include/Makefile.in: Regenerate.
   3845 	* bits/ranges_algo.h: Include <bits/ranges_algobase.h> and refactor
   3846 	existing #includes.
   3847 	(__detail::__is_normal_iterator, __detail::is_reverse_iterator,
   3848 	__detail::__is_move_iterator, copy_result, move_result,
   3849 	__equal, equal, copy_result, move_result, move_backward_result,
   3850 	copy_backward_result, __copy_or_move_backward, __copy_or_move, copy,
   3851 	move, copy_backward, move_backward, copy_n_result, copy_n, fill_n,
   3852 	fill): Split out into ...
   3853 	* bits/range_algobase.h: ... this new header.
   3854 
   3855 2020-02-12  Patrick Palka  <ppalka (a] redhat.com>
   3856 
   3857 	LWG 3389 and LWG 3390
   3858 	* include/bits/stl_iterator.h (move_move_iterator): Use std::move when
   3859 	constructing the move_iterator with __i.
   3860 	(counted_iterator::counted_iterator): Use std::move when initializing
   3861 	M_current with __i.
   3862 	* testsuite/24_iterators/counted_iterator/lwg3389.cc: New test.
   3863 	* testsuite/24_iterators/move_iterator/lwg3390.cc: New test.
   3864 
   3865 2020-02-12  Sandra Loosemore  <sandra (a] codesourcery.com>
   3866 
   3867 	PR libstdc++/79193
   3868 	PR libstdc++/88999
   3869 
   3870 	* configure: Regenerated.
   3871 
   3872 2020-02-12  Franois Dumont  <fdumont (a] gcc.gnu.org>
   3873 
   3874 	* include/bits/hashtable.h
   3875 	(_Hashtable<>(_Hashtable&&, std::allocator_type&)): Add
   3876 	missing std namespace qualification to forward call.
   3877 
   3878 2020-02-09  Jonathan Wakely  <jwakely (a] redhat.com>
   3879 
   3880 	* testsuite/20_util/function_objects/range.cmp/equal_to.cc: Fix
   3881 	comment.
   3882 	* testsuite/20_util/function_objects/range.cmp/less.ccL Likewise.
   3883 
   3884 	* include/std/ranges: Fix non-ASCII characters in comment.
   3885 
   3886 	* include/bits/range_cmp.h (__detail::__eq_builtin_ptr_cmp): Require
   3887 	equality comparison to be valid and return bool.
   3888 	(__detail::__less_builtin_ptr_cmp): Likewise for less-than comparison.
   3889 	* testsuite/20_util/function_objects/range.cmp/equal_to.cc: Check
   3890 	type with ambiguous conversion to fundamental types.
   3891 	* testsuite/20_util/function_objects/range.cmp/less.cc: Likewise.
   3892 
   3893 2020-02-07  Jonathan Wakely  <jwakely (a] redhat.com>
   3894 
   3895 	* include/bits/iterator_concepts.h (iter_difference_t, iter_value_t):
   3896 	Use remove_cvref_t.
   3897 	(readable_traits): Rename to indirectly_readable_traits.
   3898 	(readable): Rename to indirectly_readable.
   3899 	(writable): Rename to indirectly_writable.
   3900 	(__detail::__iter_exchange_move): Do not use remove_reference_t.
   3901 	(indirectly_swappable): Adjust requires expression parameter types.
   3902 	expression.
   3903 	* include/bits/ranges_algo.h (ranges::transform, ranges::replace)
   3904 	(ranges::replace_if, ranges::generate_n, ranges::generate)
   3905 	(ranges::remove): Use new name for writable.
   3906 	* include/bits/stl_iterator.h (__detail::__common_iter_has_arrow):
   3907 	Use new name for readable.
   3908 	* include/ext/pointer.h (readable_traits<_Pointer_adapter<P>>): Use
   3909 	new name for readable_traits.
   3910 	* testsuite/24_iterators/associated_types/readable.traits.cc: Likewise.
   3911 	* testsuite/24_iterators/indirect_callable/projected.cc: Adjust for
   3912 	new definition of indirectly_readable.
   3913 
   3914 	* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Change
   3915 	to take parameters of common_iterator, instead of the common_iterator
   3916 	type itself. Fix argument for __common_iter_has_arrow constraint.
   3917 	(iterator_traits<common_iterator<I, S>>::pointer): Adjust.
   3918 
   3919 2020-02-07  Jonathan Wakely  <jwakely (a] redhat.com>
   3920 
   3921 	* include/std/ranges (iota_view): Add braces to prevent -Wempty-body
   3922 	warning.
   3923 	(basic_istream_view::_Iterator::operator++()): Add missing return.
   3924 
   3925 2020-02-07  Patrick Palka  <ppalka (a] redhat.com>
   3926 
   3927 	* include/bits/ranges_algo.h: Remove extraneous &&.
   3928 
   3929 	* include/std/ranges (ranges::__detail::__stream_extractable,
   3930 	ranges::basic_istream_view, ranges::istream_view): Define.
   3931 	* testsuite/std/ranges/istream_view: New test.
   3932 
   3933 	Implement C++20 range adaptors
   3934 	* include/std/ranges: Include <bits/refwrap.h> and <tuple>.
   3935 	(subrange::_S_store_size): Mark as const instead of constexpr to
   3936 	avoid what seems to be a bug in GCC.
   3937 	(__detail::__box): Give it defaulted copy and move constructors.
   3938 	(ranges::views::_Single::operator()): Mark constexpr.
   3939 	(ranges::views::_Iota::operator()): Mark constexpr.
   3940 	(__detail::Empty): Define.
   3941 	(ranges::views::__closure::_RangeAdaptor,
   3942 	ranges::views::__closure::_RangeAdaptorClosure, ref_view, all_view,
   3943 	ranges::views::all, ranges::__detail::find_if,
   3944 	ranges::__detail::find_if_not, ranges::__detail::mismatch,
   3945 	ranges::detail::min, filter_view, ranges::views::filter, transform_view,
   3946 	ranges::views::transform, take_view, ranges::views::take,
   3947 	take_while_view, ranges::views::take_while, drop_view,
   3948 	ranges::views::drop, join_view, ranges::views::join,
   3949 	__detail::require_constant, __detail::tiny_range, split_view,
   3950 	ranges::views::split, ranges::views::_Counted, ranges::views::counted,
   3951 	common_view, ranges::views::common, reverse_view,
   3952 	ranges::views::reverse,
   3953 	ranges::views::__detail::__is_reversible_subrange,
   3954 	ranges::views::__detail::__is_reverse_view, reverse_view,
   3955 	ranges::views::reverse, __detail::__has_tuple_element, elements_view,
   3956 	ranges::views::elements, ranges::views::keys, ranges::views::values):
   3957 	Define.
   3958 	(views): Alias for ranges::views.
   3959 	(tuple_size<ranges::subrange<>>, tuple_element<0, ranges::subrange>,
   3960 	tuple_element<1, ranges::subrange>): New partial specializations.
   3961 	* testsuite/std/ranges/adaptors/all.cc: New test.
   3962 	* testsuite/std/ranges/adaptors/common.cc: Likewise.
   3963 	* testsuite/std/ranges/adaptors/counted.cc: Likewise.
   3964 	* testsuite/std/ranges/adaptors/drop.cc: Likewise.
   3965 	* testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
   3966 	* testsuite/std/ranges/adaptors/elements.cc: Likewise.
   3967 	* testsuite/std/ranges/adaptors/filter.cc: Likewise.
   3968 	* testsuite/std/ranges/adaptors/join.cc: Likewise.
   3969 	* testsuite/std/ranges/adaptors/reverse.cc: Likewise.
   3970 	* testsuite/std/ranges/adaptors/split.cc: Likewise.
   3971 	* testsuite/std/ranges/adaptors/take.cc: Likewise.
   3972 	* testsuite/std/ranges/adaptors/take_while.cc: Likewise.
   3973 	* testsuite/std/ranges/adaptors/transform.cc: Likewise.
   3974 
   3975 2020-02-07  Jonathan Wakely  <jwakely (a] redhat.com>
   3976 
   3977 	* libsupc++/compare (__cmp_cat::type): Define typedef for underlying
   3978 	type of enumerations and comparison category types.
   3979 	(__cmp_cat::_Ord, __cmp_cat::_Ncmp): Add underlying type.
   3980 	(__cmp_cat::_Ncmp::unordered): Change value to 2.
   3981 	(partial_ordering::_M_value, weak_ordering::_M_value)
   3982 	(strong_ordering::_M_value): Change type to __cmp_cat::type.
   3983 	(partial_ordering::_M_is_ordered): Remove data member.
   3984 	(partial_ordering): Use second bit of _M_value for unordered. Adjust
   3985 	comparison operators.
   3986 	(weak_ordering::operator partial_ordering): Simplify to remove
   3987 	branches.
   3988 	(operator<=>(unspecified, weak_ordering)): Likewise.
   3989 	(strong_ordering::operator partial_ordering): Likewise.
   3990 	(strong_ordering::operator weak_ordering): Likewise.
   3991 	(operator<=>(unspecified, strong_ordering)): Likewise.
   3992 	* testsuite/18_support/comparisons/categories/partialord.cc: New test.
   3993 	* testsuite/18_support/comparisons/categories/strongord.cc: New test.
   3994 	* testsuite/18_support/comparisons/categories/weakord.cc: New test.
   3995 
   3996 	* include/std/ranges (iota_view::_Iterator): Fix typo in name of
   3997 	__cpp_lib_three_way_comparison macro and use deduced return type for
   3998 	operator<=>.
   3999 	* testsuite/std/ranges/iota/iterator.cc: New test.
   4000 
   4001 2020-02-07  Patrick Palka  <ppalka (a] redhat.com>
   4002 	    Jonathan Wakely  <jwakely (a] redhat.com>
   4003 
   4004 	Implement C++20 constrained algorithms
   4005 	* include/Makefile.am: Add new header.
   4006 	* include/Makefile.in: Regenerate.
   4007 	* include/std/algorithm: Include <bits/ranges_algo.h>.
   4008 	* include/bits/ranges_algo.h: New file.
   4009 	* testsuite/25_algorithms/adjacent_find/constrained.cc: New test.
   4010 	* testsuite/25_algorithms/all_of/constrained.cc: New test.
   4011 	* testsuite/25_algorithms/any_of/constrained.cc: New test.
   4012 	* testsuite/25_algorithms/binary_search/constrained.cc: New test.
   4013 	* testsuite/25_algorithms/copy/constrained.cc: New test.
   4014 	* testsuite/25_algorithms/copy_backward/constrained.cc: New test.
   4015 	* testsuite/25_algorithms/copy_if/constrained.cc: New test.
   4016 	* testsuite/25_algorithms/copy_n/constrained.cc: New test.
   4017 	* testsuite/25_algorithms/count/constrained.cc: New test.
   4018 	* testsuite/25_algorithms/count_if/constrained.cc: New test.
   4019 	* testsuite/25_algorithms/equal/constrained.cc: New test.
   4020 	* testsuite/25_algorithms/equal_range/constrained.cc: New test.
   4021 	* testsuite/25_algorithms/fill/constrained.cc: New test.
   4022 	* testsuite/25_algorithms/fill_n/constrained.cc: New test.
   4023 	* testsuite/25_algorithms/find/constrained.cc: New test.
   4024 	* testsuite/25_algorithms/find_end/constrained.cc: New test.
   4025 	* testsuite/25_algorithms/find_first_of/constrained.cc: New test.
   4026 	* testsuite/25_algorithms/find_if/constrained.cc: New test.
   4027 	* testsuite/25_algorithms/find_if_not/constrained.cc: New test.
   4028 	* testsuite/25_algorithms/for_each/constrained.cc: New test.
   4029 	* testsuite/25_algorithms/generate/constrained.cc: New test.
   4030 	* testsuite/25_algorithms/generate_n/constrained.cc: New test.
   4031 	* testsuite/25_algorithms/heap/constrained.cc: New test.
   4032 	* testsuite/25_algorithms/includes/constrained.cc: New test.
   4033 	* testsuite/25_algorithms/inplace_merge/constrained.cc: New test.
   4034 	* testsuite/25_algorithms/is_partitioned/constrained.cc: New test.
   4035 	* testsuite/25_algorithms/is_permutation/constrained.cc: New test.
   4036 	* testsuite/25_algorithms/is_sorted/constrained.cc: New test.
   4037 	* testsuite/25_algorithms/is_sorted_until/constrained.cc: New test.
   4038 	* testsuite/25_algorithms/lexicographical_compare/constrained.cc: New
   4039 	test.
   4040 	* testsuite/25_algorithms/lower_bound/constrained.cc: New test.
   4041 	* testsuite/25_algorithms/max/constrained.cc: New test.
   4042 	* testsuite/25_algorithms/max_element/constrained.cc: New test.
   4043 	* testsuite/25_algorithms/merge/constrained.cc: New test.
   4044 	* testsuite/25_algorithms/min/constrained.cc: New test.
   4045 	* testsuite/25_algorithms/min_element/constrained.cc: New test.
   4046 	* testsuite/25_algorithms/minmax/constrained.cc: New test.
   4047 	* testsuite/25_algorithms/minmax_element/constrained.cc: New test.
   4048 	* testsuite/25_algorithms/mismatch/constrained.cc: New test.
   4049 	* testsuite/25_algorithms/move/constrained.cc: New test.
   4050 	* testsuite/25_algorithms/move_backward/constrained.cc: New test.
   4051 	* testsuite/25_algorithms/next_permutation/constrained.cc: New test.
   4052 	* testsuite/25_algorithms/none_of/constrained.cc: New test.
   4053 	* testsuite/25_algorithms/nth_element/constrained.cc: New test.
   4054 	* testsuite/25_algorithms/partial_sort/constrained.cc: New test.
   4055 	* testsuite/25_algorithms/partial_sort_copy/constrained.cc: New test.
   4056 	* testsuite/25_algorithms/partition/constrained.cc: New test.
   4057 	* testsuite/25_algorithms/partition_copy/constrained.cc: New test.
   4058 	* testsuite/25_algorithms/partition_point/constrained.cc: New test.
   4059 	* testsuite/25_algorithms/prev_permutation/constrained.cc: New test.
   4060 	* testsuite/25_algorithms/remove/constrained.cc: New test.
   4061 	* testsuite/25_algorithms/remove_copy/constrained.cc: New test.
   4062 	* testsuite/25_algorithms/remove_copy_if/constrained.cc: New test.
   4063 	* testsuite/25_algorithms/remove_if/constrained.cc: New test.
   4064 	* testsuite/25_algorithms/replace/constrained.cc: New test.
   4065 	* testsuite/25_algorithms/replace_copy/constrained.cc: New test.
   4066 	* testsuite/25_algorithms/replace_copy_if/constrained.cc: New test.
   4067 	* testsuite/25_algorithms/replace_if/constrained.cc: New test.
   4068 	* testsuite/25_algorithms/reverse/constrained.cc: New test.
   4069 	* testsuite/25_algorithms/reverse_copy/constrained.cc: New test.
   4070 	* testsuite/25_algorithms/rotate/constrained.cc: New test.
   4071 	* testsuite/25_algorithms/rotate_copy/constrained.cc: New test.
   4072 	* testsuite/25_algorithms/search/constrained.cc: New test.
   4073 	* testsuite/25_algorithms/search_n/constrained.cc: New test.
   4074 	* testsuite/25_algorithms/set_difference/constrained.cc: New test.
   4075 	* testsuite/25_algorithms/set_intersection/constrained.cc: New test.
   4076 	* testsuite/25_algorithms/set_symmetric_difference/constrained.cc: New
   4077 	test.
   4078 	* testsuite/25_algorithms/set_union/constrained.cc: New test.
   4079 	* testsuite/25_algorithms/shuffle/constrained.cc: New test.
   4080 	* testsuite/25_algorithms/sort/constrained.cc: New test.
   4081 	* testsuite/25_algorithms/stable_partition/constrained.cc: New test.
   4082 	* testsuite/25_algorithms/stable_sort/constrained.cc: New test.
   4083 	* testsuite/25_algorithms/swap_ranges/constrained.cc: New test.
   4084 	* testsuite/25_algorithms/transform/constrained.cc: New test.
   4085 	* testsuite/25_algorithms/unique/constrained.cc: New test.
   4086 	* testsuite/25_algorithms/unique_copy/constrained.cc: New test.
   4087 	* testsuite/25_algorithms/upper_bound/constrained.cc: New test.
   4088 
   4089 2020-02-06  Jonathan Wakely  <jwakely (a] redhat.com>
   4090 
   4091 	* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Fix PR
   4092 	number in comment. Fix indentation.
   4093 
   4094 	* include/bits/stl_algobase.h (__iter_swap, __iter_swap<true>): Remove
   4095 	redundant _GLIBCXX20_CONSTEXPR.
   4096 
   4097 	* include/std/ranges (viewable_range): Replace decay_t with
   4098 	remove_cvref_t (LWG 3375).
   4099 
   4100 2020-02-05  Jonathan Wakely  <jwakely (a] redhat.com>
   4101 
   4102 	* include/bits/iterator_concepts.h (iter_reference_t)
   4103 	(iter_rvalue_reference_t, iter_common_reference_t, indirect_result_t):
   4104 	Remove workarounds for PR c++/67704.
   4105 	* testsuite/24_iterators/aliases.cc: New test.
   4106 
   4107 2020-02-05  Patrick Palka  <ppalka (a] redhat.com>
   4108 
   4109 	* include/bits/stl_iterator.h (move_iterator::move_iterator): Move __i
   4110 	when initializing _M_current.
   4111 	(move_iterator::base): Split into two overloads differing in
   4112 	ref-qualifiers as in P1207R4 for C++20.
   4113 
   4114 2020-02-04  Jonathan Wakely  <jwakely (a] redhat.com>
   4115 
   4116 	* include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Un-define after
   4117 	use.
   4118 
   4119 	PR libstdc++/93562
   4120 	* include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define.
   4121 	(unique_ptr::swap, unique_ptr<T[], D>::swap): Call it.
   4122 	* testsuite/20_util/unique_ptr/modifiers/93562.cc: New test.
   4123 
   4124 2020-02-01  Andrew Burgess  <andrew.burgess (a] embecosm.com>
   4125 
   4126 	* configure: Regenerate.
   4127 
   4128 2020-01-31  Patrick Palka  <ppalka (a] redhat.com>
   4129 
   4130 	* testsuite/24_iterators/range_operations/distance.cc: Do not assume
   4131 	test_range::end() returns the same type as test_range::begin().
   4132 	* testsuite/24_iterators/range_operations/next.cc: Likewise.
   4133 	* testsuite/24_iterators/range_operations/prev.cc: Likewise.
   4134 	* testsuite/util/testsuite_iterators.h (__gnu_test::test_range::end):
   4135 	Always return a sentinel<I>.
   4136 
   4137 2020-01-29  Jonathan Wakely  <jwakely (a] redhat.com>
   4138 
   4139 	PR libstdc++/92895
   4140 	* include/std/stop_token (stop_token::stop_possible()): Call new
   4141 	_M_stop_possible() function.
   4142 	(stop_token::stop_requested()): Do not use stop_possible().
   4143 	(stop_token::binary_semaphore): New class, as temporary stand-in for
   4144 	std::binary_semaphore.
   4145 	(stop_token::_Stop_cb::_M_callback): Add noexcept to type.
   4146 	(stop_token::_Stop_cb::_M_destroyed, stop_token::_Stop_cb::_M_done):
   4147 	New data members for symchronization with stop_callback destruction.
   4148 	(stop_token::_Stop_cb::_Stop_cb): Make non-template.
   4149 	(stop_token::_Stop_cb::_M_linked, stop_token::_Stop_cb::_S_execute):
   4150 	Remove.
   4151 	(stop_token::_Stop_cb::_M_run): New member function.
   4152 	(stop_token::_Stop_state::_M_stopped, stop_token::_Stop_state::_M_mtx):
   4153 	Remove.
   4154 	(stop_token::_Stop_state::_M_owners): New data member to track
   4155 	reference count for ownership.
   4156 	(stop_token::_Stop_state::_M_value): New data member combining a
   4157 	spinlock, the stop requested flag, and the reference count for
   4158 	associated stop_source objects.
   4159 	(stop_token::_Stop_state::_M_requester): New data member for
   4160 	synchronization with stop_callback destruction.
   4161 	(stop_token::_Stop_state::_M_stop_possible()): New member function.
   4162 	(stop_token::_Stop_state::_M_stop_requested()): Inspect relevant bit
   4163 	of _M_value.
   4164 	(stop_token::_Stop_state::_M_add_owner)
   4165 	(stop_token::_Stop_state::_M_release_ownership)
   4166 	(stop_token::_Stop_state::_M_add_ssrc)
   4167 	(stop_token::_Stop_state::_M_sub_ssrc): New member functions for
   4168 	updating reference counts.
   4169 	(stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
   4170 	(stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
   4171 	(stop_token::_Stop_state::_M_try_lock)
   4172 	(stop_token::_Stop_state::_M_try_lock_and_stop)
   4173 	(stop_token::_Stop_state::_M_do_try_lock): New member functions for
   4174 	managing spinlock.
   4175 	(stop_token::_Stop_state::_M_request_stop): Use atomic operations to
   4176 	read and update state. Release lock while running callbacks. Use new
   4177 	data members to synchronize with callback destruction.
   4178 	(stop_token::_Stop_state::_M_remove_callback): Likewise.
   4179 	(stop_token::_Stop_state::_M_register_callback): Use atomic operations
   4180 	to read and update state.
   4181 	(stop_token::_Stop_state_ref): Handle type to manage _Stop_state,
   4182 	replacing shared_ptr.
   4183 	(stop_source::stop_source(const stop_source&)): Update reference count.
   4184 	(stop_source::operator=(const stop_source&)): Likewise.
   4185 	(stop_source::~stop_source()): Likewise.
   4186 	(stop_source::stop_source(stop_source&&)): Define as defaulted.
   4187 	(stop_source::operator=(stop_source&&)): Establish postcondition on
   4188 	parameter.
   4189 	(stop_callback): Enforce preconditions on template parameter. Replace
   4190 	base class with data member of new _Cb_impl type.
   4191 	(stop_callback::stop_callback(const stop_token&, Cb&&))
   4192 	(stop_callback::stop_callback(stop_token&&, Cb&&)): Fix TOCTTOU race.
   4193 	(stop_callback::_Cb_impl): New type wrapping _Callback member and
   4194 	defining the _S_execute member function.
   4195 	* testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: New
   4196 	test.
   4197 	* testsuite/30_threads/stop_token/stop_callback/deadlock.cc: New test.
   4198 	* testsuite/30_threads/stop_token/stop_callback/destroy.cc: New test.
   4199 	* testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
   4200 	New test.
   4201 	* testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: New
   4202 	test.
   4203 	* testsuite/30_threads/stop_token/stop_callback/invoke.cc: New test.
   4204 	* testsuite/30_threads/stop_token/stop_source/assign.cc: New test.
   4205 	* testsuite/30_threads/stop_token/stop_token/stop_possible.cc: New
   4206 	test.
   4207 
   4208 	* libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use
   4209 	three_way_comparable_with.
   4210 	(__detail::__3way_cmp_with): Remove workaround for fixed bug.
   4211 	(compare_three_way::operator()): Remove redundant constraint from
   4212 	requires-clause.
   4213 	(__detail::_Synth3way::operator()): Use three_way_comparable_with
   4214 	instead of workaround.
   4215 	* testsuite/18_support/comparisons/object/93479.cc: Prune extra
   4216 	output due to simplified constraints on compare_three_way::operator().
   4217 
   4218 	PR libstdc++/93479
   4219 	* libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid.
   4220 	* testsuite/18_support/comparisons/object/93479.cc: New test.
   4221 
   4222 	* testsuite/std/ranges/access/end.cc: Do not assume test_range::end()
   4223 	returns the same type as test_range::begin(). Add comments.
   4224 	* testsuite/std/ranges/access/rbegin.cc: Likewise.
   4225 	* testsuite/std/ranges/access/rend.cc: Likewise.
   4226 	* testsuite/std/ranges/range.cc: Do not assume the sentinel for
   4227 	test_range is the same as its iterator type.
   4228 	* testsuite/util/testsuite_iterators.h (test_range::sentinel): Add
   4229 	operator- overloads to satisfy sized_sentinel_for when the iterator
   4230 	satisfies random_access_iterator.
   4231 
   4232 2020-01-28  Jonathan Wakely  <jwakely (a] redhat.com>
   4233 
   4234 	PR libstdc++/93470
   4235 	* include/bits/refwrap.h (reference_wrapper::operator()): Restrict
   4236 	static assertion to object types.
   4237 
   4238 	PR libstdc++/93325
   4239 	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
   4240 	clock_gettime instead of explicit glibc version check.
   4241 	* configure: Regenerate.
   4242 
   4243 2020-01-28  Martin Liska  <mliska (a] suse.cz>
   4244 
   4245 	PR libstdc++/93478
   4246 	* include/std/atomic: Fix typo.
   4247 	* include/std/optional: Likewise.
   4248 
   4249 2020-01-27  Andrew Burgess  <andrew.burgess (a] embecosm.com>
   4250 
   4251 	* configure: Regenerate.
   4252 
   4253 2020-01-27  Jonathan Wakely  <jwakely (a] redhat.com>
   4254 
   4255 	PR libstdc++/93426
   4256 	* include/std/span (span): Fix deduction guide.
   4257 	* testsuite/23_containers/span/deduction.cc: New test.
   4258 
   4259 2020-01-24  Jonathan Wakely  <jwakely (a] redhat.com>
   4260 
   4261 	* libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
   4262 	(__cmp_cat::_Ord::equivalent): Add enumerator.
   4263 	(__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
   4264 	and greater.
   4265 	(partial_ordering, weak_ordering, strong_ordering): Remove
   4266 	constructors taking __cmp_cat::_Eq parameters. Use renamed
   4267 	enumerators.
   4268 
   4269 2020-01-24  Maciej W. Rozycki  <macro (a] wdc.com>
   4270 
   4271 	* acinclude.m4: Handle `--with-toolexeclibdir='.
   4272 	* Makefile.in: Regenerate.
   4273 	* aclocal.m4: Regenerate.
   4274 	* configure: Regenerate.
   4275 	* doc/Makefile.in: Regenerate.
   4276 	* include/Makefile.in: Regenerate.
   4277 	* libsupc++/Makefile.in: Regenerate.
   4278 	* po/Makefile.in: Regenerate.
   4279 	* python/Makefile.in: Regenerate.
   4280 	* src/Makefile.in: Regenerate.
   4281 	* src/c++11/Makefile.in: Regenerate.
   4282 	* src/c++17/Makefile.in: Regenerate.
   4283 	* src/c++98/Makefile.in: Regenerate.
   4284 	* src/filesystem/Makefile.in: Regenerate.
   4285 	* testsuite/Makefile.in: Regenerate.
   4286 
   4287 2020-01-23  Alexandre Oliva <oliva (a] adacore.com>
   4288 
   4289 	* crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
   4290 	* configure: Rebuild.
   4291 
   4292 	* testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
   4293 
   4294 2020-01-23  Jonathan Wakely  <jwakely (a] redhat.com>
   4295 
   4296 	PR libstdc++/91947
   4297 	* include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
   4298 	rule.
   4299 	* include/Makefile.in: Regenerate.
   4300 
   4301 2020-01-20  Jonathan Wakely  <jwakely (a] redhat.com>
   4302 
   4303 	* doc/xml/faq.xml: Fix grammar.
   4304 	* doc/xml/manual/appendix_contributing.xml: Improve instructions.
   4305 	* doc/xml/manual/spine.xml: Update copyright years.
   4306 	* doc/html/*: Regenerate.
   4307 
   4308 2020-01-19  Eric S. Raymond <esr (a] thyrsus.com>
   4309 
   4310 	* doc/xml/faq.xml: Update for SVN -> Git transition.
   4311 	* doc/xml/manual/appendix_contributing.xml: Likewise.
   4312 	* doc/xml/manual/status_cxx1998.xml: Likewise.
   4313 	* doc/xml/manual/status_cxx2011.xml: Likewise.
   4314 	* doc/xml/manual/status_cxx2014.xml: Likewise.
   4315 	* doc/xml/manual/status_cxx2017.xml: Likewise.
   4316 	* doc/xml/manual/status_cxx2020.xml: Likewise.
   4317 	* doc/xml/manual/status_cxxtr1.xml: Likewise.
   4318 	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
   4319 
   4320 2020-01-18  Iain Sandoe  <iain (a] sandoe.co.uk>
   4321 
   4322 	* include/Makefile.am: Add coroutine to the std set.
   4323 	* include/Makefile.in: Regenerated.
   4324 	* include/std/coroutine: New file.
   4325 
   4326 2020-01-17  Jonathan Wakely  <jwakely (a] redhat.com>
   4327 
   4328 	PR libstdc++/92376
   4329 	* include/bits/c++config: Only do PSTL config when the header is
   4330 	present, to fix freestanding.
   4331 	* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
   4332 	functions if they were detected by configure.
   4333 
   4334 2020-01-16  Kai-Uwe Eckhardt  <kuehro (a] gmx.de>
   4335 	    Matthew Bauer  <mjbauer95 (a] gmail.com>
   4336 	    Jonathan Wakely  <jwakely (a] redhat.com>
   4337 
   4338 	PR bootstrap/64271 (partial)
   4339 	* config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
   4340 	to unsigned short.
   4341 	(ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
   4342 	(ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
   4343 	definitions with NetBSD upstream.
   4344 	(ctype_base::blank): Use _CTYPE_BL.
   4345 	* config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
   4346 	Declaration.
   4347 	(ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
   4348 	(ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
   4349 	parameters to unsigned char.
   4350 	* config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
   4351 
   4352 2020-01-16  Franois Dumont  <fdumont (a] gcc.gnu.org>
   4353 
   4354 	PR libstdc++/91263
   4355 	* include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
   4356 	* include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
   4357 	(_Equality_base): Remove.
   4358 	(_Equality<>::_M_equal): Review implementation. Use
   4359 	std::is_permutation.
   4360 	* testsuite/23_containers/unordered_multiset/operators/1.cc
   4361 	(Hash, Equal, test02, test03): New.
   4362 	* testsuite/23_containers/unordered_set/operators/1.cc
   4363 	(Hash, Equal, test02, test03): New.
   4364 
   4365 2020-01-15  Jonathan Wakely  <jwakely (a] redhat.com>
   4366 
   4367 	PR libstdc++/93267
   4368 	* include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
   4369 	Move here from <bits/range_access.h> and define using __int128 when
   4370 	available.
   4371 	(__is_integer_like, __is_signed_integer_like): Move here from
   4372 	<bits/range_access.h>.
   4373 	(weakly_incrementable): Use __is_signed_integer_like.
   4374 	* include/bits/range_access.h (__max_diff_type, __max_size_type)
   4375 	(__is_integer_like, __is_signed_integer_like): Move to
   4376 	<bits/iterator_concepts.h>.
   4377 	(__make_unsigned_like_t): Move here from <ranges>.
   4378 	* include/std/ranges (__make_unsigned_like_t): Move to
   4379 	<bits/range_access.h>.
   4380 	(iota_view): Replace using-directive with using-declarations.
   4381 	* testsuite/std/ranges/iota/93267.cc: New test.
   4382 	* testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
   4383 
   4384 2020-01-13  Jonathan Wakely  <jwakely (a] redhat.com>
   4385 
   4386 	PR libstdc++/93244
   4387 	* include/bits/fs_path.h (path::generic_string<C,A>)
   4388 	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
   4389 	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
   4390 	root-dir is converted to forward slash in generic pathname.
   4391 	* testsuite/27_io/filesystem/path/generic/utf.cc: New test.
   4392 	* testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
   4393 
   4394 	PR libstdc++/58605
   4395 	* include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
   4396 	Define.
   4397 	(__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
   4398 	(__atomic_float): Add default member initializer for C++20.
   4399 	* include/std/atomic (atomic): Likewise.
   4400 	(atomic::atomic()): Remove noexcept-specifier on default constructor.
   4401 	* include/std/version (__cpp_lib_atomic_value_initialization): Define.
   4402 	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
   4403 	number.
   4404 	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
   4405 	* testsuite/29_atomics/atomic/cons/value_init.cc: New test.
   4406 	* testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
   4407 	* testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
   4408 	expected result for is_trivially_default_constructible.
   4409 	* testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
   4410 	* testsuite/29_atomics/atomic_float/value_init.cc: New test.
   4411 	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
   4412 	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
   4413 	* testsuite/29_atomics/atomic_integral/cons/value_init.cc
   4414 	* testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
   4415 	expected results for is_trivially_default_constructible.
   4416 	* testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
   4417 	new test generator.
   4418 
   4419 2020-01-10  Jonathan Wakely  <jwakely (a] redhat.com>
   4420 
   4421 	* testsuite/util/testsuite_iterators.h: Improve comment.
   4422 
   4423 	* testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
   4424 	initialization syntax.
   4425 
   4426 	PR libstdc++/92285
   4427 	* include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
   4428 	of base class independent of __cplusplus value.
   4429 	[__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
   4430 	type defined in the base class
   4431 	* testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
   4432 	* testsuite/24_iterators/istreambuf_iterator/requirements/
   4433 	base_classes.cc: Adjust expected base class for C++98.
   4434 
   4435 2020-01-09  Olivier Hainque  <hainque (a] adacore.com>
   4436 
   4437 	* doc/xml/manual/appendix_contributing.xml: Document _C2
   4438 	as a reserved identifier, by VxWorks.
   4439 	* include/bits/stl_map.h: Rename _C2 template typenames	as _Cmp2.
   4440 	* include/bits/stl_multimap.h: Likewise.
   4441 
   4442 2020-01-09  Jonathan Wakely  <jwakely (a] redhat.com>
   4443 
   4444 	* include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
   4445 	(_ExtPtr_allocator::operator!=): Add missing const qualifiers.
   4446 	* include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
   4447 	partial specialization to disambiguate the two constrained
   4448 	specializations.
   4449 
   4450 	* include/experimental/type_traits (experimental::is_pod_v): Disable
   4451 	-Wdeprecated-declarations warnings around reference to std::is_pod.
   4452 	* include/std/type_traits (is_pod_v): Likewise.
   4453 	* testsuite/18_support/max_align_t/requirements/2.cc: Also check
   4454 	is_standard_layout and is_trivial. Do not check is_pod for C++20.
   4455 	* testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
   4456 	Add -Wno-deprecated for C++20.
   4457 	* testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
   4458 	* testsuite/20_util/is_pod/value.cc: Likewise.
   4459 	* testsuite/experimental/type_traits/value.cc: Likewise.
   4460 
   4461 2020-01-09  JeanHeyd "ThePhD" Meneide  <phdofthehouse (a] gmail.com>
   4462 
   4463 	* include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
   4464 	* include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
   4465 	* testuite/20_util/is_pod/deprecated-2a.cc: New test.
   4466 
   4467 2020-01-09  Jonathan Wakely  <jwakely (a] redhat.com>
   4468 
   4469 	PR libstdc++/93205
   4470 	* include/bits/random.h (operator>>): Check stream operation succeeds.
   4471 	* include/bits/random.tcc (operator<<): Remove redundant __ostream_type
   4472 	typedefs.
   4473 	(operator>>): Remove redundant __istream_type typedefs. Check stream
   4474 	operations succeed.
   4475 	(__extract_params): New function to fill a vector from a stream.
   4476 	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
   4477 
   4478 	PR libstdc++/93208
   4479 	* config/abi/pre/gnu.ver: Add new exports.
   4480 	* include/std/memory_resource (memory_resource::~memory_resource()):
   4481 	Do not define inline.
   4482 	(monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
   4483 	* src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
   4484 	Define.
   4485 	(monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
   4486 	* testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
   4487 
   4488 2020-01-09  Franois Dumont  <fdumont (a] gcc.gnu.org>
   4489 
   4490 	PR libstdc++/92124
   4491 	* include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
   4492 	template alias.
   4493 	(_Hashtable<>::__fwd_value_for): New.
   4494 	(_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
   4495 	parameter.
   4496 	(_Hashtable<>::_M_assign<>): Add _Ht template parameter.
   4497 	(_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
   4498 	(_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
   4499 	with std::move.
   4500 	(_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
   4501 	(_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
   4502 	Adapt.
   4503 	(_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
   4504 	Adapt.
   4505 	* testsuite/23_containers/unordered_set/92124.cc: New.
   4506 
   4507 2020-01-08  Jonathan Wakely  <jwakely (a] redhat.com>
   4508 
   4509 	PR libstdc++/93201
   4510 	* src/c++17/fs_ops.cc (do_remove_all): New function implementing more
   4511 	detailed error reporting for remove_all. Check result of recursive
   4512 	call before incrementing iterator.
   4513 	(remove_all(const path&), remove_all(const path&, error_code&)): Use
   4514 	do_remove_all.
   4515 	* src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
   4516 	result of recursive call before incrementing iterator.
   4517 	* testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
   4518 	are reported correctly.
   4519 	* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
   4520 
   4521 2020-01-07  Thomas Rodgers  <trodgers (a] redhat.com>
   4522 
   4523 	* include/std/condition_variable
   4524 	(condition_variable_any::wait_on): Rename to match current draft
   4525 	standard.
   4526 	(condition_variable_any::wait_on_until): Likewise.
   4527 	(condition_variable_any::wait_on_for): Likewise.
   4528 	* testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
   4529 	Adjust tests to account for renamed methods.
   4530 
   4531 2020-01-07  Franois Dumont  <fdumont (a] gcc.gnu.org>
   4532 
   4533 	PR libstdc++/92124
   4534 	* include/bits/stl_tree.h
   4535 	(_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
   4536 	std::move_if_noexcept by std::move.
   4537 	* testsuite/23_containers/map/92124.cc: New.
   4538 	* testsuite/23_containers/set/92124.cc: New.
   4539 
   4540 2020-01-06  Jonathan Wakely  <jwakely (a] redhat.com>
   4541 
   4542 	* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
   4543 	(stop_source): Likewise (LWG 3362).
   4544 	* testsuite/30_threads/stop_token/stop_source.cc: Test equality
   4545 	comparisons.
   4546 
   4547 	* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
   4548 	(lexicographical_compare_three_way): Do not depend on
   4549 	__cpp_lib_concepts.
   4550 	* include/std/version (__cpp_lib_three_way_comparison): Only define
   4551 	when __cpp_lib_concepts is defined.
   4552 	* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
   4553 
   4554 2020-01-03  Jonathan Wakely  <jwakely (a] redhat.com>
   4555 
   4556 	* include/bits/stl_algobase.h (lexicographical_compare_three_way):
   4557 	Only define four-argument overload when __cpp_lib_concepts is defined.
   4558 
   4559 2020-01-01  John David Anglin  <danglin (a] gcc.gnu.org>
   4560 
   4561 	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
   4562 
   4563 2020-01-01  Jakub Jelinek  <jakub (a] redhat.com>
   4564 
   4565 	Update copyright years.
   4566 
   4568 Copyright (C) 2020 Free Software Foundation, Inc.
   4569 
   4570 Copying and distribution of this file, with or without modification,
   4571 are permitted in any medium without royalty provided the copyright
   4572 notice and this notice are preserved.
   4573