aix: Add AIX 7.3 configuration and SPDX License Identifiers.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob162d707415e7d10666fc8471d7ce4f09d127ef47
1 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3         * include/bits/ostream.tcc (basic_ostream::write): Call sputn
4         directly instead of using _M_write. Do setstate(__err) all
5         outside the try-catch block.
6         * include/std/ostream (basic_ostream::_M_write): Declare
7         private. Use __ostream_insert. Do not define for the versioned
8         namespace.
10 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
12         * doc/xml/manual/intro.xml: Document LWG 581 change.
13         * doc/html/manual/bugs.html: Regenerate.
14         * include/bits/basic_ios.tcc: Whitespace.
15         * include/bits/ostream.tcc (basic_ostream::flush()): Construct
16         sentry.
17         * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
18         additional cases.
19         * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
20         Likewise.
21         * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
22         * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
23         Likewise.
25 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
27         * include/bits/ostream.tcc (sentry): Only set failbit if badbit
28         is set, not if eofbit is set.
29         (tellp, seekp, seekp): Create sentry object. Do not set badbit
30         on exceptions.
31         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
32         Adjust expected behaviour.
33         * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
34         Likewise.
35         * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
36         Likewise.
37         * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
38         Likewise.
39         * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
40         * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
41         * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
42         * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
44 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
46         * include/std/syncstream (basic_syncbuf::swap()): Remove
47         noexcept, as per LWG 3498.
49 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
51         PR libstdc++/97088
52         * testsuite/17_intro/names.cc: Undef more names for newlib and
53         also for arm-none-linux-gnueabi.
54         * testsuite/experimental/names.cc: Disable PCH.
56 2021-06-25  Matthias Kretz  <m.kretz@gsi.de>
58         * include/experimental/bits/simd.h (__bit_cast): Implement via
59         __builtin_bit_cast #if available.
60         (__proposed::simd_bit_cast): Add overloads for simd and
61         simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
62         available), which return an object of the requested type with
63         the same bits as the argument.
64         * include/experimental/bits/simd_math.h: Use simd_bit_cast
65         instead of __bit_cast to allow casts to fixed_size_simd.
66         (copysign): Remove branch that was only required if __bit_cast
67         cannot be constexpr.
68         * testsuite/experimental/simd/tests/bits/test_values.h: Switch
69         from __bit_cast to __proposed::simd_bit_cast since the former
70         will not cast fixed_size objects anymore.
72 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
74         * include/experimental/bits/simd_math.h
75         (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
76         (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
77         __arg3.
79 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
81         * include/experimental/bits/simd.h (__execute_on_index_sequence)
82         (__execute_on_index_sequence_with_return)
83         (__call_with_n_evaluations, __call_with_subscripts): Add flatten
84         attribute.
86 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
88         * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
89         (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
90         roundp[sd] calls.
92 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
94         * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
95         implementation doesn't require a _VecBltnBtmsk ABI tag, it
96         requires either a 64-Byte input (in which case AVX512F must be
97         available) or AVX512VL.
99 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
101         * include/experimental/bits/simd_math.h: Undefine internal
102         macros after use.
103         (frexp): Move #if to a more sensible position and reformat
104         preceding code.
105         (logb): Call _SimdImpl::_S_logb for fixed_size instead of
106         duplicating the code here.
107         (modf): Simplify condition.
109 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
111         * include/experimental/bits/simd_math.h (fabs): Remove
112         fabs(simd<integral>) overload.
114 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
116         * include/experimental/bits/simd_converter.h
117         (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
118         * include/experimental/bits/simd_fixed_size.h
119         (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
120         arguments by const-ref.
121         (_S_masked_unary): Pass _SimdTuple by const-ref.
123 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
125         * include/experimental/bits/simd_fixed_size.h
126         (_AbisInSimdTuple): Removed.
128 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
130         * include/experimental/bits/simd.h: Add missing operator~
131         overload for simd<floating-point> to __float_bitwise_operators.
132         * include/experimental/bits/simd_builtin.h
133         (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
134         implement complement for floating-point vectors.
135         * include/experimental/bits/simd_fixed_size.h
136         (_SimdImplFixedSize::_S_copysign): New function, forwarding to
137         copysign implementation of _SimdTuple members.
138         * include/experimental/bits/simd_math.h (copysign): Call
139         _SimdImpl::_S_copysign for fixed_size arguments. Simplify
140         generic copysign implementation using the new ~ operator.
142 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
144         * testsuite/experimental/simd/README.md: Fix typos.
146 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
148         * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
149         Add noexcept.
150         * include/bits/unique_ptr.h (unique_ptr::operator*): Add
151         conditional noexcept as per LWG 2762.
152         * testsuite/20_util/shared_ptr/observers/array.cc: Check that
153         dereferencing cannot throw.
154         * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
155         * testsuite/20_util/optional/observers/lwg2762.cc: New test.
156         * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
158 2021-06-23  Patrick Palka  <ppalka@redhat.com>
160         PR c++/101174
161         * testsuite/23_containers/multiset/cons/deduction.cc:
162         Uncomment CTAD example that was rejected by this bug.
163         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
165 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
167         * include/std/chrono (chrono::year::is_leap()): Fix incorrect
168         logic in comment.
170 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
172         * testsuite/experimental/simd/README.md: New file.
174 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
176         * testsuite/experimental/simd/driver.sh: Rewrite output
177         verbosity logic. Add -p/--percentage option. Allow -v/--verbose
178         to be used twice. Add -x and -o short options. Parse long
179         options with = instead of separating space generically. Parce
180         contracted short options. Make unrecognized options an error.
181         If same-line output is active, trap on EXIT to increment the
182         progress (only with --percentage), erase the line and print the
183         current status.
184         * testsuite/experimental/simd/generate_makefile.sh: Initialize
185         helper files for progress account keeping. Update help target
186         for changes to DRIVEROPTS.
188 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
190         * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
191         and associated warning.
192         * testsuite/Makefile.in: Regenerate.
194 2021-06-23  Cassio Neri  <cassio.neri@gmail.com>
195             Jonathan Wakely  <jwakely@redhat.com>
196             Ulrich Drepper  <drepper@redhat.com>
198         * include/std/chrono (chrono::year::is_leap()): Optimize.
200 2021-06-23  Patrick Palka  <ppalka@redhat.com>
202         PR c++/86439
203         * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
204         CTAD examples.
205         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
206         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
207         Mention one of the replaced examples is broken due to PR101174.
208         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
209         * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
210         ambiguous CTAD examples.
211         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
212         Likewise.
213         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
214         Likewise.
215         * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
217 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
219         * include/std/mutex (__detail::__try_lock_impl): Rename
220         parameter to avoid clashing with newlib's __lockable macro.
221         (try_lock): Add 'inline' specifier.
222         * testsuite/17_intro/names.cc: Add check for __lockable.
223         * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
225 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
226             Matthias Kretz  <m.kretz@gsi.de>
228         * include/std/mutex (lock): Replace recursion with iteration
229         when lockables all have the same type.
230         (__detail::__try_lock_impl): Likewise. Pass lockables as
231         parameters, instead of a tuple. Always lock the first one, and
232         recurse for the rest.
233         (__detail::__lock_impl): Adjust call to __try_lock_impl.
234         (__detail::__try_to_lock): Remove.
235         * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
236         * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
237         arguments.
238         * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
239         std::try_lock.
240         * testsuite/30_threads/try_lock/5.cc: New test.
242 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
244         * include/std/memory (declare_reachable, undeclare_reachable)
245         (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
246         (pointer_safety): Only define for C++11 to C++20 inclusive.
247         * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
249 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
251         * include/bits/random.h (seed_seq): Constrain initializer-list
252         constructor.
253         * include/bits/random.tcc (seed_seq): Add template parameter.
254         * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
255         for noexcept.
256         * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
257         constraints.
259 2021-06-22  Thomas Rodgers  <rodgert@appliantology.com>
261         PR libstdc++/100806
262         * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
263         Force _M_release() to wake all waiting threads.
264         * testsuite/30_threads/semaphore/100806.cc: New test.
266 2021-06-21  Jonathan Wakely  <jwakely@redhat.com>
268         * include/std/mutex (__try_to_lock): Move to __detail namespace.
269         (struct __try_lock_impl): Replace with ...
270         (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
271         function templates to implement std::try_lock.
272         (try_lock): Use new __try_lock_impl.
273         (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
274         template to implement std::lock.
275         (lock): Use __lock_impl.
277 2021-06-21  Patrick Palka  <ppalka@redhat.com>
279         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
281 2021-06-20  Patrick Palka  <ppalka@redhat.com>
283         * include/std/ranges (__non_propagating_cache::operator bool):
284         Define for split_view::begin().
285         (split_view): Define as per P2210.
286         (views::__detail::__can_split_view): Define.
287         (views::_Split, views::split): Define.
288         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
289         Test views::split.
290         * testsuite/std/ranges/adaptors/split.cc: New test.
291         * testsuite/std/ranges/p2325.cc (test08a): New test.
292         * testsuite/std/ranges/p2367.cc (test01): Test views::split.
294 2021-06-20  Patrick Palka  <ppalka@redhat.com>
296         * include/std/ranges: Rename views::split to views::lazy_split,
297         split_view to lazy_split_view, etc. throughout.
298         * testsuite/std/ranges/*: Likewise.
299         * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
300         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
302 2021-06-20  Patrick Palka  <ppalka@redhat.com>
304         * include/std/ranges (split_view::_OuterIter::__at_end):
305         Check _M_trailing_empty.
306         (split_view::_OuterIter::_M_trailing_empty): Define this
307         data member.
308         (split_view::_OuterIter::operator++): Set _M_trailing_empty
309         appropriately.
310         (split_view::_OuterIter::operator==): Compare
311         _M_trailing_empty.
312         * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
313         split parts instead of one.
314         * testsuite/std/ranges/adaptors/split.cc (test11): New test.
316 2021-06-20  Patrick Palka  <ppalka@redhat.com>
318         * include/std/ranges (split_view::_InnerIter::base): Define as
319         per P2210.
321 2021-06-19  Patrick Palka  <ppalka@redhat.com>
323         * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
324         Consider _Base instead of _Vp as per LWG 3555.
325         (elements_view::_Iterator::_S_iter_concept): Likewise.
327 2021-06-19  Patrick Palka  <ppalka@redhat.com>
329         * include/std/ranges (split_view::_OuterIter::value_type::begin):
330         Remove the non-const overload, and remove the copyable constraint
331         on the const overload as per LWG 3553.
333 2021-06-19  Patrick Palka  <ppalka@redhat.com>
335         * include/bits/stl_iterator.h
336         (__detail::__common_iter_use_postfix_proxy): Add
337         move_constructible constraint as per LWG 3546.
338         (common_iterator::__postfix_proxy): Adjust initializer of
339         _M_keep as per LWG 3546.
341 2021-06-18  Patrick Palka  <ppalka@redhat.com>
343         PR libstdc++/100387
344         * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
345         to limit comparison complexity to 3*N/2.
346         (__minmax_element_fn::operator()): Likewise.
347         (shift_right): Avoid premature std::move of __result.
348         * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
349         New tests.
350         * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
351         Likewise.
353 2021-06-18  Patrick Palka  <ppalka@redhat.com>
355         * include/std/concepts (convertible_to): Just use declval as per
356         LWG 3557.
358 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
360         PR libstdc++/95833
361         * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
362         incorrect static_assert with ones matching the 'Mandates'
363         conditions in the standard.
364         * testsuite/26_numerics/reduce/95833.cc: New test.
366 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
368         * testsuite/21_strings/basic_string/cons/char/1.cc: Use
369         diagnostic pragma to suppress -Wstringop-overread error.
371 2021-06-18  Patrick Palka  <ppalka@redhat.com>
373         * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
374         (find_if, __find_if_not_fn, find_if_not, _in_in_result)
375         (__mismatch_fn, mismatch, __search_fn, search): Move to ...
376         * include/bits/ranges_util.h: ... here.
377         * include/std/ranges (__detail::find, __detail::find_if)
378         (__detail::find_if_not, __detail::mismatch): Remove.
379         (filter_view): Use ranges::find_if instead.
380         (drop_while_view): Use ranges::find_if_not instead.
381         (split_view): Use ranges::find and ranges::mismatch instead.
383 2021-06-18  Patrick Palka  <ppalka@redhat.com>
385         * include/bits/iterator_concepts.h (weakly_incrementable): Remove
386         default_initializable requirement.
387         * include/bits/ranges_base.h (ranges::view): Likewise.
388         * include/bits/ranges_util.h (subrange): Constrain the default
389         ctor.
390         * include/bits/stl_iterator.h (back_insert_iterator): Remove the
391         default ctor.
392         (front_insert_iterator): Likewise.
393         (insert_iterator): Likewise.  Remove NSDMIs.
394         (common_iterator): Constrain the default ctor.
395         (counted_iterator): Likewise.
396         * include/bits/stream_iterator.h (ostream_iterator): Remove the
397         default ctor.
398         * include/std/ranges (__detail::__box::operator=): Handle
399         self-assignment in the primary template.
400         (__detail::__box): In the partial specialization: adjust
401         constraints as per P2325.  Add specialized operator= for the
402         case when the wrapped type is not copyable.  Constrain the
403         default ctor.  Avoid list-initialization.
404         (single_view): Constraint the default ctor.
405         (iota_view): Relax semiregular constraint to copyable.
406         Constrain the default ctor.
407         (iota_view::_Iterator): Constraint the default ctor.
408         (basic_istream_view): Remove the default ctor.  Remove NSDMIs.
409         Remove redundant checks for empty _M_stream.
410         (basic_istream_view::_Iterator): Likewise.
411         (ref_view): Remove the default ctor.  Remove NSDMIs.
412         (ref_view::_Iterator): Constrain the default ctor.
413         (__detail::__non_propagating_cache::operator=): Define overload
414         for assigning from a value of the underlying type.
415         (filter_view): Likewise.
416         (filter_view::_Iterator): Likewise.
417         (transform_view): Likewise.
418         (transform_view::_Iterator): Likewise.
419         (take_view): Likewise.
420         (take_view::_Iterator): Likewise.
421         (take_while_view): Likewise.
422         (take_while_view::_Iterator): Likewise.
423         (drop_while_view): Likewise.
424         (drop_while_view::_Iterator): Likewise.
425         (join_view): Likewise.
426         (split_view::_OuterIter::__current): Adjust after changing the
427         type of _M_current.
428         (split_view::_M_current): Wrap it in a __non_propagating_cache.
429         (split_view::split_view): Constrain the default ctor.
430         (common_view): Constrain the default ctor.
431         (reverse_view): Likewise.
432         (elements_view): Likewise.
433         * include/std/span (enable_view<span<_ElementType, _Extent>>):
434         Define this partial specialization to true unconditionally.
435         * include/std/version (__cpp_lib_ranges): Adjust value.
436         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
437         Don't attempt to default construct a back_insert_iterator.
438         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
439         Don't attempt to default construct a front_insert_iterator.
440         * testsuite/24_iterators/insert_iterator/constexpr.cc:
441         Don't attempt to default construct an insert_iterator.
442         * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
443         Remove this test for default constructibility of ostream_iterator.
444         * testsuite/std/ranges/97600.cc: Don't attempt to default
445         construct a basic_istream_view.
446         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
447         Rename to ...
448         * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
449         (test02): Adjust now that __box is copyable-box not
450         semiregular-box.
451         (test03): New test.
452         * testsuite/std/ranges/p2325.cc: New test.
453         * testsuite/std/ranges/single_view.cc (test06): New test.
454         * testsuite/std/ranges/view.cc: Adjust now that view doesn't
455         require default_initializable.
457 2021-06-17  Jonathan Wakely  <jwakely@redhat.com>
459         PR libstdc++/91488
460         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
461         define when is_constant_evaluated is available.
462         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
463         Likewise.
464         (__constant_string_p, __constant_array_p): Remove.
465         (char_traits): Use is_constant_evaluated directly.
466         * include/std/version (__cpp_lib_constexpr_char_traits)
467         (__cpp_lib_constexpr_string): Only define when
468         is_constant_evaluated is available.
470 2021-06-17  Patrick Palka  <ppalka@redhat.com>
472         PR libstdc++/100940
473         * include/std/ranges (__adaptor::_Partial): For the "simple"
474         forwarding partial specializations, also require that
475         the extra arguments are trivially copyable.
476         * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
478 2021-06-17  Patrick Palka  <ppalka@redhat.com>
480         PR libstdc++/100940
481         * include/std/ranges (__adaptor::_RangeAdaptor): Document the
482         template form of _S_has_simple_extra_args.
483         (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
484         parameter pack.  Try to treat _S_has_simple_extra_args as a
485         variable template parameterized by _Args.
486         (__adaptor::_Partial): Pass _Arg/_Args to the constraint
487         __adaptor_has_simple_extra_args.
488         (views::_Take::_S_has_simple_extra_args): Templatize according
489         to the type of the extra argument.
490         (views::_Drop::_S_has_simple_extra_args): Likewise.
491         (views::_Split::_S_has_simple_extra_args): Define.
492         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
493         Adjust after changes to _S_has_simple_extra_args mechanism.
494         (test03): Define.
496 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
498         * include/bits/iterator_concepts.h (__decay_copy): Name type.
500 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
502         * include/bits/ranges_base.h (ranges::begin, ranges::end)
503         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
504         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
505         (ranges::empty, ranges::data, ranges::cdata): Remove final
506         keywords and deleted operator& overloads.
507         * testsuite/24_iterators/customization_points/iter_move.cc: Use
508         new is_customization_point_object function.
509         * testsuite/24_iterators/customization_points/iter_swap.cc:
510         Likewise.
511         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
512         Likewise.
513         * testsuite/std/ranges/access/begin.cc: Likewise.
514         * testsuite/std/ranges/access/cbegin.cc: Likewise.
515         * testsuite/std/ranges/access/cdata.cc: Likewise.
516         * testsuite/std/ranges/access/cend.cc: Likewise.
517         * testsuite/std/ranges/access/crbegin.cc: Likewise.
518         * testsuite/std/ranges/access/crend.cc: Likewise.
519         * testsuite/std/ranges/access/data.cc: Likewise.
520         * testsuite/std/ranges/access/empty.cc: Likewise.
521         * testsuite/std/ranges/access/end.cc: Likewise.
522         * testsuite/std/ranges/access/rbegin.cc: Likewise.
523         * testsuite/std/ranges/access/rend.cc: Likewise.
524         * testsuite/std/ranges/access/size.cc: Likewise.
525         * testsuite/std/ranges/access/ssize.cc: Likewise.
526         * testsuite/util/testsuite_iterators.h
527         (is_customization_point_object): New function.
529 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
531         * include/bits/ranges_base.h (ranges::begin, ranges::end)
532         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
533         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
534         (ranges::empty, ranges::data, ranges::cdata): Make types final.
535         Add deleted operator& overloads.
536         (ranges::advance, ranges::distance, ranges::next, ranges::prev):
537         Likewise.
538         * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
539         ill-formed & expressions with using-declarations. Add checks for
540         other function objects.
542 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
544         * include/bits/ranges_util.h (view_interface): Add noexcept to
545         empty, operator bool, data and size members.
546         (subrange): Add noexcept to constructors.
547         * include/std/ranges (single_view, ref_view): Add noexcept to
548         constructors.
549         (views::single, views::all): Add noexcept.
550         * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
551         * testsuite/std/ranges/single_view.cc: Likewise.
553 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
555         * include/bits/ranges_util.h (subrange): Add __size_type typedef
556         and use it to simplify declarations.
557         (subrange(i, s, n)): Remove assertion.
558         * testsuite/std/ranges/subrange/constexpr.cc: New test.
560 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
562         * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
563         Replace with function object.
564         (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
565         __decay_copy unqualified.
566         * include/bits/ranges_base.h (__member_end, __adl_end):
567         Likewise. Use __range_iter_t for type of ranges::begin.
568         (__member_rend): Use correct value category for rbegin argument.
569         (__member_data): Use __decay_copy unqualified.
570         (__begin_data): Use __range_iter_t for type of ranges::begin.
572 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
574         * include/bits/ranges_base.h (ranges::empty): Check whether
575         conversion to bool can throw.
576         * testsuite/std/ranges/access/empty.cc: Check for correct
577         noexcept-specifier.
579 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
581         PR libstdc++/100894
582         * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
583         use the type if it's a reference.
584         * testsuite/20_util/common_reference/100894.cc: New test.
586 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
588         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
589         Add dg-require-filesystem-ts directive.
591 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
593         PR libstdc++/101034
594         * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
595         (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
596         to use lvalue.
597         * testsuite/20_util/any/cons/101034.cc: New test.
599 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
601         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
602         -std=gnu++17 option.
604 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
606         PR libstdc++/101056
607         * libsupc++/compare (compare_partial_order_fallback): Add
608         constraint using reversed parameter order, as per LWG 3465.
609         * testsuite/18_support/comparisons/algorithms/fallback.cc:
610         Adjust expected result.
612 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
614         * libsupc++/compare (__decayed_same_as): New helper concept.
615         (strong_order, weak_order, partial_order): Constrain with new
616         concept instead of using static_assert.
617         (compare_strong_order_fallback, compare_weak_order_fallback)
618         (compare_partial_order_fallback): Likewise. Do not deduce return
619         types. Remove redundant if-constexpr checks.
620         * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
622 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
624         PR libstdc++/101055
625         * include/std/tuple: Use reserved form of attribute name.
626         * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
627         check for no_unique_address.
628         * testsuite/17_intro/headers/c++2014/all_attributes.cc:
629         Likewise.
630         * testsuite/17_intro/headers/c++2017/all_attributes.cc:
631         Likewise.
633 2021-06-11  Jonathan Wakely  <jwakely@redhat.com>
635         * include/bits/fs_path.h (operator==, operator<=>): Use new
636         _S_compare function.
637         (path::_S_compare): New function to call path::compare in a
638         context where path::iterator is complete.
639         * include/experimental/bits/fs_path.h (operator<, operator==):
640         Define after path::iterator is complete.
641         * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
642         test.
643         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
644         New test.
646 2021-06-09  Thomas Rodgers  <rodgert@appliantology.com>
648         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
649         test logic with constexpr check for is_always_lock_free.
651 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
653         PR libstdc++/100982
654         * include/std/optional (optional::operator=(const optional<U>&)):
655         Fix value category used in is_assignable check.
656         * testsuite/20_util/optional/assignment/100982.cc: New test.
658 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
660         * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
661         * include/bits/iterator_concepts.h (indirectly_readable_traits):
662         Add LWG issue number to comment.
663         * include/std/memory_resource (polymorphic_allocator::release):
664         Deprecate.
665         * testsuite/20_util/allocator/requirements/typedefs.cc: Add
666         dg-warning for deprecation. Also check std::allocator<void>.
668 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
670         PR libstdc++/100889
671         * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
672         Change parameter type from _Tp to _Tp*.
673         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
674         coverage of types tested.
676 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
678         * include/std/barrier (__tree_barrier::_M_arrive): Remove
679         unnecessary hasher instantiation.
681 2021-06-08  Jonathan Wakely  <jwakely@redhat.com>
683         * include/experimental/propagate_const (swap): Constrain.
684         * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
686 2021-06-07  Avi Kivity  <avi@scylladb.com>
688         PR libstdc++/100900
689         * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
690         Add missing typename.
692 2021-06-07  Jonathan Wakely  <jwakely@redhat.com>
694         PR libstdc++/98842
695         * include/std/optional (operator<=>(const optional<T>& const U&)):
696         Add missing constraint and add workaround for template
697         recursion.
698         * testsuite/20_util/optional/relops/three_way.cc: Check that
699         type without equality comparison cannot be compared when wrapped
700         in std::optional.
702 2021-06-05  Jonathan Wakely  <jwakely@redhat.com>
704         PR libstdc++/100824
705         * include/bits/ranges_base.h (_SSize): Return signed type.
706         * testsuite/std/ranges/access/ssize.cc: Check with __int128.
708 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
710         * include/bits/ranges_base.h (_SSize): Return the result of
711         ranges::size converted to the wider of make-signed-like-t<S> and
712         ptrdiff_t, rather than the ranges different type.
713         * testsuite/std/ranges/access/ssize.cc: Adjust expected result
714         for an iota_view that uses an integer class type for its
715         difference_type.
717 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
719         PR libstdc++/100824
720         * include/bits/ranges_base.h (__member_data): Use __decay_copy.
721         * testsuite/std/ranges/access/data.cc: Add testcase from PR.
723 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
725         PR libstdc++/100824
726         * include/bits/iterator_concepts.h (__detail::__decay_copy)
727         (__detail::__member_begin, __detail::__adl_begin): Move to
728         namespace ranges::__cust_access.
729         (__detail::__ranges_begin): Likewise, and rename to __begin.
730         Remove redundant static assertion.
731         * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
732         Use lvalue in noexcept specifier.
733         (__as_const): Add non-deduced parameter for value category.
734         (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
735         __as_const.
736         (__member_size, __adl_size, __member_empty, __size0_empty):
737         (__eq_iter_empty, __adl_data): Use lvalue objects in
738         requirements.
739         (__sentinel_size): Likewise. Add check for conversion to
740         unsigned-like.
741         (__member_data): Allow non-lvalue types to satisfy the concept,
742         but use lvalue object in requirements.
743         (_Size, _SSize): Remove forwarding to always use an lvalue.
744         (_Data): Likewise. Add static assertion for arrays.
745         * testsuite/std/ranges/access/cdata.cc: Adjust expected
746         behaviour for rvalues. Add negative tests for ill-formed
747         expressions.
748         * testsuite/std/ranges/access/data.cc: Likewise.
749         * testsuite/std/ranges/access/empty.cc: Adjust expected
750         behaviour for rvalues.
751         * testsuite/std/ranges/access/size.cc: Likewise.
753 2021-06-04  Tim Adye  <Tim.Adye@cern.ch>
755         * include/std/any (any::_Manager::_S_access): New static
756         function to access the contained value.
757         (any::emplace, __any_caster): Use _S_access member of the
758         manager type.
760 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
762         * doc/xml/manual/status_cxx2020.xml:
763         * doc/html/*: Regenerate.
764         * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
765         Define.
766         * include/std/version (__cpp_lib_generic_unordered_lookup):
767         Define.
768         * testsuite/23_containers/unordered_map/operations/1.cc: Check
769         feature test macro.
770         * testsuite/23_containers/unordered_set/operations/1.cc:
771         Likewise.
773 2021-06-03  Patrick Palka  <ppalka@redhat.com>
775         * include/bits/ranges_algo.h (__detail::__can_reread_output):
776         Factor out this concept from ...
777         (__unique_copy_fn::operator()): ... here.  Use the concept
778         throughout.
779         * testsuite/std/ranges/range.cc: Remove now ill-formed use
780         of range_value_t on an output_range.
781         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
782         Define value_type, pointer and reference member types to void.
784 2021-06-03  Patrick Palka  <ppalka@redhat.com>
786         PR libstdc++/100577
787         * include/std/ranges (_RangeAdaptorClosure): Document
788         _S_has_simple_call_op mechanism.
789         (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
790         (__closure_has_simple_call_op): New concept.
791         (__adaptor_has_simple_extra_args): Likewise.
792         (_Partial<_Adaptor, _Args...>): New partial specialization.
793         (_Partial<_Adaptor, _Arg>): Likewise.
794         (_Pipe<_Lhs, _Rhs>): Likewise.
795         (views::_All::_S_has_simple_call_op): Define to true.
796         (views::_Filter::_S_has_simple_extra_args): Likewise.
797         (views::_Transform::_S_has_simple_extra_args): Likewise.
798         (views::_Take::_S_has_simple_extra_args): Likewise.
799         (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
800         (views::_Drop::_S_has_simple_extra_args): Likewise.
801         (views::_DropWhile::_S_has_simple_extra_args): Likewise.
802         (views::_Join::_S_has_simple_call_op): Likewise.
803         (views::_Split): Document why we don't define
804         _S_has_simple_extra_args to true for this adaptor.
805         (views::_Common::_S_has_simple_call_op): Define to true.
806         (views::_Reverse::_S_has_simple_call_op): Likewise.
807         (views::_Elements::_S_has_simple_call_op): Likewise.
808         * testsuite/std/ranges/adaptors/100577.cc: New test.
810 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
812         PR libstdc++/100863
813         PR libstdc++/65816
814         * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
815         Value-initialize subobject.
816         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
817         Remove XFAIL.
818         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
819         Remove XFAIL.
821 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
823         PR libstdc++/96088
824         * testsuite/23_containers/unordered_map/96088.cc: Adjust
825         expected number of allocations.
826         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
828 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
830         * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
831         * doc/xml/manual/status_cxxtr1.xml: Likewise.
832         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
833         * doc/html/*: Regenerate.
835 2021-06-01  Patrick Palka  <ppalka@redhat.com>
837         PR c++/65816
838         * testsuite/23_containers/deque/allocator/default_init.cc,
839         testsuite/23_containers/forward_list/allocator/default_init.cc,
840         testsuite/23_containers/list/allocator/default_init.cc,
841         testsuite/23_containers/map/allocator/default_init.cc,
842         testsuite/23_containers/set/allocator/default_init.cc,
843         testsuite/23_containers/vector/allocator/default_init.cc,
844         testsuite/23_containers/vector/bool/allocator/default_init.cc:
845         Remove xfail.
847 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
849         * testsuite/23_containers/unordered_map/96088.cc: Change
850         effective target to c++17.
851         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
853 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
855         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
856         isblank for C++11 and later.
858 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
860         PR libstdc++/100833
861         * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
862         Fix return value for no-op case.
863         * testsuite/24_iterators/range_operations/advance.cc: Test
864         return values of three-argument overload.
866 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
868         PR libstdc++/99453
869         * python/Makefile.am: Use archive name for printer hook if no
870         dynamic library name is available.
871         * python/Makefile.in: Regenerate.
873 2021-05-30  Gerald Pfeifer  <gerald@pfeifer.com>
875         * doc/xml/manual/abi.xml: Remove dead reference to "Intel
876         Compilers for Linux: Compatibility with GNU Compilers" article.
877         * doc/html/manual/abi.html: Regenerate.
879 2021-05-26  François Dumont  <fdumont@gcc.gnu.org>
881         * include/debug/formatter.h
882         (_Error_formatter::_Parameter::_Named): New.
883         (_Error_formatter::_Parameter::_Type): Inherit latter.
884         (_Error_formatter::_Parameter::_M_integer): Likewise.
885         (_Error_formatter::_Parameter::_M_string): Likewise.
886         * src/c++11/debug.cc: Include <cstring>.
887         (_Print_func_t): New.
888         (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
889         (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
890         (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
891         (print_type): Rename in...
892         (print_type_info): ...this. Use pretty_print.
893         (print_address, print_integer): New.
894         (print_named_name, print_iterator_constness, print_iterator_state): New.
895         (print_iterator_seq_type): New.
896         (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
897         (print_field): Use latters.
898         (print_quoted_named_name, print_type_type, print_type, print_instance): New.
899         (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
900         Change signature to...
901         (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
902         ...this and adapt. Remove intermediate buffer to render input string.
903         (print_string(PrintContext&, const char*, ptrdiff_t)): New.
905 2021-05-26  Jonathan Wakely  <jwakely@redhat.com>
907         PR libstdc++/100768
908         * include/bits/ranges_base.h (advance, distance, next, prev):
909         Replace function templates with function objects.
910         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
911         Adjust for changes to function objects.
912         * testsuite/std/ranges/adaptors/elements.cc: Add using
913         declarations for names from namespace ranges.
914         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
915         * testsuite/24_iterators/range_operations/100768.cc: New test.
917 2021-05-24  François Dumont  <fdumont@gcc.gnu.org>
919         PR libstdc++/96088
920         * include/bits/hashtable_policy.h (_Select2nd): New.
921         (_NodeBuilder<>): New.
922         (_ReuseOrAllocNode<>::operator()): Use variadic template args.
923         (_AllocNode<>::operator()): Likewise.
924         * include/bits/hashtable.h
925         (_Hashtable<>::__node_builder_t): New.
926         (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
927          New.
928         (_Hashtable<>::_S_forward_key): New.
929         (_Hashtable<>::_M_insert): Use latter.
930         (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
931         Instantiate node first, compute hash code second.
932         * testsuite/23_containers/unordered_map/96088.cc: New test.
933         * testsuite/23_containers/unordered_multimap/96088.cc: New test.
934         * testsuite/23_containers/unordered_multiset/96088.cc: New test.
935         * testsuite/23_containers/unordered_set/96088.cc: New test.
936         * testsuite/util/replacement_memory_operators.h
937         (counter::_M_increment): New.
938         (counter::_M_decrement): New.
939         (counter::reset()): New.
941 2021-05-24  Patrick Palka  <ppalka@redhat.com>
943         PR libstdc++/100479
944         * include/std/ranges (__detail::__non_propagating_cache): Move
945         definition up to before that of _CachedPosition.  Make base
946         class _Optional_base protected instead of private.  Add const
947         overload for operator*.
948         (__detail::_CachedPosition): Rewrite the partial specialization
949         for forward ranges as a derived class of __non_propagating_cache.
950         Remove the size constraint on the partial specialization for
951         random access ranges.  Add copy/move/copy-assignment/move-assignment
952         members to the offset partial specialization for random
953         access ranges that propagate the cached value but additionally
954         invalidate it in the source object on move.
955         * testsuite/std/ranges/adaptors/100479.cc: New test.
957 2021-05-24  Jonathan Wakely  <jwakely@redhat.com>
959         * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
960         call to ranges::next.
961         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
962         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
963         Likewise.
964         * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
965         swap_ranges.
967 2021-05-21  Patrick Palka  <ppalka@redhat.com>
969         PR libstdc++/100606
970         * include/std/ranges (drop_while_view::begin): Assert the
971         precondition added by LWG 3490.
973 2021-05-21  Patrick Palka  <ppalka@redhat.com>
975         PR libstdc++/100690
976         * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
977         Split out this member function from ...
978         (iota_view::_Sentinel::operator-): ... here, for sake of access
979         control.
980         * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
982 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
984         * include/bits/random.tcc (__representable_as_double)
985         (__p1_representable_as_double): Add "" to static asserts.
987 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
989         PR libstdc++/100676
990         * include/bits/c++config (__glibcxx_assert_1): Rename to ...
991         (__glibcxx_constexpr_assert): ... this.
992         (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
993         (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
994         or __glibcxx_assert_impl.
995         (__glibcxx_assert_2): Remove
996         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
997         __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
998         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
999         Adjust expected error.
1000         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1001         Likewise.
1002         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1003         Likewise.
1004         Likewise.
1005         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1006         Likewise.
1007         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1008         Likewise.
1009         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1010         Likewise.
1011         * testsuite/23_containers/span/back_neg.cc: Likewise.
1012         * testsuite/23_containers/span/front_neg.cc: Likewise.
1013         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1015 2021-05-20  Patrick Palka  <ppalka@redhat.com>
1017         PR libstdc++/100639
1018         * include/bits/stl_iterator.h (reverse_iterator::difference_type):
1019         In C++20 mode, define in terms of iter_difference_t as per P0896R4.
1020         (reverse_iterator::reference): Likewise, but with iter_reference_t.
1021         (reverse_iterator::value_type): Likewise, but with iter_value_t.
1022         * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
1023         * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
1025 2021-05-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>
1027         PR libstdc++/100361
1028         * include/std/charconv (to_chars): Hide the overloads for
1029         floating-point types for 16 bit targets.
1030         * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
1031         * testsuite/20_util/to_chars/double.cc: Run this test only on
1032         size32plus targets.
1033         * testsuite/20_util/to_chars/float.cc: Likewise.
1034         * testsuite/20_util/to_chars/long_double.cc: Likewise.
1036 2021-05-18  Patrick Palka  <ppalka@redhat.com>
1038         PR libstdc++/100631
1039         * include/std/ranges (elements_view::_Sentinel::operator-): Use
1040         _M_distance_from in the other operator- overload too.
1041         * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
1043 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
1045         * testsuite/lib/prune.exp: Add note about 'dg-note'.
1047 2021-05-18  Patrick Palka  <ppalka@redhat.com>
1049         PR libstdc++/100475
1050         * include/std/ranges (__box::__box): Use non-list-initialization
1051         in member initializer list of in-place constructor of the
1052         partial specialization for semiregular types.
1053         (__box::operator->): Use std::__addressof.
1054         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
1055         (test02): New test.
1056         * testsuite/std/ranges/single_view.cc (test04): New test.
1058 2021-05-18  Patrick Palka  <ppalka@redhat.com>
1060         PR libstdc++/100621
1061         * include/std/ranges (reverse_view::_S_needs_cached_begin):
1062         Set to true if the underlying non-common random-access range
1063         doesn't have a sized sentinel.
1065 2021-05-18  Patrick Palka  <ppalka@redhat.com>
1067         PR libstdc++/100631
1068         * include/std/ranges (elements_view::_Iterator): Also befriend
1069         _Sentinel<!_Const>.
1070         (elements_view::_Sentinel::_M_equal): Templatize.
1071         (elements_view::_Sentinel::_M_distance_from): Split out from ...
1072         (elements_view::_Sentinel::operator-): ... here.  Depend on
1073         _Base2 instead of _Base in the return type.
1074         * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
1075         New tests.
1077 2021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>
1079         * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
1080         until value change observed.
1081         (__waiter_base::_M_laundered): New member.
1082         (__waiter_base::_M_notify): Check _M_laundered to determine
1083         whether to wake one or all.
1084         (__detail::__atomic_compare): Return true if call to
1085         __builtin_memcmp() == 0.
1086         (__waiter_base::_S_do_spin_v): Adjust predicate.
1087         * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
1088         test.
1090 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
1092         PR libstdc++/100630
1093         * include/experimental/bits/fs_path.h (__is_constructible_from):
1094         Test construction from a const lvalue, not an rvalue.
1095         * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
1096         * testsuite/experimental/filesystem/path/construct/100630.cc:
1097         New test.
1099 2021-05-17  Antony Polukhin  <antoshkka@gmail.com>
1101         PR libstdc++/89728
1102         * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
1103         Declare (but do not define) partial specialization.
1104         * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
1106 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
1108         * include/std/thread (jthread::_S_create): Fix static assert
1109         message.
1110         * testsuite/30_threads/jthread/95989.cc: Re-enable test.
1111         * testsuite/30_threads/jthread/jthread.cc: Do not require
1112         pthread effective target.
1113         * testsuite/30_threads/jthread/2.cc: Moved to...
1114         * testsuite/30_threads/jthread/version.cc: ...here.
1116 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
1118         * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
1119         * doc/Makefile.in: Regenerate.
1120         * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
1121         value.
1122         * scripts/run_doxygen (print_usage): Always print to stdout and
1123         do not exit.
1124         (fail): New function for exiting on error.
1125         (parse_options): Handle --latex_cmd. Do not treat --help the
1126         same as errors. Simplify handling of required arguments.
1128 2021-05-12  Jonathan Wakely  <jwakely@redhat.com>
1130         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1131         Increase dg-timeout-factor to 4. Fix -Wunused-parameter
1132         warnings. Replace bitwise AND with logical AND in loop
1133         condition.
1134         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1135         Replace bitwise AND with logical AND in loop condition.
1136         * testsuite/util/pstl/test_utils.h: Remove unused parameter
1137         names.
1139 2021-05-11  Patrick Palka  <ppalka@redhat.com>
1141         * src/c++17/ryu/LOCAL_PATCHES: Update.
1142         * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
1143         Remove declarations for never-defined functions.
1144         * testsuite/20_util/to_chars/4.cc: New test.
1146 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1148         * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
1149         alternative for macro.
1150         * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
1151         target keyword.
1152         * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
1153         syntax.
1155 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1157         * include/bits/allocator.h (allocator<void>) [C++20]: Add
1158         missing noexcept to constructor. Restore missing POCMA and
1159         is_always_equal_traits.
1160         [C++17]: Make construct and destroy members private and
1161         declare allocator_traits as a friend.
1162         * include/bits/memoryfwd.h (allocator_traits): Declare.
1163         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
1164         Add nodiscard attribute. Add static assertion for LWG 3307.
1165         * include/ext/new_allocator.h (new_allocator::allocate): Add
1166         static assertion for LWG 3307.
1167         * testsuite/20_util/allocator/void.cc: Check that converting
1168         constructor is noexcept. Check for propagation traits and
1169         size_type and difference_type. Check that pointer and
1170         const_pointer are gone in C++20.
1172 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1174         * include/std/stop_token: Remove TODO comment.
1176 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1178         * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
1179         Initialize a non-reference deleter from an rvalue, as per LWG
1180         3548.
1181         (__shared_ptr::_UniqCompatible): Add missing constraint.
1182         * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
1183         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
1184         constraints.
1186 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1188         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
1189         -std=gnu++17 from dg-options directive.
1190         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
1191         Likewise.
1192         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
1193         Likewise.
1194         * testsuite/17_intro/headers/c++2017/operator_names.cc:
1195         Likewise.
1196         * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
1197         * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
1198         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
1199         Likewise.
1200         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
1201         * testsuite/18_support/byte/81076.cc: Likewise.
1202         * testsuite/18_support/byte/global_neg.cc: Likewise.
1203         * testsuite/18_support/byte/ops.cc: Likewise.
1204         * testsuite/18_support/byte/requirements.cc: Likewise.
1205         * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
1206         * testsuite/18_support/launder/1.cc: Likewise.
1207         * testsuite/18_support/launder/nodiscard.cc: Likewise.
1208         * testsuite/18_support/launder/requirements.cc: Likewise.
1209         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
1210         * testsuite/18_support/new_aligned.cc: Likewise.
1211         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1212         Likewise.
1213         * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
1214         Likewise.
1215         * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
1216         * testsuite/20_util/addressof/requirements/constexpr.cc:
1217         Likewise.
1218         * testsuite/20_util/as_const/1.cc: Likewise.
1219         * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
1220         * testsuite/20_util/bind/83427.cc: Likewise.
1221         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1222         * testsuite/20_util/bool_constant/requirements.cc: Likewise.
1223         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
1224         Likewise.
1225         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1226         Likewise.
1227         * testsuite/20_util/duration_cast/rounding.cc: Likewise.
1228         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1229         Likewise.
1230         * testsuite/20_util/from_chars/1_neg.cc: Likewise.
1231         * testsuite/20_util/from_chars/requirements.cc: Likewise.
1232         * testsuite/20_util/function/91456.cc: Likewise.
1233         * testsuite/20_util/function/cons/deduction.cc: Likewise.
1234         * testsuite/20_util/function_objects/83607.cc: Likewise.
1235         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1236         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1237         * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
1238         * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
1239         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1240         Likewise.
1241         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1242         Likewise.
1243         * testsuite/20_util/has_unique_object_representations/value.cc:
1244         Likewise.
1245         * testsuite/20_util/hash/nullptr.cc: Likewise.
1246         * testsuite/20_util/in_place/requirements.cc: Likewise.
1247         * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
1248         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1249         Likewise.
1250         * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
1251         Likewise.
1252         * testsuite/20_util/is_aggregate/value.cc: Likewise.
1253         * testsuite/20_util/is_invocable/83395.cc: Likewise.
1254         * testsuite/20_util/is_invocable/91456.cc: Likewise.
1255         * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
1256         Likewise.
1257         * testsuite/20_util/is_invocable/requirements/typedefs.cc:
1258         Likewise.
1259         * testsuite/20_util/is_invocable/value.cc: Likewise.
1260         * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
1261         * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
1262         * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
1263         * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
1264         Likewise.
1265         * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
1266         * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
1267         * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
1268         Likewise.
1269         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
1270         Likewise.
1271         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
1272         * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
1273         Likewise.
1274         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
1275         Likewise.
1276         * testsuite/20_util/is_nothrow_swappable_with/value.cc:
1277         Likewise.
1278         * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
1279         Likewise.
1280         * testsuite/20_util/is_swappable/requirements/typedefs.cc:
1281         Likewise.
1282         * testsuite/20_util/is_swappable/value.cc: Likewise.
1283         * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
1284         Likewise.
1285         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
1286         Likewise.
1287         * testsuite/20_util/is_swappable_with/value.cc: Likewise.
1288         * testsuite/20_util/logical_traits/83134.cc: Likewise.
1289         * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
1290         Likewise.
1291         * testsuite/20_util/logical_traits/requirements/typedefs.cc:
1292         Likewise.
1293         * testsuite/20_util/logical_traits/value.cc: Likewise.
1294         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
1295         * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
1296         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
1297         Likewise.
1298         * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
1299         * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
1300         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1301         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1302         * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
1303         Likewise.
1304         * testsuite/20_util/time_point/arithmetic/constexpr.cc:
1305         Likewise.
1306         * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
1307         * testsuite/20_util/to_chars/3.cc: Likewise.
1308         * testsuite/20_util/to_chars/chars_format.cc: Likewise.
1309         * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
1310         * testsuite/20_util/to_chars/requirements.cc: Likewise.
1311         * testsuite/20_util/tuple/78939.cc: Likewise.
1312         * testsuite/20_util/tuple/apply/1.cc: Likewise.
1313         * testsuite/20_util/tuple/apply/2.cc: Likewise.
1314         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1315         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1316         * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
1317         * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
1318         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1319         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1320         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1321         Likewise.
1322         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1323         * testsuite/20_util/void_t/1.cc: Likewise.
1324         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1325         * testsuite/24_iterators/container_access.cc: Likewise.
1326         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
1327         Likewise.
1328         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
1329         Likewise.
1330         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
1331         Likewise.
1332         * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
1333         Likewise.
1334         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1335         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
1336         Likewise.
1337         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1338         * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
1339         Likewise.
1340         * testsuite/26_numerics/lcm/1.cc: Likewise.
1341         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1342         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
1343         * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
1344         Likewise.
1345         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
1346         Likewise.
1347         * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
1348         Likewise.
1349         * testsuite/27_io/types/4.cc: Likewise.
1350         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1351         * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
1352         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1354 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1356         * testsuite/20_util/function_objects/searchers.cc: Remove
1357         -std=gnu++17 from dg-options directive.
1358         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
1359         Likewise.
1360         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1361         Likewise.
1362         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
1363         Likewise.
1364         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
1365         Likewise.
1366         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
1367         Likewise.
1368         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
1369         Likewise.
1370         * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
1371         Likewise.
1372         * testsuite/25_algorithms/clamp/1.cc: Likewise.
1373         * testsuite/25_algorithms/clamp/2.cc: Likewise.
1374         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1375         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
1376         Likewise.
1377         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
1378         Likewise.
1379         * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
1380         * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
1381         Likewise.
1382         * testsuite/25_algorithms/sample/1.cc: Likewise.
1383         * testsuite/25_algorithms/sample/2.cc: Likewise.
1384         * testsuite/25_algorithms/sample/3.cc: Likewise.
1385         * testsuite/25_algorithms/sample/81221.cc: Likewise.
1386         * testsuite/25_algorithms/search/searcher.cc: Likewise.
1387         * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
1388         * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
1389         * testsuite/26_numerics/reduce/1.cc: Likewise.
1390         * testsuite/26_numerics/reduce/2.cc: Likewise.
1391         * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
1392         * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
1393         * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
1395 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1397         * testsuite/23_containers/array/cons/deduction.cc: Remove
1398         -std=gnu++17 from dg-options directive.
1399         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1400         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
1401         Likewise.
1402         * testsuite/23_containers/array/requirements/constexpr_iter.cc:
1403         Likewise.
1404         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1405         Likewise.
1406         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1407         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1408         Likewise.
1409         * testsuite/23_containers/forward_list/cons/deduction.cc:
1410         Likewise.
1411         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1412         Likewise.
1413         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1414         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1415         Likewise.
1416         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1417         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1418         * testsuite/23_containers/map/modifiers/insert/83226.cc:
1419         Likewise.
1420         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1421         Likewise.
1422         * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
1423         * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
1424         Likewise.
1425         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1426         * testsuite/23_containers/multimap/modifiers/extract.cc:
1427         Likewise.
1428         * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
1429         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1430         * testsuite/23_containers/multiset/modifiers/extract.cc:
1431         Likewise.
1432         * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
1433         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1434         * testsuite/23_containers/queue/deduction.cc: Likewise.
1435         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1436         Likewise.
1437         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1438         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1439         * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
1440         * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
1441         * testsuite/23_containers/stack/deduction.cc: Likewise.
1442         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1443         Likewise.
1444         * testsuite/23_containers/unordered_map/cons/deduction.cc:
1445         Likewise.
1446         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
1447         Likewise.
1448         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1449         Likewise.
1450         * testsuite/23_containers/unordered_map/modifiers/merge.cc:
1451         Likewise.
1452         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
1453         Likewise.
1454         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1455         Likewise.
1456         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
1457         Likewise.
1458         * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
1459         Likewise.
1460         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1461         Likewise.
1462         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
1463         Likewise.
1464         * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
1465         Likewise.
1466         * testsuite/23_containers/unordered_set/cons/deduction.cc:
1467         Likewise.
1468         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
1469         Likewise.
1470         * testsuite/23_containers/unordered_set/modifiers/merge.cc:
1471         Likewise.
1472         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1473         Likewise.
1474         * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
1475         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1476         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1477         Likewise.
1479 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1481         * testsuite/21_strings/basic_string/79162.cc: Remove
1482         -std=gnu++17 from dg-options directive.
1483         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1484         * testsuite/21_strings/basic_string/cons/char/79162.cc:
1485         Likewise.
1486         * testsuite/21_strings/basic_string/cons/char/86138.cc:
1487         Likewise.
1488         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1489         * testsuite/21_strings/basic_string/cons/char/deduction.cc:
1490         Likewise.
1491         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
1492         Likewise.
1493         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1494         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
1495         Likewise.
1496         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
1497         Likewise.
1498         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1499         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1500         Likewise.
1501         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1502         Likewise.
1503         * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
1504         * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
1505         * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
1506         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1507         Likewise.
1508         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1509         Likewise.
1510         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1511         Likewise.
1512         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1513         Likewise.
1514         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1515         Likewise.
1516         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1517         Likewise.
1518         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1519         Likewise.
1520         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1521         Likewise.
1522         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1523         Likewise.
1524         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1525         Likewise.
1526         * testsuite/21_strings/basic_string/operations/data/char/2.cc:
1527         Likewise.
1528         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1529         Likewise.
1530         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
1531         Likewise.
1532         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1533         Likewise.
1534         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1535         Likewise.
1536         * testsuite/21_strings/basic_string/operators/char/5.cc:
1537         Likewise.
1538         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
1539         Likewise.
1540         * testsuite/21_strings/basic_string_view/capacity/1.cc:
1541         Likewise.
1542         * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
1543         Likewise.
1544         * testsuite/21_strings/basic_string_view/cons/char/1.cc:
1545         Likewise.
1546         * testsuite/21_strings/basic_string_view/cons/char/2.cc:
1547         Likewise.
1548         * testsuite/21_strings/basic_string_view/cons/char/3.cc:
1549         Likewise.
1550         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1551         Likewise.
1552         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
1553         Likewise.
1554         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
1555         Likewise.
1556         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
1557         Likewise.
1558         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1559         Likewise.
1560         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1561         Likewise.
1562         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1563         Likewise.
1564         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
1565         Likewise.
1566         * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
1567         Likewise.
1568         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1569         Likewise.
1570         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1571         Likewise.
1572         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1573         Likewise.
1574         * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
1575         Likewise.
1576         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1577         Likewise.
1578         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1579         Likewise.
1580         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1581         Likewise.
1582         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1583         Likewise.
1584         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
1585         Likewise.
1586         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1587         Likewise.
1588         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1589         Likewise.
1590         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1591         Likewise.
1592         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1593         Likewise.
1594         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1595         * testsuite/21_strings/basic_string_view/inserters/94051.cc:
1596         Likewise.
1597         * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
1598         Likewise.
1599         * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
1600         Likewise.
1601         * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
1602         Likewise.
1603         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1604         Likewise.
1605         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1606         Likewise.
1607         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1608         Likewise.
1609         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1610         Likewise.
1611         * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
1612         Likewise.
1613         * testsuite/21_strings/basic_string_view/literals/types.cc:
1614         Likewise.
1615         * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
1616         Likewise.
1617         * testsuite/21_strings/basic_string_view/literals/values.cc:
1618         Likewise.
1619         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1620         Likewise.
1621         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1622         Likewise.
1623         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1624         Likewise.
1625         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1626         Likewise.
1627         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1628         Likewise.
1629         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1630         Likewise.
1631         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1632         Likewise.
1633         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1634         Likewise.
1635         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1636         Likewise.
1637         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1638         Likewise.
1639         * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
1640         Likewise.
1641         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1642         Likewise.
1643         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1644         Likewise.
1645         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1646         Likewise.
1647         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1648         Likewise.
1649         * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
1650         Likewise.
1651         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1652         Likewise.
1653         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
1654         Likewise.
1655         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1656         Likewise.
1657         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1658         Likewise.
1659         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1660         Likewise.
1661         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1662         Likewise.
1663         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1664         Likewise.
1665         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1666         Likewise.
1667         * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
1668         Likewise.
1669         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1670         Likewise.
1671         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1672         Likewise.
1673         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1674         Likewise.
1675         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1676         Likewise.
1677         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1678         Likewise.
1679         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1680         Likewise.
1681         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1682         Likewise.
1683         * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
1684         Likewise.
1685         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1686         Likewise.
1687         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1688         Likewise.
1689         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1690         Likewise.
1691         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1692         Likewise.
1693         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1694         Likewise.
1695         * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
1696         Likewise.
1697         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1698         Likewise.
1699         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
1700         Likewise.
1701         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
1702         Likewise.
1703         * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
1704         Likewise.
1705         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1706         Likewise.
1707         * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
1708         Likewise.
1709         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1710         Likewise.
1711         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1712         Likewise.
1713         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1714         Likewise.
1715         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1716         Likewise.
1717         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1718         Likewise.
1719         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1720         Likewise.
1721         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
1722         Likewise.
1723         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1724         Likewise.
1725         * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
1726         Likewise.
1727         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1728         Likewise.
1729         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1730         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1731         * testsuite/21_strings/char_traits/requirements/char/99181.cc:
1732         Likewise.
1733         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1735 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1737         * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
1738         from dg-options directive.
1739         * testsuite/20_util/memory_resource/2.cc: Likewise.
1740         * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
1741         * testsuite/20_util/monotonic_buffer_resource/93208.cc:
1742         Likewise.
1743         * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1744         Likewise.
1745         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
1746         Likewise.
1747         * testsuite/20_util/monotonic_buffer_resource/release.cc:
1748         Likewise.
1749         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
1750         Likewise.
1751         * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
1752         * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
1753         Likewise.
1754         * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
1755         * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
1756         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
1757         Likewise.
1758         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
1759         Likewise.
1760         * testsuite/20_util/synchronized_pool_resource/cons.cc:
1761         Likewise.
1762         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
1763         Likewise.
1764         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
1765         Likewise.
1766         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
1767         Likewise.
1768         * testsuite/20_util/synchronized_pool_resource/options.cc:
1769         Likewise.
1770         * testsuite/20_util/synchronized_pool_resource/release.cc:
1771         Likewise.
1772         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
1773         Likewise.
1774         * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
1775         Likewise.
1776         * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1777         Likewise.
1778         * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
1779         Likewise.
1780         * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
1781         Likewise.
1782         * testsuite/20_util/unsynchronized_pool_resource/options.cc:
1783         Likewise.
1784         * testsuite/20_util/unsynchronized_pool_resource/release.cc:
1785         Likewise.
1786         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
1787         Likewise.
1788         * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
1789         * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
1790         Likewise.
1791         * testsuite/23_containers/forward_list/pmr_typedefs.cc:
1792         Likewise.
1793         * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
1794         Likewise.
1795         * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
1796         * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
1797         * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
1798         * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
1799         * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
1800         * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
1801         Likewise.
1802         * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
1803         * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
1804         Likewise.
1805         * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
1806         * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
1807         * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
1808         Likewise.
1809         * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
1810         Likewise.
1811         * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
1812         Likewise.
1813         * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
1814         Likewise.
1815         * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
1816         Likewise.
1817         * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
1818         Likewise.
1819         * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
1820         Likewise.
1821         * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
1822         Likewise.
1823         * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
1824         * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
1825         Likewise.
1826         * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
1828 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1830         * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
1831         dg-options.
1832         * testsuite/29_atomics/atomic/is_always_lock_free.cc:
1833         * testsuite/29_atomics/atomic/requirements/typedefs.cc:
1834         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
1835         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
1836         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1837         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1838         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1839         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1840         Likewise.
1841         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
1842         Likewise.
1843         * testsuite/30_threads/shared_lock/70766.cc: Likewise.
1844         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
1845         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
1846         Likewise.
1847         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
1848         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
1849         Likewise.
1850         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
1851         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
1852         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
1853         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
1855 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1857         * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
1858         dg-options directive.
1859         * testsuite/20_util/any/assign/2.cc: Likewise.
1860         * testsuite/20_util/any/assign/emplace.cc: Likewise.
1861         * testsuite/20_util/any/assign/exception.cc: Likewise.
1862         * testsuite/20_util/any/assign/self.cc: Likewise.
1863         * testsuite/20_util/any/cons/1.cc: Likewise.
1864         * testsuite/20_util/any/cons/2.cc: Likewise.
1865         * testsuite/20_util/any/cons/90415.cc: Likewise.
1866         * testsuite/20_util/any/cons/92156.cc: Likewise.
1867         * testsuite/20_util/any/cons/aligned.cc: Likewise.
1868         * testsuite/20_util/any/cons/explicit.cc: Likewise.
1869         * testsuite/20_util/any/cons/in_place.cc: Likewise.
1870         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
1871         * testsuite/20_util/any/make_any.cc: Likewise.
1872         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
1873         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
1874         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
1875         * testsuite/20_util/any/misc/swap.cc: Likewise.
1876         * testsuite/20_util/any/modifiers/1.cc: Likewise.
1877         * testsuite/20_util/any/modifiers/83658.cc: Likewise.
1878         * testsuite/20_util/any/modifiers/92156.cc: Likewise.
1879         * testsuite/20_util/any/observers/type.cc: Likewise.
1880         * testsuite/20_util/any/requirements.cc: Likewise.
1881         * testsuite/20_util/any/typedefs.cc: Likewise.
1882         * testsuite/20_util/optional/77288.cc: Likewise.
1883         * testsuite/20_util/optional/84601.cc: Likewise.
1884         * testsuite/20_util/optional/assignment/1.cc: Likewise.
1885         * testsuite/20_util/optional/assignment/2.cc: Likewise.
1886         * testsuite/20_util/optional/assignment/3.cc: Likewise.
1887         * testsuite/20_util/optional/assignment/4.cc: Likewise.
1888         * testsuite/20_util/optional/assignment/5.cc: Likewise.
1889         * testsuite/20_util/optional/assignment/6.cc: Likewise.
1890         * testsuite/20_util/optional/assignment/7.cc: Likewise.
1891         * testsuite/20_util/optional/assignment/8.cc: Likewise.
1892         * testsuite/20_util/optional/assignment/9.cc: Likewise.
1893         * testsuite/20_util/optional/bad_access.cc: Likewise.
1894         * testsuite/20_util/optional/cons/77727.cc: Likewise.
1895         * testsuite/20_util/optional/cons/85642.cc: Likewise.
1896         * testsuite/20_util/optional/cons/copy.cc: Likewise.
1897         * testsuite/20_util/optional/cons/deduction.cc: Likewise.
1898         * testsuite/20_util/optional/cons/default.cc: Likewise.
1899         * testsuite/20_util/optional/cons/move.cc: Likewise.
1900         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
1901         * testsuite/20_util/optional/cons/value.cc: Likewise.
1902         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
1903         * testsuite/20_util/optional/constexpr/cons/default.cc:
1904         Likewise.
1905         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
1906         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
1907         * testsuite/20_util/optional/constexpr/make_optional.cc:
1908         Likewise.
1909         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
1910         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
1911         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
1912         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
1913         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
1914         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
1915         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
1916         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
1917         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
1918         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1919         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
1920         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
1921         * testsuite/20_util/optional/hash.cc: Likewise.
1922         * testsuite/20_util/optional/in_place.cc: Likewise.
1923         * testsuite/20_util/optional/make_optional.cc: Likewise.
1924         * testsuite/20_util/optional/nullopt.cc: Likewise.
1925         * testsuite/20_util/optional/observers/1.cc: Likewise.
1926         * testsuite/20_util/optional/observers/2.cc: Likewise.
1927         * testsuite/20_util/optional/observers/3.cc: Likewise.
1928         * testsuite/20_util/optional/observers/4.cc: Likewise.
1929         * testsuite/20_util/optional/observers/5.cc: Likewise.
1930         * testsuite/20_util/optional/observers/6.cc: Likewise.
1931         * testsuite/20_util/optional/relops/1.cc: Likewise.
1932         * testsuite/20_util/optional/relops/2.cc: Likewise.
1933         * testsuite/20_util/optional/relops/3.cc: Likewise.
1934         * testsuite/20_util/optional/relops/4.cc: Likewise.
1935         * testsuite/20_util/optional/relops/5.cc: Likewise.
1936         * testsuite/20_util/optional/relops/6.cc: Likewise.
1937         * testsuite/20_util/optional/relops/7.cc: Likewise.
1938         * testsuite/20_util/optional/requirements.cc: Likewise.
1939         * testsuite/20_util/optional/swap/1.cc: Likewise.
1940         * testsuite/20_util/optional/swap/2.cc: Likewise.
1941         * testsuite/20_util/optional/typedefs.cc: Likewise.
1942         * testsuite/20_util/variant/80165.cc: Likewise.
1943         * testsuite/20_util/variant/85183.cc: Likewise.
1944         * testsuite/20_util/variant/86874.cc: Likewise.
1945         * testsuite/20_util/variant/87431.cc: Likewise.
1946         * testsuite/20_util/variant/87619.cc: Likewise.
1947         * testsuite/20_util/variant/91807.cc: Likewise.
1948         * testsuite/20_util/variant/any.cc: Likewise.
1949         * testsuite/20_util/variant/compile.cc: Likewise.
1950         * testsuite/20_util/variant/deduction.cc: Likewise.
1951         * testsuite/20_util/variant/exception_safety.cc: Likewise.
1952         * testsuite/20_util/variant/hash.cc: Likewise.
1953         * testsuite/20_util/variant/index_type.cc: Likewise.
1954         * testsuite/20_util/variant/relops/89851.cc: Likewise.
1955         * testsuite/20_util/variant/relops/90008.cc: Likewise.
1956         * testsuite/20_util/variant/run.cc: Likewise.
1957         * testsuite/20_util/variant/visit.cc: Likewise.
1959 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1961         * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
1962         -std=gnu++17 from dg-options directive.
1963         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
1964         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
1965         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
1966         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
1967         * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
1968         * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
1969         * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
1970         * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
1971         Likewise.
1972         * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
1973         * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
1974         * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
1975         * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
1976         * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
1977         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1978         Likewise.
1979         * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
1980         * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
1981         Likewise.
1982         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1983         Likewise.
1984         * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
1985         * testsuite/27_io/filesystem/operations/all.cc: Likewise.
1986         * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
1987         * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
1988         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
1989         * testsuite/27_io/filesystem/operations/create_directories.cc:
1990         Likewise.
1991         * testsuite/27_io/filesystem/operations/create_directory.cc:
1992         Likewise.
1993         * testsuite/27_io/filesystem/operations/create_symlink.cc:
1994         Likewise.
1995         * testsuite/27_io/filesystem/operations/current_path.cc:
1996         Likewise.
1997         * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
1998         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1999         * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
2000         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2001         * testsuite/27_io/filesystem/operations/last_write_time.cc:
2002         Likewise.
2003         * testsuite/27_io/filesystem/operations/permissions.cc:
2004         Likewise.
2005         * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
2006         * testsuite/27_io/filesystem/operations/read_symlink.cc:
2007         Likewise.
2008         * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
2009         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2010         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2011         * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
2012         * testsuite/27_io/filesystem/operations/resize_file.cc:
2013         Likewise.
2014         * testsuite/27_io/filesystem/operations/space.cc: Likewise.
2015         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2016         * testsuite/27_io/filesystem/operations/symlink_status.cc:
2017         Likewise.
2018         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2019         Likewise.
2020         * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
2021         Likewise.
2022         * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
2023         * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
2024         * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
2025         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
2026         * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
2027         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
2028         * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
2029         * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
2030         * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
2031         * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
2032         * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
2033         * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
2034         * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
2035         * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
2036         * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
2037         * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
2038         * testsuite/27_io/filesystem/path/construct/default.cc:
2039         Likewise.
2040         * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
2041         * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
2042         * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
2043         * testsuite/27_io/filesystem/path/construct/string_view.cc:
2044         Likewise.
2045         * testsuite/27_io/filesystem/path/decompose/extension.cc:
2046         Likewise.
2047         * testsuite/27_io/filesystem/path/decompose/filename.cc:
2048         Likewise.
2049         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
2050         Likewise.
2051         * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
2052         Likewise.
2053         * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
2054         Likewise.
2055         * testsuite/27_io/filesystem/path/decompose/root_name.cc:
2056         Likewise.
2057         * testsuite/27_io/filesystem/path/decompose/root_path.cc:
2058         Likewise.
2059         * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
2060         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
2061         Likewise.
2062         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
2063         * testsuite/27_io/filesystem/path/generation/normal.cc:
2064         Likewise.
2065         * testsuite/27_io/filesystem/path/generation/normal2.cc:
2066         Likewise.
2067         * testsuite/27_io/filesystem/path/generation/proximate.cc:
2068         Likewise.
2069         * testsuite/27_io/filesystem/path/generation/relative.cc:
2070         Likewise.
2071         * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
2072         * testsuite/27_io/filesystem/path/generic/generic_string.cc:
2073         Likewise.
2074         * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
2075         * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
2076         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2077         * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
2078         * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
2079         * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
2080         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
2081         Likewise.
2082         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
2083         Likewise.
2084         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
2085         Likewise.
2086         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
2087         Likewise.
2088         * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
2089         * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
2090         * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
2091         Likewise.
2092         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
2093         * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
2094         * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
2095         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
2096         Likewise.
2097         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2098         * testsuite/27_io/filesystem/path/query/empty_neg.cc:
2099         * testsuite/27_io/filesystem/path/query/has_extension.cc:
2100         Likewise.
2101         * testsuite/27_io/filesystem/path/query/has_filename.cc:
2102         Likewise.
2103         * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
2104         Likewise.
2105         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2106         Likewise.
2107         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2108         Likewise.
2109         * testsuite/27_io/filesystem/path/query/has_root_name.cc:
2110         Likewise.
2111         * testsuite/27_io/filesystem/path/query/has_root_path.cc:
2112         Likewise.
2113         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2114         * testsuite/27_io/filesystem/path/query/is_absolute.cc:
2115         Likewise.
2116         * testsuite/27_io/filesystem/path/query/is_relative.cc:
2117         Likewise.
2118         * testsuite/experimental/filesystem/path/construct/string_view.cc:
2119         Likewise.
2121 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2123         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
2124         Remove -std=gnu++17 from dg-options.
2125         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
2126         Likewise.
2127         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
2128         Likewise.
2129         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
2130         Likewise.
2131         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
2132         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
2133         Likewise.
2134         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
2135         Likewise.
2136         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
2137         Likewise.
2138         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
2139         Likewise.
2140         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
2141         Likewise.
2142         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
2143         Likewise.
2144         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
2145         Likewise.
2146         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
2147         Likewise.
2148         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
2149         Likewise.
2150         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
2151         Likewise.
2152         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
2153         Likewise.
2154         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
2155         Likewise.
2156         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
2157         Likewise.
2158         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
2159         Likewise.
2160         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
2161         Likewise.
2162         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
2163         Likewise.
2164         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
2165         Likewise.
2166         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
2167         Likewise.
2168         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
2169         Likewise.
2170         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
2171         Likewise.
2172         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
2173         Likewise.
2174         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
2175         Likewise.
2176         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
2177         Likewise.
2178         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
2179         Likewise.
2180         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2181         Likewise.
2182         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
2183         Likewise.
2184         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
2185         Likewise.
2186         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
2187         Likewise.
2188         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
2189         Likewise.
2190         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
2191         Likewise.
2192         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
2193         Likewise.
2194         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
2195         Likewise.
2196         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
2197         Likewise.
2198         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2199         Likewise.
2200         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
2201         Likewise.
2202         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
2203         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
2204         Likewise.
2205         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
2206         Likewise.
2207         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
2208         Likewise.
2209         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
2210         Likewise.
2211         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
2212         Likewise.
2213         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
2214         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
2215         * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
2216         * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
2217         * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
2218         * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
2219         * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
2220         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
2221         Likewise.
2222         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
2223         * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
2224         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
2225         Likewise.
2226         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
2227         Likewise.
2229 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2231         * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
2232         for additional errors in C++20.
2233         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2234         Likewise.
2235         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2236         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2238 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2240         * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
2241         clash with std::any.
2243 2021-05-07  Jonathan Wakely  <jwakely@redhat.com>
2245         * include/std/istream (__rvalue_stream_extraction_t): Replace
2246         use of __rval_streamable.
2247         * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
2248         (__rval_streamable): Remove.
2249         (_Require_derived_from_ios_base, __derived_from_ios_base): New
2250         helper for checking constraints.
2251         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
2252         reference to the wrong subclause of the standard.
2253         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2254         Likewise.
2255         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2256         Likewise.
2257         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2258         Likewise.
2259         * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
2260         New test.
2261         * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
2262         errors.
2264 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2266         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
2267         Improve static_assert messages.
2268         * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
2269         * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
2271 2021-05-06  Patrick Palka  <ppalka@redhat.com>
2273         * include/std/ranges (filter_view::_Iterator::base): Make the
2274         const& overload unconstrained and return a const reference as
2275         per LWG 3533.  Make unconditionally noexcept.
2276         (transform_view::_Iterator::base): Likewise.
2277         (elements_view::_Iterator::base): Likewise.
2279 2021-05-06  Patrick Palka  <ppalka@redhat.com>
2281         * include/bits/stl_iterator.h (move_iterator::base): Make the
2282         const& overload unconstrained and return a const reference as
2283         per LWG 3391.  Make unconditionally noexcept.
2284         (counted_iterator::base): Likewise.
2285         * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
2286         * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
2287         has_member_base concept to decay-copy the result of base().
2289 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2291         * include/std/type_traits (remove_cvref_t): Define in terms of
2292         remove_cvref.
2293         * testsuite/20_util/remove_cvref/value.cc: Check alias.
2295 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2297         Revert:
2298         2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
2300         * include/std/charconv (__from_chars_alnum): Pass unsigned
2301         char to std::isdigit.
2303 2021-05-05  Patrick Palka  <ppalka@redhat.com>
2305         * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
2306         Remove constraints on this partial specialization.
2307         * include/std/ranges (enable_borrowed_range<iota_view>):
2308         Likewise.
2310 2021-05-05  Patrick Palka  <ppalka@redhat.com>
2312         * include/std/ranges (transform_view::_Iterator::iter_swap):
2313         Remove as per LWG 3520.
2314         (join_view::_Iterator::iter_swap): Add indirectly_swappable
2315         constraint as per LWG 3517.
2317 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
2319         * testsuite/20_util/function_objects/invoke/3.cc: Check feature
2320         test macro.
2321         * testsuite/20_util/function_objects/invoke/version.cc: New test.
2323 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
2325         * include/std/charconv (__from_chars_alnum): Pass unsigned
2326         char to std::isdigit.
2328 2021-05-05  Corentin Gay  <gay@adacore.com>
2330         * acinclude.m4: Add VxWorks-specific case for the
2331         configuration of ctypes.
2332         * configure: Regenerate.
2333         * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
2334         version.
2335         * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
2336         * config/os/vxworks/ctype_configure_char.cc: Likewise.
2337         * config/os/vxworks/ctype_inline.h: Likewise.
2338         * testsuite/28_regex/traits/char/isctype.cc: Defines
2339         NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
2340         * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
2342 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2344         * include/std/future (promise::set_value): Check for existence
2345         of shared state before dereferncing it.
2346         (promise::set_exception, promise::set_value_at_thread_exit)
2347         (promise::set_exception_at_thread_exit): Likewise.
2348         (promise<R&>::set_value, promise<R&>::set_exception)
2349         (promise<R&>::set_value_at_thread_exit)
2350         (promise<R&>::set_exception_at_thread_exit): Likewise.
2351         (promise<void>::set_value, promise<void>::set_exception)
2352         (promise<void>::set_value_at_thread_exit)
2353         (promise<void>::set_exception_at_thread_exit): Likewise.
2354         * testsuite/30_threads/promise/members/at_thread_exit2.cc:
2355         Remove unused variable.
2357 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2359         * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
2360         Do not do arithmetic on null pointer.
2362 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2364         * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
2365         (find_key_pointer(key_const_reference, false_type))
2366         (find_key_pointer(key_const_reference, true_type)): Do not
2367         dereference null pointer.
2369 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2371         * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
2372         overflow.
2373         * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
2374         non-zero value to null pointer.
2375         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
2376         Use past-the-end iterator for result.
2377         * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
2378         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2380 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2382         PR libstdc++/100384
2383         * include/std/variant (__get_t): New alias template yielding the
2384         return type of std::get<N> on a variant.
2385         (__visit_result_t): New alias template yielding the result of
2386         std::visit.
2387         (__same_types): Move into namespace __detail::__variant.
2388         (__check_visitor_results): Likewise. Use __invoke_result_t and
2389         __get_t.
2390         (__check_visitor_result): Remove.
2391         (visit): Use __visit_result_t for return type.
2392         * testsuite/20_util/variant/100384.cc: New test.
2394 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2396         * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
2397         checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
2398         * config.h.in: Regenerate.
2399         * configure: Regenerate.
2400         * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
2401         * include/bits/random.h (_Select_uint_least_t<s, 1>):
2402         Use __SIZEOF_INT128__ to decide whether to use __int128.
2403         * include/std/charconv (__to_chars_unsigned_type): Likewise.
2405 2021-05-03  Gerald Pfeifer  <gerald@pfeifer.com>
2407         * doc/xml/manual/ctype.xml: Move unix.org reference to https.
2408         * doc/html/manual/facets.html: Regenerate.
2410 2021-04-30  Patrick Palka  <ppalka@redhat.com>
2412         * include/std/ranges (__detail::__non_propating_cache): Define
2413         as per P2328.
2414         (join_view): Remove constraints on the value and reference types
2415         of the wrapped iterator type as per P2328.
2416         (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
2417         (join_view::_Iterator::operator++): Likewise.
2418         (join_view::_M_inner): Use __non_propating_cache as per P2328.
2419         Remove now-redundant use of __maybe_present_t.
2420         * testsuite/std/ranges/adaptors/join.cc: Include <array>.
2421         (test10): New test.
2423 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
2425         * include/bits/basic_string.h (__cpp_lib_constexpr_string):
2426         Only define for C++17 and later.
2427         * include/std/version (__cpp_lib_semaphore): Fix condition
2428         to match the one in <semaphore>.
2430 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
2432         * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
2433         * config.h.in: Regenerate.
2434         * configure: Regenerate.
2435         * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
2436         * include/bits/postypes.h: Remove include of <stdint.h> and
2437         definition/undefinition of the __STDC_LIMIT_MACROS and
2438         __STDC_CONSTANT_MACROS macros.
2439         (streamoff): Use __INT64_TYPE__ if defined.
2441 2021-04-30  Patrick Palka  <ppalka@redhat.com>
2443         * include/std/ranges (split_view::_InnerIter::operator++):
2444         Depend on _Base instead of _Vp directly, as per LWG 3532.
2446 2021-04-30  Patrick Palka  <ppalka@redhat.com>
2448         * include/bits/ranges_util.h (subrange::subrange): Avoid
2449         list-initialization in delegating constructor.
2450         * include/std/ranges (single_view): Replace implicit guide
2451         with explicit deduction guide that decays its argument.
2452         (_Single::operator()): Avoid CTAD when constructing the
2453         single_view object.
2454         (_Iota::operator()): Avoid list-initialization.
2455         (__detail::__can_filter_view, _Filter::operator()): Likewise.
2456         (__detail::__can_transform_view, _Transform::operator()): Likewise.
2457         (take_view::begin): Likewise.
2458         (__detail::__can_take_view, _Take::operator()): Likewise.
2459         (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
2460         (__detail::__can_drop_view, _Drop::operator()): Likewise.
2461         (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
2462         (split_view::split_view): Use views::single when initializing
2463         _M_pattern.
2464         (__detail::__can_split_view, _Split::operator()): Avoid
2465         list-initialization.
2466         (_Counted::operator()): Likewise.
2467         * testsuite/std/ranges/p2367.cc: New test.
2469 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
2471         PR libstdc++/60497
2472         * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
2473         std::addressof.
2474         * include/bits/basic_string.tcc (basic_string::swap)
2475         (basic_string::assign): Likewise.
2476         * include/bits/deque.tcc (deque::operator=(const deque&)):
2477         Likewise.
2478         * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
2479         Likewise.
2480         * include/bits/vector.tcc (vector::operator=(const vector&)):
2481         Likewise.
2483 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
2485         * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
2486         per LWG 1203.
2487         * include/std/ostream (operator<<(Ostream&&, const x&)):
2488         Likewise.
2489         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
2490         Adjust dg-error pattern.
2491         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
2492         Likewise.
2493         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
2494         is_extractable trait to replace std::__is_extractable. Make it
2495         work with rvalue streams as well as lvalues, to replace f() and
2496         g() helper functions.
2497         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2498         Likewise.
2499         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2500         Define is_insertable trait to replace std::__is_insertable. Make
2501         it work with rvalue streams as well as lvalues, to replace f()
2502         and g() helper functions.
2503         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2504         Likewise.
2505         * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
2506         errors from new constraints.
2507         * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
2508         which are no longer expected to compile.
2509         * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
2510         Verify LWG 1203 changes.
2512 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
2514         PR libstdc++/100285
2515         * include/experimental/socket (__basic_socket_impl::set_option)
2516         (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
2517         Just set error code.
2518         * testsuite/experimental/net/socket/socket_base.cc: CHeck
2519         for <sys/socket.h> not <socket.h>.
2521 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
2523         PR libstdc++/100180
2524         PR libstdc++/100286
2525         PR libstdc++/100351
2526         * testsuite/experimental/net/internet/address/v4/comparisons.cc:
2527         Use new effective-target keyword.
2528         * testsuite/experimental/net/internet/address/v4/cons.cc:
2529         Likewise.
2530         * testsuite/experimental/net/internet/address/v4/creation.cc:
2531         Likewise.
2532         * testsuite/experimental/net/internet/address/v4/members.cc:
2533         Likewise.
2534         * testsuite/experimental/net/internet/address/v6/members.cc:
2535         Likewise.
2536         * testsuite/experimental/net/internet/resolver/base.cc:
2537         Likewise.
2538         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2539         Likewise.
2540         * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2541         Likewise.
2542         * testsuite/experimental/net/internet/socket/opt.cc:
2543         Likewise.
2544         * testsuite/experimental/net/internet/tcp.cc:
2545         Likewise.
2546         * testsuite/experimental/net/internet/udp.cc:
2547         Likewise.
2548         * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
2549         New proc to check net_ts_ip et.
2551 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
2553         PR libstdc++/97930
2554         * testsuite/20_util/pair/requirements/structural.cc: New test.
2556 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
2558         * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
2559         new definitions for constructors and assignment operators using
2560         concepts for constraints.
2561         * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
2562         later.
2563         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
2564         expected error messages to also match C++20 errors.
2566 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
2568         PR libstdc++/99957
2569         * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
2570         Combine and replace with ...
2571         (_PCC::_DeprConsPair): New SFINAE helper function.
2572         (pair): Merge preprocessor blocks so that all C++03 members
2573         are defined together at the end.
2574         (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
2575         Replace _T1 and _T2 parameters with __null_ptr_constant and
2576         adjust constraints.
2577         * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
2578         * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
2579         * testsuite/20_util/pair/cons/99957.cc: New test.
2581 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
2583         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
2584         * include/std/version (__cpp_lib_constexpr_string): Define.
2585         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
2586         Check for __cpp_lib_constexpr_string.
2587         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
2588         Likewise.
2589         * testsuite/21_strings/char_traits/requirements/version.cc: New test.
2591 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
2593         * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
2594         dealing with errors. Use '@' to prevent shell command being
2595         echoed.
2596         * doc/Makefile.in: Regenerate.
2598 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
2600         PR libstdc++/100298
2601         * include/bits/std_thread.h (thread::hardware_concurrency): Add
2602         missing noexcept to inline definition for non-gthreads targets.
2604 2021-04-28  Patrick Palka  <ppalka@redhat.com>
2606         PR libstdc++/100187
2607         PR libstdc++/100237
2608         PR libstdc++/100249
2609         PR libstdc++/100287
2610         * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
2611         the __value_comp lambda an explicit bool return type.
2612         (__is_permutation_fn::operator()): Give the __proj_scan local
2613         variable auto&& return type.  Give the __comp_scan lambda an
2614         explicit bool return type.
2615         (__remove_fn::operator()): Give the __pred lambda an explicit
2616         bool return type.
2617         (__partition_fn::operator()): Don't std::move __first twice
2618         when returning an empty subrange.
2619         (__min_fn::operator()): Don't std::move __comp.
2620         (__max_fn::operator()): Likewise.
2621         (__minmax_fn::operator()): Likewise.
2623 2021-04-27  Patrick Palka  <ppalka@redhat.com>
2625         PR libstdc++/100290
2626         * include/std/ranges (join_view::_Iterator::operator++): Correct
2627         the return type of the lambda to avoid returning a copy of
2628         _M_parent->_M_inner.
2629         * testsuite/std/ranges/adaptors/join.cc (test10): New test.
2631 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
2633         Revert:
2634         2021-04-22  Jakub Jelinek  <jakub@redhat.com>
2636         PR target/100182
2637         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2638         ia32.
2639         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2640         ia32.
2642 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
2644         * include/experimental/internet (address_v6::bytes_type): Adjust
2645         formatting.
2646         (basic_endpoint): Define _M_is_v6() to put all checks for
2647         AF_INET6 in one place.
2648         (basic_endpoint::resize): Simplify.
2649         (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
2650         (operator!=(const tcp&, const tcp&)): Likewise.
2651         (operator==(const udp&, const udp&)): Likewise.
2652         (operator!=(const udp&, const udp&)): Likewise.
2653         * testsuite/experimental/net/internet/tcp.cc: New test.
2654         * testsuite/experimental/net/internet/udp.cc: New test.
2656 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
2658         PR libstdc++/100286
2659         * include/experimental/internet (resolver_errc, resolver_category())
2660         (make_error_code, make_error_condition): Define unconditionally,
2661         only make enumerators and use of gai_strerror depend on the
2662         availability of <netdb.h>.
2663         (address_v4::to_string): Use correct constant for string length.
2664         (address_v4::to_string, address_v6::to_string): Define
2665         unconditionally, throw if unsupported.
2666         (make_address_v4, make_address_v6): Define unconditionally.
2667         Return an error if unsupported.
2668         (tcp, udp, v6_only, unicast::hops, multicast::*): Define
2669         conditionally,
2670         * testsuite/experimental/net/internet/socket/opt.cc: Check for
2671         <netinet/in.h> and <netinet/tcp.h> before using types from
2672         namespace net::ip.
2674 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
2676         PR libstdc++/100285
2677         * include/experimental/internet (resolver_base::flags):
2678         Define overloaded operators as hidden friends.
2679         * include/experimental/socket (socket_base::message_flags):
2680         Likewise.
2682 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
2684         * include/experimental/internet (tcp::no_delay, v6_only)
2685         (unicast::hops, multicast::hops, multicast::enable_loopback):
2686         Change access of base class and static data members. Add
2687         using-declaration for __socket_crtp::operator=(_Tp).
2688         (multicast::__mcastopt): New type.
2689         (multicast::join_group, multicast::leave_group): Derive from
2690         __mcastopt for common implementation.
2691         * include/experimental/socket: Add comment.
2692         * testsuite/experimental/net/internet/socket/opt.cc: New test.
2693         * testsuite/experimental/net/socket/socket_base.cc: Check for
2694         protected constructor/destructor of socket_base. Check for
2695         explicit constructors of socket option classes.
2697 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
2699         * include/experimental/bits/net.h (__socket_base): Add
2700         bool template parameter to allow BooleanSocketOption and
2701         IntegerSocketOption to have different __socket_base<int>
2702         base classes.
2703         (__socket_base<bool>): Adjust base class.
2704         (__socket_base<int>): Add partial specialization.
2705         (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
2706         * include/experimental/socket (socket_base::broadcast)
2707         (socket_base::debug, socket_base::do_not_route)
2708         (socket_base::keep_alive, socket_base::linger)
2709         (socket_base::out_of_band_inline)
2710         (socket_base::receive_buffer_size)
2711         (socket_base::receive_low_watermark)
2712         (socket_base::reuse_address, socket_base::send_buffer_size)
2713         (socket_base::send_low_watermark): Add using-declaration for
2714         __socket_crtp::operator=(_Tp).
2715         * testsuite/experimental/net/socket/socket_base.cc: Check
2716         properties of socket option types.
2718 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
2720         * include/experimental/internet (resolver_base::flags): Remove
2721         enumerators. Initialize constants directly with desired values.
2722         Make all operators constexpr and noexcept.
2723         * testsuite/experimental/net/internet/resolver/base.cc: Use
2724         __gnu_test::test_bitmask_values for bitmask type. Check
2725         construction and destruction is protected.
2727 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
2729         * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
2731 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
2733         PR libstdc++/100259
2734         * include/experimental/internet (net::ip::make_error_code)
2735         (net::ip::make_error_condition, net::ip::make_network_v4)
2736         (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
2738 2021-04-24  David Edelsohn  <dje.gcc@gmail.com>
2740         * testsuite/lib/dg-options.exp (atomic_link_flags): New.
2741         (add_options_for_libatomic): Use atomic_link_flags.
2743 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
2745         PR libstdc++/100180
2746         * include/experimental/io_context (io_context): Define
2747         dummy_pollfd type so that most member functions still compile
2748         without <poll.h> and struct pollfd.
2750 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
2752         * include/experimental/io_context (io_context::async_wait): Add
2753         comment.
2754         * include/experimental/socket (basic_socket::async_connect):
2755         Cast wait_type constant to int.
2756         (basic_datagram_socket::async_receive): Likewise.
2757         (basic_datagram_socket::async_receive_from): Likewise.
2758         (basic_datagram_socket::async_send): Likewise.
2759         (basic_datagram_socket::async_send_to): Likewise.
2760         (basic_stream_socket::async_receive): Likewise.
2761         (basic_stream_socket::async_send): Likewise. Use io_context
2762         parameter directly, instead of via an executor.
2763         (basic_socket_acceptor::async_accept): Likewise.
2765 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
2767         * include/experimental/socket (socket_base::shutdown_type):
2768         (socket_base::wait_type, socket_base::message_flags):
2769         Remove enumerators. Initialize constants directly with desired
2770         values.
2771         (socket_base::message_flags): Make all operators constexpr and
2772         noexcept.
2773         * testsuite/util/testsuite_common_types.h (test_bitmask_values):
2774         New test utility.
2775         * testsuite/experimental/net/socket/socket_base.cc: New test.
2777 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
2779         * config/os/aix/atomicity.h: Delete.
2781 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2783         * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
2784         Handle system_clock as well as steady_clock.
2785         * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
2786         * testsuite/30_threads/semaphore/try_acquire_until.cc:
2787         Re-enable.
2789 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2791         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
2792         options for libatomic.
2794 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2796         * config/os/gnu-linux/os_defines.h: Fix type in comment.
2798 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2800         PR libstdc++/99006
2801         * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
2802         is not an array type.
2803         * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
2804         * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
2806 2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
2808         * include/bits/atomic_wait.h: Always notify waiters in the
2809         case of 'bare' address notification.
2811 2021-04-22  Jakub Jelinek  <jakub@redhat.com>
2813         PR target/100182
2814         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2815         ia32.
2816         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2817         ia32.
2819 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2821         PR libstdc++/100179
2822         * include/bits/semaphore_base.h: Remove #error.
2823         * include/std/semaphore: Do not define anything unless one of
2824         the implementations is available.
2826 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
2828         * include/bits/semaphore_base.h: Always reload __old in
2829         __atomic_semaphore::_S_do_try_acquire().
2830         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2831         re-enable testcase.
2833 2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
2834             Jonathan Wakely  <jwakely@redhat.com>
2836         PR libstdc++/99453
2837         * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
2838         * python/Makefile.in: Regenerate.
2840 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
2842         * include/bits/semaphore_base.h: Add missing _M_try_acquire()
2843         member to __platform_wait.
2845 2021-04-21  Jonathan Wakely  <jwakely@redhat.com>
2847         * include/std/latch: Replace tab characters in license text.
2848         * include/std/semaphore: Likewise.
2850 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
2852         PR libstdc++/100164
2853         * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
2854         rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
2855         * configure: Regenerated.
2856         * config.h.in: Regenerated.
2858 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
2860         * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
2861         test for targets not using futexes for semaphores.
2862         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
2863         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2864         Disable for all targets.
2866 2021-04-20  Thomas Rodgers  <trodgers@redhat.com>
2868         * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
2869         * include/Makefile.in: Regenerate.
2870         * include/bits/this_thread_sleep.h: New file.
2871         * include/bits/atomic_base.h: Adjust all calls
2872         to __atomic_wait/__atomic_notify for new call signatures.
2873         * include/bits/atomic_timed_wait.h: Extensive rewrite.
2874         * include/bits/atomic_wait.h: Likewise.
2875         * include/bits/semaphore_base.h: Adjust all calls
2876         to __atomic_wait/__atomic_notify for new call signatures.
2877         * include/std/atomic: Likewise.
2878         * include/std/barrier: Likewise.
2879         * include/std/latch: Likewise.
2880         * include/std/semaphore: Likewise.
2881         * include/std/thread (this_thread::sleep_for)
2882         (this_thread::sleep_until): Move to new header.
2883         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
2884         test.
2885         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
2886         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
2887         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
2888         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
2889         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2890         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
2892 2021-04-20  Patrick Palka  <ppalka@redhat.com>
2894         PR libstdc++/95983
2895         * include/bits/stl_iterator.h (__detail::__move_iter_cat):
2896         Define.
2897         (move_iterator): Derive from the above in C++20 in order to
2898         conditionally define iterator_category as per P2259.
2899         (move_iterator::__base_cat): No longer used, so remove.
2900         (move_iterator::iterator_category): Remove in C++20.
2901         (__detail::__common_iter_use_postfix_proxy): Define.
2902         (common_iterator::_Proxy): Rename to ...
2903         (common_iterator:__arrow_proxy): ... this.
2904         (common_iterator::__postfix_proxy): Define as per P2259.
2905         (common_iterator::operator->): Adjust.
2906         (common_iterator::operator++): Adjust as per P2259.
2907         (iterator_traits<common_iterator>::_S_iter_cat): Define.
2908         (iterator_traits<common_iterator>::iterator_category): Change as
2909         per P2259.
2910         (__detail::__counted_iter_value_type): Define.
2911         (__detail::__counted_iter_concept): Define.
2912         (__detail::__counted_iter_cat): Define.
2913         (counted_iterator): Derive from the above three classes in order
2914         to conditionally define value_type, iterator_concept and
2915         iterator category respectively as per P2259.
2916         (counted_iterator::operator->): Define as per P2259.
2917         (incrementable_traits<counted_iterator>): Remove as per P2259.
2918         (iterator_traits<counted_iterator>): Adjust as per P2259.
2919         * include/std/ranges (__detail::__iota_view_iter_cat): Define.
2920         (iota_view::_Iterator): Derive from the above in order to
2921         conditionally define iterator_category as per P2259.
2922         (iota_view::_S_iter_cat): Rename to ...
2923         (iota_view::_S_iter_concept): ... this.
2924         (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
2925         (iota_view::iterator_category): Remove.
2926         (__detail::__filter_view_iter_cat): Define.
2927         (filter_view::_Iterator): Derive from the above in order to
2928         conditionally define iterator_category as per P2259.
2929         (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
2930         (filter_view::_Iterator::iterator_category): Remove.
2931         (transform_view::_Base): Define.
2932         (transform_view::__iter_cat): Define.
2933         (transform_view::_Iterator): Derive from the above in order to
2934         conditionally define iterator_category as per P2259.
2935         (transform_view::_Iterator::_Base): Just alias
2936         transform_view::_Base.
2937         (transform_view::_Iterator::_S_iter_cat): Move to struct
2938         transform_view::__iter_cat.
2939         (transform_view::_Iterator::iterator_category): Remove.
2940         (transform_view::_Sentinel::_Base): Just alias
2941         transform_view::_Base.
2942         (join_view::_Base): Define.
2943         (join_view::_Outer_iter): Define.
2944         (join_view::_Inner_iter): Define.
2945         (join_view::_S_ref_is_glvalue): Define.
2946         (join_view::__iter_cat): Define.
2947         (join_view::_Iterator): Derive from it in order to conditionally
2948         define iterator_category as per P2259.
2949         (join_view::_Iterator::_Base): Just alias join_view::_Base.
2950         (join_view::_Iterator::_S_ref_is_glvalue): Just alias
2951         join_view::_S_ref_is_glvalue.
2952         (join_view::_Iterator::_S_iter_cat): Move to struct
2953         transform_view::__iter_cat.
2954         (join_view::_Iterator::_Outer_iter): Just alias
2955         join_view::_Outer_iter.
2956         (join_view::_Iterator::_Inner_iter): Just alias
2957         join_view::_Inner_iter.
2958         (join_view::_Iterator::iterator_category): Remove.
2959         (join_view::_Sentinel::_Base): Just alias join_view::_Base.
2960         (__detail::__split_view_outer_iter_cat): Define.
2961         (__detail::__split_view_inner_iter_cat): Define.
2962         (split_view::_Base): Define.
2963         (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
2964         in order to conditionally define iterator_category as per P2259.
2965         (split_view::_Outer_iter::iterator_category): Remove.
2966         (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
2967         in order to conditionally define iterator_category as per P2259.
2968         (split_view::_Inner_iter::_S_iter_cat): Move to
2969         __split_view_inner_iter_cat.
2970         (split_view::_Inner_iter::iterator_category): Remove.
2971         (elements_view::_Base): Define.
2972         (elements_view::__iter_cat): Define.
2973         (elements_view::_Iterator): Derive from the above in order to
2974         conditionall define iterator_category as per P2259.
2975         (elements_view::_Iterator::_Base): Just alias
2976         elements_view::_Base.
2977         (elements_view::_Iterator::_S_iter_concept)
2978         (elements_view::_Iterator::iterator_concept): Define as per
2979         P2259.
2980         (elements_view::_Iterator::iterator_category): Remove.
2981         (elements_view::_Sentinel::_Base): Just alias
2982         elements_view::_Base.
2983         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2984         Adjust constraints on iterator_traits<counted_iterator>.
2985         * testsuite/std/ranges/p2259.cc: New test.
2987 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
2989         PR libstdc++/100146
2990         * include/std/charconv (__cpp_lib_to_chars): Define
2991         conditionally.
2992         * include/std/version (__cpp_lib_to_chars): Likewise..
2993         * testsuite/20_util/from_chars/4.cc: Only check feature test
2994         macro, not _GLIBCXX_HAVE_USELOCALE.
2995         * testsuite/20_util/from_chars/5.cc: Likewise.
2996         * testsuite/20_util/from_chars/6.cc: Likewise.
2997         * testsuite/20_util/to_chars/long_double.cc: Likewise.
2999 2021-04-20  Jakub Jelinek  <jakub@redhat.com>
3001         * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
3002         versions with _IEEE128_ substring are found, set ieee_version_found
3003         to true.  Ignore missing symbols with _IEEE128_ in version name if
3004         !ieee_version_found.  Use i->first as version_name instead of
3005         i->second.version_name if the latter is empty.
3006         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3008 2021-04-19  H.J. Lu  <hjl.tools@gmail.com>
3010         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
3011         Updated.
3013 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
3015         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3016         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3018 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
3020         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3021         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3022         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
3023         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3024         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3025         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3027 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
3029         * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
3030         add libatomic options for 32-bit sparc*-*-linux-gnu.
3032 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
3034         PR libstdc++/96657
3035         * libsupc++/Makefile.am: Add atomicity.cc here.
3036         * src/c++98/Makefile.am: Remove it from here.
3037         * libsupc++/Makefile.in: Regenerate.
3038         * src/c++98/Makefile.in: Regenerate.
3039         * testsuite/18_support/exception_ptr/96657.cc: New test.
3041 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
3043         PR libstdc++/100060
3044         * include/std/bit: Only include <ext/numeric_traits.h> for
3045         hosted build, use <limits> otherwise.
3047 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
3049         * doc/xml/manual/backwards_compatibility.xml: Remove porting
3050         notes for libg++ and libstdc++-v2, and bibliography.
3051         * doc/html/*: Regenerated.
3053 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
3055         PR libstdc++/100044
3056         * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
3057         Remove helper concept.
3058         (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
3059         deduction guides, as per LWG 3404.
3060         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
3061         template argument deduction fails.
3063 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
3065         * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
3066         Adjust expected error for C++20 mode.
3067         * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
3068         Likewise.
3070 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
3072         PR libstdc++/99995
3073         * testsuite/17_intro/headers/c++1998/49745.cc: Include all
3074         standard headers and XFAIL for effective-target c++20.
3076 2021-04-09  François Dumont  <fdumont@gcc.gnu.org>
3078         PR libstdc++/99402
3079         * include/debug/helper_functions.h (__can_advance(_InputIterator,
3080         const std::pair<_Diff, _Distance_precision>&, int)): New.
3081         (__can_advance(const _Safe_iterator<>&,
3082         const std::pair<_Diff, _Distance_precision>&, int)): New.
3083         * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
3084         use latter.
3085         (__glibcxx_check_can_increment_range): Adapt to use latter.
3086         (__glibcxx_check_can_decrement_range): Likewise.
3087         * include/debug/safe_iterator.h
3088         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3089         int)): New.
3090         (__can_advance(const _Safe_iterator<>&,
3091         const std::pair<_Diff, _Distance_precision>&, int)): New.
3092         * include/debug/safe_iterator.tcc
3093         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3094         int)): New.
3095         (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
3096         std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
3097         __dp_sign_max_size.
3098         (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
3099         (__copy_move_backward_a): Likewise.
3100         (__equal_aux): Likewise.
3101         * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
3102         const std::pair<_Diff, _Distance_precision>&, int)): New.
3103         (__can_advance(const std::move_iterator<>&,
3104         const std::pair<_Diff, _Distance_precision>&, int)): New.
3105         * testsuite/25_algorithms/copy/debug/99402.cc: New test.
3107 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
3109         PR libstdc++/99985
3110         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
3111         to be a valid constexpr function in C++11.
3112         * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
3114 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
3116         * include/bits/fs_fwd.h: Fix doxygen group command.
3117         * include/bits/streambuf_iterator.h: Likewise.
3118         * include/bits/uses_allocator_args.h: Likewise.
3119         * include/std/memory: Likewise.
3120         * include/tr1/complex: Likewise.
3122 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
3124         * include/bits/basic_string.h: Tweak doxygen comment.
3126 2021-04-08  Patrick Palka  <ppalka@redhat.com>
3128         * include/std/ranges (__detail::find): Define.
3129         (split_view::_OuterIter::operator++): Apply proposed resolution
3130         of LWG 3505.
3131         * testsuite/std/ranges/adaptors/split.cc (test10): New test.
3133 2021-04-08  Patrick Palka  <ppalka@redhat.com>
3135         * include/std/ranges (__detail::find_if): Simplify.
3136         (__detail::find_if_not): Likewise.
3137         (__detail::min): Remove.
3138         (__detail::mismatch): Simplify.
3139         (take_view::size): Use std::min instead of __detail::min.
3141 2021-04-08  Patrick Palka  <ppalka@redhat.com>
3143         * include/std/ranges (__detail::__returnable_element): New
3144         concept.
3145         (elements_view): Use this concept in its constraints.  Add
3146         missing private access specifier.
3147         (elements_view::_S_get_element): Define as per LWG 3502.
3148         (elements_view::operator*, elements_view::operator[]): Use
3149         _S_get_element.
3150         (elements_view::operator++): Remove unnecessary constraint
3151         as per LWG 3492.
3152         * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
3154 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
3156         * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
3157         out-of-memory error in log file.
3158         * doc/Makefile.in: Regenerate.
3160 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
3162         * configure: Regenerate.
3164 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
3166         * include/bits/random.h: Fix doxygen group commands.
3167         * include/bits/regex_constants.h: Likewise.
3168         * include/tr1/random.h: Likewise.
3170 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
3172         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
3173         New function to determine noexcept-specifier for move
3174         constructors.
3175         (_Hashtable): Use _S_nothrow_move() on move constructors.
3176         * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
3177         Correct static assertion message.
3178         * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
3179         Likewise.
3180         * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
3181         Likewise.
3182         * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
3183         Likewise.
3185 2021-04-08  Patrick Palka  <ppalka@redhat.com>
3187         PR libstdc++/98384
3188         * testsuite/20_util/to_chars/long_double.cc: Don't run the test
3189         on targets without a large long double.  XFAIL the execution on
3190         targets with a non-conforming printf.
3192 2021-04-08  Patrick Palka  <ppalka@redhat.com>
3194         PR libstdc++/99433
3195         * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
3196         (__adaptor::__adaptor_invocable): New concept.
3197         (__adaptor::__adaptor_partial_app_viable): New concept.
3198         (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
3199         non-template base class.
3200         (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
3201         class template.
3202         (__adaptor::_Partial): New class template that represents
3203         partial application of a range adaptor non-closure.
3204         (__adaptor::__pipe_invocable): New concept.
3205         (__adaptor::_Pipe): New class template.
3206         (__detail::__can_ref_view): New concept.
3207         (__detail::__can_subrange): New concept.
3208         (all): Replace the lambda here with ...
3209         (_All): ... this functor.  Add appropriate constraints.
3210         (__detail::__can_filter_view): New concept.
3211         (filter, _Filter): As in all/_All.
3212         (__detail::__can_transform): New concept.
3213         (transform, _Transform): As in all/_All.
3214         (__detail::__can_take_view): New concept.
3215         (take, _Take): As in all/_All.
3216         (__detail::__can_take_while_view): New concept.
3217         (take_while, _TakeWhile): As in all/_All.
3218         (__detail::__can_drop_view): New concept.
3219         (drop, _Drop): As in all/_All.
3220         (__detail::__can_drop_while_view): New concept.
3221         (drop_while, _DropWhile): As in all/_All.
3222         (__detail::__can_join_view): New concept.
3223         (join, _Join): As in all/_All.
3224         (__detail::__can_split_view): New concept.
3225         (split, _Split): As in all/_All.  Rename template parameter
3226         _Fp to _Pattern.
3227         (__detail::__already_common): New concept.
3228         (__detail::__can_common_view): New concept.
3229         (common, _Common): As in all/_All.
3230         (__detail::__can_reverse_view): New concept.
3231         (reverse, _Reverse): As in all/_All.
3232         (__detail::__can_elements_view): New concept.
3233         (elements, _Elements): As in all/_All.
3234         (keys, values): Adjust.
3235         * testsuite/std/ranges/adaptors/99433.cc: New test.
3236         * testsuite/std/ranges/adaptors/all.cc: No longer expect that
3237         adding empty range adaptor closure objects to a pipeline doesn't
3238         increase the size of the pipeline.
3239         (test05): New test.
3240         * testsuite/std/ranges/adaptors/common.cc (test03): New test.
3241         * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
3242         * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
3243         * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
3244         * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
3245         * testsuite/std/ranges/adaptors/join.cc (test09): New test.
3246         * testsuite/std/ranges/adaptors/p2281.cc: New test.
3247         * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
3248         * testsuite/std/ranges/adaptors/split.cc (test01, test04):
3249         Adjust.
3250         (test09): New test.
3251         * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
3252         expected error message.
3253         (test02): Likewise.  Extend test.
3254         * testsuite/std/ranges/adaptors/take.cc (test06): New test.
3255         * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
3256         * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
3257         New test.
3259 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
3261         * include/std/string_view: Adjust Doxygen @file comment.
3263 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
3265         * include/std/type_traits (is_scoped_enum<T>): Constrain partial
3266         specialization to not match incomplete enum types. Use a
3267         requires-expression instead of instantiating is_convertible.
3268         (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
3269         * testsuite/20_util/is_scoped_enum/value.cc: Check with
3270         incomplete types and opaque-enum-declarations.
3272 2021-04-07  Jonathan Wakely  <jwakely@redhat.com>
3274         PR libstdc++/99805
3275         * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
3276         non-const member on _M_pathname, to avoid copy-on-write.
3277         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3278         Check construction from strings that might be shared.
3280 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
3282         * include/bits/move.h (forward, move, move_if_noexcept)
3283         (addressof): Add _GLIBCXX_NODISCARD.
3284         * include/bits/ranges_cmp.h (identity::operator()): Add
3285         nodiscard attribute.
3286         * include/c_global/cstddef (to_integer): Likewise.
3287         * include/std/bit (bit_cast): Likewise.
3288         * include/std/utility (as_const, to_underlying): Likewise.
3290 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
3292         * include/bits/move.h (forward): Change static_assert message
3293         to be unambiguous about what must be true.
3294         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
3295         * testsuite/20_util/forward/f_neg.cc: Likewise.
3297 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
3299         * include/bits/alloc_traits.h: Use markdown for code font.
3300         * include/bits/basic_string.h: Fix @param names.
3301         * include/bits/max_size_type.h: Remove period after @file.
3302         * include/bits/regex.h: Fix duplicate @retval names, and rename.
3303         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
3304         group open to match existing group close.
3305         * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
3306         open.
3308 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
3310         * include/bits/atomic_base.h: Fix doxygen group close.
3311         * include/bits/basic_ios.h: Likewise.
3312         * include/bits/forward_list.h: Likewise.
3313         * include/bits/fs_dir.h: Likewise.
3314         * include/bits/fs_ops.h: Likewise.
3315         * include/bits/fs_path.h: Likewise.
3316         * include/bits/functional_hash.h: Likewise.
3317         * include/bits/gslice.h: Likewise.
3318         * include/bits/gslice_array.h: Likewise.
3319         * include/bits/hashtable_policy.h: Likewise.
3320         * include/bits/indirect_array.h: Likewise.
3321         * include/bits/locale_classes.h: Likewise.
3322         * include/bits/locale_facets.h: Likewise.
3323         * include/bits/locale_facets_nonio.h: Likewise.
3324         * include/bits/mask_array.h: Likewise.
3325         * include/bits/refwrap.h: Likewise.
3326         * include/bits/regex.h: Likewise.
3327         * include/bits/regex_automaton.h: Likewise.
3328         * include/bits/regex_compiler.h: Likewise.
3329         * include/bits/regex_constants.h: Likewise.
3330         * include/bits/regex_error.h: Likewise.
3331         * include/bits/regex_executor.h: Likewise.
3332         * include/bits/regex_scanner.h: Likewise.
3333         * include/bits/shared_ptr.h: Likewise.
3334         * include/bits/shared_ptr_atomic.h: Likewise.
3335         * include/bits/shared_ptr_base.h: Likewise.
3336         * include/bits/slice_array.h: Likewise.
3337         * include/bits/specfun.h: Likewise.
3338         * include/bits/std_function.h: Likewise.
3339         * include/bits/std_mutex.h: Likewise.
3340         * include/bits/stl_deque.h: Likewise.
3341         * include/bits/stl_iterator.h: Likewise.
3342         * include/bits/stl_iterator_base_types.h: Likewise.
3343         * include/bits/stl_map.h: Likewise.
3344         * include/bits/stl_multimap.h: Likewise.
3345         * include/bits/stl_multiset.h: Likewise.
3346         * include/bits/stl_numeric.h: Likewise.
3347         * include/bits/stl_pair.h: Likewise.
3348         * include/bits/stl_set.h: Likewise.
3349         * include/bits/stl_uninitialized.h: Likewise.
3350         * include/bits/stream_iterator.h: Likewise.
3351         * include/bits/streambuf_iterator.h: Likewise.
3352         * include/bits/unique_ptr.h: Likewise.
3353         * include/bits/unordered_map.h: Likewise.
3354         * include/bits/unordered_set.h: Likewise.
3355         * include/decimal/decimal: Likewise.
3356         * include/experimental/any: Likewise.
3357         * include/experimental/array: Likewise.
3358         * include/experimental/bits/fs_dir.h: Likewise.
3359         * include/experimental/bits/fs_fwd.h: Likewise.
3360         * include/experimental/bits/fs_ops.h: Likewise.
3361         * include/experimental/bits/fs_path.h: Likewise.
3362         * include/experimental/buffer: Likewise.
3363         * include/experimental/internet: Likewise.
3364         * include/experimental/optional: Likewise.
3365         * include/experimental/propagate_const: Likewise.
3366         * include/experimental/socket: Likewise.
3367         * include/ext/pb_ds/assoc_container.hpp: Likewise.
3368         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
3369         Likewise.
3370         * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
3371         * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
3372         * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
3373         * include/ext/pb_ds/exception.hpp: Likewise.
3374         * include/ext/pb_ds/priority_queue.hpp: Likewise.
3375         * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
3376         * include/ext/random: Likewise.
3377         * include/std/any: Likewise.
3378         * include/std/atomic: Likewise.
3379         * include/std/bitset: Likewise.
3380         * include/std/chrono: Likewise.
3381         * include/std/complex: Likewise.
3382         * include/std/condition_variable: Likewise.
3383         * include/std/fstream: Likewise.
3384         * include/std/future: Likewise.
3385         * include/std/iostream: Likewise.
3386         * include/std/istream: Likewise.
3387         * include/std/mutex: Likewise.
3388         * include/std/numeric: Likewise.
3389         * include/std/ostream: Likewise.
3390         * include/std/ratio: Likewise.
3391         * include/std/shared_mutex: Likewise.
3392         * include/std/stdexcept: Likewise.
3393         * include/std/streambuf: Likewise.
3394         * include/std/system_error: Likewise.
3395         * include/std/thread: Likewise.
3396         * include/std/valarray: Likewise.
3397         * include/std/variant: Likewise.
3398         * include/tr1/cmath: Likewise.
3399         * include/tr1/regex: Likewise.
3400         * include/tr2/dynamic_bitset: Likewise.
3401         * libsupc++/atomic_lockfree_defines.h: Likewise.
3402         * libsupc++/exception: Likewise.
3403         * libsupc++/exception.h: Likewise.
3404         * libsupc++/exception_ptr.h: Likewise.
3405         * libsupc++/nested_exception.h: Likewise.
3407 2021-03-31  Alexandre Oliva  <oliva@adacore.com>
3409         * testsuite/30_threads/future/members/poll.cc: Use faster
3410         after-ready call in the calibration loop.
3412 2021-03-29  Jonathan Wakely  <jwakely@redhat.com>
3414         * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
3415         * doc/html/manual/status.html: Regenerate.
3417 2021-03-28  François Dumont  <fdumont@gcc.gnu.org>
3419         * include/debug/forward_list
3420         (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
3421         * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
3422         call to safe container allocator aware move constructor.
3423         * include/debug/vector (vector(vector&&, const allocator_type&)):
3424         Fix noexcept qualification.
3425         * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
3426         Add allocator-extended move constructor noexceot qualification check.
3427         * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
3429 2021-03-26  Jonathan Wakely  <jwakely@redhat.com>
3431         * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
3432         fallback is needed.
3433         [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
3434         New helper functions and callback.
3435         (random_device::_M_init): Add 'prng' and 'all' enumerators.
3436         Replace switch with fallthrough with a series of 'if' statements.
3437         [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
3438         checks fail.
3439         (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
3440         token.
3441         (random_device::_M_getval): Check for callback unconditionally
3442         and always pass _M_file pointer.
3443         * testsuite/26_numerics/random/random_device/85494.cc: Remove
3444         effective-target check. Use new random_device_available helper.
3445         * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
3446         * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
3447         Remove effective-target check.
3448         * testsuite/26_numerics/random/random_device/cons/default.cc:
3449         Likewise.
3450         * testsuite/26_numerics/random/random_device/cons/token.cc: Use
3451         new random_device_available helper. Test "prng" token.
3452         * testsuite/util/testsuite_random.h (random_device_available):
3453         New helper function.
3455 2021-03-25  François Dumont  <fdumont@gcc.gnu.org>
3457         * include/debug/string
3458         (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
3459         (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
3460         (basic_string<>::erase): Adapt to take __const_iterator.
3461         (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
3462         (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
3463         remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
3464         [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
3465         (__gnu_debug::u16string, __gnu_debug::u32string): New.
3466         (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
3467         (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
3468         * testsuite/util/exception/safety.h
3469         (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
3470         (insert_base<__gnu_debug::basic_string<>>): Likewise.
3471         * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
3472         New partial specialization.
3473         * testsuite/21_strings/basic_string/hash/debug.cc: New test.
3474         * testsuite/21_strings/basic_string/requirements/citerators.cc:
3475         Add test on __gnu_debug::string.
3476         * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
3477         * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
3478         * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
3479         Likewise.
3480         * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
3481         Likewise.
3482         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
3483         Likewise.
3484         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
3485         Likewise.
3486         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
3487         Likewise.
3488         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
3489         Likewise.
3490         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
3491         Likewise.
3492         * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
3494 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
3496         PR c++/99672
3497         * testsuite/18_support/source_location/consteval.cc (main): Adjust
3498         expected column numbers.
3499         * testsuite/18_support/source_location/1.cc (main): Likewise.
3501 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
3503         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
3505 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
3507         * testsuite/util/exception/safety.h (setup_base::generate):
3508         Support seeding random engine.
3509         (erase_point, erase_range): Adjust range of random numbers to
3510         ensure dereferenceable iterators are used where required.
3511         (generation_prohibited::run): Do not try to erase from empty
3512         containers.
3513         * testsuite/util/testsuite_containergen.h (test_containers):
3514         Support seeding random engine.
3516 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
3518         * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
3519         line with a check that uses the const being/end overloads.
3521 2021-03-23  Moritz Sichert  <sichert@in.tum.de>
3523         * include/std/ranges (reverse_view::begin, reverse_view::end):
3524         Qualify make_reverse_iterator calls to avoid ADL.
3525         * testsuite/std/ranges/adaptors/reverse.cc: Test that
3526         views::reverse works when make_reverse_iterator is defined
3527         in an associated namespace.
3529 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
3531         * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
3532         Do not define when compiling with Clang.
3534 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
3536         * include/std/string_view (basic_string_view(Range&&)): Define new
3537         constructor and deduction guide.
3538         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
3539         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
3541 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
3543         * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
3544         Add missing 'noexcept' as per LWG 2280.
3545         (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
3546         (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
3547         * testsuite/24_iterators/range_access/range_access.cc: Check for
3548         expected noexcept specifiers. Check result types of generic
3549         std::begin and std::end overloads.
3550         * testsuite/24_iterators/range_access/range_access_cpp14.cc:
3551         Check for expected noexcept specifiers.
3552         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3553         Likewise.
3555 2021-03-19  Jonathan Wakely  <jwakely@redhat.com>
3557         * include/std/type_traits (is_scoped_enum): Define.
3558         * include/std/version (__cpp_lib_is_scoped_enum): Define.
3559         * testsuite/20_util/is_scoped_enum/value.cc: New test.
3560         * testsuite/20_util/is_scoped_enum/version.cc: New test.
3562 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
3564         PR libstdc++/99341
3565         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
3566         std::once_flag symbols.
3567         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
3568         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
3569         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
3570         Likewise.
3571         * config/abi/pre/gnu.ver: Likewise.
3572         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3573         (struct __once_flag_compat): Remove.
3574         (_ZNSt9once_flag11_M_activateEv): Remove.
3575         (_ZNSt9once_flag9_M_finishEb): Remove.
3577 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
3579         PR libstdc++/99341
3580         * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
3581         Revert to pthread_once_t implementation.
3582         [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
3583         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3584         (struct __once_flag_compat): New type matching the reverted
3585         implementation of once_flag using futexes.
3586         (once_flag::_M_activate): Remove, replace with ...
3587         (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
3588         (once_flag::_M_finish): Remove, replace with ...
3589         (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
3590         * testsuite/30_threads/call_once/66146.cc: Removed.
3592 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
3594         * testsuite/17_intro/names.cc: Exclude j from the list
3595         of test symbols for Darwin.
3597 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
3599         * config/os/bsd/darwin/ppc-extra.ver: Add matching for
3600         to_chars and from_chars for long double.
3602 2021-03-15  Patrick Palka  <ppalka@redhat.com>
3604         * include/bits/max_size_type.h (__max_size_type::operator _Tp):
3605         Fix formatting.
3606         (__max_size_type::operator++): Define.
3607         (__max_size_type::operator--): Likewise.
3608         (__max_size_type::operator<=>): Conditionally define (in place
3609         of the other comparison operators).
3610         (__max_diff_type::operator _Tp): Fix formatting.
3611         (__max_diff_type::operator++): Define.
3612         (__max_diff_type::operator--): Likewise.
3613         (__max_diff_type::operator<=>): Conditionally define (in place
3614         of the other comparison operators).
3615         * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
3616         these operator overloads.
3618 2021-03-15  Caroline Tice  <cmtice@google.com>
3620         PR libstdc++/99172
3621         * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
3622         AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
3623         AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
3624         filtered out.
3625         * src/Makefile.in: Regenerate.
3627 2021-03-11  Patrick Palka  <ppalka@redhat.com>
3629         * src/c++17/floating_to_chars.cc: Simplify the file as if
3630         __SIZEOF_INT128__ is always defined.
3631         [!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
3632         a base-10 to_chars overload for the uint128_t class type.
3633         * src/c++17/uint128_t.h: New file.
3634         * testsuite/20_util/to_chars/long_double.cc: No longer expect an
3635         execution FAIL on targets that have a large long double type
3636         but lack __int128.
3638 2021-03-11  Patrick Palka  <ppalka@redhat.com>
3640         * src/c++17/ryu/LOCAL_PATCHES: Update.
3641         * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
3642         * src/c++17/ryu/generic_128.h: Likewise.
3643         * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
3644         Use uint128_t instead of __uint128_t.
3645         (generic_binary_to_decimal): Likewise.
3647 2021-03-11  Patrick Palka  <ppalka@redhat.com>
3649         * src/c++17/ryu/LOCAL_PATCHES: New file.
3651 2021-03-11  Patrick Palka  <ppalka@redhat.com>
3653         * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
3654         defined alias of unsigned __int128.
3655         (floating_type_traits_binary128::mantissa_t): Use uint128_t
3656         instead of unsigned __int128.
3657         (floating_type_traits<long double>::mantissa_t)
3658         [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
3659         (get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
3660         and uint32_t explicit.  Simplify the extraction of mantissa,
3661         exponent and sign bit.
3663 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3665         * include/std/barrier (barrier::arrival_token): New move-only
3666         class that encapsulates the underlying token value.
3668 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3670         * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
3671         instead of unqualified() method.
3673 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3675         PR libstdc++/99537
3676         * include/std/stop_token (_Stop_state_t::_M_release_ownership):
3677         Use acq_rel memory ordering.
3679 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3681         PR libstdc++/99533
3682         * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
3683         helper function to check for permission denied errors.
3684         * src/filesystem/dir.cc (recursive_directory_iterator):
3685         Likewise.
3686         * src/filesystem/dir-common.h (is_permission_denied_error): New
3687         helper function.
3689 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3691         PR libstdc++/99536
3692         * include/bits/random.h (normal_distribution): Use
3693         default-initializer for _M_saved and _M_saved_available.
3695 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
3697         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
3698         link with libatomic.
3699         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
3700         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
3701         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
3702         * testsuite/30_threads/barrier/arrive.cc: Likewise.
3703         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
3704         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
3705         * testsuite/30_threads/barrier/completion.cc: Likewise.
3706         * testsuite/30_threads/latch/3.cc: Likewise.
3707         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
3708         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
3709         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
3711 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
3713         PR libstdc++/99413
3714         * include/bits/align.h: Include debug/assertions.h.
3715         * include/bits/codecvt.h: Include bits/c++config.h.
3716         * include/bits/enable_special_members.h: Likewise.
3717         * include/bits/erase_if.h: Likewise.
3718         * include/bits/functional_hash.h: Include <type_traits>.
3719         * include/bits/invoke.h: Include bits/move.h.
3720         * include/bits/ostream_insert.h: Include bits/exception_defines.h.
3721         * include/bits/parse_numbers.h: Include <type_traits>.
3722         * include/bits/predefined_ops.h: Include bits/c++config.h.
3723         * include/bits/range_access.h: Include bits/stl_iterator.h.
3724         * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
3725         * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
3726         * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
3727         * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
3728         * include/bits/unique_lock.h: Include bits/std_mutex.h.
3729         * include/debug/assertions.h: Include bits/c++config.h.
3731 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
3733         * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
3734         (ranges::equal_to, ranges::not_equal_to): Do not constrain
3735         with __eq_builtin_ptr_cmp.
3736         (ranges::less, ranges::greater, ranges::less_equal)
3737         (ranges::greater_equal): Do not constrain with
3738         __less_builtin_ptr_cmp.
3739         * libsupc++/compare (compare_three_way): Do not constrain with
3740         __3way_builtin_ptr_cmp.
3741         * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
3742         * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
3743         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
3745 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
3747         * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
3748         C++20 calendar types.
3750 2021-03-06  Jakub Jelinek  <jakub@redhat.com>
3752         PR libstdc++/99396
3753         * include/std/bit (__rotl, __rotr): Add optimized variants for power of
3754         two _Nd which the compiler can pattern match the rotates.
3756 2021-03-04  Jonathan Wakely  <jwakely@redhat.com>
3758         PR libstdc++/99382
3759         * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
3760         Make storage larger than required. Verify no write to the last
3761         element.
3762         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3763         Likewise.
3765 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3767         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3768         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3769         Likewise.
3770         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3771         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3772         Likewise.
3774 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3776         * include/experimental/bits/simd.h: Replace reserved _X, _B by
3777         _Xp, _Bp.
3778         * include/experimental/bits/simd_builtin.h: Likewise.
3779         * include/experimental/bits/simd_x86.h: Likewise.
3781 2021-02-27  Jonathan Wakely  <jwakely@redhat.com>
3783         PR libstdc++/99301
3784         * include/std/chrono (year_month_day::_M_days_since_epoch()):
3785         Convert chrono::month and chrono::day to unsigned before
3786         converting to uint32_t.
3788 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3790         * include/std/chrono (year_month_day::_S_from_days): Perform
3791         all calculations with type uint32_t.
3793 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3795         * doc/xml/manual/abi.xml: Document versioning for GCC 11.
3796         * doc/html/manual/abi.html: Regenerate.
3798 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3800         PR libstdc++/99270
3801         * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
3802         FILE instead of FILE.
3804 2021-02-25  Andreas Schwab  <schwab@suse.de>
3806         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3807         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3808         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3809         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3811 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3813         PR libstdc++/99265
3814         * include/std/chrono (year_month_day::_S_from_days): Cast long
3815         to int explicitly.
3817 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3819         * include/std/utility (to_underlying): Define.
3820         * include/std/version (__cpp_lib_to_underlying): Define.
3821         * testsuite/20_util/to_underlying/1.cc: New test.
3822         * testsuite/20_util/to_underlying/version.cc: New test.
3824 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
3826         PR libstdc++/99261
3827         * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
3828         before value to be printed.
3830 2021-02-24  Patrick Palka  <ppalka@redhat.com>
3832         * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
3833         Relax the condition that guards the printf code path to accept
3834         F128_type as well as long double.
3836 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
3838         * include/std/chrono (year_month_day_last:day): New
3839         implementation.
3841 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
3843         * include/std/chrono (year::is_leap): New implementation.
3844         * testsuite/std/time/year/2.cc: New test.
3846 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
3848         * include/std/chrono (year_month_day::_M_days_since_epoch):
3849         New implementation.
3850         * testsuite/std/time/year_month_day/4.cc: New test.
3852 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
3854         * include/std/chrono (year_month_day::_S_from_days): New
3855         implementation.
3856         * testsuite/std/time/year_month_day/3.cc: New test.
3858 2021-02-24  Patrick Palka  <ppalka@redhat.com>
3860         PR libstdc++/98384
3861         * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
3862         (test01): Simplify verifying the nearby values by using a
3863         2-iteration loop and a dedicated output buffer to check that the
3864         nearby values are different.  Factor out the printf-based
3865         verification into a local function, and check that the leading
3866         hex digits agree before comparing to the output of printf.  Also
3867         verify the output by round-tripping it through from_chars.
3869 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
3871         PR libstdc++/98389
3872         * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
3873         symbols for long double arguments mangled as 'g'.
3874         * config/os/gnu-linux/ldbl-extra.ver: Likewise.
3875         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
3876         * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
3877         Use -mabi=ibmlongdouble for floating_to_chars.cc.
3878         * src/c++17/Makefile.in: Regenerate.
3879         * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
3880         New type defining type traits of IEEE binary128 format.
3881         (floating_type_traits<__float128>): Define specialization.
3882         (floating_type_traits<long double>): Define in terms of
3883         floating_type_traits_binary128 when appropriate.
3884         (floating_to_shortest_scientific): Handle __float128.
3885         (sprintf_ld): New function template for printing a long double
3886         or __ieee128 value using sprintf.
3887         (__floating_to_chars_shortest, __floating_to_chars_precision):
3888         Use sprintf_ld.
3889         (to_chars): Define overloads for __float128.
3891 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
3893         * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
3895 2021-02-23  Martin Sebor  <msebor@redhat.com>
3897         PR c++/99074
3898         * libsupc++/dyncast.cc (__dynamic_cast): Return null when
3899         first argument is null.
3901 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
3903         PR libstdc++/99181
3904         * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
3905         test.
3907 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
3909         PR libstdc++/99181
3910         * include/bits/char_traits.h (char_traits<char>::compare): For
3911         constexpr evaluation don't call
3912         __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
3913         directly.
3915 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
3917         PR libstdc++/97549
3918         * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
3920 2021-02-23  Patrick Palka  <ppalka@redhat.com>
3922         PR libstdc++/98384
3923         * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
3924         the high- and low-order parts from an IBM long double value
3925         in an endian-agnostic way.
3927 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
3929         * include/bits/atomic_wait.h (__thread_relax()): Call
3930         __thread_yield() not __gthread_yield().
3932 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
3934         * include/bits/atomic_wait.h (__thread_yield()): Check
3935         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3936         (__thread_relax()): Use __thread_yield() instead of repeating
3937         the preprocessor checks for __gthread_yield.
3939 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
3941         * include/std/mutex (once_flag::_M_activate()): Add explicit
3942         return statement for passive case.
3943         (once_flag::_M_finish(bool)): Use reserved name for parameter.
3945 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
3947         PR libstdc++/99096
3948         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
3950 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3952         PR libstdc++/88881
3953         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
3955 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3957         * doc/xml/manual/status_cxx2014.xml: Document implementation
3958         specific properties of std::experimental::filesystem::rename.
3959         * doc/xml/manual/status_cxx2017.xml: Document implementation
3960         specific properties of std::filesystem::rename.
3961         * doc/html/*: Regenerate.
3962         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
3963         for directories on Windows.
3964         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
3965         MoveFileExW on Windows.
3966         * testsuite/27_io/filesystem/operations/rename.cc: New test.
3967         * testsuite/experimental/filesystem/operations/rename.cc: New test.
3969 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3971         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
3972         random number to the path.
3974 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3976         * include/experimental/internet (address_v6::to_string): Include
3977         scope ID in string.
3978         * testsuite/experimental/net/internet/address/v6/members.cc:
3979         Test to_string() results.
3981 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3983         * include/experimental/internet (address_v6::any): Avoid using
3984         memcpy in constexpr function.
3985         (address_v6::loopback): Likewise.
3986         (make_address_v6): Fix missing return statements on error paths.
3987         * include/experimental/io_context: Avoid -Wdangling-else
3988         warning.
3989         * testsuite/experimental/net/internet/address/v4/members.cc:
3990         Remove unused variables.
3991         * testsuite/experimental/net/internet/address/v6/members.cc:
3992         New test.
3994 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3996         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
3997         Add unused attribute to parameter.
3998         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
3999         Likewise.
4001 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
4003         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
4004         if -fno-rtti is used.
4005         * testsuite/30_threads/async/forced_unwind.cc: Expect test
4006         to abort if -fno-rtti is used.
4008 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
4010         * testsuite/util/testsuite_allocator.h (memory_resource):
4011         Remove requirement for RTTI and exceptions to be enabled.
4013 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
4015         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
4016         static_cast when RTTI is disabled.
4017         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
4018         Likewise.
4019         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
4020         Likewise.
4021         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
4022         Likewise.
4023         * testsuite/27_io/basic_stringstream/str/char/2.cc:
4024         Likewise.
4025         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
4026         Likewise.
4028 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
4030         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
4031         as unused and only use dynamic_cast when RTTI is enabled.
4033 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
4035         PR libstdc++/99077
4036         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
4037         Change int parameter to error_code, to match std::ios_failure.
4038         (__throw_ios_failure(const char*, int)): Construct error_code
4039         from int parameter.
4041 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
4043         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
4044         new macro.
4045         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
4046         macro instead of _GLIBCXX_EH_PTR_COMPAT.
4047         (operator==): Likewise.
4049 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
4051         PR libstdc++/99058
4052         * doc/xml/manual/status_cxx2011.xml: Document when support
4053         became stable.
4054         * doc/xml/manual/status_cxx2014.xml: Likewise.
4055         * doc/xml/manual/status_cxx2017.xml: Likewise.
4056         * doc/html/manual/status.html: Regenerate.
4058 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
4060         PR libstdc++/88881
4061         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
4063 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
4065         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
4066         (fs::remove): Use std::system_category() for error codes from
4067         GetLastError().
4068         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
4069         Likewise.
4071 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
4073         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
4074         in __MINGW32__ macro name.
4075         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4076         * testsuite/27_io/filesystem/path/generation/proximate.cc:
4077         Likewise.
4078         * testsuite/27_io/filesystem/path/generation/relative.cc:
4079         Likewise.
4080         * testsuite/util/testsuite_fs.h: Likewise.
4082 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
4084         * include/bits/stl_tree.h
4085         (__has_is_transparent, __has_is_transparent_t): Move...
4086         * include/bits/stl_function.h: ...here.
4087         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
4088         (_Hashtable_base<>::_M_equals_tr): New.
4089         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
4090         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
4091         heterogeneous lookup.
4092         (_Hashtable<>::_M_find_before_node_tr): New.
4093         (_Hashtable<>::_M_find_node_tr): New.
4094         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
4095         unordered_map::contains<>, unordered_map::equal_range<>): New member function
4096         templates to perform heterogeneous lookup.
4097         (unordered_multimap::find<>, unordered_multimap::count<>,
4098         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
4099         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
4100         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
4101         (unordered_multiset::find<>, unordered_multiset::count<>,
4102         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
4103         * include/debug/unordered_map
4104         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
4105         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
4106         * include/debug/unordered_set
4107         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
4108         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
4109         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
4110         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
4111         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
4112         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
4114 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
4116         * include/bits/stl_deque.h
4117         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
4118         a null pointer test.
4120 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
4122         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
4123         test directory after making it writable again.
4124         * testsuite/experimental/filesystem/operations/remove_all.cc:
4125         Likewise.
4127 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
4129         PR libstdc++/99021
4130         * include/std/coroutine (coroutine_handle<P>::from_address): Add
4131         noexcept.
4133 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
4135         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
4136         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
4138 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
4140         PR middle-end/98465
4141         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
4142         points to the characters moved by earlier _S_move, compute the source
4143         address using expression based on the __p pointer rather than __s
4144         pointer.
4146 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
4148         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
4149         Add comparison with same category and different values.
4150         * testsuite/19_diagnostics/error_code/operators/less.cc:
4151         Likewise. Fix comparison involving different categories.
4152         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
4153         Likewise.
4154         * testsuite/19_diagnostics/error_condition/operators/less.cc:
4155         Add comment.
4156         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
4157         Likewise.
4159 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
4161         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
4162         calls with a single vaddv for aarch64.
4164 2021-02-03  Matthias Kretz  <kretz@kde.org>
4166         * testsuite/Makefile.am: Warn about the workaround. Add
4167         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
4168         Improve initial user feedback from make check-simd.
4169         * testsuite/Makefile.in: Regenerated.
4171 2021-02-03  Matthias Kretz  <kretz@kde.org>
4173         * include/experimental/bits/simd.h: Add __detail::_Minimum and
4174         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
4175         Add hmin and hmax overloads for simd and const_where_expression.
4176         * include/experimental/bits/simd_scalar.h
4177         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
4178         parameter const-ref to allow calling _S_reduce with an rvalue.
4179         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
4180         hmin and hmax. Since the compiler statically determined that all
4181         tests pass, repeat the test after a call to make_value_unknown.
4183 2021-02-03  Matthias Kretz  <kretz@kde.org>
4185         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
4186         instruction pointer data member. Ensure that the `if (m_failed)`
4187         branch is always inlined into the calling code. The body of the
4188         conditional can still be a function call. Move the get_ip call
4189         into the verify ctor to simplify the ctor calls.
4190         (COMPARE): Don't mention the use of all_of for reduction of a
4191         simd_mask. It only distracts from the real issue.
4193 2021-02-03  Matthias Kretz  <kretz@kde.org>
4195         * testsuite/experimental/simd/driver.sh: Abstract reading test
4196         options into read_src_option function. Read skip, only,
4197         expensive, and xfail via read_src_option. Add timeout and
4198         timeout-factor options and adjust timeout variable accordingly.
4199         * testsuite/experimental/simd/tests/loadstore.cc: Set
4200         timeout-factor 2.
4202 2021-02-03  Matthias Kretz  <kretz@kde.org>
4204         * testsuite/experimental/simd/driver.sh: When handling the pipe
4205         to log (and on verbose to stdout) count the lines. If it exceeds
4206         1000 log the issue and exit 125, which is then handled as a
4207         failure.
4209 2021-02-03  Matthias Kretz  <kretz@kde.org>
4211         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
4212         markup for long double on powerpc64*.
4214 2021-02-03  Matthias Kretz  <kretz@kde.org>
4216         * include/experimental/bits/simd.h: Add __have_power10vec
4217         conditional on _ARCH_PWR10.
4218         * include/experimental/bits/simd_builtin.h: Forward declare
4219         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
4220         defined.
4221         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
4222         _SuperImpl for optimizations and correctness.
4223         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
4224         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
4225         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
4226         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
4228 2021-02-03  Matthias Kretz  <kretz@kde.org>
4230         * testsuite/experimental/simd/driver.sh: Remove executable on
4231         SIGINT. Process compiler and test executable output: In verbose
4232         mode print messages immediately, limited to 1000 lines and
4233         breaking long lines to below $COLUMNS (or 1024 if not set).
4234         Communicating the exit status of the compiler / test with the
4235         necessary pipe is done via a message through stdout/-in.
4237 2021-02-03  Matthias Kretz  <kretz@kde.org>
4239         * testsuite/Makefile.am: Ensure .simd.summary is empty before
4240         collecting a new summary.
4241         * testsuite/Makefile.in: Regenerate.
4243 2021-02-03  Matthias Kretz  <kretz@kde.org>
4245         * testsuite/experimental/simd/generate_makefile.sh: Use
4246         different variables internally than documented for user
4247         overrides. This makes internal append/prepend work as intended.
4249 2021-02-03  Matthias Kretz  <kretz@kde.org>
4251         * testsuite/experimental/simd/driver.sh (verify_test): Print
4252         test output on run xfail. Do not repeat lines from the log that
4253         were already printed on stdout.
4254         (test_selector): Make the compiler flags pattern usable as a
4255         substring selector.
4256         (toplevel): Trap on SIGINT and remove the log and sum files.
4257         Call timout with --foreground to quickly terminate on SIGINT.
4258         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
4259         targets via target patterns. Default DRIVEROPTS to -v for run
4260         targets. Remove log and sum files after completion of the run
4261         target (so that it's always recompiled).
4262         Place help text into text file for reasonable 'make help'
4263         performance.
4265 2021-02-03  Matthias Kretz  <kretz@kde.org>
4267         * include/experimental/bits/simd.h: Remove unnecessary static
4268         assertion. Allow sizeof(8) integer __intrinsic_type to enable
4269         the necessary mask type.
4271 2021-02-03  Matthias Kretz  <kretz@kde.org>
4273         * include/experimental/bits/simd.h: Let __intrinsic_type<long
4274         double, N> be valid if sizeof(long double) == sizeof(double) and
4275         use a __vector double as member type.
4277 2021-02-03  Matthias Kretz  <kretz@kde.org>
4279         * include/experimental/bits/simd.h (__is_intrinsic_type): New
4280         internal type trait. Alias for __is_vector_type on x86.
4281         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
4282         __vector_type.
4283         (__intrin_bitcast): Allow casting to & from vector & intrinsic
4284         types.
4285         (__intrinsic_type): Explicitly specialize for NEON intrinsic
4286         vector types.
4288 2021-02-03  Matthias Kretz  <kretz@kde.org>
4290         * testsuite/experimental/simd/driver.sh: Implement skip, only,
4291         expensive, and xfail markers. They can select on type, ABI tag
4292         subset number, target-triplet, and compiler flags.
4293         * testsuite/experimental/simd/generate_makefile.sh: The summary
4294         now includes lines for unexpected passes and expected failures.
4295         If the skip or only markers are only conditional on the type, do
4296         not generate rules for those types.
4297         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
4298         for ABI tag subsets 1-9.
4299         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
4300         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
4301         * testsuite/experimental/simd/tests/casts.cc: Ditto.
4302         * testsuite/experimental/simd/tests/generator.cc: Ditto.
4303         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
4304         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
4305         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
4306         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
4307         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
4308         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
4309         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
4310         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
4311         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
4312         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
4313         * testsuite/experimental/simd/tests/operators.cc: Ditto.
4314         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
4315         * testsuite/experimental/simd/tests/simd.cc: Ditto.
4316         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
4317         * testsuite/experimental/simd/tests/splits.cc: Ditto.
4318         * testsuite/experimental/simd/tests/where.cc: Ditto.
4319         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
4320         addition replace "test only floattypes" marker by unconditional
4321         "float|double|ldouble" only marker.
4322         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
4323         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
4324         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4325         Ditto.
4326         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
4327         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
4328         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
4329         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
4330         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
4331         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
4332         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
4333         addition, xfail on run because the reference data is missing.
4335 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
4337         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
4338         * doc/xml/manual/status_cxx2014.xml: Likewise.
4339         * doc/xml/manual/status_cxx2017.xml: Likewise.
4340         * doc/html/manual/status.html: Regenerate.
4342 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
4344         PR libstdc++/70303
4345         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
4346         Return 0 if both iterators are value-initialized.
4347         * testsuite/23_containers/deque/70303.cc: New test.
4348         * testsuite/23_containers/vector/70303.cc: New test.
4350 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
4352         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
4353         status.
4354         * doc/xml/manual/status_cxx2014.xml: Likewise.
4355         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
4356         std::from_chars and std::to_chars status. Fix formatting.
4357         * doc/html/manual/status.html: Regenerate.
4359 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
4361         * include/experimental/bits/numeric_traits.h: Update copyright
4362         dates.
4363         * include/experimental/bits/simd.h: Likewise.
4364         * include/experimental/bits/simd_builtin.h: Likewise.
4365         * include/experimental/bits/simd_converter.h: Likewise.
4366         * include/experimental/bits/simd_detail.h: Likewise.
4367         * include/experimental/bits/simd_fixed_size.h: Likewise.
4368         * include/experimental/bits/simd_math.h: Likewise.
4369         * include/experimental/bits/simd_neon.h: Likewise.
4370         * include/experimental/bits/simd_ppc.h: Likewise.
4371         * include/experimental/bits/simd_scalar.h: Likewise.
4372         * include/experimental/bits/simd_x86.h: Likewise.
4373         * include/experimental/bits/simd_x86_conversions.h: Likewise.
4374         * include/experimental/simd: Likewise.
4375         * testsuite/experimental/simd/*: Likewise.
4377 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
4379         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
4380         * doc/html/*: Regenerate.
4382 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
4384         * testsuite/experimental/simd/generate_makefile.sh: Use printf
4385         instead of echo when printing escape characters.
4387 2021-01-27  Matthias Kretz  <kretz@kde.org>
4389         * scripts/check_simd: New file. This script is called from the
4390         the check-simd target. It determines a set of compiler flags and
4391         simulator setups for calling generate_makefile.sh and passes the
4392         information back to the check-simd target, which recurses to the
4393         generated Makefiles.
4394         * scripts/create_testsuite_files: Remove files below simd/tests/
4395         from testsuite_files and place them in testsuite_files_simd.
4396         * testsuite/Makefile.am: Add testsuite_files_simd. Add
4397         check-simd target.
4398         * testsuite/Makefile.in: Regenerate.
4399         * testsuite/experimental/simd/driver.sh: New file. This script
4400         compiles and runs a given simd test, logging its output and
4401         status. It uses the timeout command to implement compile and
4402         test timeouts.
4403         * testsuite/experimental/simd/generate_makefile.sh: New file.
4404         This script generates a Makefile which uses driver.sh to compile
4405         and run the tests and collect the logs into a single log file.
4406         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
4407         abs(simd).
4408         * testsuite/experimental/simd/tests/algorithms.cc: New file.
4409         Tests min/max(simd, simd).
4410         * testsuite/experimental/simd/tests/bits/conversions.h: New
4411         file. Contains functions to support tests involving conversions.
4412         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
4413         Support functions make_mask and make_vec.
4414         * testsuite/experimental/simd/tests/bits/mathreference.h: New
4415         file. Support functions to supply precomputed math function
4416         reference data.
4417         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
4418         file. Support code for SFINAE testing.
4419         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
4420         * testsuite/experimental/simd/tests/bits/test_values.h: New
4421         file. Test functions to easily drive a test with simd objects
4422         initialized from a given list of values and a range of random
4423         values.
4424         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
4425         Support code to determine the ULP distance of simd objects.
4426         * testsuite/experimental/simd/tests/bits/verify.h: New file.
4427         Test framework for COMPARE'ing simd objects and instantiating
4428         the test templates with value_type and ABI tag.
4429         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
4430         simd broadcasts.
4431         * testsuite/experimental/simd/tests/casts.cc: New file. Test
4432         simd casts.
4433         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
4434         Test floating-point classification functions.
4435         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
4436         frexp(simd).
4437         * testsuite/experimental/simd/tests/generator.cc: New file. Test
4438         simd generator constructor.
4439         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
4440         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
4441         * testsuite/experimental/simd/tests/integer_operators.cc: New
4442         file. Test integer operators.
4443         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4444         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
4445         modf(simd).
4446         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
4447         (converting) simd loads and stores.
4448         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
4449         log*(simd).
4450         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
4451         Test simd_mask broadcasts.
4452         * testsuite/experimental/simd/tests/mask_conversions.cc: New
4453         file. Test simd_mask conversions.
4454         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
4455         file. Test simd_mask implicit conversions.
4456         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
4457         Test simd_mask loads and stores.
4458         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
4459         file. Test simd_mask operators convert as specified.
4460         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
4461         Test simd_mask compares, subscripts, and negation.
4462         * testsuite/experimental/simd/tests/mask_reductions.cc: New
4463         file. Test simd_mask reductions.
4464         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
4465         1-arg math functions on simd.
4466         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
4467         2-arg math functions on simd.
4468         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
4469         Test implicit conversions on simd binary operators behave as
4470         specified.
4471         * testsuite/experimental/simd/tests/operators.cc: New file. Test
4472         simd compares, subscripts, not, unary minus, plus, minus,
4473         multiplies, divides, increment, and decrement.
4474         * testsuite/experimental/simd/tests/reductions.cc: New file.
4475         Test reduce(simd).
4476         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
4477         remqo(simd).
4478         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
4479         sanity checks of simd types.
4480         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
4481         sin(simd) and cos(simd).
4482         * testsuite/experimental/simd/tests/split_concat.cc: New file.
4483         Test split(simd) and concat(simd, simd).
4484         * testsuite/experimental/simd/tests/splits.cc: New file. Test
4485         split(simd_mask).
4486         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
4487         Test remaining trigonometric functions on simd.
4488         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
4489         file. Test trunc(simd), ceil(simd), and floor(simd).
4490         * testsuite/experimental/simd/tests/where.cc: New file. Test
4491         masked operations using where.
4493 2021-01-27  Matthias Kretz  <kretz@kde.org>
4495         * doc/xml/manual/status_cxx2017.xml: Add implementation status
4496         of the Parallelism TS 2. Document implementation-defined types
4497         and behavior.
4498         * include/Makefile.am: Add new headers.
4499         * include/Makefile.in: Regenerate.
4500         * include/experimental/simd: New file. New header for
4501         Parallelism TS 2.
4502         * include/experimental/bits/numeric_traits.h: New file.
4503         Implementation of P1841R1 using internal naming. Addition of
4504         missing IEC559 functionality query.
4505         * include/experimental/bits/simd.h: New file. Definition of the
4506         public simd interfaces and general implementation helpers.
4507         * include/experimental/bits/simd_builtin.h: New file.
4508         Implementation of the _VecBuiltin simd_abi.
4509         * include/experimental/bits/simd_converter.h: New file. Generic
4510         simd conversions.
4511         * include/experimental/bits/simd_detail.h: New file. Internal
4512         macros for the simd implementation.
4513         * include/experimental/bits/simd_fixed_size.h: New file. Simd
4514         fixed_size ABI specific implementations.
4515         * include/experimental/bits/simd_math.h: New file. Math
4516         overloads for simd.
4517         * include/experimental/bits/simd_neon.h: New file. Simd NEON
4518         specific implementations.
4519         * include/experimental/bits/simd_ppc.h: New file. Implement bit
4520         shifts to avoid invalid results for integral types smaller than
4521         int.
4522         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
4523         ABI specific implementations.
4524         * include/experimental/bits/simd_x86.h: New file. Simd x86
4525         specific implementations.
4526         * include/experimental/bits/simd_x86_conversions.h: New file.
4527         x86 specific conversion optimizations. The conversion patterns
4528         work around missing conversion patterns in the compiler and
4529         should be removed as soon as PR85048 is resolved.
4530         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
4531         Test that all (not all fixed_size<N>, though) standard simd and
4532         simd_mask types are usable.
4533         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
4534         file. As above but with -ffast-math.
4535         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
4536         from the standard test loop. Instead use
4537         check_vect_support_and_set_flags to build simd tests with the
4538         relevant machine flags.
4540 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
4542         PR libstdc++/66414
4543         * include/bits/string_view.tcc
4544         (basic_string_view::find(const CharT*, size_type, size_type)):
4545         Optimize.
4547 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
4549         * include/bits/basic_string.h (basic_string::contains): New
4550         member functions.
4551         * include/std/string_view (basic_string_view::contains):
4552         Likewise.
4553         * include/std/version (__cpp_lib_string_contains): Define.
4554         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
4555         Remove trailing whitespace.
4556         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
4557         Likewise.
4558         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
4559         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
4560         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
4561         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
4562         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
4564 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
4566         * src/c++17/Makefile.in: Regenerate.
4568 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
4570         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
4571         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
4572         __lc_type.
4573         (const char* ctype<char>:: is): Same.
4575 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
4577         PR libstdc++/98725
4578         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
4579         write to a wide character stream if wide character support is
4580         disabled in the library.
4582 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
4584         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
4585         stringbuf not wstringbuf.
4587 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
4589         PR debug/98708
4590         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
4591         Compile with -gno-as-loc-support.
4592         * src/c++11/Makefile.in: Regenerated.
4594 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
4596         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
4597         Add -fcf-protection=none to -march=i486.
4599 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
4601         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
4602         compliant.
4604 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
4606         * testsuite/30_threads/future/members/poll.cc: Calibrate
4607         iteration count.
4609 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
4611         PR libstdc++/98466
4612         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
4613         (_Node_iterator()): Make default.
4614         (_Node_const_iterator()): Make default.
4615         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
4616         iterator checks.
4617         * include/debug/safe_iterator.h
4618         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
4619         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
4620         Likewise.
4621         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
4622         _M_singular checks on input iterators.
4623         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
4624         checks.
4625         * testsuite/23_containers/deque/debug/98466.cc: New test.
4626         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
4628 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
4630         PR libstdc++/98471
4631         * include/bits/fs_path.h (__throw_conversion_error): New
4632         function to throw or abort on character conversion errors.
4633         (__wstr_from_utf8): Move definition after filesystem_error has
4634         been defined. Use __throw_conversion_error.
4635         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
4636         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
4637         (path::u8string): Likewise.
4639 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
4641         * include/std/barrier: Update copyright years. Fix whitespace.
4642         * include/std/version: Fix whitespace.
4643         * testsuite/30_threads/barrier/1.cc: Update copyright years.
4644         * testsuite/30_threads/barrier/2.cc: Likewise.
4645         * testsuite/30_threads/barrier/arrive.cc: Likewise.
4646         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4647         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4648         * testsuite/30_threads/barrier/completion.cc: Likewise.
4650 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
4652         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
4654 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
4656         PR libstdc++/98613
4657         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
4658         warning.
4659         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
4661 2021-01-08  Olivier Hainque  <hainque@adacore.com>
4663         * testsuite/20_util/bind/ref_neg.cc: Tweak the
4664         dg-prune-output regex for out-of-build-tree contexts.
4666 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
4668         * doc/doxygen/user.cfg.in: Add new header.
4669         * include/Makefile.am (std_headers): likewise.
4670         * include/Makefile.in: Regenerate.
4671         * include/precompiled/stdc++.h: Add new header.
4672         * include/std/barrier: New file.
4673         * include/std/version: Add __cpp_lib_barrier feature test macro.
4674         * testsuite/30_threads/barrier/1.cc: New test.
4675         * testsuite/30_threads/barrier/2.cc: Likewise.
4676         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4677         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4678         * testsuite/30_threads/barrier/arrive.cc: Likewise.
4679         * testsuite/30_threads/barrier/completion.cc: Likewise.
4681 2021-01-07  Patrick Palka  <ppalka@redhat.com>
4683         PR libstdc++/98384
4684         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
4685         instead of the non-standard nextupl and nextdownl.
4687 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
4689         * configure: Re-generate.
4691 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
4693         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
4695 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
4697         * ChangeLog-2020: Rotate ChangeLog.  New file.
4700 Copyright (C) 2021 Free Software Foundation, Inc.
4702 Copying and distribution of this file, with or without modification,
4703 are permitted in any medium without royalty provided the copyright
4704 notice and this notice are preserved.