Daily bump.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob614361fcd7b416e7b65fe6ef6fe0e05e2b88fe4a
1 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
3         * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
4         New test.
5         * testsuite/23_containers/span/trivially_copyable.cc: New test.
7 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
9         * include/bits/utility.h (__is_in_place_type_v): Define
10         variable template to detect in_place_type_t specializations.
11         (__is_in_place_type): Replace class template with alias
12         template using __is_in_place_type_v.
13         * include/std/any (any(T&&)): Check __is_in_place_type first and
14         avoid instantiating is_copy_constructible unnecessarily.
16 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
18         * testsuite/20_util/integer_comparisons/greater.cc: New test.
20 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
22         * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
23         Check result matches non-volatile pointer.
25 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
27         PR c++/102535
28         * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
29         expected value for C++20.
31 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
33         * include/bits/std_function.h (_Any_data::_M_access): Add
34         noexcept.
35         (_Function_base::_Base_manager::_M_get_pointer): Likewise.
36         (_Function_base::_Base_manager::_M_not_empty_function):
37         Likewise.
39 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
41         * include/std/ostream (operator<<(const volatile void*)):
42         Add new overload, as per P1147R1.
43         * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
44         New test.
46 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
48         * include/bits/stl_queue.h
49         (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
50         value.
51         * include/bits/stl_stack.h
52         (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
53         * include/std/version
54         (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
55         * testsuite/23_containers/queue/cons_from_iters.cc: Update
56         expected value.
57         * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
59 2021-10-04  Jonathan Wakely  <jwakely@redhat.com>
61         * include/bits/forward_list.h (forward_list): Use non-deduced
62         context for allocator parameter of allocator-extended copy and
63         move constructors.
64         * include/bits/stl_bvector.h (vector<bool>): Likewise.
65         * include/bits/stl_deque.h (deque): Likewise.
66         * include/bits/stl_list.h (list): Likewise.
67         * include/bits/stl_map.h (map): Likewise.
68         * include/bits/stl_multimap.h (multimap): Likewise.
69         * include/bits/stl_multiset.h (multiset): Likewise.
70         * include/bits/stl_set.h (set): Likewise.
71         * include/bits/stl_vector.h (vector): Likewise.
72         * include/bits/stl_queue.h (queue, priority_queue): Do not
73         constrain Allocator template parameter of deduction guides that
74         have a Container parameter.
75         * include/bits/stl_stack.h (stack): Likewise.
76         * include/debug/deque (__gnu_debug::deque): Use non-deduced
77         context for allocator parameter of allocator-extended copy and
78         move constructors.
79         * include/debug/list (__gnu_debug::list): Likewise.
80         * include/debug/map.h (__gnu_debug::map): Likewise.
81         * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
82         * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
83         * include/debug/set.h (__gnu_debug::set): Likewise.
84         * include/debug/vector (__gnu_debug::vector): Likewise.
85         * testsuite/23_containers/deque/cons/deduction.cc: Test class
86         template argument deduction with non-deduced allocator
87         arguments.
88         * testsuite/23_containers/forward_list/cons/deduction.cc:
89         Likewise.
90         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
91         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
92         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
93         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
94         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
95         * testsuite/23_containers/queue/deduction.cc: Likewise.
96         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
97         * testsuite/23_containers/stack/deduction.cc: Likewise.
98         * testsuite/23_containers/unordered_map/cons/deduction.cc:
99         Likewise.
100         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
101         Likewise.
102         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
103         Likewise.
104         * testsuite/23_containers/unordered_set/cons/deduction.cc:
105         Likewise.
106         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
108 2021-10-04  Jonathan Wakely  <jwakely@redhat.com>
110         * include/std/variant (__detail::__variant::__as): Add missing
111         noexcept to first overload.
113 2021-10-04  Jonathan Wakely  <jwakely@redhat.com>
115         * include/bits/basic_string.h (basic_string(nullptr_t)): Define
116         as deleted.
117         (operator=(nullptr_t)): Likewise.
118         * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
119         (operator=(nullptr_t)): Likewise.
120         * include/std/string_view (basic_string_view(nullptr_t)):
121         Likewise.
122         * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
123         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
124         Change dg-warning to dg-error.
125         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
126         Likewise.
128 2021-10-02  Jonathan Wakely  <jwakely@redhat.com>
130         * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
131         * src/filesystem/ops-common.h (__last_system_error): Add
132         explicit cast to avoid narrowing conversion.
133         (do_space): Fix type in function name.
135 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
137         PR libstdc++/102100
138         * include/Makefile.am (c++config.h): Define
139         _GLIBCXX_VERBOSE_ASSERT based on configure output.
140         * include/Makefile.in: Regenerate.
141         * include/bits/c++config: Fix condition for verbose assertions.
143 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
145         PR libstdc++/92546
146         * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
147         unwrap debug iterators.
148         * include/bits/refwrap.h: Do not error if included in C++03.
149         * include/bits/stl_algo.h (__remove_if): Move to ...
150         * include/bits/stl_algobase.h (__remove_if): ... here.
151         * include/std/deque (erase, erase_if): Use __remove_if instead of
152         remove and remove_if.
153         * include/std/string (erase, erase_if): Likewise.
154         * include/std/vector (erase, erase_if): Likewise.
156 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
158         PR libstdc++/66742
159         * include/bits/list.tcc (list::sort()): Use _Scratch_list
160         objects for splicing and merging.
161         (list::sort(StrictWeakOrdering)): Likewise.
162         * include/bits/stl_list.h (__detail::_Scratch_list): New type.
163         * src/c++98/list.cc (_List_node_base::_M_transfer): Add
164         assertion for --enable-libstdcxx-debug library.
165         * testsuite/23_containers/list/operations/66742.cc: New test.
167 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
169         PR libstdc++/100612
170         * include/std/thread (__pmf_expects_stop_token): New variable
171         template to detect a pointer to member function that needs a
172         stop_token to be added to the arguments.
173         (jthread::__S_create): Use __pmf_expects_stop_token.
174         (jthread::__S_create_pmf): New function.
175         * testsuite/30_threads/jthread/100612.cc: New test.
177 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
179         * include/bits/stl_queue.h
180         (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
181         per P1425R4.
182         (queue(InputIterator, InputIterator)): Likewise.
183         (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
184         * include/bits/stl_stack.h
185         (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
186         (stack(InputIterator, InputIterator)): Likewise.
187         (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
188         * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
189         Define.
190         * testsuite/23_containers/queue/cons_from_iters.cc: New test.
191         * testsuite/23_containers/stack/cons_from_iters.cc: New test.
193 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
195         * include/bits/stl_queue.h (priority_queue): Add
196         allocator-extended overloads for constructors taking iterator.
197         * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
199 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
201         * include/bits/stl_queue.h (priority_queue): Construct sequence
202         from iterators when no sequence argument is present (LWG 3529).
203         * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
205 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
207         * include/bits/stl_queue.h (priority_queue): Constrain
208         constructors with InputIterator parameters (LWG 3522).
209         * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
211 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
213         * include/bits/ranges_base.h (ranges::distance): Split overload
214         into two (LWG 3392).
215         * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
217 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
219         * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
220         std::unary_function.
221         * testsuite/30_threads/thread/cons/4.cc: Likewise.
222         * testsuite/30_threads/thread/cons/5.cc: Likewise.
224 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
226         * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
227         unnecesary derivation from std::unary_function.
228         * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
229         * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
230         * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
231         * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
232         * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
233         * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
234         * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
235         * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
236         Likewise.
237         * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
238         * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
240 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
242         * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
243         expand the format string for freestanding, or non-vebose, or if
244         we're just going to abort anyway.
245         * src/c++11/snprintf_lite.cc: Remove unused header and
246         declaration.
248 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
250         * include/std/variant (__do_visit): Use variant_npos instead of
251         literal -1 that requires a narrowing conversion.
253 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
255         PR libstdc++/99327
256         * src/filesystem/ops-common.h (__unsupported): New function to
257         return a suitable error code for missing functionality.
258         (posix::off_t): New typedef.
259         (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
260         fallback implementations.
261         (do_copy_file): Replace uses of errc::not_supported.
262         * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
263         (fs::create_directory, fs::create_directory_symlink)
264         (fs::create_hard_link, fs::create_symlink, fs::current_path)
265         (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
266         (fs::last_write_time, fs::permissions, fs::read_symlink):
267         Replace uses of errc::not_supported.
268         (fs::resize_file): Qualify off_t.
269         * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
270         (fs::create_directory, fs::create_directory_symlink)
271         (fs::create_hard_link, fs::create_symlink, fs::current_path)
272         (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
273         (fs::permissions, fs::read_symlink, fs::system_complete):
274         Replace uses of errc::not_supported.
275         (fs::resize_file): Qualify off_t and enable unconditionally.
276         * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
278 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
280         * src/filesystem/ops-common.h (last_error): New helper function.
281         (filesystem::do_space): Use last_error().
282         * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
283         (fs::equivalent, fs::remove, fs::temp_directory_path): Use
284         last_error().
285         * src/filesystem/ops.cc (fs::create_hard_link)
286         (fs::remove, fs::temp_directory_path): Likewise.
288 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
290         * include/std/type_traits (__conditional): New class template
291         for internal uses of std::conditional.
292         (__conditional_t): New alias template to replace conditional_t.
293         (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
294         __conditional_t instead of conditional::type.
295         * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
296         * include/bits/hashtable.h (_Hashtable): Likewise.
297         * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
298         (_Local_iterator): Likewise. Replace typedefs with
299         using-declarations.
300         * include/bits/move.h (move_if_noexcept): Use __conditional_t.
301         * include/bits/parse_numbers.h (_Select_int_base): Likewise.
302         * include/bits/ptr_traits.h (__make_not_void): Likewise.
303         * include/bits/ranges_algobase.h (__copy_or_move_backward)
304         (__copy_or_move): Likewise.
305         * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
306         * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
307         * include/bits/regex_compiler.h (_BracketMatcher): Use
308         __conditional_t. Replace typedefs with using-declarations.
309         * include/bits/shared_ptr_base.h (__shared_count): Use
310         __conditional_t.
311         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
312         Likewise.
313         * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
314         (reverse_iterator::iterator_concept)
315         (__make_move_if_noexcept_iterator)
316         (iterator_traits<common_iterator<_It, _Sent>>)
317         (iterator_traits<counted_iterator<_It>>): Likewise.
318         * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
319         * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
320         (_Rb_tree::_M_clone_node): Likewise.
321         * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
322         Likewise.
323         * include/bits/uses_allocator.h (__uses_alloc): Likewise.
324         (__is_uses_allocator_predicate): Likewise.
325         * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
326         * include/experimental/any (any::_Manager, __any_caster):
327         Likewise.
328         * include/experimental/executor (async_completion): Likewise.
329         * include/experimental/functional (__boyer_moore_base_t):
330         Likewise.
331         * include/std/any (any::_Manager): Likewise.
332         * include/std/functional (__boyer_moore_base_t): Likewise.
333         * include/std/ranges (borrowed_iterator_t)
334         (borrowed_subrange_t, __detail::__maybe_present_t)
335         (__detail::__maybe_const_t, split_view): Likewise.
336         * include/std/tuple (__empty_not_final, tuple::operator=):
337         Likewise.
338         * include/std/variant (__detail::__variant::__get_t): Likewise.
340 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
342         PR libstdc++/78113
343         * include/std/variant (__do_visit): Use a switch when we have a
344         single variant with a small number of alternatives.
346 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
348         PR libstdc++/90943
349         * include/std/variant (__cpp_lib_variant): Update value.
350         (__detail::__variant::__as): New helpers implementing the
351         as-variant exposition-only function templates.
352         (visit, visit<R>): Use __as to upcast the variant parameters.
353         * include/std/version (__cpp_lib_variant): Update value.
354         * testsuite/20_util/variant/visit_inherited.cc: New test.
356 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
358         * include/bits/stl_iterator.h (__normal_iterator): Simplify
359         converting constructor and do not require _Container::pointer.
361 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
363         * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
364         (basic_string(basic_string&&)): Add noexcept and avoid
365         allocation, by sharing rep with the rvalue string.
367 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
369         * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
370         (common_iterator::__postfix_proxy): Add noexcept.
372 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
374         PR libstdc++/94418
375         * include/bits/stl_iterator.h (reverse_iterator): Use
376         conditional noexcept on constructors and assignment operators.
377         * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
379 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
381         PR libstdc++/100153
382         * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
383         When size() is zero just deallocate and reset.
385 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
387         PR libstdc++/96733
388         * include/bits/stl_algo.h (clamp): Use std::min and std::max.
390 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
392         * include/bits/regex.h (basic_regex::multiline): Define for
393         non-strict C++11 and C++14 modes.
394         * include/bits/regex_constants.h (regex_constants::multiline):
395         Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
397 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
399         * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
401 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
403         * include/bits/stream_iterator.h (istream_iterator): Add
404         noexcept to constructors and non-throwing member functions and
405         friend functions.
406         (ostream_iterator): Likewise.
408 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
410         * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
411         New trait to identify vector<bool> iterators, including debug
412         ones.
413         (_ForwardIteratorReferenceConcept): Add default template
414         argument using _Is_vector_bool_iterator and use it in partial
415         specialization for the vector<bool> cases.
416         (_Mutable_ForwardIteratorReferenceConcept): Likewise.
417         * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
418         line number.
420 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
422         * include/bits/list.tcc (list::merge): Remove call to size() and
423         try-catch block. Use _Finalize_merge instead.
424         * include/bits/stl_list.h (list::_Finalize_merge): New
425         scope guard type to update _M_size members after a merge.
427 2021-09-30  Jonathan Wakely  <jwakely@redhat.com>
429         * include/bits/regex.h (basic_regex::multiline): Fix #if
430         condition.
432 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
434         * include/bits/regex.h (basic_regex::multiline): Define constant
435         for C++17.
436         * include/bits/regex_constants.h (regex_constants::multiline):
437         Define constant for C++17.
438         (regex_constants::__multiline): Define duplicate constant for
439         internal use in C++11 and C++14.
440         * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
441         New member function.
442         (_Executor::_M_is_line_terminator(_CharT)): New member function.
443         (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
444         member functions to support multiline matches.
445         * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
447 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
449         * include/bits/regex_compiler.h (_Compiler::_S_validate): New
450         function.
451         * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
452         _S_validate to check flags.
453         * include/bits/regex_error.h (_S_grammar): New error code for
454         internal use.
455         * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
457 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
459         PR libstdc++/84110
460         * include/bits/regex_error.h (regex_constants::_S_null): New
461         error code for internal use.
462         * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
463         Check for null character.
464         * testsuite/28_regex/basic_regex/84110.cc: New test.
466 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
468         * include/bits/regex.h (__detail::__is_contiguous_iter): Move
469         here from <bits/regex_compiler.h>.
470         (basic_regex::_M_compile): New function to compile an NFA from
471         a regular expression string.
472         (basic_regex::basic_regex): Use _M_compile instead of delegating
473         to other constructors.
474         (basic_regex::operator=(const basic_regex&)): Define as
475         defaulted.
476         (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
477         (basic_regex::assign(const basic_regex&)): Use copy assignment.
478         (basic_regex::assign(basic_regex&&)): Use move assignment.
479         (basic_regex::assign(const C*, flag_type)): Use _M_compile
480         instead of constructing a temporary string.
481         (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
482         (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
483         Use _M_compile instead of constructing a temporary basic_regex.
484         (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
485         constructing a temporary string for contiguous iterators of the
486         right value type.
487         * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
488         <bits/regex.h>.
489         (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
490         (__compile_nfa): Remove.
491         * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
492         test.
493         * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
495 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
497         * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
498         Return false for ETIMEDOUT and true otherwise.
500 2021-09-28  François Dumont  <fdumont@gcc.gnu.org>
502         * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
503         to also match message with '__8' in it.
505 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
507         * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
508         * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
509         * include/bits/regex_compiler.tcc: Likewise.
510         * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
511         * include/bits/regex_scanner.tcc: Likewise.
513 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
515         * include/bits/regex_compiler.tcc: Add line break in empty while
516         statement.
517         * include/bits/regex_executor.tcc: Avoid unused parameter
518         warning.
520 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
522         * include/bits/regex.h (basic_regex, swap): Add noexcept to
523         non-throwing functions.
524         * include/bits/regex_automaton.h (_State_base, _State)
525         (_NFA_base): Likewise.
526         * include/bits/regex_compiler.h (_Compiler): Likewise.
527         * include/bits/regex_error.h (regex_error::code()): Likewise.
528         * include/bits/regex_scanner.h (_Scanner): Likewise.
530 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
532         * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
533         Define before first attempt to check it.
535 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
537         * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
538         Do not check non-default constructible sequences when
539         _GLIBCXX_CONCEPT_CHECKS is defined.
540         * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
541         Likewise.
542         * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
543         Likewise.
544         * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
545         Likewise.
546         * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
547         Likewise.
548         * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
549         Likewise.
551 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
553         * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
554         Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
555         is defined.
556         * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
557         Likewise.
558         * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
559         Likewise.
560         * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
561         Likewise.
562         * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
563         Likewise.
564         * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
565         Likewise.
566         * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
567         Likewise.
568         * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
569         Likewise.
570         * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
571         Likewise.
572         * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
573         Likewise.
574         * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
575         Likewise.
576         * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
577         Likewise.
578         * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
579         Likewise.
580         * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
581         Likewise.
582         * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
583         Likewise.
584         * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
585         Likewise.
586         * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
587         Likewise.
588         * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
589         Likewise.
591 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
593         * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
594         (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
595         Check result types of iterator operations.
596         (_Mutable_ForwardIteratorConcept): Check that iterator's
597         reference type is a reference to its value type.
598         (_Mutable_BidirectionalIteratorConcept): Do not require the
599         value type to be assignable.
600         (_Mutable_RandomAccessIteratorConcept): Likewise.
601         * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
602         line number.
604 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
606         * testsuite/25_algorithms/copy/34595.cc: Add missing operation
607         for type used as an iterator.
608         * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
610 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
612         * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
613         comparison function for priority_queue of type with no
614         relational operators.
615         * testsuite/20_util/is_swappable/value.h: Likewise.
616         * testsuite/24_iterators/output/concept.cc: Add operator< to
617         type used in set.
619 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
621         * include/bits/boost_concept_check.h (_OutputIteratorConcept):
622         Use a function to preserve value category of the type.
623         * include/bits/stl_algobase.h (copy, move, fill_n): Use a
624         reference as the second argument for _OutputIteratorConcept.
625         (copy_backward, move_backward): Use _OutputIteratorConcept
626         instead of _ConvertibleConcept.
628 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
630         * include/bits/stl_iterator.h (pointer_traits): Define partial
631         specialization for __normal_iterator.
632         * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
634 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
636         * include/bits/move.h (forward(remove_reference_t<T>&&)):
637         Improve text of static_assert.
638         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
639         * testsuite/20_util/forward/f_neg.cc: Likewise.
641 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
643         PR libstdc++/102499
644         * include/bits/fs_path.h (path::begin, path::end): Add noexcept
645         to declarations, to match definitions.
647 2021-09-24  Jonathan Wakely  <jwakely@redhat.com>
649         * include/bits/range_access.h (cbegin, cend): Remove redundant
650         'inline' specifier.
652 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
654         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
655         Remove dg-error lines for C++20-only errors.
657 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
659         * testsuite/19_diagnostics/headers/system_error/93151.cc:
660         Disable PCH.
662 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
664         * src/c++11/system_error.cc (system_error_category) [_WIN32]:
665         Map Windows error codes to generic POSIX error numbers. Use
666         FormatMessage instead of strerror.
667         * testsuite/19_diagnostics/error_category/system_category.cc:
668         Adjust for new behaviour on Windows.
670 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
672         * src/c++11/system_error.cc (generic_error_category): Define
673         class and virtual functions as 'final'.
674         (generic_error_category::equivalent(int, const error_condition&)):
675         Override.
676         (system_error_category): Define class and virtual functions as
677         'final'.
678         (system_error_category::equivalent(int, const error_condition&)):
679         Override.
680         (generic_category_instance, system_category_instance): Use
681         constinit union to make the objects immortal.
683 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
685         PR libstdc++/102425
686         * src/c++11/system_error.cc
687         (system_error_category::default_error_condition): Add 0 to
688         switch.
689         * testsuite/19_diagnostics/error_category/102425.cc: New test.
691 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
693         * include/bits/fs_path.h (path::iterator): Add noexcept to all
694         member functions and friend functions.
695         (distance): Add noexcept.
696         (advance): Add noexcept and inline.
697         * include/experimental/bits/fs_path.h (path::iterator):
698         Add noexcept to all member functions.
700 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
702         PR libstdc++/102270
703         * include/std/tuple (_Tuple_impl): Add constexpr to constructor
704         missed in previous patch.
705         * testsuite/20_util/tuple/cons/102270.C: Moved to...
706         * testsuite/20_util/tuple/cons/102270.cc: ...here.
707         * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
708         constexpr to constructor so it can be used for C++20 tests.
710 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
712         * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
713         * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
714         * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
715         * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
717 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
719         * src/Makefile.am (stamp-debug): Add all Makefiles as
720         prerequisites.
721         * src/Makefile.in: Regenerate.
723 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
725         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
726         timeout factor to 3.
727         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
729 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
731         * doc/xml/manual/using.xml: Generalize to apply to more than
732         just -std=c++11.
733         * doc/html/manual/using_macros.html: Regenerate.
735 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
737         * include/std/optional (nullptr_t): Make constructor noexcept.
739 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
741         * include/bits/fs_path.h (advance): Remove non-deducible
742         template parameter.
744 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
746         PR libstdc++/102270
747         * include/std/tuple (_Head_base, _Tuple_impl): Add
748         _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
749         (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
750         * testsuite/20_util/tuple/cons/102270.C: New test.
752 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
754         PR libstdc++/102280
755         * include/std/span (span(Range&&)): Add constraint to deduction
756         guide.
758 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
760         * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
761         * src/c++98/Makefile.in: Regenerate.
763 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
765         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
766         (to_string): Add noexcept if the type width is 32 bits or less.
768 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
770         * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
771         (__uniq_ptr_impl::_M_deleter): Add noexcept.
773 2021-09-16  Thomas Rodgers  <rodgert@twrodgers.com>
775         PR libstdc++/101761
776         * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
777         va and vb as arguments to wait/notify, remove unused bb local.
779 2021-09-15  Hugo Beauzée-Luyssen  <hugo@beauzee.fr>
781         * crossconfig.m4: Check for TLS support on mingw.
782         * configure: Regenerate.
784 2021-09-13  Jason Merrill  <jason@redhat.com>
786         * include/std/version: Define __cpp_lib_hardware_interference_size.
787         * libsupc++/new: Define hardware interference size variables.
789 2021-09-10  Jonathan Wakely  <jwakely@redhat.com>
791         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
792         Fix invalid hostname to only match the .invalid TLD.
794 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
796         * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
797         Add new functions.
798         * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
799         it.
801 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
803         * include/std/atomic: Tweak whitespace.
805 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
807         PR c++/102177
808         * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
809         New function to check if a memory order is valid for the failure
810         case of compare exchange operations.
811         (__atomic_base<I>::compare_exchange_weak): Simplify assertions
812         by using __is_valid_cmpexch_failure_order.
813         (__atomic_base<I>::compare_exchange_strong): Likewise.
814         (__atomic_base<P*>::compare_exchange_weak): Likewise.
815         (__atomic_base<P*>::compare_exchange_strong): Likewise.
816         (__atomic_impl::compare_exchange_weak): Add assertion.
817         (__atomic_impl::compare_exchange_strong): Likewise.
818         * include/std/atomic (atomic::compare_exchange_weak): Likewise.
819         (atomic::compare_exchange_strong): Likewise.
821 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
823         * include/std/functional (invoke_r): Define.
824         * include/std/version (__cpp_lib_invoke_r): Define.
825         * testsuite/20_util/function_objects/invoke/version.cc: Check
826         for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
827         * testsuite/20_util/function_objects/invoke/4.cc: New test.
829 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
831         PR libstdc++/98421
832         * include/std/span (span(Iter, size_type), span(Iter, Iter)):
833         Add valid range checks.
834         * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
835         * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
837 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
839         * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
840         * configure: Regenerate.
842 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
844         * src/c++11/system_error.cc (error_category::~error_category()):
845         Remove noexcept-specifier.
846         (system_error::~system_error()): Likewise.
847         * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
848         * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
850 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
852         PR libstdc++/102074
853         * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
854         [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
856 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
858         * include/experimental/internet (__make_resolver_error_code):
859         Handle EAI_SYSTEM errors.
860         (basic_resolver_results): Use __make_resolver_error_code. Use
861         Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
863 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
865         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
866         Try other service if "http" fails.
868 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
870         * testsuite/17_intro/names.cc: Undefine some more names used
871         by Solaris system headers.
873 2021-08-30  Jason Merrill  <jason@redhat.com>
875         PR c++/96286
876         * testsuite/30_threads/promise/requirements/lwg3466.cc:
877         Remove dg-prune-outputs.
879 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
881         * include/bits/alloc_traits.h (allocator_traits): Add explicit
882         specialization for allocator<void>. Improve doxygen comments.
883         * include/bits/allocator.h (allocator<void>): Restore for the
884         versioned namespace.
885         (allocator<void>::construct, allocator<void>::destroy): Remove.
886         * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
887         Add default constructor and converting constructor.
889 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
891         * include/bits/stl_uninitialized.h: Fix typo in comment.
893 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
895         PR libstdc++/99876
896         * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
897         to avoid unnecessary current_path() call.
899 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
901         * include/bits/std_function.h (function::function(F&&)): Give
902         name to defaulted template parameter, to improve diagnostics.
903         Use markdown for more doxygen comments.
905 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
907         * include/bits/std_function.h (function): Adjust doxygen
908         comments.
909         * include/bits/unique_ptr.h (make_unique_for_overwrite):
910         Change parameter name to match doxygen comment.
912 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
914         * include/bits/std_function.h (_function_base::_Base_manager):
915         Replace _M_init_functor with a function template using a
916         forwarding reference, and a pair of _M_create function
917         templates. Reuse _M_create for the clone operation.
918         (function::_Decay_t): New alias template.
919         (function::_Callable): Simplify by using _Decay.
920         (function::function(F)): Change parameter to forwarding
921         reference, as per LWG 2447. Add noexcept-specifier. Simplify
922         constraints.
923         (function::operator=(F&&)): Add noexcept-specifier.
924         * testsuite/20_util/function/cons/lwg2774.cc: New test.
925         * testsuite/20_util/function/cons/noexcept.cc: New test.
927 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
929         * include/bits/std_function.h (function::function(F)): Add
930         static assertions to check constructibility requirements.
932 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
934         PR libstdc++/100285
935         * configure.ac: Check for O_NONBLOCK.
936         * configure: Regenerate.
937         * include/experimental/internet: Include <ws2tcpip.h> for
938         Windows.  Use preprocessor conditions around more constants.
939         * include/experimental/socket: Use preprocessor conditions
940         around more constants.
941         * testsuite/experimental/net/internet/resolver/base.cc: Only use
942         constants when the corresponding C macro is defined.
943         * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
944         * testsuite/experimental/net/socket/socket_base.cc: Likewise.
945         Make preprocessor checks more fine-grained.
947 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
949         * testsuite/17_intro/names.cc: Check 'sz'.
951 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
953         * testsuite/17_intro/names.cc: Adjust for Windows.
955 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
957         * include/std/valarray: Uglify 'func' parameters.
958         * testsuite/17_intro/names.cc: Add 'func' to checks.
960 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
962         PR libstdc++/102064
963         * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
964         Define macro to check conditions for optimizing trivial cases.
965         (__check_constructible): New function to do static assert.
966         (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
967         Use new macro.
968         * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
969         Adjust dg-error pattern.
970         * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
971         C++17-specific checks from 89164_c++17.cc.
972         * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
973         * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
974         New test.
975         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
976         New test.
977         * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
978         New test.
979         * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
980         New test.
982 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
984         PR libstdc++/102048
985         * include/ext/rope (rope::erase(size_type)): Remove broken
986         function.
988 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
990         * doc/xml/manual/status_cxx2020.xml: Update table.
991         * doc/html/manual/status.html: Regenerate.
993 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
995         * include/std/type_traits (is_layout_compatible): Define.
996         (is_corresponding_member): Define.
997         * include/std/version (__cpp_lib_is_layout_compatible): Define.
998         * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
999         New test.
1000         * testsuite/20_util/is_layout_compatible/value.cc: New test.
1001         * testsuite/20_util/is_layout_compatible/version.cc: New test.
1002         * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1003         New test.
1004         * testsuite/23_containers/span/layout_compat.cc: Do not use real
1005         std::is_layout_compatible trait if available.
1007 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
1009         * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
1010         explicit instantiation definitions.
1012 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
1014         * include/std/ranges (basic_istream_view): Add default template
1015         argument.
1016         * testsuite/std/ranges/istream_view.cc: Check it.
1018 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
1020         * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
1021         precondition check.
1023 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
1025         PR libstdc++/90787
1026         * testsuite/util/testsuite_fs.h (permissions_are_testable):
1027         Define as inline.
1029 2021-08-20  Jonathan Wakely  <jwakely@redhat.com>
1031         PR libstdc++/90787
1032         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1033         Use new __gnu_test::permissions_are_testable() function.
1034         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1035         Likewise.
1036         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1037         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1038         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1039         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1040         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1041         * testsuite/27_io/filesystem/operations/symlink_status.cc:
1042         Likewise.
1043         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1044         Likewise.
1045         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1046         Likewise.
1047         * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1048         Likewise.
1049         * testsuite/experimental/filesystem/operations/exists.cc:
1050         Likewise.
1051         * testsuite/experimental/filesystem/operations/is_empty.cc:
1052         Likewise.
1053         * testsuite/experimental/filesystem/operations/remove.cc:
1054         Likewise.
1055         * testsuite/experimental/filesystem/operations/remove_all.cc:
1056         Likewise.
1057         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1058         Likewise.
1059         * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
1060         New function to guess whether testing permissions will work.
1062 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
1064         * doc/xml/manual/status_cxx2020.xml: Move row  earlier in table.
1065         * doc/html/manual/status.html: Regenerate.
1067 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
1069         * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
1071 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
1073         PR libstdc++/101965
1074         * include/std/charconv (__to_chars_i): Remove redundant check.
1076 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
1078         PR libstdc++/101960
1079         * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
1080         class' move constructor. Define as defaulted for versioned
1081         namespace.
1082         * testsuite/20_util/tuple/cons/101960.cc: New test.
1084 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
1086         PR libstdc++/100139
1087         * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
1088         * doc/html/manual/status.html: Regenerate.
1090 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
1092         * include/bits/shared_ptr.h: Add @since and @headerfile tags.
1093         * include/bits/unique_ptr.h: Add @headerfile tags.
1095 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
1097         * src/filesystem/ops-common.h (filesystem::file_time): Improve
1098         overflow check by using system_clock::duration::max().
1100 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
1102         * include/bits/stl_tree.h: Tweak whitespace.
1104 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
1106         * include/bits/unique_ptr.h (default_delete): Add @since tag.
1107         (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
1108         (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
1109         @param, and @returns.
1110         (_MakeUniq): Move to __detail namespace. Add alias template
1111         helpers.
1113 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
1115         * include/bits/stl_function.h: Improve doxygen comments.
1117 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
1119         * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
1120         processing for C++20 components and components that depend on
1121         compiler features.
1122         * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
1123         * include/std/type_traits: Improve doxygen comments for C++20
1124         traits.
1126 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
1128         * include/ext/type_traits.h (__promote_2, __promote_3)
1129         (__promote_4): Redfine as alias templates using __promoted_t.
1130         * include/std/complex (__promote_2): Remove partial
1131         specializations for std::complex.
1133 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
1135         * include/bits/stl_algo.h (min(initializer_list<T>))
1136         (min(initializer_list<T>, Compare)): Call __min_element directly to
1137         avoid redundant debug checks for valid ranges.
1138         (max(initializer_list<T>), max(initializer_list<T>, Compare)):
1139         Likewise, for __max_element.
1140         (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
1141         Likewise, for __minmax_element.
1143 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
1145         * include/debug/deque (deque(size_type, const T&, const A&)):
1146         Prevent class template argument deduction and replace with a
1147         deduction guide.
1148         * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
1149         Likewise.
1150         * include/debug/list (list(size_type, const T&, const A&)):
1151         Likewise.
1152         * include/debug/vector (vector(size_type, const T&, const A&)):
1153         Likewise.
1155 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
1157         * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
1158         'std::vector<bool>::reference' as type name, not _Bit_reference.
1159         (build_libstdcxx_dictionary): Register printers for vector<bool>
1160         types in debug mode too.
1161         * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
1162         output for invalid _Bit_reference. Use vector<bool>::reference
1163         instead of _Bit_reference.
1164         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1166 2021-08-17  Thomas Schwinge  <thomas@codesourcery.com>
1168         * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
1169         continued.
1171 2021-08-17  Luc Michel  <lmichel@kalray.eu>
1172             Marc Poulhies  <mpoulhies@kalrayinc.com>
1174         * testsuite/lib/gdb-test.exp (gdb_version_check)
1175         (gdb_version_check_xmethods): Only check the GDB version for
1176         local native targets.
1178 2021-08-17  Antony Polukhin  <antoshkka@gmail.com>
1179             Jonathan Wakely  <jwakely@redhat.com>
1181         * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
1182         if distance is O(1).
1183         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1184         line number.
1186 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
1188         * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
1189         construction from input iterators.
1191 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
1193         * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
1195 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
1197         PR libstdc++/101923
1198         * include/bits/std_function.h (function(function&&)): Check for
1199         non-empty parameter before doing any work.
1201 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
1203         * include/bits/cow_string.h (basic_string::contains): Do not
1204         define for -std=gnu++20.
1206 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
1208         * include/bits/ranges_util.h (__not_same_as): Rename to
1209         __different_from.
1210         * include/std/ranges (__not_same_as): Likewise.
1212 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
1214         * include/std/utility (exchange): Add noexcept-specifier.
1215         * testsuite/20_util/exchange/noexcept.cc: New test.
1217 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
1219         * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
1220         (build_libstdcxx_dictionary): Register printer for
1221         std::error_code and std::error_condition.
1222         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1224 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
1226         PR libstdc++/101937
1227         * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
1228         static data member.
1229         (print_word): Use qualified-id to access it.
1231 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
1233         * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
1234         Install another copy of the GDB hook.
1235         * python/Makefile.in: Regenerate.
1237 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
1239         PR libstdc++/101870
1240         * include/c_global/cmath (hypot): Use __promoted_t.
1241         (lerp): Add new overload accepting any arithmetic types.
1242         * include/ext/type_traits.h (__promoted_t): New alias template.
1243         * testsuite/26_numerics/lerp.cc: Moved to...
1244         * testsuite/26_numerics/lerp/1.cc: ...here.
1245         * testsuite/26_numerics/lerp/constexpr.cc: New test.
1246         * testsuite/26_numerics/lerp/version.cc: New test.
1248 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
1250         * testsuite/26_numerics/lerp.cc: Add header name to #error.
1251         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1252         * testsuite/26_numerics/midpoint/version.cc: New test.
1254 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
1256         * include/experimental/random (experimental::randint): Add
1257         nodiscard attribute.
1259 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
1261         * src/c++98/locale_init.cc: Require C++11.
1262         * src/c++98/localename.cc: Likewise.
1263         * src/c++98/misc-inst.cc: Require C++98.
1265 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
1267         PR libstdc++/101866
1268         * testsuite/experimental/random/randint.cc: Loop and retry if
1269         reseed() produces the same sequence.
1271 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
1273         * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
1274         (is_pointer_interconvertible_base_of_v)
1275         (is_pointer_interconvertible_base_of): Define for C++20.
1276         * include/std/version (__cpp_lib_is_pointer_interconvertible):
1277         Define.
1278         * testsuite/23_containers/span/layout_compat.cc: Use correct
1279         feature test macro for std::is_layout_compatible_v.
1280         * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
1281         * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
1283 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
1285         * include/bits/regex.h (basic_regex::transform_primary): Use
1286         _GLIBCXX_STD_C::vector for local variable.
1287         * include/bits/regex.tcc (__regex_algo_impl): Use reference to
1288         _GLIBCXX_STD_C::vector base class of match_results.
1289         * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
1290         _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
1291         variables.
1292         * include/bits/regex_compiler.h (_BracketMatcher): Use
1293         _GLIBCXX_STD_C::vector for data members.
1294         * include/bits/regex_executor.h (_Executor): Likewise.
1295         * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
1297 2021-08-09  François Dumont  <fdumont@gcc.gnu.org>
1299         * include/debug/safe_container.h
1300         (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
1301         (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
1302         (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
1304 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
1306         * testsuite/23_containers/unordered_map/cons/default.cc: Add
1307         equality comparison operators to allocator.
1308         * testsuite/23_containers/unordered_set/cons/default.cc:
1309         Likewise.
1311 2021-08-08  François Dumont  <fdumont@gcc.gnu.org>
1313         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
1314         dg-prune-output reason with 'builtin_unreachable'.
1315         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
1316         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
1317         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1318         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1319         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1320         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1321         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1322         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1324 2021-08-08  Hans-Peter Nilsson  <hp@bitrange.com>
1326         * testsuite/std/ranges/iota/max_size_type.cc: Set
1327         dg-timeout-factor to 4.
1329 2021-08-06  Jonathan Wakely  <jwakely@redhat.com>
1331         * libsupc++/compare (compare_three_way, strong_order)
1332         (weak_order, partial_order, compare_strong_order_fallback)
1333         (compare_weak_order_fallback, compare_partial_order_fallback):
1334         Move nodiscard attributes to correct location.
1336 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
1338         PR libstdc++/101782
1339         * include/bits/ranges_base.h (ranges::begin, ranges::end)
1340         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1341         (ranges::empty, ranges::data): Move attribute after the
1342         declarator-id instead of at the end of the declarator.
1343         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
1344         Move attributes back to the start of the function declarator,
1345         but move the requires-clause to the end.
1346         (common_iterator): Move attribute after the declarator-id.
1347         * include/bits/stl_queue.h (queue): Remove ill-formed attributes
1348         from friend declaration that are not definitions.
1349         * include/std/ranges (views::all, views::filter)
1350         (views::transform, views::take, views::take_while,
1351         views::drop) (views::drop_while, views::join,
1352         views::lazy_split) (views::split, views::counted,
1353         views::common, views::reverse) (views::elements): Move
1354         attributes after the declarator-id.
1356 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
1358         * libsupc++/compare (partial_ordering, weak_ordering)
1359         (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
1360         (compare_three_way, strong_order, weak_order, partial_order)
1361         (compare_strong_order_fallback, compare_weak_order_fallback)
1362         (compare_partial_order_fallback, __detail::__synth3way): Add
1363         nodiscard attribute.
1364         * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
1365         -Wno-unused-result to options.
1367 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
1369         PR libstdc++/101782
1370         * include/bits/ranges_base.h (ranges::begin, ranges::end)
1371         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1372         (ranges::empty, ranges::data): Move attribute to the end of
1373         the declarator.
1374         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
1375         (common_iterator): Likewise for non-member operator functions.
1376         * include/std/ranges (views::all, views::filter)
1377         (views::transform, views::take, views::take_while, views::drop)
1378         (views::drop_while, views::join, views::lazy_split)
1379         (views::split, views::counted, views::common, views::reverse)
1380         (views::elements): Likewise.
1381         * testsuite/std/ranges/access/101782.cc: New test.
1383 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
1385         * include/bits/forward_list.h: Add [[nodiscard]] to functions
1386         with no side-effects.
1387         * include/bits/stl_bvector.h: Likewise.
1388         * include/bits/stl_deque.h: Likewise.
1389         * include/bits/stl_list.h: Likewise.
1390         * include/bits/stl_queue.h: Likewise.
1391         * include/bits/stl_stack.h: Likewise.
1392         * include/bits/stl_vector.h: Likewise.
1393         * include/debug/deque: Likewise.
1394         * include/debug/forward_list: Likewise.
1395         * include/debug/list: Likewise.
1396         * include/debug/safe_iterator.h: Likewise.
1397         * include/debug/vector: Likewise.
1398         * include/std/array: Likewise.
1399         * testsuite/23_containers/array/creation/3_neg.cc: Use
1400         -Wno-unused-result.
1401         * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
1402         to void.
1403         * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
1404         * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
1405         * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
1406         * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
1407         Likewise.
1408         * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
1409         Likewise.
1410         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1411         Adjust dg-error line numbers.
1412         * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
1413         result to void.
1414         * testsuite/23_containers/deque/debug/invalidation/4.cc:
1415         Likewise.
1416         * testsuite/23_containers/deque/types/1.cc: Use
1417         -Wno-unused-result.
1418         * testsuite/23_containers/list/types/1.cc: Cast result to void.
1419         * testsuite/23_containers/priority_queue/members/7161.cc:
1420         Likewise.
1421         * testsuite/23_containers/queue/members/7157.cc: Likewise.
1422         * testsuite/23_containers/vector/59829.cc: Likewise.
1423         * testsuite/23_containers/vector/ext_pointer/types/1.cc:
1424         Likewise.
1425         * testsuite/23_containers/vector/ext_pointer/types/2.cc:
1426         Likewise.
1427         * testsuite/23_containers/vector/types/1.cc: Use
1428         -Wno-unused-result.
1430 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
1432         * include/bits/iterator_concepts.h (iter_move): Add
1433         [[nodiscard]].
1434         * include/bits/range_access.h (begin, end, cbegin, cend)
1435         (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
1436         * include/bits/ranges_base.h (ranges::begin, ranges::end)
1437         (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
1438         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1439         (ranges::empty, ranges::data, ranges::cdata): Likewise.
1440         * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
1441         (back_insert_iterator, front_insert_iterator, insert_iterator)
1442         (move_iterator, move_sentinel, common_iterator)
1443         (counted_iterator): Likewise.
1444         * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
1445         Likewise.
1446         * include/bits/stream_iterator.h (istream_iterator)
1447         (ostream_iterartor): Likewise.
1448         * include/bits/streambuf_iterator.h (istreambuf_iterator)
1449         (ostreambuf_iterator): Likewise.
1450         * include/std/ranges (views::single, views::iota, views::all)
1451         (views::filter, views::transform, views::take, views::take_while)
1452         (views::drop, views::drop_while, views::join, views::lazy_split)
1453         (views::split, views::counted, views::common, views::reverse)
1454         (views::elements): Likewise.
1455         * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
1456         * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
1457         * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
1458         Likewise.
1459         * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
1460         * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
1461         Likewise.
1462         * testsuite/21_strings/basic_string/range_access/char/1.cc:
1463         Cast result to void.
1464         * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
1465         Likewise.
1466         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1467         Likewise.
1468         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1469         Likewise.
1470         * testsuite/23_containers/array/range_access.cc: Likewise.
1471         * testsuite/23_containers/deque/range_access.cc: Likewise.
1472         * testsuite/23_containers/forward_list/range_access.cc:
1473         Likewise.
1474         * testsuite/23_containers/list/range_access.cc: Likewise.
1475         * testsuite/23_containers/map/range_access.cc: Likewise.
1476         * testsuite/23_containers/multimap/range_access.cc: Likewise.
1477         * testsuite/23_containers/multiset/range_access.cc: Likewise.
1478         * testsuite/23_containers/set/range_access.cc: Likewise.
1479         * testsuite/23_containers/unordered_map/range_access.cc:
1480         Likewise.
1481         * testsuite/23_containers/unordered_multimap/range_access.cc:
1482         Likewise.
1483         * testsuite/23_containers/unordered_multiset/range_access.cc:
1484         Likewise.
1485         * testsuite/23_containers/unordered_set/range_access.cc:
1486         Likewise.
1487         * testsuite/23_containers/vector/range_access.cc: Likewise.
1488         * testsuite/24_iterators/customization_points/iter_move.cc:
1489         Likewise.
1490         * testsuite/24_iterators/istream_iterator/sentinel.cc:
1491         Likewise.
1492         * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1493         Likewise.
1494         * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
1495         * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
1496         * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
1497         * testsuite/24_iterators/range_access/range_access.cc:
1498         Likewise.
1499         * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1500         * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1501         * testsuite/28_regex/range_access.cc: Likewise.
1502         * testsuite/experimental/string_view/range_access/char/1.cc:
1503         Likewise.
1504         * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1505         Likewise.
1506         * testsuite/ext/vstring/range_access.cc: Likewise.
1507         * testsuite/std/ranges/adaptors/take.cc: Likewise.
1508         * testsuite/std/ranges/p2259.cc: Likewise.
1510 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1512         * include/bits/random.tcc (linear_congruential_engine): Do not
1513         define static constexpr members when they are implicitly inline.
1514         * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
1515         (__ratio_add, __ratio_subtract): Likewise.
1516         * include/std/type_traits (integral_constant): Likewise.
1517         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1518         line number.
1520 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1522         * testsuite/util/testsuite_common_types.h: Replace uses of
1523         tr1::unordered_map and tr1::unordered_set with their C++11
1524         equivalents.
1525         * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
1526         dg-error line number.
1527         * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
1528         * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
1529         Likewise.
1530         * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
1531         Likewise.
1532         * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
1533         Likewise.
1534         * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
1535         Likewise.
1536         * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
1537         Likewise.
1539 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1541         * include/std/memory_resource (polymorphic_allocator::delete_object):
1542         Call destructor directly instead of using destroy.
1543         (allocator_traits<polymorphic_allocator<T>>): Define partial
1544         specialization.
1546 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1548         * testsuite/20_util/function_objects/binders/3113.cc: Remove
1549         trailing whitespace.
1550         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1551         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1552         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1553         Likewise.
1554         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1555         * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
1556         Likewise.
1557         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1558         Likewise.
1559         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1560         Likewise.
1562 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1564         * doc/xml/manual/evolution.xml: Document deprecation.
1565         * doc/html/*: Regenerate.
1566         * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
1567         (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
1568         * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
1569         and later.
1570         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
1571         for C++11 and C++14 changes to std::random_shuffle and
1572         std::shuffle.
1573         * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
1574         use deprecated algorithms.
1575         * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1576         * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1577         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1578         Likewise.
1579         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1580         Likewise.
1582 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1584         * testsuite/23_containers/forward_list/operations/3.cc:
1585         Use lambda instead of std::bind2nd.
1586         * testsuite/20_util/function_objects/binders/3113.cc: Add
1587         options for testing deprecated features.
1588         * testsuite/20_util/pair/cons/99957.cc: Likewise.
1589         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1590         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1591         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1592         Likewise.
1593         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1594         * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1595         * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1596         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1597         * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
1598         * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
1599         * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1600         Likewise.
1601         * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1602         Likewise.
1603         * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
1604         New proc.
1606 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1608         * include/bits/regex_executor.h (_State_info): Replace
1609         unique_ptr<bool[]> with array of bool.
1610         * include/bits/regex_executor.tcc: Likewise.
1611         * include/bits/regex_scanner.tcc: Replace std::strchr with
1612         __builtin_strchr.
1613         * include/std/regex: Replace standard headers with smaller
1614         internal ones.
1615         * testsuite/28_regex/traits/char/lookup_classname.cc: Include
1616         <string.h> for strlen.
1617         * testsuite/28_regex/traits/char/lookup_collatename.cc:
1618         Likewise.
1620 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1622         * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
1623         RAII class template.
1624         (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
1625         instead of unique_ptr.
1627 2021-08-02  Patrick Palka  <ppalka@redhat.com>
1629         PR libstdc++/101599
1630         * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
1631         Add missing std::move in return statement.
1632         (__partition_copy_fn::operator()): Rename templtae parameter
1633         _O2 to _Out2.  Uglify function parameters out_true and out_false.
1634         * include/bits/ranges_algobase.h (__copy_or_move): Add missing
1635         std::move to recursive call that unwraps a __normal_iterator
1636         output iterator.
1637         * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
1638         * testsuite/25_algorithms/move/constrained.cc (test05): New test.
1640 2021-08-02  Patrick Palka  <ppalka@redhat.com>
1642         PR libstdc++/101589
1643         * include/std/ranges (lazy_split_view::_InnerIter::base): Make
1644         the const& overload unconstrained and return a const reference
1645         as per LWG 3533.  Make unconditionally noexcept.
1646         (elements_view::base): Revert accidental r12-569 change.
1647         (elements_view::_Iterator::base): Make the const& overload
1648         unconstrained and return a const reference as per LWG 3533.
1649         Make unconditionally noexcept.
1651 2021-08-02  Patrick Palka  <ppalka@redhat.com>
1653         PR libstdc++/101483
1654         * include/std/ranges (join_view::_Iterator::_Iterator): Add
1655         missing std::move.
1657 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
1659         PR libstdc++/101709
1660         * src/filesystem/ops-common.h (get_temp_directory_from_env):
1661         Add error_code parameter.
1662         * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
1663         argument to get_temp_directory_from_env and check it.
1664         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1666 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
1668         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1669         Add dg-error for c++11_only target.
1671 2021-07-30  Jonathan Wakely  <jwakely@redhat.com>
1673         PR libstdc++/65018
1674         * configure.ac: Check for secure_getenv.
1675         * config.h.in: Regenerate.
1676         * configure: Regenerate.
1677         * src/filesystem/ops-common.h (get_temp_directory_from_env): New
1678         helper function to obtain path from the environment.
1679         * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
1680         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1681         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1682         Print messages if test cannot be run.
1683         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1684         Likewise. Fix incorrect condition. Use "TMP" to work with
1685         Windows as well as POSIX.
1687 2021-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
1689         * src/c++17/memory_resource.cc: Use __exchange instead
1690         of std::exchange.
1692 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1694         * include/experimental/optional (__throw_bad_optional_access):
1695         Replace GNU attribute with C++11 attribute.
1696         (optional::value, optional::value_or): Use if statements
1697         instead of conditional expressions.
1698         * include/std/optional (__throw_bad_optional_access)
1699         (optional::value, optional::value_or): Likewise.
1701 2021-07-27  Marek Polacek  <polacek@redhat.com>
1703         DR 1512
1704         PR c++/99701
1705         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1706         Move a line...
1707         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1708         ...here.  New test.
1710 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1712         * include/bits/cow_string.h: Consistently use tab for
1713         indentation.
1715 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1717         * include/Makefile.am: Add new header.
1718         * include/Makefile.in: Regenerate.
1719         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1720         (basic_string): Move definition of Copy-on-Write string to
1721         new file.
1722         * include/bits/basic_string.tcc: Likewise.
1723         * include/bits/cow_string.h: New file.
1725 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1727         * include/std/algorithm: Do not include <utility>.
1728         * include/std/functional: Likewise.
1729         * include/std/regex: Include <bits/stl_pair.h> instead of
1730         <utility>.
1731         * include/debug/map.h: Likewise.
1732         * include/debug/multimap.h: Likewise.
1733         * include/debug/multiset.h: Likewise.
1734         * include/debug/set.h: Likewise.
1735         * include/debug/vector: Likewise.
1736         * include/bits/fs_path.h: Likewise.
1737         * include/bits/unique_ptr.h: Do not include <utility>.
1738         * include/experimental/any: Likewise.
1739         * include/experimental/executor: Likewise.
1740         * include/experimental/memory: Likewise.
1741         * include/experimental/optional: Likewise.
1742         * include/experimental/socket: Use __exchange instead
1743         of std::exchange.
1744         * src/filesystem/ops-common.h: Likewise.
1745         * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
1746         errors to not use a hardcoded line number.
1747         * testsuite/20_util/default_delete/void_neg.cc: Likewise.
1748         * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1749         Include <utility> for std::as_const.
1750         * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1751         Likewise.
1752         * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1753         Likewise.
1754         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1755         Likewise.
1756         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1757         Adjust dg-error line number.
1759 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1761         * include/Makefile.am: Add bits/utility.h header.
1762         * include/Makefile.in: Regenerate.
1763         * include/bits/utility.h: New file.
1764         * include/std/utility (tuple_size, tuple_element): Move
1765         to new header.
1766         * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
1767         Move to <tuple>.
1768         (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
1769         (in_place_t, in_place_index_t, in_place_type_t): Likewise.
1770         * include/bits/ranges_util.h: Include new header instead of
1771         <utility>.
1772         * include/bits/stl_pair.h (tuple_size, tuple_element): Move
1773         partial specializations for std::pair here.
1774         (get): Move overloads for std::pair here.
1775         * include/std/any: Include new header instead of <utility>.
1776         * include/std/array: Likewise.
1777         * include/std/memory_resource: Likewise.
1778         * include/std/optional: Likewise.
1779         * include/std/variant: Likewise.
1780         * include/std/tuple: Likewise.
1781         (__is_tuple_like_impl<tuple<T...>>): Move here.
1782         (get) Declare overloads for std::array.
1783         * include/std/version (__cpp_lib_tuples_by_type): Change type
1784         to long.
1785         * testsuite/20_util/optional/84601.cc: Include <utility>.
1786         * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1787         Likewise.
1788         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1789         Adjust dg-error line numbers.
1790         * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
1791         * testsuite/std/ranges/access/cend.cc: Likewise.
1792         * testsuite/std/ranges/access/end.cc: Likewise.
1793         * testsuite/std/ranges/single_view.cc: Likewise.
1795 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
1797         * include/std/future: Include <bits/atomic_base.h> instead of
1798         <atomic>.
1800 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
1802         * include/bits/stl_relops.h: Update documentation comments.
1804 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1806         PR libstdc++/101583
1807         * include/bits/hashtable.h (_Hashtable): Replace mixin with
1808         _Enable_default_ctor. Construct it explicitly in all
1809         non-forwarding, non-defaulted constructors.
1810         * testsuite/23_containers/unordered_map/cons/default.cc: Check
1811         non-default constructors can be used.
1812         * testsuite/23_containers/unordered_set/cons/default.cc:
1813         Likewise.
1815 2021-07-22  David Edelsohn  <dje.gcc@gmail.com>
1817         * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
1819 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1821         PR libstdc++/94295
1822         * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
1823         (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
1824         (allocator::allocate, allocator::deallocate): Use new macros.
1826 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1828         PR libstdc++/101571
1829         * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
1830         constructor parameter to reference and use addressof.
1831         * testsuite/util/testsuite_iterators.h: Define deleted operator&
1832         overloads for test iterators.
1834 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1836         * include/bits/std_function.h (_Function_base): Add
1837         default member initializers and define constructor as defaulted.
1838         (function::_M_invoker): Add default member initializer.
1840 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1842         PR libstdc++/100682
1843         * doc/xml/manual/debug_mode.xml: Update documentation about
1844         debug capability of std::array.
1845         * doc/html/*: Regenerate.
1846         * include/debug/array: New file.
1848 2021-07-21  Jonathan Wakely  <jwakely@redhat.com>
1850         PR libstdc++/101542
1851         * include/ext/rope (sequence_buffer): Add move constructor and
1852         move assignment operator.
1853         * testsuite/ext/rope/101542.cc: New test.
1855 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
1857         PR libstdc++/101510
1858         * src/c++17/fs_ops.cc (fs::create_directories): Use status
1859         instead of symlink_status.
1860         * src/filesystem/ops.cc (fs::create_directories): Likewise.
1861         * testsuite/27_io/filesystem/operations/create_directories.cc:
1862         Check symlink to existing directory.
1863         * testsuite/27_io/filesystem/operations/create_directory.cc: Do
1864         not test with symlinks on Windows.
1865         * testsuite/experimental/filesystem/operations/create_directories.cc:
1866         Check symlink to existing directory.
1867         * testsuite/experimental/filesystem/operations/create_directory.cc:
1868         Do not test with symlinks on Windows.
1870 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
1872         PR libstdc++/100863
1873         * include/bits/hashtable.h (_Hashtable): Conditionally delete
1874         default constructor by deriving from _Enable_special_members.
1875         * testsuite/23_containers/unordered_map/cons/default.cc: New test.
1876         * testsuite/23_containers/unordered_set/cons/default.cc: New test.
1878 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
1880         PR libstdc++/101510
1881         * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
1882         * testsuite/27_io/filesystem/operations/create_directory.cc:
1883         Test creating directory with name of existing symlink to
1884         directory.
1885         * testsuite/experimental/filesystem/operations/create_directory.cc:
1886         Likewise.
1888 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1890         * include/std/tuple (get<I>): Add deleted overload for bad
1891         index.
1892         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1893         expected errors.
1895 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1897         * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
1898         Use __int_traits unconditionally.
1900 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1902         * include/bits/random.h (_Shift::__value): Use constexpr.
1903         (_Select_uint_least_t::type): Use using-declaration.
1904         (_Mod): Likewise.
1905         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1906         line number.
1908 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1910         * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1911         instead of diagnostic pragmas.
1912         * include/bits/functional_hash.h: Likewise.
1913         * include/bits/iterator_concepts.h (__is_signed_int128)
1914         (__is_unsigned_int128): Likewise.
1915         * include/bits/max_size_type.h (__max_size_type): Likewise.
1916         (numeric_limits<__max_size_type>): Likewise.
1917         * include/bits/std_abs.h (abs): Likewise.
1918         * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1919         * include/bits/uniform_int_dist.h (uniform_int_distribution):
1920         Likewise.
1921         * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1922         Likewise.
1923         * include/std/type_traits (__is_integral_helper<INT_N>)
1924         (__is_signed_integer, __is_unsigned_integer)
1925         (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1926         * include/std/limits (__INT_N): Add __extension__ keyword.
1927         * include/bits/random.h (_Select_uint_least_t)
1928         (random_device): Likewise.
1930 2021-07-16  Patrick Palka  <ppalka@redhat.com>
1932         PR libstdc++/101231
1933         * include/std/ranges (_CachedPosition::_M_get): For non-forward
1934         ranges, just call __builtin_unreachable.
1935         * testsuite/std/ranges/istream_view.cc (test05): New test.
1937 2021-07-16  Patrick Palka  <ppalka@redhat.com>
1939         PR libstdc++/101214
1940         * include/std/ranges (split_view::split_view): Use std::move.
1941         (split_view::_Iterator::_Iterator): Remove redundant
1942         default_initializable constraint.
1943         (split_view::_Sentinel::_Sentinel): Declare.
1944         * testsuite/std/ranges/adaptors/split.cc (test02): New test.
1946 2021-07-16  Marek Polacek  <polacek@redhat.com>
1948         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1949         dg-error.
1951 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1953         * include/bits/unique_ptr.h: Adjust doxygen markup.
1955 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1957         PR libstdc++/101307
1958         * include/std/type_traits: Adjust doxygen markup.
1960 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1962         * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
1963         uses of non-standard integer types.
1964         * include/bits/functional_hash.h: Likewise.
1965         * include/bits/iterator_concepts.h: Likewise.
1966         * include/bits/max_size_type.h: Likewise.
1967         * include/bits/std_abs.h: Likewise.
1968         * include/bits/stl_algobase.h: Likewise.
1969         * include/bits/uniform_int_dist.h: Likewise.
1970         * include/ext/numeric_traits.h: Likewise.
1971         * include/std/type_traits: Likewise.
1973 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
1975         PR libstdc++/101427
1976         * include/std/tuple (tuple_element): Improve static_assert text.
1977         (__get_helper): Add deleted overload.
1978         (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
1979         __get_helper directly.
1980         (__get_helper2): Remove.
1981         (__find_uniq_type_in_pack): New constexpr helper function.
1982         (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
1983         of __get_helper2.
1984         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1985         expected errors.
1986         * testsuite/20_util/tuple/element_access/101427.cc: New test.
1988 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
1990         PR libstdc++/101429
1991         * include/bits/c++config (__replacement_assert): Add noexcept.
1992         [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1993         instead of __replacement_assert.
1995 2021-07-14  Jonathan Wakely  <jwakely@redhat.com>
1997         * include/std/string_view (basic_string_view(It, End)): Add
1998         noexcept-specifier.
1999         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2000         Check noexcept-specifier. Also check construction without CTAD.
2002 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
2004         PR c++/101361
2005         * include/std/string_view (ends_with): Use traits_type::compare
2006         directly.
2008 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
2010         * include/std/string_view: Only include <bits/ranges_base.h>
2011         once, and only for C++20 and later.
2013 2021-07-12  Jonathan Wakely  <jwakely@redhat.com>
2015         PR libstdc++/101411
2016         * include/std/span (as_writable_bytes): Add requires-clause.
2017         * testsuite/23_containers/span/101411.cc: New test.
2019 2021-07-09  Matheus Castanho  <msc@linux.ibm.com>
2021         * include/std/mutex (__lock_impl): Check
2022         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
2024 2021-07-02  Jonathan Wakely  <jwakely@redhat.com>
2026         PR libstdc++/101271
2027         * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
2028         Remove noexcept-specifier.
2029         (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
2030         * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
2031         operator[].
2033 2021-07-01  Jonathan Wakely  <jwakely@redhat.com>
2035         * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
2036         * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
2037         Add some more predefined macros.
2038         * include/bits/fs_fwd.h: Move @addtogroup commands inside
2039         namespaces. Add better documentation.
2040         * include/bits/fs_path.h: Likewise.
2041         * include/experimental/bits/fs_fwd.h: Likewise.
2042         * include/experimental/bits/fs_path.h: Likewise.
2043         * include/ext/throw_allocator.h: Fix typo and improve docs.
2044         * include/std/chrono: Move @addtogroup commands.
2045         * include/std/system_error: Move @addtogroup commands.
2046         * libsupc++/exception: Improve documentation.
2047         * libsupc++/exception.h: Add @since documentation.
2049 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
2051         PR libstdc++/101258
2052         * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
2053         (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
2054         (PREDEFINED): Add/fix some more macros that need to be expanded.
2055         * include/bits/random.h: Stop Doxygen from documenting internal
2056         implementation details.
2057         * include/bits/random.tcc: Likewise.
2058         * include/bits/this_thread_sleep.h: Fix @file name.
2059         * include/experimental/bits/simd.h: Add to Doxygen group. Do not
2060         document internal implementation details.
2061         * include/experimental/bits/simd_detail.h: Do not document
2062         internal implementation details.
2063         * include/experimental/simd: Define Doxygen groups.
2064         * include/experimental/type_traits: Improve documentation for
2065         the header file. Define groups. Use @since commands.
2066         * include/std/scoped_allocator (scoped_allocator_adaptor): Move
2067         declaration before undocumented region.
2068         * include/std/type_traits (true_type, false_type): Use using
2069         declaration instead of typedef.
2070         (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
2071         (is_nothrow_invocable_r_v): Move definitions next to other C++17
2072         variable templates.
2073         Do not document internal implementation details. Move misplaced
2074         group-end command. Define group for variable templates.
2075         * include/std/variant: Do not document internal implementation
2076         details.
2077         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2078         line number.
2080 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
2082         * include/experimental/simd: Do not define anything pre-C++17.
2084 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
2086         * include/bits/random.tcc [__cpp_inline_variables]: Remove
2087         redundant definitions of static constexpr member variables.
2088         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2089         line number.
2091 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
2093         * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
2094         explicit instantiation declarations.
2095         * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
2096         explicit instantiation definitions.
2098 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
2100         PR libstdc++/97088
2101         * testsuite/17_intro/names.cc: Fix #if condition for names used
2102         by newlib headers.
2104 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
2106         PR libstdc++/101236
2107         * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
2108         Fail gracefully if element_type is incomplete.
2109         * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
2110         the standard doesn't require this test to work for array types.
2111         * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
2112         types can be used with array specialization.
2113         * testsuite/20_util/unique_ptr/101236.cc: New test.
2115 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
2117         * doc/xml/manual/intro.xml: Document LWG 415 change.
2118         * doc/html/manual/bugs.html: Regenerate.
2119         * include/bits/istream.tcc (ws): Create sentry and catch
2120         exceptions.
2121         * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
2122         * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
2124 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
2126         * include/bits/ostream.tcc (basic_ostream::write): Call sputn
2127         directly instead of using _M_write. Do setstate(__err) all
2128         outside the try-catch block.
2129         * include/std/ostream (basic_ostream::_M_write): Declare
2130         private. Use __ostream_insert. Do not define for the versioned
2131         namespace.
2133 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
2135         * doc/xml/manual/intro.xml: Document LWG 581 change.
2136         * doc/html/manual/bugs.html: Regenerate.
2137         * include/bits/basic_ios.tcc: Whitespace.
2138         * include/bits/ostream.tcc (basic_ostream::flush()): Construct
2139         sentry.
2140         * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
2141         additional cases.
2142         * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
2143         Likewise.
2144         * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
2145         * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
2146         Likewise.
2148 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
2150         * include/bits/ostream.tcc (sentry): Only set failbit if badbit
2151         is set, not if eofbit is set.
2152         (tellp, seekp, seekp): Create sentry object. Do not set badbit
2153         on exceptions.
2154         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2155         Adjust expected behaviour.
2156         * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
2157         Likewise.
2158         * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
2159         Likewise.
2160         * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
2161         Likewise.
2162         * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
2163         * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
2164         * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
2165         * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
2167 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
2169         * include/std/syncstream (basic_syncbuf::swap()): Remove
2170         noexcept, as per LWG 3498.
2172 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
2174         PR libstdc++/97088
2175         * testsuite/17_intro/names.cc: Undef more names for newlib and
2176         also for arm-none-linux-gnueabi.
2177         * testsuite/experimental/names.cc: Disable PCH.
2179 2021-06-25  Matthias Kretz  <m.kretz@gsi.de>
2181         * include/experimental/bits/simd.h (__bit_cast): Implement via
2182         __builtin_bit_cast #if available.
2183         (__proposed::simd_bit_cast): Add overloads for simd and
2184         simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
2185         available), which return an object of the requested type with
2186         the same bits as the argument.
2187         * include/experimental/bits/simd_math.h: Use simd_bit_cast
2188         instead of __bit_cast to allow casts to fixed_size_simd.
2189         (copysign): Remove branch that was only required if __bit_cast
2190         cannot be constexpr.
2191         * testsuite/experimental/simd/tests/bits/test_values.h: Switch
2192         from __bit_cast to __proposed::simd_bit_cast since the former
2193         will not cast fixed_size objects anymore.
2195 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
2197         * include/experimental/bits/simd_math.h
2198         (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
2199         (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
2200         __arg3.
2202 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
2204         * include/experimental/bits/simd.h (__execute_on_index_sequence)
2205         (__execute_on_index_sequence_with_return)
2206         (__call_with_n_evaluations, __call_with_subscripts): Add flatten
2207         attribute.
2209 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
2211         * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
2212         (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
2213         roundp[sd] calls.
2215 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
2217         * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
2218         implementation doesn't require a _VecBltnBtmsk ABI tag, it
2219         requires either a 64-Byte input (in which case AVX512F must be
2220         available) or AVX512VL.
2222 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
2224         * include/experimental/bits/simd_math.h: Undefine internal
2225         macros after use.
2226         (frexp): Move #if to a more sensible position and reformat
2227         preceding code.
2228         (logb): Call _SimdImpl::_S_logb for fixed_size instead of
2229         duplicating the code here.
2230         (modf): Simplify condition.
2232 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
2234         * include/experimental/bits/simd_math.h (fabs): Remove
2235         fabs(simd<integral>) overload.
2237 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
2239         * include/experimental/bits/simd_converter.h
2240         (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
2241         * include/experimental/bits/simd_fixed_size.h
2242         (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
2243         arguments by const-ref.
2244         (_S_masked_unary): Pass _SimdTuple by const-ref.
2246 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
2248         * include/experimental/bits/simd_fixed_size.h
2249         (_AbisInSimdTuple): Removed.
2251 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
2253         * include/experimental/bits/simd.h: Add missing operator~
2254         overload for simd<floating-point> to __float_bitwise_operators.
2255         * include/experimental/bits/simd_builtin.h
2256         (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
2257         implement complement for floating-point vectors.
2258         * include/experimental/bits/simd_fixed_size.h
2259         (_SimdImplFixedSize::_S_copysign): New function, forwarding to
2260         copysign implementation of _SimdTuple members.
2261         * include/experimental/bits/simd_math.h (copysign): Call
2262         _SimdImpl::_S_copysign for fixed_size arguments. Simplify
2263         generic copysign implementation using the new ~ operator.
2265 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
2267         * testsuite/experimental/simd/README.md: Fix typos.
2269 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
2271         * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
2272         Add noexcept.
2273         * include/bits/unique_ptr.h (unique_ptr::operator*): Add
2274         conditional noexcept as per LWG 2762.
2275         * testsuite/20_util/shared_ptr/observers/array.cc: Check that
2276         dereferencing cannot throw.
2277         * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
2278         * testsuite/20_util/optional/observers/lwg2762.cc: New test.
2279         * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
2281 2021-06-23  Patrick Palka  <ppalka@redhat.com>
2283         PR c++/101174
2284         * testsuite/23_containers/multiset/cons/deduction.cc:
2285         Uncomment CTAD example that was rejected by this bug.
2286         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2288 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
2290         * include/std/chrono (chrono::year::is_leap()): Fix incorrect
2291         logic in comment.
2293 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
2295         * testsuite/experimental/simd/README.md: New file.
2297 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
2299         * testsuite/experimental/simd/driver.sh: Rewrite output
2300         verbosity logic. Add -p/--percentage option. Allow -v/--verbose
2301         to be used twice. Add -x and -o short options. Parse long
2302         options with = instead of separating space generically. Parce
2303         contracted short options. Make unrecognized options an error.
2304         If same-line output is active, trap on EXIT to increment the
2305         progress (only with --percentage), erase the line and print the
2306         current status.
2307         * testsuite/experimental/simd/generate_makefile.sh: Initialize
2308         helper files for progress account keeping. Update help target
2309         for changes to DRIVEROPTS.
2311 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
2313         * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
2314         and associated warning.
2315         * testsuite/Makefile.in: Regenerate.
2317 2021-06-23  Cassio Neri  <cassio.neri@gmail.com>
2318             Jonathan Wakely  <jwakely@redhat.com>
2319             Ulrich Drepper  <drepper@redhat.com>
2321         * include/std/chrono (chrono::year::is_leap()): Optimize.
2323 2021-06-23  Patrick Palka  <ppalka@redhat.com>
2325         PR c++/86439
2326         * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
2327         CTAD examples.
2328         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2329         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2330         Mention one of the replaced examples is broken due to PR101174.
2331         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2332         * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
2333         ambiguous CTAD examples.
2334         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2335         Likewise.
2336         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2337         Likewise.
2338         * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
2340 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
2342         * include/std/mutex (__detail::__try_lock_impl): Rename
2343         parameter to avoid clashing with newlib's __lockable macro.
2344         (try_lock): Add 'inline' specifier.
2345         * testsuite/17_intro/names.cc: Add check for __lockable.
2346         * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
2348 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
2349             Matthias Kretz  <m.kretz@gsi.de>
2351         * include/std/mutex (lock): Replace recursion with iteration
2352         when lockables all have the same type.
2353         (__detail::__try_lock_impl): Likewise. Pass lockables as
2354         parameters, instead of a tuple. Always lock the first one, and
2355         recurse for the rest.
2356         (__detail::__lock_impl): Adjust call to __try_lock_impl.
2357         (__detail::__try_to_lock): Remove.
2358         * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
2359         * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
2360         arguments.
2361         * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
2362         std::try_lock.
2363         * testsuite/30_threads/try_lock/5.cc: New test.
2365 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
2367         * include/std/memory (declare_reachable, undeclare_reachable)
2368         (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
2369         (pointer_safety): Only define for C++11 to C++20 inclusive.
2370         * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
2372 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
2374         * include/bits/random.h (seed_seq): Constrain initializer-list
2375         constructor.
2376         * include/bits/random.tcc (seed_seq): Add template parameter.
2377         * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
2378         for noexcept.
2379         * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
2380         constraints.
2382 2021-06-22  Thomas Rodgers  <rodgert@appliantology.com>
2384         PR libstdc++/100806
2385         * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
2386         Force _M_release() to wake all waiting threads.
2387         * testsuite/30_threads/semaphore/100806.cc: New test.
2389 2021-06-21  Jonathan Wakely  <jwakely@redhat.com>
2391         * include/std/mutex (__try_to_lock): Move to __detail namespace.
2392         (struct __try_lock_impl): Replace with ...
2393         (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
2394         function templates to implement std::try_lock.
2395         (try_lock): Use new __try_lock_impl.
2396         (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
2397         template to implement std::lock.
2398         (lock): Use __lock_impl.
2400 2021-06-21  Patrick Palka  <ppalka@redhat.com>
2402         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
2404 2021-06-20  Patrick Palka  <ppalka@redhat.com>
2406         * include/std/ranges (__non_propagating_cache::operator bool):
2407         Define for split_view::begin().
2408         (split_view): Define as per P2210.
2409         (views::__detail::__can_split_view): Define.
2410         (views::_Split, views::split): Define.
2411         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2412         Test views::split.
2413         * testsuite/std/ranges/adaptors/split.cc: New test.
2414         * testsuite/std/ranges/p2325.cc (test08a): New test.
2415         * testsuite/std/ranges/p2367.cc (test01): Test views::split.
2417 2021-06-20  Patrick Palka  <ppalka@redhat.com>
2419         * include/std/ranges: Rename views::split to views::lazy_split,
2420         split_view to lazy_split_view, etc. throughout.
2421         * testsuite/std/ranges/*: Likewise.
2422         * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
2423         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
2425 2021-06-20  Patrick Palka  <ppalka@redhat.com>
2427         * include/std/ranges (split_view::_OuterIter::__at_end):
2428         Check _M_trailing_empty.
2429         (split_view::_OuterIter::_M_trailing_empty): Define this
2430         data member.
2431         (split_view::_OuterIter::operator++): Set _M_trailing_empty
2432         appropriately.
2433         (split_view::_OuterIter::operator==): Compare
2434         _M_trailing_empty.
2435         * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
2436         split parts instead of one.
2437         * testsuite/std/ranges/adaptors/split.cc (test11): New test.
2439 2021-06-20  Patrick Palka  <ppalka@redhat.com>
2441         * include/std/ranges (split_view::_InnerIter::base): Define as
2442         per P2210.
2444 2021-06-19  Patrick Palka  <ppalka@redhat.com>
2446         * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
2447         Consider _Base instead of _Vp as per LWG 3555.
2448         (elements_view::_Iterator::_S_iter_concept): Likewise.
2450 2021-06-19  Patrick Palka  <ppalka@redhat.com>
2452         * include/std/ranges (split_view::_OuterIter::value_type::begin):
2453         Remove the non-const overload, and remove the copyable constraint
2454         on the const overload as per LWG 3553.
2456 2021-06-19  Patrick Palka  <ppalka@redhat.com>
2458         * include/bits/stl_iterator.h
2459         (__detail::__common_iter_use_postfix_proxy): Add
2460         move_constructible constraint as per LWG 3546.
2461         (common_iterator::__postfix_proxy): Adjust initializer of
2462         _M_keep as per LWG 3546.
2464 2021-06-18  Patrick Palka  <ppalka@redhat.com>
2466         PR libstdc++/100387
2467         * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
2468         to limit comparison complexity to 3*N/2.
2469         (__minmax_element_fn::operator()): Likewise.
2470         (shift_right): Avoid premature std::move of __result.
2471         * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
2472         New tests.
2473         * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
2474         Likewise.
2476 2021-06-18  Patrick Palka  <ppalka@redhat.com>
2478         * include/std/concepts (convertible_to): Just use declval as per
2479         LWG 3557.
2481 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
2483         PR libstdc++/95833
2484         * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
2485         incorrect static_assert with ones matching the 'Mandates'
2486         conditions in the standard.
2487         * testsuite/26_numerics/reduce/95833.cc: New test.
2489 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
2491         * testsuite/21_strings/basic_string/cons/char/1.cc: Use
2492         diagnostic pragma to suppress -Wstringop-overread error.
2494 2021-06-18  Patrick Palka  <ppalka@redhat.com>
2496         * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
2497         (find_if, __find_if_not_fn, find_if_not, _in_in_result)
2498         (__mismatch_fn, mismatch, __search_fn, search): Move to ...
2499         * include/bits/ranges_util.h: ... here.
2500         * include/std/ranges (__detail::find, __detail::find_if)
2501         (__detail::find_if_not, __detail::mismatch): Remove.
2502         (filter_view): Use ranges::find_if instead.
2503         (drop_while_view): Use ranges::find_if_not instead.
2504         (split_view): Use ranges::find and ranges::mismatch instead.
2506 2021-06-18  Patrick Palka  <ppalka@redhat.com>
2508         * include/bits/iterator_concepts.h (weakly_incrementable): Remove
2509         default_initializable requirement.
2510         * include/bits/ranges_base.h (ranges::view): Likewise.
2511         * include/bits/ranges_util.h (subrange): Constrain the default
2512         ctor.
2513         * include/bits/stl_iterator.h (back_insert_iterator): Remove the
2514         default ctor.
2515         (front_insert_iterator): Likewise.
2516         (insert_iterator): Likewise.  Remove NSDMIs.
2517         (common_iterator): Constrain the default ctor.
2518         (counted_iterator): Likewise.
2519         * include/bits/stream_iterator.h (ostream_iterator): Remove the
2520         default ctor.
2521         * include/std/ranges (__detail::__box::operator=): Handle
2522         self-assignment in the primary template.
2523         (__detail::__box): In the partial specialization: adjust
2524         constraints as per P2325.  Add specialized operator= for the
2525         case when the wrapped type is not copyable.  Constrain the
2526         default ctor.  Avoid list-initialization.
2527         (single_view): Constraint the default ctor.
2528         (iota_view): Relax semiregular constraint to copyable.
2529         Constrain the default ctor.
2530         (iota_view::_Iterator): Constraint the default ctor.
2531         (basic_istream_view): Remove the default ctor.  Remove NSDMIs.
2532         Remove redundant checks for empty _M_stream.
2533         (basic_istream_view::_Iterator): Likewise.
2534         (ref_view): Remove the default ctor.  Remove NSDMIs.
2535         (ref_view::_Iterator): Constrain the default ctor.
2536         (__detail::__non_propagating_cache::operator=): Define overload
2537         for assigning from a value of the underlying type.
2538         (filter_view): Likewise.
2539         (filter_view::_Iterator): Likewise.
2540         (transform_view): Likewise.
2541         (transform_view::_Iterator): Likewise.
2542         (take_view): Likewise.
2543         (take_view::_Iterator): Likewise.
2544         (take_while_view): Likewise.
2545         (take_while_view::_Iterator): Likewise.
2546         (drop_while_view): Likewise.
2547         (drop_while_view::_Iterator): Likewise.
2548         (join_view): Likewise.
2549         (split_view::_OuterIter::__current): Adjust after changing the
2550         type of _M_current.
2551         (split_view::_M_current): Wrap it in a __non_propagating_cache.
2552         (split_view::split_view): Constrain the default ctor.
2553         (common_view): Constrain the default ctor.
2554         (reverse_view): Likewise.
2555         (elements_view): Likewise.
2556         * include/std/span (enable_view<span<_ElementType, _Extent>>):
2557         Define this partial specialization to true unconditionally.
2558         * include/std/version (__cpp_lib_ranges): Adjust value.
2559         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
2560         Don't attempt to default construct a back_insert_iterator.
2561         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
2562         Don't attempt to default construct a front_insert_iterator.
2563         * testsuite/24_iterators/insert_iterator/constexpr.cc:
2564         Don't attempt to default construct an insert_iterator.
2565         * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
2566         Remove this test for default constructibility of ostream_iterator.
2567         * testsuite/std/ranges/97600.cc: Don't attempt to default
2568         construct a basic_istream_view.
2569         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
2570         Rename to ...
2571         * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
2572         (test02): Adjust now that __box is copyable-box not
2573         semiregular-box.
2574         (test03): New test.
2575         * testsuite/std/ranges/p2325.cc: New test.
2576         * testsuite/std/ranges/single_view.cc (test06): New test.
2577         * testsuite/std/ranges/view.cc: Adjust now that view doesn't
2578         require default_initializable.
2580 2021-06-17  Jonathan Wakely  <jwakely@redhat.com>
2582         PR libstdc++/91488
2583         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
2584         define when is_constant_evaluated is available.
2585         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
2586         Likewise.
2587         (__constant_string_p, __constant_array_p): Remove.
2588         (char_traits): Use is_constant_evaluated directly.
2589         * include/std/version (__cpp_lib_constexpr_char_traits)
2590         (__cpp_lib_constexpr_string): Only define when
2591         is_constant_evaluated is available.
2593 2021-06-17  Patrick Palka  <ppalka@redhat.com>
2595         PR libstdc++/100940
2596         * include/std/ranges (__adaptor::_Partial): For the "simple"
2597         forwarding partial specializations, also require that
2598         the extra arguments are trivially copyable.
2599         * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
2601 2021-06-17  Patrick Palka  <ppalka@redhat.com>
2603         PR libstdc++/100940
2604         * include/std/ranges (__adaptor::_RangeAdaptor): Document the
2605         template form of _S_has_simple_extra_args.
2606         (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
2607         parameter pack.  Try to treat _S_has_simple_extra_args as a
2608         variable template parameterized by _Args.
2609         (__adaptor::_Partial): Pass _Arg/_Args to the constraint
2610         __adaptor_has_simple_extra_args.
2611         (views::_Take::_S_has_simple_extra_args): Templatize according
2612         to the type of the extra argument.
2613         (views::_Drop::_S_has_simple_extra_args): Likewise.
2614         (views::_Split::_S_has_simple_extra_args): Define.
2615         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2616         Adjust after changes to _S_has_simple_extra_args mechanism.
2617         (test03): Define.
2619 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
2621         * include/bits/iterator_concepts.h (__decay_copy): Name type.
2623 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
2625         * include/bits/ranges_base.h (ranges::begin, ranges::end)
2626         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2627         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2628         (ranges::empty, ranges::data, ranges::cdata): Remove final
2629         keywords and deleted operator& overloads.
2630         * testsuite/24_iterators/customization_points/iter_move.cc: Use
2631         new is_customization_point_object function.
2632         * testsuite/24_iterators/customization_points/iter_swap.cc:
2633         Likewise.
2634         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
2635         Likewise.
2636         * testsuite/std/ranges/access/begin.cc: Likewise.
2637         * testsuite/std/ranges/access/cbegin.cc: Likewise.
2638         * testsuite/std/ranges/access/cdata.cc: Likewise.
2639         * testsuite/std/ranges/access/cend.cc: Likewise.
2640         * testsuite/std/ranges/access/crbegin.cc: Likewise.
2641         * testsuite/std/ranges/access/crend.cc: Likewise.
2642         * testsuite/std/ranges/access/data.cc: Likewise.
2643         * testsuite/std/ranges/access/empty.cc: Likewise.
2644         * testsuite/std/ranges/access/end.cc: Likewise.
2645         * testsuite/std/ranges/access/rbegin.cc: Likewise.
2646         * testsuite/std/ranges/access/rend.cc: Likewise.
2647         * testsuite/std/ranges/access/size.cc: Likewise.
2648         * testsuite/std/ranges/access/ssize.cc: Likewise.
2649         * testsuite/util/testsuite_iterators.h
2650         (is_customization_point_object): New function.
2652 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
2654         * include/bits/ranges_base.h (ranges::begin, ranges::end)
2655         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2656         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2657         (ranges::empty, ranges::data, ranges::cdata): Make types final.
2658         Add deleted operator& overloads.
2659         (ranges::advance, ranges::distance, ranges::next, ranges::prev):
2660         Likewise.
2661         * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
2662         ill-formed & expressions with using-declarations. Add checks for
2663         other function objects.
2665 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
2667         * include/bits/ranges_util.h (view_interface): Add noexcept to
2668         empty, operator bool, data and size members.
2669         (subrange): Add noexcept to constructors.
2670         * include/std/ranges (single_view, ref_view): Add noexcept to
2671         constructors.
2672         (views::single, views::all): Add noexcept.
2673         * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
2674         * testsuite/std/ranges/single_view.cc: Likewise.
2676 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
2678         * include/bits/ranges_util.h (subrange): Add __size_type typedef
2679         and use it to simplify declarations.
2680         (subrange(i, s, n)): Remove assertion.
2681         * testsuite/std/ranges/subrange/constexpr.cc: New test.
2683 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
2685         * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
2686         Replace with function object.
2687         (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
2688         __decay_copy unqualified.
2689         * include/bits/ranges_base.h (__member_end, __adl_end):
2690         Likewise. Use __range_iter_t for type of ranges::begin.
2691         (__member_rend): Use correct value category for rbegin argument.
2692         (__member_data): Use __decay_copy unqualified.
2693         (__begin_data): Use __range_iter_t for type of ranges::begin.
2695 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2697         * include/bits/ranges_base.h (ranges::empty): Check whether
2698         conversion to bool can throw.
2699         * testsuite/std/ranges/access/empty.cc: Check for correct
2700         noexcept-specifier.
2702 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2704         PR libstdc++/100894
2705         * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
2706         use the type if it's a reference.
2707         * testsuite/20_util/common_reference/100894.cc: New test.
2709 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2711         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2712         Add dg-require-filesystem-ts directive.
2714 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2716         PR libstdc++/101034
2717         * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
2718         (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
2719         to use lvalue.
2720         * testsuite/20_util/any/cons/101034.cc: New test.
2722 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2724         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
2725         -std=gnu++17 option.
2727 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2729         PR libstdc++/101056
2730         * libsupc++/compare (compare_partial_order_fallback): Add
2731         constraint using reversed parameter order, as per LWG 3465.
2732         * testsuite/18_support/comparisons/algorithms/fallback.cc:
2733         Adjust expected result.
2735 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2737         * libsupc++/compare (__decayed_same_as): New helper concept.
2738         (strong_order, weak_order, partial_order): Constrain with new
2739         concept instead of using static_assert.
2740         (compare_strong_order_fallback, compare_weak_order_fallback)
2741         (compare_partial_order_fallback): Likewise. Do not deduce return
2742         types. Remove redundant if-constexpr checks.
2743         * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
2745 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2747         PR libstdc++/101055
2748         * include/std/tuple: Use reserved form of attribute name.
2749         * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
2750         check for no_unique_address.
2751         * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2752         Likewise.
2753         * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2754         Likewise.
2756 2021-06-11  Jonathan Wakely  <jwakely@redhat.com>
2758         * include/bits/fs_path.h (operator==, operator<=>): Use new
2759         _S_compare function.
2760         (path::_S_compare): New function to call path::compare in a
2761         context where path::iterator is complete.
2762         * include/experimental/bits/fs_path.h (operator<, operator==):
2763         Define after path::iterator is complete.
2764         * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
2765         test.
2766         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2767         New test.
2769 2021-06-09  Thomas Rodgers  <rodgert@appliantology.com>
2771         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
2772         test logic with constexpr check for is_always_lock_free.
2774 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
2776         PR libstdc++/100982
2777         * include/std/optional (optional::operator=(const optional<U>&)):
2778         Fix value category used in is_assignable check.
2779         * testsuite/20_util/optional/assignment/100982.cc: New test.
2781 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
2783         * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
2784         * include/bits/iterator_concepts.h (indirectly_readable_traits):
2785         Add LWG issue number to comment.
2786         * include/std/memory_resource (polymorphic_allocator::release):
2787         Deprecate.
2788         * testsuite/20_util/allocator/requirements/typedefs.cc: Add
2789         dg-warning for deprecation. Also check std::allocator<void>.
2791 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
2793         PR libstdc++/100889
2794         * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
2795         Change parameter type from _Tp to _Tp*.
2796         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
2797         coverage of types tested.
2799 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
2801         * include/std/barrier (__tree_barrier::_M_arrive): Remove
2802         unnecessary hasher instantiation.
2804 2021-06-08  Jonathan Wakely  <jwakely@redhat.com>
2806         * include/experimental/propagate_const (swap): Constrain.
2807         * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
2809 2021-06-07  Avi Kivity  <avi@scylladb.com>
2811         PR libstdc++/100900
2812         * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
2813         Add missing typename.
2815 2021-06-07  Jonathan Wakely  <jwakely@redhat.com>
2817         PR libstdc++/98842
2818         * include/std/optional (operator<=>(const optional<T>& const U&)):
2819         Add missing constraint and add workaround for template
2820         recursion.
2821         * testsuite/20_util/optional/relops/three_way.cc: Check that
2822         type without equality comparison cannot be compared when wrapped
2823         in std::optional.
2825 2021-06-05  Jonathan Wakely  <jwakely@redhat.com>
2827         PR libstdc++/100824
2828         * include/bits/ranges_base.h (_SSize): Return signed type.
2829         * testsuite/std/ranges/access/ssize.cc: Check with __int128.
2831 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2833         * include/bits/ranges_base.h (_SSize): Return the result of
2834         ranges::size converted to the wider of make-signed-like-t<S> and
2835         ptrdiff_t, rather than the ranges different type.
2836         * testsuite/std/ranges/access/ssize.cc: Adjust expected result
2837         for an iota_view that uses an integer class type for its
2838         difference_type.
2840 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2842         PR libstdc++/100824
2843         * include/bits/ranges_base.h (__member_data): Use __decay_copy.
2844         * testsuite/std/ranges/access/data.cc: Add testcase from PR.
2846 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2848         PR libstdc++/100824
2849         * include/bits/iterator_concepts.h (__detail::__decay_copy)
2850         (__detail::__member_begin, __detail::__adl_begin): Move to
2851         namespace ranges::__cust_access.
2852         (__detail::__ranges_begin): Likewise, and rename to __begin.
2853         Remove redundant static assertion.
2854         * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
2855         Use lvalue in noexcept specifier.
2856         (__as_const): Add non-deduced parameter for value category.
2857         (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
2858         __as_const.
2859         (__member_size, __adl_size, __member_empty, __size0_empty):
2860         (__eq_iter_empty, __adl_data): Use lvalue objects in
2861         requirements.
2862         (__sentinel_size): Likewise. Add check for conversion to
2863         unsigned-like.
2864         (__member_data): Allow non-lvalue types to satisfy the concept,
2865         but use lvalue object in requirements.
2866         (_Size, _SSize): Remove forwarding to always use an lvalue.
2867         (_Data): Likewise. Add static assertion for arrays.
2868         * testsuite/std/ranges/access/cdata.cc: Adjust expected
2869         behaviour for rvalues. Add negative tests for ill-formed
2870         expressions.
2871         * testsuite/std/ranges/access/data.cc: Likewise.
2872         * testsuite/std/ranges/access/empty.cc: Adjust expected
2873         behaviour for rvalues.
2874         * testsuite/std/ranges/access/size.cc: Likewise.
2876 2021-06-04  Tim Adye  <Tim.Adye@cern.ch>
2878         * include/std/any (any::_Manager::_S_access): New static
2879         function to access the contained value.
2880         (any::emplace, __any_caster): Use _S_access member of the
2881         manager type.
2883 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2885         * doc/xml/manual/status_cxx2020.xml:
2886         * doc/html/*: Regenerate.
2887         * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
2888         Define.
2889         * include/std/version (__cpp_lib_generic_unordered_lookup):
2890         Define.
2891         * testsuite/23_containers/unordered_map/operations/1.cc: Check
2892         feature test macro.
2893         * testsuite/23_containers/unordered_set/operations/1.cc:
2894         Likewise.
2896 2021-06-03  Patrick Palka  <ppalka@redhat.com>
2898         * include/bits/ranges_algo.h (__detail::__can_reread_output):
2899         Factor out this concept from ...
2900         (__unique_copy_fn::operator()): ... here.  Use the concept
2901         throughout.
2902         * testsuite/std/ranges/range.cc: Remove now ill-formed use
2903         of range_value_t on an output_range.
2904         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2905         Define value_type, pointer and reference member types to void.
2907 2021-06-03  Patrick Palka  <ppalka@redhat.com>
2909         PR libstdc++/100577
2910         * include/std/ranges (_RangeAdaptorClosure): Document
2911         _S_has_simple_call_op mechanism.
2912         (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2913         (__closure_has_simple_call_op): New concept.
2914         (__adaptor_has_simple_extra_args): Likewise.
2915         (_Partial<_Adaptor, _Args...>): New partial specialization.
2916         (_Partial<_Adaptor, _Arg>): Likewise.
2917         (_Pipe<_Lhs, _Rhs>): Likewise.
2918         (views::_All::_S_has_simple_call_op): Define to true.
2919         (views::_Filter::_S_has_simple_extra_args): Likewise.
2920         (views::_Transform::_S_has_simple_extra_args): Likewise.
2921         (views::_Take::_S_has_simple_extra_args): Likewise.
2922         (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2923         (views::_Drop::_S_has_simple_extra_args): Likewise.
2924         (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2925         (views::_Join::_S_has_simple_call_op): Likewise.
2926         (views::_Split): Document why we don't define
2927         _S_has_simple_extra_args to true for this adaptor.
2928         (views::_Common::_S_has_simple_call_op): Define to true.
2929         (views::_Reverse::_S_has_simple_call_op): Likewise.
2930         (views::_Elements::_S_has_simple_call_op): Likewise.
2931         * testsuite/std/ranges/adaptors/100577.cc: New test.
2933 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2935         PR libstdc++/100863
2936         PR libstdc++/65816
2937         * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2938         Value-initialize subobject.
2939         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2940         Remove XFAIL.
2941         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2942         Remove XFAIL.
2944 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2946         PR libstdc++/96088
2947         * testsuite/23_containers/unordered_map/96088.cc: Adjust
2948         expected number of allocations.
2949         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2951 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2953         * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
2954         * doc/xml/manual/status_cxxtr1.xml: Likewise.
2955         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2956         * doc/html/*: Regenerate.
2958 2021-06-01  Patrick Palka  <ppalka@redhat.com>
2960         PR c++/65816
2961         * testsuite/23_containers/deque/allocator/default_init.cc,
2962         testsuite/23_containers/forward_list/allocator/default_init.cc,
2963         testsuite/23_containers/list/allocator/default_init.cc,
2964         testsuite/23_containers/map/allocator/default_init.cc,
2965         testsuite/23_containers/set/allocator/default_init.cc,
2966         testsuite/23_containers/vector/allocator/default_init.cc,
2967         testsuite/23_containers/vector/bool/allocator/default_init.cc:
2968         Remove xfail.
2970 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2972         * testsuite/23_containers/unordered_map/96088.cc: Change
2973         effective target to c++17.
2974         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2976 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2978         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2979         isblank for C++11 and later.
2981 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2983         PR libstdc++/100833
2984         * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
2985         Fix return value for no-op case.
2986         * testsuite/24_iterators/range_operations/advance.cc: Test
2987         return values of three-argument overload.
2989 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2991         PR libstdc++/99453
2992         * python/Makefile.am: Use archive name for printer hook if no
2993         dynamic library name is available.
2994         * python/Makefile.in: Regenerate.
2996 2021-05-30  Gerald Pfeifer  <gerald@pfeifer.com>
2998         * doc/xml/manual/abi.xml: Remove dead reference to "Intel
2999         Compilers for Linux: Compatibility with GNU Compilers" article.
3000         * doc/html/manual/abi.html: Regenerate.
3002 2021-05-26  François Dumont  <fdumont@gcc.gnu.org>
3004         * include/debug/formatter.h
3005         (_Error_formatter::_Parameter::_Named): New.
3006         (_Error_formatter::_Parameter::_Type): Inherit latter.
3007         (_Error_formatter::_Parameter::_M_integer): Likewise.
3008         (_Error_formatter::_Parameter::_M_string): Likewise.
3009         * src/c++11/debug.cc: Include <cstring>.
3010         (_Print_func_t): New.
3011         (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
3012         (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
3013         (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
3014         (print_type): Rename in...
3015         (print_type_info): ...this. Use pretty_print.
3016         (print_address, print_integer): New.
3017         (print_named_name, print_iterator_constness, print_iterator_state): New.
3018         (print_iterator_seq_type): New.
3019         (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
3020         (print_field): Use latters.
3021         (print_quoted_named_name, print_type_type, print_type, print_instance): New.
3022         (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
3023         Change signature to...
3024         (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
3025         ...this and adapt. Remove intermediate buffer to render input string.
3026         (print_string(PrintContext&, const char*, ptrdiff_t)): New.
3028 2021-05-26  Jonathan Wakely  <jwakely@redhat.com>
3030         PR libstdc++/100768
3031         * include/bits/ranges_base.h (advance, distance, next, prev):
3032         Replace function templates with function objects.
3033         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3034         Adjust for changes to function objects.
3035         * testsuite/std/ranges/adaptors/elements.cc: Add using
3036         declarations for names from namespace ranges.
3037         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3038         * testsuite/24_iterators/range_operations/100768.cc: New test.
3040 2021-05-24  François Dumont  <fdumont@gcc.gnu.org>
3042         PR libstdc++/96088
3043         * include/bits/hashtable_policy.h (_Select2nd): New.
3044         (_NodeBuilder<>): New.
3045         (_ReuseOrAllocNode<>::operator()): Use variadic template args.
3046         (_AllocNode<>::operator()): Likewise.
3047         * include/bits/hashtable.h
3048         (_Hashtable<>::__node_builder_t): New.
3049         (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
3050          New.
3051         (_Hashtable<>::_S_forward_key): New.
3052         (_Hashtable<>::_M_insert): Use latter.
3053         (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
3054         Instantiate node first, compute hash code second.
3055         * testsuite/23_containers/unordered_map/96088.cc: New test.
3056         * testsuite/23_containers/unordered_multimap/96088.cc: New test.
3057         * testsuite/23_containers/unordered_multiset/96088.cc: New test.
3058         * testsuite/23_containers/unordered_set/96088.cc: New test.
3059         * testsuite/util/replacement_memory_operators.h
3060         (counter::_M_increment): New.
3061         (counter::_M_decrement): New.
3062         (counter::reset()): New.
3064 2021-05-24  Patrick Palka  <ppalka@redhat.com>
3066         PR libstdc++/100479
3067         * include/std/ranges (__detail::__non_propagating_cache): Move
3068         definition up to before that of _CachedPosition.  Make base
3069         class _Optional_base protected instead of private.  Add const
3070         overload for operator*.
3071         (__detail::_CachedPosition): Rewrite the partial specialization
3072         for forward ranges as a derived class of __non_propagating_cache.
3073         Remove the size constraint on the partial specialization for
3074         random access ranges.  Add copy/move/copy-assignment/move-assignment
3075         members to the offset partial specialization for random
3076         access ranges that propagate the cached value but additionally
3077         invalidate it in the source object on move.
3078         * testsuite/std/ranges/adaptors/100479.cc: New test.
3080 2021-05-24  Jonathan Wakely  <jwakely@redhat.com>
3082         * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
3083         call to ranges::next.
3084         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
3085         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
3086         Likewise.
3087         * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
3088         swap_ranges.
3090 2021-05-21  Patrick Palka  <ppalka@redhat.com>
3092         PR libstdc++/100606
3093         * include/std/ranges (drop_while_view::begin): Assert the
3094         precondition added by LWG 3490.
3096 2021-05-21  Patrick Palka  <ppalka@redhat.com>
3098         PR libstdc++/100690
3099         * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
3100         Split out this member function from ...
3101         (iota_view::_Sentinel::operator-): ... here, for sake of access
3102         control.
3103         * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
3105 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
3107         * include/bits/random.tcc (__representable_as_double)
3108         (__p1_representable_as_double): Add "" to static asserts.
3110 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
3112         PR libstdc++/100676
3113         * include/bits/c++config (__glibcxx_assert_1): Rename to ...
3114         (__glibcxx_constexpr_assert): ... this.
3115         (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
3116         (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
3117         or __glibcxx_assert_impl.
3118         (__glibcxx_assert_2): Remove
3119         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
3120         __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
3121         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3122         Adjust expected error.
3123         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3124         Likewise.
3125         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3126         Likewise.
3127         Likewise.
3128         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3129         Likewise.
3130         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3131         Likewise.
3132         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3133         Likewise.
3134         * testsuite/23_containers/span/back_neg.cc: Likewise.
3135         * testsuite/23_containers/span/front_neg.cc: Likewise.
3136         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
3138 2021-05-20  Patrick Palka  <ppalka@redhat.com>
3140         PR libstdc++/100639
3141         * include/bits/stl_iterator.h (reverse_iterator::difference_type):
3142         In C++20 mode, define in terms of iter_difference_t as per P0896R4.
3143         (reverse_iterator::reference): Likewise, but with iter_reference_t.
3144         (reverse_iterator::value_type): Likewise, but with iter_value_t.
3145         * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
3146         * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
3148 2021-05-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>
3150         PR libstdc++/100361
3151         * include/std/charconv (to_chars): Hide the overloads for
3152         floating-point types for 16 bit targets.
3153         * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
3154         * testsuite/20_util/to_chars/double.cc: Run this test only on
3155         size32plus targets.
3156         * testsuite/20_util/to_chars/float.cc: Likewise.
3157         * testsuite/20_util/to_chars/long_double.cc: Likewise.
3159 2021-05-18  Patrick Palka  <ppalka@redhat.com>
3161         PR libstdc++/100631
3162         * include/std/ranges (elements_view::_Sentinel::operator-): Use
3163         _M_distance_from in the other operator- overload too.
3164         * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
3166 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
3168         * testsuite/lib/prune.exp: Add note about 'dg-note'.
3170 2021-05-18  Patrick Palka  <ppalka@redhat.com>
3172         PR libstdc++/100475
3173         * include/std/ranges (__box::__box): Use non-list-initialization
3174         in member initializer list of in-place constructor of the
3175         partial specialization for semiregular types.
3176         (__box::operator->): Use std::__addressof.
3177         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
3178         (test02): New test.
3179         * testsuite/std/ranges/single_view.cc (test04): New test.
3181 2021-05-18  Patrick Palka  <ppalka@redhat.com>
3183         PR libstdc++/100621
3184         * include/std/ranges (reverse_view::_S_needs_cached_begin):
3185         Set to true if the underlying non-common random-access range
3186         doesn't have a sized sentinel.
3188 2021-05-18  Patrick Palka  <ppalka@redhat.com>
3190         PR libstdc++/100631
3191         * include/std/ranges (elements_view::_Iterator): Also befriend
3192         _Sentinel<!_Const>.
3193         (elements_view::_Sentinel::_M_equal): Templatize.
3194         (elements_view::_Sentinel::_M_distance_from): Split out from ...
3195         (elements_view::_Sentinel::operator-): ... here.  Depend on
3196         _Base2 instead of _Base in the return type.
3197         * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
3198         New tests.
3200 2021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>
3202         * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
3203         until value change observed.
3204         (__waiter_base::_M_laundered): New member.
3205         (__waiter_base::_M_notify): Check _M_laundered to determine
3206         whether to wake one or all.
3207         (__detail::__atomic_compare): Return true if call to
3208         __builtin_memcmp() == 0.
3209         (__waiter_base::_S_do_spin_v): Adjust predicate.
3210         * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
3211         test.
3213 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
3215         PR libstdc++/100630
3216         * include/experimental/bits/fs_path.h (__is_constructible_from):
3217         Test construction from a const lvalue, not an rvalue.
3218         * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
3219         * testsuite/experimental/filesystem/path/construct/100630.cc:
3220         New test.
3222 2021-05-17  Antony Polukhin  <antoshkka@gmail.com>
3224         PR libstdc++/89728
3225         * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
3226         Declare (but do not define) partial specialization.
3227         * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
3229 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
3231         * include/std/thread (jthread::_S_create): Fix static assert
3232         message.
3233         * testsuite/30_threads/jthread/95989.cc: Re-enable test.
3234         * testsuite/30_threads/jthread/jthread.cc: Do not require
3235         pthread effective target.
3236         * testsuite/30_threads/jthread/2.cc: Moved to...
3237         * testsuite/30_threads/jthread/version.cc: ...here.
3239 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
3241         * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
3242         * doc/Makefile.in: Regenerate.
3243         * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
3244         value.
3245         * scripts/run_doxygen (print_usage): Always print to stdout and
3246         do not exit.
3247         (fail): New function for exiting on error.
3248         (parse_options): Handle --latex_cmd. Do not treat --help the
3249         same as errors. Simplify handling of required arguments.
3251 2021-05-12  Jonathan Wakely  <jwakely@redhat.com>
3253         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3254         Increase dg-timeout-factor to 4. Fix -Wunused-parameter
3255         warnings. Replace bitwise AND with logical AND in loop
3256         condition.
3257         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3258         Replace bitwise AND with logical AND in loop condition.
3259         * testsuite/util/pstl/test_utils.h: Remove unused parameter
3260         names.
3262 2021-05-11  Patrick Palka  <ppalka@redhat.com>
3264         * src/c++17/ryu/LOCAL_PATCHES: Update.
3265         * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
3266         Remove declarations for never-defined functions.
3267         * testsuite/20_util/to_chars/4.cc: New test.
3269 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
3271         * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
3272         alternative for macro.
3273         * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
3274         target keyword.
3275         * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
3276         syntax.
3278 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
3280         * include/bits/allocator.h (allocator<void>) [C++20]: Add
3281         missing noexcept to constructor. Restore missing POCMA and
3282         is_always_equal_traits.
3283         [C++17]: Make construct and destroy members private and
3284         declare allocator_traits as a friend.
3285         * include/bits/memoryfwd.h (allocator_traits): Declare.
3286         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
3287         Add nodiscard attribute. Add static assertion for LWG 3307.
3288         * include/ext/new_allocator.h (new_allocator::allocate): Add
3289         static assertion for LWG 3307.
3290         * testsuite/20_util/allocator/void.cc: Check that converting
3291         constructor is noexcept. Check for propagation traits and
3292         size_type and difference_type. Check that pointer and
3293         const_pointer are gone in C++20.
3295 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3297         * include/std/stop_token: Remove TODO comment.
3299 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3301         * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
3302         Initialize a non-reference deleter from an rvalue, as per LWG
3303         3548.
3304         (__shared_ptr::_UniqCompatible): Add missing constraint.
3305         * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
3306         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
3307         constraints.
3309 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3311         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
3312         -std=gnu++17 from dg-options directive.
3313         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
3314         Likewise.
3315         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
3316         Likewise.
3317         * testsuite/17_intro/headers/c++2017/operator_names.cc:
3318         Likewise.
3319         * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
3320         * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
3321         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
3322         Likewise.
3323         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
3324         * testsuite/18_support/byte/81076.cc: Likewise.
3325         * testsuite/18_support/byte/global_neg.cc: Likewise.
3326         * testsuite/18_support/byte/ops.cc: Likewise.
3327         * testsuite/18_support/byte/requirements.cc: Likewise.
3328         * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
3329         * testsuite/18_support/launder/1.cc: Likewise.
3330         * testsuite/18_support/launder/nodiscard.cc: Likewise.
3331         * testsuite/18_support/launder/requirements.cc: Likewise.
3332         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
3333         * testsuite/18_support/new_aligned.cc: Likewise.
3334         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
3335         Likewise.
3336         * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
3337         Likewise.
3338         * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
3339         * testsuite/20_util/addressof/requirements/constexpr.cc:
3340         Likewise.
3341         * testsuite/20_util/as_const/1.cc: Likewise.
3342         * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
3343         * testsuite/20_util/bind/83427.cc: Likewise.
3344         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
3345         * testsuite/20_util/bool_constant/requirements.cc: Likewise.
3346         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
3347         Likewise.
3348         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
3349         Likewise.
3350         * testsuite/20_util/duration_cast/rounding.cc: Likewise.
3351         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
3352         Likewise.
3353         * testsuite/20_util/from_chars/1_neg.cc: Likewise.
3354         * testsuite/20_util/from_chars/requirements.cc: Likewise.
3355         * testsuite/20_util/function/91456.cc: Likewise.
3356         * testsuite/20_util/function/cons/deduction.cc: Likewise.
3357         * testsuite/20_util/function_objects/83607.cc: Likewise.
3358         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
3359         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
3360         * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
3361         * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
3362         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
3363         Likewise.
3364         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
3365         Likewise.
3366         * testsuite/20_util/has_unique_object_representations/value.cc:
3367         Likewise.
3368         * testsuite/20_util/hash/nullptr.cc: Likewise.
3369         * testsuite/20_util/in_place/requirements.cc: Likewise.
3370         * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
3371         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
3372         Likewise.
3373         * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
3374         Likewise.
3375         * testsuite/20_util/is_aggregate/value.cc: Likewise.
3376         * testsuite/20_util/is_invocable/83395.cc: Likewise.
3377         * testsuite/20_util/is_invocable/91456.cc: Likewise.
3378         * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
3379         Likewise.
3380         * testsuite/20_util/is_invocable/requirements/typedefs.cc:
3381         Likewise.
3382         * testsuite/20_util/is_invocable/value.cc: Likewise.
3383         * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
3384         * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
3385         * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
3386         * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
3387         Likewise.
3388         * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
3389         * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
3390         * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
3391         Likewise.
3392         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3393         Likewise.
3394         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3395         * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
3396         Likewise.
3397         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3398         Likewise.
3399         * testsuite/20_util/is_nothrow_swappable_with/value.cc:
3400         Likewise.
3401         * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
3402         Likewise.
3403         * testsuite/20_util/is_swappable/requirements/typedefs.cc:
3404         Likewise.
3405         * testsuite/20_util/is_swappable/value.cc: Likewise.
3406         * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
3407         Likewise.
3408         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
3409         Likewise.
3410         * testsuite/20_util/is_swappable_with/value.cc: Likewise.
3411         * testsuite/20_util/logical_traits/83134.cc: Likewise.
3412         * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
3413         Likewise.
3414         * testsuite/20_util/logical_traits/requirements/typedefs.cc:
3415         Likewise.
3416         * testsuite/20_util/logical_traits/value.cc: Likewise.
3417         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
3418         * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
3419         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
3420         Likewise.
3421         * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
3422         * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
3423         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
3424         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
3425         * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
3426         Likewise.
3427         * testsuite/20_util/time_point/arithmetic/constexpr.cc:
3428         Likewise.
3429         * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
3430         * testsuite/20_util/to_chars/3.cc: Likewise.
3431         * testsuite/20_util/to_chars/chars_format.cc: Likewise.
3432         * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
3433         * testsuite/20_util/to_chars/requirements.cc: Likewise.
3434         * testsuite/20_util/tuple/78939.cc: Likewise.
3435         * testsuite/20_util/tuple/apply/1.cc: Likewise.
3436         * testsuite/20_util/tuple/apply/2.cc: Likewise.
3437         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
3438         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
3439         * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
3440         * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
3441         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
3442         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
3443         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
3444         Likewise.
3445         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
3446         * testsuite/20_util/void_t/1.cc: Likewise.
3447         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
3448         * testsuite/24_iterators/container_access.cc: Likewise.
3449         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
3450         Likewise.
3451         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
3452         Likewise.
3453         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3454         Likewise.
3455         * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
3456         Likewise.
3457         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
3458         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
3459         Likewise.
3460         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
3461         * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
3462         Likewise.
3463         * testsuite/26_numerics/lcm/1.cc: Likewise.
3464         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
3465         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
3466         * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
3467         Likewise.
3468         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
3469         Likewise.
3470         * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
3471         Likewise.
3472         * testsuite/27_io/types/4.cc: Likewise.
3473         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
3474         * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
3475         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3477 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3479         * testsuite/20_util/function_objects/searchers.cc: Remove
3480         -std=gnu++17 from dg-options directive.
3481         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
3482         Likewise.
3483         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3484         Likewise.
3485         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
3486         Likewise.
3487         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
3488         Likewise.
3489         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
3490         Likewise.
3491         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3492         Likewise.
3493         * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
3494         Likewise.
3495         * testsuite/25_algorithms/clamp/1.cc: Likewise.
3496         * testsuite/25_algorithms/clamp/2.cc: Likewise.
3497         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
3498         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
3499         Likewise.
3500         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
3501         Likewise.
3502         * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
3503         * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
3504         Likewise.
3505         * testsuite/25_algorithms/sample/1.cc: Likewise.
3506         * testsuite/25_algorithms/sample/2.cc: Likewise.
3507         * testsuite/25_algorithms/sample/3.cc: Likewise.
3508         * testsuite/25_algorithms/sample/81221.cc: Likewise.
3509         * testsuite/25_algorithms/search/searcher.cc: Likewise.
3510         * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
3511         * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
3512         * testsuite/26_numerics/reduce/1.cc: Likewise.
3513         * testsuite/26_numerics/reduce/2.cc: Likewise.
3514         * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
3515         * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
3516         * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
3518 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3520         * testsuite/23_containers/array/cons/deduction.cc: Remove
3521         -std=gnu++17 from dg-options directive.
3522         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
3523         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
3524         Likewise.
3525         * testsuite/23_containers/array/requirements/constexpr_iter.cc:
3526         Likewise.
3527         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3528         Likewise.
3529         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
3530         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
3531         Likewise.
3532         * testsuite/23_containers/forward_list/cons/deduction.cc:
3533         Likewise.
3534         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
3535         Likewise.
3536         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
3537         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
3538         Likewise.
3539         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
3540         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3541         * testsuite/23_containers/map/modifiers/insert/83226.cc:
3542         Likewise.
3543         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3544         Likewise.
3545         * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
3546         * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
3547         Likewise.
3548         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3549         * testsuite/23_containers/multimap/modifiers/extract.cc:
3550         Likewise.
3551         * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
3552         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3553         * testsuite/23_containers/multiset/modifiers/extract.cc:
3554         Likewise.
3555         * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
3556         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
3557         * testsuite/23_containers/queue/deduction.cc: Likewise.
3558         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
3559         Likewise.
3560         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3561         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3562         * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
3563         * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
3564         * testsuite/23_containers/stack/deduction.cc: Likewise.
3565         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
3566         Likewise.
3567         * testsuite/23_containers/unordered_map/cons/deduction.cc:
3568         Likewise.
3569         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3570         Likewise.
3571         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
3572         Likewise.
3573         * testsuite/23_containers/unordered_map/modifiers/merge.cc:
3574         Likewise.
3575         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
3576         Likewise.
3577         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3578         Likewise.
3579         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
3580         Likewise.
3581         * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
3582         Likewise.
3583         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3584         Likewise.
3585         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
3586         Likewise.
3587         * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
3588         Likewise.
3589         * testsuite/23_containers/unordered_set/cons/deduction.cc:
3590         Likewise.
3591         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3592         Likewise.
3593         * testsuite/23_containers/unordered_set/modifiers/merge.cc:
3594         Likewise.
3595         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
3596         Likewise.
3597         * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
3598         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
3599         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
3600         Likewise.
3602 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3604         * testsuite/21_strings/basic_string/79162.cc: Remove
3605         -std=gnu++17 from dg-options directive.
3606         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
3607         * testsuite/21_strings/basic_string/cons/char/79162.cc:
3608         Likewise.
3609         * testsuite/21_strings/basic_string/cons/char/86138.cc:
3610         Likewise.
3611         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
3612         * testsuite/21_strings/basic_string/cons/char/deduction.cc:
3613         Likewise.
3614         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
3615         Likewise.
3616         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
3617         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
3618         Likewise.
3619         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
3620         Likewise.
3621         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
3622         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3623         Likewise.
3624         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
3625         Likewise.
3626         * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
3627         * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3628         * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3629         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
3630         Likewise.
3631         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3632         Likewise.
3633         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3634         Likewise.
3635         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3636         Likewise.
3637         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
3638         Likewise.
3639         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
3640         Likewise.
3641         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
3642         Likewise.
3643         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
3644         Likewise.
3645         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
3646         Likewise.
3647         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
3648         Likewise.
3649         * testsuite/21_strings/basic_string/operations/data/char/2.cc:
3650         Likewise.
3651         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
3652         Likewise.
3653         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
3654         Likewise.
3655         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
3656         Likewise.
3657         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
3658         Likewise.
3659         * testsuite/21_strings/basic_string/operators/char/5.cc:
3660         Likewise.
3661         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
3662         Likewise.
3663         * testsuite/21_strings/basic_string_view/capacity/1.cc:
3664         Likewise.
3665         * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
3666         Likewise.
3667         * testsuite/21_strings/basic_string_view/cons/char/1.cc:
3668         Likewise.
3669         * testsuite/21_strings/basic_string_view/cons/char/2.cc:
3670         Likewise.
3671         * testsuite/21_strings/basic_string_view/cons/char/3.cc:
3672         Likewise.
3673         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
3674         Likewise.
3675         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
3676         Likewise.
3677         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
3678         Likewise.
3679         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
3680         Likewise.
3681         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
3682         Likewise.
3683         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3684         Likewise.
3685         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3686         Likewise.
3687         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3688         Likewise.
3689         * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
3690         Likewise.
3691         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3692         Likewise.
3693         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3694         Likewise.
3695         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3696         Likewise.
3697         * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
3698         Likewise.
3699         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3700         Likewise.
3701         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3702         Likewise.
3703         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3704         Likewise.
3705         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3706         Likewise.
3707         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
3708         Likewise.
3709         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3710         Likewise.
3711         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3712         Likewise.
3713         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3714         Likewise.
3715         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3716         Likewise.
3717         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3718         * testsuite/21_strings/basic_string_view/inserters/94051.cc:
3719         Likewise.
3720         * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
3721         Likewise.
3722         * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
3723         Likewise.
3724         * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
3725         Likewise.
3726         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3727         Likewise.
3728         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3729         Likewise.
3730         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3731         Likewise.
3732         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3733         Likewise.
3734         * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
3735         Likewise.
3736         * testsuite/21_strings/basic_string_view/literals/types.cc:
3737         Likewise.
3738         * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
3739         Likewise.
3740         * testsuite/21_strings/basic_string_view/literals/values.cc:
3741         Likewise.
3742         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3743         Likewise.
3744         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3745         Likewise.
3746         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3747         Likewise.
3748         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3749         Likewise.
3750         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3751         Likewise.
3752         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3753         Likewise.
3754         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3755         Likewise.
3756         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3757         Likewise.
3758         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
3759         Likewise.
3760         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
3761         Likewise.
3762         * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
3763         Likewise.
3764         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3765         Likewise.
3766         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3767         Likewise.
3768         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
3769         Likewise.
3770         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3771         Likewise.
3772         * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
3773         Likewise.
3774         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3775         Likewise.
3776         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
3777         Likewise.
3778         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3779         Likewise.
3780         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3781         Likewise.
3782         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3783         Likewise.
3784         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3785         Likewise.
3786         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3787         Likewise.
3788         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3789         Likewise.
3790         * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
3791         Likewise.
3792         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3793         Likewise.
3794         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3795         Likewise.
3796         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3797         Likewise.
3798         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3799         Likewise.
3800         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3801         Likewise.
3802         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3803         Likewise.
3804         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3805         Likewise.
3806         * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
3807         Likewise.
3808         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3809         Likewise.
3810         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3811         Likewise.
3812         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3813         Likewise.
3814         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3815         Likewise.
3816         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3817         Likewise.
3818         * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
3819         Likewise.
3820         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3821         Likewise.
3822         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
3823         Likewise.
3824         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
3825         Likewise.
3826         * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
3827         Likewise.
3828         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3829         Likewise.
3830         * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
3831         Likewise.
3832         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3833         Likewise.
3834         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3835         Likewise.
3836         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3837         Likewise.
3838         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3839         Likewise.
3840         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3841         Likewise.
3842         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3843         Likewise.
3844         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3845         Likewise.
3846         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3847         Likewise.
3848         * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
3849         Likewise.
3850         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3851         Likewise.
3852         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3853         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3854         * testsuite/21_strings/char_traits/requirements/char/99181.cc:
3855         Likewise.
3856         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3858 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3860         * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
3861         from dg-options directive.
3862         * testsuite/20_util/memory_resource/2.cc: Likewise.
3863         * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
3864         * testsuite/20_util/monotonic_buffer_resource/93208.cc:
3865         Likewise.
3866         * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
3867         Likewise.
3868         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
3869         Likewise.
3870         * testsuite/20_util/monotonic_buffer_resource/release.cc:
3871         Likewise.
3872         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3873         Likewise.
3874         * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
3875         * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
3876         Likewise.
3877         * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3878         * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
3879         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
3880         Likewise.
3881         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
3882         Likewise.
3883         * testsuite/20_util/synchronized_pool_resource/cons.cc:
3884         Likewise.
3885         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
3886         Likewise.
3887         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
3888         Likewise.
3889         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
3890         Likewise.
3891         * testsuite/20_util/synchronized_pool_resource/options.cc:
3892         Likewise.
3893         * testsuite/20_util/synchronized_pool_resource/release.cc:
3894         Likewise.
3895         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
3896         Likewise.
3897         * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
3898         Likewise.
3899         * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
3900         Likewise.
3901         * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
3902         Likewise.
3903         * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3904         Likewise.
3905         * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3906         Likewise.
3907         * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3908         Likewise.
3909         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3910         Likewise.
3911         * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3912         * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3913         Likewise.
3914         * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3915         Likewise.
3916         * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3917         Likewise.
3918         * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3919         * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3920         * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3921         * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3922         * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3923         * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3924         Likewise.
3925         * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3926         * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3927         Likewise.
3928         * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3929         * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3930         * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3931         Likewise.
3932         * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3933         Likewise.
3934         * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3935         Likewise.
3936         * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3937         Likewise.
3938         * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3939         Likewise.
3940         * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3941         Likewise.
3942         * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3943         Likewise.
3944         * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3945         Likewise.
3946         * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3947         * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3948         Likewise.
3949         * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3951 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3953         * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
3954         dg-options.
3955         * testsuite/29_atomics/atomic/is_always_lock_free.cc:
3956         * testsuite/29_atomics/atomic/requirements/typedefs.cc:
3957         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
3958         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
3959         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
3960         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
3961         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
3962         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
3963         Likewise.
3964         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
3965         Likewise.
3966         * testsuite/30_threads/shared_lock/70766.cc: Likewise.
3967         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3968         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
3969         Likewise.
3970         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3971         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3972         Likewise.
3973         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3974         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3975         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3976         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
3978 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3980         * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
3981         dg-options directive.
3982         * testsuite/20_util/any/assign/2.cc: Likewise.
3983         * testsuite/20_util/any/assign/emplace.cc: Likewise.
3984         * testsuite/20_util/any/assign/exception.cc: Likewise.
3985         * testsuite/20_util/any/assign/self.cc: Likewise.
3986         * testsuite/20_util/any/cons/1.cc: Likewise.
3987         * testsuite/20_util/any/cons/2.cc: Likewise.
3988         * testsuite/20_util/any/cons/90415.cc: Likewise.
3989         * testsuite/20_util/any/cons/92156.cc: Likewise.
3990         * testsuite/20_util/any/cons/aligned.cc: Likewise.
3991         * testsuite/20_util/any/cons/explicit.cc: Likewise.
3992         * testsuite/20_util/any/cons/in_place.cc: Likewise.
3993         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3994         * testsuite/20_util/any/make_any.cc: Likewise.
3995         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3996         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3997         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3998         * testsuite/20_util/any/misc/swap.cc: Likewise.
3999         * testsuite/20_util/any/modifiers/1.cc: Likewise.
4000         * testsuite/20_util/any/modifiers/83658.cc: Likewise.
4001         * testsuite/20_util/any/modifiers/92156.cc: Likewise.
4002         * testsuite/20_util/any/observers/type.cc: Likewise.
4003         * testsuite/20_util/any/requirements.cc: Likewise.
4004         * testsuite/20_util/any/typedefs.cc: Likewise.
4005         * testsuite/20_util/optional/77288.cc: Likewise.
4006         * testsuite/20_util/optional/84601.cc: Likewise.
4007         * testsuite/20_util/optional/assignment/1.cc: Likewise.
4008         * testsuite/20_util/optional/assignment/2.cc: Likewise.
4009         * testsuite/20_util/optional/assignment/3.cc: Likewise.
4010         * testsuite/20_util/optional/assignment/4.cc: Likewise.
4011         * testsuite/20_util/optional/assignment/5.cc: Likewise.
4012         * testsuite/20_util/optional/assignment/6.cc: Likewise.
4013         * testsuite/20_util/optional/assignment/7.cc: Likewise.
4014         * testsuite/20_util/optional/assignment/8.cc: Likewise.
4015         * testsuite/20_util/optional/assignment/9.cc: Likewise.
4016         * testsuite/20_util/optional/bad_access.cc: Likewise.
4017         * testsuite/20_util/optional/cons/77727.cc: Likewise.
4018         * testsuite/20_util/optional/cons/85642.cc: Likewise.
4019         * testsuite/20_util/optional/cons/copy.cc: Likewise.
4020         * testsuite/20_util/optional/cons/deduction.cc: Likewise.
4021         * testsuite/20_util/optional/cons/default.cc: Likewise.
4022         * testsuite/20_util/optional/cons/move.cc: Likewise.
4023         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4024         * testsuite/20_util/optional/cons/value.cc: Likewise.
4025         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
4026         * testsuite/20_util/optional/constexpr/cons/default.cc:
4027         Likewise.
4028         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
4029         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
4030         * testsuite/20_util/optional/constexpr/make_optional.cc:
4031         Likewise.
4032         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
4033         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
4034         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
4035         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
4036         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
4037         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
4038         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
4039         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
4040         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
4041         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
4042         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
4043         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
4044         * testsuite/20_util/optional/hash.cc: Likewise.
4045         * testsuite/20_util/optional/in_place.cc: Likewise.
4046         * testsuite/20_util/optional/make_optional.cc: Likewise.
4047         * testsuite/20_util/optional/nullopt.cc: Likewise.
4048         * testsuite/20_util/optional/observers/1.cc: Likewise.
4049         * testsuite/20_util/optional/observers/2.cc: Likewise.
4050         * testsuite/20_util/optional/observers/3.cc: Likewise.
4051         * testsuite/20_util/optional/observers/4.cc: Likewise.
4052         * testsuite/20_util/optional/observers/5.cc: Likewise.
4053         * testsuite/20_util/optional/observers/6.cc: Likewise.
4054         * testsuite/20_util/optional/relops/1.cc: Likewise.
4055         * testsuite/20_util/optional/relops/2.cc: Likewise.
4056         * testsuite/20_util/optional/relops/3.cc: Likewise.
4057         * testsuite/20_util/optional/relops/4.cc: Likewise.
4058         * testsuite/20_util/optional/relops/5.cc: Likewise.
4059         * testsuite/20_util/optional/relops/6.cc: Likewise.
4060         * testsuite/20_util/optional/relops/7.cc: Likewise.
4061         * testsuite/20_util/optional/requirements.cc: Likewise.
4062         * testsuite/20_util/optional/swap/1.cc: Likewise.
4063         * testsuite/20_util/optional/swap/2.cc: Likewise.
4064         * testsuite/20_util/optional/typedefs.cc: Likewise.
4065         * testsuite/20_util/variant/80165.cc: Likewise.
4066         * testsuite/20_util/variant/85183.cc: Likewise.
4067         * testsuite/20_util/variant/86874.cc: Likewise.
4068         * testsuite/20_util/variant/87431.cc: Likewise.
4069         * testsuite/20_util/variant/87619.cc: Likewise.
4070         * testsuite/20_util/variant/91807.cc: Likewise.
4071         * testsuite/20_util/variant/any.cc: Likewise.
4072         * testsuite/20_util/variant/compile.cc: Likewise.
4073         * testsuite/20_util/variant/deduction.cc: Likewise.
4074         * testsuite/20_util/variant/exception_safety.cc: Likewise.
4075         * testsuite/20_util/variant/hash.cc: Likewise.
4076         * testsuite/20_util/variant/index_type.cc: Likewise.
4077         * testsuite/20_util/variant/relops/89851.cc: Likewise.
4078         * testsuite/20_util/variant/relops/90008.cc: Likewise.
4079         * testsuite/20_util/variant/run.cc: Likewise.
4080         * testsuite/20_util/variant/visit.cc: Likewise.
4082 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4084         * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
4085         -std=gnu++17 from dg-options directive.
4086         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
4087         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
4088         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
4089         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
4090         * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
4091         * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
4092         * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
4093         * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
4094         Likewise.
4095         * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
4096         * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
4097         * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
4098         * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
4099         * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
4100         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
4101         Likewise.
4102         * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
4103         * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
4104         Likewise.
4105         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4106         Likewise.
4107         * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
4108         * testsuite/27_io/filesystem/operations/all.cc: Likewise.
4109         * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
4110         * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
4111         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
4112         * testsuite/27_io/filesystem/operations/create_directories.cc:
4113         Likewise.
4114         * testsuite/27_io/filesystem/operations/create_directory.cc:
4115         Likewise.
4116         * testsuite/27_io/filesystem/operations/create_symlink.cc:
4117         Likewise.
4118         * testsuite/27_io/filesystem/operations/current_path.cc:
4119         Likewise.
4120         * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
4121         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
4122         * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
4123         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
4124         * testsuite/27_io/filesystem/operations/last_write_time.cc:
4125         Likewise.
4126         * testsuite/27_io/filesystem/operations/permissions.cc:
4127         Likewise.
4128         * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
4129         * testsuite/27_io/filesystem/operations/read_symlink.cc:
4130         Likewise.
4131         * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
4132         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
4133         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
4134         * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
4135         * testsuite/27_io/filesystem/operations/resize_file.cc:
4136         Likewise.
4137         * testsuite/27_io/filesystem/operations/space.cc: Likewise.
4138         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
4139         * testsuite/27_io/filesystem/operations/symlink_status.cc:
4140         Likewise.
4141         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
4142         Likewise.
4143         * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
4144         Likewise.
4145         * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
4146         * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
4147         * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
4148         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
4149         * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
4150         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4151         * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
4152         * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
4153         * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
4154         * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
4155         * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
4156         * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
4157         * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
4158         * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
4159         * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
4160         * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
4161         * testsuite/27_io/filesystem/path/construct/default.cc:
4162         Likewise.
4163         * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
4164         * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
4165         * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
4166         * testsuite/27_io/filesystem/path/construct/string_view.cc:
4167         Likewise.
4168         * testsuite/27_io/filesystem/path/decompose/extension.cc:
4169         Likewise.
4170         * testsuite/27_io/filesystem/path/decompose/filename.cc:
4171         Likewise.
4172         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4173         Likewise.
4174         * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
4175         Likewise.
4176         * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
4177         Likewise.
4178         * testsuite/27_io/filesystem/path/decompose/root_name.cc:
4179         Likewise.
4180         * testsuite/27_io/filesystem/path/decompose/root_path.cc:
4181         Likewise.
4182         * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
4183         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4184         Likewise.
4185         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4186         * testsuite/27_io/filesystem/path/generation/normal.cc:
4187         Likewise.
4188         * testsuite/27_io/filesystem/path/generation/normal2.cc:
4189         Likewise.
4190         * testsuite/27_io/filesystem/path/generation/proximate.cc:
4191         Likewise.
4192         * testsuite/27_io/filesystem/path/generation/relative.cc:
4193         Likewise.
4194         * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
4195         * testsuite/27_io/filesystem/path/generic/generic_string.cc:
4196         Likewise.
4197         * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
4198         * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
4199         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4200         * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
4201         * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
4202         * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
4203         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
4204         Likewise.
4205         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
4206         Likewise.
4207         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
4208         Likewise.
4209         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
4210         Likewise.
4211         * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
4212         * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
4213         * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
4214         Likewise.
4215         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4216         * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
4217         * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
4218         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
4219         Likewise.
4220         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
4221         * testsuite/27_io/filesystem/path/query/empty_neg.cc:
4222         * testsuite/27_io/filesystem/path/query/has_extension.cc:
4223         Likewise.
4224         * testsuite/27_io/filesystem/path/query/has_filename.cc:
4225         Likewise.
4226         * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
4227         Likewise.
4228         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
4229         Likewise.
4230         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
4231         Likewise.
4232         * testsuite/27_io/filesystem/path/query/has_root_name.cc:
4233         Likewise.
4234         * testsuite/27_io/filesystem/path/query/has_root_path.cc:
4235         Likewise.
4236         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
4237         * testsuite/27_io/filesystem/path/query/is_absolute.cc:
4238         Likewise.
4239         * testsuite/27_io/filesystem/path/query/is_relative.cc:
4240         Likewise.
4241         * testsuite/experimental/filesystem/path/construct/string_view.cc:
4242         Likewise.
4244 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4246         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4247         Remove -std=gnu++17 from dg-options.
4248         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4249         Likewise.
4250         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4251         Likewise.
4252         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4253         Likewise.
4254         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4255         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4256         Likewise.
4257         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4258         Likewise.
4259         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4260         Likewise.
4261         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4262         Likewise.
4263         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4264         Likewise.
4265         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4266         Likewise.
4267         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4268         Likewise.
4269         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4270         Likewise.
4271         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4272         Likewise.
4273         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4274         Likewise.
4275         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4276         Likewise.
4277         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4278         Likewise.
4279         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4280         Likewise.
4281         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4282         Likewise.
4283         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4284         Likewise.
4285         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4286         Likewise.
4287         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4288         Likewise.
4289         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4290         Likewise.
4291         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4292         Likewise.
4293         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4294         Likewise.
4295         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4296         Likewise.
4297         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4298         Likewise.
4299         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4300         Likewise.
4301         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4302         Likewise.
4303         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4304         Likewise.
4305         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4306         Likewise.
4307         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
4308         Likewise.
4309         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
4310         Likewise.
4311         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
4312         Likewise.
4313         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
4314         Likewise.
4315         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
4316         Likewise.
4317         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
4318         Likewise.
4319         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
4320         Likewise.
4321         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4322         Likewise.
4323         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
4324         Likewise.
4325         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
4326         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
4327         Likewise.
4328         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
4329         Likewise.
4330         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
4331         Likewise.
4332         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
4333         Likewise.
4334         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
4335         Likewise.
4336         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
4337         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
4338         * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
4339         * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
4340         * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
4341         * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
4342         * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
4343         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
4344         Likewise.
4345         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
4346         * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
4347         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4348         Likewise.
4349         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
4350         Likewise.
4352 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4354         * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
4355         for additional errors in C++20.
4356         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4357         Likewise.
4358         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
4359         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4361 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4363         * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
4364         clash with std::any.
4366 2021-05-07  Jonathan Wakely  <jwakely@redhat.com>
4368         * include/std/istream (__rvalue_stream_extraction_t): Replace
4369         use of __rval_streamable.
4370         * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
4371         (__rval_streamable): Remove.
4372         (_Require_derived_from_ios_base, __derived_from_ios_base): New
4373         helper for checking constraints.
4374         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
4375         reference to the wrong subclause of the standard.
4376         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4377         Likewise.
4378         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4379         Likewise.
4380         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4381         Likewise.
4382         * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
4383         New test.
4384         * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
4385         errors.
4387 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
4389         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
4390         Improve static_assert messages.
4391         * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
4392         * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
4394 2021-05-06  Patrick Palka  <ppalka@redhat.com>
4396         * include/std/ranges (filter_view::_Iterator::base): Make the
4397         const& overload unconstrained and return a const reference as
4398         per LWG 3533.  Make unconditionally noexcept.
4399         (transform_view::_Iterator::base): Likewise.
4400         (elements_view::_Iterator::base): Likewise.
4402 2021-05-06  Patrick Palka  <ppalka@redhat.com>
4404         * include/bits/stl_iterator.h (move_iterator::base): Make the
4405         const& overload unconstrained and return a const reference as
4406         per LWG 3391.  Make unconditionally noexcept.
4407         (counted_iterator::base): Likewise.
4408         * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
4409         * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
4410         has_member_base concept to decay-copy the result of base().
4412 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
4414         * include/std/type_traits (remove_cvref_t): Define in terms of
4415         remove_cvref.
4416         * testsuite/20_util/remove_cvref/value.cc: Check alias.
4418 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
4420         Revert:
4421         2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
4423         * include/std/charconv (__from_chars_alnum): Pass unsigned
4424         char to std::isdigit.
4426 2021-05-05  Patrick Palka  <ppalka@redhat.com>
4428         * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
4429         Remove constraints on this partial specialization.
4430         * include/std/ranges (enable_borrowed_range<iota_view>):
4431         Likewise.
4433 2021-05-05  Patrick Palka  <ppalka@redhat.com>
4435         * include/std/ranges (transform_view::_Iterator::iter_swap):
4436         Remove as per LWG 3520.
4437         (join_view::_Iterator::iter_swap): Add indirectly_swappable
4438         constraint as per LWG 3517.
4440 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
4442         * testsuite/20_util/function_objects/invoke/3.cc: Check feature
4443         test macro.
4444         * testsuite/20_util/function_objects/invoke/version.cc: New test.
4446 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
4448         * include/std/charconv (__from_chars_alnum): Pass unsigned
4449         char to std::isdigit.
4451 2021-05-05  Corentin Gay  <gay@adacore.com>
4453         * acinclude.m4: Add VxWorks-specific case for the
4454         configuration of ctypes.
4455         * configure: Regenerate.
4456         * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
4457         version.
4458         * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
4459         * config/os/vxworks/ctype_configure_char.cc: Likewise.
4460         * config/os/vxworks/ctype_inline.h: Likewise.
4461         * testsuite/28_regex/traits/char/isctype.cc: Defines
4462         NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
4463         * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
4465 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
4467         * include/std/future (promise::set_value): Check for existence
4468         of shared state before dereferncing it.
4469         (promise::set_exception, promise::set_value_at_thread_exit)
4470         (promise::set_exception_at_thread_exit): Likewise.
4471         (promise<R&>::set_value, promise<R&>::set_exception)
4472         (promise<R&>::set_value_at_thread_exit)
4473         (promise<R&>::set_exception_at_thread_exit): Likewise.
4474         (promise<void>::set_value, promise<void>::set_exception)
4475         (promise<void>::set_value_at_thread_exit)
4476         (promise<void>::set_exception_at_thread_exit): Likewise.
4477         * testsuite/30_threads/promise/members/at_thread_exit2.cc:
4478         Remove unused variable.
4480 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
4482         * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
4483         Do not do arithmetic on null pointer.
4485 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
4487         * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
4488         (find_key_pointer(key_const_reference, false_type))
4489         (find_key_pointer(key_const_reference, true_type)): Do not
4490         dereference null pointer.
4492 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
4494         * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
4495         overflow.
4496         * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
4497         non-zero value to null pointer.
4498         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
4499         Use past-the-end iterator for result.
4500         * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
4501         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
4503 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
4505         PR libstdc++/100384
4506         * include/std/variant (__get_t): New alias template yielding the
4507         return type of std::get<N> on a variant.
4508         (__visit_result_t): New alias template yielding the result of
4509         std::visit.
4510         (__same_types): Move into namespace __detail::__variant.
4511         (__check_visitor_results): Likewise. Use __invoke_result_t and
4512         __get_t.
4513         (__check_visitor_result): Remove.
4514         (visit): Use __visit_result_t for return type.
4515         * testsuite/20_util/variant/100384.cc: New test.
4517 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
4519         * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
4520         checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
4521         * config.h.in: Regenerate.
4522         * configure: Regenerate.
4523         * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
4524         * include/bits/random.h (_Select_uint_least_t<s, 1>):
4525         Use __SIZEOF_INT128__ to decide whether to use __int128.
4526         * include/std/charconv (__to_chars_unsigned_type): Likewise.
4528 2021-05-03  Gerald Pfeifer  <gerald@pfeifer.com>
4530         * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4531         * doc/html/manual/facets.html: Regenerate.
4533 2021-04-30  Patrick Palka  <ppalka@redhat.com>
4535         * include/std/ranges (__detail::__non_propating_cache): Define
4536         as per P2328.
4537         (join_view): Remove constraints on the value and reference types
4538         of the wrapped iterator type as per P2328.
4539         (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
4540         (join_view::_Iterator::operator++): Likewise.
4541         (join_view::_M_inner): Use __non_propating_cache as per P2328.
4542         Remove now-redundant use of __maybe_present_t.
4543         * testsuite/std/ranges/adaptors/join.cc: Include <array>.
4544         (test10): New test.
4546 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4548         * include/bits/basic_string.h (__cpp_lib_constexpr_string):
4549         Only define for C++17 and later.
4550         * include/std/version (__cpp_lib_semaphore): Fix condition
4551         to match the one in <semaphore>.
4553 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4555         * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
4556         * config.h.in: Regenerate.
4557         * configure: Regenerate.
4558         * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
4559         * include/bits/postypes.h: Remove include of <stdint.h> and
4560         definition/undefinition of the __STDC_LIMIT_MACROS and
4561         __STDC_CONSTANT_MACROS macros.
4562         (streamoff): Use __INT64_TYPE__ if defined.
4564 2021-04-30  Patrick Palka  <ppalka@redhat.com>
4566         * include/std/ranges (split_view::_InnerIter::operator++):
4567         Depend on _Base instead of _Vp directly, as per LWG 3532.
4569 2021-04-30  Patrick Palka  <ppalka@redhat.com>
4571         * include/bits/ranges_util.h (subrange::subrange): Avoid
4572         list-initialization in delegating constructor.
4573         * include/std/ranges (single_view): Replace implicit guide
4574         with explicit deduction guide that decays its argument.
4575         (_Single::operator()): Avoid CTAD when constructing the
4576         single_view object.
4577         (_Iota::operator()): Avoid list-initialization.
4578         (__detail::__can_filter_view, _Filter::operator()): Likewise.
4579         (__detail::__can_transform_view, _Transform::operator()): Likewise.
4580         (take_view::begin): Likewise.
4581         (__detail::__can_take_view, _Take::operator()): Likewise.
4582         (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
4583         (__detail::__can_drop_view, _Drop::operator()): Likewise.
4584         (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
4585         (split_view::split_view): Use views::single when initializing
4586         _M_pattern.
4587         (__detail::__can_split_view, _Split::operator()): Avoid
4588         list-initialization.
4589         (_Counted::operator()): Likewise.
4590         * testsuite/std/ranges/p2367.cc: New test.
4592 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4594         PR libstdc++/60497
4595         * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
4596         std::addressof.
4597         * include/bits/basic_string.tcc (basic_string::swap)
4598         (basic_string::assign): Likewise.
4599         * include/bits/deque.tcc (deque::operator=(const deque&)):
4600         Likewise.
4601         * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
4602         Likewise.
4603         * include/bits/vector.tcc (vector::operator=(const vector&)):
4604         Likewise.
4606 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4608         * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
4609         per LWG 1203.
4610         * include/std/ostream (operator<<(Ostream&&, const x&)):
4611         Likewise.
4612         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
4613         Adjust dg-error pattern.
4614         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
4615         Likewise.
4616         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
4617         is_extractable trait to replace std::__is_extractable. Make it
4618         work with rvalue streams as well as lvalues, to replace f() and
4619         g() helper functions.
4620         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4621         Likewise.
4622         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4623         Define is_insertable trait to replace std::__is_insertable. Make
4624         it work with rvalue streams as well as lvalues, to replace f()
4625         and g() helper functions.
4626         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4627         Likewise.
4628         * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
4629         errors from new constraints.
4630         * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
4631         which are no longer expected to compile.
4632         * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
4633         Verify LWG 1203 changes.
4635 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4637         PR libstdc++/100285
4638         * include/experimental/socket (__basic_socket_impl::set_option)
4639         (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
4640         Just set error code.
4641         * testsuite/experimental/net/socket/socket_base.cc: CHeck
4642         for <sys/socket.h> not <socket.h>.
4644 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4646         PR libstdc++/100180
4647         PR libstdc++/100286
4648         PR libstdc++/100351
4649         * testsuite/experimental/net/internet/address/v4/comparisons.cc:
4650         Use new effective-target keyword.
4651         * testsuite/experimental/net/internet/address/v4/cons.cc:
4652         Likewise.
4653         * testsuite/experimental/net/internet/address/v4/creation.cc:
4654         Likewise.
4655         * testsuite/experimental/net/internet/address/v4/members.cc:
4656         Likewise.
4657         * testsuite/experimental/net/internet/address/v6/members.cc:
4658         Likewise.
4659         * testsuite/experimental/net/internet/resolver/base.cc:
4660         Likewise.
4661         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
4662         Likewise.
4663         * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
4664         Likewise.
4665         * testsuite/experimental/net/internet/socket/opt.cc:
4666         Likewise.
4667         * testsuite/experimental/net/internet/tcp.cc:
4668         Likewise.
4669         * testsuite/experimental/net/internet/udp.cc:
4670         Likewise.
4671         * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
4672         New proc to check net_ts_ip et.
4674 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4676         PR libstdc++/97930
4677         * testsuite/20_util/pair/requirements/structural.cc: New test.
4679 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4681         * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
4682         new definitions for constructors and assignment operators using
4683         concepts for constraints.
4684         * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
4685         later.
4686         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
4687         expected error messages to also match C++20 errors.
4689 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4691         PR libstdc++/99957
4692         * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
4693         Combine and replace with ...
4694         (_PCC::_DeprConsPair): New SFINAE helper function.
4695         (pair): Merge preprocessor blocks so that all C++03 members
4696         are defined together at the end.
4697         (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
4698         Replace _T1 and _T2 parameters with __null_ptr_constant and
4699         adjust constraints.
4700         * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
4701         * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
4702         * testsuite/20_util/pair/cons/99957.cc: New test.
4704 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4706         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
4707         * include/std/version (__cpp_lib_constexpr_string): Define.
4708         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4709         Check for __cpp_lib_constexpr_string.
4710         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
4711         Likewise.
4712         * testsuite/21_strings/char_traits/requirements/version.cc: New test.
4714 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4716         * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
4717         dealing with errors. Use '@' to prevent shell command being
4718         echoed.
4719         * doc/Makefile.in: Regenerate.
4721 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4723         PR libstdc++/100298
4724         * include/bits/std_thread.h (thread::hardware_concurrency): Add
4725         missing noexcept to inline definition for non-gthreads targets.
4727 2021-04-28  Patrick Palka  <ppalka@redhat.com>
4729         PR libstdc++/100187
4730         PR libstdc++/100237
4731         PR libstdc++/100249
4732         PR libstdc++/100287
4733         * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
4734         the __value_comp lambda an explicit bool return type.
4735         (__is_permutation_fn::operator()): Give the __proj_scan local
4736         variable auto&& return type.  Give the __comp_scan lambda an
4737         explicit bool return type.
4738         (__remove_fn::operator()): Give the __pred lambda an explicit
4739         bool return type.
4740         (__partition_fn::operator()): Don't std::move __first twice
4741         when returning an empty subrange.
4742         (__min_fn::operator()): Don't std::move __comp.
4743         (__max_fn::operator()): Likewise.
4744         (__minmax_fn::operator()): Likewise.
4746 2021-04-27  Patrick Palka  <ppalka@redhat.com>
4748         PR libstdc++/100290
4749         * include/std/ranges (join_view::_Iterator::operator++): Correct
4750         the return type of the lambda to avoid returning a copy of
4751         _M_parent->_M_inner.
4752         * testsuite/std/ranges/adaptors/join.cc (test10): New test.
4754 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
4756         Revert:
4757         2021-04-22  Jakub Jelinek  <jakub@redhat.com>
4759         PR target/100182
4760         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4761         ia32.
4762         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4763         ia32.
4765 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
4767         * include/experimental/internet (address_v6::bytes_type): Adjust
4768         formatting.
4769         (basic_endpoint): Define _M_is_v6() to put all checks for
4770         AF_INET6 in one place.
4771         (basic_endpoint::resize): Simplify.
4772         (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
4773         (operator!=(const tcp&, const tcp&)): Likewise.
4774         (operator==(const udp&, const udp&)): Likewise.
4775         (operator!=(const udp&, const udp&)): Likewise.
4776         * testsuite/experimental/net/internet/tcp.cc: New test.
4777         * testsuite/experimental/net/internet/udp.cc: New test.
4779 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
4781         PR libstdc++/100286
4782         * include/experimental/internet (resolver_errc, resolver_category())
4783         (make_error_code, make_error_condition): Define unconditionally,
4784         only make enumerators and use of gai_strerror depend on the
4785         availability of <netdb.h>.
4786         (address_v4::to_string): Use correct constant for string length.
4787         (address_v4::to_string, address_v6::to_string): Define
4788         unconditionally, throw if unsupported.
4789         (make_address_v4, make_address_v6): Define unconditionally.
4790         Return an error if unsupported.
4791         (tcp, udp, v6_only, unicast::hops, multicast::*): Define
4792         conditionally,
4793         * testsuite/experimental/net/internet/socket/opt.cc: Check for
4794         <netinet/in.h> and <netinet/tcp.h> before using types from
4795         namespace net::ip.
4797 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
4799         PR libstdc++/100285
4800         * include/experimental/internet (resolver_base::flags):
4801         Define overloaded operators as hidden friends.
4802         * include/experimental/socket (socket_base::message_flags):
4803         Likewise.
4805 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4807         * include/experimental/internet (tcp::no_delay, v6_only)
4808         (unicast::hops, multicast::hops, multicast::enable_loopback):
4809         Change access of base class and static data members. Add
4810         using-declaration for __socket_crtp::operator=(_Tp).
4811         (multicast::__mcastopt): New type.
4812         (multicast::join_group, multicast::leave_group): Derive from
4813         __mcastopt for common implementation.
4814         * include/experimental/socket: Add comment.
4815         * testsuite/experimental/net/internet/socket/opt.cc: New test.
4816         * testsuite/experimental/net/socket/socket_base.cc: Check for
4817         protected constructor/destructor of socket_base. Check for
4818         explicit constructors of socket option classes.
4820 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4822         * include/experimental/bits/net.h (__socket_base): Add
4823         bool template parameter to allow BooleanSocketOption and
4824         IntegerSocketOption to have different __socket_base<int>
4825         base classes.
4826         (__socket_base<bool>): Adjust base class.
4827         (__socket_base<int>): Add partial specialization.
4828         (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
4829         * include/experimental/socket (socket_base::broadcast)
4830         (socket_base::debug, socket_base::do_not_route)
4831         (socket_base::keep_alive, socket_base::linger)
4832         (socket_base::out_of_band_inline)
4833         (socket_base::receive_buffer_size)
4834         (socket_base::receive_low_watermark)
4835         (socket_base::reuse_address, socket_base::send_buffer_size)
4836         (socket_base::send_low_watermark): Add using-declaration for
4837         __socket_crtp::operator=(_Tp).
4838         * testsuite/experimental/net/socket/socket_base.cc: Check
4839         properties of socket option types.
4841 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4843         * include/experimental/internet (resolver_base::flags): Remove
4844         enumerators. Initialize constants directly with desired values.
4845         Make all operators constexpr and noexcept.
4846         * testsuite/experimental/net/internet/resolver/base.cc: Use
4847         __gnu_test::test_bitmask_values for bitmask type. Check
4848         construction and destruction is protected.
4850 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4852         * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
4854 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4856         PR libstdc++/100259
4857         * include/experimental/internet (net::ip::make_error_code)
4858         (net::ip::make_error_condition, net::ip::make_network_v4)
4859         (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
4861 2021-04-24  David Edelsohn  <dje.gcc@gmail.com>
4863         * testsuite/lib/dg-options.exp (atomic_link_flags): New.
4864         (add_options_for_libatomic): Use atomic_link_flags.
4866 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
4868         PR libstdc++/100180
4869         * include/experimental/io_context (io_context): Define
4870         dummy_pollfd type so that most member functions still compile
4871         without <poll.h> and struct pollfd.
4873 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
4875         * include/experimental/io_context (io_context::async_wait): Add
4876         comment.
4877         * include/experimental/socket (basic_socket::async_connect):
4878         Cast wait_type constant to int.
4879         (basic_datagram_socket::async_receive): Likewise.
4880         (basic_datagram_socket::async_receive_from): Likewise.
4881         (basic_datagram_socket::async_send): Likewise.
4882         (basic_datagram_socket::async_send_to): Likewise.
4883         (basic_stream_socket::async_receive): Likewise.
4884         (basic_stream_socket::async_send): Likewise. Use io_context
4885         parameter directly, instead of via an executor.
4886         (basic_socket_acceptor::async_accept): Likewise.
4888 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
4890         * include/experimental/socket (socket_base::shutdown_type):
4891         (socket_base::wait_type, socket_base::message_flags):
4892         Remove enumerators. Initialize constants directly with desired
4893         values.
4894         (socket_base::message_flags): Make all operators constexpr and
4895         noexcept.
4896         * testsuite/util/testsuite_common_types.h (test_bitmask_values):
4897         New test utility.
4898         * testsuite/experimental/net/socket/socket_base.cc: New test.
4900 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
4902         * config/os/aix/atomicity.h: Delete.
4904 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4906         * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4907         Handle system_clock as well as steady_clock.
4908         * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4909         * testsuite/30_threads/semaphore/try_acquire_until.cc:
4910         Re-enable.
4912 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4914         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4915         options for libatomic.
4917 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4919         * config/os/gnu-linux/os_defines.h: Fix type in comment.
4921 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4923         PR libstdc++/99006
4924         * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4925         is not an array type.
4926         * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4927         * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4929 2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
4931         * include/bits/atomic_wait.h: Always notify waiters in the
4932         case of 'bare' address notification.
4934 2021-04-22  Jakub Jelinek  <jakub@redhat.com>
4936         PR target/100182
4937         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4938         ia32.
4939         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4940         ia32.
4942 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4944         PR libstdc++/100179
4945         * include/bits/semaphore_base.h: Remove #error.
4946         * include/std/semaphore: Do not define anything unless one of
4947         the implementations is available.
4949 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
4951         * include/bits/semaphore_base.h: Always reload __old in
4952         __atomic_semaphore::_S_do_try_acquire().
4953         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4954         re-enable testcase.
4956 2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
4957             Jonathan Wakely  <jwakely@redhat.com>
4959         PR libstdc++/99453
4960         * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4961         * python/Makefile.in: Regenerate.
4963 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
4965         * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4966         member to __platform_wait.
4968 2021-04-21  Jonathan Wakely  <jwakely@redhat.com>
4970         * include/std/latch: Replace tab characters in license text.
4971         * include/std/semaphore: Likewise.
4973 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
4975         PR libstdc++/100164
4976         * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
4977         rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
4978         * configure: Regenerated.
4979         * config.h.in: Regenerated.
4981 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
4983         * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
4984         test for targets not using futexes for semaphores.
4985         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4986         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4987         Disable for all targets.
4989 2021-04-20  Thomas Rodgers  <trodgers@redhat.com>
4991         * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
4992         * include/Makefile.in: Regenerate.
4993         * include/bits/this_thread_sleep.h: New file.
4994         * include/bits/atomic_base.h: Adjust all calls
4995         to __atomic_wait/__atomic_notify for new call signatures.
4996         * include/bits/atomic_timed_wait.h: Extensive rewrite.
4997         * include/bits/atomic_wait.h: Likewise.
4998         * include/bits/semaphore_base.h: Adjust all calls
4999         to __atomic_wait/__atomic_notify for new call signatures.
5000         * include/std/atomic: Likewise.
5001         * include/std/barrier: Likewise.
5002         * include/std/latch: Likewise.
5003         * include/std/semaphore: Likewise.
5004         * include/std/thread (this_thread::sleep_for)
5005         (this_thread::sleep_until): Move to new header.
5006         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
5007         test.
5008         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5009         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5010         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5011         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
5012         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
5013         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
5015 2021-04-20  Patrick Palka  <ppalka@redhat.com>
5017         PR libstdc++/95983
5018         * include/bits/stl_iterator.h (__detail::__move_iter_cat):
5019         Define.
5020         (move_iterator): Derive from the above in C++20 in order to
5021         conditionally define iterator_category as per P2259.
5022         (move_iterator::__base_cat): No longer used, so remove.
5023         (move_iterator::iterator_category): Remove in C++20.
5024         (__detail::__common_iter_use_postfix_proxy): Define.
5025         (common_iterator::_Proxy): Rename to ...
5026         (common_iterator:__arrow_proxy): ... this.
5027         (common_iterator::__postfix_proxy): Define as per P2259.
5028         (common_iterator::operator->): Adjust.
5029         (common_iterator::operator++): Adjust as per P2259.
5030         (iterator_traits<common_iterator>::_S_iter_cat): Define.
5031         (iterator_traits<common_iterator>::iterator_category): Change as
5032         per P2259.
5033         (__detail::__counted_iter_value_type): Define.
5034         (__detail::__counted_iter_concept): Define.
5035         (__detail::__counted_iter_cat): Define.
5036         (counted_iterator): Derive from the above three classes in order
5037         to conditionally define value_type, iterator_concept and
5038         iterator category respectively as per P2259.
5039         (counted_iterator::operator->): Define as per P2259.
5040         (incrementable_traits<counted_iterator>): Remove as per P2259.
5041         (iterator_traits<counted_iterator>): Adjust as per P2259.
5042         * include/std/ranges (__detail::__iota_view_iter_cat): Define.
5043         (iota_view::_Iterator): Derive from the above in order to
5044         conditionally define iterator_category as per P2259.
5045         (iota_view::_S_iter_cat): Rename to ...
5046         (iota_view::_S_iter_concept): ... this.
5047         (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
5048         (iota_view::iterator_category): Remove.
5049         (__detail::__filter_view_iter_cat): Define.
5050         (filter_view::_Iterator): Derive from the above in order to
5051         conditionally define iterator_category as per P2259.
5052         (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
5053         (filter_view::_Iterator::iterator_category): Remove.
5054         (transform_view::_Base): Define.
5055         (transform_view::__iter_cat): Define.
5056         (transform_view::_Iterator): Derive from the above in order to
5057         conditionally define iterator_category as per P2259.
5058         (transform_view::_Iterator::_Base): Just alias
5059         transform_view::_Base.
5060         (transform_view::_Iterator::_S_iter_cat): Move to struct
5061         transform_view::__iter_cat.
5062         (transform_view::_Iterator::iterator_category): Remove.
5063         (transform_view::_Sentinel::_Base): Just alias
5064         transform_view::_Base.
5065         (join_view::_Base): Define.
5066         (join_view::_Outer_iter): Define.
5067         (join_view::_Inner_iter): Define.
5068         (join_view::_S_ref_is_glvalue): Define.
5069         (join_view::__iter_cat): Define.
5070         (join_view::_Iterator): Derive from it in order to conditionally
5071         define iterator_category as per P2259.
5072         (join_view::_Iterator::_Base): Just alias join_view::_Base.
5073         (join_view::_Iterator::_S_ref_is_glvalue): Just alias
5074         join_view::_S_ref_is_glvalue.
5075         (join_view::_Iterator::_S_iter_cat): Move to struct
5076         transform_view::__iter_cat.
5077         (join_view::_Iterator::_Outer_iter): Just alias
5078         join_view::_Outer_iter.
5079         (join_view::_Iterator::_Inner_iter): Just alias
5080         join_view::_Inner_iter.
5081         (join_view::_Iterator::iterator_category): Remove.
5082         (join_view::_Sentinel::_Base): Just alias join_view::_Base.
5083         (__detail::__split_view_outer_iter_cat): Define.
5084         (__detail::__split_view_inner_iter_cat): Define.
5085         (split_view::_Base): Define.
5086         (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
5087         in order to conditionally define iterator_category as per P2259.
5088         (split_view::_Outer_iter::iterator_category): Remove.
5089         (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
5090         in order to conditionally define iterator_category as per P2259.
5091         (split_view::_Inner_iter::_S_iter_cat): Move to
5092         __split_view_inner_iter_cat.
5093         (split_view::_Inner_iter::iterator_category): Remove.
5094         (elements_view::_Base): Define.
5095         (elements_view::__iter_cat): Define.
5096         (elements_view::_Iterator): Derive from the above in order to
5097         conditionall define iterator_category as per P2259.
5098         (elements_view::_Iterator::_Base): Just alias
5099         elements_view::_Base.
5100         (elements_view::_Iterator::_S_iter_concept)
5101         (elements_view::_Iterator::iterator_concept): Define as per
5102         P2259.
5103         (elements_view::_Iterator::iterator_category): Remove.
5104         (elements_view::_Sentinel::_Base): Just alias
5105         elements_view::_Base.
5106         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5107         Adjust constraints on iterator_traits<counted_iterator>.
5108         * testsuite/std/ranges/p2259.cc: New test.
5110 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
5112         PR libstdc++/100146
5113         * include/std/charconv (__cpp_lib_to_chars): Define
5114         conditionally.
5115         * include/std/version (__cpp_lib_to_chars): Likewise..
5116         * testsuite/20_util/from_chars/4.cc: Only check feature test
5117         macro, not _GLIBCXX_HAVE_USELOCALE.
5118         * testsuite/20_util/from_chars/5.cc: Likewise.
5119         * testsuite/20_util/from_chars/6.cc: Likewise.
5120         * testsuite/20_util/to_chars/long_double.cc: Likewise.
5122 2021-04-20  Jakub Jelinek  <jakub@redhat.com>
5124         * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
5125         versions with _IEEE128_ substring are found, set ieee_version_found
5126         to true.  Ignore missing symbols with _IEEE128_ in version name if
5127         !ieee_version_found.  Use i->first as version_name instead of
5128         i->second.version_name if the latter is empty.
5129         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5131 2021-04-19  H.J. Lu  <hjl.tools@gmail.com>
5133         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
5134         Updated.
5136 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
5138         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5139         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5141 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
5143         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5144         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5145         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
5146         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5147         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5148         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5150 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
5152         * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
5153         add libatomic options for 32-bit sparc*-*-linux-gnu.
5155 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
5157         PR libstdc++/96657
5158         * libsupc++/Makefile.am: Add atomicity.cc here.
5159         * src/c++98/Makefile.am: Remove it from here.
5160         * libsupc++/Makefile.in: Regenerate.
5161         * src/c++98/Makefile.in: Regenerate.
5162         * testsuite/18_support/exception_ptr/96657.cc: New test.
5164 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
5166         PR libstdc++/100060
5167         * include/std/bit: Only include <ext/numeric_traits.h> for
5168         hosted build, use <limits> otherwise.
5170 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
5172         * doc/xml/manual/backwards_compatibility.xml: Remove porting
5173         notes for libg++ and libstdc++-v2, and bibliography.
5174         * doc/html/*: Regenerated.
5176 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
5178         PR libstdc++/100044
5179         * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
5180         Remove helper concept.
5181         (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
5182         deduction guides, as per LWG 3404.
5183         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
5184         template argument deduction fails.
5186 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
5188         * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
5189         Adjust expected error for C++20 mode.
5190         * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
5191         Likewise.
5193 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
5195         PR libstdc++/99995
5196         * testsuite/17_intro/headers/c++1998/49745.cc: Include all
5197         standard headers and XFAIL for effective-target c++20.
5199 2021-04-09  François Dumont  <fdumont@gcc.gnu.org>
5201         PR libstdc++/99402
5202         * include/debug/helper_functions.h (__can_advance(_InputIterator,
5203         const std::pair<_Diff, _Distance_precision>&, int)): New.
5204         (__can_advance(const _Safe_iterator<>&,
5205         const std::pair<_Diff, _Distance_precision>&, int)): New.
5206         * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
5207         use latter.
5208         (__glibcxx_check_can_increment_range): Adapt to use latter.
5209         (__glibcxx_check_can_decrement_range): Likewise.
5210         * include/debug/safe_iterator.h
5211         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5212         int)): New.
5213         (__can_advance(const _Safe_iterator<>&,
5214         const std::pair<_Diff, _Distance_precision>&, int)): New.
5215         * include/debug/safe_iterator.tcc
5216         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5217         int)): New.
5218         (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
5219         std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
5220         __dp_sign_max_size.
5221         (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
5222         (__copy_move_backward_a): Likewise.
5223         (__equal_aux): Likewise.
5224         * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
5225         const std::pair<_Diff, _Distance_precision>&, int)): New.
5226         (__can_advance(const std::move_iterator<>&,
5227         const std::pair<_Diff, _Distance_precision>&, int)): New.
5228         * testsuite/25_algorithms/copy/debug/99402.cc: New test.
5230 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
5232         PR libstdc++/99985
5233         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
5234         to be a valid constexpr function in C++11.
5235         * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
5237 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
5239         * include/bits/fs_fwd.h: Fix doxygen group command.
5240         * include/bits/streambuf_iterator.h: Likewise.
5241         * include/bits/uses_allocator_args.h: Likewise.
5242         * include/std/memory: Likewise.
5243         * include/tr1/complex: Likewise.
5245 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
5247         * include/bits/basic_string.h: Tweak doxygen comment.
5249 2021-04-08  Patrick Palka  <ppalka@redhat.com>
5251         * include/std/ranges (__detail::find): Define.
5252         (split_view::_OuterIter::operator++): Apply proposed resolution
5253         of LWG 3505.
5254         * testsuite/std/ranges/adaptors/split.cc (test10): New test.
5256 2021-04-08  Patrick Palka  <ppalka@redhat.com>
5258         * include/std/ranges (__detail::find_if): Simplify.
5259         (__detail::find_if_not): Likewise.
5260         (__detail::min): Remove.
5261         (__detail::mismatch): Simplify.
5262         (take_view::size): Use std::min instead of __detail::min.
5264 2021-04-08  Patrick Palka  <ppalka@redhat.com>
5266         * include/std/ranges (__detail::__returnable_element): New
5267         concept.
5268         (elements_view): Use this concept in its constraints.  Add
5269         missing private access specifier.
5270         (elements_view::_S_get_element): Define as per LWG 3502.
5271         (elements_view::operator*, elements_view::operator[]): Use
5272         _S_get_element.
5273         (elements_view::operator++): Remove unnecessary constraint
5274         as per LWG 3492.
5275         * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
5277 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
5279         * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
5280         out-of-memory error in log file.
5281         * doc/Makefile.in: Regenerate.
5283 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
5285         * configure: Regenerate.
5287 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
5289         * include/bits/random.h: Fix doxygen group commands.
5290         * include/bits/regex_constants.h: Likewise.
5291         * include/tr1/random.h: Likewise.
5293 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
5295         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
5296         New function to determine noexcept-specifier for move
5297         constructors.
5298         (_Hashtable): Use _S_nothrow_move() on move constructors.
5299         * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
5300         Correct static assertion message.
5301         * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
5302         Likewise.
5303         * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
5304         Likewise.
5305         * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
5306         Likewise.
5308 2021-04-08  Patrick Palka  <ppalka@redhat.com>
5310         PR libstdc++/98384
5311         * testsuite/20_util/to_chars/long_double.cc: Don't run the test
5312         on targets without a large long double.  XFAIL the execution on
5313         targets with a non-conforming printf.
5315 2021-04-08  Patrick Palka  <ppalka@redhat.com>
5317         PR libstdc++/99433
5318         * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
5319         (__adaptor::__adaptor_invocable): New concept.
5320         (__adaptor::__adaptor_partial_app_viable): New concept.
5321         (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
5322         non-template base class.
5323         (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
5324         class template.
5325         (__adaptor::_Partial): New class template that represents
5326         partial application of a range adaptor non-closure.
5327         (__adaptor::__pipe_invocable): New concept.
5328         (__adaptor::_Pipe): New class template.
5329         (__detail::__can_ref_view): New concept.
5330         (__detail::__can_subrange): New concept.
5331         (all): Replace the lambda here with ...
5332         (_All): ... this functor.  Add appropriate constraints.
5333         (__detail::__can_filter_view): New concept.
5334         (filter, _Filter): As in all/_All.
5335         (__detail::__can_transform): New concept.
5336         (transform, _Transform): As in all/_All.
5337         (__detail::__can_take_view): New concept.
5338         (take, _Take): As in all/_All.
5339         (__detail::__can_take_while_view): New concept.
5340         (take_while, _TakeWhile): As in all/_All.
5341         (__detail::__can_drop_view): New concept.
5342         (drop, _Drop): As in all/_All.
5343         (__detail::__can_drop_while_view): New concept.
5344         (drop_while, _DropWhile): As in all/_All.
5345         (__detail::__can_join_view): New concept.
5346         (join, _Join): As in all/_All.
5347         (__detail::__can_split_view): New concept.
5348         (split, _Split): As in all/_All.  Rename template parameter
5349         _Fp to _Pattern.
5350         (__detail::__already_common): New concept.
5351         (__detail::__can_common_view): New concept.
5352         (common, _Common): As in all/_All.
5353         (__detail::__can_reverse_view): New concept.
5354         (reverse, _Reverse): As in all/_All.
5355         (__detail::__can_elements_view): New concept.
5356         (elements, _Elements): As in all/_All.
5357         (keys, values): Adjust.
5358         * testsuite/std/ranges/adaptors/99433.cc: New test.
5359         * testsuite/std/ranges/adaptors/all.cc: No longer expect that
5360         adding empty range adaptor closure objects to a pipeline doesn't
5361         increase the size of the pipeline.
5362         (test05): New test.
5363         * testsuite/std/ranges/adaptors/common.cc (test03): New test.
5364         * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
5365         * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
5366         * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
5367         * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
5368         * testsuite/std/ranges/adaptors/join.cc (test09): New test.
5369         * testsuite/std/ranges/adaptors/p2281.cc: New test.
5370         * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
5371         * testsuite/std/ranges/adaptors/split.cc (test01, test04):
5372         Adjust.
5373         (test09): New test.
5374         * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
5375         expected error message.
5376         (test02): Likewise.  Extend test.
5377         * testsuite/std/ranges/adaptors/take.cc (test06): New test.
5378         * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
5379         * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
5380         New test.
5382 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
5384         * include/std/string_view: Adjust Doxygen @file comment.
5386 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
5388         * include/std/type_traits (is_scoped_enum<T>): Constrain partial
5389         specialization to not match incomplete enum types. Use a
5390         requires-expression instead of instantiating is_convertible.
5391         (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
5392         * testsuite/20_util/is_scoped_enum/value.cc: Check with
5393         incomplete types and opaque-enum-declarations.
5395 2021-04-07  Jonathan Wakely  <jwakely@redhat.com>
5397         PR libstdc++/99805
5398         * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
5399         non-const member on _M_pathname, to avoid copy-on-write.
5400         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5401         Check construction from strings that might be shared.
5403 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
5405         * include/bits/move.h (forward, move, move_if_noexcept)
5406         (addressof): Add _GLIBCXX_NODISCARD.
5407         * include/bits/ranges_cmp.h (identity::operator()): Add
5408         nodiscard attribute.
5409         * include/c_global/cstddef (to_integer): Likewise.
5410         * include/std/bit (bit_cast): Likewise.
5411         * include/std/utility (as_const, to_underlying): Likewise.
5413 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
5415         * include/bits/move.h (forward): Change static_assert message
5416         to be unambiguous about what must be true.
5417         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
5418         * testsuite/20_util/forward/f_neg.cc: Likewise.
5420 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
5422         * include/bits/alloc_traits.h: Use markdown for code font.
5423         * include/bits/basic_string.h: Fix @param names.
5424         * include/bits/max_size_type.h: Remove period after @file.
5425         * include/bits/regex.h: Fix duplicate @retval names, and rename.
5426         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
5427         group open to match existing group close.
5428         * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
5429         open.
5431 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
5433         * include/bits/atomic_base.h: Fix doxygen group close.
5434         * include/bits/basic_ios.h: Likewise.
5435         * include/bits/forward_list.h: Likewise.
5436         * include/bits/fs_dir.h: Likewise.
5437         * include/bits/fs_ops.h: Likewise.
5438         * include/bits/fs_path.h: Likewise.
5439         * include/bits/functional_hash.h: Likewise.
5440         * include/bits/gslice.h: Likewise.
5441         * include/bits/gslice_array.h: Likewise.
5442         * include/bits/hashtable_policy.h: Likewise.
5443         * include/bits/indirect_array.h: Likewise.
5444         * include/bits/locale_classes.h: Likewise.
5445         * include/bits/locale_facets.h: Likewise.
5446         * include/bits/locale_facets_nonio.h: Likewise.
5447         * include/bits/mask_array.h: Likewise.
5448         * include/bits/refwrap.h: Likewise.
5449         * include/bits/regex.h: Likewise.
5450         * include/bits/regex_automaton.h: Likewise.
5451         * include/bits/regex_compiler.h: Likewise.
5452         * include/bits/regex_constants.h: Likewise.
5453         * include/bits/regex_error.h: Likewise.
5454         * include/bits/regex_executor.h: Likewise.
5455         * include/bits/regex_scanner.h: Likewise.
5456         * include/bits/shared_ptr.h: Likewise.
5457         * include/bits/shared_ptr_atomic.h: Likewise.
5458         * include/bits/shared_ptr_base.h: Likewise.
5459         * include/bits/slice_array.h: Likewise.
5460         * include/bits/specfun.h: Likewise.
5461         * include/bits/std_function.h: Likewise.
5462         * include/bits/std_mutex.h: Likewise.
5463         * include/bits/stl_deque.h: Likewise.
5464         * include/bits/stl_iterator.h: Likewise.
5465         * include/bits/stl_iterator_base_types.h: Likewise.
5466         * include/bits/stl_map.h: Likewise.
5467         * include/bits/stl_multimap.h: Likewise.
5468         * include/bits/stl_multiset.h: Likewise.
5469         * include/bits/stl_numeric.h: Likewise.
5470         * include/bits/stl_pair.h: Likewise.
5471         * include/bits/stl_set.h: Likewise.
5472         * include/bits/stl_uninitialized.h: Likewise.
5473         * include/bits/stream_iterator.h: Likewise.
5474         * include/bits/streambuf_iterator.h: Likewise.
5475         * include/bits/unique_ptr.h: Likewise.
5476         * include/bits/unordered_map.h: Likewise.
5477         * include/bits/unordered_set.h: Likewise.
5478         * include/decimal/decimal: Likewise.
5479         * include/experimental/any: Likewise.
5480         * include/experimental/array: Likewise.
5481         * include/experimental/bits/fs_dir.h: Likewise.
5482         * include/experimental/bits/fs_fwd.h: Likewise.
5483         * include/experimental/bits/fs_ops.h: Likewise.
5484         * include/experimental/bits/fs_path.h: Likewise.
5485         * include/experimental/buffer: Likewise.
5486         * include/experimental/internet: Likewise.
5487         * include/experimental/optional: Likewise.
5488         * include/experimental/propagate_const: Likewise.
5489         * include/experimental/socket: Likewise.
5490         * include/ext/pb_ds/assoc_container.hpp: Likewise.
5491         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
5492         Likewise.
5493         * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
5494         * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
5495         * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
5496         * include/ext/pb_ds/exception.hpp: Likewise.
5497         * include/ext/pb_ds/priority_queue.hpp: Likewise.
5498         * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
5499         * include/ext/random: Likewise.
5500         * include/std/any: Likewise.
5501         * include/std/atomic: Likewise.
5502         * include/std/bitset: Likewise.
5503         * include/std/chrono: Likewise.
5504         * include/std/complex: Likewise.
5505         * include/std/condition_variable: Likewise.
5506         * include/std/fstream: Likewise.
5507         * include/std/future: Likewise.
5508         * include/std/iostream: Likewise.
5509         * include/std/istream: Likewise.
5510         * include/std/mutex: Likewise.
5511         * include/std/numeric: Likewise.
5512         * include/std/ostream: Likewise.
5513         * include/std/ratio: Likewise.
5514         * include/std/shared_mutex: Likewise.
5515         * include/std/stdexcept: Likewise.
5516         * include/std/streambuf: Likewise.
5517         * include/std/system_error: Likewise.
5518         * include/std/thread: Likewise.
5519         * include/std/valarray: Likewise.
5520         * include/std/variant: Likewise.
5521         * include/tr1/cmath: Likewise.
5522         * include/tr1/regex: Likewise.
5523         * include/tr2/dynamic_bitset: Likewise.
5524         * libsupc++/atomic_lockfree_defines.h: Likewise.
5525         * libsupc++/exception: Likewise.
5526         * libsupc++/exception.h: Likewise.
5527         * libsupc++/exception_ptr.h: Likewise.
5528         * libsupc++/nested_exception.h: Likewise.
5530 2021-03-31  Alexandre Oliva  <oliva@adacore.com>
5532         * testsuite/30_threads/future/members/poll.cc: Use faster
5533         after-ready call in the calibration loop.
5535 2021-03-29  Jonathan Wakely  <jwakely@redhat.com>
5537         * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
5538         * doc/html/manual/status.html: Regenerate.
5540 2021-03-28  François Dumont  <fdumont@gcc.gnu.org>
5542         * include/debug/forward_list
5543         (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
5544         * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
5545         call to safe container allocator aware move constructor.
5546         * include/debug/vector (vector(vector&&, const allocator_type&)):
5547         Fix noexcept qualification.
5548         * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
5549         Add allocator-extended move constructor noexceot qualification check.
5550         * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
5552 2021-03-26  Jonathan Wakely  <jwakely@redhat.com>
5554         * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
5555         fallback is needed.
5556         [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
5557         New helper functions and callback.
5558         (random_device::_M_init): Add 'prng' and 'all' enumerators.
5559         Replace switch with fallthrough with a series of 'if' statements.
5560         [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
5561         checks fail.
5562         (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
5563         token.
5564         (random_device::_M_getval): Check for callback unconditionally
5565         and always pass _M_file pointer.
5566         * testsuite/26_numerics/random/random_device/85494.cc: Remove
5567         effective-target check. Use new random_device_available helper.
5568         * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
5569         * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
5570         Remove effective-target check.
5571         * testsuite/26_numerics/random/random_device/cons/default.cc:
5572         Likewise.
5573         * testsuite/26_numerics/random/random_device/cons/token.cc: Use
5574         new random_device_available helper. Test "prng" token.
5575         * testsuite/util/testsuite_random.h (random_device_available):
5576         New helper function.
5578 2021-03-25  François Dumont  <fdumont@gcc.gnu.org>
5580         * include/debug/string
5581         (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
5582         (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
5583         (basic_string<>::erase): Adapt to take __const_iterator.
5584         (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
5585         (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
5586         remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
5587         [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
5588         (__gnu_debug::u16string, __gnu_debug::u32string): New.
5589         (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
5590         (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
5591         * testsuite/util/exception/safety.h
5592         (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
5593         (insert_base<__gnu_debug::basic_string<>>): Likewise.
5594         * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
5595         New partial specialization.
5596         * testsuite/21_strings/basic_string/hash/debug.cc: New test.
5597         * testsuite/21_strings/basic_string/requirements/citerators.cc:
5598         Add test on __gnu_debug::string.
5599         * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
5600         * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
5601         * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
5602         Likewise.
5603         * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
5604         Likewise.
5605         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
5606         Likewise.
5607         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
5608         Likewise.
5609         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
5610         Likewise.
5611         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
5612         Likewise.
5613         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
5614         Likewise.
5615         * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
5617 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
5619         PR c++/99672
5620         * testsuite/18_support/source_location/consteval.cc (main): Adjust
5621         expected column numbers.
5622         * testsuite/18_support/source_location/1.cc (main): Likewise.
5624 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
5626         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
5628 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
5630         * testsuite/util/exception/safety.h (setup_base::generate):
5631         Support seeding random engine.
5632         (erase_point, erase_range): Adjust range of random numbers to
5633         ensure dereferenceable iterators are used where required.
5634         (generation_prohibited::run): Do not try to erase from empty
5635         containers.
5636         * testsuite/util/testsuite_containergen.h (test_containers):
5637         Support seeding random engine.
5639 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
5641         * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
5642         line with a check that uses the const being/end overloads.
5644 2021-03-23  Moritz Sichert  <sichert@in.tum.de>
5646         * include/std/ranges (reverse_view::begin, reverse_view::end):
5647         Qualify make_reverse_iterator calls to avoid ADL.
5648         * testsuite/std/ranges/adaptors/reverse.cc: Test that
5649         views::reverse works when make_reverse_iterator is defined
5650         in an associated namespace.
5652 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
5654         * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
5655         Do not define when compiling with Clang.
5657 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
5659         * include/std/string_view (basic_string_view(Range&&)): Define new
5660         constructor and deduction guide.
5661         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
5662         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
5664 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
5666         * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
5667         Add missing 'noexcept' as per LWG 2280.
5668         (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
5669         (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
5670         * testsuite/24_iterators/range_access/range_access.cc: Check for
5671         expected noexcept specifiers. Check result types of generic
5672         std::begin and std::end overloads.
5673         * testsuite/24_iterators/range_access/range_access_cpp14.cc:
5674         Check for expected noexcept specifiers.
5675         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5676         Likewise.
5678 2021-03-19  Jonathan Wakely  <jwakely@redhat.com>
5680         * include/std/type_traits (is_scoped_enum): Define.
5681         * include/std/version (__cpp_lib_is_scoped_enum): Define.
5682         * testsuite/20_util/is_scoped_enum/value.cc: New test.
5683         * testsuite/20_util/is_scoped_enum/version.cc: New test.
5685 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
5687         PR libstdc++/99341
5688         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
5689         std::once_flag symbols.
5690         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
5691         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
5692         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5693         Likewise.
5694         * config/abi/pre/gnu.ver: Likewise.
5695         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5696         (struct __once_flag_compat): Remove.
5697         (_ZNSt9once_flag11_M_activateEv): Remove.
5698         (_ZNSt9once_flag9_M_finishEb): Remove.
5700 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
5702         PR libstdc++/99341
5703         * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
5704         Revert to pthread_once_t implementation.
5705         [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
5706         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5707         (struct __once_flag_compat): New type matching the reverted
5708         implementation of once_flag using futexes.
5709         (once_flag::_M_activate): Remove, replace with ...
5710         (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
5711         (once_flag::_M_finish): Remove, replace with ...
5712         (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
5713         * testsuite/30_threads/call_once/66146.cc: Removed.
5715 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
5717         * testsuite/17_intro/names.cc: Exclude j from the list
5718         of test symbols for Darwin.
5720 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
5722         * config/os/bsd/darwin/ppc-extra.ver: Add matching for
5723         to_chars and from_chars for long double.
5725 2021-03-15  Patrick Palka  <ppalka@redhat.com>
5727         * include/bits/max_size_type.h (__max_size_type::operator _Tp):
5728         Fix formatting.
5729         (__max_size_type::operator++): Define.
5730         (__max_size_type::operator--): Likewise.
5731         (__max_size_type::operator<=>): Conditionally define (in place
5732         of the other comparison operators).
5733         (__max_diff_type::operator _Tp): Fix formatting.
5734         (__max_diff_type::operator++): Define.
5735         (__max_diff_type::operator--): Likewise.
5736         (__max_diff_type::operator<=>): Conditionally define (in place
5737         of the other comparison operators).
5738         * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
5739         these operator overloads.
5741 2021-03-15  Caroline Tice  <cmtice@google.com>
5743         PR libstdc++/99172
5744         * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
5745         AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
5746         AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
5747         filtered out.
5748         * src/Makefile.in: Regenerate.
5750 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5752         * src/c++17/floating_to_chars.cc: Simplify the file as if
5753         __SIZEOF_INT128__ is always defined.
5754         [!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
5755         a base-10 to_chars overload for the uint128_t class type.
5756         * src/c++17/uint128_t.h: New file.
5757         * testsuite/20_util/to_chars/long_double.cc: No longer expect an
5758         execution FAIL on targets that have a large long double type
5759         but lack __int128.
5761 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5763         * src/c++17/ryu/LOCAL_PATCHES: Update.
5764         * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
5765         * src/c++17/ryu/generic_128.h: Likewise.
5766         * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
5767         Use uint128_t instead of __uint128_t.
5768         (generic_binary_to_decimal): Likewise.
5770 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5772         * src/c++17/ryu/LOCAL_PATCHES: New file.
5774 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5776         * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
5777         defined alias of unsigned __int128.
5778         (floating_type_traits_binary128::mantissa_t): Use uint128_t
5779         instead of unsigned __int128.
5780         (floating_type_traits<long double>::mantissa_t)
5781         [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
5782         (get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
5783         and uint32_t explicit.  Simplify the extraction of mantissa,
5784         exponent and sign bit.
5786 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5788         * include/std/barrier (barrier::arrival_token): New move-only
5789         class that encapsulates the underlying token value.
5791 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5793         * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
5794         instead of unqualified() method.
5796 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5798         PR libstdc++/99537
5799         * include/std/stop_token (_Stop_state_t::_M_release_ownership):
5800         Use acq_rel memory ordering.
5802 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5804         PR libstdc++/99533
5805         * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
5806         helper function to check for permission denied errors.
5807         * src/filesystem/dir.cc (recursive_directory_iterator):
5808         Likewise.
5809         * src/filesystem/dir-common.h (is_permission_denied_error): New
5810         helper function.
5812 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5814         PR libstdc++/99536
5815         * include/bits/random.h (normal_distribution): Use
5816         default-initializer for _M_saved and _M_saved_available.
5818 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
5820         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
5821         link with libatomic.
5822         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5823         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5824         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5825         * testsuite/30_threads/barrier/arrive.cc: Likewise.
5826         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5827         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5828         * testsuite/30_threads/barrier/completion.cc: Likewise.
5829         * testsuite/30_threads/latch/3.cc: Likewise.
5830         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
5831         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
5832         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5834 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
5836         PR libstdc++/99413
5837         * include/bits/align.h: Include debug/assertions.h.
5838         * include/bits/codecvt.h: Include bits/c++config.h.
5839         * include/bits/enable_special_members.h: Likewise.
5840         * include/bits/erase_if.h: Likewise.
5841         * include/bits/functional_hash.h: Include <type_traits>.
5842         * include/bits/invoke.h: Include bits/move.h.
5843         * include/bits/ostream_insert.h: Include bits/exception_defines.h.
5844         * include/bits/parse_numbers.h: Include <type_traits>.
5845         * include/bits/predefined_ops.h: Include bits/c++config.h.
5846         * include/bits/range_access.h: Include bits/stl_iterator.h.
5847         * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
5848         * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
5849         * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
5850         * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
5851         * include/bits/unique_lock.h: Include bits/std_mutex.h.
5852         * include/debug/assertions.h: Include bits/c++config.h.
5854 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
5856         * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
5857         (ranges::equal_to, ranges::not_equal_to): Do not constrain
5858         with __eq_builtin_ptr_cmp.
5859         (ranges::less, ranges::greater, ranges::less_equal)
5860         (ranges::greater_equal): Do not constrain with
5861         __less_builtin_ptr_cmp.
5862         * libsupc++/compare (compare_three_way): Do not constrain with
5863         __3way_builtin_ptr_cmp.
5864         * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
5865         * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
5866         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
5868 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
5870         * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
5871         C++20 calendar types.
5873 2021-03-06  Jakub Jelinek  <jakub@redhat.com>
5875         PR libstdc++/99396
5876         * include/std/bit (__rotl, __rotr): Add optimized variants for power of
5877         two _Nd which the compiler can pattern match the rotates.
5879 2021-03-04  Jonathan Wakely  <jwakely@redhat.com>
5881         PR libstdc++/99382
5882         * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5883         Make storage larger than required. Verify no write to the last
5884         element.
5885         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5886         Likewise.
5888 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5890         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5891         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5892         Likewise.
5893         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5894         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5895         Likewise.
5897 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5899         * include/experimental/bits/simd.h: Replace reserved _X, _B by
5900         _Xp, _Bp.
5901         * include/experimental/bits/simd_builtin.h: Likewise.
5902         * include/experimental/bits/simd_x86.h: Likewise.
5904 2021-02-27  Jonathan Wakely  <jwakely@redhat.com>
5906         PR libstdc++/99301
5907         * include/std/chrono (year_month_day::_M_days_since_epoch()):
5908         Convert chrono::month and chrono::day to unsigned before
5909         converting to uint32_t.
5911 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5913         * include/std/chrono (year_month_day::_S_from_days): Perform
5914         all calculations with type uint32_t.
5916 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5918         * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5919         * doc/html/manual/abi.html: Regenerate.
5921 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5923         PR libstdc++/99270
5924         * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5925         FILE instead of FILE.
5927 2021-02-25  Andreas Schwab  <schwab@suse.de>
5929         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5930         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5931         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5932         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5934 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5936         PR libstdc++/99265
5937         * include/std/chrono (year_month_day::_S_from_days): Cast long
5938         to int explicitly.
5940 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5942         * include/std/utility (to_underlying): Define.
5943         * include/std/version (__cpp_lib_to_underlying): Define.
5944         * testsuite/20_util/to_underlying/1.cc: New test.
5945         * testsuite/20_util/to_underlying/version.cc: New test.
5947 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5949         PR libstdc++/99261
5950         * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5951         before value to be printed.
5953 2021-02-24  Patrick Palka  <ppalka@redhat.com>
5955         * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
5956         Relax the condition that guards the printf code path to accept
5957         F128_type as well as long double.
5959 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5961         * include/std/chrono (year_month_day_last:day): New
5962         implementation.
5964 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5966         * include/std/chrono (year::is_leap): New implementation.
5967         * testsuite/std/time/year/2.cc: New test.
5969 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5971         * include/std/chrono (year_month_day::_M_days_since_epoch):
5972         New implementation.
5973         * testsuite/std/time/year_month_day/4.cc: New test.
5975 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5977         * include/std/chrono (year_month_day::_S_from_days): New
5978         implementation.
5979         * testsuite/std/time/year_month_day/3.cc: New test.
5981 2021-02-24  Patrick Palka  <ppalka@redhat.com>
5983         PR libstdc++/98384
5984         * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
5985         (test01): Simplify verifying the nearby values by using a
5986         2-iteration loop and a dedicated output buffer to check that the
5987         nearby values are different.  Factor out the printf-based
5988         verification into a local function, and check that the leading
5989         hex digits agree before comparing to the output of printf.  Also
5990         verify the output by round-tripping it through from_chars.
5992 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5994         PR libstdc++/98389
5995         * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
5996         symbols for long double arguments mangled as 'g'.
5997         * config/os/gnu-linux/ldbl-extra.ver: Likewise.
5998         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
5999         * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
6000         Use -mabi=ibmlongdouble for floating_to_chars.cc.
6001         * src/c++17/Makefile.in: Regenerate.
6002         * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
6003         New type defining type traits of IEEE binary128 format.
6004         (floating_type_traits<__float128>): Define specialization.
6005         (floating_type_traits<long double>): Define in terms of
6006         floating_type_traits_binary128 when appropriate.
6007         (floating_to_shortest_scientific): Handle __float128.
6008         (sprintf_ld): New function template for printing a long double
6009         or __ieee128 value using sprintf.
6010         (__floating_to_chars_shortest, __floating_to_chars_precision):
6011         Use sprintf_ld.
6012         (to_chars): Define overloads for __float128.
6014 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
6016         * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
6018 2021-02-23  Martin Sebor  <msebor@redhat.com>
6020         PR c++/99074
6021         * libsupc++/dyncast.cc (__dynamic_cast): Return null when
6022         first argument is null.
6024 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
6026         PR libstdc++/99181
6027         * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
6028         test.
6030 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
6032         PR libstdc++/99181
6033         * include/bits/char_traits.h (char_traits<char>::compare): For
6034         constexpr evaluation don't call
6035         __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
6036         directly.
6038 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
6040         PR libstdc++/97549
6041         * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
6043 2021-02-23  Patrick Palka  <ppalka@redhat.com>
6045         PR libstdc++/98384
6046         * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
6047         the high- and low-order parts from an IBM long double value
6048         in an endian-agnostic way.
6050 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
6052         * include/bits/atomic_wait.h (__thread_relax()): Call
6053         __thread_yield() not __gthread_yield().
6055 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
6057         * include/bits/atomic_wait.h (__thread_yield()): Check
6058         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
6059         (__thread_relax()): Use __thread_yield() instead of repeating
6060         the preprocessor checks for __gthread_yield.
6062 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
6064         * include/std/mutex (once_flag::_M_activate()): Add explicit
6065         return statement for passive case.
6066         (once_flag::_M_finish(bool)): Use reserved name for parameter.
6068 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
6070         PR libstdc++/99096
6071         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
6073 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6075         PR libstdc++/88881
6076         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
6078 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6080         * doc/xml/manual/status_cxx2014.xml: Document implementation
6081         specific properties of std::experimental::filesystem::rename.
6082         * doc/xml/manual/status_cxx2017.xml: Document implementation
6083         specific properties of std::filesystem::rename.
6084         * doc/html/*: Regenerate.
6085         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
6086         for directories on Windows.
6087         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
6088         MoveFileExW on Windows.
6089         * testsuite/27_io/filesystem/operations/rename.cc: New test.
6090         * testsuite/experimental/filesystem/operations/rename.cc: New test.
6092 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6094         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
6095         random number to the path.
6097 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6099         * include/experimental/internet (address_v6::to_string): Include
6100         scope ID in string.
6101         * testsuite/experimental/net/internet/address/v6/members.cc:
6102         Test to_string() results.
6104 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6106         * include/experimental/internet (address_v6::any): Avoid using
6107         memcpy in constexpr function.
6108         (address_v6::loopback): Likewise.
6109         (make_address_v6): Fix missing return statements on error paths.
6110         * include/experimental/io_context: Avoid -Wdangling-else
6111         warning.
6112         * testsuite/experimental/net/internet/address/v4/members.cc:
6113         Remove unused variables.
6114         * testsuite/experimental/net/internet/address/v6/members.cc:
6115         New test.
6117 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6119         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
6120         Add unused attribute to parameter.
6121         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
6122         Likewise.
6124 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6126         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
6127         if -fno-rtti is used.
6128         * testsuite/30_threads/async/forced_unwind.cc: Expect test
6129         to abort if -fno-rtti is used.
6131 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6133         * testsuite/util/testsuite_allocator.h (memory_resource):
6134         Remove requirement for RTTI and exceptions to be enabled.
6136 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6138         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
6139         static_cast when RTTI is disabled.
6140         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
6141         Likewise.
6142         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
6143         Likewise.
6144         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
6145         Likewise.
6146         * testsuite/27_io/basic_stringstream/str/char/2.cc:
6147         Likewise.
6148         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
6149         Likewise.
6151 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6153         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
6154         as unused and only use dynamic_cast when RTTI is enabled.
6156 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
6158         PR libstdc++/99077
6159         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
6160         Change int parameter to error_code, to match std::ios_failure.
6161         (__throw_ios_failure(const char*, int)): Construct error_code
6162         from int parameter.
6164 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
6166         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
6167         new macro.
6168         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
6169         macro instead of _GLIBCXX_EH_PTR_COMPAT.
6170         (operator==): Likewise.
6172 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
6174         PR libstdc++/99058
6175         * doc/xml/manual/status_cxx2011.xml: Document when support
6176         became stable.
6177         * doc/xml/manual/status_cxx2014.xml: Likewise.
6178         * doc/xml/manual/status_cxx2017.xml: Likewise.
6179         * doc/html/manual/status.html: Regenerate.
6181 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
6183         PR libstdc++/88881
6184         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
6186 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
6188         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
6189         (fs::remove): Use std::system_category() for error codes from
6190         GetLastError().
6191         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
6192         Likewise.
6194 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
6196         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
6197         in __MINGW32__ macro name.
6198         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6199         * testsuite/27_io/filesystem/path/generation/proximate.cc:
6200         Likewise.
6201         * testsuite/27_io/filesystem/path/generation/relative.cc:
6202         Likewise.
6203         * testsuite/util/testsuite_fs.h: Likewise.
6205 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
6207         * include/bits/stl_tree.h
6208         (__has_is_transparent, __has_is_transparent_t): Move...
6209         * include/bits/stl_function.h: ...here.
6210         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
6211         (_Hashtable_base<>::_M_equals_tr): New.
6212         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
6213         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
6214         heterogeneous lookup.
6215         (_Hashtable<>::_M_find_before_node_tr): New.
6216         (_Hashtable<>::_M_find_node_tr): New.
6217         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
6218         unordered_map::contains<>, unordered_map::equal_range<>): New member function
6219         templates to perform heterogeneous lookup.
6220         (unordered_multimap::find<>, unordered_multimap::count<>,
6221         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
6222         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
6223         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
6224         (unordered_multiset::find<>, unordered_multiset::count<>,
6225         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
6226         * include/debug/unordered_map
6227         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
6228         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
6229         * include/debug/unordered_set
6230         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
6231         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
6232         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
6233         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
6234         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
6235         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
6237 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
6239         * include/bits/stl_deque.h
6240         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
6241         a null pointer test.
6243 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
6245         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
6246         test directory after making it writable again.
6247         * testsuite/experimental/filesystem/operations/remove_all.cc:
6248         Likewise.
6250 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
6252         PR libstdc++/99021
6253         * include/std/coroutine (coroutine_handle<P>::from_address): Add
6254         noexcept.
6256 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
6258         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
6259         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
6261 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
6263         PR middle-end/98465
6264         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
6265         points to the characters moved by earlier _S_move, compute the source
6266         address using expression based on the __p pointer rather than __s
6267         pointer.
6269 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
6271         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
6272         Add comparison with same category and different values.
6273         * testsuite/19_diagnostics/error_code/operators/less.cc:
6274         Likewise. Fix comparison involving different categories.
6275         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
6276         Likewise.
6277         * testsuite/19_diagnostics/error_condition/operators/less.cc:
6278         Add comment.
6279         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
6280         Likewise.
6282 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
6284         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
6285         calls with a single vaddv for aarch64.
6287 2021-02-03  Matthias Kretz  <kretz@kde.org>
6289         * testsuite/Makefile.am: Warn about the workaround. Add
6290         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
6291         Improve initial user feedback from make check-simd.
6292         * testsuite/Makefile.in: Regenerated.
6294 2021-02-03  Matthias Kretz  <kretz@kde.org>
6296         * include/experimental/bits/simd.h: Add __detail::_Minimum and
6297         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
6298         Add hmin and hmax overloads for simd and const_where_expression.
6299         * include/experimental/bits/simd_scalar.h
6300         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
6301         parameter const-ref to allow calling _S_reduce with an rvalue.
6302         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
6303         hmin and hmax. Since the compiler statically determined that all
6304         tests pass, repeat the test after a call to make_value_unknown.
6306 2021-02-03  Matthias Kretz  <kretz@kde.org>
6308         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
6309         instruction pointer data member. Ensure that the `if (m_failed)`
6310         branch is always inlined into the calling code. The body of the
6311         conditional can still be a function call. Move the get_ip call
6312         into the verify ctor to simplify the ctor calls.
6313         (COMPARE): Don't mention the use of all_of for reduction of a
6314         simd_mask. It only distracts from the real issue.
6316 2021-02-03  Matthias Kretz  <kretz@kde.org>
6318         * testsuite/experimental/simd/driver.sh: Abstract reading test
6319         options into read_src_option function. Read skip, only,
6320         expensive, and xfail via read_src_option. Add timeout and
6321         timeout-factor options and adjust timeout variable accordingly.
6322         * testsuite/experimental/simd/tests/loadstore.cc: Set
6323         timeout-factor 2.
6325 2021-02-03  Matthias Kretz  <kretz@kde.org>
6327         * testsuite/experimental/simd/driver.sh: When handling the pipe
6328         to log (and on verbose to stdout) count the lines. If it exceeds
6329         1000 log the issue and exit 125, which is then handled as a
6330         failure.
6332 2021-02-03  Matthias Kretz  <kretz@kde.org>
6334         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
6335         markup for long double on powerpc64*.
6337 2021-02-03  Matthias Kretz  <kretz@kde.org>
6339         * include/experimental/bits/simd.h: Add __have_power10vec
6340         conditional on _ARCH_PWR10.
6341         * include/experimental/bits/simd_builtin.h: Forward declare
6342         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
6343         defined.
6344         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
6345         _SuperImpl for optimizations and correctness.
6346         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
6347         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
6348         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
6349         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
6351 2021-02-03  Matthias Kretz  <kretz@kde.org>
6353         * testsuite/experimental/simd/driver.sh: Remove executable on
6354         SIGINT. Process compiler and test executable output: In verbose
6355         mode print messages immediately, limited to 1000 lines and
6356         breaking long lines to below $COLUMNS (or 1024 if not set).
6357         Communicating the exit status of the compiler / test with the
6358         necessary pipe is done via a message through stdout/-in.
6360 2021-02-03  Matthias Kretz  <kretz@kde.org>
6362         * testsuite/Makefile.am: Ensure .simd.summary is empty before
6363         collecting a new summary.
6364         * testsuite/Makefile.in: Regenerate.
6366 2021-02-03  Matthias Kretz  <kretz@kde.org>
6368         * testsuite/experimental/simd/generate_makefile.sh: Use
6369         different variables internally than documented for user
6370         overrides. This makes internal append/prepend work as intended.
6372 2021-02-03  Matthias Kretz  <kretz@kde.org>
6374         * testsuite/experimental/simd/driver.sh (verify_test): Print
6375         test output on run xfail. Do not repeat lines from the log that
6376         were already printed on stdout.
6377         (test_selector): Make the compiler flags pattern usable as a
6378         substring selector.
6379         (toplevel): Trap on SIGINT and remove the log and sum files.
6380         Call timout with --foreground to quickly terminate on SIGINT.
6381         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
6382         targets via target patterns. Default DRIVEROPTS to -v for run
6383         targets. Remove log and sum files after completion of the run
6384         target (so that it's always recompiled).
6385         Place help text into text file for reasonable 'make help'
6386         performance.
6388 2021-02-03  Matthias Kretz  <kretz@kde.org>
6390         * include/experimental/bits/simd.h: Remove unnecessary static
6391         assertion. Allow sizeof(8) integer __intrinsic_type to enable
6392         the necessary mask type.
6394 2021-02-03  Matthias Kretz  <kretz@kde.org>
6396         * include/experimental/bits/simd.h: Let __intrinsic_type<long
6397         double, N> be valid if sizeof(long double) == sizeof(double) and
6398         use a __vector double as member type.
6400 2021-02-03  Matthias Kretz  <kretz@kde.org>
6402         * include/experimental/bits/simd.h (__is_intrinsic_type): New
6403         internal type trait. Alias for __is_vector_type on x86.
6404         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
6405         __vector_type.
6406         (__intrin_bitcast): Allow casting to & from vector & intrinsic
6407         types.
6408         (__intrinsic_type): Explicitly specialize for NEON intrinsic
6409         vector types.
6411 2021-02-03  Matthias Kretz  <kretz@kde.org>
6413         * testsuite/experimental/simd/driver.sh: Implement skip, only,
6414         expensive, and xfail markers. They can select on type, ABI tag
6415         subset number, target-triplet, and compiler flags.
6416         * testsuite/experimental/simd/generate_makefile.sh: The summary
6417         now includes lines for unexpected passes and expected failures.
6418         If the skip or only markers are only conditional on the type, do
6419         not generate rules for those types.
6420         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
6421         for ABI tag subsets 1-9.
6422         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
6423         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
6424         * testsuite/experimental/simd/tests/casts.cc: Ditto.
6425         * testsuite/experimental/simd/tests/generator.cc: Ditto.
6426         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
6427         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
6428         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
6429         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
6430         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6431         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
6432         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6433         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6434         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6435         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6436         * testsuite/experimental/simd/tests/operators.cc: Ditto.
6437         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6438         * testsuite/experimental/simd/tests/simd.cc: Ditto.
6439         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6440         * testsuite/experimental/simd/tests/splits.cc: Ditto.
6441         * testsuite/experimental/simd/tests/where.cc: Ditto.
6442         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
6443         addition replace "test only floattypes" marker by unconditional
6444         "float|double|ldouble" only marker.
6445         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6446         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6447         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6448         Ditto.
6449         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6450         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6451         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6452         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6453         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6454         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6455         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
6456         addition, xfail on run because the reference data is missing.
6458 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
6460         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
6461         * doc/xml/manual/status_cxx2014.xml: Likewise.
6462         * doc/xml/manual/status_cxx2017.xml: Likewise.
6463         * doc/html/manual/status.html: Regenerate.
6465 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
6467         PR libstdc++/70303
6468         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
6469         Return 0 if both iterators are value-initialized.
6470         * testsuite/23_containers/deque/70303.cc: New test.
6471         * testsuite/23_containers/vector/70303.cc: New test.
6473 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
6475         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
6476         status.
6477         * doc/xml/manual/status_cxx2014.xml: Likewise.
6478         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
6479         std::from_chars and std::to_chars status. Fix formatting.
6480         * doc/html/manual/status.html: Regenerate.
6482 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
6484         * include/experimental/bits/numeric_traits.h: Update copyright
6485         dates.
6486         * include/experimental/bits/simd.h: Likewise.
6487         * include/experimental/bits/simd_builtin.h: Likewise.
6488         * include/experimental/bits/simd_converter.h: Likewise.
6489         * include/experimental/bits/simd_detail.h: Likewise.
6490         * include/experimental/bits/simd_fixed_size.h: Likewise.
6491         * include/experimental/bits/simd_math.h: Likewise.
6492         * include/experimental/bits/simd_neon.h: Likewise.
6493         * include/experimental/bits/simd_ppc.h: Likewise.
6494         * include/experimental/bits/simd_scalar.h: Likewise.
6495         * include/experimental/bits/simd_x86.h: Likewise.
6496         * include/experimental/bits/simd_x86_conversions.h: Likewise.
6497         * include/experimental/simd: Likewise.
6498         * testsuite/experimental/simd/*: Likewise.
6500 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
6502         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
6503         * doc/html/*: Regenerate.
6505 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
6507         * testsuite/experimental/simd/generate_makefile.sh: Use printf
6508         instead of echo when printing escape characters.
6510 2021-01-27  Matthias Kretz  <kretz@kde.org>
6512         * scripts/check_simd: New file. This script is called from the
6513         the check-simd target. It determines a set of compiler flags and
6514         simulator setups for calling generate_makefile.sh and passes the
6515         information back to the check-simd target, which recurses to the
6516         generated Makefiles.
6517         * scripts/create_testsuite_files: Remove files below simd/tests/
6518         from testsuite_files and place them in testsuite_files_simd.
6519         * testsuite/Makefile.am: Add testsuite_files_simd. Add
6520         check-simd target.
6521         * testsuite/Makefile.in: Regenerate.
6522         * testsuite/experimental/simd/driver.sh: New file. This script
6523         compiles and runs a given simd test, logging its output and
6524         status. It uses the timeout command to implement compile and
6525         test timeouts.
6526         * testsuite/experimental/simd/generate_makefile.sh: New file.
6527         This script generates a Makefile which uses driver.sh to compile
6528         and run the tests and collect the logs into a single log file.
6529         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
6530         abs(simd).
6531         * testsuite/experimental/simd/tests/algorithms.cc: New file.
6532         Tests min/max(simd, simd).
6533         * testsuite/experimental/simd/tests/bits/conversions.h: New
6534         file. Contains functions to support tests involving conversions.
6535         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
6536         Support functions make_mask and make_vec.
6537         * testsuite/experimental/simd/tests/bits/mathreference.h: New
6538         file. Support functions to supply precomputed math function
6539         reference data.
6540         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
6541         file. Support code for SFINAE testing.
6542         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
6543         * testsuite/experimental/simd/tests/bits/test_values.h: New
6544         file. Test functions to easily drive a test with simd objects
6545         initialized from a given list of values and a range of random
6546         values.
6547         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
6548         Support code to determine the ULP distance of simd objects.
6549         * testsuite/experimental/simd/tests/bits/verify.h: New file.
6550         Test framework for COMPARE'ing simd objects and instantiating
6551         the test templates with value_type and ABI tag.
6552         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
6553         simd broadcasts.
6554         * testsuite/experimental/simd/tests/casts.cc: New file. Test
6555         simd casts.
6556         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
6557         Test floating-point classification functions.
6558         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
6559         frexp(simd).
6560         * testsuite/experimental/simd/tests/generator.cc: New file. Test
6561         simd generator constructor.
6562         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
6563         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
6564         * testsuite/experimental/simd/tests/integer_operators.cc: New
6565         file. Test integer operators.
6566         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6567         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
6568         modf(simd).
6569         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
6570         (converting) simd loads and stores.
6571         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
6572         log*(simd).
6573         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
6574         Test simd_mask broadcasts.
6575         * testsuite/experimental/simd/tests/mask_conversions.cc: New
6576         file. Test simd_mask conversions.
6577         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
6578         file. Test simd_mask implicit conversions.
6579         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
6580         Test simd_mask loads and stores.
6581         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
6582         file. Test simd_mask operators convert as specified.
6583         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
6584         Test simd_mask compares, subscripts, and negation.
6585         * testsuite/experimental/simd/tests/mask_reductions.cc: New
6586         file. Test simd_mask reductions.
6587         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
6588         1-arg math functions on simd.
6589         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
6590         2-arg math functions on simd.
6591         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
6592         Test implicit conversions on simd binary operators behave as
6593         specified.
6594         * testsuite/experimental/simd/tests/operators.cc: New file. Test
6595         simd compares, subscripts, not, unary minus, plus, minus,
6596         multiplies, divides, increment, and decrement.
6597         * testsuite/experimental/simd/tests/reductions.cc: New file.
6598         Test reduce(simd).
6599         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
6600         remqo(simd).
6601         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
6602         sanity checks of simd types.
6603         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
6604         sin(simd) and cos(simd).
6605         * testsuite/experimental/simd/tests/split_concat.cc: New file.
6606         Test split(simd) and concat(simd, simd).
6607         * testsuite/experimental/simd/tests/splits.cc: New file. Test
6608         split(simd_mask).
6609         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
6610         Test remaining trigonometric functions on simd.
6611         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
6612         file. Test trunc(simd), ceil(simd), and floor(simd).
6613         * testsuite/experimental/simd/tests/where.cc: New file. Test
6614         masked operations using where.
6616 2021-01-27  Matthias Kretz  <kretz@kde.org>
6618         * doc/xml/manual/status_cxx2017.xml: Add implementation status
6619         of the Parallelism TS 2. Document implementation-defined types
6620         and behavior.
6621         * include/Makefile.am: Add new headers.
6622         * include/Makefile.in: Regenerate.
6623         * include/experimental/simd: New file. New header for
6624         Parallelism TS 2.
6625         * include/experimental/bits/numeric_traits.h: New file.
6626         Implementation of P1841R1 using internal naming. Addition of
6627         missing IEC559 functionality query.
6628         * include/experimental/bits/simd.h: New file. Definition of the
6629         public simd interfaces and general implementation helpers.
6630         * include/experimental/bits/simd_builtin.h: New file.
6631         Implementation of the _VecBuiltin simd_abi.
6632         * include/experimental/bits/simd_converter.h: New file. Generic
6633         simd conversions.
6634         * include/experimental/bits/simd_detail.h: New file. Internal
6635         macros for the simd implementation.
6636         * include/experimental/bits/simd_fixed_size.h: New file. Simd
6637         fixed_size ABI specific implementations.
6638         * include/experimental/bits/simd_math.h: New file. Math
6639         overloads for simd.
6640         * include/experimental/bits/simd_neon.h: New file. Simd NEON
6641         specific implementations.
6642         * include/experimental/bits/simd_ppc.h: New file. Implement bit
6643         shifts to avoid invalid results for integral types smaller than
6644         int.
6645         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
6646         ABI specific implementations.
6647         * include/experimental/bits/simd_x86.h: New file. Simd x86
6648         specific implementations.
6649         * include/experimental/bits/simd_x86_conversions.h: New file.
6650         x86 specific conversion optimizations. The conversion patterns
6651         work around missing conversion patterns in the compiler and
6652         should be removed as soon as PR85048 is resolved.
6653         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
6654         Test that all (not all fixed_size<N>, though) standard simd and
6655         simd_mask types are usable.
6656         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
6657         file. As above but with -ffast-math.
6658         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
6659         from the standard test loop. Instead use
6660         check_vect_support_and_set_flags to build simd tests with the
6661         relevant machine flags.
6663 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
6665         PR libstdc++/66414
6666         * include/bits/string_view.tcc
6667         (basic_string_view::find(const CharT*, size_type, size_type)):
6668         Optimize.
6670 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
6672         * include/bits/basic_string.h (basic_string::contains): New
6673         member functions.
6674         * include/std/string_view (basic_string_view::contains):
6675         Likewise.
6676         * include/std/version (__cpp_lib_string_contains): Define.
6677         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
6678         Remove trailing whitespace.
6679         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
6680         Likewise.
6681         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
6682         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
6683         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
6684         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
6685         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
6687 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
6689         * src/c++17/Makefile.in: Regenerate.
6691 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
6693         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
6694         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
6695         __lc_type.
6696         (const char* ctype<char>:: is): Same.
6698 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
6700         PR libstdc++/98725
6701         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
6702         write to a wide character stream if wide character support is
6703         disabled in the library.
6705 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
6707         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
6708         stringbuf not wstringbuf.
6710 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
6712         PR debug/98708
6713         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
6714         Compile with -gno-as-loc-support.
6715         * src/c++11/Makefile.in: Regenerated.
6717 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
6719         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
6720         Add -fcf-protection=none to -march=i486.
6722 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
6724         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
6725         compliant.
6727 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
6729         * testsuite/30_threads/future/members/poll.cc: Calibrate
6730         iteration count.
6732 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
6734         PR libstdc++/98466
6735         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
6736         (_Node_iterator()): Make default.
6737         (_Node_const_iterator()): Make default.
6738         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
6739         iterator checks.
6740         * include/debug/safe_iterator.h
6741         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
6742         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
6743         Likewise.
6744         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
6745         _M_singular checks on input iterators.
6746         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
6747         checks.
6748         * testsuite/23_containers/deque/debug/98466.cc: New test.
6749         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
6751 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
6753         PR libstdc++/98471
6754         * include/bits/fs_path.h (__throw_conversion_error): New
6755         function to throw or abort on character conversion errors.
6756         (__wstr_from_utf8): Move definition after filesystem_error has
6757         been defined. Use __throw_conversion_error.
6758         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
6759         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
6760         (path::u8string): Likewise.
6762 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
6764         * include/std/barrier: Update copyright years. Fix whitespace.
6765         * include/std/version: Fix whitespace.
6766         * testsuite/30_threads/barrier/1.cc: Update copyright years.
6767         * testsuite/30_threads/barrier/2.cc: Likewise.
6768         * testsuite/30_threads/barrier/arrive.cc: Likewise.
6769         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6770         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6771         * testsuite/30_threads/barrier/completion.cc: Likewise.
6773 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
6775         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
6777 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
6779         PR libstdc++/98613
6780         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
6781         warning.
6782         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
6784 2021-01-08  Olivier Hainque  <hainque@adacore.com>
6786         * testsuite/20_util/bind/ref_neg.cc: Tweak the
6787         dg-prune-output regex for out-of-build-tree contexts.
6789 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
6791         * doc/doxygen/user.cfg.in: Add new header.
6792         * include/Makefile.am (std_headers): likewise.
6793         * include/Makefile.in: Regenerate.
6794         * include/precompiled/stdc++.h: Add new header.
6795         * include/std/barrier: New file.
6796         * include/std/version: Add __cpp_lib_barrier feature test macro.
6797         * testsuite/30_threads/barrier/1.cc: New test.
6798         * testsuite/30_threads/barrier/2.cc: Likewise.
6799         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6800         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6801         * testsuite/30_threads/barrier/arrive.cc: Likewise.
6802         * testsuite/30_threads/barrier/completion.cc: Likewise.
6804 2021-01-07  Patrick Palka  <ppalka@redhat.com>
6806         PR libstdc++/98384
6807         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
6808         instead of the non-standard nextupl and nextdownl.
6810 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
6812         * configure: Re-generate.
6814 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
6816         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
6818 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
6820         * ChangeLog-2020: Rotate ChangeLog.  New file.
6823 Copyright (C) 2021 Free Software Foundation, Inc.
6825 Copying and distribution of this file, with or without modification,
6826 are permitted in any medium without royalty provided the copyright
6827 notice and this notice are preserved.