Daily bump.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobfd4fcad50d42fc439c212ce30128b4a610737a26
1 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
3         * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
4         Return false for ETIMEDOUT and true otherwise.
6 2021-09-28  François Dumont  <fdumont@gcc.gnu.org>
8         * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
9         to also match message with '__8' in it.
11 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
13         * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
14         * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
15         * include/bits/regex_compiler.tcc: Likewise.
16         * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
17         * include/bits/regex_scanner.tcc: Likewise.
19 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
21         * include/bits/regex_compiler.tcc: Add line break in empty while
22         statement.
23         * include/bits/regex_executor.tcc: Avoid unused parameter
24         warning.
26 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
28         * include/bits/regex.h (basic_regex, swap): Add noexcept to
29         non-throwing functions.
30         * include/bits/regex_automaton.h (_State_base, _State)
31         (_NFA_base): Likewise.
32         * include/bits/regex_compiler.h (_Compiler): Likewise.
33         * include/bits/regex_error.h (regex_error::code()): Likewise.
34         * include/bits/regex_scanner.h (_Scanner): Likewise.
36 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
38         * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
39         Define before first attempt to check it.
41 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
43         * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
44         Do not check non-default constructible sequences when
45         _GLIBCXX_CONCEPT_CHECKS is defined.
46         * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
47         Likewise.
48         * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
49         Likewise.
50         * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
51         Likewise.
52         * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
53         Likewise.
54         * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
55         Likewise.
57 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
59         * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
60         Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
61         is defined.
62         * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
63         Likewise.
64         * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
65         Likewise.
66         * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
67         Likewise.
68         * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
69         Likewise.
70         * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
71         Likewise.
72         * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
73         Likewise.
74         * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
75         Likewise.
76         * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
77         Likewise.
78         * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
79         Likewise.
80         * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
81         Likewise.
82         * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
83         Likewise.
84         * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
85         Likewise.
86         * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
87         Likewise.
88         * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
89         Likewise.
90         * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
91         Likewise.
92         * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
93         Likewise.
94         * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
95         Likewise.
97 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
99         * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
100         (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
101         Check result types of iterator operations.
102         (_Mutable_ForwardIteratorConcept): Check that iterator's
103         reference type is a reference to its value type.
104         (_Mutable_BidirectionalIteratorConcept): Do not require the
105         value type to be assignable.
106         (_Mutable_RandomAccessIteratorConcept): Likewise.
107         * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
108         line number.
110 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
112         * testsuite/25_algorithms/copy/34595.cc: Add missing operation
113         for type used as an iterator.
114         * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
116 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
118         * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
119         comparison function for priority_queue of type with no
120         relational operators.
121         * testsuite/20_util/is_swappable/value.h: Likewise.
122         * testsuite/24_iterators/output/concept.cc: Add operator< to
123         type used in set.
125 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
127         * include/bits/boost_concept_check.h (_OutputIteratorConcept):
128         Use a function to preserve value category of the type.
129         * include/bits/stl_algobase.h (copy, move, fill_n): Use a
130         reference as the second argument for _OutputIteratorConcept.
131         (copy_backward, move_backward): Use _OutputIteratorConcept
132         instead of _ConvertibleConcept.
134 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
136         * include/bits/stl_iterator.h (pointer_traits): Define partial
137         specialization for __normal_iterator.
138         * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
140 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
142         * include/bits/move.h (forward(remove_reference_t<T>&&)):
143         Improve text of static_assert.
144         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
145         * testsuite/20_util/forward/f_neg.cc: Likewise.
147 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
149         PR libstdc++/102499
150         * include/bits/fs_path.h (path::begin, path::end): Add noexcept
151         to declarations, to match definitions.
153 2021-09-24  Jonathan Wakely  <jwakely@redhat.com>
155         * include/bits/range_access.h (cbegin, cend): Remove redundant
156         'inline' specifier.
158 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
160         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
161         Remove dg-error lines for C++20-only errors.
163 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
165         * testsuite/19_diagnostics/headers/system_error/93151.cc:
166         Disable PCH.
168 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
170         * src/c++11/system_error.cc (system_error_category) [_WIN32]:
171         Map Windows error codes to generic POSIX error numbers. Use
172         FormatMessage instead of strerror.
173         * testsuite/19_diagnostics/error_category/system_category.cc:
174         Adjust for new behaviour on Windows.
176 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
178         * src/c++11/system_error.cc (generic_error_category): Define
179         class and virtual functions as 'final'.
180         (generic_error_category::equivalent(int, const error_condition&)):
181         Override.
182         (system_error_category): Define class and virtual functions as
183         'final'.
184         (system_error_category::equivalent(int, const error_condition&)):
185         Override.
186         (generic_category_instance, system_category_instance): Use
187         constinit union to make the objects immortal.
189 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
191         PR libstdc++/102425
192         * src/c++11/system_error.cc
193         (system_error_category::default_error_condition): Add 0 to
194         switch.
195         * testsuite/19_diagnostics/error_category/102425.cc: New test.
197 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
199         * include/bits/fs_path.h (path::iterator): Add noexcept to all
200         member functions and friend functions.
201         (distance): Add noexcept.
202         (advance): Add noexcept and inline.
203         * include/experimental/bits/fs_path.h (path::iterator):
204         Add noexcept to all member functions.
206 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
208         PR libstdc++/102270
209         * include/std/tuple (_Tuple_impl): Add constexpr to constructor
210         missed in previous patch.
211         * testsuite/20_util/tuple/cons/102270.C: Moved to...
212         * testsuite/20_util/tuple/cons/102270.cc: ...here.
213         * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
214         constexpr to constructor so it can be used for C++20 tests.
216 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
218         * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
219         * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
220         * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
221         * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
223 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
225         * src/Makefile.am (stamp-debug): Add all Makefiles as
226         prerequisites.
227         * src/Makefile.in: Regenerate.
229 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
231         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
232         timeout factor to 3.
233         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
235 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
237         * doc/xml/manual/using.xml: Generalize to apply to more than
238         just -std=c++11.
239         * doc/html/manual/using_macros.html: Regenerate.
241 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
243         * include/std/optional (nullptr_t): Make constructor noexcept.
245 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
247         * include/bits/fs_path.h (advance): Remove non-deducible
248         template parameter.
250 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
252         PR libstdc++/102270
253         * include/std/tuple (_Head_base, _Tuple_impl): Add
254         _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
255         (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
256         * testsuite/20_util/tuple/cons/102270.C: New test.
258 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
260         PR libstdc++/102280
261         * include/std/span (span(Range&&)): Add constraint to deduction
262         guide.
264 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
266         * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
267         * src/c++98/Makefile.in: Regenerate.
269 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
271         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
272         (to_string): Add noexcept if the type width is 32 bits or less.
274 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
276         * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
277         (__uniq_ptr_impl::_M_deleter): Add noexcept.
279 2021-09-16  Thomas Rodgers  <rodgert@twrodgers.com>
281         PR libstdc++/101761
282         * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
283         va and vb as arguments to wait/notify, remove unused bb local.
285 2021-09-15  Hugo Beauzée-Luyssen  <hugo@beauzee.fr>
287         * crossconfig.m4: Check for TLS support on mingw.
288         * configure: Regenerate.
290 2021-09-13  Jason Merrill  <jason@redhat.com>
292         * include/std/version: Define __cpp_lib_hardware_interference_size.
293         * libsupc++/new: Define hardware interference size variables.
295 2021-09-10  Jonathan Wakely  <jwakely@redhat.com>
297         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
298         Fix invalid hostname to only match the .invalid TLD.
300 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
302         * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
303         Add new functions.
304         * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
305         it.
307 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
309         * include/std/atomic: Tweak whitespace.
311 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
313         PR c++/102177
314         * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
315         New function to check if a memory order is valid for the failure
316         case of compare exchange operations.
317         (__atomic_base<I>::compare_exchange_weak): Simplify assertions
318         by using __is_valid_cmpexch_failure_order.
319         (__atomic_base<I>::compare_exchange_strong): Likewise.
320         (__atomic_base<P*>::compare_exchange_weak): Likewise.
321         (__atomic_base<P*>::compare_exchange_strong): Likewise.
322         (__atomic_impl::compare_exchange_weak): Add assertion.
323         (__atomic_impl::compare_exchange_strong): Likewise.
324         * include/std/atomic (atomic::compare_exchange_weak): Likewise.
325         (atomic::compare_exchange_strong): Likewise.
327 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
329         * include/std/functional (invoke_r): Define.
330         * include/std/version (__cpp_lib_invoke_r): Define.
331         * testsuite/20_util/function_objects/invoke/version.cc: Check
332         for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
333         * testsuite/20_util/function_objects/invoke/4.cc: New test.
335 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
337         PR libstdc++/98421
338         * include/std/span (span(Iter, size_type), span(Iter, Iter)):
339         Add valid range checks.
340         * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
341         * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
343 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
345         * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
346         * configure: Regenerate.
348 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
350         * src/c++11/system_error.cc (error_category::~error_category()):
351         Remove noexcept-specifier.
352         (system_error::~system_error()): Likewise.
353         * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
354         * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
356 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
358         PR libstdc++/102074
359         * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
360         [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
362 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
364         * include/experimental/internet (__make_resolver_error_code):
365         Handle EAI_SYSTEM errors.
366         (basic_resolver_results): Use __make_resolver_error_code. Use
367         Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
369 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
371         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
372         Try other service if "http" fails.
374 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
376         * testsuite/17_intro/names.cc: Undefine some more names used
377         by Solaris system headers.
379 2021-08-30  Jason Merrill  <jason@redhat.com>
381         PR c++/96286
382         * testsuite/30_threads/promise/requirements/lwg3466.cc:
383         Remove dg-prune-outputs.
385 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
387         * include/bits/alloc_traits.h (allocator_traits): Add explicit
388         specialization for allocator<void>. Improve doxygen comments.
389         * include/bits/allocator.h (allocator<void>): Restore for the
390         versioned namespace.
391         (allocator<void>::construct, allocator<void>::destroy): Remove.
392         * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
393         Add default constructor and converting constructor.
395 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
397         * include/bits/stl_uninitialized.h: Fix typo in comment.
399 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
401         PR libstdc++/99876
402         * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
403         to avoid unnecessary current_path() call.
405 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
407         * include/bits/std_function.h (function::function(F&&)): Give
408         name to defaulted template parameter, to improve diagnostics.
409         Use markdown for more doxygen comments.
411 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
413         * include/bits/std_function.h (function): Adjust doxygen
414         comments.
415         * include/bits/unique_ptr.h (make_unique_for_overwrite):
416         Change parameter name to match doxygen comment.
418 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
420         * include/bits/std_function.h (_function_base::_Base_manager):
421         Replace _M_init_functor with a function template using a
422         forwarding reference, and a pair of _M_create function
423         templates. Reuse _M_create for the clone operation.
424         (function::_Decay_t): New alias template.
425         (function::_Callable): Simplify by using _Decay.
426         (function::function(F)): Change parameter to forwarding
427         reference, as per LWG 2447. Add noexcept-specifier. Simplify
428         constraints.
429         (function::operator=(F&&)): Add noexcept-specifier.
430         * testsuite/20_util/function/cons/lwg2774.cc: New test.
431         * testsuite/20_util/function/cons/noexcept.cc: New test.
433 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
435         * include/bits/std_function.h (function::function(F)): Add
436         static assertions to check constructibility requirements.
438 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
440         PR libstdc++/100285
441         * configure.ac: Check for O_NONBLOCK.
442         * configure: Regenerate.
443         * include/experimental/internet: Include <ws2tcpip.h> for
444         Windows.  Use preprocessor conditions around more constants.
445         * include/experimental/socket: Use preprocessor conditions
446         around more constants.
447         * testsuite/experimental/net/internet/resolver/base.cc: Only use
448         constants when the corresponding C macro is defined.
449         * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
450         * testsuite/experimental/net/socket/socket_base.cc: Likewise.
451         Make preprocessor checks more fine-grained.
453 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
455         * testsuite/17_intro/names.cc: Check 'sz'.
457 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
459         * testsuite/17_intro/names.cc: Adjust for Windows.
461 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
463         * include/std/valarray: Uglify 'func' parameters.
464         * testsuite/17_intro/names.cc: Add 'func' to checks.
466 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
468         PR libstdc++/102064
469         * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
470         Define macro to check conditions for optimizing trivial cases.
471         (__check_constructible): New function to do static assert.
472         (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
473         Use new macro.
474         * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
475         Adjust dg-error pattern.
476         * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
477         C++17-specific checks from 89164_c++17.cc.
478         * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
479         * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
480         New test.
481         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
482         New test.
483         * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
484         New test.
485         * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
486         New test.
488 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
490         PR libstdc++/102048
491         * include/ext/rope (rope::erase(size_type)): Remove broken
492         function.
494 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
496         * doc/xml/manual/status_cxx2020.xml: Update table.
497         * doc/html/manual/status.html: Regenerate.
499 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
501         * include/std/type_traits (is_layout_compatible): Define.
502         (is_corresponding_member): Define.
503         * include/std/version (__cpp_lib_is_layout_compatible): Define.
504         * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
505         New test.
506         * testsuite/20_util/is_layout_compatible/value.cc: New test.
507         * testsuite/20_util/is_layout_compatible/version.cc: New test.
508         * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
509         New test.
510         * testsuite/23_containers/span/layout_compat.cc: Do not use real
511         std::is_layout_compatible trait if available.
513 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
515         * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
516         explicit instantiation definitions.
518 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
520         * include/std/ranges (basic_istream_view): Add default template
521         argument.
522         * testsuite/std/ranges/istream_view.cc: Check it.
524 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
526         * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
527         precondition check.
529 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
531         PR libstdc++/90787
532         * testsuite/util/testsuite_fs.h (permissions_are_testable):
533         Define as inline.
535 2021-08-20  Jonathan Wakely  <jwakely@redhat.com>
537         PR libstdc++/90787
538         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
539         Use new __gnu_test::permissions_are_testable() function.
540         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
541         Likewise.
542         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
543         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
544         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
545         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
546         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
547         * testsuite/27_io/filesystem/operations/symlink_status.cc:
548         Likewise.
549         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
550         Likewise.
551         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
552         Likewise.
553         * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
554         Likewise.
555         * testsuite/experimental/filesystem/operations/exists.cc:
556         Likewise.
557         * testsuite/experimental/filesystem/operations/is_empty.cc:
558         Likewise.
559         * testsuite/experimental/filesystem/operations/remove.cc:
560         Likewise.
561         * testsuite/experimental/filesystem/operations/remove_all.cc:
562         Likewise.
563         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
564         Likewise.
565         * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
566         New function to guess whether testing permissions will work.
568 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
570         * doc/xml/manual/status_cxx2020.xml: Move row  earlier in table.
571         * doc/html/manual/status.html: Regenerate.
573 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
575         * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
577 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
579         PR libstdc++/101965
580         * include/std/charconv (__to_chars_i): Remove redundant check.
582 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
584         PR libstdc++/101960
585         * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
586         class' move constructor. Define as defaulted for versioned
587         namespace.
588         * testsuite/20_util/tuple/cons/101960.cc: New test.
590 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
592         PR libstdc++/100139
593         * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
594         * doc/html/manual/status.html: Regenerate.
596 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
598         * include/bits/shared_ptr.h: Add @since and @headerfile tags.
599         * include/bits/unique_ptr.h: Add @headerfile tags.
601 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
603         * src/filesystem/ops-common.h (filesystem::file_time): Improve
604         overflow check by using system_clock::duration::max().
606 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
608         * include/bits/stl_tree.h: Tweak whitespace.
610 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
612         * include/bits/unique_ptr.h (default_delete): Add @since tag.
613         (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
614         (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
615         @param, and @returns.
616         (_MakeUniq): Move to __detail namespace. Add alias template
617         helpers.
619 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
621         * include/bits/stl_function.h: Improve doxygen comments.
623 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
625         * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
626         processing for C++20 components and components that depend on
627         compiler features.
628         * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
629         * include/std/type_traits: Improve doxygen comments for C++20
630         traits.
632 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
634         * include/ext/type_traits.h (__promote_2, __promote_3)
635         (__promote_4): Redfine as alias templates using __promoted_t.
636         * include/std/complex (__promote_2): Remove partial
637         specializations for std::complex.
639 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
641         * include/bits/stl_algo.h (min(initializer_list<T>))
642         (min(initializer_list<T>, Compare)): Call __min_element directly to
643         avoid redundant debug checks for valid ranges.
644         (max(initializer_list<T>), max(initializer_list<T>, Compare)):
645         Likewise, for __max_element.
646         (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
647         Likewise, for __minmax_element.
649 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
651         * include/debug/deque (deque(size_type, const T&, const A&)):
652         Prevent class template argument deduction and replace with a
653         deduction guide.
654         * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
655         Likewise.
656         * include/debug/list (list(size_type, const T&, const A&)):
657         Likewise.
658         * include/debug/vector (vector(size_type, const T&, const A&)):
659         Likewise.
661 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
663         * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
664         'std::vector<bool>::reference' as type name, not _Bit_reference.
665         (build_libstdcxx_dictionary): Register printers for vector<bool>
666         types in debug mode too.
667         * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
668         output for invalid _Bit_reference. Use vector<bool>::reference
669         instead of _Bit_reference.
670         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
672 2021-08-17  Thomas Schwinge  <thomas@codesourcery.com>
674         * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
675         continued.
677 2021-08-17  Luc Michel  <lmichel@kalray.eu>
678             Marc Poulhies  <mpoulhies@kalrayinc.com>
680         * testsuite/lib/gdb-test.exp (gdb_version_check)
681         (gdb_version_check_xmethods): Only check the GDB version for
682         local native targets.
684 2021-08-17  Antony Polukhin  <antoshkka@gmail.com>
685             Jonathan Wakely  <jwakely@redhat.com>
687         * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
688         if distance is O(1).
689         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
690         line number.
692 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
694         * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
695         construction from input iterators.
697 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
699         * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
701 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
703         PR libstdc++/101923
704         * include/bits/std_function.h (function(function&&)): Check for
705         non-empty parameter before doing any work.
707 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
709         * include/bits/cow_string.h (basic_string::contains): Do not
710         define for -std=gnu++20.
712 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
714         * include/bits/ranges_util.h (__not_same_as): Rename to
715         __different_from.
716         * include/std/ranges (__not_same_as): Likewise.
718 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
720         * include/std/utility (exchange): Add noexcept-specifier.
721         * testsuite/20_util/exchange/noexcept.cc: New test.
723 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
725         * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
726         (build_libstdcxx_dictionary): Register printer for
727         std::error_code and std::error_condition.
728         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
730 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
732         PR libstdc++/101937
733         * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
734         static data member.
735         (print_word): Use qualified-id to access it.
737 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
739         * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
740         Install another copy of the GDB hook.
741         * python/Makefile.in: Regenerate.
743 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
745         PR libstdc++/101870
746         * include/c_global/cmath (hypot): Use __promoted_t.
747         (lerp): Add new overload accepting any arithmetic types.
748         * include/ext/type_traits.h (__promoted_t): New alias template.
749         * testsuite/26_numerics/lerp.cc: Moved to...
750         * testsuite/26_numerics/lerp/1.cc: ...here.
751         * testsuite/26_numerics/lerp/constexpr.cc: New test.
752         * testsuite/26_numerics/lerp/version.cc: New test.
754 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
756         * testsuite/26_numerics/lerp.cc: Add header name to #error.
757         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
758         * testsuite/26_numerics/midpoint/version.cc: New test.
760 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
762         * include/experimental/random (experimental::randint): Add
763         nodiscard attribute.
765 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
767         * src/c++98/locale_init.cc: Require C++11.
768         * src/c++98/localename.cc: Likewise.
769         * src/c++98/misc-inst.cc: Require C++98.
771 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
773         PR libstdc++/101866
774         * testsuite/experimental/random/randint.cc: Loop and retry if
775         reseed() produces the same sequence.
777 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
779         * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
780         (is_pointer_interconvertible_base_of_v)
781         (is_pointer_interconvertible_base_of): Define for C++20.
782         * include/std/version (__cpp_lib_is_pointer_interconvertible):
783         Define.
784         * testsuite/23_containers/span/layout_compat.cc: Use correct
785         feature test macro for std::is_layout_compatible_v.
786         * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
787         * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
789 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
791         * include/bits/regex.h (basic_regex::transform_primary): Use
792         _GLIBCXX_STD_C::vector for local variable.
793         * include/bits/regex.tcc (__regex_algo_impl): Use reference to
794         _GLIBCXX_STD_C::vector base class of match_results.
795         * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
796         _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
797         variables.
798         * include/bits/regex_compiler.h (_BracketMatcher): Use
799         _GLIBCXX_STD_C::vector for data members.
800         * include/bits/regex_executor.h (_Executor): Likewise.
801         * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
803 2021-08-09  François Dumont  <fdumont@gcc.gnu.org>
805         * include/debug/safe_container.h
806         (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
807         (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
808         (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
810 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
812         * testsuite/23_containers/unordered_map/cons/default.cc: Add
813         equality comparison operators to allocator.
814         * testsuite/23_containers/unordered_set/cons/default.cc:
815         Likewise.
817 2021-08-08  François Dumont  <fdumont@gcc.gnu.org>
819         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
820         dg-prune-output reason with 'builtin_unreachable'.
821         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
822         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
823         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
824         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
825         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
826         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
827         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
828         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
830 2021-08-08  Hans-Peter Nilsson  <hp@bitrange.com>
832         * testsuite/std/ranges/iota/max_size_type.cc: Set
833         dg-timeout-factor to 4.
835 2021-08-06  Jonathan Wakely  <jwakely@redhat.com>
837         * libsupc++/compare (compare_three_way, strong_order)
838         (weak_order, partial_order, compare_strong_order_fallback)
839         (compare_weak_order_fallback, compare_partial_order_fallback):
840         Move nodiscard attributes to correct location.
842 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
844         PR libstdc++/101782
845         * include/bits/ranges_base.h (ranges::begin, ranges::end)
846         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
847         (ranges::empty, ranges::data): Move attribute after the
848         declarator-id instead of at the end of the declarator.
849         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
850         Move attributes back to the start of the function declarator,
851         but move the requires-clause to the end.
852         (common_iterator): Move attribute after the declarator-id.
853         * include/bits/stl_queue.h (queue): Remove ill-formed attributes
854         from friend declaration that are not definitions.
855         * include/std/ranges (views::all, views::filter)
856         (views::transform, views::take, views::take_while,
857         views::drop) (views::drop_while, views::join,
858         views::lazy_split) (views::split, views::counted,
859         views::common, views::reverse) (views::elements): Move
860         attributes after the declarator-id.
862 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
864         * libsupc++/compare (partial_ordering, weak_ordering)
865         (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
866         (compare_three_way, strong_order, weak_order, partial_order)
867         (compare_strong_order_fallback, compare_weak_order_fallback)
868         (compare_partial_order_fallback, __detail::__synth3way): Add
869         nodiscard attribute.
870         * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
871         -Wno-unused-result to options.
873 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
875         PR libstdc++/101782
876         * include/bits/ranges_base.h (ranges::begin, ranges::end)
877         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
878         (ranges::empty, ranges::data): Move attribute to the end of
879         the declarator.
880         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
881         (common_iterator): Likewise for non-member operator functions.
882         * include/std/ranges (views::all, views::filter)
883         (views::transform, views::take, views::take_while, views::drop)
884         (views::drop_while, views::join, views::lazy_split)
885         (views::split, views::counted, views::common, views::reverse)
886         (views::elements): Likewise.
887         * testsuite/std/ranges/access/101782.cc: New test.
889 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
891         * include/bits/forward_list.h: Add [[nodiscard]] to functions
892         with no side-effects.
893         * include/bits/stl_bvector.h: Likewise.
894         * include/bits/stl_deque.h: Likewise.
895         * include/bits/stl_list.h: Likewise.
896         * include/bits/stl_queue.h: Likewise.
897         * include/bits/stl_stack.h: Likewise.
898         * include/bits/stl_vector.h: Likewise.
899         * include/debug/deque: Likewise.
900         * include/debug/forward_list: Likewise.
901         * include/debug/list: Likewise.
902         * include/debug/safe_iterator.h: Likewise.
903         * include/debug/vector: Likewise.
904         * include/std/array: Likewise.
905         * testsuite/23_containers/array/creation/3_neg.cc: Use
906         -Wno-unused-result.
907         * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
908         to void.
909         * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
910         * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
911         * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
912         * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
913         Likewise.
914         * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
915         Likewise.
916         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
917         Adjust dg-error line numbers.
918         * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
919         result to void.
920         * testsuite/23_containers/deque/debug/invalidation/4.cc:
921         Likewise.
922         * testsuite/23_containers/deque/types/1.cc: Use
923         -Wno-unused-result.
924         * testsuite/23_containers/list/types/1.cc: Cast result to void.
925         * testsuite/23_containers/priority_queue/members/7161.cc:
926         Likewise.
927         * testsuite/23_containers/queue/members/7157.cc: Likewise.
928         * testsuite/23_containers/vector/59829.cc: Likewise.
929         * testsuite/23_containers/vector/ext_pointer/types/1.cc:
930         Likewise.
931         * testsuite/23_containers/vector/ext_pointer/types/2.cc:
932         Likewise.
933         * testsuite/23_containers/vector/types/1.cc: Use
934         -Wno-unused-result.
936 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
938         * include/bits/iterator_concepts.h (iter_move): Add
939         [[nodiscard]].
940         * include/bits/range_access.h (begin, end, cbegin, cend)
941         (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
942         * include/bits/ranges_base.h (ranges::begin, ranges::end)
943         (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
944         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
945         (ranges::empty, ranges::data, ranges::cdata): Likewise.
946         * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
947         (back_insert_iterator, front_insert_iterator, insert_iterator)
948         (move_iterator, move_sentinel, common_iterator)
949         (counted_iterator): Likewise.
950         * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
951         Likewise.
952         * include/bits/stream_iterator.h (istream_iterator)
953         (ostream_iterartor): Likewise.
954         * include/bits/streambuf_iterator.h (istreambuf_iterator)
955         (ostreambuf_iterator): Likewise.
956         * include/std/ranges (views::single, views::iota, views::all)
957         (views::filter, views::transform, views::take, views::take_while)
958         (views::drop, views::drop_while, views::join, views::lazy_split)
959         (views::split, views::counted, views::common, views::reverse)
960         (views::elements): Likewise.
961         * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
962         * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
963         * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
964         Likewise.
965         * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
966         * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
967         Likewise.
968         * testsuite/21_strings/basic_string/range_access/char/1.cc:
969         Cast result to void.
970         * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
971         Likewise.
972         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
973         Likewise.
974         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
975         Likewise.
976         * testsuite/23_containers/array/range_access.cc: Likewise.
977         * testsuite/23_containers/deque/range_access.cc: Likewise.
978         * testsuite/23_containers/forward_list/range_access.cc:
979         Likewise.
980         * testsuite/23_containers/list/range_access.cc: Likewise.
981         * testsuite/23_containers/map/range_access.cc: Likewise.
982         * testsuite/23_containers/multimap/range_access.cc: Likewise.
983         * testsuite/23_containers/multiset/range_access.cc: Likewise.
984         * testsuite/23_containers/set/range_access.cc: Likewise.
985         * testsuite/23_containers/unordered_map/range_access.cc:
986         Likewise.
987         * testsuite/23_containers/unordered_multimap/range_access.cc:
988         Likewise.
989         * testsuite/23_containers/unordered_multiset/range_access.cc:
990         Likewise.
991         * testsuite/23_containers/unordered_set/range_access.cc:
992         Likewise.
993         * testsuite/23_containers/vector/range_access.cc: Likewise.
994         * testsuite/24_iterators/customization_points/iter_move.cc:
995         Likewise.
996         * testsuite/24_iterators/istream_iterator/sentinel.cc:
997         Likewise.
998         * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
999         Likewise.
1000         * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
1001         * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
1002         * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
1003         * testsuite/24_iterators/range_access/range_access.cc:
1004         Likewise.
1005         * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1006         * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1007         * testsuite/28_regex/range_access.cc: Likewise.
1008         * testsuite/experimental/string_view/range_access/char/1.cc:
1009         Likewise.
1010         * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1011         Likewise.
1012         * testsuite/ext/vstring/range_access.cc: Likewise.
1013         * testsuite/std/ranges/adaptors/take.cc: Likewise.
1014         * testsuite/std/ranges/p2259.cc: Likewise.
1016 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1018         * include/bits/random.tcc (linear_congruential_engine): Do not
1019         define static constexpr members when they are implicitly inline.
1020         * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
1021         (__ratio_add, __ratio_subtract): Likewise.
1022         * include/std/type_traits (integral_constant): Likewise.
1023         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1024         line number.
1026 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1028         * testsuite/util/testsuite_common_types.h: Replace uses of
1029         tr1::unordered_map and tr1::unordered_set with their C++11
1030         equivalents.
1031         * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
1032         dg-error line number.
1033         * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
1034         * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
1035         Likewise.
1036         * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
1037         Likewise.
1038         * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
1039         Likewise.
1040         * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
1041         Likewise.
1042         * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
1043         Likewise.
1045 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1047         * include/std/memory_resource (polymorphic_allocator::delete_object):
1048         Call destructor directly instead of using destroy.
1049         (allocator_traits<polymorphic_allocator<T>>): Define partial
1050         specialization.
1052 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1054         * testsuite/20_util/function_objects/binders/3113.cc: Remove
1055         trailing whitespace.
1056         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1057         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1058         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1059         Likewise.
1060         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1061         * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
1062         Likewise.
1063         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1064         Likewise.
1065         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1066         Likewise.
1068 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1070         * doc/xml/manual/evolution.xml: Document deprecation.
1071         * doc/html/*: Regenerate.
1072         * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
1073         (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
1074         * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
1075         and later.
1076         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
1077         for C++11 and C++14 changes to std::random_shuffle and
1078         std::shuffle.
1079         * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
1080         use deprecated algorithms.
1081         * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1082         * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1083         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1084         Likewise.
1085         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1086         Likewise.
1088 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1090         * testsuite/23_containers/forward_list/operations/3.cc:
1091         Use lambda instead of std::bind2nd.
1092         * testsuite/20_util/function_objects/binders/3113.cc: Add
1093         options for testing deprecated features.
1094         * testsuite/20_util/pair/cons/99957.cc: Likewise.
1095         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1096         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1097         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1098         Likewise.
1099         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1100         * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1101         * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1102         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1103         * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
1104         * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
1105         * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1106         Likewise.
1107         * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1108         Likewise.
1109         * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
1110         New proc.
1112 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1114         * include/bits/regex_executor.h (_State_info): Replace
1115         unique_ptr<bool[]> with array of bool.
1116         * include/bits/regex_executor.tcc: Likewise.
1117         * include/bits/regex_scanner.tcc: Replace std::strchr with
1118         __builtin_strchr.
1119         * include/std/regex: Replace standard headers with smaller
1120         internal ones.
1121         * testsuite/28_regex/traits/char/lookup_classname.cc: Include
1122         <string.h> for strlen.
1123         * testsuite/28_regex/traits/char/lookup_collatename.cc:
1124         Likewise.
1126 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
1128         * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
1129         RAII class template.
1130         (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
1131         instead of unique_ptr.
1133 2021-08-02  Patrick Palka  <ppalka@redhat.com>
1135         PR libstdc++/101599
1136         * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
1137         Add missing std::move in return statement.
1138         (__partition_copy_fn::operator()): Rename templtae parameter
1139         _O2 to _Out2.  Uglify function parameters out_true and out_false.
1140         * include/bits/ranges_algobase.h (__copy_or_move): Add missing
1141         std::move to recursive call that unwraps a __normal_iterator
1142         output iterator.
1143         * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
1144         * testsuite/25_algorithms/move/constrained.cc (test05): New test.
1146 2021-08-02  Patrick Palka  <ppalka@redhat.com>
1148         PR libstdc++/101589
1149         * include/std/ranges (lazy_split_view::_InnerIter::base): Make
1150         the const& overload unconstrained and return a const reference
1151         as per LWG 3533.  Make unconditionally noexcept.
1152         (elements_view::base): Revert accidental r12-569 change.
1153         (elements_view::_Iterator::base): Make the const& overload
1154         unconstrained and return a const reference as per LWG 3533.
1155         Make unconditionally noexcept.
1157 2021-08-02  Patrick Palka  <ppalka@redhat.com>
1159         PR libstdc++/101483
1160         * include/std/ranges (join_view::_Iterator::_Iterator): Add
1161         missing std::move.
1163 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
1165         PR libstdc++/101709
1166         * src/filesystem/ops-common.h (get_temp_directory_from_env):
1167         Add error_code parameter.
1168         * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
1169         argument to get_temp_directory_from_env and check it.
1170         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1172 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
1174         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1175         Add dg-error for c++11_only target.
1177 2021-07-30  Jonathan Wakely  <jwakely@redhat.com>
1179         PR libstdc++/65018
1180         * configure.ac: Check for secure_getenv.
1181         * config.h.in: Regenerate.
1182         * configure: Regenerate.
1183         * src/filesystem/ops-common.h (get_temp_directory_from_env): New
1184         helper function to obtain path from the environment.
1185         * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
1186         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1187         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1188         Print messages if test cannot be run.
1189         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1190         Likewise. Fix incorrect condition. Use "TMP" to work with
1191         Windows as well as POSIX.
1193 2021-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
1195         * src/c++17/memory_resource.cc: Use __exchange instead
1196         of std::exchange.
1198 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1200         * include/experimental/optional (__throw_bad_optional_access):
1201         Replace GNU attribute with C++11 attribute.
1202         (optional::value, optional::value_or): Use if statements
1203         instead of conditional expressions.
1204         * include/std/optional (__throw_bad_optional_access)
1205         (optional::value, optional::value_or): Likewise.
1207 2021-07-27  Marek Polacek  <polacek@redhat.com>
1209         DR 1512
1210         PR c++/99701
1211         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1212         Move a line...
1213         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1214         ...here.  New test.
1216 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1218         * include/bits/cow_string.h: Consistently use tab for
1219         indentation.
1221 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1223         * include/Makefile.am: Add new header.
1224         * include/Makefile.in: Regenerate.
1225         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1226         (basic_string): Move definition of Copy-on-Write string to
1227         new file.
1228         * include/bits/basic_string.tcc: Likewise.
1229         * include/bits/cow_string.h: New file.
1231 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1233         * include/std/algorithm: Do not include <utility>.
1234         * include/std/functional: Likewise.
1235         * include/std/regex: Include <bits/stl_pair.h> instead of
1236         <utility>.
1237         * include/debug/map.h: Likewise.
1238         * include/debug/multimap.h: Likewise.
1239         * include/debug/multiset.h: Likewise.
1240         * include/debug/set.h: Likewise.
1241         * include/debug/vector: Likewise.
1242         * include/bits/fs_path.h: Likewise.
1243         * include/bits/unique_ptr.h: Do not include <utility>.
1244         * include/experimental/any: Likewise.
1245         * include/experimental/executor: Likewise.
1246         * include/experimental/memory: Likewise.
1247         * include/experimental/optional: Likewise.
1248         * include/experimental/socket: Use __exchange instead
1249         of std::exchange.
1250         * src/filesystem/ops-common.h: Likewise.
1251         * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
1252         errors to not use a hardcoded line number.
1253         * testsuite/20_util/default_delete/void_neg.cc: Likewise.
1254         * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1255         Include <utility> for std::as_const.
1256         * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1257         Likewise.
1258         * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1259         Likewise.
1260         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1261         Likewise.
1262         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1263         Adjust dg-error line number.
1265 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1267         * include/Makefile.am: Add bits/utility.h header.
1268         * include/Makefile.in: Regenerate.
1269         * include/bits/utility.h: New file.
1270         * include/std/utility (tuple_size, tuple_element): Move
1271         to new header.
1272         * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
1273         Move to <tuple>.
1274         (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
1275         (in_place_t, in_place_index_t, in_place_type_t): Likewise.
1276         * include/bits/ranges_util.h: Include new header instead of
1277         <utility>.
1278         * include/bits/stl_pair.h (tuple_size, tuple_element): Move
1279         partial specializations for std::pair here.
1280         (get): Move overloads for std::pair here.
1281         * include/std/any: Include new header instead of <utility>.
1282         * include/std/array: Likewise.
1283         * include/std/memory_resource: Likewise.
1284         * include/std/optional: Likewise.
1285         * include/std/variant: Likewise.
1286         * include/std/tuple: Likewise.
1287         (__is_tuple_like_impl<tuple<T...>>): Move here.
1288         (get) Declare overloads for std::array.
1289         * include/std/version (__cpp_lib_tuples_by_type): Change type
1290         to long.
1291         * testsuite/20_util/optional/84601.cc: Include <utility>.
1292         * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1293         Likewise.
1294         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1295         Adjust dg-error line numbers.
1296         * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
1297         * testsuite/std/ranges/access/cend.cc: Likewise.
1298         * testsuite/std/ranges/access/end.cc: Likewise.
1299         * testsuite/std/ranges/single_view.cc: Likewise.
1301 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
1303         * include/std/future: Include <bits/atomic_base.h> instead of
1304         <atomic>.
1306 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
1308         * include/bits/stl_relops.h: Update documentation comments.
1310 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1312         PR libstdc++/101583
1313         * include/bits/hashtable.h (_Hashtable): Replace mixin with
1314         _Enable_default_ctor. Construct it explicitly in all
1315         non-forwarding, non-defaulted constructors.
1316         * testsuite/23_containers/unordered_map/cons/default.cc: Check
1317         non-default constructors can be used.
1318         * testsuite/23_containers/unordered_set/cons/default.cc:
1319         Likewise.
1321 2021-07-22  David Edelsohn  <dje.gcc@gmail.com>
1323         * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
1325 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1327         PR libstdc++/94295
1328         * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
1329         (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
1330         (allocator::allocate, allocator::deallocate): Use new macros.
1332 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1334         PR libstdc++/101571
1335         * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
1336         constructor parameter to reference and use addressof.
1337         * testsuite/util/testsuite_iterators.h: Define deleted operator&
1338         overloads for test iterators.
1340 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1342         * include/bits/std_function.h (_Function_base): Add
1343         default member initializers and define constructor as defaulted.
1344         (function::_M_invoker): Add default member initializer.
1346 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1348         PR libstdc++/100682
1349         * doc/xml/manual/debug_mode.xml: Update documentation about
1350         debug capability of std::array.
1351         * doc/html/*: Regenerate.
1352         * include/debug/array: New file.
1354 2021-07-21  Jonathan Wakely  <jwakely@redhat.com>
1356         PR libstdc++/101542
1357         * include/ext/rope (sequence_buffer): Add move constructor and
1358         move assignment operator.
1359         * testsuite/ext/rope/101542.cc: New test.
1361 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
1363         PR libstdc++/101510
1364         * src/c++17/fs_ops.cc (fs::create_directories): Use status
1365         instead of symlink_status.
1366         * src/filesystem/ops.cc (fs::create_directories): Likewise.
1367         * testsuite/27_io/filesystem/operations/create_directories.cc:
1368         Check symlink to existing directory.
1369         * testsuite/27_io/filesystem/operations/create_directory.cc: Do
1370         not test with symlinks on Windows.
1371         * testsuite/experimental/filesystem/operations/create_directories.cc:
1372         Check symlink to existing directory.
1373         * testsuite/experimental/filesystem/operations/create_directory.cc:
1374         Do not test with symlinks on Windows.
1376 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
1378         PR libstdc++/100863
1379         * include/bits/hashtable.h (_Hashtable): Conditionally delete
1380         default constructor by deriving from _Enable_special_members.
1381         * testsuite/23_containers/unordered_map/cons/default.cc: New test.
1382         * testsuite/23_containers/unordered_set/cons/default.cc: New test.
1384 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
1386         PR libstdc++/101510
1387         * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
1388         * testsuite/27_io/filesystem/operations/create_directory.cc:
1389         Test creating directory with name of existing symlink to
1390         directory.
1391         * testsuite/experimental/filesystem/operations/create_directory.cc:
1392         Likewise.
1394 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1396         * include/std/tuple (get<I>): Add deleted overload for bad
1397         index.
1398         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1399         expected errors.
1401 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1403         * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
1404         Use __int_traits unconditionally.
1406 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1408         * include/bits/random.h (_Shift::__value): Use constexpr.
1409         (_Select_uint_least_t::type): Use using-declaration.
1410         (_Mod): Likewise.
1411         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1412         line number.
1414 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1416         * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1417         instead of diagnostic pragmas.
1418         * include/bits/functional_hash.h: Likewise.
1419         * include/bits/iterator_concepts.h (__is_signed_int128)
1420         (__is_unsigned_int128): Likewise.
1421         * include/bits/max_size_type.h (__max_size_type): Likewise.
1422         (numeric_limits<__max_size_type>): Likewise.
1423         * include/bits/std_abs.h (abs): Likewise.
1424         * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1425         * include/bits/uniform_int_dist.h (uniform_int_distribution):
1426         Likewise.
1427         * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1428         Likewise.
1429         * include/std/type_traits (__is_integral_helper<INT_N>)
1430         (__is_signed_integer, __is_unsigned_integer)
1431         (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1432         * include/std/limits (__INT_N): Add __extension__ keyword.
1433         * include/bits/random.h (_Select_uint_least_t)
1434         (random_device): Likewise.
1436 2021-07-16  Patrick Palka  <ppalka@redhat.com>
1438         PR libstdc++/101231
1439         * include/std/ranges (_CachedPosition::_M_get): For non-forward
1440         ranges, just call __builtin_unreachable.
1441         * testsuite/std/ranges/istream_view.cc (test05): New test.
1443 2021-07-16  Patrick Palka  <ppalka@redhat.com>
1445         PR libstdc++/101214
1446         * include/std/ranges (split_view::split_view): Use std::move.
1447         (split_view::_Iterator::_Iterator): Remove redundant
1448         default_initializable constraint.
1449         (split_view::_Sentinel::_Sentinel): Declare.
1450         * testsuite/std/ranges/adaptors/split.cc (test02): New test.
1452 2021-07-16  Marek Polacek  <polacek@redhat.com>
1454         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1455         dg-error.
1457 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1459         * include/bits/unique_ptr.h: Adjust doxygen markup.
1461 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1463         PR libstdc++/101307
1464         * include/std/type_traits: Adjust doxygen markup.
1466 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1468         * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
1469         uses of non-standard integer types.
1470         * include/bits/functional_hash.h: Likewise.
1471         * include/bits/iterator_concepts.h: Likewise.
1472         * include/bits/max_size_type.h: Likewise.
1473         * include/bits/std_abs.h: Likewise.
1474         * include/bits/stl_algobase.h: Likewise.
1475         * include/bits/uniform_int_dist.h: Likewise.
1476         * include/ext/numeric_traits.h: Likewise.
1477         * include/std/type_traits: Likewise.
1479 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
1481         PR libstdc++/101427
1482         * include/std/tuple (tuple_element): Improve static_assert text.
1483         (__get_helper): Add deleted overload.
1484         (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
1485         __get_helper directly.
1486         (__get_helper2): Remove.
1487         (__find_uniq_type_in_pack): New constexpr helper function.
1488         (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
1489         of __get_helper2.
1490         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1491         expected errors.
1492         * testsuite/20_util/tuple/element_access/101427.cc: New test.
1494 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
1496         PR libstdc++/101429
1497         * include/bits/c++config (__replacement_assert): Add noexcept.
1498         [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1499         instead of __replacement_assert.
1501 2021-07-14  Jonathan Wakely  <jwakely@redhat.com>
1503         * include/std/string_view (basic_string_view(It, End)): Add
1504         noexcept-specifier.
1505         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1506         Check noexcept-specifier. Also check construction without CTAD.
1508 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
1510         PR c++/101361
1511         * include/std/string_view (ends_with): Use traits_type::compare
1512         directly.
1514 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
1516         * include/std/string_view: Only include <bits/ranges_base.h>
1517         once, and only for C++20 and later.
1519 2021-07-12  Jonathan Wakely  <jwakely@redhat.com>
1521         PR libstdc++/101411
1522         * include/std/span (as_writable_bytes): Add requires-clause.
1523         * testsuite/23_containers/span/101411.cc: New test.
1525 2021-07-09  Matheus Castanho  <msc@linux.ibm.com>
1527         * include/std/mutex (__lock_impl): Check
1528         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1530 2021-07-02  Jonathan Wakely  <jwakely@redhat.com>
1532         PR libstdc++/101271
1533         * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
1534         Remove noexcept-specifier.
1535         (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
1536         * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
1537         operator[].
1539 2021-07-01  Jonathan Wakely  <jwakely@redhat.com>
1541         * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
1542         * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
1543         Add some more predefined macros.
1544         * include/bits/fs_fwd.h: Move @addtogroup commands inside
1545         namespaces. Add better documentation.
1546         * include/bits/fs_path.h: Likewise.
1547         * include/experimental/bits/fs_fwd.h: Likewise.
1548         * include/experimental/bits/fs_path.h: Likewise.
1549         * include/ext/throw_allocator.h: Fix typo and improve docs.
1550         * include/std/chrono: Move @addtogroup commands.
1551         * include/std/system_error: Move @addtogroup commands.
1552         * libsupc++/exception: Improve documentation.
1553         * libsupc++/exception.h: Add @since documentation.
1555 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
1557         PR libstdc++/101258
1558         * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
1559         (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
1560         (PREDEFINED): Add/fix some more macros that need to be expanded.
1561         * include/bits/random.h: Stop Doxygen from documenting internal
1562         implementation details.
1563         * include/bits/random.tcc: Likewise.
1564         * include/bits/this_thread_sleep.h: Fix @file name.
1565         * include/experimental/bits/simd.h: Add to Doxygen group. Do not
1566         document internal implementation details.
1567         * include/experimental/bits/simd_detail.h: Do not document
1568         internal implementation details.
1569         * include/experimental/simd: Define Doxygen groups.
1570         * include/experimental/type_traits: Improve documentation for
1571         the header file. Define groups. Use @since commands.
1572         * include/std/scoped_allocator (scoped_allocator_adaptor): Move
1573         declaration before undocumented region.
1574         * include/std/type_traits (true_type, false_type): Use using
1575         declaration instead of typedef.
1576         (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
1577         (is_nothrow_invocable_r_v): Move definitions next to other C++17
1578         variable templates.
1579         Do not document internal implementation details. Move misplaced
1580         group-end command. Define group for variable templates.
1581         * include/std/variant: Do not document internal implementation
1582         details.
1583         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1584         line number.
1586 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
1588         * include/experimental/simd: Do not define anything pre-C++17.
1590 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
1592         * include/bits/random.tcc [__cpp_inline_variables]: Remove
1593         redundant definitions of static constexpr member variables.
1594         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1595         line number.
1597 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1599         * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
1600         explicit instantiation declarations.
1601         * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
1602         explicit instantiation definitions.
1604 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1606         PR libstdc++/97088
1607         * testsuite/17_intro/names.cc: Fix #if condition for names used
1608         by newlib headers.
1610 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1612         PR libstdc++/101236
1613         * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
1614         Fail gracefully if element_type is incomplete.
1615         * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
1616         the standard doesn't require this test to work for array types.
1617         * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
1618         types can be used with array specialization.
1619         * testsuite/20_util/unique_ptr/101236.cc: New test.
1621 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1623         * doc/xml/manual/intro.xml: Document LWG 415 change.
1624         * doc/html/manual/bugs.html: Regenerate.
1625         * include/bits/istream.tcc (ws): Create sentry and catch
1626         exceptions.
1627         * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
1628         * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
1630 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1632         * include/bits/ostream.tcc (basic_ostream::write): Call sputn
1633         directly instead of using _M_write. Do setstate(__err) all
1634         outside the try-catch block.
1635         * include/std/ostream (basic_ostream::_M_write): Declare
1636         private. Use __ostream_insert. Do not define for the versioned
1637         namespace.
1639 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1641         * doc/xml/manual/intro.xml: Document LWG 581 change.
1642         * doc/html/manual/bugs.html: Regenerate.
1643         * include/bits/basic_ios.tcc: Whitespace.
1644         * include/bits/ostream.tcc (basic_ostream::flush()): Construct
1645         sentry.
1646         * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
1647         additional cases.
1648         * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
1649         Likewise.
1650         * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
1651         * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
1652         Likewise.
1654 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1656         * include/bits/ostream.tcc (sentry): Only set failbit if badbit
1657         is set, not if eofbit is set.
1658         (tellp, seekp, seekp): Create sentry object. Do not set badbit
1659         on exceptions.
1660         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
1661         Adjust expected behaviour.
1662         * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
1663         Likewise.
1664         * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
1665         Likewise.
1666         * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
1667         Likewise.
1668         * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
1669         * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
1670         * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
1671         * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
1673 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1675         * include/std/syncstream (basic_syncbuf::swap()): Remove
1676         noexcept, as per LWG 3498.
1678 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1680         PR libstdc++/97088
1681         * testsuite/17_intro/names.cc: Undef more names for newlib and
1682         also for arm-none-linux-gnueabi.
1683         * testsuite/experimental/names.cc: Disable PCH.
1685 2021-06-25  Matthias Kretz  <m.kretz@gsi.de>
1687         * include/experimental/bits/simd.h (__bit_cast): Implement via
1688         __builtin_bit_cast #if available.
1689         (__proposed::simd_bit_cast): Add overloads for simd and
1690         simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
1691         available), which return an object of the requested type with
1692         the same bits as the argument.
1693         * include/experimental/bits/simd_math.h: Use simd_bit_cast
1694         instead of __bit_cast to allow casts to fixed_size_simd.
1695         (copysign): Remove branch that was only required if __bit_cast
1696         cannot be constexpr.
1697         * testsuite/experimental/simd/tests/bits/test_values.h: Switch
1698         from __bit_cast to __proposed::simd_bit_cast since the former
1699         will not cast fixed_size objects anymore.
1701 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1703         * include/experimental/bits/simd_math.h
1704         (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
1705         (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
1706         __arg3.
1708 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1710         * include/experimental/bits/simd.h (__execute_on_index_sequence)
1711         (__execute_on_index_sequence_with_return)
1712         (__call_with_n_evaluations, __call_with_subscripts): Add flatten
1713         attribute.
1715 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1717         * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
1718         (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
1719         roundp[sd] calls.
1721 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1723         * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
1724         implementation doesn't require a _VecBltnBtmsk ABI tag, it
1725         requires either a 64-Byte input (in which case AVX512F must be
1726         available) or AVX512VL.
1728 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1730         * include/experimental/bits/simd_math.h: Undefine internal
1731         macros after use.
1732         (frexp): Move #if to a more sensible position and reformat
1733         preceding code.
1734         (logb): Call _SimdImpl::_S_logb for fixed_size instead of
1735         duplicating the code here.
1736         (modf): Simplify condition.
1738 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1740         * include/experimental/bits/simd_math.h (fabs): Remove
1741         fabs(simd<integral>) overload.
1743 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1745         * include/experimental/bits/simd_converter.h
1746         (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
1747         * include/experimental/bits/simd_fixed_size.h
1748         (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
1749         arguments by const-ref.
1750         (_S_masked_unary): Pass _SimdTuple by const-ref.
1752 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1754         * include/experimental/bits/simd_fixed_size.h
1755         (_AbisInSimdTuple): Removed.
1757 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1759         * include/experimental/bits/simd.h: Add missing operator~
1760         overload for simd<floating-point> to __float_bitwise_operators.
1761         * include/experimental/bits/simd_builtin.h
1762         (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
1763         implement complement for floating-point vectors.
1764         * include/experimental/bits/simd_fixed_size.h
1765         (_SimdImplFixedSize::_S_copysign): New function, forwarding to
1766         copysign implementation of _SimdTuple members.
1767         * include/experimental/bits/simd_math.h (copysign): Call
1768         _SimdImpl::_S_copysign for fixed_size arguments. Simplify
1769         generic copysign implementation using the new ~ operator.
1771 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
1773         * testsuite/experimental/simd/README.md: Fix typos.
1775 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
1777         * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
1778         Add noexcept.
1779         * include/bits/unique_ptr.h (unique_ptr::operator*): Add
1780         conditional noexcept as per LWG 2762.
1781         * testsuite/20_util/shared_ptr/observers/array.cc: Check that
1782         dereferencing cannot throw.
1783         * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
1784         * testsuite/20_util/optional/observers/lwg2762.cc: New test.
1785         * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
1787 2021-06-23  Patrick Palka  <ppalka@redhat.com>
1789         PR c++/101174
1790         * testsuite/23_containers/multiset/cons/deduction.cc:
1791         Uncomment CTAD example that was rejected by this bug.
1792         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1794 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
1796         * include/std/chrono (chrono::year::is_leap()): Fix incorrect
1797         logic in comment.
1799 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
1801         * testsuite/experimental/simd/README.md: New file.
1803 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
1805         * testsuite/experimental/simd/driver.sh: Rewrite output
1806         verbosity logic. Add -p/--percentage option. Allow -v/--verbose
1807         to be used twice. Add -x and -o short options. Parse long
1808         options with = instead of separating space generically. Parce
1809         contracted short options. Make unrecognized options an error.
1810         If same-line output is active, trap on EXIT to increment the
1811         progress (only with --percentage), erase the line and print the
1812         current status.
1813         * testsuite/experimental/simd/generate_makefile.sh: Initialize
1814         helper files for progress account keeping. Update help target
1815         for changes to DRIVEROPTS.
1817 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
1819         * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
1820         and associated warning.
1821         * testsuite/Makefile.in: Regenerate.
1823 2021-06-23  Cassio Neri  <cassio.neri@gmail.com>
1824             Jonathan Wakely  <jwakely@redhat.com>
1825             Ulrich Drepper  <drepper@redhat.com>
1827         * include/std/chrono (chrono::year::is_leap()): Optimize.
1829 2021-06-23  Patrick Palka  <ppalka@redhat.com>
1831         PR c++/86439
1832         * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
1833         CTAD examples.
1834         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1835         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1836         Mention one of the replaced examples is broken due to PR101174.
1837         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1838         * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
1839         ambiguous CTAD examples.
1840         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1841         Likewise.
1842         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1843         Likewise.
1844         * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
1846 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
1848         * include/std/mutex (__detail::__try_lock_impl): Rename
1849         parameter to avoid clashing with newlib's __lockable macro.
1850         (try_lock): Add 'inline' specifier.
1851         * testsuite/17_intro/names.cc: Add check for __lockable.
1852         * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
1854 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
1855             Matthias Kretz  <m.kretz@gsi.de>
1857         * include/std/mutex (lock): Replace recursion with iteration
1858         when lockables all have the same type.
1859         (__detail::__try_lock_impl): Likewise. Pass lockables as
1860         parameters, instead of a tuple. Always lock the first one, and
1861         recurse for the rest.
1862         (__detail::__lock_impl): Adjust call to __try_lock_impl.
1863         (__detail::__try_to_lock): Remove.
1864         * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
1865         * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
1866         arguments.
1867         * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
1868         std::try_lock.
1869         * testsuite/30_threads/try_lock/5.cc: New test.
1871 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
1873         * include/std/memory (declare_reachable, undeclare_reachable)
1874         (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
1875         (pointer_safety): Only define for C++11 to C++20 inclusive.
1876         * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
1878 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
1880         * include/bits/random.h (seed_seq): Constrain initializer-list
1881         constructor.
1882         * include/bits/random.tcc (seed_seq): Add template parameter.
1883         * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
1884         for noexcept.
1885         * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
1886         constraints.
1888 2021-06-22  Thomas Rodgers  <rodgert@appliantology.com>
1890         PR libstdc++/100806
1891         * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
1892         Force _M_release() to wake all waiting threads.
1893         * testsuite/30_threads/semaphore/100806.cc: New test.
1895 2021-06-21  Jonathan Wakely  <jwakely@redhat.com>
1897         * include/std/mutex (__try_to_lock): Move to __detail namespace.
1898         (struct __try_lock_impl): Replace with ...
1899         (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
1900         function templates to implement std::try_lock.
1901         (try_lock): Use new __try_lock_impl.
1902         (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
1903         template to implement std::lock.
1904         (lock): Use __lock_impl.
1906 2021-06-21  Patrick Palka  <ppalka@redhat.com>
1908         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1910 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1912         * include/std/ranges (__non_propagating_cache::operator bool):
1913         Define for split_view::begin().
1914         (split_view): Define as per P2210.
1915         (views::__detail::__can_split_view): Define.
1916         (views::_Split, views::split): Define.
1917         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1918         Test views::split.
1919         * testsuite/std/ranges/adaptors/split.cc: New test.
1920         * testsuite/std/ranges/p2325.cc (test08a): New test.
1921         * testsuite/std/ranges/p2367.cc (test01): Test views::split.
1923 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1925         * include/std/ranges: Rename views::split to views::lazy_split,
1926         split_view to lazy_split_view, etc. throughout.
1927         * testsuite/std/ranges/*: Likewise.
1928         * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
1929         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
1931 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1933         * include/std/ranges (split_view::_OuterIter::__at_end):
1934         Check _M_trailing_empty.
1935         (split_view::_OuterIter::_M_trailing_empty): Define this
1936         data member.
1937         (split_view::_OuterIter::operator++): Set _M_trailing_empty
1938         appropriately.
1939         (split_view::_OuterIter::operator==): Compare
1940         _M_trailing_empty.
1941         * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
1942         split parts instead of one.
1943         * testsuite/std/ranges/adaptors/split.cc (test11): New test.
1945 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1947         * include/std/ranges (split_view::_InnerIter::base): Define as
1948         per P2210.
1950 2021-06-19  Patrick Palka  <ppalka@redhat.com>
1952         * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
1953         Consider _Base instead of _Vp as per LWG 3555.
1954         (elements_view::_Iterator::_S_iter_concept): Likewise.
1956 2021-06-19  Patrick Palka  <ppalka@redhat.com>
1958         * include/std/ranges (split_view::_OuterIter::value_type::begin):
1959         Remove the non-const overload, and remove the copyable constraint
1960         on the const overload as per LWG 3553.
1962 2021-06-19  Patrick Palka  <ppalka@redhat.com>
1964         * include/bits/stl_iterator.h
1965         (__detail::__common_iter_use_postfix_proxy): Add
1966         move_constructible constraint as per LWG 3546.
1967         (common_iterator::__postfix_proxy): Adjust initializer of
1968         _M_keep as per LWG 3546.
1970 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1972         PR libstdc++/100387
1973         * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
1974         to limit comparison complexity to 3*N/2.
1975         (__minmax_element_fn::operator()): Likewise.
1976         (shift_right): Avoid premature std::move of __result.
1977         * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
1978         New tests.
1979         * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
1980         Likewise.
1982 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1984         * include/std/concepts (convertible_to): Just use declval as per
1985         LWG 3557.
1987 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
1989         PR libstdc++/95833
1990         * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
1991         incorrect static_assert with ones matching the 'Mandates'
1992         conditions in the standard.
1993         * testsuite/26_numerics/reduce/95833.cc: New test.
1995 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
1997         * testsuite/21_strings/basic_string/cons/char/1.cc: Use
1998         diagnostic pragma to suppress -Wstringop-overread error.
2000 2021-06-18  Patrick Palka  <ppalka@redhat.com>
2002         * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
2003         (find_if, __find_if_not_fn, find_if_not, _in_in_result)
2004         (__mismatch_fn, mismatch, __search_fn, search): Move to ...
2005         * include/bits/ranges_util.h: ... here.
2006         * include/std/ranges (__detail::find, __detail::find_if)
2007         (__detail::find_if_not, __detail::mismatch): Remove.
2008         (filter_view): Use ranges::find_if instead.
2009         (drop_while_view): Use ranges::find_if_not instead.
2010         (split_view): Use ranges::find and ranges::mismatch instead.
2012 2021-06-18  Patrick Palka  <ppalka@redhat.com>
2014         * include/bits/iterator_concepts.h (weakly_incrementable): Remove
2015         default_initializable requirement.
2016         * include/bits/ranges_base.h (ranges::view): Likewise.
2017         * include/bits/ranges_util.h (subrange): Constrain the default
2018         ctor.
2019         * include/bits/stl_iterator.h (back_insert_iterator): Remove the
2020         default ctor.
2021         (front_insert_iterator): Likewise.
2022         (insert_iterator): Likewise.  Remove NSDMIs.
2023         (common_iterator): Constrain the default ctor.
2024         (counted_iterator): Likewise.
2025         * include/bits/stream_iterator.h (ostream_iterator): Remove the
2026         default ctor.
2027         * include/std/ranges (__detail::__box::operator=): Handle
2028         self-assignment in the primary template.
2029         (__detail::__box): In the partial specialization: adjust
2030         constraints as per P2325.  Add specialized operator= for the
2031         case when the wrapped type is not copyable.  Constrain the
2032         default ctor.  Avoid list-initialization.
2033         (single_view): Constraint the default ctor.
2034         (iota_view): Relax semiregular constraint to copyable.
2035         Constrain the default ctor.
2036         (iota_view::_Iterator): Constraint the default ctor.
2037         (basic_istream_view): Remove the default ctor.  Remove NSDMIs.
2038         Remove redundant checks for empty _M_stream.
2039         (basic_istream_view::_Iterator): Likewise.
2040         (ref_view): Remove the default ctor.  Remove NSDMIs.
2041         (ref_view::_Iterator): Constrain the default ctor.
2042         (__detail::__non_propagating_cache::operator=): Define overload
2043         for assigning from a value of the underlying type.
2044         (filter_view): Likewise.
2045         (filter_view::_Iterator): Likewise.
2046         (transform_view): Likewise.
2047         (transform_view::_Iterator): Likewise.
2048         (take_view): Likewise.
2049         (take_view::_Iterator): Likewise.
2050         (take_while_view): Likewise.
2051         (take_while_view::_Iterator): Likewise.
2052         (drop_while_view): Likewise.
2053         (drop_while_view::_Iterator): Likewise.
2054         (join_view): Likewise.
2055         (split_view::_OuterIter::__current): Adjust after changing the
2056         type of _M_current.
2057         (split_view::_M_current): Wrap it in a __non_propagating_cache.
2058         (split_view::split_view): Constrain the default ctor.
2059         (common_view): Constrain the default ctor.
2060         (reverse_view): Likewise.
2061         (elements_view): Likewise.
2062         * include/std/span (enable_view<span<_ElementType, _Extent>>):
2063         Define this partial specialization to true unconditionally.
2064         * include/std/version (__cpp_lib_ranges): Adjust value.
2065         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
2066         Don't attempt to default construct a back_insert_iterator.
2067         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
2068         Don't attempt to default construct a front_insert_iterator.
2069         * testsuite/24_iterators/insert_iterator/constexpr.cc:
2070         Don't attempt to default construct an insert_iterator.
2071         * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
2072         Remove this test for default constructibility of ostream_iterator.
2073         * testsuite/std/ranges/97600.cc: Don't attempt to default
2074         construct a basic_istream_view.
2075         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
2076         Rename to ...
2077         * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
2078         (test02): Adjust now that __box is copyable-box not
2079         semiregular-box.
2080         (test03): New test.
2081         * testsuite/std/ranges/p2325.cc: New test.
2082         * testsuite/std/ranges/single_view.cc (test06): New test.
2083         * testsuite/std/ranges/view.cc: Adjust now that view doesn't
2084         require default_initializable.
2086 2021-06-17  Jonathan Wakely  <jwakely@redhat.com>
2088         PR libstdc++/91488
2089         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
2090         define when is_constant_evaluated is available.
2091         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
2092         Likewise.
2093         (__constant_string_p, __constant_array_p): Remove.
2094         (char_traits): Use is_constant_evaluated directly.
2095         * include/std/version (__cpp_lib_constexpr_char_traits)
2096         (__cpp_lib_constexpr_string): Only define when
2097         is_constant_evaluated is available.
2099 2021-06-17  Patrick Palka  <ppalka@redhat.com>
2101         PR libstdc++/100940
2102         * include/std/ranges (__adaptor::_Partial): For the "simple"
2103         forwarding partial specializations, also require that
2104         the extra arguments are trivially copyable.
2105         * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
2107 2021-06-17  Patrick Palka  <ppalka@redhat.com>
2109         PR libstdc++/100940
2110         * include/std/ranges (__adaptor::_RangeAdaptor): Document the
2111         template form of _S_has_simple_extra_args.
2112         (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
2113         parameter pack.  Try to treat _S_has_simple_extra_args as a
2114         variable template parameterized by _Args.
2115         (__adaptor::_Partial): Pass _Arg/_Args to the constraint
2116         __adaptor_has_simple_extra_args.
2117         (views::_Take::_S_has_simple_extra_args): Templatize according
2118         to the type of the extra argument.
2119         (views::_Drop::_S_has_simple_extra_args): Likewise.
2120         (views::_Split::_S_has_simple_extra_args): Define.
2121         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2122         Adjust after changes to _S_has_simple_extra_args mechanism.
2123         (test03): Define.
2125 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
2127         * include/bits/iterator_concepts.h (__decay_copy): Name type.
2129 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
2131         * include/bits/ranges_base.h (ranges::begin, ranges::end)
2132         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2133         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2134         (ranges::empty, ranges::data, ranges::cdata): Remove final
2135         keywords and deleted operator& overloads.
2136         * testsuite/24_iterators/customization_points/iter_move.cc: Use
2137         new is_customization_point_object function.
2138         * testsuite/24_iterators/customization_points/iter_swap.cc:
2139         Likewise.
2140         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
2141         Likewise.
2142         * testsuite/std/ranges/access/begin.cc: Likewise.
2143         * testsuite/std/ranges/access/cbegin.cc: Likewise.
2144         * testsuite/std/ranges/access/cdata.cc: Likewise.
2145         * testsuite/std/ranges/access/cend.cc: Likewise.
2146         * testsuite/std/ranges/access/crbegin.cc: Likewise.
2147         * testsuite/std/ranges/access/crend.cc: Likewise.
2148         * testsuite/std/ranges/access/data.cc: Likewise.
2149         * testsuite/std/ranges/access/empty.cc: Likewise.
2150         * testsuite/std/ranges/access/end.cc: Likewise.
2151         * testsuite/std/ranges/access/rbegin.cc: Likewise.
2152         * testsuite/std/ranges/access/rend.cc: Likewise.
2153         * testsuite/std/ranges/access/size.cc: Likewise.
2154         * testsuite/std/ranges/access/ssize.cc: Likewise.
2155         * testsuite/util/testsuite_iterators.h
2156         (is_customization_point_object): New function.
2158 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
2160         * include/bits/ranges_base.h (ranges::begin, ranges::end)
2161         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2162         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2163         (ranges::empty, ranges::data, ranges::cdata): Make types final.
2164         Add deleted operator& overloads.
2165         (ranges::advance, ranges::distance, ranges::next, ranges::prev):
2166         Likewise.
2167         * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
2168         ill-formed & expressions with using-declarations. Add checks for
2169         other function objects.
2171 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
2173         * include/bits/ranges_util.h (view_interface): Add noexcept to
2174         empty, operator bool, data and size members.
2175         (subrange): Add noexcept to constructors.
2176         * include/std/ranges (single_view, ref_view): Add noexcept to
2177         constructors.
2178         (views::single, views::all): Add noexcept.
2179         * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
2180         * testsuite/std/ranges/single_view.cc: Likewise.
2182 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
2184         * include/bits/ranges_util.h (subrange): Add __size_type typedef
2185         and use it to simplify declarations.
2186         (subrange(i, s, n)): Remove assertion.
2187         * testsuite/std/ranges/subrange/constexpr.cc: New test.
2189 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
2191         * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
2192         Replace with function object.
2193         (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
2194         __decay_copy unqualified.
2195         * include/bits/ranges_base.h (__member_end, __adl_end):
2196         Likewise. Use __range_iter_t for type of ranges::begin.
2197         (__member_rend): Use correct value category for rbegin argument.
2198         (__member_data): Use __decay_copy unqualified.
2199         (__begin_data): Use __range_iter_t for type of ranges::begin.
2201 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2203         * include/bits/ranges_base.h (ranges::empty): Check whether
2204         conversion to bool can throw.
2205         * testsuite/std/ranges/access/empty.cc: Check for correct
2206         noexcept-specifier.
2208 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2210         PR libstdc++/100894
2211         * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
2212         use the type if it's a reference.
2213         * testsuite/20_util/common_reference/100894.cc: New test.
2215 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2217         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2218         Add dg-require-filesystem-ts directive.
2220 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2222         PR libstdc++/101034
2223         * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
2224         (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
2225         to use lvalue.
2226         * testsuite/20_util/any/cons/101034.cc: New test.
2228 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2230         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
2231         -std=gnu++17 option.
2233 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2235         PR libstdc++/101056
2236         * libsupc++/compare (compare_partial_order_fallback): Add
2237         constraint using reversed parameter order, as per LWG 3465.
2238         * testsuite/18_support/comparisons/algorithms/fallback.cc:
2239         Adjust expected result.
2241 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2243         * libsupc++/compare (__decayed_same_as): New helper concept.
2244         (strong_order, weak_order, partial_order): Constrain with new
2245         concept instead of using static_assert.
2246         (compare_strong_order_fallback, compare_weak_order_fallback)
2247         (compare_partial_order_fallback): Likewise. Do not deduce return
2248         types. Remove redundant if-constexpr checks.
2249         * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
2251 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2253         PR libstdc++/101055
2254         * include/std/tuple: Use reserved form of attribute name.
2255         * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
2256         check for no_unique_address.
2257         * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2258         Likewise.
2259         * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2260         Likewise.
2262 2021-06-11  Jonathan Wakely  <jwakely@redhat.com>
2264         * include/bits/fs_path.h (operator==, operator<=>): Use new
2265         _S_compare function.
2266         (path::_S_compare): New function to call path::compare in a
2267         context where path::iterator is complete.
2268         * include/experimental/bits/fs_path.h (operator<, operator==):
2269         Define after path::iterator is complete.
2270         * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
2271         test.
2272         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2273         New test.
2275 2021-06-09  Thomas Rodgers  <rodgert@appliantology.com>
2277         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
2278         test logic with constexpr check for is_always_lock_free.
2280 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
2282         PR libstdc++/100982
2283         * include/std/optional (optional::operator=(const optional<U>&)):
2284         Fix value category used in is_assignable check.
2285         * testsuite/20_util/optional/assignment/100982.cc: New test.
2287 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
2289         * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
2290         * include/bits/iterator_concepts.h (indirectly_readable_traits):
2291         Add LWG issue number to comment.
2292         * include/std/memory_resource (polymorphic_allocator::release):
2293         Deprecate.
2294         * testsuite/20_util/allocator/requirements/typedefs.cc: Add
2295         dg-warning for deprecation. Also check std::allocator<void>.
2297 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
2299         PR libstdc++/100889
2300         * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
2301         Change parameter type from _Tp to _Tp*.
2302         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
2303         coverage of types tested.
2305 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
2307         * include/std/barrier (__tree_barrier::_M_arrive): Remove
2308         unnecessary hasher instantiation.
2310 2021-06-08  Jonathan Wakely  <jwakely@redhat.com>
2312         * include/experimental/propagate_const (swap): Constrain.
2313         * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
2315 2021-06-07  Avi Kivity  <avi@scylladb.com>
2317         PR libstdc++/100900
2318         * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
2319         Add missing typename.
2321 2021-06-07  Jonathan Wakely  <jwakely@redhat.com>
2323         PR libstdc++/98842
2324         * include/std/optional (operator<=>(const optional<T>& const U&)):
2325         Add missing constraint and add workaround for template
2326         recursion.
2327         * testsuite/20_util/optional/relops/three_way.cc: Check that
2328         type without equality comparison cannot be compared when wrapped
2329         in std::optional.
2331 2021-06-05  Jonathan Wakely  <jwakely@redhat.com>
2333         PR libstdc++/100824
2334         * include/bits/ranges_base.h (_SSize): Return signed type.
2335         * testsuite/std/ranges/access/ssize.cc: Check with __int128.
2337 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2339         * include/bits/ranges_base.h (_SSize): Return the result of
2340         ranges::size converted to the wider of make-signed-like-t<S> and
2341         ptrdiff_t, rather than the ranges different type.
2342         * testsuite/std/ranges/access/ssize.cc: Adjust expected result
2343         for an iota_view that uses an integer class type for its
2344         difference_type.
2346 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2348         PR libstdc++/100824
2349         * include/bits/ranges_base.h (__member_data): Use __decay_copy.
2350         * testsuite/std/ranges/access/data.cc: Add testcase from PR.
2352 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2354         PR libstdc++/100824
2355         * include/bits/iterator_concepts.h (__detail::__decay_copy)
2356         (__detail::__member_begin, __detail::__adl_begin): Move to
2357         namespace ranges::__cust_access.
2358         (__detail::__ranges_begin): Likewise, and rename to __begin.
2359         Remove redundant static assertion.
2360         * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
2361         Use lvalue in noexcept specifier.
2362         (__as_const): Add non-deduced parameter for value category.
2363         (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
2364         __as_const.
2365         (__member_size, __adl_size, __member_empty, __size0_empty):
2366         (__eq_iter_empty, __adl_data): Use lvalue objects in
2367         requirements.
2368         (__sentinel_size): Likewise. Add check for conversion to
2369         unsigned-like.
2370         (__member_data): Allow non-lvalue types to satisfy the concept,
2371         but use lvalue object in requirements.
2372         (_Size, _SSize): Remove forwarding to always use an lvalue.
2373         (_Data): Likewise. Add static assertion for arrays.
2374         * testsuite/std/ranges/access/cdata.cc: Adjust expected
2375         behaviour for rvalues. Add negative tests for ill-formed
2376         expressions.
2377         * testsuite/std/ranges/access/data.cc: Likewise.
2378         * testsuite/std/ranges/access/empty.cc: Adjust expected
2379         behaviour for rvalues.
2380         * testsuite/std/ranges/access/size.cc: Likewise.
2382 2021-06-04  Tim Adye  <Tim.Adye@cern.ch>
2384         * include/std/any (any::_Manager::_S_access): New static
2385         function to access the contained value.
2386         (any::emplace, __any_caster): Use _S_access member of the
2387         manager type.
2389 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2391         * doc/xml/manual/status_cxx2020.xml:
2392         * doc/html/*: Regenerate.
2393         * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
2394         Define.
2395         * include/std/version (__cpp_lib_generic_unordered_lookup):
2396         Define.
2397         * testsuite/23_containers/unordered_map/operations/1.cc: Check
2398         feature test macro.
2399         * testsuite/23_containers/unordered_set/operations/1.cc:
2400         Likewise.
2402 2021-06-03  Patrick Palka  <ppalka@redhat.com>
2404         * include/bits/ranges_algo.h (__detail::__can_reread_output):
2405         Factor out this concept from ...
2406         (__unique_copy_fn::operator()): ... here.  Use the concept
2407         throughout.
2408         * testsuite/std/ranges/range.cc: Remove now ill-formed use
2409         of range_value_t on an output_range.
2410         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2411         Define value_type, pointer and reference member types to void.
2413 2021-06-03  Patrick Palka  <ppalka@redhat.com>
2415         PR libstdc++/100577
2416         * include/std/ranges (_RangeAdaptorClosure): Document
2417         _S_has_simple_call_op mechanism.
2418         (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2419         (__closure_has_simple_call_op): New concept.
2420         (__adaptor_has_simple_extra_args): Likewise.
2421         (_Partial<_Adaptor, _Args...>): New partial specialization.
2422         (_Partial<_Adaptor, _Arg>): Likewise.
2423         (_Pipe<_Lhs, _Rhs>): Likewise.
2424         (views::_All::_S_has_simple_call_op): Define to true.
2425         (views::_Filter::_S_has_simple_extra_args): Likewise.
2426         (views::_Transform::_S_has_simple_extra_args): Likewise.
2427         (views::_Take::_S_has_simple_extra_args): Likewise.
2428         (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2429         (views::_Drop::_S_has_simple_extra_args): Likewise.
2430         (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2431         (views::_Join::_S_has_simple_call_op): Likewise.
2432         (views::_Split): Document why we don't define
2433         _S_has_simple_extra_args to true for this adaptor.
2434         (views::_Common::_S_has_simple_call_op): Define to true.
2435         (views::_Reverse::_S_has_simple_call_op): Likewise.
2436         (views::_Elements::_S_has_simple_call_op): Likewise.
2437         * testsuite/std/ranges/adaptors/100577.cc: New test.
2439 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2441         PR libstdc++/100863
2442         PR libstdc++/65816
2443         * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2444         Value-initialize subobject.
2445         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2446         Remove XFAIL.
2447         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2448         Remove XFAIL.
2450 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2452         PR libstdc++/96088
2453         * testsuite/23_containers/unordered_map/96088.cc: Adjust
2454         expected number of allocations.
2455         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2457 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2459         * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
2460         * doc/xml/manual/status_cxxtr1.xml: Likewise.
2461         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2462         * doc/html/*: Regenerate.
2464 2021-06-01  Patrick Palka  <ppalka@redhat.com>
2466         PR c++/65816
2467         * testsuite/23_containers/deque/allocator/default_init.cc,
2468         testsuite/23_containers/forward_list/allocator/default_init.cc,
2469         testsuite/23_containers/list/allocator/default_init.cc,
2470         testsuite/23_containers/map/allocator/default_init.cc,
2471         testsuite/23_containers/set/allocator/default_init.cc,
2472         testsuite/23_containers/vector/allocator/default_init.cc,
2473         testsuite/23_containers/vector/bool/allocator/default_init.cc:
2474         Remove xfail.
2476 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2478         * testsuite/23_containers/unordered_map/96088.cc: Change
2479         effective target to c++17.
2480         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2482 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2484         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2485         isblank for C++11 and later.
2487 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2489         PR libstdc++/100833
2490         * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
2491         Fix return value for no-op case.
2492         * testsuite/24_iterators/range_operations/advance.cc: Test
2493         return values of three-argument overload.
2495 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2497         PR libstdc++/99453
2498         * python/Makefile.am: Use archive name for printer hook if no
2499         dynamic library name is available.
2500         * python/Makefile.in: Regenerate.
2502 2021-05-30  Gerald Pfeifer  <gerald@pfeifer.com>
2504         * doc/xml/manual/abi.xml: Remove dead reference to "Intel
2505         Compilers for Linux: Compatibility with GNU Compilers" article.
2506         * doc/html/manual/abi.html: Regenerate.
2508 2021-05-26  François Dumont  <fdumont@gcc.gnu.org>
2510         * include/debug/formatter.h
2511         (_Error_formatter::_Parameter::_Named): New.
2512         (_Error_formatter::_Parameter::_Type): Inherit latter.
2513         (_Error_formatter::_Parameter::_M_integer): Likewise.
2514         (_Error_formatter::_Parameter::_M_string): Likewise.
2515         * src/c++11/debug.cc: Include <cstring>.
2516         (_Print_func_t): New.
2517         (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
2518         (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
2519         (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
2520         (print_type): Rename in...
2521         (print_type_info): ...this. Use pretty_print.
2522         (print_address, print_integer): New.
2523         (print_named_name, print_iterator_constness, print_iterator_state): New.
2524         (print_iterator_seq_type): New.
2525         (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
2526         (print_field): Use latters.
2527         (print_quoted_named_name, print_type_type, print_type, print_instance): New.
2528         (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
2529         Change signature to...
2530         (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
2531         ...this and adapt. Remove intermediate buffer to render input string.
2532         (print_string(PrintContext&, const char*, ptrdiff_t)): New.
2534 2021-05-26  Jonathan Wakely  <jwakely@redhat.com>
2536         PR libstdc++/100768
2537         * include/bits/ranges_base.h (advance, distance, next, prev):
2538         Replace function templates with function objects.
2539         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2540         Adjust for changes to function objects.
2541         * testsuite/std/ranges/adaptors/elements.cc: Add using
2542         declarations for names from namespace ranges.
2543         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2544         * testsuite/24_iterators/range_operations/100768.cc: New test.
2546 2021-05-24  François Dumont  <fdumont@gcc.gnu.org>
2548         PR libstdc++/96088
2549         * include/bits/hashtable_policy.h (_Select2nd): New.
2550         (_NodeBuilder<>): New.
2551         (_ReuseOrAllocNode<>::operator()): Use variadic template args.
2552         (_AllocNode<>::operator()): Likewise.
2553         * include/bits/hashtable.h
2554         (_Hashtable<>::__node_builder_t): New.
2555         (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
2556          New.
2557         (_Hashtable<>::_S_forward_key): New.
2558         (_Hashtable<>::_M_insert): Use latter.
2559         (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
2560         Instantiate node first, compute hash code second.
2561         * testsuite/23_containers/unordered_map/96088.cc: New test.
2562         * testsuite/23_containers/unordered_multimap/96088.cc: New test.
2563         * testsuite/23_containers/unordered_multiset/96088.cc: New test.
2564         * testsuite/23_containers/unordered_set/96088.cc: New test.
2565         * testsuite/util/replacement_memory_operators.h
2566         (counter::_M_increment): New.
2567         (counter::_M_decrement): New.
2568         (counter::reset()): New.
2570 2021-05-24  Patrick Palka  <ppalka@redhat.com>
2572         PR libstdc++/100479
2573         * include/std/ranges (__detail::__non_propagating_cache): Move
2574         definition up to before that of _CachedPosition.  Make base
2575         class _Optional_base protected instead of private.  Add const
2576         overload for operator*.
2577         (__detail::_CachedPosition): Rewrite the partial specialization
2578         for forward ranges as a derived class of __non_propagating_cache.
2579         Remove the size constraint on the partial specialization for
2580         random access ranges.  Add copy/move/copy-assignment/move-assignment
2581         members to the offset partial specialization for random
2582         access ranges that propagate the cached value but additionally
2583         invalidate it in the source object on move.
2584         * testsuite/std/ranges/adaptors/100479.cc: New test.
2586 2021-05-24  Jonathan Wakely  <jwakely@redhat.com>
2588         * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
2589         call to ranges::next.
2590         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2591         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2592         Likewise.
2593         * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
2594         swap_ranges.
2596 2021-05-21  Patrick Palka  <ppalka@redhat.com>
2598         PR libstdc++/100606
2599         * include/std/ranges (drop_while_view::begin): Assert the
2600         precondition added by LWG 3490.
2602 2021-05-21  Patrick Palka  <ppalka@redhat.com>
2604         PR libstdc++/100690
2605         * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
2606         Split out this member function from ...
2607         (iota_view::_Sentinel::operator-): ... here, for sake of access
2608         control.
2609         * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
2611 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
2613         * include/bits/random.tcc (__representable_as_double)
2614         (__p1_representable_as_double): Add "" to static asserts.
2616 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
2618         PR libstdc++/100676
2619         * include/bits/c++config (__glibcxx_assert_1): Rename to ...
2620         (__glibcxx_constexpr_assert): ... this.
2621         (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
2622         (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
2623         or __glibcxx_assert_impl.
2624         (__glibcxx_assert_2): Remove
2625         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
2626         __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
2627         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2628         Adjust expected error.
2629         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2630         Likewise.
2631         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2632         Likewise.
2633         Likewise.
2634         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2635         Likewise.
2636         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2637         Likewise.
2638         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2639         Likewise.
2640         * testsuite/23_containers/span/back_neg.cc: Likewise.
2641         * testsuite/23_containers/span/front_neg.cc: Likewise.
2642         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2644 2021-05-20  Patrick Palka  <ppalka@redhat.com>
2646         PR libstdc++/100639
2647         * include/bits/stl_iterator.h (reverse_iterator::difference_type):
2648         In C++20 mode, define in terms of iter_difference_t as per P0896R4.
2649         (reverse_iterator::reference): Likewise, but with iter_reference_t.
2650         (reverse_iterator::value_type): Likewise, but with iter_value_t.
2651         * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
2652         * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
2654 2021-05-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>
2656         PR libstdc++/100361
2657         * include/std/charconv (to_chars): Hide the overloads for
2658         floating-point types for 16 bit targets.
2659         * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
2660         * testsuite/20_util/to_chars/double.cc: Run this test only on
2661         size32plus targets.
2662         * testsuite/20_util/to_chars/float.cc: Likewise.
2663         * testsuite/20_util/to_chars/long_double.cc: Likewise.
2665 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2667         PR libstdc++/100631
2668         * include/std/ranges (elements_view::_Sentinel::operator-): Use
2669         _M_distance_from in the other operator- overload too.
2670         * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
2672 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
2674         * testsuite/lib/prune.exp: Add note about 'dg-note'.
2676 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2678         PR libstdc++/100475
2679         * include/std/ranges (__box::__box): Use non-list-initialization
2680         in member initializer list of in-place constructor of the
2681         partial specialization for semiregular types.
2682         (__box::operator->): Use std::__addressof.
2683         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
2684         (test02): New test.
2685         * testsuite/std/ranges/single_view.cc (test04): New test.
2687 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2689         PR libstdc++/100621
2690         * include/std/ranges (reverse_view::_S_needs_cached_begin):
2691         Set to true if the underlying non-common random-access range
2692         doesn't have a sized sentinel.
2694 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2696         PR libstdc++/100631
2697         * include/std/ranges (elements_view::_Iterator): Also befriend
2698         _Sentinel<!_Const>.
2699         (elements_view::_Sentinel::_M_equal): Templatize.
2700         (elements_view::_Sentinel::_M_distance_from): Split out from ...
2701         (elements_view::_Sentinel::operator-): ... here.  Depend on
2702         _Base2 instead of _Base in the return type.
2703         * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
2704         New tests.
2706 2021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>
2708         * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
2709         until value change observed.
2710         (__waiter_base::_M_laundered): New member.
2711         (__waiter_base::_M_notify): Check _M_laundered to determine
2712         whether to wake one or all.
2713         (__detail::__atomic_compare): Return true if call to
2714         __builtin_memcmp() == 0.
2715         (__waiter_base::_S_do_spin_v): Adjust predicate.
2716         * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
2717         test.
2719 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
2721         PR libstdc++/100630
2722         * include/experimental/bits/fs_path.h (__is_constructible_from):
2723         Test construction from a const lvalue, not an rvalue.
2724         * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
2725         * testsuite/experimental/filesystem/path/construct/100630.cc:
2726         New test.
2728 2021-05-17  Antony Polukhin  <antoshkka@gmail.com>
2730         PR libstdc++/89728
2731         * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
2732         Declare (but do not define) partial specialization.
2733         * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
2735 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
2737         * include/std/thread (jthread::_S_create): Fix static assert
2738         message.
2739         * testsuite/30_threads/jthread/95989.cc: Re-enable test.
2740         * testsuite/30_threads/jthread/jthread.cc: Do not require
2741         pthread effective target.
2742         * testsuite/30_threads/jthread/2.cc: Moved to...
2743         * testsuite/30_threads/jthread/version.cc: ...here.
2745 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
2747         * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
2748         * doc/Makefile.in: Regenerate.
2749         * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
2750         value.
2751         * scripts/run_doxygen (print_usage): Always print to stdout and
2752         do not exit.
2753         (fail): New function for exiting on error.
2754         (parse_options): Handle --latex_cmd. Do not treat --help the
2755         same as errors. Simplify handling of required arguments.
2757 2021-05-12  Jonathan Wakely  <jwakely@redhat.com>
2759         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2760         Increase dg-timeout-factor to 4. Fix -Wunused-parameter
2761         warnings. Replace bitwise AND with logical AND in loop
2762         condition.
2763         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2764         Replace bitwise AND with logical AND in loop condition.
2765         * testsuite/util/pstl/test_utils.h: Remove unused parameter
2766         names.
2768 2021-05-11  Patrick Palka  <ppalka@redhat.com>
2770         * src/c++17/ryu/LOCAL_PATCHES: Update.
2771         * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
2772         Remove declarations for never-defined functions.
2773         * testsuite/20_util/to_chars/4.cc: New test.
2775 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2777         * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
2778         alternative for macro.
2779         * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
2780         target keyword.
2781         * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
2782         syntax.
2784 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2786         * include/bits/allocator.h (allocator<void>) [C++20]: Add
2787         missing noexcept to constructor. Restore missing POCMA and
2788         is_always_equal_traits.
2789         [C++17]: Make construct and destroy members private and
2790         declare allocator_traits as a friend.
2791         * include/bits/memoryfwd.h (allocator_traits): Declare.
2792         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
2793         Add nodiscard attribute. Add static assertion for LWG 3307.
2794         * include/ext/new_allocator.h (new_allocator::allocate): Add
2795         static assertion for LWG 3307.
2796         * testsuite/20_util/allocator/void.cc: Check that converting
2797         constructor is noexcept. Check for propagation traits and
2798         size_type and difference_type. Check that pointer and
2799         const_pointer are gone in C++20.
2801 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2803         * include/std/stop_token: Remove TODO comment.
2805 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2807         * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
2808         Initialize a non-reference deleter from an rvalue, as per LWG
2809         3548.
2810         (__shared_ptr::_UniqCompatible): Add missing constraint.
2811         * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
2812         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
2813         constraints.
2815 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2817         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
2818         -std=gnu++17 from dg-options directive.
2819         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
2820         Likewise.
2821         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
2822         Likewise.
2823         * testsuite/17_intro/headers/c++2017/operator_names.cc:
2824         Likewise.
2825         * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
2826         * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
2827         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2828         Likewise.
2829         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
2830         * testsuite/18_support/byte/81076.cc: Likewise.
2831         * testsuite/18_support/byte/global_neg.cc: Likewise.
2832         * testsuite/18_support/byte/ops.cc: Likewise.
2833         * testsuite/18_support/byte/requirements.cc: Likewise.
2834         * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
2835         * testsuite/18_support/launder/1.cc: Likewise.
2836         * testsuite/18_support/launder/nodiscard.cc: Likewise.
2837         * testsuite/18_support/launder/requirements.cc: Likewise.
2838         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
2839         * testsuite/18_support/new_aligned.cc: Likewise.
2840         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
2841         Likewise.
2842         * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
2843         Likewise.
2844         * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
2845         * testsuite/20_util/addressof/requirements/constexpr.cc:
2846         Likewise.
2847         * testsuite/20_util/as_const/1.cc: Likewise.
2848         * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
2849         * testsuite/20_util/bind/83427.cc: Likewise.
2850         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2851         * testsuite/20_util/bool_constant/requirements.cc: Likewise.
2852         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
2853         Likewise.
2854         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2855         Likewise.
2856         * testsuite/20_util/duration_cast/rounding.cc: Likewise.
2857         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
2858         Likewise.
2859         * testsuite/20_util/from_chars/1_neg.cc: Likewise.
2860         * testsuite/20_util/from_chars/requirements.cc: Likewise.
2861         * testsuite/20_util/function/91456.cc: Likewise.
2862         * testsuite/20_util/function/cons/deduction.cc: Likewise.
2863         * testsuite/20_util/function_objects/83607.cc: Likewise.
2864         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
2865         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
2866         * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
2867         * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
2868         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
2869         Likewise.
2870         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
2871         Likewise.
2872         * testsuite/20_util/has_unique_object_representations/value.cc:
2873         Likewise.
2874         * testsuite/20_util/hash/nullptr.cc: Likewise.
2875         * testsuite/20_util/in_place/requirements.cc: Likewise.
2876         * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
2877         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2878         Likewise.
2879         * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
2880         Likewise.
2881         * testsuite/20_util/is_aggregate/value.cc: Likewise.
2882         * testsuite/20_util/is_invocable/83395.cc: Likewise.
2883         * testsuite/20_util/is_invocable/91456.cc: Likewise.
2884         * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
2885         Likewise.
2886         * testsuite/20_util/is_invocable/requirements/typedefs.cc:
2887         Likewise.
2888         * testsuite/20_util/is_invocable/value.cc: Likewise.
2889         * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
2890         * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
2891         * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
2892         * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
2893         Likewise.
2894         * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
2895         * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
2896         * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
2897         Likewise.
2898         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2899         Likewise.
2900         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2901         * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
2902         Likewise.
2903         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2904         Likewise.
2905         * testsuite/20_util/is_nothrow_swappable_with/value.cc:
2906         Likewise.
2907         * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
2908         Likewise.
2909         * testsuite/20_util/is_swappable/requirements/typedefs.cc:
2910         Likewise.
2911         * testsuite/20_util/is_swappable/value.cc: Likewise.
2912         * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
2913         Likewise.
2914         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
2915         Likewise.
2916         * testsuite/20_util/is_swappable_with/value.cc: Likewise.
2917         * testsuite/20_util/logical_traits/83134.cc: Likewise.
2918         * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
2919         Likewise.
2920         * testsuite/20_util/logical_traits/requirements/typedefs.cc:
2921         Likewise.
2922         * testsuite/20_util/logical_traits/value.cc: Likewise.
2923         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
2924         * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
2925         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
2926         Likewise.
2927         * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
2928         * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
2929         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
2930         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
2931         * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
2932         Likewise.
2933         * testsuite/20_util/time_point/arithmetic/constexpr.cc:
2934         Likewise.
2935         * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
2936         * testsuite/20_util/to_chars/3.cc: Likewise.
2937         * testsuite/20_util/to_chars/chars_format.cc: Likewise.
2938         * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
2939         * testsuite/20_util/to_chars/requirements.cc: Likewise.
2940         * testsuite/20_util/tuple/78939.cc: Likewise.
2941         * testsuite/20_util/tuple/apply/1.cc: Likewise.
2942         * testsuite/20_util/tuple/apply/2.cc: Likewise.
2943         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
2944         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
2945         * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
2946         * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
2947         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2948         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
2949         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2950         Likewise.
2951         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2952         * testsuite/20_util/void_t/1.cc: Likewise.
2953         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
2954         * testsuite/24_iterators/container_access.cc: Likewise.
2955         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
2956         Likewise.
2957         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
2958         Likewise.
2959         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
2960         Likewise.
2961         * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
2962         Likewise.
2963         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
2964         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
2965         Likewise.
2966         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
2967         * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
2968         Likewise.
2969         * testsuite/26_numerics/lcm/1.cc: Likewise.
2970         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2971         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
2972         * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
2973         Likewise.
2974         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
2975         Likewise.
2976         * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
2977         Likewise.
2978         * testsuite/27_io/types/4.cc: Likewise.
2979         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
2980         * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
2981         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2983 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2985         * testsuite/20_util/function_objects/searchers.cc: Remove
2986         -std=gnu++17 from dg-options directive.
2987         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
2988         Likewise.
2989         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2990         Likewise.
2991         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
2992         Likewise.
2993         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
2994         Likewise.
2995         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
2996         Likewise.
2997         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
2998         Likewise.
2999         * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
3000         Likewise.
3001         * testsuite/25_algorithms/clamp/1.cc: Likewise.
3002         * testsuite/25_algorithms/clamp/2.cc: Likewise.
3003         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
3004         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
3005         Likewise.
3006         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
3007         Likewise.
3008         * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
3009         * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
3010         Likewise.
3011         * testsuite/25_algorithms/sample/1.cc: Likewise.
3012         * testsuite/25_algorithms/sample/2.cc: Likewise.
3013         * testsuite/25_algorithms/sample/3.cc: Likewise.
3014         * testsuite/25_algorithms/sample/81221.cc: Likewise.
3015         * testsuite/25_algorithms/search/searcher.cc: Likewise.
3016         * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
3017         * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
3018         * testsuite/26_numerics/reduce/1.cc: Likewise.
3019         * testsuite/26_numerics/reduce/2.cc: Likewise.
3020         * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
3021         * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
3022         * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
3024 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3026         * testsuite/23_containers/array/cons/deduction.cc: Remove
3027         -std=gnu++17 from dg-options directive.
3028         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
3029         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
3030         Likewise.
3031         * testsuite/23_containers/array/requirements/constexpr_iter.cc:
3032         Likewise.
3033         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3034         Likewise.
3035         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
3036         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
3037         Likewise.
3038         * testsuite/23_containers/forward_list/cons/deduction.cc:
3039         Likewise.
3040         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
3041         Likewise.
3042         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
3043         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
3044         Likewise.
3045         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
3046         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3047         * testsuite/23_containers/map/modifiers/insert/83226.cc:
3048         Likewise.
3049         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3050         Likewise.
3051         * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
3052         * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
3053         Likewise.
3054         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3055         * testsuite/23_containers/multimap/modifiers/extract.cc:
3056         Likewise.
3057         * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
3058         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3059         * testsuite/23_containers/multiset/modifiers/extract.cc:
3060         Likewise.
3061         * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
3062         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
3063         * testsuite/23_containers/queue/deduction.cc: Likewise.
3064         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
3065         Likewise.
3066         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3067         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3068         * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
3069         * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
3070         * testsuite/23_containers/stack/deduction.cc: Likewise.
3071         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
3072         Likewise.
3073         * testsuite/23_containers/unordered_map/cons/deduction.cc:
3074         Likewise.
3075         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3076         Likewise.
3077         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
3078         Likewise.
3079         * testsuite/23_containers/unordered_map/modifiers/merge.cc:
3080         Likewise.
3081         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
3082         Likewise.
3083         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3084         Likewise.
3085         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
3086         Likewise.
3087         * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
3088         Likewise.
3089         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3090         Likewise.
3091         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
3092         Likewise.
3093         * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
3094         Likewise.
3095         * testsuite/23_containers/unordered_set/cons/deduction.cc:
3096         Likewise.
3097         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3098         Likewise.
3099         * testsuite/23_containers/unordered_set/modifiers/merge.cc:
3100         Likewise.
3101         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
3102         Likewise.
3103         * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
3104         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
3105         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
3106         Likewise.
3108 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3110         * testsuite/21_strings/basic_string/79162.cc: Remove
3111         -std=gnu++17 from dg-options directive.
3112         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
3113         * testsuite/21_strings/basic_string/cons/char/79162.cc:
3114         Likewise.
3115         * testsuite/21_strings/basic_string/cons/char/86138.cc:
3116         Likewise.
3117         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
3118         * testsuite/21_strings/basic_string/cons/char/deduction.cc:
3119         Likewise.
3120         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
3121         Likewise.
3122         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
3123         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
3124         Likewise.
3125         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
3126         Likewise.
3127         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
3128         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3129         Likewise.
3130         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
3131         Likewise.
3132         * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
3133         * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3134         * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3135         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
3136         Likewise.
3137         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3138         Likewise.
3139         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3140         Likewise.
3141         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3142         Likewise.
3143         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
3144         Likewise.
3145         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
3146         Likewise.
3147         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
3148         Likewise.
3149         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
3150         Likewise.
3151         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
3152         Likewise.
3153         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
3154         Likewise.
3155         * testsuite/21_strings/basic_string/operations/data/char/2.cc:
3156         Likewise.
3157         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
3158         Likewise.
3159         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
3160         Likewise.
3161         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
3162         Likewise.
3163         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
3164         Likewise.
3165         * testsuite/21_strings/basic_string/operators/char/5.cc:
3166         Likewise.
3167         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
3168         Likewise.
3169         * testsuite/21_strings/basic_string_view/capacity/1.cc:
3170         Likewise.
3171         * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
3172         Likewise.
3173         * testsuite/21_strings/basic_string_view/cons/char/1.cc:
3174         Likewise.
3175         * testsuite/21_strings/basic_string_view/cons/char/2.cc:
3176         Likewise.
3177         * testsuite/21_strings/basic_string_view/cons/char/3.cc:
3178         Likewise.
3179         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
3180         Likewise.
3181         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
3182         Likewise.
3183         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
3184         Likewise.
3185         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
3186         Likewise.
3187         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
3188         Likewise.
3189         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3190         Likewise.
3191         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3192         Likewise.
3193         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3194         Likewise.
3195         * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
3196         Likewise.
3197         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3198         Likewise.
3199         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3200         Likewise.
3201         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3202         Likewise.
3203         * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
3204         Likewise.
3205         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3206         Likewise.
3207         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3208         Likewise.
3209         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3210         Likewise.
3211         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3212         Likewise.
3213         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
3214         Likewise.
3215         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3216         Likewise.
3217         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3218         Likewise.
3219         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3220         Likewise.
3221         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3222         Likewise.
3223         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3224         * testsuite/21_strings/basic_string_view/inserters/94051.cc:
3225         Likewise.
3226         * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
3227         Likewise.
3228         * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
3229         Likewise.
3230         * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
3231         Likewise.
3232         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3233         Likewise.
3234         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3235         Likewise.
3236         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3237         Likewise.
3238         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3239         Likewise.
3240         * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
3241         Likewise.
3242         * testsuite/21_strings/basic_string_view/literals/types.cc:
3243         Likewise.
3244         * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
3245         Likewise.
3246         * testsuite/21_strings/basic_string_view/literals/values.cc:
3247         Likewise.
3248         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3249         Likewise.
3250         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3251         Likewise.
3252         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3253         Likewise.
3254         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3255         Likewise.
3256         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3257         Likewise.
3258         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3259         Likewise.
3260         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3261         Likewise.
3262         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3263         Likewise.
3264         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
3265         Likewise.
3266         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
3267         Likewise.
3268         * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
3269         Likewise.
3270         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3271         Likewise.
3272         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3273         Likewise.
3274         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
3275         Likewise.
3276         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3277         Likewise.
3278         * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
3279         Likewise.
3280         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3281         Likewise.
3282         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
3283         Likewise.
3284         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3285         Likewise.
3286         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3287         Likewise.
3288         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3289         Likewise.
3290         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3291         Likewise.
3292         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3293         Likewise.
3294         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3295         Likewise.
3296         * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
3297         Likewise.
3298         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3299         Likewise.
3300         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3301         Likewise.
3302         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3303         Likewise.
3304         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3305         Likewise.
3306         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3307         Likewise.
3308         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3309         Likewise.
3310         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3311         Likewise.
3312         * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
3313         Likewise.
3314         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3315         Likewise.
3316         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3317         Likewise.
3318         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3319         Likewise.
3320         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3321         Likewise.
3322         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3323         Likewise.
3324         * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
3325         Likewise.
3326         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3327         Likewise.
3328         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
3329         Likewise.
3330         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
3331         Likewise.
3332         * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
3333         Likewise.
3334         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3335         Likewise.
3336         * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
3337         Likewise.
3338         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3339         Likewise.
3340         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3341         Likewise.
3342         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3343         Likewise.
3344         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3345         Likewise.
3346         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3347         Likewise.
3348         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3349         Likewise.
3350         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3351         Likewise.
3352         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3353         Likewise.
3354         * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
3355         Likewise.
3356         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3357         Likewise.
3358         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3359         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3360         * testsuite/21_strings/char_traits/requirements/char/99181.cc:
3361         Likewise.
3362         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3364 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3366         * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
3367         from dg-options directive.
3368         * testsuite/20_util/memory_resource/2.cc: Likewise.
3369         * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
3370         * testsuite/20_util/monotonic_buffer_resource/93208.cc:
3371         Likewise.
3372         * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
3373         Likewise.
3374         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
3375         Likewise.
3376         * testsuite/20_util/monotonic_buffer_resource/release.cc:
3377         Likewise.
3378         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3379         Likewise.
3380         * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
3381         * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
3382         Likewise.
3383         * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3384         * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
3385         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
3386         Likewise.
3387         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
3388         Likewise.
3389         * testsuite/20_util/synchronized_pool_resource/cons.cc:
3390         Likewise.
3391         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
3392         Likewise.
3393         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
3394         Likewise.
3395         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
3396         Likewise.
3397         * testsuite/20_util/synchronized_pool_resource/options.cc:
3398         Likewise.
3399         * testsuite/20_util/synchronized_pool_resource/release.cc:
3400         Likewise.
3401         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
3402         Likewise.
3403         * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
3404         Likewise.
3405         * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
3406         Likewise.
3407         * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
3408         Likewise.
3409         * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3410         Likewise.
3411         * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3412         Likewise.
3413         * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3414         Likewise.
3415         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3416         Likewise.
3417         * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3418         * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3419         Likewise.
3420         * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3421         Likewise.
3422         * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3423         Likewise.
3424         * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3425         * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3426         * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3427         * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3428         * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3429         * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3430         Likewise.
3431         * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3432         * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3433         Likewise.
3434         * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3435         * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3436         * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3437         Likewise.
3438         * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3439         Likewise.
3440         * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3441         Likewise.
3442         * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3443         Likewise.
3444         * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3445         Likewise.
3446         * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3447         Likewise.
3448         * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3449         Likewise.
3450         * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3451         Likewise.
3452         * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3453         * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3454         Likewise.
3455         * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3457 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3459         * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
3460         dg-options.
3461         * testsuite/29_atomics/atomic/is_always_lock_free.cc:
3462         * testsuite/29_atomics/atomic/requirements/typedefs.cc:
3463         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
3464         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
3465         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
3466         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
3467         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
3468         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
3469         Likewise.
3470         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
3471         Likewise.
3472         * testsuite/30_threads/shared_lock/70766.cc: Likewise.
3473         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3474         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
3475         Likewise.
3476         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3477         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3478         Likewise.
3479         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3480         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3481         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3482         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
3484 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3486         * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
3487         dg-options directive.
3488         * testsuite/20_util/any/assign/2.cc: Likewise.
3489         * testsuite/20_util/any/assign/emplace.cc: Likewise.
3490         * testsuite/20_util/any/assign/exception.cc: Likewise.
3491         * testsuite/20_util/any/assign/self.cc: Likewise.
3492         * testsuite/20_util/any/cons/1.cc: Likewise.
3493         * testsuite/20_util/any/cons/2.cc: Likewise.
3494         * testsuite/20_util/any/cons/90415.cc: Likewise.
3495         * testsuite/20_util/any/cons/92156.cc: Likewise.
3496         * testsuite/20_util/any/cons/aligned.cc: Likewise.
3497         * testsuite/20_util/any/cons/explicit.cc: Likewise.
3498         * testsuite/20_util/any/cons/in_place.cc: Likewise.
3499         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3500         * testsuite/20_util/any/make_any.cc: Likewise.
3501         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3502         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3503         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3504         * testsuite/20_util/any/misc/swap.cc: Likewise.
3505         * testsuite/20_util/any/modifiers/1.cc: Likewise.
3506         * testsuite/20_util/any/modifiers/83658.cc: Likewise.
3507         * testsuite/20_util/any/modifiers/92156.cc: Likewise.
3508         * testsuite/20_util/any/observers/type.cc: Likewise.
3509         * testsuite/20_util/any/requirements.cc: Likewise.
3510         * testsuite/20_util/any/typedefs.cc: Likewise.
3511         * testsuite/20_util/optional/77288.cc: Likewise.
3512         * testsuite/20_util/optional/84601.cc: Likewise.
3513         * testsuite/20_util/optional/assignment/1.cc: Likewise.
3514         * testsuite/20_util/optional/assignment/2.cc: Likewise.
3515         * testsuite/20_util/optional/assignment/3.cc: Likewise.
3516         * testsuite/20_util/optional/assignment/4.cc: Likewise.
3517         * testsuite/20_util/optional/assignment/5.cc: Likewise.
3518         * testsuite/20_util/optional/assignment/6.cc: Likewise.
3519         * testsuite/20_util/optional/assignment/7.cc: Likewise.
3520         * testsuite/20_util/optional/assignment/8.cc: Likewise.
3521         * testsuite/20_util/optional/assignment/9.cc: Likewise.
3522         * testsuite/20_util/optional/bad_access.cc: Likewise.
3523         * testsuite/20_util/optional/cons/77727.cc: Likewise.
3524         * testsuite/20_util/optional/cons/85642.cc: Likewise.
3525         * testsuite/20_util/optional/cons/copy.cc: Likewise.
3526         * testsuite/20_util/optional/cons/deduction.cc: Likewise.
3527         * testsuite/20_util/optional/cons/default.cc: Likewise.
3528         * testsuite/20_util/optional/cons/move.cc: Likewise.
3529         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3530         * testsuite/20_util/optional/cons/value.cc: Likewise.
3531         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
3532         * testsuite/20_util/optional/constexpr/cons/default.cc:
3533         Likewise.
3534         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
3535         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
3536         * testsuite/20_util/optional/constexpr/make_optional.cc:
3537         Likewise.
3538         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
3539         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
3540         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
3541         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
3542         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
3543         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
3544         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
3545         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
3546         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
3547         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3548         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
3549         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
3550         * testsuite/20_util/optional/hash.cc: Likewise.
3551         * testsuite/20_util/optional/in_place.cc: Likewise.
3552         * testsuite/20_util/optional/make_optional.cc: Likewise.
3553         * testsuite/20_util/optional/nullopt.cc: Likewise.
3554         * testsuite/20_util/optional/observers/1.cc: Likewise.
3555         * testsuite/20_util/optional/observers/2.cc: Likewise.
3556         * testsuite/20_util/optional/observers/3.cc: Likewise.
3557         * testsuite/20_util/optional/observers/4.cc: Likewise.
3558         * testsuite/20_util/optional/observers/5.cc: Likewise.
3559         * testsuite/20_util/optional/observers/6.cc: Likewise.
3560         * testsuite/20_util/optional/relops/1.cc: Likewise.
3561         * testsuite/20_util/optional/relops/2.cc: Likewise.
3562         * testsuite/20_util/optional/relops/3.cc: Likewise.
3563         * testsuite/20_util/optional/relops/4.cc: Likewise.
3564         * testsuite/20_util/optional/relops/5.cc: Likewise.
3565         * testsuite/20_util/optional/relops/6.cc: Likewise.
3566         * testsuite/20_util/optional/relops/7.cc: Likewise.
3567         * testsuite/20_util/optional/requirements.cc: Likewise.
3568         * testsuite/20_util/optional/swap/1.cc: Likewise.
3569         * testsuite/20_util/optional/swap/2.cc: Likewise.
3570         * testsuite/20_util/optional/typedefs.cc: Likewise.
3571         * testsuite/20_util/variant/80165.cc: Likewise.
3572         * testsuite/20_util/variant/85183.cc: Likewise.
3573         * testsuite/20_util/variant/86874.cc: Likewise.
3574         * testsuite/20_util/variant/87431.cc: Likewise.
3575         * testsuite/20_util/variant/87619.cc: Likewise.
3576         * testsuite/20_util/variant/91807.cc: Likewise.
3577         * testsuite/20_util/variant/any.cc: Likewise.
3578         * testsuite/20_util/variant/compile.cc: Likewise.
3579         * testsuite/20_util/variant/deduction.cc: Likewise.
3580         * testsuite/20_util/variant/exception_safety.cc: Likewise.
3581         * testsuite/20_util/variant/hash.cc: Likewise.
3582         * testsuite/20_util/variant/index_type.cc: Likewise.
3583         * testsuite/20_util/variant/relops/89851.cc: Likewise.
3584         * testsuite/20_util/variant/relops/90008.cc: Likewise.
3585         * testsuite/20_util/variant/run.cc: Likewise.
3586         * testsuite/20_util/variant/visit.cc: Likewise.
3588 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3590         * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
3591         -std=gnu++17 from dg-options directive.
3592         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
3593         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
3594         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
3595         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
3596         * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
3597         * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
3598         * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
3599         * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
3600         Likewise.
3601         * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
3602         * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
3603         * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
3604         * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
3605         * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
3606         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3607         Likewise.
3608         * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
3609         * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
3610         Likewise.
3611         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3612         Likewise.
3613         * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
3614         * testsuite/27_io/filesystem/operations/all.cc: Likewise.
3615         * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3616         * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
3617         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3618         * testsuite/27_io/filesystem/operations/create_directories.cc:
3619         Likewise.
3620         * testsuite/27_io/filesystem/operations/create_directory.cc:
3621         Likewise.
3622         * testsuite/27_io/filesystem/operations/create_symlink.cc:
3623         Likewise.
3624         * testsuite/27_io/filesystem/operations/current_path.cc:
3625         Likewise.
3626         * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
3627         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3628         * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
3629         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3630         * testsuite/27_io/filesystem/operations/last_write_time.cc:
3631         Likewise.
3632         * testsuite/27_io/filesystem/operations/permissions.cc:
3633         Likewise.
3634         * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
3635         * testsuite/27_io/filesystem/operations/read_symlink.cc:
3636         Likewise.
3637         * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
3638         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3639         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3640         * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
3641         * testsuite/27_io/filesystem/operations/resize_file.cc:
3642         Likewise.
3643         * testsuite/27_io/filesystem/operations/space.cc: Likewise.
3644         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3645         * testsuite/27_io/filesystem/operations/symlink_status.cc:
3646         Likewise.
3647         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3648         Likewise.
3649         * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
3650         Likewise.
3651         * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
3652         * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
3653         * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
3654         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3655         * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
3656         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3657         * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
3658         * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
3659         * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
3660         * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
3661         * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
3662         * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
3663         * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
3664         * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
3665         * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
3666         * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
3667         * testsuite/27_io/filesystem/path/construct/default.cc:
3668         Likewise.
3669         * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
3670         * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
3671         * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
3672         * testsuite/27_io/filesystem/path/construct/string_view.cc:
3673         Likewise.
3674         * testsuite/27_io/filesystem/path/decompose/extension.cc:
3675         Likewise.
3676         * testsuite/27_io/filesystem/path/decompose/filename.cc:
3677         Likewise.
3678         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3679         Likewise.
3680         * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
3681         Likewise.
3682         * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
3683         Likewise.
3684         * testsuite/27_io/filesystem/path/decompose/root_name.cc:
3685         Likewise.
3686         * testsuite/27_io/filesystem/path/decompose/root_path.cc:
3687         Likewise.
3688         * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
3689         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
3690         Likewise.
3691         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
3692         * testsuite/27_io/filesystem/path/generation/normal.cc:
3693         Likewise.
3694         * testsuite/27_io/filesystem/path/generation/normal2.cc:
3695         Likewise.
3696         * testsuite/27_io/filesystem/path/generation/proximate.cc:
3697         Likewise.
3698         * testsuite/27_io/filesystem/path/generation/relative.cc:
3699         Likewise.
3700         * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
3701         * testsuite/27_io/filesystem/path/generic/generic_string.cc:
3702         Likewise.
3703         * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
3704         * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
3705         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3706         * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
3707         * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
3708         * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
3709         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
3710         Likewise.
3711         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
3712         Likewise.
3713         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
3714         Likewise.
3715         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
3716         Likewise.
3717         * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
3718         * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
3719         * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
3720         Likewise.
3721         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
3722         * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
3723         * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
3724         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3725         Likewise.
3726         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3727         * testsuite/27_io/filesystem/path/query/empty_neg.cc:
3728         * testsuite/27_io/filesystem/path/query/has_extension.cc:
3729         Likewise.
3730         * testsuite/27_io/filesystem/path/query/has_filename.cc:
3731         Likewise.
3732         * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
3733         Likewise.
3734         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3735         Likewise.
3736         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3737         Likewise.
3738         * testsuite/27_io/filesystem/path/query/has_root_name.cc:
3739         Likewise.
3740         * testsuite/27_io/filesystem/path/query/has_root_path.cc:
3741         Likewise.
3742         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3743         * testsuite/27_io/filesystem/path/query/is_absolute.cc:
3744         Likewise.
3745         * testsuite/27_io/filesystem/path/query/is_relative.cc:
3746         Likewise.
3747         * testsuite/experimental/filesystem/path/construct/string_view.cc:
3748         Likewise.
3750 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3752         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
3753         Remove -std=gnu++17 from dg-options.
3754         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
3755         Likewise.
3756         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3757         Likewise.
3758         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3759         Likewise.
3760         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3761         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3762         Likewise.
3763         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3764         Likewise.
3765         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3766         Likewise.
3767         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3768         Likewise.
3769         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3770         Likewise.
3771         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3772         Likewise.
3773         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3774         Likewise.
3775         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3776         Likewise.
3777         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3778         Likewise.
3779         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3780         Likewise.
3781         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3782         Likewise.
3783         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3784         Likewise.
3785         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3786         Likewise.
3787         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3788         Likewise.
3789         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3790         Likewise.
3791         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3792         Likewise.
3793         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3794         Likewise.
3795         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3796         Likewise.
3797         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3798         Likewise.
3799         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3800         Likewise.
3801         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3802         Likewise.
3803         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3804         Likewise.
3805         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3806         Likewise.
3807         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3808         Likewise.
3809         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3810         Likewise.
3811         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3812         Likewise.
3813         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3814         Likewise.
3815         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3816         Likewise.
3817         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3818         Likewise.
3819         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3820         Likewise.
3821         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3822         Likewise.
3823         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3824         Likewise.
3825         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3826         Likewise.
3827         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3828         Likewise.
3829         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3830         Likewise.
3831         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
3832         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3833         Likewise.
3834         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3835         Likewise.
3836         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3837         Likewise.
3838         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3839         Likewise.
3840         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3841         Likewise.
3842         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
3843         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
3844         * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
3845         * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
3846         * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
3847         * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
3848         * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
3849         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
3850         Likewise.
3851         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
3852         * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
3853         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3854         Likewise.
3855         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3856         Likewise.
3858 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3860         * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
3861         for additional errors in C++20.
3862         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3863         Likewise.
3864         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3865         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3867 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3869         * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
3870         clash with std::any.
3872 2021-05-07  Jonathan Wakely  <jwakely@redhat.com>
3874         * include/std/istream (__rvalue_stream_extraction_t): Replace
3875         use of __rval_streamable.
3876         * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
3877         (__rval_streamable): Remove.
3878         (_Require_derived_from_ios_base, __derived_from_ios_base): New
3879         helper for checking constraints.
3880         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
3881         reference to the wrong subclause of the standard.
3882         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3883         Likewise.
3884         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3885         Likewise.
3886         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3887         Likewise.
3888         * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
3889         New test.
3890         * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
3891         errors.
3893 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
3895         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
3896         Improve static_assert messages.
3897         * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
3898         * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
3900 2021-05-06  Patrick Palka  <ppalka@redhat.com>
3902         * include/std/ranges (filter_view::_Iterator::base): Make the
3903         const& overload unconstrained and return a const reference as
3904         per LWG 3533.  Make unconditionally noexcept.
3905         (transform_view::_Iterator::base): Likewise.
3906         (elements_view::_Iterator::base): Likewise.
3908 2021-05-06  Patrick Palka  <ppalka@redhat.com>
3910         * include/bits/stl_iterator.h (move_iterator::base): Make the
3911         const& overload unconstrained and return a const reference as
3912         per LWG 3391.  Make unconditionally noexcept.
3913         (counted_iterator::base): Likewise.
3914         * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
3915         * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
3916         has_member_base concept to decay-copy the result of base().
3918 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
3920         * include/std/type_traits (remove_cvref_t): Define in terms of
3921         remove_cvref.
3922         * testsuite/20_util/remove_cvref/value.cc: Check alias.
3924 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
3926         Revert:
3927         2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
3929         * include/std/charconv (__from_chars_alnum): Pass unsigned
3930         char to std::isdigit.
3932 2021-05-05  Patrick Palka  <ppalka@redhat.com>
3934         * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
3935         Remove constraints on this partial specialization.
3936         * include/std/ranges (enable_borrowed_range<iota_view>):
3937         Likewise.
3939 2021-05-05  Patrick Palka  <ppalka@redhat.com>
3941         * include/std/ranges (transform_view::_Iterator::iter_swap):
3942         Remove as per LWG 3520.
3943         (join_view::_Iterator::iter_swap): Add indirectly_swappable
3944         constraint as per LWG 3517.
3946 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
3948         * testsuite/20_util/function_objects/invoke/3.cc: Check feature
3949         test macro.
3950         * testsuite/20_util/function_objects/invoke/version.cc: New test.
3952 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
3954         * include/std/charconv (__from_chars_alnum): Pass unsigned
3955         char to std::isdigit.
3957 2021-05-05  Corentin Gay  <gay@adacore.com>
3959         * acinclude.m4: Add VxWorks-specific case for the
3960         configuration of ctypes.
3961         * configure: Regenerate.
3962         * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
3963         version.
3964         * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
3965         * config/os/vxworks/ctype_configure_char.cc: Likewise.
3966         * config/os/vxworks/ctype_inline.h: Likewise.
3967         * testsuite/28_regex/traits/char/isctype.cc: Defines
3968         NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
3969         * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
3971 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3973         * include/std/future (promise::set_value): Check for existence
3974         of shared state before dereferncing it.
3975         (promise::set_exception, promise::set_value_at_thread_exit)
3976         (promise::set_exception_at_thread_exit): Likewise.
3977         (promise<R&>::set_value, promise<R&>::set_exception)
3978         (promise<R&>::set_value_at_thread_exit)
3979         (promise<R&>::set_exception_at_thread_exit): Likewise.
3980         (promise<void>::set_value, promise<void>::set_exception)
3981         (promise<void>::set_value_at_thread_exit)
3982         (promise<void>::set_exception_at_thread_exit): Likewise.
3983         * testsuite/30_threads/promise/members/at_thread_exit2.cc:
3984         Remove unused variable.
3986 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3988         * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
3989         Do not do arithmetic on null pointer.
3991 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3993         * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
3994         (find_key_pointer(key_const_reference, false_type))
3995         (find_key_pointer(key_const_reference, true_type)): Do not
3996         dereference null pointer.
3998 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
4000         * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
4001         overflow.
4002         * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
4003         non-zero value to null pointer.
4004         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
4005         Use past-the-end iterator for result.
4006         * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
4007         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
4009 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
4011         PR libstdc++/100384
4012         * include/std/variant (__get_t): New alias template yielding the
4013         return type of std::get<N> on a variant.
4014         (__visit_result_t): New alias template yielding the result of
4015         std::visit.
4016         (__same_types): Move into namespace __detail::__variant.
4017         (__check_visitor_results): Likewise. Use __invoke_result_t and
4018         __get_t.
4019         (__check_visitor_result): Remove.
4020         (visit): Use __visit_result_t for return type.
4021         * testsuite/20_util/variant/100384.cc: New test.
4023 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
4025         * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
4026         checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
4027         * config.h.in: Regenerate.
4028         * configure: Regenerate.
4029         * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
4030         * include/bits/random.h (_Select_uint_least_t<s, 1>):
4031         Use __SIZEOF_INT128__ to decide whether to use __int128.
4032         * include/std/charconv (__to_chars_unsigned_type): Likewise.
4034 2021-05-03  Gerald Pfeifer  <gerald@pfeifer.com>
4036         * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4037         * doc/html/manual/facets.html: Regenerate.
4039 2021-04-30  Patrick Palka  <ppalka@redhat.com>
4041         * include/std/ranges (__detail::__non_propating_cache): Define
4042         as per P2328.
4043         (join_view): Remove constraints on the value and reference types
4044         of the wrapped iterator type as per P2328.
4045         (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
4046         (join_view::_Iterator::operator++): Likewise.
4047         (join_view::_M_inner): Use __non_propating_cache as per P2328.
4048         Remove now-redundant use of __maybe_present_t.
4049         * testsuite/std/ranges/adaptors/join.cc: Include <array>.
4050         (test10): New test.
4052 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4054         * include/bits/basic_string.h (__cpp_lib_constexpr_string):
4055         Only define for C++17 and later.
4056         * include/std/version (__cpp_lib_semaphore): Fix condition
4057         to match the one in <semaphore>.
4059 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4061         * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
4062         * config.h.in: Regenerate.
4063         * configure: Regenerate.
4064         * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
4065         * include/bits/postypes.h: Remove include of <stdint.h> and
4066         definition/undefinition of the __STDC_LIMIT_MACROS and
4067         __STDC_CONSTANT_MACROS macros.
4068         (streamoff): Use __INT64_TYPE__ if defined.
4070 2021-04-30  Patrick Palka  <ppalka@redhat.com>
4072         * include/std/ranges (split_view::_InnerIter::operator++):
4073         Depend on _Base instead of _Vp directly, as per LWG 3532.
4075 2021-04-30  Patrick Palka  <ppalka@redhat.com>
4077         * include/bits/ranges_util.h (subrange::subrange): Avoid
4078         list-initialization in delegating constructor.
4079         * include/std/ranges (single_view): Replace implicit guide
4080         with explicit deduction guide that decays its argument.
4081         (_Single::operator()): Avoid CTAD when constructing the
4082         single_view object.
4083         (_Iota::operator()): Avoid list-initialization.
4084         (__detail::__can_filter_view, _Filter::operator()): Likewise.
4085         (__detail::__can_transform_view, _Transform::operator()): Likewise.
4086         (take_view::begin): Likewise.
4087         (__detail::__can_take_view, _Take::operator()): Likewise.
4088         (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
4089         (__detail::__can_drop_view, _Drop::operator()): Likewise.
4090         (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
4091         (split_view::split_view): Use views::single when initializing
4092         _M_pattern.
4093         (__detail::__can_split_view, _Split::operator()): Avoid
4094         list-initialization.
4095         (_Counted::operator()): Likewise.
4096         * testsuite/std/ranges/p2367.cc: New test.
4098 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4100         PR libstdc++/60497
4101         * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
4102         std::addressof.
4103         * include/bits/basic_string.tcc (basic_string::swap)
4104         (basic_string::assign): Likewise.
4105         * include/bits/deque.tcc (deque::operator=(const deque&)):
4106         Likewise.
4107         * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
4108         Likewise.
4109         * include/bits/vector.tcc (vector::operator=(const vector&)):
4110         Likewise.
4112 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4114         * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
4115         per LWG 1203.
4116         * include/std/ostream (operator<<(Ostream&&, const x&)):
4117         Likewise.
4118         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
4119         Adjust dg-error pattern.
4120         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
4121         Likewise.
4122         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
4123         is_extractable trait to replace std::__is_extractable. Make it
4124         work with rvalue streams as well as lvalues, to replace f() and
4125         g() helper functions.
4126         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4127         Likewise.
4128         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4129         Define is_insertable trait to replace std::__is_insertable. Make
4130         it work with rvalue streams as well as lvalues, to replace f()
4131         and g() helper functions.
4132         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4133         Likewise.
4134         * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
4135         errors from new constraints.
4136         * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
4137         which are no longer expected to compile.
4138         * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
4139         Verify LWG 1203 changes.
4141 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4143         PR libstdc++/100285
4144         * include/experimental/socket (__basic_socket_impl::set_option)
4145         (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
4146         Just set error code.
4147         * testsuite/experimental/net/socket/socket_base.cc: CHeck
4148         for <sys/socket.h> not <socket.h>.
4150 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
4152         PR libstdc++/100180
4153         PR libstdc++/100286
4154         PR libstdc++/100351
4155         * testsuite/experimental/net/internet/address/v4/comparisons.cc:
4156         Use new effective-target keyword.
4157         * testsuite/experimental/net/internet/address/v4/cons.cc:
4158         Likewise.
4159         * testsuite/experimental/net/internet/address/v4/creation.cc:
4160         Likewise.
4161         * testsuite/experimental/net/internet/address/v4/members.cc:
4162         Likewise.
4163         * testsuite/experimental/net/internet/address/v6/members.cc:
4164         Likewise.
4165         * testsuite/experimental/net/internet/resolver/base.cc:
4166         Likewise.
4167         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
4168         Likewise.
4169         * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
4170         Likewise.
4171         * testsuite/experimental/net/internet/socket/opt.cc:
4172         Likewise.
4173         * testsuite/experimental/net/internet/tcp.cc:
4174         Likewise.
4175         * testsuite/experimental/net/internet/udp.cc:
4176         Likewise.
4177         * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
4178         New proc to check net_ts_ip et.
4180 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4182         PR libstdc++/97930
4183         * testsuite/20_util/pair/requirements/structural.cc: New test.
4185 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4187         * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
4188         new definitions for constructors and assignment operators using
4189         concepts for constraints.
4190         * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
4191         later.
4192         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
4193         expected error messages to also match C++20 errors.
4195 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4197         PR libstdc++/99957
4198         * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
4199         Combine and replace with ...
4200         (_PCC::_DeprConsPair): New SFINAE helper function.
4201         (pair): Merge preprocessor blocks so that all C++03 members
4202         are defined together at the end.
4203         (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
4204         Replace _T1 and _T2 parameters with __null_ptr_constant and
4205         adjust constraints.
4206         * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
4207         * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
4208         * testsuite/20_util/pair/cons/99957.cc: New test.
4210 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4212         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
4213         * include/std/version (__cpp_lib_constexpr_string): Define.
4214         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4215         Check for __cpp_lib_constexpr_string.
4216         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
4217         Likewise.
4218         * testsuite/21_strings/char_traits/requirements/version.cc: New test.
4220 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4222         * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
4223         dealing with errors. Use '@' to prevent shell command being
4224         echoed.
4225         * doc/Makefile.in: Regenerate.
4227 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4229         PR libstdc++/100298
4230         * include/bits/std_thread.h (thread::hardware_concurrency): Add
4231         missing noexcept to inline definition for non-gthreads targets.
4233 2021-04-28  Patrick Palka  <ppalka@redhat.com>
4235         PR libstdc++/100187
4236         PR libstdc++/100237
4237         PR libstdc++/100249
4238         PR libstdc++/100287
4239         * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
4240         the __value_comp lambda an explicit bool return type.
4241         (__is_permutation_fn::operator()): Give the __proj_scan local
4242         variable auto&& return type.  Give the __comp_scan lambda an
4243         explicit bool return type.
4244         (__remove_fn::operator()): Give the __pred lambda an explicit
4245         bool return type.
4246         (__partition_fn::operator()): Don't std::move __first twice
4247         when returning an empty subrange.
4248         (__min_fn::operator()): Don't std::move __comp.
4249         (__max_fn::operator()): Likewise.
4250         (__minmax_fn::operator()): Likewise.
4252 2021-04-27  Patrick Palka  <ppalka@redhat.com>
4254         PR libstdc++/100290
4255         * include/std/ranges (join_view::_Iterator::operator++): Correct
4256         the return type of the lambda to avoid returning a copy of
4257         _M_parent->_M_inner.
4258         * testsuite/std/ranges/adaptors/join.cc (test10): New test.
4260 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
4262         Revert:
4263         2021-04-22  Jakub Jelinek  <jakub@redhat.com>
4265         PR target/100182
4266         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4267         ia32.
4268         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4269         ia32.
4271 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
4273         * include/experimental/internet (address_v6::bytes_type): Adjust
4274         formatting.
4275         (basic_endpoint): Define _M_is_v6() to put all checks for
4276         AF_INET6 in one place.
4277         (basic_endpoint::resize): Simplify.
4278         (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
4279         (operator!=(const tcp&, const tcp&)): Likewise.
4280         (operator==(const udp&, const udp&)): Likewise.
4281         (operator!=(const udp&, const udp&)): Likewise.
4282         * testsuite/experimental/net/internet/tcp.cc: New test.
4283         * testsuite/experimental/net/internet/udp.cc: New test.
4285 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
4287         PR libstdc++/100286
4288         * include/experimental/internet (resolver_errc, resolver_category())
4289         (make_error_code, make_error_condition): Define unconditionally,
4290         only make enumerators and use of gai_strerror depend on the
4291         availability of <netdb.h>.
4292         (address_v4::to_string): Use correct constant for string length.
4293         (address_v4::to_string, address_v6::to_string): Define
4294         unconditionally, throw if unsupported.
4295         (make_address_v4, make_address_v6): Define unconditionally.
4296         Return an error if unsupported.
4297         (tcp, udp, v6_only, unicast::hops, multicast::*): Define
4298         conditionally,
4299         * testsuite/experimental/net/internet/socket/opt.cc: Check for
4300         <netinet/in.h> and <netinet/tcp.h> before using types from
4301         namespace net::ip.
4303 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
4305         PR libstdc++/100285
4306         * include/experimental/internet (resolver_base::flags):
4307         Define overloaded operators as hidden friends.
4308         * include/experimental/socket (socket_base::message_flags):
4309         Likewise.
4311 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4313         * include/experimental/internet (tcp::no_delay, v6_only)
4314         (unicast::hops, multicast::hops, multicast::enable_loopback):
4315         Change access of base class and static data members. Add
4316         using-declaration for __socket_crtp::operator=(_Tp).
4317         (multicast::__mcastopt): New type.
4318         (multicast::join_group, multicast::leave_group): Derive from
4319         __mcastopt for common implementation.
4320         * include/experimental/socket: Add comment.
4321         * testsuite/experimental/net/internet/socket/opt.cc: New test.
4322         * testsuite/experimental/net/socket/socket_base.cc: Check for
4323         protected constructor/destructor of socket_base. Check for
4324         explicit constructors of socket option classes.
4326 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4328         * include/experimental/bits/net.h (__socket_base): Add
4329         bool template parameter to allow BooleanSocketOption and
4330         IntegerSocketOption to have different __socket_base<int>
4331         base classes.
4332         (__socket_base<bool>): Adjust base class.
4333         (__socket_base<int>): Add partial specialization.
4334         (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
4335         * include/experimental/socket (socket_base::broadcast)
4336         (socket_base::debug, socket_base::do_not_route)
4337         (socket_base::keep_alive, socket_base::linger)
4338         (socket_base::out_of_band_inline)
4339         (socket_base::receive_buffer_size)
4340         (socket_base::receive_low_watermark)
4341         (socket_base::reuse_address, socket_base::send_buffer_size)
4342         (socket_base::send_low_watermark): Add using-declaration for
4343         __socket_crtp::operator=(_Tp).
4344         * testsuite/experimental/net/socket/socket_base.cc: Check
4345         properties of socket option types.
4347 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4349         * include/experimental/internet (resolver_base::flags): Remove
4350         enumerators. Initialize constants directly with desired values.
4351         Make all operators constexpr and noexcept.
4352         * testsuite/experimental/net/internet/resolver/base.cc: Use
4353         __gnu_test::test_bitmask_values for bitmask type. Check
4354         construction and destruction is protected.
4356 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4358         * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
4360 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4362         PR libstdc++/100259
4363         * include/experimental/internet (net::ip::make_error_code)
4364         (net::ip::make_error_condition, net::ip::make_network_v4)
4365         (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
4367 2021-04-24  David Edelsohn  <dje.gcc@gmail.com>
4369         * testsuite/lib/dg-options.exp (atomic_link_flags): New.
4370         (add_options_for_libatomic): Use atomic_link_flags.
4372 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
4374         PR libstdc++/100180
4375         * include/experimental/io_context (io_context): Define
4376         dummy_pollfd type so that most member functions still compile
4377         without <poll.h> and struct pollfd.
4379 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
4381         * include/experimental/io_context (io_context::async_wait): Add
4382         comment.
4383         * include/experimental/socket (basic_socket::async_connect):
4384         Cast wait_type constant to int.
4385         (basic_datagram_socket::async_receive): Likewise.
4386         (basic_datagram_socket::async_receive_from): Likewise.
4387         (basic_datagram_socket::async_send): Likewise.
4388         (basic_datagram_socket::async_send_to): Likewise.
4389         (basic_stream_socket::async_receive): Likewise.
4390         (basic_stream_socket::async_send): Likewise. Use io_context
4391         parameter directly, instead of via an executor.
4392         (basic_socket_acceptor::async_accept): Likewise.
4394 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
4396         * include/experimental/socket (socket_base::shutdown_type):
4397         (socket_base::wait_type, socket_base::message_flags):
4398         Remove enumerators. Initialize constants directly with desired
4399         values.
4400         (socket_base::message_flags): Make all operators constexpr and
4401         noexcept.
4402         * testsuite/util/testsuite_common_types.h (test_bitmask_values):
4403         New test utility.
4404         * testsuite/experimental/net/socket/socket_base.cc: New test.
4406 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
4408         * config/os/aix/atomicity.h: Delete.
4410 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4412         * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4413         Handle system_clock as well as steady_clock.
4414         * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4415         * testsuite/30_threads/semaphore/try_acquire_until.cc:
4416         Re-enable.
4418 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4420         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4421         options for libatomic.
4423 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4425         * config/os/gnu-linux/os_defines.h: Fix type in comment.
4427 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4429         PR libstdc++/99006
4430         * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4431         is not an array type.
4432         * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4433         * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4435 2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
4437         * include/bits/atomic_wait.h: Always notify waiters in the
4438         case of 'bare' address notification.
4440 2021-04-22  Jakub Jelinek  <jakub@redhat.com>
4442         PR target/100182
4443         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4444         ia32.
4445         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4446         ia32.
4448 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4450         PR libstdc++/100179
4451         * include/bits/semaphore_base.h: Remove #error.
4452         * include/std/semaphore: Do not define anything unless one of
4453         the implementations is available.
4455 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
4457         * include/bits/semaphore_base.h: Always reload __old in
4458         __atomic_semaphore::_S_do_try_acquire().
4459         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4460         re-enable testcase.
4462 2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
4463             Jonathan Wakely  <jwakely@redhat.com>
4465         PR libstdc++/99453
4466         * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4467         * python/Makefile.in: Regenerate.
4469 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
4471         * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4472         member to __platform_wait.
4474 2021-04-21  Jonathan Wakely  <jwakely@redhat.com>
4476         * include/std/latch: Replace tab characters in license text.
4477         * include/std/semaphore: Likewise.
4479 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
4481         PR libstdc++/100164
4482         * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
4483         rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
4484         * configure: Regenerated.
4485         * config.h.in: Regenerated.
4487 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
4489         * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
4490         test for targets not using futexes for semaphores.
4491         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4492         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4493         Disable for all targets.
4495 2021-04-20  Thomas Rodgers  <trodgers@redhat.com>
4497         * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
4498         * include/Makefile.in: Regenerate.
4499         * include/bits/this_thread_sleep.h: New file.
4500         * include/bits/atomic_base.h: Adjust all calls
4501         to __atomic_wait/__atomic_notify for new call signatures.
4502         * include/bits/atomic_timed_wait.h: Extensive rewrite.
4503         * include/bits/atomic_wait.h: Likewise.
4504         * include/bits/semaphore_base.h: Adjust all calls
4505         to __atomic_wait/__atomic_notify for new call signatures.
4506         * include/std/atomic: Likewise.
4507         * include/std/barrier: Likewise.
4508         * include/std/latch: Likewise.
4509         * include/std/semaphore: Likewise.
4510         * include/std/thread (this_thread::sleep_for)
4511         (this_thread::sleep_until): Move to new header.
4512         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
4513         test.
4514         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4515         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4516         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4517         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
4518         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
4519         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
4521 2021-04-20  Patrick Palka  <ppalka@redhat.com>
4523         PR libstdc++/95983
4524         * include/bits/stl_iterator.h (__detail::__move_iter_cat):
4525         Define.
4526         (move_iterator): Derive from the above in C++20 in order to
4527         conditionally define iterator_category as per P2259.
4528         (move_iterator::__base_cat): No longer used, so remove.
4529         (move_iterator::iterator_category): Remove in C++20.
4530         (__detail::__common_iter_use_postfix_proxy): Define.
4531         (common_iterator::_Proxy): Rename to ...
4532         (common_iterator:__arrow_proxy): ... this.
4533         (common_iterator::__postfix_proxy): Define as per P2259.
4534         (common_iterator::operator->): Adjust.
4535         (common_iterator::operator++): Adjust as per P2259.
4536         (iterator_traits<common_iterator>::_S_iter_cat): Define.
4537         (iterator_traits<common_iterator>::iterator_category): Change as
4538         per P2259.
4539         (__detail::__counted_iter_value_type): Define.
4540         (__detail::__counted_iter_concept): Define.
4541         (__detail::__counted_iter_cat): Define.
4542         (counted_iterator): Derive from the above three classes in order
4543         to conditionally define value_type, iterator_concept and
4544         iterator category respectively as per P2259.
4545         (counted_iterator::operator->): Define as per P2259.
4546         (incrementable_traits<counted_iterator>): Remove as per P2259.
4547         (iterator_traits<counted_iterator>): Adjust as per P2259.
4548         * include/std/ranges (__detail::__iota_view_iter_cat): Define.
4549         (iota_view::_Iterator): Derive from the above in order to
4550         conditionally define iterator_category as per P2259.
4551         (iota_view::_S_iter_cat): Rename to ...
4552         (iota_view::_S_iter_concept): ... this.
4553         (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
4554         (iota_view::iterator_category): Remove.
4555         (__detail::__filter_view_iter_cat): Define.
4556         (filter_view::_Iterator): Derive from the above in order to
4557         conditionally define iterator_category as per P2259.
4558         (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
4559         (filter_view::_Iterator::iterator_category): Remove.
4560         (transform_view::_Base): Define.
4561         (transform_view::__iter_cat): Define.
4562         (transform_view::_Iterator): Derive from the above in order to
4563         conditionally define iterator_category as per P2259.
4564         (transform_view::_Iterator::_Base): Just alias
4565         transform_view::_Base.
4566         (transform_view::_Iterator::_S_iter_cat): Move to struct
4567         transform_view::__iter_cat.
4568         (transform_view::_Iterator::iterator_category): Remove.
4569         (transform_view::_Sentinel::_Base): Just alias
4570         transform_view::_Base.
4571         (join_view::_Base): Define.
4572         (join_view::_Outer_iter): Define.
4573         (join_view::_Inner_iter): Define.
4574         (join_view::_S_ref_is_glvalue): Define.
4575         (join_view::__iter_cat): Define.
4576         (join_view::_Iterator): Derive from it in order to conditionally
4577         define iterator_category as per P2259.
4578         (join_view::_Iterator::_Base): Just alias join_view::_Base.
4579         (join_view::_Iterator::_S_ref_is_glvalue): Just alias
4580         join_view::_S_ref_is_glvalue.
4581         (join_view::_Iterator::_S_iter_cat): Move to struct
4582         transform_view::__iter_cat.
4583         (join_view::_Iterator::_Outer_iter): Just alias
4584         join_view::_Outer_iter.
4585         (join_view::_Iterator::_Inner_iter): Just alias
4586         join_view::_Inner_iter.
4587         (join_view::_Iterator::iterator_category): Remove.
4588         (join_view::_Sentinel::_Base): Just alias join_view::_Base.
4589         (__detail::__split_view_outer_iter_cat): Define.
4590         (__detail::__split_view_inner_iter_cat): Define.
4591         (split_view::_Base): Define.
4592         (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
4593         in order to conditionally define iterator_category as per P2259.
4594         (split_view::_Outer_iter::iterator_category): Remove.
4595         (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
4596         in order to conditionally define iterator_category as per P2259.
4597         (split_view::_Inner_iter::_S_iter_cat): Move to
4598         __split_view_inner_iter_cat.
4599         (split_view::_Inner_iter::iterator_category): Remove.
4600         (elements_view::_Base): Define.
4601         (elements_view::__iter_cat): Define.
4602         (elements_view::_Iterator): Derive from the above in order to
4603         conditionall define iterator_category as per P2259.
4604         (elements_view::_Iterator::_Base): Just alias
4605         elements_view::_Base.
4606         (elements_view::_Iterator::_S_iter_concept)
4607         (elements_view::_Iterator::iterator_concept): Define as per
4608         P2259.
4609         (elements_view::_Iterator::iterator_category): Remove.
4610         (elements_view::_Sentinel::_Base): Just alias
4611         elements_view::_Base.
4612         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4613         Adjust constraints on iterator_traits<counted_iterator>.
4614         * testsuite/std/ranges/p2259.cc: New test.
4616 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
4618         PR libstdc++/100146
4619         * include/std/charconv (__cpp_lib_to_chars): Define
4620         conditionally.
4621         * include/std/version (__cpp_lib_to_chars): Likewise..
4622         * testsuite/20_util/from_chars/4.cc: Only check feature test
4623         macro, not _GLIBCXX_HAVE_USELOCALE.
4624         * testsuite/20_util/from_chars/5.cc: Likewise.
4625         * testsuite/20_util/from_chars/6.cc: Likewise.
4626         * testsuite/20_util/to_chars/long_double.cc: Likewise.
4628 2021-04-20  Jakub Jelinek  <jakub@redhat.com>
4630         * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
4631         versions with _IEEE128_ substring are found, set ieee_version_found
4632         to true.  Ignore missing symbols with _IEEE128_ in version name if
4633         !ieee_version_found.  Use i->first as version_name instead of
4634         i->second.version_name if the latter is empty.
4635         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4637 2021-04-19  H.J. Lu  <hjl.tools@gmail.com>
4639         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
4640         Updated.
4642 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
4644         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
4645         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
4647 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
4649         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4650         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4651         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
4652         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4653         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4654         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4656 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
4658         * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
4659         add libatomic options for 32-bit sparc*-*-linux-gnu.
4661 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
4663         PR libstdc++/96657
4664         * libsupc++/Makefile.am: Add atomicity.cc here.
4665         * src/c++98/Makefile.am: Remove it from here.
4666         * libsupc++/Makefile.in: Regenerate.
4667         * src/c++98/Makefile.in: Regenerate.
4668         * testsuite/18_support/exception_ptr/96657.cc: New test.
4670 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
4672         PR libstdc++/100060
4673         * include/std/bit: Only include <ext/numeric_traits.h> for
4674         hosted build, use <limits> otherwise.
4676 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
4678         * doc/xml/manual/backwards_compatibility.xml: Remove porting
4679         notes for libg++ and libstdc++-v2, and bibliography.
4680         * doc/html/*: Regenerated.
4682 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
4684         PR libstdc++/100044
4685         * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
4686         Remove helper concept.
4687         (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
4688         deduction guides, as per LWG 3404.
4689         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
4690         template argument deduction fails.
4692 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
4694         * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
4695         Adjust expected error for C++20 mode.
4696         * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
4697         Likewise.
4699 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
4701         PR libstdc++/99995
4702         * testsuite/17_intro/headers/c++1998/49745.cc: Include all
4703         standard headers and XFAIL for effective-target c++20.
4705 2021-04-09  François Dumont  <fdumont@gcc.gnu.org>
4707         PR libstdc++/99402
4708         * include/debug/helper_functions.h (__can_advance(_InputIterator,
4709         const std::pair<_Diff, _Distance_precision>&, int)): New.
4710         (__can_advance(const _Safe_iterator<>&,
4711         const std::pair<_Diff, _Distance_precision>&, int)): New.
4712         * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
4713         use latter.
4714         (__glibcxx_check_can_increment_range): Adapt to use latter.
4715         (__glibcxx_check_can_decrement_range): Likewise.
4716         * include/debug/safe_iterator.h
4717         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4718         int)): New.
4719         (__can_advance(const _Safe_iterator<>&,
4720         const std::pair<_Diff, _Distance_precision>&, int)): New.
4721         * include/debug/safe_iterator.tcc
4722         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4723         int)): New.
4724         (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
4725         std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
4726         __dp_sign_max_size.
4727         (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
4728         (__copy_move_backward_a): Likewise.
4729         (__equal_aux): Likewise.
4730         * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
4731         const std::pair<_Diff, _Distance_precision>&, int)): New.
4732         (__can_advance(const std::move_iterator<>&,
4733         const std::pair<_Diff, _Distance_precision>&, int)): New.
4734         * testsuite/25_algorithms/copy/debug/99402.cc: New test.
4736 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
4738         PR libstdc++/99985
4739         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
4740         to be a valid constexpr function in C++11.
4741         * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
4743 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
4745         * include/bits/fs_fwd.h: Fix doxygen group command.
4746         * include/bits/streambuf_iterator.h: Likewise.
4747         * include/bits/uses_allocator_args.h: Likewise.
4748         * include/std/memory: Likewise.
4749         * include/tr1/complex: Likewise.
4751 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4753         * include/bits/basic_string.h: Tweak doxygen comment.
4755 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4757         * include/std/ranges (__detail::find): Define.
4758         (split_view::_OuterIter::operator++): Apply proposed resolution
4759         of LWG 3505.
4760         * testsuite/std/ranges/adaptors/split.cc (test10): New test.
4762 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4764         * include/std/ranges (__detail::find_if): Simplify.
4765         (__detail::find_if_not): Likewise.
4766         (__detail::min): Remove.
4767         (__detail::mismatch): Simplify.
4768         (take_view::size): Use std::min instead of __detail::min.
4770 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4772         * include/std/ranges (__detail::__returnable_element): New
4773         concept.
4774         (elements_view): Use this concept in its constraints.  Add
4775         missing private access specifier.
4776         (elements_view::_S_get_element): Define as per LWG 3502.
4777         (elements_view::operator*, elements_view::operator[]): Use
4778         _S_get_element.
4779         (elements_view::operator++): Remove unnecessary constraint
4780         as per LWG 3492.
4781         * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
4783 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4785         * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
4786         out-of-memory error in log file.
4787         * doc/Makefile.in: Regenerate.
4789 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4791         * configure: Regenerate.
4793 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4795         * include/bits/random.h: Fix doxygen group commands.
4796         * include/bits/regex_constants.h: Likewise.
4797         * include/tr1/random.h: Likewise.
4799 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4801         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
4802         New function to determine noexcept-specifier for move
4803         constructors.
4804         (_Hashtable): Use _S_nothrow_move() on move constructors.
4805         * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
4806         Correct static assertion message.
4807         * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
4808         Likewise.
4809         * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
4810         Likewise.
4811         * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
4812         Likewise.
4814 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4816         PR libstdc++/98384
4817         * testsuite/20_util/to_chars/long_double.cc: Don't run the test
4818         on targets without a large long double.  XFAIL the execution on
4819         targets with a non-conforming printf.
4821 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4823         PR libstdc++/99433
4824         * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
4825         (__adaptor::__adaptor_invocable): New concept.
4826         (__adaptor::__adaptor_partial_app_viable): New concept.
4827         (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
4828         non-template base class.
4829         (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
4830         class template.
4831         (__adaptor::_Partial): New class template that represents
4832         partial application of a range adaptor non-closure.
4833         (__adaptor::__pipe_invocable): New concept.
4834         (__adaptor::_Pipe): New class template.
4835         (__detail::__can_ref_view): New concept.
4836         (__detail::__can_subrange): New concept.
4837         (all): Replace the lambda here with ...
4838         (_All): ... this functor.  Add appropriate constraints.
4839         (__detail::__can_filter_view): New concept.
4840         (filter, _Filter): As in all/_All.
4841         (__detail::__can_transform): New concept.
4842         (transform, _Transform): As in all/_All.
4843         (__detail::__can_take_view): New concept.
4844         (take, _Take): As in all/_All.
4845         (__detail::__can_take_while_view): New concept.
4846         (take_while, _TakeWhile): As in all/_All.
4847         (__detail::__can_drop_view): New concept.
4848         (drop, _Drop): As in all/_All.
4849         (__detail::__can_drop_while_view): New concept.
4850         (drop_while, _DropWhile): As in all/_All.
4851         (__detail::__can_join_view): New concept.
4852         (join, _Join): As in all/_All.
4853         (__detail::__can_split_view): New concept.
4854         (split, _Split): As in all/_All.  Rename template parameter
4855         _Fp to _Pattern.
4856         (__detail::__already_common): New concept.
4857         (__detail::__can_common_view): New concept.
4858         (common, _Common): As in all/_All.
4859         (__detail::__can_reverse_view): New concept.
4860         (reverse, _Reverse): As in all/_All.
4861         (__detail::__can_elements_view): New concept.
4862         (elements, _Elements): As in all/_All.
4863         (keys, values): Adjust.
4864         * testsuite/std/ranges/adaptors/99433.cc: New test.
4865         * testsuite/std/ranges/adaptors/all.cc: No longer expect that
4866         adding empty range adaptor closure objects to a pipeline doesn't
4867         increase the size of the pipeline.
4868         (test05): New test.
4869         * testsuite/std/ranges/adaptors/common.cc (test03): New test.
4870         * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
4871         * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
4872         * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
4873         * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
4874         * testsuite/std/ranges/adaptors/join.cc (test09): New test.
4875         * testsuite/std/ranges/adaptors/p2281.cc: New test.
4876         * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
4877         * testsuite/std/ranges/adaptors/split.cc (test01, test04):
4878         Adjust.
4879         (test09): New test.
4880         * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
4881         expected error message.
4882         (test02): Likewise.  Extend test.
4883         * testsuite/std/ranges/adaptors/take.cc (test06): New test.
4884         * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
4885         * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
4886         New test.
4888 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4890         * include/std/string_view: Adjust Doxygen @file comment.
4892 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4894         * include/std/type_traits (is_scoped_enum<T>): Constrain partial
4895         specialization to not match incomplete enum types. Use a
4896         requires-expression instead of instantiating is_convertible.
4897         (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
4898         * testsuite/20_util/is_scoped_enum/value.cc: Check with
4899         incomplete types and opaque-enum-declarations.
4901 2021-04-07  Jonathan Wakely  <jwakely@redhat.com>
4903         PR libstdc++/99805
4904         * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
4905         non-const member on _M_pathname, to avoid copy-on-write.
4906         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4907         Check construction from strings that might be shared.
4909 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4911         * include/bits/move.h (forward, move, move_if_noexcept)
4912         (addressof): Add _GLIBCXX_NODISCARD.
4913         * include/bits/ranges_cmp.h (identity::operator()): Add
4914         nodiscard attribute.
4915         * include/c_global/cstddef (to_integer): Likewise.
4916         * include/std/bit (bit_cast): Likewise.
4917         * include/std/utility (as_const, to_underlying): Likewise.
4919 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4921         * include/bits/move.h (forward): Change static_assert message
4922         to be unambiguous about what must be true.
4923         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
4924         * testsuite/20_util/forward/f_neg.cc: Likewise.
4926 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4928         * include/bits/alloc_traits.h: Use markdown for code font.
4929         * include/bits/basic_string.h: Fix @param names.
4930         * include/bits/max_size_type.h: Remove period after @file.
4931         * include/bits/regex.h: Fix duplicate @retval names, and rename.
4932         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
4933         group open to match existing group close.
4934         * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
4935         open.
4937 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4939         * include/bits/atomic_base.h: Fix doxygen group close.
4940         * include/bits/basic_ios.h: Likewise.
4941         * include/bits/forward_list.h: Likewise.
4942         * include/bits/fs_dir.h: Likewise.
4943         * include/bits/fs_ops.h: Likewise.
4944         * include/bits/fs_path.h: Likewise.
4945         * include/bits/functional_hash.h: Likewise.
4946         * include/bits/gslice.h: Likewise.
4947         * include/bits/gslice_array.h: Likewise.
4948         * include/bits/hashtable_policy.h: Likewise.
4949         * include/bits/indirect_array.h: Likewise.
4950         * include/bits/locale_classes.h: Likewise.
4951         * include/bits/locale_facets.h: Likewise.
4952         * include/bits/locale_facets_nonio.h: Likewise.
4953         * include/bits/mask_array.h: Likewise.
4954         * include/bits/refwrap.h: Likewise.
4955         * include/bits/regex.h: Likewise.
4956         * include/bits/regex_automaton.h: Likewise.
4957         * include/bits/regex_compiler.h: Likewise.
4958         * include/bits/regex_constants.h: Likewise.
4959         * include/bits/regex_error.h: Likewise.
4960         * include/bits/regex_executor.h: Likewise.
4961         * include/bits/regex_scanner.h: Likewise.
4962         * include/bits/shared_ptr.h: Likewise.
4963         * include/bits/shared_ptr_atomic.h: Likewise.
4964         * include/bits/shared_ptr_base.h: Likewise.
4965         * include/bits/slice_array.h: Likewise.
4966         * include/bits/specfun.h: Likewise.
4967         * include/bits/std_function.h: Likewise.
4968         * include/bits/std_mutex.h: Likewise.
4969         * include/bits/stl_deque.h: Likewise.
4970         * include/bits/stl_iterator.h: Likewise.
4971         * include/bits/stl_iterator_base_types.h: Likewise.
4972         * include/bits/stl_map.h: Likewise.
4973         * include/bits/stl_multimap.h: Likewise.
4974         * include/bits/stl_multiset.h: Likewise.
4975         * include/bits/stl_numeric.h: Likewise.
4976         * include/bits/stl_pair.h: Likewise.
4977         * include/bits/stl_set.h: Likewise.
4978         * include/bits/stl_uninitialized.h: Likewise.
4979         * include/bits/stream_iterator.h: Likewise.
4980         * include/bits/streambuf_iterator.h: Likewise.
4981         * include/bits/unique_ptr.h: Likewise.
4982         * include/bits/unordered_map.h: Likewise.
4983         * include/bits/unordered_set.h: Likewise.
4984         * include/decimal/decimal: Likewise.
4985         * include/experimental/any: Likewise.
4986         * include/experimental/array: Likewise.
4987         * include/experimental/bits/fs_dir.h: Likewise.
4988         * include/experimental/bits/fs_fwd.h: Likewise.
4989         * include/experimental/bits/fs_ops.h: Likewise.
4990         * include/experimental/bits/fs_path.h: Likewise.
4991         * include/experimental/buffer: Likewise.
4992         * include/experimental/internet: Likewise.
4993         * include/experimental/optional: Likewise.
4994         * include/experimental/propagate_const: Likewise.
4995         * include/experimental/socket: Likewise.
4996         * include/ext/pb_ds/assoc_container.hpp: Likewise.
4997         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
4998         Likewise.
4999         * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
5000         * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
5001         * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
5002         * include/ext/pb_ds/exception.hpp: Likewise.
5003         * include/ext/pb_ds/priority_queue.hpp: Likewise.
5004         * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
5005         * include/ext/random: Likewise.
5006         * include/std/any: Likewise.
5007         * include/std/atomic: Likewise.
5008         * include/std/bitset: Likewise.
5009         * include/std/chrono: Likewise.
5010         * include/std/complex: Likewise.
5011         * include/std/condition_variable: Likewise.
5012         * include/std/fstream: Likewise.
5013         * include/std/future: Likewise.
5014         * include/std/iostream: Likewise.
5015         * include/std/istream: Likewise.
5016         * include/std/mutex: Likewise.
5017         * include/std/numeric: Likewise.
5018         * include/std/ostream: Likewise.
5019         * include/std/ratio: Likewise.
5020         * include/std/shared_mutex: Likewise.
5021         * include/std/stdexcept: Likewise.
5022         * include/std/streambuf: Likewise.
5023         * include/std/system_error: Likewise.
5024         * include/std/thread: Likewise.
5025         * include/std/valarray: Likewise.
5026         * include/std/variant: Likewise.
5027         * include/tr1/cmath: Likewise.
5028         * include/tr1/regex: Likewise.
5029         * include/tr2/dynamic_bitset: Likewise.
5030         * libsupc++/atomic_lockfree_defines.h: Likewise.
5031         * libsupc++/exception: Likewise.
5032         * libsupc++/exception.h: Likewise.
5033         * libsupc++/exception_ptr.h: Likewise.
5034         * libsupc++/nested_exception.h: Likewise.
5036 2021-03-31  Alexandre Oliva  <oliva@adacore.com>
5038         * testsuite/30_threads/future/members/poll.cc: Use faster
5039         after-ready call in the calibration loop.
5041 2021-03-29  Jonathan Wakely  <jwakely@redhat.com>
5043         * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
5044         * doc/html/manual/status.html: Regenerate.
5046 2021-03-28  François Dumont  <fdumont@gcc.gnu.org>
5048         * include/debug/forward_list
5049         (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
5050         * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
5051         call to safe container allocator aware move constructor.
5052         * include/debug/vector (vector(vector&&, const allocator_type&)):
5053         Fix noexcept qualification.
5054         * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
5055         Add allocator-extended move constructor noexceot qualification check.
5056         * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
5058 2021-03-26  Jonathan Wakely  <jwakely@redhat.com>
5060         * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
5061         fallback is needed.
5062         [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
5063         New helper functions and callback.
5064         (random_device::_M_init): Add 'prng' and 'all' enumerators.
5065         Replace switch with fallthrough with a series of 'if' statements.
5066         [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
5067         checks fail.
5068         (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
5069         token.
5070         (random_device::_M_getval): Check for callback unconditionally
5071         and always pass _M_file pointer.
5072         * testsuite/26_numerics/random/random_device/85494.cc: Remove
5073         effective-target check. Use new random_device_available helper.
5074         * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
5075         * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
5076         Remove effective-target check.
5077         * testsuite/26_numerics/random/random_device/cons/default.cc:
5078         Likewise.
5079         * testsuite/26_numerics/random/random_device/cons/token.cc: Use
5080         new random_device_available helper. Test "prng" token.
5081         * testsuite/util/testsuite_random.h (random_device_available):
5082         New helper function.
5084 2021-03-25  François Dumont  <fdumont@gcc.gnu.org>
5086         * include/debug/string
5087         (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
5088         (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
5089         (basic_string<>::erase): Adapt to take __const_iterator.
5090         (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
5091         (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
5092         remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
5093         [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
5094         (__gnu_debug::u16string, __gnu_debug::u32string): New.
5095         (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
5096         (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
5097         * testsuite/util/exception/safety.h
5098         (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
5099         (insert_base<__gnu_debug::basic_string<>>): Likewise.
5100         * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
5101         New partial specialization.
5102         * testsuite/21_strings/basic_string/hash/debug.cc: New test.
5103         * testsuite/21_strings/basic_string/requirements/citerators.cc:
5104         Add test on __gnu_debug::string.
5105         * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
5106         * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
5107         * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
5108         Likewise.
5109         * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
5110         Likewise.
5111         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
5112         Likewise.
5113         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
5114         Likewise.
5115         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
5116         Likewise.
5117         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
5118         Likewise.
5119         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
5120         Likewise.
5121         * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
5123 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
5125         PR c++/99672
5126         * testsuite/18_support/source_location/consteval.cc (main): Adjust
5127         expected column numbers.
5128         * testsuite/18_support/source_location/1.cc (main): Likewise.
5130 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
5132         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
5134 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
5136         * testsuite/util/exception/safety.h (setup_base::generate):
5137         Support seeding random engine.
5138         (erase_point, erase_range): Adjust range of random numbers to
5139         ensure dereferenceable iterators are used where required.
5140         (generation_prohibited::run): Do not try to erase from empty
5141         containers.
5142         * testsuite/util/testsuite_containergen.h (test_containers):
5143         Support seeding random engine.
5145 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
5147         * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
5148         line with a check that uses the const being/end overloads.
5150 2021-03-23  Moritz Sichert  <sichert@in.tum.de>
5152         * include/std/ranges (reverse_view::begin, reverse_view::end):
5153         Qualify make_reverse_iterator calls to avoid ADL.
5154         * testsuite/std/ranges/adaptors/reverse.cc: Test that
5155         views::reverse works when make_reverse_iterator is defined
5156         in an associated namespace.
5158 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
5160         * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
5161         Do not define when compiling with Clang.
5163 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
5165         * include/std/string_view (basic_string_view(Range&&)): Define new
5166         constructor and deduction guide.
5167         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
5168         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
5170 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
5172         * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
5173         Add missing 'noexcept' as per LWG 2280.
5174         (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
5175         (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
5176         * testsuite/24_iterators/range_access/range_access.cc: Check for
5177         expected noexcept specifiers. Check result types of generic
5178         std::begin and std::end overloads.
5179         * testsuite/24_iterators/range_access/range_access_cpp14.cc:
5180         Check for expected noexcept specifiers.
5181         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5182         Likewise.
5184 2021-03-19  Jonathan Wakely  <jwakely@redhat.com>
5186         * include/std/type_traits (is_scoped_enum): Define.
5187         * include/std/version (__cpp_lib_is_scoped_enum): Define.
5188         * testsuite/20_util/is_scoped_enum/value.cc: New test.
5189         * testsuite/20_util/is_scoped_enum/version.cc: New test.
5191 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
5193         PR libstdc++/99341
5194         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
5195         std::once_flag symbols.
5196         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
5197         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
5198         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5199         Likewise.
5200         * config/abi/pre/gnu.ver: Likewise.
5201         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5202         (struct __once_flag_compat): Remove.
5203         (_ZNSt9once_flag11_M_activateEv): Remove.
5204         (_ZNSt9once_flag9_M_finishEb): Remove.
5206 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
5208         PR libstdc++/99341
5209         * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
5210         Revert to pthread_once_t implementation.
5211         [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
5212         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5213         (struct __once_flag_compat): New type matching the reverted
5214         implementation of once_flag using futexes.
5215         (once_flag::_M_activate): Remove, replace with ...
5216         (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
5217         (once_flag::_M_finish): Remove, replace with ...
5218         (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
5219         * testsuite/30_threads/call_once/66146.cc: Removed.
5221 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
5223         * testsuite/17_intro/names.cc: Exclude j from the list
5224         of test symbols for Darwin.
5226 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
5228         * config/os/bsd/darwin/ppc-extra.ver: Add matching for
5229         to_chars and from_chars for long double.
5231 2021-03-15  Patrick Palka  <ppalka@redhat.com>
5233         * include/bits/max_size_type.h (__max_size_type::operator _Tp):
5234         Fix formatting.
5235         (__max_size_type::operator++): Define.
5236         (__max_size_type::operator--): Likewise.
5237         (__max_size_type::operator<=>): Conditionally define (in place
5238         of the other comparison operators).
5239         (__max_diff_type::operator _Tp): Fix formatting.
5240         (__max_diff_type::operator++): Define.
5241         (__max_diff_type::operator--): Likewise.
5242         (__max_diff_type::operator<=>): Conditionally define (in place
5243         of the other comparison operators).
5244         * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
5245         these operator overloads.
5247 2021-03-15  Caroline Tice  <cmtice@google.com>
5249         PR libstdc++/99172
5250         * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
5251         AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
5252         AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
5253         filtered out.
5254         * src/Makefile.in: Regenerate.
5256 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5258         * src/c++17/floating_to_chars.cc: Simplify the file as if
5259         __SIZEOF_INT128__ is always defined.
5260         [!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
5261         a base-10 to_chars overload for the uint128_t class type.
5262         * src/c++17/uint128_t.h: New file.
5263         * testsuite/20_util/to_chars/long_double.cc: No longer expect an
5264         execution FAIL on targets that have a large long double type
5265         but lack __int128.
5267 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5269         * src/c++17/ryu/LOCAL_PATCHES: Update.
5270         * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
5271         * src/c++17/ryu/generic_128.h: Likewise.
5272         * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
5273         Use uint128_t instead of __uint128_t.
5274         (generic_binary_to_decimal): Likewise.
5276 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5278         * src/c++17/ryu/LOCAL_PATCHES: New file.
5280 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5282         * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
5283         defined alias of unsigned __int128.
5284         (floating_type_traits_binary128::mantissa_t): Use uint128_t
5285         instead of unsigned __int128.
5286         (floating_type_traits<long double>::mantissa_t)
5287         [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
5288         (get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
5289         and uint32_t explicit.  Simplify the extraction of mantissa,
5290         exponent and sign bit.
5292 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5294         * include/std/barrier (barrier::arrival_token): New move-only
5295         class that encapsulates the underlying token value.
5297 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5299         * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
5300         instead of unqualified() method.
5302 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5304         PR libstdc++/99537
5305         * include/std/stop_token (_Stop_state_t::_M_release_ownership):
5306         Use acq_rel memory ordering.
5308 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5310         PR libstdc++/99533
5311         * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
5312         helper function to check for permission denied errors.
5313         * src/filesystem/dir.cc (recursive_directory_iterator):
5314         Likewise.
5315         * src/filesystem/dir-common.h (is_permission_denied_error): New
5316         helper function.
5318 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5320         PR libstdc++/99536
5321         * include/bits/random.h (normal_distribution): Use
5322         default-initializer for _M_saved and _M_saved_available.
5324 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
5326         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
5327         link with libatomic.
5328         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5329         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5330         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5331         * testsuite/30_threads/barrier/arrive.cc: Likewise.
5332         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5333         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5334         * testsuite/30_threads/barrier/completion.cc: Likewise.
5335         * testsuite/30_threads/latch/3.cc: Likewise.
5336         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
5337         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
5338         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5340 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
5342         PR libstdc++/99413
5343         * include/bits/align.h: Include debug/assertions.h.
5344         * include/bits/codecvt.h: Include bits/c++config.h.
5345         * include/bits/enable_special_members.h: Likewise.
5346         * include/bits/erase_if.h: Likewise.
5347         * include/bits/functional_hash.h: Include <type_traits>.
5348         * include/bits/invoke.h: Include bits/move.h.
5349         * include/bits/ostream_insert.h: Include bits/exception_defines.h.
5350         * include/bits/parse_numbers.h: Include <type_traits>.
5351         * include/bits/predefined_ops.h: Include bits/c++config.h.
5352         * include/bits/range_access.h: Include bits/stl_iterator.h.
5353         * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
5354         * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
5355         * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
5356         * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
5357         * include/bits/unique_lock.h: Include bits/std_mutex.h.
5358         * include/debug/assertions.h: Include bits/c++config.h.
5360 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
5362         * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
5363         (ranges::equal_to, ranges::not_equal_to): Do not constrain
5364         with __eq_builtin_ptr_cmp.
5365         (ranges::less, ranges::greater, ranges::less_equal)
5366         (ranges::greater_equal): Do not constrain with
5367         __less_builtin_ptr_cmp.
5368         * libsupc++/compare (compare_three_way): Do not constrain with
5369         __3way_builtin_ptr_cmp.
5370         * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
5371         * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
5372         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
5374 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
5376         * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
5377         C++20 calendar types.
5379 2021-03-06  Jakub Jelinek  <jakub@redhat.com>
5381         PR libstdc++/99396
5382         * include/std/bit (__rotl, __rotr): Add optimized variants for power of
5383         two _Nd which the compiler can pattern match the rotates.
5385 2021-03-04  Jonathan Wakely  <jwakely@redhat.com>
5387         PR libstdc++/99382
5388         * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5389         Make storage larger than required. Verify no write to the last
5390         element.
5391         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5392         Likewise.
5394 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5396         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5397         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5398         Likewise.
5399         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5400         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5401         Likewise.
5403 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5405         * include/experimental/bits/simd.h: Replace reserved _X, _B by
5406         _Xp, _Bp.
5407         * include/experimental/bits/simd_builtin.h: Likewise.
5408         * include/experimental/bits/simd_x86.h: Likewise.
5410 2021-02-27  Jonathan Wakely  <jwakely@redhat.com>
5412         PR libstdc++/99301
5413         * include/std/chrono (year_month_day::_M_days_since_epoch()):
5414         Convert chrono::month and chrono::day to unsigned before
5415         converting to uint32_t.
5417 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5419         * include/std/chrono (year_month_day::_S_from_days): Perform
5420         all calculations with type uint32_t.
5422 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5424         * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5425         * doc/html/manual/abi.html: Regenerate.
5427 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5429         PR libstdc++/99270
5430         * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5431         FILE instead of FILE.
5433 2021-02-25  Andreas Schwab  <schwab@suse.de>
5435         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5436         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5437         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5438         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5440 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5442         PR libstdc++/99265
5443         * include/std/chrono (year_month_day::_S_from_days): Cast long
5444         to int explicitly.
5446 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5448         * include/std/utility (to_underlying): Define.
5449         * include/std/version (__cpp_lib_to_underlying): Define.
5450         * testsuite/20_util/to_underlying/1.cc: New test.
5451         * testsuite/20_util/to_underlying/version.cc: New test.
5453 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5455         PR libstdc++/99261
5456         * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5457         before value to be printed.
5459 2021-02-24  Patrick Palka  <ppalka@redhat.com>
5461         * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
5462         Relax the condition that guards the printf code path to accept
5463         F128_type as well as long double.
5465 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5467         * include/std/chrono (year_month_day_last:day): New
5468         implementation.
5470 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5472         * include/std/chrono (year::is_leap): New implementation.
5473         * testsuite/std/time/year/2.cc: New test.
5475 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5477         * include/std/chrono (year_month_day::_M_days_since_epoch):
5478         New implementation.
5479         * testsuite/std/time/year_month_day/4.cc: New test.
5481 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5483         * include/std/chrono (year_month_day::_S_from_days): New
5484         implementation.
5485         * testsuite/std/time/year_month_day/3.cc: New test.
5487 2021-02-24  Patrick Palka  <ppalka@redhat.com>
5489         PR libstdc++/98384
5490         * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
5491         (test01): Simplify verifying the nearby values by using a
5492         2-iteration loop and a dedicated output buffer to check that the
5493         nearby values are different.  Factor out the printf-based
5494         verification into a local function, and check that the leading
5495         hex digits agree before comparing to the output of printf.  Also
5496         verify the output by round-tripping it through from_chars.
5498 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5500         PR libstdc++/98389
5501         * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
5502         symbols for long double arguments mangled as 'g'.
5503         * config/os/gnu-linux/ldbl-extra.ver: Likewise.
5504         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
5505         * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
5506         Use -mabi=ibmlongdouble for floating_to_chars.cc.
5507         * src/c++17/Makefile.in: Regenerate.
5508         * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
5509         New type defining type traits of IEEE binary128 format.
5510         (floating_type_traits<__float128>): Define specialization.
5511         (floating_type_traits<long double>): Define in terms of
5512         floating_type_traits_binary128 when appropriate.
5513         (floating_to_shortest_scientific): Handle __float128.
5514         (sprintf_ld): New function template for printing a long double
5515         or __ieee128 value using sprintf.
5516         (__floating_to_chars_shortest, __floating_to_chars_precision):
5517         Use sprintf_ld.
5518         (to_chars): Define overloads for __float128.
5520 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5522         * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
5524 2021-02-23  Martin Sebor  <msebor@redhat.com>
5526         PR c++/99074
5527         * libsupc++/dyncast.cc (__dynamic_cast): Return null when
5528         first argument is null.
5530 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
5532         PR libstdc++/99181
5533         * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
5534         test.
5536 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
5538         PR libstdc++/99181
5539         * include/bits/char_traits.h (char_traits<char>::compare): For
5540         constexpr evaluation don't call
5541         __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
5542         directly.
5544 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
5546         PR libstdc++/97549
5547         * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
5549 2021-02-23  Patrick Palka  <ppalka@redhat.com>
5551         PR libstdc++/98384
5552         * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
5553         the high- and low-order parts from an IBM long double value
5554         in an endian-agnostic way.
5556 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
5558         * include/bits/atomic_wait.h (__thread_relax()): Call
5559         __thread_yield() not __gthread_yield().
5561 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
5563         * include/bits/atomic_wait.h (__thread_yield()): Check
5564         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
5565         (__thread_relax()): Use __thread_yield() instead of repeating
5566         the preprocessor checks for __gthread_yield.
5568 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
5570         * include/std/mutex (once_flag::_M_activate()): Add explicit
5571         return statement for passive case.
5572         (once_flag::_M_finish(bool)): Use reserved name for parameter.
5574 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
5576         PR libstdc++/99096
5577         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
5579 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5581         PR libstdc++/88881
5582         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
5584 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5586         * doc/xml/manual/status_cxx2014.xml: Document implementation
5587         specific properties of std::experimental::filesystem::rename.
5588         * doc/xml/manual/status_cxx2017.xml: Document implementation
5589         specific properties of std::filesystem::rename.
5590         * doc/html/*: Regenerate.
5591         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
5592         for directories on Windows.
5593         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
5594         MoveFileExW on Windows.
5595         * testsuite/27_io/filesystem/operations/rename.cc: New test.
5596         * testsuite/experimental/filesystem/operations/rename.cc: New test.
5598 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5600         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
5601         random number to the path.
5603 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5605         * include/experimental/internet (address_v6::to_string): Include
5606         scope ID in string.
5607         * testsuite/experimental/net/internet/address/v6/members.cc:
5608         Test to_string() results.
5610 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5612         * include/experimental/internet (address_v6::any): Avoid using
5613         memcpy in constexpr function.
5614         (address_v6::loopback): Likewise.
5615         (make_address_v6): Fix missing return statements on error paths.
5616         * include/experimental/io_context: Avoid -Wdangling-else
5617         warning.
5618         * testsuite/experimental/net/internet/address/v4/members.cc:
5619         Remove unused variables.
5620         * testsuite/experimental/net/internet/address/v6/members.cc:
5621         New test.
5623 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5625         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
5626         Add unused attribute to parameter.
5627         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
5628         Likewise.
5630 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5632         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
5633         if -fno-rtti is used.
5634         * testsuite/30_threads/async/forced_unwind.cc: Expect test
5635         to abort if -fno-rtti is used.
5637 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5639         * testsuite/util/testsuite_allocator.h (memory_resource):
5640         Remove requirement for RTTI and exceptions to be enabled.
5642 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5644         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
5645         static_cast when RTTI is disabled.
5646         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
5647         Likewise.
5648         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
5649         Likewise.
5650         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
5651         Likewise.
5652         * testsuite/27_io/basic_stringstream/str/char/2.cc:
5653         Likewise.
5654         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
5655         Likewise.
5657 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5659         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
5660         as unused and only use dynamic_cast when RTTI is enabled.
5662 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5664         PR libstdc++/99077
5665         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
5666         Change int parameter to error_code, to match std::ios_failure.
5667         (__throw_ios_failure(const char*, int)): Construct error_code
5668         from int parameter.
5670 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
5672         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
5673         new macro.
5674         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
5675         macro instead of _GLIBCXX_EH_PTR_COMPAT.
5676         (operator==): Likewise.
5678 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
5680         PR libstdc++/99058
5681         * doc/xml/manual/status_cxx2011.xml: Document when support
5682         became stable.
5683         * doc/xml/manual/status_cxx2014.xml: Likewise.
5684         * doc/xml/manual/status_cxx2017.xml: Likewise.
5685         * doc/html/manual/status.html: Regenerate.
5687 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
5689         PR libstdc++/88881
5690         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
5692 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
5694         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
5695         (fs::remove): Use std::system_category() for error codes from
5696         GetLastError().
5697         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
5698         Likewise.
5700 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
5702         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
5703         in __MINGW32__ macro name.
5704         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5705         * testsuite/27_io/filesystem/path/generation/proximate.cc:
5706         Likewise.
5707         * testsuite/27_io/filesystem/path/generation/relative.cc:
5708         Likewise.
5709         * testsuite/util/testsuite_fs.h: Likewise.
5711 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
5713         * include/bits/stl_tree.h
5714         (__has_is_transparent, __has_is_transparent_t): Move...
5715         * include/bits/stl_function.h: ...here.
5716         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
5717         (_Hashtable_base<>::_M_equals_tr): New.
5718         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
5719         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
5720         heterogeneous lookup.
5721         (_Hashtable<>::_M_find_before_node_tr): New.
5722         (_Hashtable<>::_M_find_node_tr): New.
5723         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
5724         unordered_map::contains<>, unordered_map::equal_range<>): New member function
5725         templates to perform heterogeneous lookup.
5726         (unordered_multimap::find<>, unordered_multimap::count<>,
5727         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
5728         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
5729         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
5730         (unordered_multiset::find<>, unordered_multiset::count<>,
5731         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
5732         * include/debug/unordered_map
5733         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
5734         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
5735         * include/debug/unordered_set
5736         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
5737         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
5738         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
5739         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
5740         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
5741         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
5743 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
5745         * include/bits/stl_deque.h
5746         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
5747         a null pointer test.
5749 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
5751         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
5752         test directory after making it writable again.
5753         * testsuite/experimental/filesystem/operations/remove_all.cc:
5754         Likewise.
5756 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
5758         PR libstdc++/99021
5759         * include/std/coroutine (coroutine_handle<P>::from_address): Add
5760         noexcept.
5762 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
5764         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
5765         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
5767 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
5769         PR middle-end/98465
5770         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
5771         points to the characters moved by earlier _S_move, compute the source
5772         address using expression based on the __p pointer rather than __s
5773         pointer.
5775 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
5777         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
5778         Add comparison with same category and different values.
5779         * testsuite/19_diagnostics/error_code/operators/less.cc:
5780         Likewise. Fix comparison involving different categories.
5781         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
5782         Likewise.
5783         * testsuite/19_diagnostics/error_condition/operators/less.cc:
5784         Add comment.
5785         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
5786         Likewise.
5788 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
5790         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
5791         calls with a single vaddv for aarch64.
5793 2021-02-03  Matthias Kretz  <kretz@kde.org>
5795         * testsuite/Makefile.am: Warn about the workaround. Add
5796         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
5797         Improve initial user feedback from make check-simd.
5798         * testsuite/Makefile.in: Regenerated.
5800 2021-02-03  Matthias Kretz  <kretz@kde.org>
5802         * include/experimental/bits/simd.h: Add __detail::_Minimum and
5803         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
5804         Add hmin and hmax overloads for simd and const_where_expression.
5805         * include/experimental/bits/simd_scalar.h
5806         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
5807         parameter const-ref to allow calling _S_reduce with an rvalue.
5808         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
5809         hmin and hmax. Since the compiler statically determined that all
5810         tests pass, repeat the test after a call to make_value_unknown.
5812 2021-02-03  Matthias Kretz  <kretz@kde.org>
5814         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
5815         instruction pointer data member. Ensure that the `if (m_failed)`
5816         branch is always inlined into the calling code. The body of the
5817         conditional can still be a function call. Move the get_ip call
5818         into the verify ctor to simplify the ctor calls.
5819         (COMPARE): Don't mention the use of all_of for reduction of a
5820         simd_mask. It only distracts from the real issue.
5822 2021-02-03  Matthias Kretz  <kretz@kde.org>
5824         * testsuite/experimental/simd/driver.sh: Abstract reading test
5825         options into read_src_option function. Read skip, only,
5826         expensive, and xfail via read_src_option. Add timeout and
5827         timeout-factor options and adjust timeout variable accordingly.
5828         * testsuite/experimental/simd/tests/loadstore.cc: Set
5829         timeout-factor 2.
5831 2021-02-03  Matthias Kretz  <kretz@kde.org>
5833         * testsuite/experimental/simd/driver.sh: When handling the pipe
5834         to log (and on verbose to stdout) count the lines. If it exceeds
5835         1000 log the issue and exit 125, which is then handled as a
5836         failure.
5838 2021-02-03  Matthias Kretz  <kretz@kde.org>
5840         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
5841         markup for long double on powerpc64*.
5843 2021-02-03  Matthias Kretz  <kretz@kde.org>
5845         * include/experimental/bits/simd.h: Add __have_power10vec
5846         conditional on _ARCH_PWR10.
5847         * include/experimental/bits/simd_builtin.h: Forward declare
5848         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
5849         defined.
5850         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
5851         _SuperImpl for optimizations and correctness.
5852         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
5853         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
5854         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
5855         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
5857 2021-02-03  Matthias Kretz  <kretz@kde.org>
5859         * testsuite/experimental/simd/driver.sh: Remove executable on
5860         SIGINT. Process compiler and test executable output: In verbose
5861         mode print messages immediately, limited to 1000 lines and
5862         breaking long lines to below $COLUMNS (or 1024 if not set).
5863         Communicating the exit status of the compiler / test with the
5864         necessary pipe is done via a message through stdout/-in.
5866 2021-02-03  Matthias Kretz  <kretz@kde.org>
5868         * testsuite/Makefile.am: Ensure .simd.summary is empty before
5869         collecting a new summary.
5870         * testsuite/Makefile.in: Regenerate.
5872 2021-02-03  Matthias Kretz  <kretz@kde.org>
5874         * testsuite/experimental/simd/generate_makefile.sh: Use
5875         different variables internally than documented for user
5876         overrides. This makes internal append/prepend work as intended.
5878 2021-02-03  Matthias Kretz  <kretz@kde.org>
5880         * testsuite/experimental/simd/driver.sh (verify_test): Print
5881         test output on run xfail. Do not repeat lines from the log that
5882         were already printed on stdout.
5883         (test_selector): Make the compiler flags pattern usable as a
5884         substring selector.
5885         (toplevel): Trap on SIGINT and remove the log and sum files.
5886         Call timout with --foreground to quickly terminate on SIGINT.
5887         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
5888         targets via target patterns. Default DRIVEROPTS to -v for run
5889         targets. Remove log and sum files after completion of the run
5890         target (so that it's always recompiled).
5891         Place help text into text file for reasonable 'make help'
5892         performance.
5894 2021-02-03  Matthias Kretz  <kretz@kde.org>
5896         * include/experimental/bits/simd.h: Remove unnecessary static
5897         assertion. Allow sizeof(8) integer __intrinsic_type to enable
5898         the necessary mask type.
5900 2021-02-03  Matthias Kretz  <kretz@kde.org>
5902         * include/experimental/bits/simd.h: Let __intrinsic_type<long
5903         double, N> be valid if sizeof(long double) == sizeof(double) and
5904         use a __vector double as member type.
5906 2021-02-03  Matthias Kretz  <kretz@kde.org>
5908         * include/experimental/bits/simd.h (__is_intrinsic_type): New
5909         internal type trait. Alias for __is_vector_type on x86.
5910         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
5911         __vector_type.
5912         (__intrin_bitcast): Allow casting to & from vector & intrinsic
5913         types.
5914         (__intrinsic_type): Explicitly specialize for NEON intrinsic
5915         vector types.
5917 2021-02-03  Matthias Kretz  <kretz@kde.org>
5919         * testsuite/experimental/simd/driver.sh: Implement skip, only,
5920         expensive, and xfail markers. They can select on type, ABI tag
5921         subset number, target-triplet, and compiler flags.
5922         * testsuite/experimental/simd/generate_makefile.sh: The summary
5923         now includes lines for unexpected passes and expected failures.
5924         If the skip or only markers are only conditional on the type, do
5925         not generate rules for those types.
5926         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
5927         for ABI tag subsets 1-9.
5928         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
5929         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
5930         * testsuite/experimental/simd/tests/casts.cc: Ditto.
5931         * testsuite/experimental/simd/tests/generator.cc: Ditto.
5932         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
5933         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
5934         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
5935         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
5936         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
5937         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
5938         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
5939         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
5940         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
5941         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
5942         * testsuite/experimental/simd/tests/operators.cc: Ditto.
5943         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
5944         * testsuite/experimental/simd/tests/simd.cc: Ditto.
5945         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
5946         * testsuite/experimental/simd/tests/splits.cc: Ditto.
5947         * testsuite/experimental/simd/tests/where.cc: Ditto.
5948         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
5949         addition replace "test only floattypes" marker by unconditional
5950         "float|double|ldouble" only marker.
5951         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
5952         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
5953         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5954         Ditto.
5955         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
5956         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
5957         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
5958         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
5959         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
5960         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
5961         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
5962         addition, xfail on run because the reference data is missing.
5964 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
5966         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
5967         * doc/xml/manual/status_cxx2014.xml: Likewise.
5968         * doc/xml/manual/status_cxx2017.xml: Likewise.
5969         * doc/html/manual/status.html: Regenerate.
5971 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
5973         PR libstdc++/70303
5974         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
5975         Return 0 if both iterators are value-initialized.
5976         * testsuite/23_containers/deque/70303.cc: New test.
5977         * testsuite/23_containers/vector/70303.cc: New test.
5979 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
5981         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
5982         status.
5983         * doc/xml/manual/status_cxx2014.xml: Likewise.
5984         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
5985         std::from_chars and std::to_chars status. Fix formatting.
5986         * doc/html/manual/status.html: Regenerate.
5988 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
5990         * include/experimental/bits/numeric_traits.h: Update copyright
5991         dates.
5992         * include/experimental/bits/simd.h: Likewise.
5993         * include/experimental/bits/simd_builtin.h: Likewise.
5994         * include/experimental/bits/simd_converter.h: Likewise.
5995         * include/experimental/bits/simd_detail.h: Likewise.
5996         * include/experimental/bits/simd_fixed_size.h: Likewise.
5997         * include/experimental/bits/simd_math.h: Likewise.
5998         * include/experimental/bits/simd_neon.h: Likewise.
5999         * include/experimental/bits/simd_ppc.h: Likewise.
6000         * include/experimental/bits/simd_scalar.h: Likewise.
6001         * include/experimental/bits/simd_x86.h: Likewise.
6002         * include/experimental/bits/simd_x86_conversions.h: Likewise.
6003         * include/experimental/simd: Likewise.
6004         * testsuite/experimental/simd/*: Likewise.
6006 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
6008         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
6009         * doc/html/*: Regenerate.
6011 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
6013         * testsuite/experimental/simd/generate_makefile.sh: Use printf
6014         instead of echo when printing escape characters.
6016 2021-01-27  Matthias Kretz  <kretz@kde.org>
6018         * scripts/check_simd: New file. This script is called from the
6019         the check-simd target. It determines a set of compiler flags and
6020         simulator setups for calling generate_makefile.sh and passes the
6021         information back to the check-simd target, which recurses to the
6022         generated Makefiles.
6023         * scripts/create_testsuite_files: Remove files below simd/tests/
6024         from testsuite_files and place them in testsuite_files_simd.
6025         * testsuite/Makefile.am: Add testsuite_files_simd. Add
6026         check-simd target.
6027         * testsuite/Makefile.in: Regenerate.
6028         * testsuite/experimental/simd/driver.sh: New file. This script
6029         compiles and runs a given simd test, logging its output and
6030         status. It uses the timeout command to implement compile and
6031         test timeouts.
6032         * testsuite/experimental/simd/generate_makefile.sh: New file.
6033         This script generates a Makefile which uses driver.sh to compile
6034         and run the tests and collect the logs into a single log file.
6035         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
6036         abs(simd).
6037         * testsuite/experimental/simd/tests/algorithms.cc: New file.
6038         Tests min/max(simd, simd).
6039         * testsuite/experimental/simd/tests/bits/conversions.h: New
6040         file. Contains functions to support tests involving conversions.
6041         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
6042         Support functions make_mask and make_vec.
6043         * testsuite/experimental/simd/tests/bits/mathreference.h: New
6044         file. Support functions to supply precomputed math function
6045         reference data.
6046         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
6047         file. Support code for SFINAE testing.
6048         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
6049         * testsuite/experimental/simd/tests/bits/test_values.h: New
6050         file. Test functions to easily drive a test with simd objects
6051         initialized from a given list of values and a range of random
6052         values.
6053         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
6054         Support code to determine the ULP distance of simd objects.
6055         * testsuite/experimental/simd/tests/bits/verify.h: New file.
6056         Test framework for COMPARE'ing simd objects and instantiating
6057         the test templates with value_type and ABI tag.
6058         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
6059         simd broadcasts.
6060         * testsuite/experimental/simd/tests/casts.cc: New file. Test
6061         simd casts.
6062         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
6063         Test floating-point classification functions.
6064         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
6065         frexp(simd).
6066         * testsuite/experimental/simd/tests/generator.cc: New file. Test
6067         simd generator constructor.
6068         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
6069         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
6070         * testsuite/experimental/simd/tests/integer_operators.cc: New
6071         file. Test integer operators.
6072         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6073         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
6074         modf(simd).
6075         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
6076         (converting) simd loads and stores.
6077         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
6078         log*(simd).
6079         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
6080         Test simd_mask broadcasts.
6081         * testsuite/experimental/simd/tests/mask_conversions.cc: New
6082         file. Test simd_mask conversions.
6083         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
6084         file. Test simd_mask implicit conversions.
6085         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
6086         Test simd_mask loads and stores.
6087         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
6088         file. Test simd_mask operators convert as specified.
6089         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
6090         Test simd_mask compares, subscripts, and negation.
6091         * testsuite/experimental/simd/tests/mask_reductions.cc: New
6092         file. Test simd_mask reductions.
6093         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
6094         1-arg math functions on simd.
6095         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
6096         2-arg math functions on simd.
6097         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
6098         Test implicit conversions on simd binary operators behave as
6099         specified.
6100         * testsuite/experimental/simd/tests/operators.cc: New file. Test
6101         simd compares, subscripts, not, unary minus, plus, minus,
6102         multiplies, divides, increment, and decrement.
6103         * testsuite/experimental/simd/tests/reductions.cc: New file.
6104         Test reduce(simd).
6105         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
6106         remqo(simd).
6107         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
6108         sanity checks of simd types.
6109         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
6110         sin(simd) and cos(simd).
6111         * testsuite/experimental/simd/tests/split_concat.cc: New file.
6112         Test split(simd) and concat(simd, simd).
6113         * testsuite/experimental/simd/tests/splits.cc: New file. Test
6114         split(simd_mask).
6115         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
6116         Test remaining trigonometric functions on simd.
6117         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
6118         file. Test trunc(simd), ceil(simd), and floor(simd).
6119         * testsuite/experimental/simd/tests/where.cc: New file. Test
6120         masked operations using where.
6122 2021-01-27  Matthias Kretz  <kretz@kde.org>
6124         * doc/xml/manual/status_cxx2017.xml: Add implementation status
6125         of the Parallelism TS 2. Document implementation-defined types
6126         and behavior.
6127         * include/Makefile.am: Add new headers.
6128         * include/Makefile.in: Regenerate.
6129         * include/experimental/simd: New file. New header for
6130         Parallelism TS 2.
6131         * include/experimental/bits/numeric_traits.h: New file.
6132         Implementation of P1841R1 using internal naming. Addition of
6133         missing IEC559 functionality query.
6134         * include/experimental/bits/simd.h: New file. Definition of the
6135         public simd interfaces and general implementation helpers.
6136         * include/experimental/bits/simd_builtin.h: New file.
6137         Implementation of the _VecBuiltin simd_abi.
6138         * include/experimental/bits/simd_converter.h: New file. Generic
6139         simd conversions.
6140         * include/experimental/bits/simd_detail.h: New file. Internal
6141         macros for the simd implementation.
6142         * include/experimental/bits/simd_fixed_size.h: New file. Simd
6143         fixed_size ABI specific implementations.
6144         * include/experimental/bits/simd_math.h: New file. Math
6145         overloads for simd.
6146         * include/experimental/bits/simd_neon.h: New file. Simd NEON
6147         specific implementations.
6148         * include/experimental/bits/simd_ppc.h: New file. Implement bit
6149         shifts to avoid invalid results for integral types smaller than
6150         int.
6151         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
6152         ABI specific implementations.
6153         * include/experimental/bits/simd_x86.h: New file. Simd x86
6154         specific implementations.
6155         * include/experimental/bits/simd_x86_conversions.h: New file.
6156         x86 specific conversion optimizations. The conversion patterns
6157         work around missing conversion patterns in the compiler and
6158         should be removed as soon as PR85048 is resolved.
6159         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
6160         Test that all (not all fixed_size<N>, though) standard simd and
6161         simd_mask types are usable.
6162         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
6163         file. As above but with -ffast-math.
6164         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
6165         from the standard test loop. Instead use
6166         check_vect_support_and_set_flags to build simd tests with the
6167         relevant machine flags.
6169 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
6171         PR libstdc++/66414
6172         * include/bits/string_view.tcc
6173         (basic_string_view::find(const CharT*, size_type, size_type)):
6174         Optimize.
6176 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
6178         * include/bits/basic_string.h (basic_string::contains): New
6179         member functions.
6180         * include/std/string_view (basic_string_view::contains):
6181         Likewise.
6182         * include/std/version (__cpp_lib_string_contains): Define.
6183         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
6184         Remove trailing whitespace.
6185         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
6186         Likewise.
6187         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
6188         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
6189         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
6190         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
6191         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
6193 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
6195         * src/c++17/Makefile.in: Regenerate.
6197 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
6199         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
6200         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
6201         __lc_type.
6202         (const char* ctype<char>:: is): Same.
6204 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
6206         PR libstdc++/98725
6207         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
6208         write to a wide character stream if wide character support is
6209         disabled in the library.
6211 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
6213         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
6214         stringbuf not wstringbuf.
6216 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
6218         PR debug/98708
6219         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
6220         Compile with -gno-as-loc-support.
6221         * src/c++11/Makefile.in: Regenerated.
6223 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
6225         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
6226         Add -fcf-protection=none to -march=i486.
6228 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
6230         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
6231         compliant.
6233 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
6235         * testsuite/30_threads/future/members/poll.cc: Calibrate
6236         iteration count.
6238 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
6240         PR libstdc++/98466
6241         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
6242         (_Node_iterator()): Make default.
6243         (_Node_const_iterator()): Make default.
6244         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
6245         iterator checks.
6246         * include/debug/safe_iterator.h
6247         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
6248         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
6249         Likewise.
6250         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
6251         _M_singular checks on input iterators.
6252         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
6253         checks.
6254         * testsuite/23_containers/deque/debug/98466.cc: New test.
6255         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
6257 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
6259         PR libstdc++/98471
6260         * include/bits/fs_path.h (__throw_conversion_error): New
6261         function to throw or abort on character conversion errors.
6262         (__wstr_from_utf8): Move definition after filesystem_error has
6263         been defined. Use __throw_conversion_error.
6264         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
6265         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
6266         (path::u8string): Likewise.
6268 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
6270         * include/std/barrier: Update copyright years. Fix whitespace.
6271         * include/std/version: Fix whitespace.
6272         * testsuite/30_threads/barrier/1.cc: Update copyright years.
6273         * testsuite/30_threads/barrier/2.cc: Likewise.
6274         * testsuite/30_threads/barrier/arrive.cc: Likewise.
6275         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6276         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6277         * testsuite/30_threads/barrier/completion.cc: Likewise.
6279 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
6281         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
6283 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
6285         PR libstdc++/98613
6286         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
6287         warning.
6288         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
6290 2021-01-08  Olivier Hainque  <hainque@adacore.com>
6292         * testsuite/20_util/bind/ref_neg.cc: Tweak the
6293         dg-prune-output regex for out-of-build-tree contexts.
6295 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
6297         * doc/doxygen/user.cfg.in: Add new header.
6298         * include/Makefile.am (std_headers): likewise.
6299         * include/Makefile.in: Regenerate.
6300         * include/precompiled/stdc++.h: Add new header.
6301         * include/std/barrier: New file.
6302         * include/std/version: Add __cpp_lib_barrier feature test macro.
6303         * testsuite/30_threads/barrier/1.cc: New test.
6304         * testsuite/30_threads/barrier/2.cc: Likewise.
6305         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6306         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6307         * testsuite/30_threads/barrier/arrive.cc: Likewise.
6308         * testsuite/30_threads/barrier/completion.cc: Likewise.
6310 2021-01-07  Patrick Palka  <ppalka@redhat.com>
6312         PR libstdc++/98384
6313         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
6314         instead of the non-standard nextupl and nextdownl.
6316 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
6318         * configure: Re-generate.
6320 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
6322         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
6324 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
6326         * ChangeLog-2020: Rotate ChangeLog.  New file.
6329 Copyright (C) 2021 Free Software Foundation, Inc.
6331 Copying and distribution of this file, with or without modification,
6332 are permitted in any medium without royalty provided the copyright
6333 notice and this notice are preserved.