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