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