Daily bump.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobc6f116410f7e8d227a10244be3313aa92457af15
1 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
3         * include/bits/range_access.h (begin(valarray), end(valarray)):
4         Add noexcept.
6 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
8         * include/std/tuple (tuple_size_v): Fix pack expansion.
10 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
12         * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
13         [[unlikely]] attribute.
15 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
17         * src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
18         (__ppc_darn): New function to use POWER9 DARN instruction.
19         (Which): Add 'darn' enumerator.
20         (which_source): Check for __ppc_darn.
21         (random_device::_M_init): Support "darn" and "hw" tokens.
22         (random_device::_M_getentropy): Add darn to switch.
23         * testsuite/26_numerics/random/random_device/cons/token.cc:
24         Check "darn" token.
25         * testsuite/26_numerics/random/random_device/entropy.cc:
26         Likewise.
28 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
30         * testsuite/lib/gdb-test.exp: Add target selector support to the
31         dg-final directives.
32         * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
33         C++20.
34         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
35         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
36         comment.
38 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
40         PR libstdc++/103086
41         * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
42         for accessing the tuple element stored in a _Tuple_impl node.
43         (tuple_get): New function for accessing a tuple element.
44         (unique_ptr_get): New function for accessing a unique_ptr.
45         (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
46         * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
47         tuple to its base class before accessing _M_head_impl.
49 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
51         * doc/xml/manual/evolution.xml: Document deprecations.
52         * doc/html/*: Regenerate.
53         * libsupc++/exception (unexpected_handler, unexpected)
54         (get_unexpected, set_unexpected): Add deprecated attribute.
55         Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
56         * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
57         deprecated warnings.
58         * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
59         * libsupc++/eh_terminate.cc: Likewise.
60         * libsupc++/eh_throw.cc (__cxa_init_primary_exception):
61         Likewise.
62         * libsupc++/unwind-cxx.h (struct __cxa_exception): Use
63         terminate_handler instead of unexpected_handler.
64         (struct __cxa_dependent_exception): Likewise.
65         (__unexpected): Likewise.
66         * testsuite/18_support/headers/exception/synopsis.cc: Add
67         dg-warning for deprecated warning.
68         * testsuite/18_support/exception_ptr/60612-unexpected.cc:
69         Disable deprecated warnings.
70         * testsuite/18_support/set_unexpected.cc: Likewise.
71         * testsuite/18_support/unexpected_handler.cc: Likewise.
73 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
75         * include/bits/utility.h (__find_uniq_type_in_pack): Move
76         definition to here, ...
77         * include/std/tuple (__find_uniq_type_in_pack): ... from here.
78         * include/std/variant (__detail__variant::__index_of): Remove.
79         (__detail::__variant::__exactly_once): Define using
80         __find_uniq_type_in_pack instead of __index_of.
81         (get<T>, get_if<T>, variant::__index_of): Likewise.
83 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
85         * include/bits/stl_pair.h (tuple_size_v): Define partial
86         specializations for std::pair.
87         * include/bits/utility.h (_Nth_type): Move definition here
88         and define primary template.
89         (tuple_size_v): Move definition here.
90         * include/std/array (tuple_size_v): Define partial
91         specializations for std::array.
92         * include/std/tuple (tuple_size_v): Move primary template to
93         <bits/utility.h>.  Define partial specializations for
94         std::tuple.
95         (tuple_element): Change definition to use _Nth_type.
96         * include/std/variant (_Nth_type): Move to <bits/utility.h>.
97         (variant_alternative, variant): Adjust qualification of
98         _Nth_type.
99         * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
100         additional errors from _Nth_type.
102 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
104         * include/std/variant (__detail::__variant::__emplace): New
105         function template.
106         (_Copy_assign_base::operator=): Reorder conditions to match
107         bulleted list of effects in the standard. Use __emplace instead
108         of _M_reset followed by _Construct.
109         (_Move_assign_base::operator=): Likewise.
110         (__construct_by_index): Remove.
111         (variant::emplace): Use __emplace instead of _M_reset followed
112         by __construct_by_index.
113         (variant::swap): Hoist valueless cases out of visitor. Use
114         __emplace to replace _M_reset followed by _Construct.
116 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
118         * include/std/variant (_Nth_type): Define partial
119         specializations to reduce number of instantiations.
120         (variant_size_v): Define partial specializations to avoid
121         instantiations.
122         (variant_alternative): Use _Nth_type. Add static assert.
123         (__tuple_count, __tuple_count_v): Replace with ...
124         (__count): New variable template.
125         (_Variant_union): Add deleted constructor.
126         (variant::__to_type): Use _Nth_type.
127         (variant::emplace): Use _Nth_type. Add deleted overloads for
128         invalid types and indices.
130 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
132         PR libstdc++/102912
133         * include/std/variant (_Variant_storage::__index_of): Remove.
134         (__variant_construct_single): Remove.
135         (__variant_construct): Remove.
136         (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
137         construction directly instead of using __variant_construct.
138         (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
139         (_Move_ctor_base::_M_destructive_move()): Remove.
140         (_Move_ctor_base::_M_destructive_copy()): Remove.
141         (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
142         construction directly instead of using _M_destructive_copy.
143         (variant::swap): Do construction directly instead of using
144         _M_destructive_move.
145         * testsuite/20_util/variant/102912.cc: New test.
147 2021-11-03  Jonathan Wakely  <jwakely@redhat.com>
149         PR libstdc++/66742
150         * include/bits/list.tcc (list::sort): Use mutable iterators for
151         comparisons.
152         * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
153         * testsuite/23_containers/list/operations/66742.cc: Check
154         non-const comparisons.
156 2021-11-03  Jonathan Wakely  <jwakely@redhat.com>
158         * include/std/valarray (valarray::valarray()): Add noexcept.
159         (valarray::operator[]): Likewise.
161 2021-11-01  Jonathan Wakely  <jwakely@redhat.com>
163         * include/debug/stl_iterator.h (__valid_range): Add constexpr
164         for C++20. Qualify call to avoid ADL.
165         (__get_distance, __can_advance, __unsafe, __base): Likewise.
166         * testsuite/25_algorithms/move/constexpr.cc: Also check with
167         std::reverse_iterator arguments.
169 2021-11-01  Jonathan Wakely  <jwakely@redhat.com>
171         * include/std/span (span(Range&&)): Reorder constraints.
173 2021-11-01  Jonathan Wakely  <jwakely@redhat.com>
175         PR libstdc++/103022
176         * include/std/valarray (begin, end): Do not dereference an empty
177         valarray. Add noexcept and [[nodiscard]].
178         * testsuite/26_numerics/valarray/range_access.cc: Check empty
179         valarray. Check iterator properties. Run as well as compiling.
180         * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
181         * testsuite/26_numerics/valarray/103022.cc: New test.
183 2021-10-29  Jonathan Wakely  <jwakely@redhat.com>
185         * testsuite/23_containers/stack/deduction.cc: Fix typo.
187 2021-10-26  Martin Sebor  <msebor@redhat.com>
189         * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
190         -Wstringop-overread.
191         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.
193 2021-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
195         * testsuite/28_regex/basic_regex/84110.cc (test01)
196         [__cpp_exceptions]: Disambiguate extended.
198 2021-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
200         * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.
202 2021-10-22  Jonathan Wakely  <jwakely@redhat.com>
204         PR libstdc++/102894
205         * include/std/any (make_any): Add SFINAE constraint.
206         * testsuite/20_util/any/102894.cc: New test.
208 2021-10-21  Jonathan Wakely  <jwakely@redhat.com>
210         * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
211         headers.
212         * scripts/run_doxygen: Fix post-processing of #include
213         directives in man pages. Use new xg++ to compile helper program.
215 2021-10-21  Jonathan Wakely  <jwakely@redhat.com>
217         * include/bits/mofunc_impl.h: Add doxygen comments.
218         * include/std/functional: Likewise.
220 2021-10-21  Jonathan Wakely  <jwakely@redhat.com>
222         * include/bits/alloc_traits.h: Suppress doxygen documentation.
223         * include/bits/allocated_ptr.h: Likewise.
224         * include/bits/enable_special_members.h: Likewise.
225         * include/bits/hashtable.h: Likewise.
226         * include/bits/hashtable_policy.h: Likewise.
227         * include/bits/uses_allocator.h: Likewise.
228         * include/bits/node_handle.h: Document node handles and suppress
229         documentation for protected members.
230         * include/std/any: Suppress documentation for implementation
231         details.
233 2021-10-21  Patrick Palka  <ppalka@redhat.com>
235         PR libstdc++/102358
236         * include/bits/stl_iterator.h (__niter_base): Make constexpr
237         for C++20.
238         (__miter_base): Likewise.
239         * testsuite/25_algorithms/move/constexpr.cc: New test.
241 2021-10-21  Patrick Palka  <ppalka@redhat.com>
243         * include/std/ranges (istream_view): Replace this function
244         template with an alias template as per P2432R1.
245         (wistream_view): Define as per P2432R1.
246         (views::_Istream, views::istream): Likewise.
247         * testsuite/std/ranges/istream_view.cc (test07): New test.
249 2021-10-21  Patrick Palka  <ppalka@redhat.com>
251         * include/bits/ranges_util.h (views::_Drop): Forward declare.
252         (subrange): Befriend views::_Drop.
253         (subrange::_S_store_size): Declare constexpr instead of just
254         const, remove obsolete comment.
255         * include/std/ranges (views::__detail::__is_empty_view): Define.
256         (views::__detail::__is_basic_string_view): Likewise.
257         (views::__detail::__is_subrange): Likewise.
258         (views::__detail::__is_iota_view): Likewise.
259         (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
260         (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
261         and fix it to range_difference_t<_Range>.  Implement P1739R4 and
262         LWG 3407 changes.
263         (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
264         (views::_Drop): As with views::_Take.
265         (views::_Counted): Implement P1739R4 changes.
266         * include/std/span (__detail::__is_std_span): Rename to ...
267         (__detail::__is_span): ... this and turn it into a variable
268         template.
269         (__detail::__is_std_array): Turn it into a variable template.
270         (span::span): Adjust uses of __is_std_span and __is_std_array
271         accordingly.
272         * testsuite/std/ranges/adaptors/p1739.cc: New test.
274 2021-10-21  Patrick Palka  <ppalka@redhat.com>
276         * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
277         Make fully constexpr as per LWG 3595.
278         (common_iterator::__postfix_proxy): Likewise.
280 2021-10-21  Patrick Palka  <ppalka@redhat.com>
282         * include/std/ranges (lazy_split_view::base): Add forward_range
283         constraint as per LWG 3591.
284         (lazy_split_view::begin, lazy_split_view::end): Also check
285         simpleness of _Pattern as per LWG 3592.
286         (split_view::base): Relax copyable constraint as per LWG 3590.
288 2021-10-21  Patrick Palka  <ppalka@redhat.com>
290         * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
291         criteria for returning bidirectional_iterator_tag as per LWG 3535.
292         (join_view::_Iterator::_S_iter_concept): Likewise.
294 2021-10-21  Patrick Palka  <ppalka@redhat.com>
296         * include/bits/ranges_base.h (viewable_range): Adjust as per
297         LWG 3481.
298         * testsuite/std/ranges/adaptors/all.cc (test07): New test.
300 2021-10-21  Jonathan Wakely  <jwakely@redhat.com>
302         PR libstdc++/102863
303         * include/std/optional (optional::and_then, optional::transform):
304         Remove requires-clause.
305         * testsuite/20_util/optional/monadic/and_then.cc: Check
306         overload resolution doesn't cause errors.
307         * testsuite/20_util/optional/monadic/transform.cc: Likewise.
309 2021-10-20  Jonathan Wakely  <jwakely@redhat.com>
311         * testsuite/20_util/optional/monadic/transform.cc: Check that
312         an rvalue result is not materialized too soon.
314 2021-10-19  Patrick Palka  <ppalka@redhat.com>
316         * include/std/ranges (iota_view::_Iterator::operator+): Adjust
317         definition as per LWG 3580.
318         (iota_view::_Iterator::operator-): Likewise.
320 2021-10-19  Patrick Palka  <ppalka@redhat.com>
322         * include/std/ranges (basic_istream_view::_M_object): Value
323         initialize as per LWG 3568.
325 2021-10-19  Patrick Palka  <ppalka@redhat.com>
327         * include/bits/ranges_util.h
328         (__detail::__uses_nonqualification_pointer_conversion): Define
329         and use it ...
330         (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
331         * testsuite/std/ranges/subrange/1.cc: New test.
333 2021-10-19  Patrick Palka  <ppalka@redhat.com>
335         * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
336         (iota_view::_Sentinel): Likewise.
337         (iota_view::iota_view): Add three overloads, each taking an
338         iterator/sentinel pair as per LWG 3523.
339         * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
341 2021-10-19  Patrick Palka  <ppalka@redhat.com>
343         * include/bits/ranges_base.h (view_interface): Forward declare.
344         (__detail::__is_derived_from_view_interface_fn): Declare.
345         (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
346         (enable_view): Adjust as per LWG 3549.
347         * include/bits/ranges_util.h (view_interface): Don't derive from
348         view_base.
349         * include/std/ranges (filter_view): Revert r11-3504 change.
350         (transform_view): Likewise.
351         (take_view): Likewise.
352         (take_while_view): Likewise.
353         (drop_view): Likewise.
354         (drop_while_view): Likewise.
355         (join_view): Likewise.
356         (lazy_split_view): Likewise.
357         (split_view): Likewise.
358         (reverse_view): Likewise.
359         * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
360         * testsuite/std/ranges/view.cc (test_view::test_view): Remove
361         this default ctor since views no longer need to be default initable.
362         (test01): New test.
364 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
366         * src/c++11/random.cc (which_source): New helper function.
367         (random_device::_M_getentropy()): Use which_source and return
368         suitable values for sources other than device files.
369         * testsuite/26_numerics/random/random_device/entropy.cc: New test.
371 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
373         * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
374         (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
375         relative ${top_srcdir}.
376         * doc/Makefile.in: Regenerate.
378 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
380         * include/std/variant (_Uninitialized): Use an empty struct
381         for the unused union member, instead of char.
383 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
385         * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
386         non-deducible template parameter from deduction guide.
387         * testsuite/23_containers/stack/deduction.cc: Check new C++23
388         deduction guides.
390 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
392         * include/std/optional (_Optional_payload_base::_Storage): Add
393         constructor taking a callable function to invoke.
394         (_Optional_payload_base::_M_apply): New function.
395         (__cpp_lib_monadic_optional): Define for C++23.
396         (optional::and_then, optional::transform, optional::or_else):
397         Define for C++23.
398         * include/std/ranges (__detail::__cached): Remove.
399         (__detail::__non_propagating_cache): Remove use of __cached for
400         contained value. Use _Optional_payload_base::_M_construct and
401         _Optional_payload_base::_M_apply to set the contained value.
402         * include/std/version (__cpp_lib_monadic_optional): Define.
403         * testsuite/20_util/optional/monadic/and_then.cc: New test.
404         * testsuite/20_util/optional/monadic/or_else.cc: New test.
405         * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
406         * testsuite/20_util/optional/monadic/transform.cc: New test.
407         * testsuite/20_util/optional/monadic/version.cc: New test.
409 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
411         PR libstdc++/102825
412         * include/bits/mofunc_impl.h (move_only_function): Remove
413         invalid base initializer.
414         * testsuite/20_util/move_only_function/cons.cc: Instantiate
415         constructors to check bodies.
417 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
419         * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
420         call to function with deduced return type.
422 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
424         * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
425         Define for C++23.
426         (basic_string::resize_and_overwrite): Declare.
427         * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
428         Define.
429         * include/std/version (__cpp_lib_resize_and_overwrite): Define
430         for C++23.
431         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
432         New test.
434 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
436         PR libstdc++/101263
437         * include/std/ranges (__cached): New wrapper struct.
438         (__non_propagating_cache): Use __cached for contained value.
439         (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
440         std::construct_at instead of placement new.
441         * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
443 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
445         * include/std/variant (__cpp_lib_variant): Update value for
446         C++20.
447         (__variant_cast, __variant_construct): Add constexpr for C++20.
448         (__variant_construct_single, __construct_by_index) Likewise. Use
449         std::_Construct instead of placement new.
450         (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
451         buffer with a union and define a destructor.
452         (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
453         for non-trivial destruction.
454         (_Variant_storage::__index_of): New helper variable template.
455         (_Variant_storage::~_Variant_storage()): Add constexpr.
456         (_Variant_storage::_M_reset()): Likewise.
457         (_Copy_ctor_base, _Move_ctor_base): Likewise.
458         (_Copy_assign_base, _Move_assign_base): Likewise.
459         (variant, swap): Likewise.
460         * include/std/version (__cpp_lib_variant): Update value for
461         C++20.
462         * testsuite/20_util/optional/version.cc: Check for exact value
463         in C++17.
464         * testsuite/20_util/variant/87619.cc: Increase timeout for
465         C++20 mode.
466         * testsuite/20_util/variant/constexpr.cc: New test.
467         * testsuite/20_util/variant/version.cc: New test.
469 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
471         * include/std/variant (__detail::__variant::__get_storage):
472         Remove unused function.
473         (__variant_construct_by_index): Set index after construction is
474         complete. Rename to ...
475         (__detail::__variant::__construct_by_index): ... this.
476         (variant): Use new name for __variant_construct_by_index friend
477         declaration. Remove __get_storage friend declaration.
478         (variant::emplace): Use new name and remove try-blocks.
480 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
482         * include/std/variant (_Variant_storage::_M_storage()): Remove.
483         (__detail::__variant::__get_storage): Remove.
484         (variant): Remove friend declaration of __get_storage.
486 2021-10-15  Jason Merrill  <jason@redhat.com>
488         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
489         * testsuite/20_util/integer_comparisons/greater_neg.cc:
490         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
491         Adjust expected message.
492         * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
494 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
496         * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
497         Rename to __get_n and remove first argument. Replace pair of
498         overloads with a single function using 'if constexpr'.
499         (__variant::__get(Variant&&)): Adjust to use __get_n.
501 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
503         * include/bits/fs_path.h (path(path&&)): Make unconditionally
504         noexcept.
505         (path::_S_convert(T)): Add condtional noexcept.
507 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
509         PR libstdc++/102743
510         * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
511         for returning the same string unchanged.
513 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
515         * include/bits/regex.h: Check __cpp_inline_variables instead of
516         __cplusplus.
518 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
520         * testsuite/20_util/is_layout_compatible/version.cc: Check
521         correct macro.
523 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
525         * include/bits/stl_construct.h (_Construct): Use
526         std::construct_at when constant evaluated.
527         * include/std/optional (_Storage, _Optional_payload, optional):
528         Add constexpr as specified by P2231R1.
529         * include/std/version (__cpp_lib_optional): Update value for
530         C++20.
531         * testsuite/20_util/optional/requirements.cc: Check feature test
532         macro.
533         * testsuite/20_util/optional/constexpr/assign.cc: New test.
534         * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
535         * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
536         * testsuite/20_util/optional/constexpr/swap.cc: New test.
537         * testsuite/20_util/optional/version.cc: New test.
539 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
541         * include/bits/fs_path.h (__detail::__is_contiguous): Add
542         partial specializations for pointers and __normal_iterator.
544 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
546         * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
547         * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
548         * testsuite/28_regex/match_results/102667.C: Moved to...
549         * testsuite/28_regex/match_results/102667.cc: ...here.
551 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
553         * include/bits/fs_path.h (__detail::__is_contiguous): New
554         variable template to identify contiguous iterators.
555         (__detail::__unified_char8_t): New alias template to decide when
556         to treat char8_t as char without encoding conversion.
557         (__detail::__effective_range(const basic_string<C,T>&)): Use
558         std::char_traits<C> for returned string view.
559         (__detail::__effective_range(const basic_string_view<C,T>&)):
560         Likewise.
561         (__detail::__effective_range(const Source&)): Use
562         __is_contiguous to detect mode cases of contiguous iterators.
563         Use __unified_char8_t to return a std::string instead of
564         std::u8string.
566 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
568         PR libstdc++/102592
569         * include/bits/fs_path.h (path::path(Iter, Iter, format))
570         (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
571         __string_from_range directly, instead of two-argument overload
572         of _S_convert.
573         (path::_S_convert(Iter, Iter)): Remove.
574         * testsuite/27_io/filesystem/path/construct/102592.C: New test.
576 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
578         * include/bits/c++config (__terminate): Add extern "C++".
580 2021-10-12  Jonathan Wakely  <jwakely@redhat.com>
582         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
583         Restore test for operator<.
584         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
585         Adjust expected errors for C++20.
587 2021-10-12  Jonathan Wakely  <jwakely@redhat.com>
589         PR libstdc++/101960
590         * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
591         defauled.
592         * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
593         array elements before the last element.
595 2021-10-12  Jonathan Wakely  <jwakely@redhat.com>
597         * include/bits/stl_iterator_base_funcs.h (__advance): Add
598         deleted overload to improve diagnostics.
599         (__distance): Likewise.
601 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
603         * include/bits/atomic_timed_wait.h: Remove unused header.
604         * include/bits/c++config (std:__terminate): Define.
605         * include/bits/semaphore_base.h: Remove <exception> and use
606         __terminate instead of terminate.
607         * include/bits/std_thread.h: Likewise.
608         * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
609         to call __cxxabiv1::__terminate.
611 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
613         * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
614         std::__to_address by using poitner directly or using base()
615         member of __normal_iterator.
617 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
619         * testsuite/18_support/numeric_limits/lowest.cc: Use
620         numeric_limits<T>::is_integer instead of is_integral<T>::value.
622 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
624         PR libstdc++/89927
625         * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
626         Add __glibcxx_requires_string_len assertion.
627         (basic_regex::assign(InputIterator, InputIterator)): Add
628         __glibcxx_requires_valid_range assertion.
629         * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
630         (_Scanner::_M_scan_normal()): Use string literal in assertions.
632 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
634         PR libstdc++/102667
635         * include/bits/regex.h (match_result::empty()): Optimize by
636         calling the base function directly.
637         (match_results::end()): Check _Base_type::empty() not empty().
638         * testsuite/28_regex/match_results/102667.C: New test.
640 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
642         PR libstdc++/98725
643         * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
644         _GLIBCXX_USE_WCHAR_T.
645         * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
646         _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
647         * testsuite/20_util/from_chars/1_neg.cc: Remove use of
648         _GLIBCXX_USE_WCHAR_T.
649         * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
650         char_traits<wchar_t>::length instead of wcslen.
651         * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
652         Likewise.
653         * testsuite/20_util/is_arithmetic/value.cc: Likewise.
654         * testsuite/20_util/is_compound/value.cc: Likewise.
655         * testsuite/20_util/is_floating_point/value.cc: Likewise.
656         * testsuite/20_util/is_fundamental/value.cc: Likewise.
657         * testsuite/20_util/is_integral/value.cc: Likewise.
658         * testsuite/20_util/is_signed/value.cc: Likewise.
659         * testsuite/20_util/is_unsigned/value.cc: Likewise.
660         * testsuite/20_util/is_void/value.cc: Likewise.
661         * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
662         Likewise.
663         * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
664         Likewise.
665         * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
666         Likewise.
667         * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
668         Likewise.
669         * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
670         Likewise.
671         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
672         Likewise.
673         * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
674         Likewise.
675         * testsuite/20_util/to_chars/3.cc: Likewise.
676         * testsuite/20_util/type_identity/requirements/typedefs.cc:
677         Likewise.
678         * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
679         * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
680         * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
681         Likewise.
682         * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
683         * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
684         Likewise.
685         * testsuite/21_strings/basic_string/literals/values.cc:
686         Likewise.
687         * testsuite/21_strings/basic_string/modifiers/64422.cc:
688         Likewise.
689         * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
690         Likewise.
691         * testsuite/21_strings/basic_string/requirements/citerators.cc:
692         Likewise.
693         * testsuite/21_strings/basic_string/requirements/typedefs.cc:
694         Likewise.
695         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
696         Likewise.
697         * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
698         Likewise.
699         * testsuite/21_strings/basic_string_view/literals/types.cc:
700         Likewise.
701         * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
702         Likewise.
703         * testsuite/21_strings/basic_string_view/literals/values.cc:
704         Likewise.
705         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
706         Likewise.
707         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
708         * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
709         Likewise.
710         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
711         Likewise.
712         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
713         Likewise.
714         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
715         * testsuite/25_algorithms/fill/4.cc: Likewise.
716         * testsuite/25_algorithms/fill_n/1.cc: Likewise.
717         * testsuite/experimental/functional/searchers.cc: Likewise. Use
718         char_traits<wchar_t>::length instead of wcslen.
719         * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
720         Likewise.
721         * testsuite/experimental/string_view/literals/types-char8_t.cc:
722         Likewise.
723         * testsuite/experimental/string_view/literals/types.cc:
724         Likewise.
725         * testsuite/experimental/string_view/literals/values-char8_t.cc:
726         Likewise.
727         * testsuite/experimental/string_view/literals/values.cc:
728         Likewise.
729         * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
730         Likewise.
731         * testsuite/experimental/string_view/requirements/typedefs.cc:
732         Likewise.
733         * testsuite/experimental/string_view/typedefs.cc: Likewise.
734         * testsuite/ext/vstring/range_access.cc: Likewise.
735         * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
736         Likewise.
737         * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
738         Likewise.
739         * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
740         Likewise.
741         * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
742         Likewise.
743         * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
744         Likewise.
745         * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
746         Likewise.
747         * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
748         Likewise.
749         * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
750         Likewise.
751         * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
752         * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
753         Likewise.
754         * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
755         * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
757 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
759         PR libstdc++/98725
760         * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
761         (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
762         define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
764 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
766         PR libstdc++/98725
767         * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
768         Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
770 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
772         PR libstdc++/98725
773         * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
774         (__byte_operand<wchar_t>): Define specialization.
775         * include/std/type_traits (__make_signed<wchar_t>)
776         (__make_unsigned<wchar_t>): Remove redundant check for
777         __WCHAR_TYPE__ being defined.
778         * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
779         (__is_integral_helper<wchar_t>): Likewise.
781 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
783         PR libstdc++/98725
784         * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
785         (__rc_string_base<wchar_t>): Define member function.
786         * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
787         (hash<__gnu_cxx::__wvstring>): Define specialization.
788         * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
789         (__wsso_string, __wrc_string): Declare typedefs.
791 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
793         PR libstdc++/98725
794         * include/bits/char_traits.h (char_traits<wchar_t>): Define
795         explicit specialization unconditionally.
796         * include/bits/basic_string.h (hash<wstring>): Define
797         unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
798         * include/bits/stringfwd.h (wstring): Likewise.
799         * include/debug/string (wstring): Likewise.
800         * include/experimental/string_view (experimental::wstring_view)
801         (hash<experimental::wstring_view>): Likewise.
802         * include/std/string (pmr::wstring, hash<pmr::wstring>):
803         Likewise.
804         * include/std/string_view (wstring_view, hash<wstring_view>):
805         Likewise.
807 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
809         * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
810         * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
812 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
814         * testsuite/22_locale/conversions/buffer/1.cc: Check
815         _GLIBCXX_USE_WCHAR_T.
816         * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
817         test using char16_t.
818         * testsuite/22_locale/conversions/string/1.cc: Check
819         _GLIBCXX_USE_WCHAR_T.
820         * testsuite/27_io/filesystem/path/generic/generic_string.cc:
821         Likewise.
822         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
823         Likewise.
824         * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
825         * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
826         Likewise.
827         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
828         * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
829         Likewise.
830         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
831         Likewise.
832         * testsuite/experimental/filesystem/path/native/alloc.cc:
833         Likewise.
834         * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
835         Likewise.
836         * testsuite/experimental/filesystem/path/native/string.cc:
837         Likewise.
839 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
841         * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
842         * testsuite/util/testsuite_common_types.h:
844 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
846         * testsuite/18_support/numeric_limits/40856.cc: Replace use of
847         _GLIBCXX_USE_INT128.
848         * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
849         * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
850         * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
851         * testsuite/20_util/is_floating_point/value.cc: Likewise.
852         * testsuite/20_util/is_integral/value.cc: Likewise.
853         * testsuite/20_util/is_signed/value.cc: Likewise.
854         * testsuite/20_util/is_unsigned/value.cc: Likewise.
855         * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
856         Likewise.
857         * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
858         Likewise.
859         * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
860         Likewise.
861         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
862         Likewise.
863         * testsuite/20_util/type_identity/requirements/typedefs.cc:
864         Likewise.
865         * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
866         * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
867         * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
868         * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
869         * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
870         * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
871         * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
872         * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
873         * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
874         Likewise.
875         * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
877 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
879         * include/bits/hashtable_policy.h (_Select1st): Replace use of
880         std::get.
881         (_Select2nd): Remove.
882         (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
883         typedef instead of deducing it. Remove unnecessary piecewise
884         construction.
885         (_ReuseOrAllocNode): Make __node_type public.
886         (_Map_base): Adjust partial specialization to be able to extract
887         the mapped_type without using tuple_element.
888         (_Map_base::at): Define inline
889         * testsuite/23_containers/unordered_map/requirements/53339.cc:
890         Remove XFAIL.
891         * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
892         Likewise.
894 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
896         * include/bits/hashtable.h: Move static assertion to destructor.
897         * include/bits/hashtable_policy.h: Deduce value type from node
898         type without instantiating it.
900 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
902         * src/c++11/limits.cc: Fail if __cpp_inline_variables is
903         defined.
905 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
907         PR libstdc++/92546
908         * include/bits/ranges_algobase.h: Replace <iterator> with a
909         subset of the headers it includes.
911 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
913         * include/experimental/deque (erase, erase_if): Revert changes
914         to avoid debug mode overhead.
915         * include/experimental/map (erase, erase_if): Likewise.
916         * include/experimental/set (erase, erase_if): Likewise.
917         * include/experimental/unordered_map (erase, erase_if):
918         Likewise.
919         * include/experimental/unordered_set (erase, erase_if):
920         Likewise.
921         * include/experimental/vector (erase, erase_if): Likewise.
922         * include/std/deque (erase, erase_if): Likewise.
923         * include/std/map (erase, erase_if): Likewise.
924         * include/std/set (erase, erase_if): Likewise.
925         * include/std/unordered_map (erase, erase_if): Likewise.
926         * include/std/unordered_set (erase, erase_if): Likewise.
927         * include/std/vector (erase, erase_if): Likewise.
929 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
931         * include/std/chrono (__detail::__units_suffix_misc): New
932         helper function.
933         (__detail::__units_suffix): Likewise.
934         (chrono::operator<<(basic_ostream&, const duration&)): Define.
935         * testsuite/20_util/duration/io.cc: New test.
937 2021-10-07  Jonathan Wakely  <jwakely@redhat.com>
939         * include/Makefile.am: Add new header.
940         * include/Makefile.in: Regenerate.
941         * include/std/chrono (duration, time_point, system_clock)
942         (steady_clock, high_resolution_clock, chrono_literals, sys_time)
943         (file_clock, file_time): Move to ...
944         * include/bits/chrono.h: New file.
945         * include/bits/atomic_futex.h: Include new header instead of
946         <chrono>.
947         * include/bits/atomic_timed_wait.h: Likewise.
948         * include/bits/fs_fwd.h: Likewise.
949         * include/bits/semaphore_base.h: Likewise.
950         * include/bits/this_thread_sleep.h: Likewise.
951         * include/bits/unique_lock.h: Likewise.
952         * include/experimental/bits/fs_fwd.h: Likewise.
953         * include/experimental/chrono: Likewise.
954         * include/experimental/io_context: Likewise.
955         * include/experimental/netfwd: Likewise.
956         * include/experimental/timer: Likewise.
957         * include/std/condition_variable: Likewise.
958         * include/std/mutex: Likewise.
959         * include/std/shared_mutex: Likewise.
961 2021-10-07  Jonathan Wakely  <jwakely@redhat.com>
963         PR libstdc++/102377
964         * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
965         Hardcode to 64 instead of using non-constant constant.
967 2021-10-07  Jonathan Wakely  <jwakely@redhat.com>
969         * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
970         __niter_base calls.
971         * include/std/string (erase, erase_if): Likewise.
972         * include/std/deque (erase, erase_if): Access non-debug
973         container directly.
974         * include/std/map (erase, erase_if): Likewise.
975         * include/std/set (erase, erase_if): Likewise.
976         * include/std/unordered_map (erase, erase_if): Likewise.
977         * include/std/unordered_set (erase, erase_if): Likewise.
978         * include/std/vector (erase, erase_if): Likewise.
979         * include/experimental/deque (erase, erase_if): Likewise.
980         * include/experimental/map (erase, erase_if): Likewise.
981         * include/experimental/set (erase, erase_if): Likewise.
982         * include/experimental/unordered_map (erase, erase_if):
983         Likewise.
984         * include/experimental/unordered_set (erase, erase_if):
985         Likewise.
986         * include/experimental/vector (erase, erase_if): Likewise.
988 2021-10-06  Jonathan Wakely  <jwakely@redhat.com>
990         * include/Makefile.am: Add new headers.
991         * include/Makefile.in: Regenerate.
992         * include/std/functional: Include <bits/move_only_function.h>.
993         * include/std/version (__cpp_lib_move_only_function): Define.
994         * include/bits/mofunc_impl.h: New file.
995         * include/bits/move_only_function.h: New file.
996         * testsuite/20_util/move_only_function/call.cc: New test.
997         * testsuite/20_util/move_only_function/cons.cc: New test.
998         * testsuite/20_util/move_only_function/move.cc: New test.
999         * testsuite/20_util/move_only_function/version.cc: New test.
1001 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1003         * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
1004         New test.
1005         * testsuite/23_containers/span/trivially_copyable.cc: New test.
1007 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1009         * include/bits/utility.h (__is_in_place_type_v): Define
1010         variable template to detect in_place_type_t specializations.
1011         (__is_in_place_type): Replace class template with alias
1012         template using __is_in_place_type_v.
1013         * include/std/any (any(T&&)): Check __is_in_place_type first and
1014         avoid instantiating is_copy_constructible unnecessarily.
1016 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1018         * testsuite/20_util/integer_comparisons/greater.cc: New test.
1020 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1022         * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1023         Check result matches non-volatile pointer.
1025 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1027         PR c++/102535
1028         * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
1029         expected value for C++20.
1031 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1033         * include/bits/std_function.h (_Any_data::_M_access): Add
1034         noexcept.
1035         (_Function_base::_Base_manager::_M_get_pointer): Likewise.
1036         (_Function_base::_Base_manager::_M_not_empty_function):
1037         Likewise.
1039 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1041         * include/std/ostream (operator<<(const volatile void*)):
1042         Add new overload, as per P1147R1.
1043         * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1044         New test.
1046 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1048         * include/bits/stl_queue.h
1049         (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
1050         value.
1051         * include/bits/stl_stack.h
1052         (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1053         * include/std/version
1054         (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1055         * testsuite/23_containers/queue/cons_from_iters.cc: Update
1056         expected value.
1057         * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
1059 2021-10-04  Jonathan Wakely  <jwakely@redhat.com>
1061         * include/bits/forward_list.h (forward_list): Use non-deduced
1062         context for allocator parameter of allocator-extended copy and
1063         move constructors.
1064         * include/bits/stl_bvector.h (vector<bool>): Likewise.
1065         * include/bits/stl_deque.h (deque): Likewise.
1066         * include/bits/stl_list.h (list): Likewise.
1067         * include/bits/stl_map.h (map): Likewise.
1068         * include/bits/stl_multimap.h (multimap): Likewise.
1069         * include/bits/stl_multiset.h (multiset): Likewise.
1070         * include/bits/stl_set.h (set): Likewise.
1071         * include/bits/stl_vector.h (vector): Likewise.
1072         * include/bits/stl_queue.h (queue, priority_queue): Do not
1073         constrain Allocator template parameter of deduction guides that
1074         have a Container parameter.
1075         * include/bits/stl_stack.h (stack): Likewise.
1076         * include/debug/deque (__gnu_debug::deque): Use non-deduced
1077         context for allocator parameter of allocator-extended copy and
1078         move constructors.
1079         * include/debug/list (__gnu_debug::list): Likewise.
1080         * include/debug/map.h (__gnu_debug::map): Likewise.
1081         * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
1082         * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
1083         * include/debug/set.h (__gnu_debug::set): Likewise.
1084         * include/debug/vector (__gnu_debug::vector): Likewise.
1085         * testsuite/23_containers/deque/cons/deduction.cc: Test class
1086         template argument deduction with non-deduced allocator
1087         arguments.
1088         * testsuite/23_containers/forward_list/cons/deduction.cc:
1089         Likewise.
1090         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1091         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1092         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1093         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1094         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1095         * testsuite/23_containers/queue/deduction.cc: Likewise.
1096         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1097         * testsuite/23_containers/stack/deduction.cc: Likewise.
1098         * testsuite/23_containers/unordered_map/cons/deduction.cc:
1099         Likewise.
1100         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1101         Likewise.
1102         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1103         Likewise.
1104         * testsuite/23_containers/unordered_set/cons/deduction.cc:
1105         Likewise.
1106         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1108 2021-10-04  Jonathan Wakely  <jwakely@redhat.com>
1110         * include/std/variant (__detail::__variant::__as): Add missing
1111         noexcept to first overload.
1113 2021-10-04  Jonathan Wakely  <jwakely@redhat.com>
1115         * include/bits/basic_string.h (basic_string(nullptr_t)): Define
1116         as deleted.
1117         (operator=(nullptr_t)): Likewise.
1118         * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
1119         (operator=(nullptr_t)): Likewise.
1120         * include/std/string_view (basic_string_view(nullptr_t)):
1121         Likewise.
1122         * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
1123         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1124         Change dg-warning to dg-error.
1125         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1126         Likewise.
1128 2021-10-02  Jonathan Wakely  <jwakely@redhat.com>
1130         * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
1131         * src/filesystem/ops-common.h (__last_system_error): Add
1132         explicit cast to avoid narrowing conversion.
1133         (do_space): Fix type in function name.
1135 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1137         PR libstdc++/102100
1138         * include/Makefile.am (c++config.h): Define
1139         _GLIBCXX_VERBOSE_ASSERT based on configure output.
1140         * include/Makefile.in: Regenerate.
1141         * include/bits/c++config: Fix condition for verbose assertions.
1143 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1145         PR libstdc++/92546
1146         * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
1147         unwrap debug iterators.
1148         * include/bits/refwrap.h: Do not error if included in C++03.
1149         * include/bits/stl_algo.h (__remove_if): Move to ...
1150         * include/bits/stl_algobase.h (__remove_if): ... here.
1151         * include/std/deque (erase, erase_if): Use __remove_if instead of
1152         remove and remove_if.
1153         * include/std/string (erase, erase_if): Likewise.
1154         * include/std/vector (erase, erase_if): Likewise.
1156 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1158         PR libstdc++/66742
1159         * include/bits/list.tcc (list::sort()): Use _Scratch_list
1160         objects for splicing and merging.
1161         (list::sort(StrictWeakOrdering)): Likewise.
1162         * include/bits/stl_list.h (__detail::_Scratch_list): New type.
1163         * src/c++98/list.cc (_List_node_base::_M_transfer): Add
1164         assertion for --enable-libstdcxx-debug library.
1165         * testsuite/23_containers/list/operations/66742.cc: New test.
1167 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1169         PR libstdc++/100612
1170         * include/std/thread (__pmf_expects_stop_token): New variable
1171         template to detect a pointer to member function that needs a
1172         stop_token to be added to the arguments.
1173         (jthread::__S_create): Use __pmf_expects_stop_token.
1174         (jthread::__S_create_pmf): New function.
1175         * testsuite/30_threads/jthread/100612.cc: New test.
1177 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1179         * include/bits/stl_queue.h
1180         (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
1181         per P1425R4.
1182         (queue(InputIterator, InputIterator)): Likewise.
1183         (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
1184         * include/bits/stl_stack.h
1185         (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1186         (stack(InputIterator, InputIterator)): Likewise.
1187         (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
1188         * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
1189         Define.
1190         * testsuite/23_containers/queue/cons_from_iters.cc: New test.
1191         * testsuite/23_containers/stack/cons_from_iters.cc: New test.
1193 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1195         * include/bits/stl_queue.h (priority_queue): Add
1196         allocator-extended overloads for constructors taking iterator.
1197         * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
1199 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1201         * include/bits/stl_queue.h (priority_queue): Construct sequence
1202         from iterators when no sequence argument is present (LWG 3529).
1203         * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
1205 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1207         * include/bits/stl_queue.h (priority_queue): Constrain
1208         constructors with InputIterator parameters (LWG 3522).
1209         * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
1211 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1213         * include/bits/ranges_base.h (ranges::distance): Split overload
1214         into two (LWG 3392).
1215         * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
1217 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1219         * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
1220         std::unary_function.
1221         * testsuite/30_threads/thread/cons/4.cc: Likewise.
1222         * testsuite/30_threads/thread/cons/5.cc: Likewise.
1224 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1226         * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
1227         unnecesary derivation from std::unary_function.
1228         * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
1229         * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
1230         * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
1231         * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
1232         * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
1233         * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
1234         * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
1235         * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
1236         Likewise.
1237         * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
1238         * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
1240 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1242         * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
1243         expand the format string for freestanding, or non-vebose, or if
1244         we're just going to abort anyway.
1245         * src/c++11/snprintf_lite.cc: Remove unused header and
1246         declaration.
1248 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1250         * include/std/variant (__do_visit): Use variant_npos instead of
1251         literal -1 that requires a narrowing conversion.
1253 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1255         PR libstdc++/99327
1256         * src/filesystem/ops-common.h (__unsupported): New function to
1257         return a suitable error code for missing functionality.
1258         (posix::off_t): New typedef.
1259         (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
1260         fallback implementations.
1261         (do_copy_file): Replace uses of errc::not_supported.
1262         * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
1263         (fs::create_directory, fs::create_directory_symlink)
1264         (fs::create_hard_link, fs::create_symlink, fs::current_path)
1265         (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
1266         (fs::last_write_time, fs::permissions, fs::read_symlink):
1267         Replace uses of errc::not_supported.
1268         (fs::resize_file): Qualify off_t.
1269         * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
1270         (fs::create_directory, fs::create_directory_symlink)
1271         (fs::create_hard_link, fs::create_symlink, fs::current_path)
1272         (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
1273         (fs::permissions, fs::read_symlink, fs::system_complete):
1274         Replace uses of errc::not_supported.
1275         (fs::resize_file): Qualify off_t and enable unconditionally.
1276         * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
1278 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1280         * src/filesystem/ops-common.h (last_error): New helper function.
1281         (filesystem::do_space): Use last_error().
1282         * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
1283         (fs::equivalent, fs::remove, fs::temp_directory_path): Use
1284         last_error().
1285         * src/filesystem/ops.cc (fs::create_hard_link)
1286         (fs::remove, fs::temp_directory_path): Likewise.
1288 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1290         * include/std/type_traits (__conditional): New class template
1291         for internal uses of std::conditional.
1292         (__conditional_t): New alias template to replace conditional_t.
1293         (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
1294         __conditional_t instead of conditional::type.
1295         * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
1296         * include/bits/hashtable.h (_Hashtable): Likewise.
1297         * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
1298         (_Local_iterator): Likewise. Replace typedefs with
1299         using-declarations.
1300         * include/bits/move.h (move_if_noexcept): Use __conditional_t.
1301         * include/bits/parse_numbers.h (_Select_int_base): Likewise.
1302         * include/bits/ptr_traits.h (__make_not_void): Likewise.
1303         * include/bits/ranges_algobase.h (__copy_or_move_backward)
1304         (__copy_or_move): Likewise.
1305         * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
1306         * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
1307         * include/bits/regex_compiler.h (_BracketMatcher): Use
1308         __conditional_t. Replace typedefs with using-declarations.
1309         * include/bits/shared_ptr_base.h (__shared_count): Use
1310         __conditional_t.
1311         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1312         Likewise.
1313         * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
1314         (reverse_iterator::iterator_concept)
1315         (__make_move_if_noexcept_iterator)
1316         (iterator_traits<common_iterator<_It, _Sent>>)
1317         (iterator_traits<counted_iterator<_It>>): Likewise.
1318         * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
1319         * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
1320         (_Rb_tree::_M_clone_node): Likewise.
1321         * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
1322         Likewise.
1323         * include/bits/uses_allocator.h (__uses_alloc): Likewise.
1324         (__is_uses_allocator_predicate): Likewise.
1325         * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
1326         * include/experimental/any (any::_Manager, __any_caster):
1327         Likewise.
1328         * include/experimental/executor (async_completion): Likewise.
1329         * include/experimental/functional (__boyer_moore_base_t):
1330         Likewise.
1331         * include/std/any (any::_Manager): Likewise.
1332         * include/std/functional (__boyer_moore_base_t): Likewise.
1333         * include/std/ranges (borrowed_iterator_t)
1334         (borrowed_subrange_t, __detail::__maybe_present_t)
1335         (__detail::__maybe_const_t, split_view): Likewise.
1336         * include/std/tuple (__empty_not_final, tuple::operator=):
1337         Likewise.
1338         * include/std/variant (__detail::__variant::__get_t): Likewise.
1340 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1342         PR libstdc++/78113
1343         * include/std/variant (__do_visit): Use a switch when we have a
1344         single variant with a small number of alternatives.
1346 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1348         PR libstdc++/90943
1349         * include/std/variant (__cpp_lib_variant): Update value.
1350         (__detail::__variant::__as): New helpers implementing the
1351         as-variant exposition-only function templates.
1352         (visit, visit<R>): Use __as to upcast the variant parameters.
1353         * include/std/version (__cpp_lib_variant): Update value.
1354         * testsuite/20_util/variant/visit_inherited.cc: New test.
1356 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1358         * include/bits/stl_iterator.h (__normal_iterator): Simplify
1359         converting constructor and do not require _Container::pointer.
1361 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1363         * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
1364         (basic_string(basic_string&&)): Add noexcept and avoid
1365         allocation, by sharing rep with the rvalue string.
1367 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1369         * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
1370         (common_iterator::__postfix_proxy): Add noexcept.
1372 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1374         PR libstdc++/94418
1375         * include/bits/stl_iterator.h (reverse_iterator): Use
1376         conditional noexcept on constructors and assignment operators.
1377         * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
1379 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1381         PR libstdc++/100153
1382         * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
1383         When size() is zero just deallocate and reset.
1385 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1387         PR libstdc++/96733
1388         * include/bits/stl_algo.h (clamp): Use std::min and std::max.
1390 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1392         * include/bits/regex.h (basic_regex::multiline): Define for
1393         non-strict C++11 and C++14 modes.
1394         * include/bits/regex_constants.h (regex_constants::multiline):
1395         Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
1397 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1399         * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
1401 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1403         * include/bits/stream_iterator.h (istream_iterator): Add
1404         noexcept to constructors and non-throwing member functions and
1405         friend functions.
1406         (ostream_iterator): Likewise.
1408 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1410         * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
1411         New trait to identify vector<bool> iterators, including debug
1412         ones.
1413         (_ForwardIteratorReferenceConcept): Add default template
1414         argument using _Is_vector_bool_iterator and use it in partial
1415         specialization for the vector<bool> cases.
1416         (_Mutable_ForwardIteratorReferenceConcept): Likewise.
1417         * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1418         line number.
1420 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1422         * include/bits/list.tcc (list::merge): Remove call to size() and
1423         try-catch block. Use _Finalize_merge instead.
1424         * include/bits/stl_list.h (list::_Finalize_merge): New
1425         scope guard type to update _M_size members after a merge.
1427 2021-09-30  Jonathan Wakely  <jwakely@redhat.com>
1429         * include/bits/regex.h (basic_regex::multiline): Fix #if
1430         condition.
1432 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
1434         * include/bits/regex.h (basic_regex::multiline): Define constant
1435         for C++17.
1436         * include/bits/regex_constants.h (regex_constants::multiline):
1437         Define constant for C++17.
1438         (regex_constants::__multiline): Define duplicate constant for
1439         internal use in C++11 and C++14.
1440         * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
1441         New member function.
1442         (_Executor::_M_is_line_terminator(_CharT)): New member function.
1443         (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
1444         member functions to support multiline matches.
1445         * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
1447 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
1449         * include/bits/regex_compiler.h (_Compiler::_S_validate): New
1450         function.
1451         * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
1452         _S_validate to check flags.
1453         * include/bits/regex_error.h (_S_grammar): New error code for
1454         internal use.
1455         * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
1457 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
1459         PR libstdc++/84110
1460         * include/bits/regex_error.h (regex_constants::_S_null): New
1461         error code for internal use.
1462         * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
1463         Check for null character.
1464         * testsuite/28_regex/basic_regex/84110.cc: New test.
1466 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
1468         * include/bits/regex.h (__detail::__is_contiguous_iter): Move
1469         here from <bits/regex_compiler.h>.
1470         (basic_regex::_M_compile): New function to compile an NFA from
1471         a regular expression string.
1472         (basic_regex::basic_regex): Use _M_compile instead of delegating
1473         to other constructors.
1474         (basic_regex::operator=(const basic_regex&)): Define as
1475         defaulted.
1476         (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
1477         (basic_regex::assign(const basic_regex&)): Use copy assignment.
1478         (basic_regex::assign(basic_regex&&)): Use move assignment.
1479         (basic_regex::assign(const C*, flag_type)): Use _M_compile
1480         instead of constructing a temporary string.
1481         (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
1482         (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
1483         Use _M_compile instead of constructing a temporary basic_regex.
1484         (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
1485         constructing a temporary string for contiguous iterators of the
1486         right value type.
1487         * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
1488         <bits/regex.h>.
1489         (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
1490         (__compile_nfa): Remove.
1491         * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
1492         test.
1493         * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
1495 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1497         * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
1498         Return false for ETIMEDOUT and true otherwise.
1500 2021-09-28  François Dumont  <fdumont@gcc.gnu.org>
1502         * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
1503         to also match message with '__8' in it.
1505 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1507         * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
1508         * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
1509         * include/bits/regex_compiler.tcc: Likewise.
1510         * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
1511         * include/bits/regex_scanner.tcc: Likewise.
1513 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1515         * include/bits/regex_compiler.tcc: Add line break in empty while
1516         statement.
1517         * include/bits/regex_executor.tcc: Avoid unused parameter
1518         warning.
1520 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1522         * include/bits/regex.h (basic_regex, swap): Add noexcept to
1523         non-throwing functions.
1524         * include/bits/regex_automaton.h (_State_base, _State)
1525         (_NFA_base): Likewise.
1526         * include/bits/regex_compiler.h (_Compiler): Likewise.
1527         * include/bits/regex_error.h (regex_error::code()): Likewise.
1528         * include/bits/regex_scanner.h (_Scanner): Likewise.
1530 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1532         * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
1533         Define before first attempt to check it.
1535 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1537         * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
1538         Do not check non-default constructible sequences when
1539         _GLIBCXX_CONCEPT_CHECKS is defined.
1540         * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
1541         Likewise.
1542         * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
1543         Likewise.
1544         * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
1545         Likewise.
1546         * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
1547         Likewise.
1548         * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
1549         Likewise.
1551 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1553         * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
1554         Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
1555         is defined.
1556         * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
1557         Likewise.
1558         * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
1559         Likewise.
1560         * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
1561         Likewise.
1562         * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
1563         Likewise.
1564         * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
1565         Likewise.
1566         * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
1567         Likewise.
1568         * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
1569         Likewise.
1570         * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
1571         Likewise.
1572         * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
1573         Likewise.
1574         * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
1575         Likewise.
1576         * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
1577         Likewise.
1578         * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
1579         Likewise.
1580         * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
1581         Likewise.
1582         * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
1583         Likewise.
1584         * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
1585         Likewise.
1586         * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
1587         Likewise.
1588         * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
1589         Likewise.
1591 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1593         * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
1594         (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
1595         Check result types of iterator operations.
1596         (_Mutable_ForwardIteratorConcept): Check that iterator's
1597         reference type is a reference to its value type.
1598         (_Mutable_BidirectionalIteratorConcept): Do not require the
1599         value type to be assignable.
1600         (_Mutable_RandomAccessIteratorConcept): Likewise.
1601         * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1602         line number.
1604 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1606         * testsuite/25_algorithms/copy/34595.cc: Add missing operation
1607         for type used as an iterator.
1608         * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
1610 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1612         * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
1613         comparison function for priority_queue of type with no
1614         relational operators.
1615         * testsuite/20_util/is_swappable/value.h: Likewise.
1616         * testsuite/24_iterators/output/concept.cc: Add operator< to
1617         type used in set.
1619 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1621         * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1622         Use a function to preserve value category of the type.
1623         * include/bits/stl_algobase.h (copy, move, fill_n): Use a
1624         reference as the second argument for _OutputIteratorConcept.
1625         (copy_backward, move_backward): Use _OutputIteratorConcept
1626         instead of _ConvertibleConcept.
1628 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1630         * include/bits/stl_iterator.h (pointer_traits): Define partial
1631         specialization for __normal_iterator.
1632         * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
1634 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1636         * include/bits/move.h (forward(remove_reference_t<T>&&)):
1637         Improve text of static_assert.
1638         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1639         * testsuite/20_util/forward/f_neg.cc: Likewise.
1641 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
1643         PR libstdc++/102499
1644         * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1645         to declarations, to match definitions.
1647 2021-09-24  Jonathan Wakely  <jwakely@redhat.com>
1649         * include/bits/range_access.h (cbegin, cend): Remove redundant
1650         'inline' specifier.
1652 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
1654         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1655         Remove dg-error lines for C++20-only errors.
1657 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
1659         * testsuite/19_diagnostics/headers/system_error/93151.cc:
1660         Disable PCH.
1662 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
1664         * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1665         Map Windows error codes to generic POSIX error numbers. Use
1666         FormatMessage instead of strerror.
1667         * testsuite/19_diagnostics/error_category/system_category.cc:
1668         Adjust for new behaviour on Windows.
1670 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
1672         * src/c++11/system_error.cc (generic_error_category): Define
1673         class and virtual functions as 'final'.
1674         (generic_error_category::equivalent(int, const error_condition&)):
1675         Override.
1676         (system_error_category): Define class and virtual functions as
1677         'final'.
1678         (system_error_category::equivalent(int, const error_condition&)):
1679         Override.
1680         (generic_category_instance, system_category_instance): Use
1681         constinit union to make the objects immortal.
1683 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
1685         PR libstdc++/102425
1686         * src/c++11/system_error.cc
1687         (system_error_category::default_error_condition): Add 0 to
1688         switch.
1689         * testsuite/19_diagnostics/error_category/102425.cc: New test.
1691 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
1693         * include/bits/fs_path.h (path::iterator): Add noexcept to all
1694         member functions and friend functions.
1695         (distance): Add noexcept.
1696         (advance): Add noexcept and inline.
1697         * include/experimental/bits/fs_path.h (path::iterator):
1698         Add noexcept to all member functions.
1700 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
1702         PR libstdc++/102270
1703         * include/std/tuple (_Tuple_impl): Add constexpr to constructor
1704         missed in previous patch.
1705         * testsuite/20_util/tuple/cons/102270.C: Moved to...
1706         * testsuite/20_util/tuple/cons/102270.cc: ...here.
1707         * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
1708         constexpr to constructor so it can be used for C++20 tests.
1710 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
1712         * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
1713         * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
1714         * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
1715         * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
1717 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1719         * src/Makefile.am (stamp-debug): Add all Makefiles as
1720         prerequisites.
1721         * src/Makefile.in: Regenerate.
1723 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1725         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
1726         timeout factor to 3.
1727         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1729 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1731         * doc/xml/manual/using.xml: Generalize to apply to more than
1732         just -std=c++11.
1733         * doc/html/manual/using_macros.html: Regenerate.
1735 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1737         * include/std/optional (nullptr_t): Make constructor noexcept.
1739 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1741         * include/bits/fs_path.h (advance): Remove non-deducible
1742         template parameter.
1744 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1746         PR libstdc++/102270
1747         * include/std/tuple (_Head_base, _Tuple_impl): Add
1748         _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
1749         (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
1750         * testsuite/20_util/tuple/cons/102270.C: New test.
1752 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1754         PR libstdc++/102280
1755         * include/std/span (span(Range&&)): Add constraint to deduction
1756         guide.
1758 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1760         * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
1761         * src/c++98/Makefile.in: Regenerate.
1763 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1765         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1766         (to_string): Add noexcept if the type width is 32 bits or less.
1768 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
1770         * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
1771         (__uniq_ptr_impl::_M_deleter): Add noexcept.
1773 2021-09-16  Thomas Rodgers  <rodgert@twrodgers.com>
1775         PR libstdc++/101761
1776         * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
1777         va and vb as arguments to wait/notify, remove unused bb local.
1779 2021-09-15  Hugo Beauzée-Luyssen  <hugo@beauzee.fr>
1781         * crossconfig.m4: Check for TLS support on mingw.
1782         * configure: Regenerate.
1784 2021-09-13  Jason Merrill  <jason@redhat.com>
1786         * include/std/version: Define __cpp_lib_hardware_interference_size.
1787         * libsupc++/new: Define hardware interference size variables.
1789 2021-09-10  Jonathan Wakely  <jwakely@redhat.com>
1791         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1792         Fix invalid hostname to only match the .invalid TLD.
1794 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
1796         * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
1797         Add new functions.
1798         * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
1799         it.
1801 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
1803         * include/std/atomic: Tweak whitespace.
1805 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
1807         PR c++/102177
1808         * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
1809         New function to check if a memory order is valid for the failure
1810         case of compare exchange operations.
1811         (__atomic_base<I>::compare_exchange_weak): Simplify assertions
1812         by using __is_valid_cmpexch_failure_order.
1813         (__atomic_base<I>::compare_exchange_strong): Likewise.
1814         (__atomic_base<P*>::compare_exchange_weak): Likewise.
1815         (__atomic_base<P*>::compare_exchange_strong): Likewise.
1816         (__atomic_impl::compare_exchange_weak): Add assertion.
1817         (__atomic_impl::compare_exchange_strong): Likewise.
1818         * include/std/atomic (atomic::compare_exchange_weak): Likewise.
1819         (atomic::compare_exchange_strong): Likewise.
1821 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
1823         * include/std/functional (invoke_r): Define.
1824         * include/std/version (__cpp_lib_invoke_r): Define.
1825         * testsuite/20_util/function_objects/invoke/version.cc: Check
1826         for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
1827         * testsuite/20_util/function_objects/invoke/4.cc: New test.
1829 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
1831         PR libstdc++/98421
1832         * include/std/span (span(Iter, size_type), span(Iter, Iter)):
1833         Add valid range checks.
1834         * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
1835         * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
1837 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
1839         * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
1840         * configure: Regenerate.
1842 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
1844         * src/c++11/system_error.cc (error_category::~error_category()):
1845         Remove noexcept-specifier.
1846         (system_error::~system_error()): Likewise.
1847         * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
1848         * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
1850 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
1852         PR libstdc++/102074
1853         * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
1854         [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
1856 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
1858         * include/experimental/internet (__make_resolver_error_code):
1859         Handle EAI_SYSTEM errors.
1860         (basic_resolver_results): Use __make_resolver_error_code. Use
1861         Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
1863 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
1865         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1866         Try other service if "http" fails.
1868 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
1870         * testsuite/17_intro/names.cc: Undefine some more names used
1871         by Solaris system headers.
1873 2021-08-30  Jason Merrill  <jason@redhat.com>
1875         PR c++/96286
1876         * testsuite/30_threads/promise/requirements/lwg3466.cc:
1877         Remove dg-prune-outputs.
1879 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
1881         * include/bits/alloc_traits.h (allocator_traits): Add explicit
1882         specialization for allocator<void>. Improve doxygen comments.
1883         * include/bits/allocator.h (allocator<void>): Restore for the
1884         versioned namespace.
1885         (allocator<void>::construct, allocator<void>::destroy): Remove.
1886         * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
1887         Add default constructor and converting constructor.
1889 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
1891         * include/bits/stl_uninitialized.h: Fix typo in comment.
1893 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
1895         PR libstdc++/99876
1896         * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
1897         to avoid unnecessary current_path() call.
1899 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
1901         * include/bits/std_function.h (function::function(F&&)): Give
1902         name to defaulted template parameter, to improve diagnostics.
1903         Use markdown for more doxygen comments.
1905 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
1907         * include/bits/std_function.h (function): Adjust doxygen
1908         comments.
1909         * include/bits/unique_ptr.h (make_unique_for_overwrite):
1910         Change parameter name to match doxygen comment.
1912 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
1914         * include/bits/std_function.h (_function_base::_Base_manager):
1915         Replace _M_init_functor with a function template using a
1916         forwarding reference, and a pair of _M_create function
1917         templates. Reuse _M_create for the clone operation.
1918         (function::_Decay_t): New alias template.
1919         (function::_Callable): Simplify by using _Decay.
1920         (function::function(F)): Change parameter to forwarding
1921         reference, as per LWG 2447. Add noexcept-specifier. Simplify
1922         constraints.
1923         (function::operator=(F&&)): Add noexcept-specifier.
1924         * testsuite/20_util/function/cons/lwg2774.cc: New test.
1925         * testsuite/20_util/function/cons/noexcept.cc: New test.
1927 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
1929         * include/bits/std_function.h (function::function(F)): Add
1930         static assertions to check constructibility requirements.
1932 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
1934         PR libstdc++/100285
1935         * configure.ac: Check for O_NONBLOCK.
1936         * configure: Regenerate.
1937         * include/experimental/internet: Include <ws2tcpip.h> for
1938         Windows.  Use preprocessor conditions around more constants.
1939         * include/experimental/socket: Use preprocessor conditions
1940         around more constants.
1941         * testsuite/experimental/net/internet/resolver/base.cc: Only use
1942         constants when the corresponding C macro is defined.
1943         * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
1944         * testsuite/experimental/net/socket/socket_base.cc: Likewise.
1945         Make preprocessor checks more fine-grained.
1947 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
1949         * testsuite/17_intro/names.cc: Check 'sz'.
1951 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
1953         * testsuite/17_intro/names.cc: Adjust for Windows.
1955 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
1957         * include/std/valarray: Uglify 'func' parameters.
1958         * testsuite/17_intro/names.cc: Add 'func' to checks.
1960 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
1962         PR libstdc++/102064
1963         * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
1964         Define macro to check conditions for optimizing trivial cases.
1965         (__check_constructible): New function to do static assert.
1966         (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
1967         Use new macro.
1968         * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1969         Adjust dg-error pattern.
1970         * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
1971         C++17-specific checks from 89164_c++17.cc.
1972         * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
1973         * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
1974         New test.
1975         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
1976         New test.
1977         * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
1978         New test.
1979         * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
1980         New test.
1982 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
1984         PR libstdc++/102048
1985         * include/ext/rope (rope::erase(size_type)): Remove broken
1986         function.
1988 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
1990         * doc/xml/manual/status_cxx2020.xml: Update table.
1991         * doc/html/manual/status.html: Regenerate.
1993 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
1995         * include/std/type_traits (is_layout_compatible): Define.
1996         (is_corresponding_member): Define.
1997         * include/std/version (__cpp_lib_is_layout_compatible): Define.
1998         * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1999         New test.
2000         * testsuite/20_util/is_layout_compatible/value.cc: New test.
2001         * testsuite/20_util/is_layout_compatible/version.cc: New test.
2002         * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
2003         New test.
2004         * testsuite/23_containers/span/layout_compat.cc: Do not use real
2005         std::is_layout_compatible trait if available.
2007 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
2009         * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
2010         explicit instantiation definitions.
2012 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
2014         * include/std/ranges (basic_istream_view): Add default template
2015         argument.
2016         * testsuite/std/ranges/istream_view.cc: Check it.
2018 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
2020         * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
2021         precondition check.
2023 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
2025         PR libstdc++/90787
2026         * testsuite/util/testsuite_fs.h (permissions_are_testable):
2027         Define as inline.
2029 2021-08-20  Jonathan Wakely  <jwakely@redhat.com>
2031         PR libstdc++/90787
2032         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
2033         Use new __gnu_test::permissions_are_testable() function.
2034         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2035         Likewise.
2036         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2037         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2038         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2039         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2040         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2041         * testsuite/27_io/filesystem/operations/symlink_status.cc:
2042         Likewise.
2043         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2044         Likewise.
2045         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2046         Likewise.
2047         * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2048         Likewise.
2049         * testsuite/experimental/filesystem/operations/exists.cc:
2050         Likewise.
2051         * testsuite/experimental/filesystem/operations/is_empty.cc:
2052         Likewise.
2053         * testsuite/experimental/filesystem/operations/remove.cc:
2054         Likewise.
2055         * testsuite/experimental/filesystem/operations/remove_all.cc:
2056         Likewise.
2057         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2058         Likewise.
2059         * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
2060         New function to guess whether testing permissions will work.
2062 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2064         * doc/xml/manual/status_cxx2020.xml: Move row  earlier in table.
2065         * doc/html/manual/status.html: Regenerate.
2067 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2069         * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
2071 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2073         PR libstdc++/101965
2074         * include/std/charconv (__to_chars_i): Remove redundant check.
2076 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2078         PR libstdc++/101960
2079         * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
2080         class' move constructor. Define as defaulted for versioned
2081         namespace.
2082         * testsuite/20_util/tuple/cons/101960.cc: New test.
2084 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2086         PR libstdc++/100139
2087         * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
2088         * doc/html/manual/status.html: Regenerate.
2090 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2092         * include/bits/shared_ptr.h: Add @since and @headerfile tags.
2093         * include/bits/unique_ptr.h: Add @headerfile tags.
2095 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2097         * src/filesystem/ops-common.h (filesystem::file_time): Improve
2098         overflow check by using system_clock::duration::max().
2100 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2102         * include/bits/stl_tree.h: Tweak whitespace.
2104 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2106         * include/bits/unique_ptr.h (default_delete): Add @since tag.
2107         (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
2108         (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
2109         @param, and @returns.
2110         (_MakeUniq): Move to __detail namespace. Add alias template
2111         helpers.
2113 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2115         * include/bits/stl_function.h: Improve doxygen comments.
2117 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2119         * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
2120         processing for C++20 components and components that depend on
2121         compiler features.
2122         * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
2123         * include/std/type_traits: Improve doxygen comments for C++20
2124         traits.
2126 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2128         * include/ext/type_traits.h (__promote_2, __promote_3)
2129         (__promote_4): Redfine as alias templates using __promoted_t.
2130         * include/std/complex (__promote_2): Remove partial
2131         specializations for std::complex.
2133 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2135         * include/bits/stl_algo.h (min(initializer_list<T>))
2136         (min(initializer_list<T>, Compare)): Call __min_element directly to
2137         avoid redundant debug checks for valid ranges.
2138         (max(initializer_list<T>), max(initializer_list<T>, Compare)):
2139         Likewise, for __max_element.
2140         (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
2141         Likewise, for __minmax_element.
2143 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2145         * include/debug/deque (deque(size_type, const T&, const A&)):
2146         Prevent class template argument deduction and replace with a
2147         deduction guide.
2148         * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
2149         Likewise.
2150         * include/debug/list (list(size_type, const T&, const A&)):
2151         Likewise.
2152         * include/debug/vector (vector(size_type, const T&, const A&)):
2153         Likewise.
2155 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2157         * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
2158         'std::vector<bool>::reference' as type name, not _Bit_reference.
2159         (build_libstdcxx_dictionary): Register printers for vector<bool>
2160         types in debug mode too.
2161         * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
2162         output for invalid _Bit_reference. Use vector<bool>::reference
2163         instead of _Bit_reference.
2164         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2166 2021-08-17  Thomas Schwinge  <thomas@codesourcery.com>
2168         * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
2169         continued.
2171 2021-08-17  Luc Michel  <lmichel@kalray.eu>
2172             Marc Poulhies  <mpoulhies@kalrayinc.com>
2174         * testsuite/lib/gdb-test.exp (gdb_version_check)
2175         (gdb_version_check_xmethods): Only check the GDB version for
2176         local native targets.
2178 2021-08-17  Antony Polukhin  <antoshkka@gmail.com>
2179             Jonathan Wakely  <jwakely@redhat.com>
2181         * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
2182         if distance is O(1).
2183         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2184         line number.
2186 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2188         * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
2189         construction from input iterators.
2191 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2193         * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
2195 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2197         PR libstdc++/101923
2198         * include/bits/std_function.h (function(function&&)): Check for
2199         non-empty parameter before doing any work.
2201 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2203         * include/bits/cow_string.h (basic_string::contains): Do not
2204         define for -std=gnu++20.
2206 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2208         * include/bits/ranges_util.h (__not_same_as): Rename to
2209         __different_from.
2210         * include/std/ranges (__not_same_as): Likewise.
2212 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2214         * include/std/utility (exchange): Add noexcept-specifier.
2215         * testsuite/20_util/exchange/noexcept.cc: New test.
2217 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2219         * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
2220         (build_libstdcxx_dictionary): Register printer for
2221         std::error_code and std::error_condition.
2222         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
2224 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
2226         PR libstdc++/101937
2227         * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
2228         static data member.
2229         (print_word): Use qualified-id to access it.
2231 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
2233         * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
2234         Install another copy of the GDB hook.
2235         * python/Makefile.in: Regenerate.
2237 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
2239         PR libstdc++/101870
2240         * include/c_global/cmath (hypot): Use __promoted_t.
2241         (lerp): Add new overload accepting any arithmetic types.
2242         * include/ext/type_traits.h (__promoted_t): New alias template.
2243         * testsuite/26_numerics/lerp.cc: Moved to...
2244         * testsuite/26_numerics/lerp/1.cc: ...here.
2245         * testsuite/26_numerics/lerp/constexpr.cc: New test.
2246         * testsuite/26_numerics/lerp/version.cc: New test.
2248 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
2250         * testsuite/26_numerics/lerp.cc: Add header name to #error.
2251         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
2252         * testsuite/26_numerics/midpoint/version.cc: New test.
2254 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
2256         * include/experimental/random (experimental::randint): Add
2257         nodiscard attribute.
2259 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
2261         * src/c++98/locale_init.cc: Require C++11.
2262         * src/c++98/localename.cc: Likewise.
2263         * src/c++98/misc-inst.cc: Require C++98.
2265 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
2267         PR libstdc++/101866
2268         * testsuite/experimental/random/randint.cc: Loop and retry if
2269         reseed() produces the same sequence.
2271 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
2273         * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
2274         (is_pointer_interconvertible_base_of_v)
2275         (is_pointer_interconvertible_base_of): Define for C++20.
2276         * include/std/version (__cpp_lib_is_pointer_interconvertible):
2277         Define.
2278         * testsuite/23_containers/span/layout_compat.cc: Use correct
2279         feature test macro for std::is_layout_compatible_v.
2280         * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
2281         * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
2283 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
2285         * include/bits/regex.h (basic_regex::transform_primary): Use
2286         _GLIBCXX_STD_C::vector for local variable.
2287         * include/bits/regex.tcc (__regex_algo_impl): Use reference to
2288         _GLIBCXX_STD_C::vector base class of match_results.
2289         * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
2290         _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
2291         variables.
2292         * include/bits/regex_compiler.h (_BracketMatcher): Use
2293         _GLIBCXX_STD_C::vector for data members.
2294         * include/bits/regex_executor.h (_Executor): Likewise.
2295         * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
2297 2021-08-09  François Dumont  <fdumont@gcc.gnu.org>
2299         * include/debug/safe_container.h
2300         (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
2301         (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
2302         (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
2304 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
2306         * testsuite/23_containers/unordered_map/cons/default.cc: Add
2307         equality comparison operators to allocator.
2308         * testsuite/23_containers/unordered_set/cons/default.cc:
2309         Likewise.
2311 2021-08-08  François Dumont  <fdumont@gcc.gnu.org>
2313         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
2314         dg-prune-output reason with 'builtin_unreachable'.
2315         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
2316         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
2317         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2318         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2319         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2320         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2321         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2322         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2324 2021-08-08  Hans-Peter Nilsson  <hp@bitrange.com>
2326         * testsuite/std/ranges/iota/max_size_type.cc: Set
2327         dg-timeout-factor to 4.
2329 2021-08-06  Jonathan Wakely  <jwakely@redhat.com>
2331         * libsupc++/compare (compare_three_way, strong_order)
2332         (weak_order, partial_order, compare_strong_order_fallback)
2333         (compare_weak_order_fallback, compare_partial_order_fallback):
2334         Move nodiscard attributes to correct location.
2336 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
2338         PR libstdc++/101782
2339         * include/bits/ranges_base.h (ranges::begin, ranges::end)
2340         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2341         (ranges::empty, ranges::data): Move attribute after the
2342         declarator-id instead of at the end of the declarator.
2343         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
2344         Move attributes back to the start of the function declarator,
2345         but move the requires-clause to the end.
2346         (common_iterator): Move attribute after the declarator-id.
2347         * include/bits/stl_queue.h (queue): Remove ill-formed attributes
2348         from friend declaration that are not definitions.
2349         * include/std/ranges (views::all, views::filter)
2350         (views::transform, views::take, views::take_while,
2351         views::drop) (views::drop_while, views::join,
2352         views::lazy_split) (views::split, views::counted,
2353         views::common, views::reverse) (views::elements): Move
2354         attributes after the declarator-id.
2356 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
2358         * libsupc++/compare (partial_ordering, weak_ordering)
2359         (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
2360         (compare_three_way, strong_order, weak_order, partial_order)
2361         (compare_strong_order_fallback, compare_weak_order_fallback)
2362         (compare_partial_order_fallback, __detail::__synth3way): Add
2363         nodiscard attribute.
2364         * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
2365         -Wno-unused-result to options.
2367 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
2369         PR libstdc++/101782
2370         * include/bits/ranges_base.h (ranges::begin, ranges::end)
2371         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2372         (ranges::empty, ranges::data): Move attribute to the end of
2373         the declarator.
2374         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
2375         (common_iterator): Likewise for non-member operator functions.
2376         * include/std/ranges (views::all, views::filter)
2377         (views::transform, views::take, views::take_while, views::drop)
2378         (views::drop_while, views::join, views::lazy_split)
2379         (views::split, views::counted, views::common, views::reverse)
2380         (views::elements): Likewise.
2381         * testsuite/std/ranges/access/101782.cc: New test.
2383 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
2385         * include/bits/forward_list.h: Add [[nodiscard]] to functions
2386         with no side-effects.
2387         * include/bits/stl_bvector.h: Likewise.
2388         * include/bits/stl_deque.h: Likewise.
2389         * include/bits/stl_list.h: Likewise.
2390         * include/bits/stl_queue.h: Likewise.
2391         * include/bits/stl_stack.h: Likewise.
2392         * include/bits/stl_vector.h: Likewise.
2393         * include/debug/deque: Likewise.
2394         * include/debug/forward_list: Likewise.
2395         * include/debug/list: Likewise.
2396         * include/debug/safe_iterator.h: Likewise.
2397         * include/debug/vector: Likewise.
2398         * include/std/array: Likewise.
2399         * testsuite/23_containers/array/creation/3_neg.cc: Use
2400         -Wno-unused-result.
2401         * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
2402         to void.
2403         * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
2404         * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
2405         * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
2406         * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
2407         Likewise.
2408         * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
2409         Likewise.
2410         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2411         Adjust dg-error line numbers.
2412         * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
2413         result to void.
2414         * testsuite/23_containers/deque/debug/invalidation/4.cc:
2415         Likewise.
2416         * testsuite/23_containers/deque/types/1.cc: Use
2417         -Wno-unused-result.
2418         * testsuite/23_containers/list/types/1.cc: Cast result to void.
2419         * testsuite/23_containers/priority_queue/members/7161.cc:
2420         Likewise.
2421         * testsuite/23_containers/queue/members/7157.cc: Likewise.
2422         * testsuite/23_containers/vector/59829.cc: Likewise.
2423         * testsuite/23_containers/vector/ext_pointer/types/1.cc:
2424         Likewise.
2425         * testsuite/23_containers/vector/ext_pointer/types/2.cc:
2426         Likewise.
2427         * testsuite/23_containers/vector/types/1.cc: Use
2428         -Wno-unused-result.
2430 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
2432         * include/bits/iterator_concepts.h (iter_move): Add
2433         [[nodiscard]].
2434         * include/bits/range_access.h (begin, end, cbegin, cend)
2435         (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
2436         * include/bits/ranges_base.h (ranges::begin, ranges::end)
2437         (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
2438         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2439         (ranges::empty, ranges::data, ranges::cdata): Likewise.
2440         * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
2441         (back_insert_iterator, front_insert_iterator, insert_iterator)
2442         (move_iterator, move_sentinel, common_iterator)
2443         (counted_iterator): Likewise.
2444         * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
2445         Likewise.
2446         * include/bits/stream_iterator.h (istream_iterator)
2447         (ostream_iterartor): Likewise.
2448         * include/bits/streambuf_iterator.h (istreambuf_iterator)
2449         (ostreambuf_iterator): Likewise.
2450         * include/std/ranges (views::single, views::iota, views::all)
2451         (views::filter, views::transform, views::take, views::take_while)
2452         (views::drop, views::drop_while, views::join, views::lazy_split)
2453         (views::split, views::counted, views::common, views::reverse)
2454         (views::elements): Likewise.
2455         * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
2456         * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
2457         * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
2458         Likewise.
2459         * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
2460         * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
2461         Likewise.
2462         * testsuite/21_strings/basic_string/range_access/char/1.cc:
2463         Cast result to void.
2464         * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2465         Likewise.
2466         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2467         Likewise.
2468         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2469         Likewise.
2470         * testsuite/23_containers/array/range_access.cc: Likewise.
2471         * testsuite/23_containers/deque/range_access.cc: Likewise.
2472         * testsuite/23_containers/forward_list/range_access.cc:
2473         Likewise.
2474         * testsuite/23_containers/list/range_access.cc: Likewise.
2475         * testsuite/23_containers/map/range_access.cc: Likewise.
2476         * testsuite/23_containers/multimap/range_access.cc: Likewise.
2477         * testsuite/23_containers/multiset/range_access.cc: Likewise.
2478         * testsuite/23_containers/set/range_access.cc: Likewise.
2479         * testsuite/23_containers/unordered_map/range_access.cc:
2480         Likewise.
2481         * testsuite/23_containers/unordered_multimap/range_access.cc:
2482         Likewise.
2483         * testsuite/23_containers/unordered_multiset/range_access.cc:
2484         Likewise.
2485         * testsuite/23_containers/unordered_set/range_access.cc:
2486         Likewise.
2487         * testsuite/23_containers/vector/range_access.cc: Likewise.
2488         * testsuite/24_iterators/customization_points/iter_move.cc:
2489         Likewise.
2490         * testsuite/24_iterators/istream_iterator/sentinel.cc:
2491         Likewise.
2492         * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
2493         Likewise.
2494         * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
2495         * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
2496         * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
2497         * testsuite/24_iterators/range_access/range_access.cc:
2498         Likewise.
2499         * testsuite/24_iterators/range_operations/100768.cc: Likewise.
2500         * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
2501         * testsuite/28_regex/range_access.cc: Likewise.
2502         * testsuite/experimental/string_view/range_access/char/1.cc:
2503         Likewise.
2504         * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
2505         Likewise.
2506         * testsuite/ext/vstring/range_access.cc: Likewise.
2507         * testsuite/std/ranges/adaptors/take.cc: Likewise.
2508         * testsuite/std/ranges/p2259.cc: Likewise.
2510 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
2512         * include/bits/random.tcc (linear_congruential_engine): Do not
2513         define static constexpr members when they are implicitly inline.
2514         * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
2515         (__ratio_add, __ratio_subtract): Likewise.
2516         * include/std/type_traits (integral_constant): Likewise.
2517         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2518         line number.
2520 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
2522         * testsuite/util/testsuite_common_types.h: Replace uses of
2523         tr1::unordered_map and tr1::unordered_set with their C++11
2524         equivalents.
2525         * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
2526         dg-error line number.
2527         * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2528         * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2529         Likewise.
2530         * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
2531         Likewise.
2532         * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2533         Likewise.
2534         * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2535         Likewise.
2536         * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2537         Likewise.
2539 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
2541         * include/std/memory_resource (polymorphic_allocator::delete_object):
2542         Call destructor directly instead of using destroy.
2543         (allocator_traits<polymorphic_allocator<T>>): Define partial
2544         specialization.
2546 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
2548         * testsuite/20_util/function_objects/binders/3113.cc: Remove
2549         trailing whitespace.
2550         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2551         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2552         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2553         Likewise.
2554         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2555         * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
2556         Likewise.
2557         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2558         Likewise.
2559         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2560         Likewise.
2562 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
2564         * doc/xml/manual/evolution.xml: Document deprecation.
2565         * doc/html/*: Regenerate.
2566         * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
2567         (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
2568         * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
2569         and later.
2570         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
2571         for C++11 and C++14 changes to std::random_shuffle and
2572         std::shuffle.
2573         * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
2574         use deprecated algorithms.
2575         * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
2576         * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2577         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2578         Likewise.
2579         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2580         Likewise.
2582 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
2584         * testsuite/23_containers/forward_list/operations/3.cc:
2585         Use lambda instead of std::bind2nd.
2586         * testsuite/20_util/function_objects/binders/3113.cc: Add
2587         options for testing deprecated features.
2588         * testsuite/20_util/pair/cons/99957.cc: Likewise.
2589         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2590         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2591         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2592         Likewise.
2593         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2594         * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
2595         * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
2596         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2597         * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
2598         * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
2599         * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2600         Likewise.
2601         * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2602         Likewise.
2603         * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
2604         New proc.
2606 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
2608         * include/bits/regex_executor.h (_State_info): Replace
2609         unique_ptr<bool[]> with array of bool.
2610         * include/bits/regex_executor.tcc: Likewise.
2611         * include/bits/regex_scanner.tcc: Replace std::strchr with
2612         __builtin_strchr.
2613         * include/std/regex: Replace standard headers with smaller
2614         internal ones.
2615         * testsuite/28_regex/traits/char/lookup_classname.cc: Include
2616         <string.h> for strlen.
2617         * testsuite/28_regex/traits/char/lookup_collatename.cc:
2618         Likewise.
2620 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
2622         * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
2623         RAII class template.
2624         (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
2625         instead of unique_ptr.
2627 2021-08-02  Patrick Palka  <ppalka@redhat.com>
2629         PR libstdc++/101599
2630         * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
2631         Add missing std::move in return statement.
2632         (__partition_copy_fn::operator()): Rename templtae parameter
2633         _O2 to _Out2.  Uglify function parameters out_true and out_false.
2634         * include/bits/ranges_algobase.h (__copy_or_move): Add missing
2635         std::move to recursive call that unwraps a __normal_iterator
2636         output iterator.
2637         * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2638         * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2640 2021-08-02  Patrick Palka  <ppalka@redhat.com>
2642         PR libstdc++/101589
2643         * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2644         the const& overload unconstrained and return a const reference
2645         as per LWG 3533.  Make unconditionally noexcept.
2646         (elements_view::base): Revert accidental r12-569 change.
2647         (elements_view::_Iterator::base): Make the const& overload
2648         unconstrained and return a const reference as per LWG 3533.
2649         Make unconditionally noexcept.
2651 2021-08-02  Patrick Palka  <ppalka@redhat.com>
2653         PR libstdc++/101483
2654         * include/std/ranges (join_view::_Iterator::_Iterator): Add
2655         missing std::move.
2657 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
2659         PR libstdc++/101709
2660         * src/filesystem/ops-common.h (get_temp_directory_from_env):
2661         Add error_code parameter.
2662         * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2663         argument to get_temp_directory_from_env and check it.
2664         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2666 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
2668         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2669         Add dg-error for c++11_only target.
2671 2021-07-30  Jonathan Wakely  <jwakely@redhat.com>
2673         PR libstdc++/65018
2674         * configure.ac: Check for secure_getenv.
2675         * config.h.in: Regenerate.
2676         * configure: Regenerate.
2677         * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2678         helper function to obtain path from the environment.
2679         * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2680         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2681         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2682         Print messages if test cannot be run.
2683         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2684         Likewise. Fix incorrect condition. Use "TMP" to work with
2685         Windows as well as POSIX.
2687 2021-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
2689         * src/c++17/memory_resource.cc: Use __exchange instead
2690         of std::exchange.
2692 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
2694         * include/experimental/optional (__throw_bad_optional_access):
2695         Replace GNU attribute with C++11 attribute.
2696         (optional::value, optional::value_or): Use if statements
2697         instead of conditional expressions.
2698         * include/std/optional (__throw_bad_optional_access)
2699         (optional::value, optional::value_or): Likewise.
2701 2021-07-27  Marek Polacek  <polacek@redhat.com>
2703         DR 1512
2704         PR c++/99701
2705         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
2706         Move a line...
2707         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2708         ...here.  New test.
2710 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
2712         * include/bits/cow_string.h: Consistently use tab for
2713         indentation.
2715 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
2717         * include/Makefile.am: Add new header.
2718         * include/Makefile.in: Regenerate.
2719         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2720         (basic_string): Move definition of Copy-on-Write string to
2721         new file.
2722         * include/bits/basic_string.tcc: Likewise.
2723         * include/bits/cow_string.h: New file.
2725 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
2727         * include/std/algorithm: Do not include <utility>.
2728         * include/std/functional: Likewise.
2729         * include/std/regex: Include <bits/stl_pair.h> instead of
2730         <utility>.
2731         * include/debug/map.h: Likewise.
2732         * include/debug/multimap.h: Likewise.
2733         * include/debug/multiset.h: Likewise.
2734         * include/debug/set.h: Likewise.
2735         * include/debug/vector: Likewise.
2736         * include/bits/fs_path.h: Likewise.
2737         * include/bits/unique_ptr.h: Do not include <utility>.
2738         * include/experimental/any: Likewise.
2739         * include/experimental/executor: Likewise.
2740         * include/experimental/memory: Likewise.
2741         * include/experimental/optional: Likewise.
2742         * include/experimental/socket: Use __exchange instead
2743         of std::exchange.
2744         * src/filesystem/ops-common.h: Likewise.
2745         * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
2746         errors to not use a hardcoded line number.
2747         * testsuite/20_util/default_delete/void_neg.cc: Likewise.
2748         * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2749         Include <utility> for std::as_const.
2750         * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2751         Likewise.
2752         * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2753         Likewise.
2754         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2755         Likewise.
2756         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
2757         Adjust dg-error line number.
2759 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
2761         * include/Makefile.am: Add bits/utility.h header.
2762         * include/Makefile.in: Regenerate.
2763         * include/bits/utility.h: New file.
2764         * include/std/utility (tuple_size, tuple_element): Move
2765         to new header.
2766         * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
2767         Move to <tuple>.
2768         (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
2769         (in_place_t, in_place_index_t, in_place_type_t): Likewise.
2770         * include/bits/ranges_util.h: Include new header instead of
2771         <utility>.
2772         * include/bits/stl_pair.h (tuple_size, tuple_element): Move
2773         partial specializations for std::pair here.
2774         (get): Move overloads for std::pair here.
2775         * include/std/any: Include new header instead of <utility>.
2776         * include/std/array: Likewise.
2777         * include/std/memory_resource: Likewise.
2778         * include/std/optional: Likewise.
2779         * include/std/variant: Likewise.
2780         * include/std/tuple: Likewise.
2781         (__is_tuple_like_impl<tuple<T...>>): Move here.
2782         (get) Declare overloads for std::array.
2783         * include/std/version (__cpp_lib_tuples_by_type): Change type
2784         to long.
2785         * testsuite/20_util/optional/84601.cc: Include <utility>.
2786         * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2787         Likewise.
2788         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2789         Adjust dg-error line numbers.
2790         * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
2791         * testsuite/std/ranges/access/cend.cc: Likewise.
2792         * testsuite/std/ranges/access/end.cc: Likewise.
2793         * testsuite/std/ranges/single_view.cc: Likewise.
2795 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
2797         * include/std/future: Include <bits/atomic_base.h> instead of
2798         <atomic>.
2800 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
2802         * include/bits/stl_relops.h: Update documentation comments.
2804 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
2806         PR libstdc++/101583
2807         * include/bits/hashtable.h (_Hashtable): Replace mixin with
2808         _Enable_default_ctor. Construct it explicitly in all
2809         non-forwarding, non-defaulted constructors.
2810         * testsuite/23_containers/unordered_map/cons/default.cc: Check
2811         non-default constructors can be used.
2812         * testsuite/23_containers/unordered_set/cons/default.cc:
2813         Likewise.
2815 2021-07-22  David Edelsohn  <dje.gcc@gmail.com>
2817         * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
2819 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
2821         PR libstdc++/94295
2822         * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
2823         (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
2824         (allocator::allocate, allocator::deallocate): Use new macros.
2826 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
2828         PR libstdc++/101571
2829         * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
2830         constructor parameter to reference and use addressof.
2831         * testsuite/util/testsuite_iterators.h: Define deleted operator&
2832         overloads for test iterators.
2834 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
2836         * include/bits/std_function.h (_Function_base): Add
2837         default member initializers and define constructor as defaulted.
2838         (function::_M_invoker): Add default member initializer.
2840 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
2842         PR libstdc++/100682
2843         * doc/xml/manual/debug_mode.xml: Update documentation about
2844         debug capability of std::array.
2845         * doc/html/*: Regenerate.
2846         * include/debug/array: New file.
2848 2021-07-21  Jonathan Wakely  <jwakely@redhat.com>
2850         PR libstdc++/101542
2851         * include/ext/rope (sequence_buffer): Add move constructor and
2852         move assignment operator.
2853         * testsuite/ext/rope/101542.cc: New test.
2855 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
2857         PR libstdc++/101510
2858         * src/c++17/fs_ops.cc (fs::create_directories): Use status
2859         instead of symlink_status.
2860         * src/filesystem/ops.cc (fs::create_directories): Likewise.
2861         * testsuite/27_io/filesystem/operations/create_directories.cc:
2862         Check symlink to existing directory.
2863         * testsuite/27_io/filesystem/operations/create_directory.cc: Do
2864         not test with symlinks on Windows.
2865         * testsuite/experimental/filesystem/operations/create_directories.cc:
2866         Check symlink to existing directory.
2867         * testsuite/experimental/filesystem/operations/create_directory.cc:
2868         Do not test with symlinks on Windows.
2870 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
2872         PR libstdc++/100863
2873         * include/bits/hashtable.h (_Hashtable): Conditionally delete
2874         default constructor by deriving from _Enable_special_members.
2875         * testsuite/23_containers/unordered_map/cons/default.cc: New test.
2876         * testsuite/23_containers/unordered_set/cons/default.cc: New test.
2878 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
2880         PR libstdc++/101510
2881         * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
2882         * testsuite/27_io/filesystem/operations/create_directory.cc:
2883         Test creating directory with name of existing symlink to
2884         directory.
2885         * testsuite/experimental/filesystem/operations/create_directory.cc:
2886         Likewise.
2888 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
2890         * include/std/tuple (get<I>): Add deleted overload for bad
2891         index.
2892         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2893         expected errors.
2895 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
2897         * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
2898         Use __int_traits unconditionally.
2900 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
2902         * include/bits/random.h (_Shift::__value): Use constexpr.
2903         (_Select_uint_least_t::type): Use using-declaration.
2904         (_Mod): Likewise.
2905         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2906         line number.
2908 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
2910         * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
2911         instead of diagnostic pragmas.
2912         * include/bits/functional_hash.h: Likewise.
2913         * include/bits/iterator_concepts.h (__is_signed_int128)
2914         (__is_unsigned_int128): Likewise.
2915         * include/bits/max_size_type.h (__max_size_type): Likewise.
2916         (numeric_limits<__max_size_type>): Likewise.
2917         * include/bits/std_abs.h (abs): Likewise.
2918         * include/bits/stl_algobase.h (__size_to_integer): Likewise.
2919         * include/bits/uniform_int_dist.h (uniform_int_distribution):
2920         Likewise.
2921         * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
2922         Likewise.
2923         * include/std/type_traits (__is_integral_helper<INT_N>)
2924         (__is_signed_integer, __is_unsigned_integer)
2925         (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
2926         * include/std/limits (__INT_N): Add __extension__ keyword.
2927         * include/bits/random.h (_Select_uint_least_t)
2928         (random_device): Likewise.
2930 2021-07-16  Patrick Palka  <ppalka@redhat.com>
2932         PR libstdc++/101231
2933         * include/std/ranges (_CachedPosition::_M_get): For non-forward
2934         ranges, just call __builtin_unreachable.
2935         * testsuite/std/ranges/istream_view.cc (test05): New test.
2937 2021-07-16  Patrick Palka  <ppalka@redhat.com>
2939         PR libstdc++/101214
2940         * include/std/ranges (split_view::split_view): Use std::move.
2941         (split_view::_Iterator::_Iterator): Remove redundant
2942         default_initializable constraint.
2943         (split_view::_Sentinel::_Sentinel): Declare.
2944         * testsuite/std/ranges/adaptors/split.cc (test02): New test.
2946 2021-07-16  Marek Polacek  <polacek@redhat.com>
2948         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
2949         dg-error.
2951 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
2953         * include/bits/unique_ptr.h: Adjust doxygen markup.
2955 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
2957         PR libstdc++/101307
2958         * include/std/type_traits: Adjust doxygen markup.
2960 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
2962         * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
2963         uses of non-standard integer types.
2964         * include/bits/functional_hash.h: Likewise.
2965         * include/bits/iterator_concepts.h: Likewise.
2966         * include/bits/max_size_type.h: Likewise.
2967         * include/bits/std_abs.h: Likewise.
2968         * include/bits/stl_algobase.h: Likewise.
2969         * include/bits/uniform_int_dist.h: Likewise.
2970         * include/ext/numeric_traits.h: Likewise.
2971         * include/std/type_traits: Likewise.
2973 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
2975         PR libstdc++/101427
2976         * include/std/tuple (tuple_element): Improve static_assert text.
2977         (__get_helper): Add deleted overload.
2978         (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
2979         __get_helper directly.
2980         (__get_helper2): Remove.
2981         (__find_uniq_type_in_pack): New constexpr helper function.
2982         (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
2983         of __get_helper2.
2984         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2985         expected errors.
2986         * testsuite/20_util/tuple/element_access/101427.cc: New test.
2988 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
2990         PR libstdc++/101429
2991         * include/bits/c++config (__replacement_assert): Add noexcept.
2992         [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
2993         instead of __replacement_assert.
2995 2021-07-14  Jonathan Wakely  <jwakely@redhat.com>
2997         * include/std/string_view (basic_string_view(It, End)): Add
2998         noexcept-specifier.
2999         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
3000         Check noexcept-specifier. Also check construction without CTAD.
3002 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
3004         PR c++/101361
3005         * include/std/string_view (ends_with): Use traits_type::compare
3006         directly.
3008 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
3010         * include/std/string_view: Only include <bits/ranges_base.h>
3011         once, and only for C++20 and later.
3013 2021-07-12  Jonathan Wakely  <jwakely@redhat.com>
3015         PR libstdc++/101411
3016         * include/std/span (as_writable_bytes): Add requires-clause.
3017         * testsuite/23_containers/span/101411.cc: New test.
3019 2021-07-09  Matheus Castanho  <msc@linux.ibm.com>
3021         * include/std/mutex (__lock_impl): Check
3022         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3024 2021-07-02  Jonathan Wakely  <jwakely@redhat.com>
3026         PR libstdc++/101271
3027         * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
3028         Remove noexcept-specifier.
3029         (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
3030         * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
3031         operator[].
3033 2021-07-01  Jonathan Wakely  <jwakely@redhat.com>
3035         * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
3036         * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
3037         Add some more predefined macros.
3038         * include/bits/fs_fwd.h: Move @addtogroup commands inside
3039         namespaces. Add better documentation.
3040         * include/bits/fs_path.h: Likewise.
3041         * include/experimental/bits/fs_fwd.h: Likewise.
3042         * include/experimental/bits/fs_path.h: Likewise.
3043         * include/ext/throw_allocator.h: Fix typo and improve docs.
3044         * include/std/chrono: Move @addtogroup commands.
3045         * include/std/system_error: Move @addtogroup commands.
3046         * libsupc++/exception: Improve documentation.
3047         * libsupc++/exception.h: Add @since documentation.
3049 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
3051         PR libstdc++/101258
3052         * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
3053         (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
3054         (PREDEFINED): Add/fix some more macros that need to be expanded.
3055         * include/bits/random.h: Stop Doxygen from documenting internal
3056         implementation details.
3057         * include/bits/random.tcc: Likewise.
3058         * include/bits/this_thread_sleep.h: Fix @file name.
3059         * include/experimental/bits/simd.h: Add to Doxygen group. Do not
3060         document internal implementation details.
3061         * include/experimental/bits/simd_detail.h: Do not document
3062         internal implementation details.
3063         * include/experimental/simd: Define Doxygen groups.
3064         * include/experimental/type_traits: Improve documentation for
3065         the header file. Define groups. Use @since commands.
3066         * include/std/scoped_allocator (scoped_allocator_adaptor): Move
3067         declaration before undocumented region.
3068         * include/std/type_traits (true_type, false_type): Use using
3069         declaration instead of typedef.
3070         (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
3071         (is_nothrow_invocable_r_v): Move definitions next to other C++17
3072         variable templates.
3073         Do not document internal implementation details. Move misplaced
3074         group-end command. Define group for variable templates.
3075         * include/std/variant: Do not document internal implementation
3076         details.
3077         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3078         line number.
3080 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
3082         * include/experimental/simd: Do not define anything pre-C++17.
3084 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
3086         * include/bits/random.tcc [__cpp_inline_variables]: Remove
3087         redundant definitions of static constexpr member variables.
3088         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3089         line number.
3091 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
3093         * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
3094         explicit instantiation declarations.
3095         * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
3096         explicit instantiation definitions.
3098 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
3100         PR libstdc++/97088
3101         * testsuite/17_intro/names.cc: Fix #if condition for names used
3102         by newlib headers.
3104 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
3106         PR libstdc++/101236
3107         * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
3108         Fail gracefully if element_type is incomplete.
3109         * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
3110         the standard doesn't require this test to work for array types.
3111         * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
3112         types can be used with array specialization.
3113         * testsuite/20_util/unique_ptr/101236.cc: New test.
3115 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
3117         * doc/xml/manual/intro.xml: Document LWG 415 change.
3118         * doc/html/manual/bugs.html: Regenerate.
3119         * include/bits/istream.tcc (ws): Create sentry and catch
3120         exceptions.
3121         * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
3122         * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
3124 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3126         * include/bits/ostream.tcc (basic_ostream::write): Call sputn
3127         directly instead of using _M_write. Do setstate(__err) all
3128         outside the try-catch block.
3129         * include/std/ostream (basic_ostream::_M_write): Declare
3130         private. Use __ostream_insert. Do not define for the versioned
3131         namespace.
3133 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3135         * doc/xml/manual/intro.xml: Document LWG 581 change.
3136         * doc/html/manual/bugs.html: Regenerate.
3137         * include/bits/basic_ios.tcc: Whitespace.
3138         * include/bits/ostream.tcc (basic_ostream::flush()): Construct
3139         sentry.
3140         * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
3141         additional cases.
3142         * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
3143         Likewise.
3144         * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
3145         * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
3146         Likewise.
3148 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3150         * include/bits/ostream.tcc (sentry): Only set failbit if badbit
3151         is set, not if eofbit is set.
3152         (tellp, seekp, seekp): Create sentry object. Do not set badbit
3153         on exceptions.
3154         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
3155         Adjust expected behaviour.
3156         * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
3157         Likewise.
3158         * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
3159         Likewise.
3160         * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
3161         Likewise.
3162         * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
3163         * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
3164         * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
3165         * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
3167 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3169         * include/std/syncstream (basic_syncbuf::swap()): Remove
3170         noexcept, as per LWG 3498.
3172 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3174         PR libstdc++/97088
3175         * testsuite/17_intro/names.cc: Undef more names for newlib and
3176         also for arm-none-linux-gnueabi.
3177         * testsuite/experimental/names.cc: Disable PCH.
3179 2021-06-25  Matthias Kretz  <m.kretz@gsi.de>
3181         * include/experimental/bits/simd.h (__bit_cast): Implement via
3182         __builtin_bit_cast #if available.
3183         (__proposed::simd_bit_cast): Add overloads for simd and
3184         simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
3185         available), which return an object of the requested type with
3186         the same bits as the argument.
3187         * include/experimental/bits/simd_math.h: Use simd_bit_cast
3188         instead of __bit_cast to allow casts to fixed_size_simd.
3189         (copysign): Remove branch that was only required if __bit_cast
3190         cannot be constexpr.
3191         * testsuite/experimental/simd/tests/bits/test_values.h: Switch
3192         from __bit_cast to __proposed::simd_bit_cast since the former
3193         will not cast fixed_size objects anymore.
3195 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3197         * include/experimental/bits/simd_math.h
3198         (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
3199         (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
3200         __arg3.
3202 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3204         * include/experimental/bits/simd.h (__execute_on_index_sequence)
3205         (__execute_on_index_sequence_with_return)
3206         (__call_with_n_evaluations, __call_with_subscripts): Add flatten
3207         attribute.
3209 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3211         * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
3212         (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
3213         roundp[sd] calls.
3215 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3217         * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
3218         implementation doesn't require a _VecBltnBtmsk ABI tag, it
3219         requires either a 64-Byte input (in which case AVX512F must be
3220         available) or AVX512VL.
3222 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3224         * include/experimental/bits/simd_math.h: Undefine internal
3225         macros after use.
3226         (frexp): Move #if to a more sensible position and reformat
3227         preceding code.
3228         (logb): Call _SimdImpl::_S_logb for fixed_size instead of
3229         duplicating the code here.
3230         (modf): Simplify condition.
3232 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3234         * include/experimental/bits/simd_math.h (fabs): Remove
3235         fabs(simd<integral>) overload.
3237 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3239         * include/experimental/bits/simd_converter.h
3240         (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
3241         * include/experimental/bits/simd_fixed_size.h
3242         (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
3243         arguments by const-ref.
3244         (_S_masked_unary): Pass _SimdTuple by const-ref.
3246 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3248         * include/experimental/bits/simd_fixed_size.h
3249         (_AbisInSimdTuple): Removed.
3251 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3253         * include/experimental/bits/simd.h: Add missing operator~
3254         overload for simd<floating-point> to __float_bitwise_operators.
3255         * include/experimental/bits/simd_builtin.h
3256         (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
3257         implement complement for floating-point vectors.
3258         * include/experimental/bits/simd_fixed_size.h
3259         (_SimdImplFixedSize::_S_copysign): New function, forwarding to
3260         copysign implementation of _SimdTuple members.
3261         * include/experimental/bits/simd_math.h (copysign): Call
3262         _SimdImpl::_S_copysign for fixed_size arguments. Simplify
3263         generic copysign implementation using the new ~ operator.
3265 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
3267         * testsuite/experimental/simd/README.md: Fix typos.
3269 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
3271         * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
3272         Add noexcept.
3273         * include/bits/unique_ptr.h (unique_ptr::operator*): Add
3274         conditional noexcept as per LWG 2762.
3275         * testsuite/20_util/shared_ptr/observers/array.cc: Check that
3276         dereferencing cannot throw.
3277         * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
3278         * testsuite/20_util/optional/observers/lwg2762.cc: New test.
3279         * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
3281 2021-06-23  Patrick Palka  <ppalka@redhat.com>
3283         PR c++/101174
3284         * testsuite/23_containers/multiset/cons/deduction.cc:
3285         Uncomment CTAD example that was rejected by this bug.
3286         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3288 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
3290         * include/std/chrono (chrono::year::is_leap()): Fix incorrect
3291         logic in comment.
3293 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
3295         * testsuite/experimental/simd/README.md: New file.
3297 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
3299         * testsuite/experimental/simd/driver.sh: Rewrite output
3300         verbosity logic. Add -p/--percentage option. Allow -v/--verbose
3301         to be used twice. Add -x and -o short options. Parse long
3302         options with = instead of separating space generically. Parce
3303         contracted short options. Make unrecognized options an error.
3304         If same-line output is active, trap on EXIT to increment the
3305         progress (only with --percentage), erase the line and print the
3306         current status.
3307         * testsuite/experimental/simd/generate_makefile.sh: Initialize
3308         helper files for progress account keeping. Update help target
3309         for changes to DRIVEROPTS.
3311 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
3313         * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
3314         and associated warning.
3315         * testsuite/Makefile.in: Regenerate.
3317 2021-06-23  Cassio Neri  <cassio.neri@gmail.com>
3318             Jonathan Wakely  <jwakely@redhat.com>
3319             Ulrich Drepper  <drepper@redhat.com>
3321         * include/std/chrono (chrono::year::is_leap()): Optimize.
3323 2021-06-23  Patrick Palka  <ppalka@redhat.com>
3325         PR c++/86439
3326         * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
3327         CTAD examples.
3328         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3329         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3330         Mention one of the replaced examples is broken due to PR101174.
3331         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3332         * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
3333         ambiguous CTAD examples.
3334         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3335         Likewise.
3336         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3337         Likewise.
3338         * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
3340 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
3342         * include/std/mutex (__detail::__try_lock_impl): Rename
3343         parameter to avoid clashing with newlib's __lockable macro.
3344         (try_lock): Add 'inline' specifier.
3345         * testsuite/17_intro/names.cc: Add check for __lockable.
3346         * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
3348 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
3349             Matthias Kretz  <m.kretz@gsi.de>
3351         * include/std/mutex (lock): Replace recursion with iteration
3352         when lockables all have the same type.
3353         (__detail::__try_lock_impl): Likewise. Pass lockables as
3354         parameters, instead of a tuple. Always lock the first one, and
3355         recurse for the rest.
3356         (__detail::__lock_impl): Adjust call to __try_lock_impl.
3357         (__detail::__try_to_lock): Remove.
3358         * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
3359         * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
3360         arguments.
3361         * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
3362         std::try_lock.
3363         * testsuite/30_threads/try_lock/5.cc: New test.
3365 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
3367         * include/std/memory (declare_reachable, undeclare_reachable)
3368         (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
3369         (pointer_safety): Only define for C++11 to C++20 inclusive.
3370         * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
3372 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
3374         * include/bits/random.h (seed_seq): Constrain initializer-list
3375         constructor.
3376         * include/bits/random.tcc (seed_seq): Add template parameter.
3377         * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
3378         for noexcept.
3379         * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
3380         constraints.
3382 2021-06-22  Thomas Rodgers  <rodgert@appliantology.com>
3384         PR libstdc++/100806
3385         * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
3386         Force _M_release() to wake all waiting threads.
3387         * testsuite/30_threads/semaphore/100806.cc: New test.
3389 2021-06-21  Jonathan Wakely  <jwakely@redhat.com>
3391         * include/std/mutex (__try_to_lock): Move to __detail namespace.
3392         (struct __try_lock_impl): Replace with ...
3393         (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
3394         function templates to implement std::try_lock.
3395         (try_lock): Use new __try_lock_impl.
3396         (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
3397         template to implement std::lock.
3398         (lock): Use __lock_impl.
3400 2021-06-21  Patrick Palka  <ppalka@redhat.com>
3402         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
3404 2021-06-20  Patrick Palka  <ppalka@redhat.com>
3406         * include/std/ranges (__non_propagating_cache::operator bool):
3407         Define for split_view::begin().
3408         (split_view): Define as per P2210.
3409         (views::__detail::__can_split_view): Define.
3410         (views::_Split, views::split): Define.
3411         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3412         Test views::split.
3413         * testsuite/std/ranges/adaptors/split.cc: New test.
3414         * testsuite/std/ranges/p2325.cc (test08a): New test.
3415         * testsuite/std/ranges/p2367.cc (test01): Test views::split.
3417 2021-06-20  Patrick Palka  <ppalka@redhat.com>
3419         * include/std/ranges: Rename views::split to views::lazy_split,
3420         split_view to lazy_split_view, etc. throughout.
3421         * testsuite/std/ranges/*: Likewise.
3422         * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
3423         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
3425 2021-06-20  Patrick Palka  <ppalka@redhat.com>
3427         * include/std/ranges (split_view::_OuterIter::__at_end):
3428         Check _M_trailing_empty.
3429         (split_view::_OuterIter::_M_trailing_empty): Define this
3430         data member.
3431         (split_view::_OuterIter::operator++): Set _M_trailing_empty
3432         appropriately.
3433         (split_view::_OuterIter::operator==): Compare
3434         _M_trailing_empty.
3435         * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
3436         split parts instead of one.
3437         * testsuite/std/ranges/adaptors/split.cc (test11): New test.
3439 2021-06-20  Patrick Palka  <ppalka@redhat.com>
3441         * include/std/ranges (split_view::_InnerIter::base): Define as
3442         per P2210.
3444 2021-06-19  Patrick Palka  <ppalka@redhat.com>
3446         * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
3447         Consider _Base instead of _Vp as per LWG 3555.
3448         (elements_view::_Iterator::_S_iter_concept): Likewise.
3450 2021-06-19  Patrick Palka  <ppalka@redhat.com>
3452         * include/std/ranges (split_view::_OuterIter::value_type::begin):
3453         Remove the non-const overload, and remove the copyable constraint
3454         on the const overload as per LWG 3553.
3456 2021-06-19  Patrick Palka  <ppalka@redhat.com>
3458         * include/bits/stl_iterator.h
3459         (__detail::__common_iter_use_postfix_proxy): Add
3460         move_constructible constraint as per LWG 3546.
3461         (common_iterator::__postfix_proxy): Adjust initializer of
3462         _M_keep as per LWG 3546.
3464 2021-06-18  Patrick Palka  <ppalka@redhat.com>
3466         PR libstdc++/100387
3467         * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
3468         to limit comparison complexity to 3*N/2.
3469         (__minmax_element_fn::operator()): Likewise.
3470         (shift_right): Avoid premature std::move of __result.
3471         * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
3472         New tests.
3473         * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
3474         Likewise.
3476 2021-06-18  Patrick Palka  <ppalka@redhat.com>
3478         * include/std/concepts (convertible_to): Just use declval as per
3479         LWG 3557.
3481 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
3483         PR libstdc++/95833
3484         * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
3485         incorrect static_assert with ones matching the 'Mandates'
3486         conditions in the standard.
3487         * testsuite/26_numerics/reduce/95833.cc: New test.
3489 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
3491         * testsuite/21_strings/basic_string/cons/char/1.cc: Use
3492         diagnostic pragma to suppress -Wstringop-overread error.
3494 2021-06-18  Patrick Palka  <ppalka@redhat.com>
3496         * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
3497         (find_if, __find_if_not_fn, find_if_not, _in_in_result)
3498         (__mismatch_fn, mismatch, __search_fn, search): Move to ...
3499         * include/bits/ranges_util.h: ... here.
3500         * include/std/ranges (__detail::find, __detail::find_if)
3501         (__detail::find_if_not, __detail::mismatch): Remove.
3502         (filter_view): Use ranges::find_if instead.
3503         (drop_while_view): Use ranges::find_if_not instead.
3504         (split_view): Use ranges::find and ranges::mismatch instead.
3506 2021-06-18  Patrick Palka  <ppalka@redhat.com>
3508         * include/bits/iterator_concepts.h (weakly_incrementable): Remove
3509         default_initializable requirement.
3510         * include/bits/ranges_base.h (ranges::view): Likewise.
3511         * include/bits/ranges_util.h (subrange): Constrain the default
3512         ctor.
3513         * include/bits/stl_iterator.h (back_insert_iterator): Remove the
3514         default ctor.
3515         (front_insert_iterator): Likewise.
3516         (insert_iterator): Likewise.  Remove NSDMIs.
3517         (common_iterator): Constrain the default ctor.
3518         (counted_iterator): Likewise.
3519         * include/bits/stream_iterator.h (ostream_iterator): Remove the
3520         default ctor.
3521         * include/std/ranges (__detail::__box::operator=): Handle
3522         self-assignment in the primary template.
3523         (__detail::__box): In the partial specialization: adjust
3524         constraints as per P2325.  Add specialized operator= for the
3525         case when the wrapped type is not copyable.  Constrain the
3526         default ctor.  Avoid list-initialization.
3527         (single_view): Constraint the default ctor.
3528         (iota_view): Relax semiregular constraint to copyable.
3529         Constrain the default ctor.
3530         (iota_view::_Iterator): Constraint the default ctor.
3531         (basic_istream_view): Remove the default ctor.  Remove NSDMIs.
3532         Remove redundant checks for empty _M_stream.
3533         (basic_istream_view::_Iterator): Likewise.
3534         (ref_view): Remove the default ctor.  Remove NSDMIs.
3535         (ref_view::_Iterator): Constrain the default ctor.
3536         (__detail::__non_propagating_cache::operator=): Define overload
3537         for assigning from a value of the underlying type.
3538         (filter_view): Likewise.
3539         (filter_view::_Iterator): Likewise.
3540         (transform_view): Likewise.
3541         (transform_view::_Iterator): Likewise.
3542         (take_view): Likewise.
3543         (take_view::_Iterator): Likewise.
3544         (take_while_view): Likewise.
3545         (take_while_view::_Iterator): Likewise.
3546         (drop_while_view): Likewise.
3547         (drop_while_view::_Iterator): Likewise.
3548         (join_view): Likewise.
3549         (split_view::_OuterIter::__current): Adjust after changing the
3550         type of _M_current.
3551         (split_view::_M_current): Wrap it in a __non_propagating_cache.
3552         (split_view::split_view): Constrain the default ctor.
3553         (common_view): Constrain the default ctor.
3554         (reverse_view): Likewise.
3555         (elements_view): Likewise.
3556         * include/std/span (enable_view<span<_ElementType, _Extent>>):
3557         Define this partial specialization to true unconditionally.
3558         * include/std/version (__cpp_lib_ranges): Adjust value.
3559         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
3560         Don't attempt to default construct a back_insert_iterator.
3561         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
3562         Don't attempt to default construct a front_insert_iterator.
3563         * testsuite/24_iterators/insert_iterator/constexpr.cc:
3564         Don't attempt to default construct an insert_iterator.
3565         * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
3566         Remove this test for default constructibility of ostream_iterator.
3567         * testsuite/std/ranges/97600.cc: Don't attempt to default
3568         construct a basic_istream_view.
3569         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
3570         Rename to ...
3571         * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
3572         (test02): Adjust now that __box is copyable-box not
3573         semiregular-box.
3574         (test03): New test.
3575         * testsuite/std/ranges/p2325.cc: New test.
3576         * testsuite/std/ranges/single_view.cc (test06): New test.
3577         * testsuite/std/ranges/view.cc: Adjust now that view doesn't
3578         require default_initializable.
3580 2021-06-17  Jonathan Wakely  <jwakely@redhat.com>
3582         PR libstdc++/91488
3583         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
3584         define when is_constant_evaluated is available.
3585         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
3586         Likewise.
3587         (__constant_string_p, __constant_array_p): Remove.
3588         (char_traits): Use is_constant_evaluated directly.
3589         * include/std/version (__cpp_lib_constexpr_char_traits)
3590         (__cpp_lib_constexpr_string): Only define when
3591         is_constant_evaluated is available.
3593 2021-06-17  Patrick Palka  <ppalka@redhat.com>
3595         PR libstdc++/100940
3596         * include/std/ranges (__adaptor::_Partial): For the "simple"
3597         forwarding partial specializations, also require that
3598         the extra arguments are trivially copyable.
3599         * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
3601 2021-06-17  Patrick Palka  <ppalka@redhat.com>
3603         PR libstdc++/100940
3604         * include/std/ranges (__adaptor::_RangeAdaptor): Document the
3605         template form of _S_has_simple_extra_args.
3606         (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
3607         parameter pack.  Try to treat _S_has_simple_extra_args as a
3608         variable template parameterized by _Args.
3609         (__adaptor::_Partial): Pass _Arg/_Args to the constraint
3610         __adaptor_has_simple_extra_args.
3611         (views::_Take::_S_has_simple_extra_args): Templatize according
3612         to the type of the extra argument.
3613         (views::_Drop::_S_has_simple_extra_args): Likewise.
3614         (views::_Split::_S_has_simple_extra_args): Define.
3615         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3616         Adjust after changes to _S_has_simple_extra_args mechanism.
3617         (test03): Define.
3619 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
3621         * include/bits/iterator_concepts.h (__decay_copy): Name type.
3623 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
3625         * include/bits/ranges_base.h (ranges::begin, ranges::end)
3626         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3627         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3628         (ranges::empty, ranges::data, ranges::cdata): Remove final
3629         keywords and deleted operator& overloads.
3630         * testsuite/24_iterators/customization_points/iter_move.cc: Use
3631         new is_customization_point_object function.
3632         * testsuite/24_iterators/customization_points/iter_swap.cc:
3633         Likewise.
3634         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
3635         Likewise.
3636         * testsuite/std/ranges/access/begin.cc: Likewise.
3637         * testsuite/std/ranges/access/cbegin.cc: Likewise.
3638         * testsuite/std/ranges/access/cdata.cc: Likewise.
3639         * testsuite/std/ranges/access/cend.cc: Likewise.
3640         * testsuite/std/ranges/access/crbegin.cc: Likewise.
3641         * testsuite/std/ranges/access/crend.cc: Likewise.
3642         * testsuite/std/ranges/access/data.cc: Likewise.
3643         * testsuite/std/ranges/access/empty.cc: Likewise.
3644         * testsuite/std/ranges/access/end.cc: Likewise.
3645         * testsuite/std/ranges/access/rbegin.cc: Likewise.
3646         * testsuite/std/ranges/access/rend.cc: Likewise.
3647         * testsuite/std/ranges/access/size.cc: Likewise.
3648         * testsuite/std/ranges/access/ssize.cc: Likewise.
3649         * testsuite/util/testsuite_iterators.h
3650         (is_customization_point_object): New function.
3652 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
3654         * include/bits/ranges_base.h (ranges::begin, ranges::end)
3655         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3656         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3657         (ranges::empty, ranges::data, ranges::cdata): Make types final.
3658         Add deleted operator& overloads.
3659         (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3660         Likewise.
3661         * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3662         ill-formed & expressions with using-declarations. Add checks for
3663         other function objects.
3665 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
3667         * include/bits/ranges_util.h (view_interface): Add noexcept to
3668         empty, operator bool, data and size members.
3669         (subrange): Add noexcept to constructors.
3670         * include/std/ranges (single_view, ref_view): Add noexcept to
3671         constructors.
3672         (views::single, views::all): Add noexcept.
3673         * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3674         * testsuite/std/ranges/single_view.cc: Likewise.
3676 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
3678         * include/bits/ranges_util.h (subrange): Add __size_type typedef
3679         and use it to simplify declarations.
3680         (subrange(i, s, n)): Remove assertion.
3681         * testsuite/std/ranges/subrange/constexpr.cc: New test.
3683 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
3685         * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3686         Replace with function object.
3687         (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3688         __decay_copy unqualified.
3689         * include/bits/ranges_base.h (__member_end, __adl_end):
3690         Likewise. Use __range_iter_t for type of ranges::begin.
3691         (__member_rend): Use correct value category for rbegin argument.
3692         (__member_data): Use __decay_copy unqualified.
3693         (__begin_data): Use __range_iter_t for type of ranges::begin.
3695 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
3697         * include/bits/ranges_base.h (ranges::empty): Check whether
3698         conversion to bool can throw.
3699         * testsuite/std/ranges/access/empty.cc: Check for correct
3700         noexcept-specifier.
3702 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
3704         PR libstdc++/100894
3705         * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
3706         use the type if it's a reference.
3707         * testsuite/20_util/common_reference/100894.cc: New test.
3709 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
3711         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3712         Add dg-require-filesystem-ts directive.
3714 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
3716         PR libstdc++/101034
3717         * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
3718         (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
3719         to use lvalue.
3720         * testsuite/20_util/any/cons/101034.cc: New test.
3722 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
3724         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
3725         -std=gnu++17 option.
3727 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
3729         PR libstdc++/101056
3730         * libsupc++/compare (compare_partial_order_fallback): Add
3731         constraint using reversed parameter order, as per LWG 3465.
3732         * testsuite/18_support/comparisons/algorithms/fallback.cc:
3733         Adjust expected result.
3735 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
3737         * libsupc++/compare (__decayed_same_as): New helper concept.
3738         (strong_order, weak_order, partial_order): Constrain with new
3739         concept instead of using static_assert.
3740         (compare_strong_order_fallback, compare_weak_order_fallback)
3741         (compare_partial_order_fallback): Likewise. Do not deduce return
3742         types. Remove redundant if-constexpr checks.
3743         * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
3745 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
3747         PR libstdc++/101055
3748         * include/std/tuple: Use reserved form of attribute name.
3749         * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
3750         check for no_unique_address.
3751         * testsuite/17_intro/headers/c++2014/all_attributes.cc:
3752         Likewise.
3753         * testsuite/17_intro/headers/c++2017/all_attributes.cc:
3754         Likewise.
3756 2021-06-11  Jonathan Wakely  <jwakely@redhat.com>
3758         * include/bits/fs_path.h (operator==, operator<=>): Use new
3759         _S_compare function.
3760         (path::_S_compare): New function to call path::compare in a
3761         context where path::iterator is complete.
3762         * include/experimental/bits/fs_path.h (operator<, operator==):
3763         Define after path::iterator is complete.
3764         * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
3765         test.
3766         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3767         New test.
3769 2021-06-09  Thomas Rodgers  <rodgert@appliantology.com>
3771         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
3772         test logic with constexpr check for is_always_lock_free.
3774 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
3776         PR libstdc++/100982
3777         * include/std/optional (optional::operator=(const optional<U>&)):
3778         Fix value category used in is_assignable check.
3779         * testsuite/20_util/optional/assignment/100982.cc: New test.
3781 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
3783         * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
3784         * include/bits/iterator_concepts.h (indirectly_readable_traits):
3785         Add LWG issue number to comment.
3786         * include/std/memory_resource (polymorphic_allocator::release):
3787         Deprecate.
3788         * testsuite/20_util/allocator/requirements/typedefs.cc: Add
3789         dg-warning for deprecation. Also check std::allocator<void>.
3791 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
3793         PR libstdc++/100889
3794         * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
3795         Change parameter type from _Tp to _Tp*.
3796         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
3797         coverage of types tested.
3799 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
3801         * include/std/barrier (__tree_barrier::_M_arrive): Remove
3802         unnecessary hasher instantiation.
3804 2021-06-08  Jonathan Wakely  <jwakely@redhat.com>
3806         * include/experimental/propagate_const (swap): Constrain.
3807         * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
3809 2021-06-07  Avi Kivity  <avi@scylladb.com>
3811         PR libstdc++/100900
3812         * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
3813         Add missing typename.
3815 2021-06-07  Jonathan Wakely  <jwakely@redhat.com>
3817         PR libstdc++/98842
3818         * include/std/optional (operator<=>(const optional<T>& const U&)):
3819         Add missing constraint and add workaround for template
3820         recursion.
3821         * testsuite/20_util/optional/relops/three_way.cc: Check that
3822         type without equality comparison cannot be compared when wrapped
3823         in std::optional.
3825 2021-06-05  Jonathan Wakely  <jwakely@redhat.com>
3827         PR libstdc++/100824
3828         * include/bits/ranges_base.h (_SSize): Return signed type.
3829         * testsuite/std/ranges/access/ssize.cc: Check with __int128.
3831 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
3833         * include/bits/ranges_base.h (_SSize): Return the result of
3834         ranges::size converted to the wider of make-signed-like-t<S> and
3835         ptrdiff_t, rather than the ranges different type.
3836         * testsuite/std/ranges/access/ssize.cc: Adjust expected result
3837         for an iota_view that uses an integer class type for its
3838         difference_type.
3840 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
3842         PR libstdc++/100824
3843         * include/bits/ranges_base.h (__member_data): Use __decay_copy.
3844         * testsuite/std/ranges/access/data.cc: Add testcase from PR.
3846 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
3848         PR libstdc++/100824
3849         * include/bits/iterator_concepts.h (__detail::__decay_copy)
3850         (__detail::__member_begin, __detail::__adl_begin): Move to
3851         namespace ranges::__cust_access.
3852         (__detail::__ranges_begin): Likewise, and rename to __begin.
3853         Remove redundant static assertion.
3854         * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
3855         Use lvalue in noexcept specifier.
3856         (__as_const): Add non-deduced parameter for value category.
3857         (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
3858         __as_const.
3859         (__member_size, __adl_size, __member_empty, __size0_empty):
3860         (__eq_iter_empty, __adl_data): Use lvalue objects in
3861         requirements.
3862         (__sentinel_size): Likewise. Add check for conversion to
3863         unsigned-like.
3864         (__member_data): Allow non-lvalue types to satisfy the concept,
3865         but use lvalue object in requirements.
3866         (_Size, _SSize): Remove forwarding to always use an lvalue.
3867         (_Data): Likewise. Add static assertion for arrays.
3868         * testsuite/std/ranges/access/cdata.cc: Adjust expected
3869         behaviour for rvalues. Add negative tests for ill-formed
3870         expressions.
3871         * testsuite/std/ranges/access/data.cc: Likewise.
3872         * testsuite/std/ranges/access/empty.cc: Adjust expected
3873         behaviour for rvalues.
3874         * testsuite/std/ranges/access/size.cc: Likewise.
3876 2021-06-04  Tim Adye  <Tim.Adye@cern.ch>
3878         * include/std/any (any::_Manager::_S_access): New static
3879         function to access the contained value.
3880         (any::emplace, __any_caster): Use _S_access member of the
3881         manager type.
3883 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
3885         * doc/xml/manual/status_cxx2020.xml:
3886         * doc/html/*: Regenerate.
3887         * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
3888         Define.
3889         * include/std/version (__cpp_lib_generic_unordered_lookup):
3890         Define.
3891         * testsuite/23_containers/unordered_map/operations/1.cc: Check
3892         feature test macro.
3893         * testsuite/23_containers/unordered_set/operations/1.cc:
3894         Likewise.
3896 2021-06-03  Patrick Palka  <ppalka@redhat.com>
3898         * include/bits/ranges_algo.h (__detail::__can_reread_output):
3899         Factor out this concept from ...
3900         (__unique_copy_fn::operator()): ... here.  Use the concept
3901         throughout.
3902         * testsuite/std/ranges/range.cc: Remove now ill-formed use
3903         of range_value_t on an output_range.
3904         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3905         Define value_type, pointer and reference member types to void.
3907 2021-06-03  Patrick Palka  <ppalka@redhat.com>
3909         PR libstdc++/100577
3910         * include/std/ranges (_RangeAdaptorClosure): Document
3911         _S_has_simple_call_op mechanism.
3912         (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
3913         (__closure_has_simple_call_op): New concept.
3914         (__adaptor_has_simple_extra_args): Likewise.
3915         (_Partial<_Adaptor, _Args...>): New partial specialization.
3916         (_Partial<_Adaptor, _Arg>): Likewise.
3917         (_Pipe<_Lhs, _Rhs>): Likewise.
3918         (views::_All::_S_has_simple_call_op): Define to true.
3919         (views::_Filter::_S_has_simple_extra_args): Likewise.
3920         (views::_Transform::_S_has_simple_extra_args): Likewise.
3921         (views::_Take::_S_has_simple_extra_args): Likewise.
3922         (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
3923         (views::_Drop::_S_has_simple_extra_args): Likewise.
3924         (views::_DropWhile::_S_has_simple_extra_args): Likewise.
3925         (views::_Join::_S_has_simple_call_op): Likewise.
3926         (views::_Split): Document why we don't define
3927         _S_has_simple_extra_args to true for this adaptor.
3928         (views::_Common::_S_has_simple_call_op): Define to true.
3929         (views::_Reverse::_S_has_simple_call_op): Likewise.
3930         (views::_Elements::_S_has_simple_call_op): Likewise.
3931         * testsuite/std/ranges/adaptors/100577.cc: New test.
3933 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
3935         PR libstdc++/100863
3936         PR libstdc++/65816
3937         * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
3938         Value-initialize subobject.
3939         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
3940         Remove XFAIL.
3941         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
3942         Remove XFAIL.
3944 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
3946         PR libstdc++/96088
3947         * testsuite/23_containers/unordered_map/96088.cc: Adjust
3948         expected number of allocations.
3949         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3951 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
3953         * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
3954         * doc/xml/manual/status_cxxtr1.xml: Likewise.
3955         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3956         * doc/html/*: Regenerate.
3958 2021-06-01  Patrick Palka  <ppalka@redhat.com>
3960         PR c++/65816
3961         * testsuite/23_containers/deque/allocator/default_init.cc,
3962         testsuite/23_containers/forward_list/allocator/default_init.cc,
3963         testsuite/23_containers/list/allocator/default_init.cc,
3964         testsuite/23_containers/map/allocator/default_init.cc,
3965         testsuite/23_containers/set/allocator/default_init.cc,
3966         testsuite/23_containers/vector/allocator/default_init.cc,
3967         testsuite/23_containers/vector/bool/allocator/default_init.cc:
3968         Remove xfail.
3970 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
3972         * testsuite/23_containers/unordered_map/96088.cc: Change
3973         effective target to c++17.
3974         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3976 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
3978         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
3979         isblank for C++11 and later.
3981 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
3983         PR libstdc++/100833
3984         * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
3985         Fix return value for no-op case.
3986         * testsuite/24_iterators/range_operations/advance.cc: Test
3987         return values of three-argument overload.
3989 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
3991         PR libstdc++/99453
3992         * python/Makefile.am: Use archive name for printer hook if no
3993         dynamic library name is available.
3994         * python/Makefile.in: Regenerate.
3996 2021-05-30  Gerald Pfeifer  <gerald@pfeifer.com>
3998         * doc/xml/manual/abi.xml: Remove dead reference to "Intel
3999         Compilers for Linux: Compatibility with GNU Compilers" article.
4000         * doc/html/manual/abi.html: Regenerate.
4002 2021-05-26  François Dumont  <fdumont@gcc.gnu.org>
4004         * include/debug/formatter.h
4005         (_Error_formatter::_Parameter::_Named): New.
4006         (_Error_formatter::_Parameter::_Type): Inherit latter.
4007         (_Error_formatter::_Parameter::_M_integer): Likewise.
4008         (_Error_formatter::_Parameter::_M_string): Likewise.
4009         * src/c++11/debug.cc: Include <cstring>.
4010         (_Print_func_t): New.
4011         (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
4012         (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
4013         (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
4014         (print_type): Rename in...
4015         (print_type_info): ...this. Use pretty_print.
4016         (print_address, print_integer): New.
4017         (print_named_name, print_iterator_constness, print_iterator_state): New.
4018         (print_iterator_seq_type): New.
4019         (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
4020         (print_field): Use latters.
4021         (print_quoted_named_name, print_type_type, print_type, print_instance): New.
4022         (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
4023         Change signature to...
4024         (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
4025         ...this and adapt. Remove intermediate buffer to render input string.
4026         (print_string(PrintContext&, const char*, ptrdiff_t)): New.
4028 2021-05-26  Jonathan Wakely  <jwakely@redhat.com>
4030         PR libstdc++/100768
4031         * include/bits/ranges_base.h (advance, distance, next, prev):
4032         Replace function templates with function objects.
4033         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4034         Adjust for changes to function objects.
4035         * testsuite/std/ranges/adaptors/elements.cc: Add using
4036         declarations for names from namespace ranges.
4037         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
4038         * testsuite/24_iterators/range_operations/100768.cc: New test.
4040 2021-05-24  François Dumont  <fdumont@gcc.gnu.org>
4042         PR libstdc++/96088
4043         * include/bits/hashtable_policy.h (_Select2nd): New.
4044         (_NodeBuilder<>): New.
4045         (_ReuseOrAllocNode<>::operator()): Use variadic template args.
4046         (_AllocNode<>::operator()): Likewise.
4047         * include/bits/hashtable.h
4048         (_Hashtable<>::__node_builder_t): New.
4049         (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
4050          New.
4051         (_Hashtable<>::_S_forward_key): New.
4052         (_Hashtable<>::_M_insert): Use latter.
4053         (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
4054         Instantiate node first, compute hash code second.
4055         * testsuite/23_containers/unordered_map/96088.cc: New test.
4056         * testsuite/23_containers/unordered_multimap/96088.cc: New test.
4057         * testsuite/23_containers/unordered_multiset/96088.cc: New test.
4058         * testsuite/23_containers/unordered_set/96088.cc: New test.
4059         * testsuite/util/replacement_memory_operators.h
4060         (counter::_M_increment): New.
4061         (counter::_M_decrement): New.
4062         (counter::reset()): New.
4064 2021-05-24  Patrick Palka  <ppalka@redhat.com>
4066         PR libstdc++/100479
4067         * include/std/ranges (__detail::__non_propagating_cache): Move
4068         definition up to before that of _CachedPosition.  Make base
4069         class _Optional_base protected instead of private.  Add const
4070         overload for operator*.
4071         (__detail::_CachedPosition): Rewrite the partial specialization
4072         for forward ranges as a derived class of __non_propagating_cache.
4073         Remove the size constraint on the partial specialization for
4074         random access ranges.  Add copy/move/copy-assignment/move-assignment
4075         members to the offset partial specialization for random
4076         access ranges that propagate the cached value but additionally
4077         invalidate it in the source object on move.
4078         * testsuite/std/ranges/adaptors/100479.cc: New test.
4080 2021-05-24  Jonathan Wakely  <jwakely@redhat.com>
4082         * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
4083         call to ranges::next.
4084         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
4085         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
4086         Likewise.
4087         * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
4088         swap_ranges.
4090 2021-05-21  Patrick Palka  <ppalka@redhat.com>
4092         PR libstdc++/100606
4093         * include/std/ranges (drop_while_view::begin): Assert the
4094         precondition added by LWG 3490.
4096 2021-05-21  Patrick Palka  <ppalka@redhat.com>
4098         PR libstdc++/100690
4099         * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
4100         Split out this member function from ...
4101         (iota_view::_Sentinel::operator-): ... here, for sake of access
4102         control.
4103         * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
4105 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
4107         * include/bits/random.tcc (__representable_as_double)
4108         (__p1_representable_as_double): Add "" to static asserts.
4110 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
4112         PR libstdc++/100676
4113         * include/bits/c++config (__glibcxx_assert_1): Rename to ...
4114         (__glibcxx_constexpr_assert): ... this.
4115         (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
4116         (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
4117         or __glibcxx_assert_impl.
4118         (__glibcxx_assert_2): Remove
4119         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
4120         __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
4121         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4122         Adjust expected error.
4123         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4124         Likewise.
4125         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4126         Likewise.
4127         Likewise.
4128         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4129         Likewise.
4130         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4131         Likewise.
4132         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4133         Likewise.
4134         * testsuite/23_containers/span/back_neg.cc: Likewise.
4135         * testsuite/23_containers/span/front_neg.cc: Likewise.
4136         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
4138 2021-05-20  Patrick Palka  <ppalka@redhat.com>
4140         PR libstdc++/100639
4141         * include/bits/stl_iterator.h (reverse_iterator::difference_type):
4142         In C++20 mode, define in terms of iter_difference_t as per P0896R4.
4143         (reverse_iterator::reference): Likewise, but with iter_reference_t.
4144         (reverse_iterator::value_type): Likewise, but with iter_value_t.
4145         * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
4146         * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
4148 2021-05-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>
4150         PR libstdc++/100361
4151         * include/std/charconv (to_chars): Hide the overloads for
4152         floating-point types for 16 bit targets.
4153         * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
4154         * testsuite/20_util/to_chars/double.cc: Run this test only on
4155         size32plus targets.
4156         * testsuite/20_util/to_chars/float.cc: Likewise.
4157         * testsuite/20_util/to_chars/long_double.cc: Likewise.
4159 2021-05-18  Patrick Palka  <ppalka@redhat.com>
4161         PR libstdc++/100631
4162         * include/std/ranges (elements_view::_Sentinel::operator-): Use
4163         _M_distance_from in the other operator- overload too.
4164         * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
4166 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
4168         * testsuite/lib/prune.exp: Add note about 'dg-note'.
4170 2021-05-18  Patrick Palka  <ppalka@redhat.com>
4172         PR libstdc++/100475
4173         * include/std/ranges (__box::__box): Use non-list-initialization
4174         in member initializer list of in-place constructor of the
4175         partial specialization for semiregular types.
4176         (__box::operator->): Use std::__addressof.
4177         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
4178         (test02): New test.
4179         * testsuite/std/ranges/single_view.cc (test04): New test.
4181 2021-05-18  Patrick Palka  <ppalka@redhat.com>
4183         PR libstdc++/100621
4184         * include/std/ranges (reverse_view::_S_needs_cached_begin):
4185         Set to true if the underlying non-common random-access range
4186         doesn't have a sized sentinel.
4188 2021-05-18  Patrick Palka  <ppalka@redhat.com>
4190         PR libstdc++/100631
4191         * include/std/ranges (elements_view::_Iterator): Also befriend
4192         _Sentinel<!_Const>.
4193         (elements_view::_Sentinel::_M_equal): Templatize.
4194         (elements_view::_Sentinel::_M_distance_from): Split out from ...
4195         (elements_view::_Sentinel::operator-): ... here.  Depend on
4196         _Base2 instead of _Base in the return type.
4197         * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
4198         New tests.
4200 2021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>
4202         * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
4203         until value change observed.
4204         (__waiter_base::_M_laundered): New member.
4205         (__waiter_base::_M_notify): Check _M_laundered to determine
4206         whether to wake one or all.
4207         (__detail::__atomic_compare): Return true if call to
4208         __builtin_memcmp() == 0.
4209         (__waiter_base::_S_do_spin_v): Adjust predicate.
4210         * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
4211         test.
4213 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
4215         PR libstdc++/100630
4216         * include/experimental/bits/fs_path.h (__is_constructible_from):
4217         Test construction from a const lvalue, not an rvalue.
4218         * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
4219         * testsuite/experimental/filesystem/path/construct/100630.cc:
4220         New test.
4222 2021-05-17  Antony Polukhin  <antoshkka@gmail.com>
4224         PR libstdc++/89728
4225         * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
4226         Declare (but do not define) partial specialization.
4227         * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
4229 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
4231         * include/std/thread (jthread::_S_create): Fix static assert
4232         message.
4233         * testsuite/30_threads/jthread/95989.cc: Re-enable test.
4234         * testsuite/30_threads/jthread/jthread.cc: Do not require
4235         pthread effective target.
4236         * testsuite/30_threads/jthread/2.cc: Moved to...
4237         * testsuite/30_threads/jthread/version.cc: ...here.
4239 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
4241         * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
4242         * doc/Makefile.in: Regenerate.
4243         * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
4244         value.
4245         * scripts/run_doxygen (print_usage): Always print to stdout and
4246         do not exit.
4247         (fail): New function for exiting on error.
4248         (parse_options): Handle --latex_cmd. Do not treat --help the
4249         same as errors. Simplify handling of required arguments.
4251 2021-05-12  Jonathan Wakely  <jwakely@redhat.com>
4253         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4254         Increase dg-timeout-factor to 4. Fix -Wunused-parameter
4255         warnings. Replace bitwise AND with logical AND in loop
4256         condition.
4257         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4258         Replace bitwise AND with logical AND in loop condition.
4259         * testsuite/util/pstl/test_utils.h: Remove unused parameter
4260         names.
4262 2021-05-11  Patrick Palka  <ppalka@redhat.com>
4264         * src/c++17/ryu/LOCAL_PATCHES: Update.
4265         * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
4266         Remove declarations for never-defined functions.
4267         * testsuite/20_util/to_chars/4.cc: New test.
4269 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
4271         * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
4272         alternative for macro.
4273         * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
4274         target keyword.
4275         * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
4276         syntax.
4278 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
4280         * include/bits/allocator.h (allocator<void>) [C++20]: Add
4281         missing noexcept to constructor. Restore missing POCMA and
4282         is_always_equal_traits.
4283         [C++17]: Make construct and destroy members private and
4284         declare allocator_traits as a friend.
4285         * include/bits/memoryfwd.h (allocator_traits): Declare.
4286         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4287         Add nodiscard attribute. Add static assertion for LWG 3307.
4288         * include/ext/new_allocator.h (new_allocator::allocate): Add
4289         static assertion for LWG 3307.
4290         * testsuite/20_util/allocator/void.cc: Check that converting
4291         constructor is noexcept. Check for propagation traits and
4292         size_type and difference_type. Check that pointer and
4293         const_pointer are gone in C++20.
4295 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4297         * include/std/stop_token: Remove TODO comment.
4299 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4301         * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
4302         Initialize a non-reference deleter from an rvalue, as per LWG
4303         3548.
4304         (__shared_ptr::_UniqCompatible): Add missing constraint.
4305         * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
4306         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
4307         constraints.
4309 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4311         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
4312         -std=gnu++17 from dg-options directive.
4313         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
4314         Likewise.
4315         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
4316         Likewise.
4317         * testsuite/17_intro/headers/c++2017/operator_names.cc:
4318         Likewise.
4319         * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
4320         * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
4321         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4322         Likewise.
4323         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
4324         * testsuite/18_support/byte/81076.cc: Likewise.
4325         * testsuite/18_support/byte/global_neg.cc: Likewise.
4326         * testsuite/18_support/byte/ops.cc: Likewise.
4327         * testsuite/18_support/byte/requirements.cc: Likewise.
4328         * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
4329         * testsuite/18_support/launder/1.cc: Likewise.
4330         * testsuite/18_support/launder/nodiscard.cc: Likewise.
4331         * testsuite/18_support/launder/requirements.cc: Likewise.
4332         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
4333         * testsuite/18_support/new_aligned.cc: Likewise.
4334         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
4335         Likewise.
4336         * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
4337         Likewise.
4338         * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
4339         * testsuite/20_util/addressof/requirements/constexpr.cc:
4340         Likewise.
4341         * testsuite/20_util/as_const/1.cc: Likewise.
4342         * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
4343         * testsuite/20_util/bind/83427.cc: Likewise.
4344         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
4345         * testsuite/20_util/bool_constant/requirements.cc: Likewise.
4346         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4347         Likewise.
4348         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
4349         Likewise.
4350         * testsuite/20_util/duration_cast/rounding.cc: Likewise.
4351         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
4352         Likewise.
4353         * testsuite/20_util/from_chars/1_neg.cc: Likewise.
4354         * testsuite/20_util/from_chars/requirements.cc: Likewise.
4355         * testsuite/20_util/function/91456.cc: Likewise.
4356         * testsuite/20_util/function/cons/deduction.cc: Likewise.
4357         * testsuite/20_util/function_objects/83607.cc: Likewise.
4358         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
4359         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
4360         * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
4361         * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
4362         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
4363         Likewise.
4364         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
4365         Likewise.
4366         * testsuite/20_util/has_unique_object_representations/value.cc:
4367         Likewise.
4368         * testsuite/20_util/hash/nullptr.cc: Likewise.
4369         * testsuite/20_util/in_place/requirements.cc: Likewise.
4370         * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
4371         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
4372         Likewise.
4373         * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
4374         Likewise.
4375         * testsuite/20_util/is_aggregate/value.cc: Likewise.
4376         * testsuite/20_util/is_invocable/83395.cc: Likewise.
4377         * testsuite/20_util/is_invocable/91456.cc: Likewise.
4378         * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
4379         Likewise.
4380         * testsuite/20_util/is_invocable/requirements/typedefs.cc:
4381         Likewise.
4382         * testsuite/20_util/is_invocable/value.cc: Likewise.
4383         * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
4384         * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
4385         * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
4386         * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
4387         Likewise.
4388         * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
4389         * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
4390         * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
4391         Likewise.
4392         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
4393         Likewise.
4394         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
4395         * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
4396         Likewise.
4397         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
4398         Likewise.
4399         * testsuite/20_util/is_nothrow_swappable_with/value.cc:
4400         Likewise.
4401         * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
4402         Likewise.
4403         * testsuite/20_util/is_swappable/requirements/typedefs.cc:
4404         Likewise.
4405         * testsuite/20_util/is_swappable/value.cc: Likewise.
4406         * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
4407         Likewise.
4408         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
4409         Likewise.
4410         * testsuite/20_util/is_swappable_with/value.cc: Likewise.
4411         * testsuite/20_util/logical_traits/83134.cc: Likewise.
4412         * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
4413         Likewise.
4414         * testsuite/20_util/logical_traits/requirements/typedefs.cc:
4415         Likewise.
4416         * testsuite/20_util/logical_traits/value.cc: Likewise.
4417         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
4418         * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
4419         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
4420         Likewise.
4421         * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
4422         * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
4423         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
4424         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
4425         * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
4426         Likewise.
4427         * testsuite/20_util/time_point/arithmetic/constexpr.cc:
4428         Likewise.
4429         * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
4430         * testsuite/20_util/to_chars/3.cc: Likewise.
4431         * testsuite/20_util/to_chars/chars_format.cc: Likewise.
4432         * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
4433         * testsuite/20_util/to_chars/requirements.cc: Likewise.
4434         * testsuite/20_util/tuple/78939.cc: Likewise.
4435         * testsuite/20_util/tuple/apply/1.cc: Likewise.
4436         * testsuite/20_util/tuple/apply/2.cc: Likewise.
4437         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
4438         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
4439         * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
4440         * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
4441         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
4442         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
4443         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
4444         Likewise.
4445         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
4446         * testsuite/20_util/void_t/1.cc: Likewise.
4447         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
4448         * testsuite/24_iterators/container_access.cc: Likewise.
4449         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
4450         Likewise.
4451         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
4452         Likewise.
4453         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4454         Likewise.
4455         * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
4456         Likewise.
4457         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
4458         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
4459         Likewise.
4460         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
4461         * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
4462         Likewise.
4463         * testsuite/26_numerics/lcm/1.cc: Likewise.
4464         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4465         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
4466         * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
4467         Likewise.
4468         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
4469         Likewise.
4470         * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
4471         Likewise.
4472         * testsuite/27_io/types/4.cc: Likewise.
4473         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
4474         * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
4475         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4477 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4479         * testsuite/20_util/function_objects/searchers.cc: Remove
4480         -std=gnu++17 from dg-options directive.
4481         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
4482         Likewise.
4483         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4484         Likewise.
4485         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
4486         Likewise.
4487         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
4488         Likewise.
4489         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
4490         Likewise.
4491         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4492         Likewise.
4493         * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
4494         Likewise.
4495         * testsuite/25_algorithms/clamp/1.cc: Likewise.
4496         * testsuite/25_algorithms/clamp/2.cc: Likewise.
4497         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
4498         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
4499         Likewise.
4500         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
4501         Likewise.
4502         * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
4503         * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
4504         Likewise.
4505         * testsuite/25_algorithms/sample/1.cc: Likewise.
4506         * testsuite/25_algorithms/sample/2.cc: Likewise.
4507         * testsuite/25_algorithms/sample/3.cc: Likewise.
4508         * testsuite/25_algorithms/sample/81221.cc: Likewise.
4509         * testsuite/25_algorithms/search/searcher.cc: Likewise.
4510         * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
4511         * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
4512         * testsuite/26_numerics/reduce/1.cc: Likewise.
4513         * testsuite/26_numerics/reduce/2.cc: Likewise.
4514         * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
4515         * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
4516         * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
4518 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4520         * testsuite/23_containers/array/cons/deduction.cc: Remove
4521         -std=gnu++17 from dg-options directive.
4522         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
4523         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4524         Likewise.
4525         * testsuite/23_containers/array/requirements/constexpr_iter.cc:
4526         Likewise.
4527         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4528         Likewise.
4529         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
4530         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
4531         Likewise.
4532         * testsuite/23_containers/forward_list/cons/deduction.cc:
4533         Likewise.
4534         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
4535         Likewise.
4536         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
4537         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
4538         Likewise.
4539         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
4540         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4541         * testsuite/23_containers/map/modifiers/insert/83226.cc:
4542         Likewise.
4543         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4544         Likewise.
4545         * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
4546         * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
4547         Likewise.
4548         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4549         * testsuite/23_containers/multimap/modifiers/extract.cc:
4550         Likewise.
4551         * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
4552         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4553         * testsuite/23_containers/multiset/modifiers/extract.cc:
4554         Likewise.
4555         * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
4556         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
4557         * testsuite/23_containers/queue/deduction.cc: Likewise.
4558         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
4559         Likewise.
4560         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4561         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4562         * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
4563         * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
4564         * testsuite/23_containers/stack/deduction.cc: Likewise.
4565         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
4566         Likewise.
4567         * testsuite/23_containers/unordered_map/cons/deduction.cc:
4568         Likewise.
4569         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4570         Likewise.
4571         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
4572         Likewise.
4573         * testsuite/23_containers/unordered_map/modifiers/merge.cc:
4574         Likewise.
4575         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
4576         Likewise.
4577         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4578         Likewise.
4579         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
4580         Likewise.
4581         * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
4582         Likewise.
4583         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4584         Likewise.
4585         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
4586         Likewise.
4587         * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
4588         Likewise.
4589         * testsuite/23_containers/unordered_set/cons/deduction.cc:
4590         Likewise.
4591         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4592         Likewise.
4593         * testsuite/23_containers/unordered_set/modifiers/merge.cc:
4594         Likewise.
4595         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
4596         Likewise.
4597         * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
4598         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
4599         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
4600         Likewise.
4602 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4604         * testsuite/21_strings/basic_string/79162.cc: Remove
4605         -std=gnu++17 from dg-options directive.
4606         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
4607         * testsuite/21_strings/basic_string/cons/char/79162.cc:
4608         Likewise.
4609         * testsuite/21_strings/basic_string/cons/char/86138.cc:
4610         Likewise.
4611         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
4612         * testsuite/21_strings/basic_string/cons/char/deduction.cc:
4613         Likewise.
4614         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
4615         Likewise.
4616         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
4617         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
4618         Likewise.
4619         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
4620         Likewise.
4621         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
4622         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4623         Likewise.
4624         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
4625         Likewise.
4626         * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
4627         * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
4628         * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
4629         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
4630         Likewise.
4631         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
4632         Likewise.
4633         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
4634         Likewise.
4635         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
4636         Likewise.
4637         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4638         Likewise.
4639         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4640         Likewise.
4641         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4642         Likewise.
4643         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4644         Likewise.
4645         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4646         Likewise.
4647         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4648         Likewise.
4649         * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4650         Likewise.
4651         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4652         Likewise.
4653         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4654         Likewise.
4655         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4656         Likewise.
4657         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4658         Likewise.
4659         * testsuite/21_strings/basic_string/operators/char/5.cc:
4660         Likewise.
4661         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4662         Likewise.
4663         * testsuite/21_strings/basic_string_view/capacity/1.cc:
4664         Likewise.
4665         * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4666         Likewise.
4667         * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4668         Likewise.
4669         * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4670         Likewise.
4671         * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4672         Likewise.
4673         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4674         Likewise.
4675         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4676         Likewise.
4677         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4678         Likewise.
4679         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4680         Likewise.
4681         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4682         Likewise.
4683         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4684         Likewise.
4685         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4686         Likewise.
4687         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4688         Likewise.
4689         * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4690         Likewise.
4691         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4692         Likewise.
4693         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4694         Likewise.
4695         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4696         Likewise.
4697         * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4698         Likewise.
4699         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4700         Likewise.
4701         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4702         Likewise.
4703         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
4704         Likewise.
4705         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4706         Likewise.
4707         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
4708         Likewise.
4709         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4710         Likewise.
4711         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
4712         Likewise.
4713         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
4714         Likewise.
4715         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4716         Likewise.
4717         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
4718         * testsuite/21_strings/basic_string_view/inserters/94051.cc:
4719         Likewise.
4720         * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
4721         Likewise.
4722         * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
4723         Likewise.
4724         * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
4725         Likewise.
4726         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
4727         Likewise.
4728         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
4729         Likewise.
4730         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
4731         Likewise.
4732         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
4733         Likewise.
4734         * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
4735         Likewise.
4736         * testsuite/21_strings/basic_string_view/literals/types.cc:
4737         Likewise.
4738         * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
4739         Likewise.
4740         * testsuite/21_strings/basic_string_view/literals/values.cc:
4741         Likewise.
4742         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4743         Likewise.
4744         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4745         Likewise.
4746         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4747         Likewise.
4748         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4749         Likewise.
4750         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4751         Likewise.
4752         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4753         Likewise.
4754         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
4755         Likewise.
4756         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
4757         Likewise.
4758         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
4759         Likewise.
4760         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
4761         Likewise.
4762         * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
4763         Likewise.
4764         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
4765         Likewise.
4766         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
4767         Likewise.
4768         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
4769         Likewise.
4770         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
4771         Likewise.
4772         * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
4773         Likewise.
4774         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
4775         Likewise.
4776         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
4777         Likewise.
4778         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4779         Likewise.
4780         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4781         Likewise.
4782         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
4783         Likewise.
4784         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
4785         Likewise.
4786         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
4787         Likewise.
4788         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
4789         Likewise.
4790         * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
4791         Likewise.
4792         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
4793         Likewise.
4794         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
4795         Likewise.
4796         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
4797         Likewise.
4798         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
4799         Likewise.
4800         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
4801         Likewise.
4802         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
4803         Likewise.
4804         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
4805         Likewise.
4806         * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
4807         Likewise.
4808         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
4809         Likewise.
4810         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
4811         Likewise.
4812         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
4813         Likewise.
4814         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
4815         Likewise.
4816         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4817         Likewise.
4818         * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
4819         Likewise.
4820         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4821         Likewise.
4822         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
4823         Likewise.
4824         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
4825         Likewise.
4826         * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
4827         Likewise.
4828         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
4829         Likewise.
4830         * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
4831         Likewise.
4832         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4833         Likewise.
4834         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4835         Likewise.
4836         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4837         Likewise.
4838         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4839         Likewise.
4840         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4841         Likewise.
4842         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4843         Likewise.
4844         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4845         Likewise.
4846         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4847         Likewise.
4848         * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
4849         Likewise.
4850         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
4851         Likewise.
4852         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
4853         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
4854         * testsuite/21_strings/char_traits/requirements/char/99181.cc:
4855         Likewise.
4856         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4858 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4860         * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
4861         from dg-options directive.
4862         * testsuite/20_util/memory_resource/2.cc: Likewise.
4863         * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
4864         * testsuite/20_util/monotonic_buffer_resource/93208.cc:
4865         Likewise.
4866         * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4867         Likewise.
4868         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
4869         Likewise.
4870         * testsuite/20_util/monotonic_buffer_resource/release.cc:
4871         Likewise.
4872         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
4873         Likewise.
4874         * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
4875         * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
4876         Likewise.
4877         * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
4878         * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
4879         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
4880         Likewise.
4881         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
4882         Likewise.
4883         * testsuite/20_util/synchronized_pool_resource/cons.cc:
4884         Likewise.
4885         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
4886         Likewise.
4887         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
4888         Likewise.
4889         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
4890         Likewise.
4891         * testsuite/20_util/synchronized_pool_resource/options.cc:
4892         Likewise.
4893         * testsuite/20_util/synchronized_pool_resource/release.cc:
4894         Likewise.
4895         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
4896         Likewise.
4897         * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
4898         Likewise.
4899         * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4900         Likewise.
4901         * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
4902         Likewise.
4903         * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
4904         Likewise.
4905         * testsuite/20_util/unsynchronized_pool_resource/options.cc:
4906         Likewise.
4907         * testsuite/20_util/unsynchronized_pool_resource/release.cc:
4908         Likewise.
4909         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4910         Likewise.
4911         * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4912         * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
4913         Likewise.
4914         * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4915         Likewise.
4916         * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
4917         Likewise.
4918         * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4919         * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
4920         * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4921         * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
4922         * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4923         * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
4924         Likewise.
4925         * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4926         * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
4927         Likewise.
4928         * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4929         * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
4930         * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4931         Likewise.
4932         * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
4933         Likewise.
4934         * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4935         Likewise.
4936         * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
4937         Likewise.
4938         * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4939         Likewise.
4940         * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
4941         Likewise.
4942         * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4943         Likewise.
4944         * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
4945         Likewise.
4946         * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4947         * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
4948         Likewise.
4949         * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4951 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4953         * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
4954         dg-options.
4955         * testsuite/29_atomics/atomic/is_always_lock_free.cc:
4956         * testsuite/29_atomics/atomic/requirements/typedefs.cc:
4957         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
4958         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
4959         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
4960         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
4961         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
4962         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
4963         Likewise.
4964         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
4965         Likewise.
4966         * testsuite/30_threads/shared_lock/70766.cc: Likewise.
4967         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
4968         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
4969         Likewise.
4970         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
4971         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
4972         Likewise.
4973         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
4974         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
4975         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
4976         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
4978 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4980         * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
4981         dg-options directive.
4982         * testsuite/20_util/any/assign/2.cc: Likewise.
4983         * testsuite/20_util/any/assign/emplace.cc: Likewise.
4984         * testsuite/20_util/any/assign/exception.cc: Likewise.
4985         * testsuite/20_util/any/assign/self.cc: Likewise.
4986         * testsuite/20_util/any/cons/1.cc: Likewise.
4987         * testsuite/20_util/any/cons/2.cc: Likewise.
4988         * testsuite/20_util/any/cons/90415.cc: Likewise.
4989         * testsuite/20_util/any/cons/92156.cc: Likewise.
4990         * testsuite/20_util/any/cons/aligned.cc: Likewise.
4991         * testsuite/20_util/any/cons/explicit.cc: Likewise.
4992         * testsuite/20_util/any/cons/in_place.cc: Likewise.
4993         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
4994         * testsuite/20_util/any/make_any.cc: Likewise.
4995         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4996         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
4997         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
4998         * testsuite/20_util/any/misc/swap.cc: Likewise.
4999         * testsuite/20_util/any/modifiers/1.cc: Likewise.
5000         * testsuite/20_util/any/modifiers/83658.cc: Likewise.
5001         * testsuite/20_util/any/modifiers/92156.cc: Likewise.
5002         * testsuite/20_util/any/observers/type.cc: Likewise.
5003         * testsuite/20_util/any/requirements.cc: Likewise.
5004         * testsuite/20_util/any/typedefs.cc: Likewise.
5005         * testsuite/20_util/optional/77288.cc: Likewise.
5006         * testsuite/20_util/optional/84601.cc: Likewise.
5007         * testsuite/20_util/optional/assignment/1.cc: Likewise.
5008         * testsuite/20_util/optional/assignment/2.cc: Likewise.
5009         * testsuite/20_util/optional/assignment/3.cc: Likewise.
5010         * testsuite/20_util/optional/assignment/4.cc: Likewise.
5011         * testsuite/20_util/optional/assignment/5.cc: Likewise.
5012         * testsuite/20_util/optional/assignment/6.cc: Likewise.
5013         * testsuite/20_util/optional/assignment/7.cc: Likewise.
5014         * testsuite/20_util/optional/assignment/8.cc: Likewise.
5015         * testsuite/20_util/optional/assignment/9.cc: Likewise.
5016         * testsuite/20_util/optional/bad_access.cc: Likewise.
5017         * testsuite/20_util/optional/cons/77727.cc: Likewise.
5018         * testsuite/20_util/optional/cons/85642.cc: Likewise.
5019         * testsuite/20_util/optional/cons/copy.cc: Likewise.
5020         * testsuite/20_util/optional/cons/deduction.cc: Likewise.
5021         * testsuite/20_util/optional/cons/default.cc: Likewise.
5022         * testsuite/20_util/optional/cons/move.cc: Likewise.
5023         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
5024         * testsuite/20_util/optional/cons/value.cc: Likewise.
5025         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
5026         * testsuite/20_util/optional/constexpr/cons/default.cc:
5027         Likewise.
5028         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
5029         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
5030         * testsuite/20_util/optional/constexpr/make_optional.cc:
5031         Likewise.
5032         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
5033         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
5034         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
5035         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
5036         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
5037         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
5038         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
5039         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
5040         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
5041         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
5042         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
5043         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
5044         * testsuite/20_util/optional/hash.cc: Likewise.
5045         * testsuite/20_util/optional/in_place.cc: Likewise.
5046         * testsuite/20_util/optional/make_optional.cc: Likewise.
5047         * testsuite/20_util/optional/nullopt.cc: Likewise.
5048         * testsuite/20_util/optional/observers/1.cc: Likewise.
5049         * testsuite/20_util/optional/observers/2.cc: Likewise.
5050         * testsuite/20_util/optional/observers/3.cc: Likewise.
5051         * testsuite/20_util/optional/observers/4.cc: Likewise.
5052         * testsuite/20_util/optional/observers/5.cc: Likewise.
5053         * testsuite/20_util/optional/observers/6.cc: Likewise.
5054         * testsuite/20_util/optional/relops/1.cc: Likewise.
5055         * testsuite/20_util/optional/relops/2.cc: Likewise.
5056         * testsuite/20_util/optional/relops/3.cc: Likewise.
5057         * testsuite/20_util/optional/relops/4.cc: Likewise.
5058         * testsuite/20_util/optional/relops/5.cc: Likewise.
5059         * testsuite/20_util/optional/relops/6.cc: Likewise.
5060         * testsuite/20_util/optional/relops/7.cc: Likewise.
5061         * testsuite/20_util/optional/requirements.cc: Likewise.
5062         * testsuite/20_util/optional/swap/1.cc: Likewise.
5063         * testsuite/20_util/optional/swap/2.cc: Likewise.
5064         * testsuite/20_util/optional/typedefs.cc: Likewise.
5065         * testsuite/20_util/variant/80165.cc: Likewise.
5066         * testsuite/20_util/variant/85183.cc: Likewise.
5067         * testsuite/20_util/variant/86874.cc: Likewise.
5068         * testsuite/20_util/variant/87431.cc: Likewise.
5069         * testsuite/20_util/variant/87619.cc: Likewise.
5070         * testsuite/20_util/variant/91807.cc: Likewise.
5071         * testsuite/20_util/variant/any.cc: Likewise.
5072         * testsuite/20_util/variant/compile.cc: Likewise.
5073         * testsuite/20_util/variant/deduction.cc: Likewise.
5074         * testsuite/20_util/variant/exception_safety.cc: Likewise.
5075         * testsuite/20_util/variant/hash.cc: Likewise.
5076         * testsuite/20_util/variant/index_type.cc: Likewise.
5077         * testsuite/20_util/variant/relops/89851.cc: Likewise.
5078         * testsuite/20_util/variant/relops/90008.cc: Likewise.
5079         * testsuite/20_util/variant/run.cc: Likewise.
5080         * testsuite/20_util/variant/visit.cc: Likewise.
5082 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5084         * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
5085         -std=gnu++17 from dg-options directive.
5086         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
5087         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
5088         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
5089         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
5090         * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
5091         * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
5092         * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
5093         * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
5094         Likewise.
5095         * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
5096         * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
5097         * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
5098         * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
5099         * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
5100         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
5101         Likewise.
5102         * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
5103         * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
5104         Likewise.
5105         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
5106         Likewise.
5107         * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
5108         * testsuite/27_io/filesystem/operations/all.cc: Likewise.
5109         * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
5110         * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
5111         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
5112         * testsuite/27_io/filesystem/operations/create_directories.cc:
5113         Likewise.
5114         * testsuite/27_io/filesystem/operations/create_directory.cc:
5115         Likewise.
5116         * testsuite/27_io/filesystem/operations/create_symlink.cc:
5117         Likewise.
5118         * testsuite/27_io/filesystem/operations/current_path.cc:
5119         Likewise.
5120         * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
5121         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
5122         * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
5123         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
5124         * testsuite/27_io/filesystem/operations/last_write_time.cc:
5125         Likewise.
5126         * testsuite/27_io/filesystem/operations/permissions.cc:
5127         Likewise.
5128         * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
5129         * testsuite/27_io/filesystem/operations/read_symlink.cc:
5130         Likewise.
5131         * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
5132         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
5133         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
5134         * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
5135         * testsuite/27_io/filesystem/operations/resize_file.cc:
5136         Likewise.
5137         * testsuite/27_io/filesystem/operations/space.cc: Likewise.
5138         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
5139         * testsuite/27_io/filesystem/operations/symlink_status.cc:
5140         Likewise.
5141         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
5142         Likewise.
5143         * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
5144         Likewise.
5145         * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
5146         * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
5147         * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
5148         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
5149         * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
5150         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5151         * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
5152         * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
5153         * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
5154         * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
5155         * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
5156         * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
5157         * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
5158         * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
5159         * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
5160         * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
5161         * testsuite/27_io/filesystem/path/construct/default.cc:
5162         Likewise.
5163         * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
5164         * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
5165         * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
5166         * testsuite/27_io/filesystem/path/construct/string_view.cc:
5167         Likewise.
5168         * testsuite/27_io/filesystem/path/decompose/extension.cc:
5169         Likewise.
5170         * testsuite/27_io/filesystem/path/decompose/filename.cc:
5171         Likewise.
5172         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5173         Likewise.
5174         * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
5175         Likewise.
5176         * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
5177         Likewise.
5178         * testsuite/27_io/filesystem/path/decompose/root_name.cc:
5179         Likewise.
5180         * testsuite/27_io/filesystem/path/decompose/root_path.cc:
5181         Likewise.
5182         * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
5183         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
5184         Likewise.
5185         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
5186         * testsuite/27_io/filesystem/path/generation/normal.cc:
5187         Likewise.
5188         * testsuite/27_io/filesystem/path/generation/normal2.cc:
5189         Likewise.
5190         * testsuite/27_io/filesystem/path/generation/proximate.cc:
5191         Likewise.
5192         * testsuite/27_io/filesystem/path/generation/relative.cc:
5193         Likewise.
5194         * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
5195         * testsuite/27_io/filesystem/path/generic/generic_string.cc:
5196         Likewise.
5197         * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
5198         * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
5199         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5200         * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
5201         * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
5202         * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
5203         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
5204         Likewise.
5205         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
5206         Likewise.
5207         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
5208         Likewise.
5209         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
5210         Likewise.
5211         * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
5212         * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
5213         * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
5214         Likewise.
5215         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
5216         * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
5217         * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
5218         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
5219         Likewise.
5220         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
5221         * testsuite/27_io/filesystem/path/query/empty_neg.cc:
5222         * testsuite/27_io/filesystem/path/query/has_extension.cc:
5223         Likewise.
5224         * testsuite/27_io/filesystem/path/query/has_filename.cc:
5225         Likewise.
5226         * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
5227         Likewise.
5228         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
5229         Likewise.
5230         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
5231         Likewise.
5232         * testsuite/27_io/filesystem/path/query/has_root_name.cc:
5233         Likewise.
5234         * testsuite/27_io/filesystem/path/query/has_root_path.cc:
5235         Likewise.
5236         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
5237         * testsuite/27_io/filesystem/path/query/is_absolute.cc:
5238         Likewise.
5239         * testsuite/27_io/filesystem/path/query/is_relative.cc:
5240         Likewise.
5241         * testsuite/experimental/filesystem/path/construct/string_view.cc:
5242         Likewise.
5244 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5246         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5247         Remove -std=gnu++17 from dg-options.
5248         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5249         Likewise.
5250         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5251         Likewise.
5252         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5253         Likewise.
5254         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5255         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5256         Likewise.
5257         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5258         Likewise.
5259         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5260         Likewise.
5261         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5262         Likewise.
5263         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5264         Likewise.
5265         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5266         Likewise.
5267         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5268         Likewise.
5269         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5270         Likewise.
5271         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5272         Likewise.
5273         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5274         Likewise.
5275         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5276         Likewise.
5277         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5278         Likewise.
5279         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5280         Likewise.
5281         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5282         Likewise.
5283         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5284         Likewise.
5285         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5286         Likewise.
5287         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5288         Likewise.
5289         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5290         Likewise.
5291         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5292         Likewise.
5293         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5294         Likewise.
5295         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5296         Likewise.
5297         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5298         Likewise.
5299         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5300         Likewise.
5301         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5302         Likewise.
5303         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5304         Likewise.
5305         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5306         Likewise.
5307         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5308         Likewise.
5309         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5310         Likewise.
5311         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5312         Likewise.
5313         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5314         Likewise.
5315         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5316         Likewise.
5317         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5318         Likewise.
5319         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5320         Likewise.
5321         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5322         Likewise.
5323         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5324         Likewise.
5325         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
5326         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5327         Likewise.
5328         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5329         Likewise.
5330         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5331         Likewise.
5332         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5333         Likewise.
5334         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5335         Likewise.
5336         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
5337         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
5338         * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
5339         * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
5340         * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
5341         * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
5342         * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
5343         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5344         Likewise.
5345         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
5346         * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
5347         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5348         Likewise.
5349         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5350         Likewise.
5352 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5354         * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
5355         for additional errors in C++20.
5356         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5357         Likewise.
5358         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
5359         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5361 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5363         * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
5364         clash with std::any.
5366 2021-05-07  Jonathan Wakely  <jwakely@redhat.com>
5368         * include/std/istream (__rvalue_stream_extraction_t): Replace
5369         use of __rval_streamable.
5370         * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
5371         (__rval_streamable): Remove.
5372         (_Require_derived_from_ios_base, __derived_from_ios_base): New
5373         helper for checking constraints.
5374         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
5375         reference to the wrong subclause of the standard.
5376         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5377         Likewise.
5378         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5379         Likewise.
5380         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5381         Likewise.
5382         * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
5383         New test.
5384         * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
5385         errors.
5387 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
5389         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
5390         Improve static_assert messages.
5391         * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
5392         * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
5394 2021-05-06  Patrick Palka  <ppalka@redhat.com>
5396         * include/std/ranges (filter_view::_Iterator::base): Make the
5397         const& overload unconstrained and return a const reference as
5398         per LWG 3533.  Make unconditionally noexcept.
5399         (transform_view::_Iterator::base): Likewise.
5400         (elements_view::_Iterator::base): Likewise.
5402 2021-05-06  Patrick Palka  <ppalka@redhat.com>
5404         * include/bits/stl_iterator.h (move_iterator::base): Make the
5405         const& overload unconstrained and return a const reference as
5406         per LWG 3391.  Make unconditionally noexcept.
5407         (counted_iterator::base): Likewise.
5408         * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
5409         * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
5410         has_member_base concept to decay-copy the result of base().
5412 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
5414         * include/std/type_traits (remove_cvref_t): Define in terms of
5415         remove_cvref.
5416         * testsuite/20_util/remove_cvref/value.cc: Check alias.
5418 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
5420         Revert:
5421         2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
5423         * include/std/charconv (__from_chars_alnum): Pass unsigned
5424         char to std::isdigit.
5426 2021-05-05  Patrick Palka  <ppalka@redhat.com>
5428         * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
5429         Remove constraints on this partial specialization.
5430         * include/std/ranges (enable_borrowed_range<iota_view>):
5431         Likewise.
5433 2021-05-05  Patrick Palka  <ppalka@redhat.com>
5435         * include/std/ranges (transform_view::_Iterator::iter_swap):
5436         Remove as per LWG 3520.
5437         (join_view::_Iterator::iter_swap): Add indirectly_swappable
5438         constraint as per LWG 3517.
5440 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
5442         * testsuite/20_util/function_objects/invoke/3.cc: Check feature
5443         test macro.
5444         * testsuite/20_util/function_objects/invoke/version.cc: New test.
5446 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
5448         * include/std/charconv (__from_chars_alnum): Pass unsigned
5449         char to std::isdigit.
5451 2021-05-05  Corentin Gay  <gay@adacore.com>
5453         * acinclude.m4: Add VxWorks-specific case for the
5454         configuration of ctypes.
5455         * configure: Regenerate.
5456         * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
5457         version.
5458         * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
5459         * config/os/vxworks/ctype_configure_char.cc: Likewise.
5460         * config/os/vxworks/ctype_inline.h: Likewise.
5461         * testsuite/28_regex/traits/char/isctype.cc: Defines
5462         NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
5463         * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
5465 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
5467         * include/std/future (promise::set_value): Check for existence
5468         of shared state before dereferncing it.
5469         (promise::set_exception, promise::set_value_at_thread_exit)
5470         (promise::set_exception_at_thread_exit): Likewise.
5471         (promise<R&>::set_value, promise<R&>::set_exception)
5472         (promise<R&>::set_value_at_thread_exit)
5473         (promise<R&>::set_exception_at_thread_exit): Likewise.
5474         (promise<void>::set_value, promise<void>::set_exception)
5475         (promise<void>::set_value_at_thread_exit)
5476         (promise<void>::set_exception_at_thread_exit): Likewise.
5477         * testsuite/30_threads/promise/members/at_thread_exit2.cc:
5478         Remove unused variable.
5480 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
5482         * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
5483         Do not do arithmetic on null pointer.
5485 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
5487         * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
5488         (find_key_pointer(key_const_reference, false_type))
5489         (find_key_pointer(key_const_reference, true_type)): Do not
5490         dereference null pointer.
5492 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
5494         * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
5495         overflow.
5496         * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
5497         non-zero value to null pointer.
5498         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
5499         Use past-the-end iterator for result.
5500         * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
5501         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
5503 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
5505         PR libstdc++/100384
5506         * include/std/variant (__get_t): New alias template yielding the
5507         return type of std::get<N> on a variant.
5508         (__visit_result_t): New alias template yielding the result of
5509         std::visit.
5510         (__same_types): Move into namespace __detail::__variant.
5511         (__check_visitor_results): Likewise. Use __invoke_result_t and
5512         __get_t.
5513         (__check_visitor_result): Remove.
5514         (visit): Use __visit_result_t for return type.
5515         * testsuite/20_util/variant/100384.cc: New test.
5517 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
5519         * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
5520         checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
5521         * config.h.in: Regenerate.
5522         * configure: Regenerate.
5523         * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
5524         * include/bits/random.h (_Select_uint_least_t<s, 1>):
5525         Use __SIZEOF_INT128__ to decide whether to use __int128.
5526         * include/std/charconv (__to_chars_unsigned_type): Likewise.
5528 2021-05-03  Gerald Pfeifer  <gerald@pfeifer.com>
5530         * doc/xml/manual/ctype.xml: Move unix.org reference to https.
5531         * doc/html/manual/facets.html: Regenerate.
5533 2021-04-30  Patrick Palka  <ppalka@redhat.com>
5535         * include/std/ranges (__detail::__non_propating_cache): Define
5536         as per P2328.
5537         (join_view): Remove constraints on the value and reference types
5538         of the wrapped iterator type as per P2328.
5539         (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
5540         (join_view::_Iterator::operator++): Likewise.
5541         (join_view::_M_inner): Use __non_propating_cache as per P2328.
5542         Remove now-redundant use of __maybe_present_t.
5543         * testsuite/std/ranges/adaptors/join.cc: Include <array>.
5544         (test10): New test.
5546 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
5548         * include/bits/basic_string.h (__cpp_lib_constexpr_string):
5549         Only define for C++17 and later.
5550         * include/std/version (__cpp_lib_semaphore): Fix condition
5551         to match the one in <semaphore>.
5553 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
5555         * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
5556         * config.h.in: Regenerate.
5557         * configure: Regenerate.
5558         * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
5559         * include/bits/postypes.h: Remove include of <stdint.h> and
5560         definition/undefinition of the __STDC_LIMIT_MACROS and
5561         __STDC_CONSTANT_MACROS macros.
5562         (streamoff): Use __INT64_TYPE__ if defined.
5564 2021-04-30  Patrick Palka  <ppalka@redhat.com>
5566         * include/std/ranges (split_view::_InnerIter::operator++):
5567         Depend on _Base instead of _Vp directly, as per LWG 3532.
5569 2021-04-30  Patrick Palka  <ppalka@redhat.com>
5571         * include/bits/ranges_util.h (subrange::subrange): Avoid
5572         list-initialization in delegating constructor.
5573         * include/std/ranges (single_view): Replace implicit guide
5574         with explicit deduction guide that decays its argument.
5575         (_Single::operator()): Avoid CTAD when constructing the
5576         single_view object.
5577         (_Iota::operator()): Avoid list-initialization.
5578         (__detail::__can_filter_view, _Filter::operator()): Likewise.
5579         (__detail::__can_transform_view, _Transform::operator()): Likewise.
5580         (take_view::begin): Likewise.
5581         (__detail::__can_take_view, _Take::operator()): Likewise.
5582         (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
5583         (__detail::__can_drop_view, _Drop::operator()): Likewise.
5584         (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
5585         (split_view::split_view): Use views::single when initializing
5586         _M_pattern.
5587         (__detail::__can_split_view, _Split::operator()): Avoid
5588         list-initialization.
5589         (_Counted::operator()): Likewise.
5590         * testsuite/std/ranges/p2367.cc: New test.
5592 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
5594         PR libstdc++/60497
5595         * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
5596         std::addressof.
5597         * include/bits/basic_string.tcc (basic_string::swap)
5598         (basic_string::assign): Likewise.
5599         * include/bits/deque.tcc (deque::operator=(const deque&)):
5600         Likewise.
5601         * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
5602         Likewise.
5603         * include/bits/vector.tcc (vector::operator=(const vector&)):
5604         Likewise.
5606 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
5608         * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
5609         per LWG 1203.
5610         * include/std/ostream (operator<<(Ostream&&, const x&)):
5611         Likewise.
5612         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
5613         Adjust dg-error pattern.
5614         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
5615         Likewise.
5616         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
5617         is_extractable trait to replace std::__is_extractable. Make it
5618         work with rvalue streams as well as lvalues, to replace f() and
5619         g() helper functions.
5620         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5621         Likewise.
5622         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5623         Define is_insertable trait to replace std::__is_insertable. Make
5624         it work with rvalue streams as well as lvalues, to replace f()
5625         and g() helper functions.
5626         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5627         Likewise.
5628         * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
5629         errors from new constraints.
5630         * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
5631         which are no longer expected to compile.
5632         * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
5633         Verify LWG 1203 changes.
5635 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
5637         PR libstdc++/100285
5638         * include/experimental/socket (__basic_socket_impl::set_option)
5639         (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5640         Just set error code.
5641         * testsuite/experimental/net/socket/socket_base.cc: CHeck
5642         for <sys/socket.h> not <socket.h>.
5644 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
5646         PR libstdc++/100180
5647         PR libstdc++/100286
5648         PR libstdc++/100351
5649         * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5650         Use new effective-target keyword.
5651         * testsuite/experimental/net/internet/address/v4/cons.cc:
5652         Likewise.
5653         * testsuite/experimental/net/internet/address/v4/creation.cc:
5654         Likewise.
5655         * testsuite/experimental/net/internet/address/v4/members.cc:
5656         Likewise.
5657         * testsuite/experimental/net/internet/address/v6/members.cc:
5658         Likewise.
5659         * testsuite/experimental/net/internet/resolver/base.cc:
5660         Likewise.
5661         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5662         Likewise.
5663         * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5664         Likewise.
5665         * testsuite/experimental/net/internet/socket/opt.cc:
5666         Likewise.
5667         * testsuite/experimental/net/internet/tcp.cc:
5668         Likewise.
5669         * testsuite/experimental/net/internet/udp.cc:
5670         Likewise.
5671         * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5672         New proc to check net_ts_ip et.
5674 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
5676         PR libstdc++/97930
5677         * testsuite/20_util/pair/requirements/structural.cc: New test.
5679 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
5681         * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5682         new definitions for constructors and assignment operators using
5683         concepts for constraints.
5684         * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5685         later.
5686         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5687         expected error messages to also match C++20 errors.
5689 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
5691         PR libstdc++/99957
5692         * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5693         Combine and replace with ...
5694         (_PCC::_DeprConsPair): New SFINAE helper function.
5695         (pair): Merge preprocessor blocks so that all C++03 members
5696         are defined together at the end.
5697         (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5698         Replace _T1 and _T2 parameters with __null_ptr_constant and
5699         adjust constraints.
5700         * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
5701         * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
5702         * testsuite/20_util/pair/cons/99957.cc: New test.
5704 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
5706         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
5707         * include/std/version (__cpp_lib_constexpr_string): Define.
5708         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5709         Check for __cpp_lib_constexpr_string.
5710         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
5711         Likewise.
5712         * testsuite/21_strings/char_traits/requirements/version.cc: New test.
5714 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
5716         * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
5717         dealing with errors. Use '@' to prevent shell command being
5718         echoed.
5719         * doc/Makefile.in: Regenerate.
5721 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
5723         PR libstdc++/100298
5724         * include/bits/std_thread.h (thread::hardware_concurrency): Add
5725         missing noexcept to inline definition for non-gthreads targets.
5727 2021-04-28  Patrick Palka  <ppalka@redhat.com>
5729         PR libstdc++/100187
5730         PR libstdc++/100237
5731         PR libstdc++/100249
5732         PR libstdc++/100287
5733         * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
5734         the __value_comp lambda an explicit bool return type.
5735         (__is_permutation_fn::operator()): Give the __proj_scan local
5736         variable auto&& return type.  Give the __comp_scan lambda an
5737         explicit bool return type.
5738         (__remove_fn::operator()): Give the __pred lambda an explicit
5739         bool return type.
5740         (__partition_fn::operator()): Don't std::move __first twice
5741         when returning an empty subrange.
5742         (__min_fn::operator()): Don't std::move __comp.
5743         (__max_fn::operator()): Likewise.
5744         (__minmax_fn::operator()): Likewise.
5746 2021-04-27  Patrick Palka  <ppalka@redhat.com>
5748         PR libstdc++/100290
5749         * include/std/ranges (join_view::_Iterator::operator++): Correct
5750         the return type of the lambda to avoid returning a copy of
5751         _M_parent->_M_inner.
5752         * testsuite/std/ranges/adaptors/join.cc (test10): New test.
5754 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
5756         Revert:
5757         2021-04-22  Jakub Jelinek  <jakub@redhat.com>
5759         PR target/100182
5760         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5761         ia32.
5762         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5763         ia32.
5765 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
5767         * include/experimental/internet (address_v6::bytes_type): Adjust
5768         formatting.
5769         (basic_endpoint): Define _M_is_v6() to put all checks for
5770         AF_INET6 in one place.
5771         (basic_endpoint::resize): Simplify.
5772         (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
5773         (operator!=(const tcp&, const tcp&)): Likewise.
5774         (operator==(const udp&, const udp&)): Likewise.
5775         (operator!=(const udp&, const udp&)): Likewise.
5776         * testsuite/experimental/net/internet/tcp.cc: New test.
5777         * testsuite/experimental/net/internet/udp.cc: New test.
5779 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
5781         PR libstdc++/100286
5782         * include/experimental/internet (resolver_errc, resolver_category())
5783         (make_error_code, make_error_condition): Define unconditionally,
5784         only make enumerators and use of gai_strerror depend on the
5785         availability of <netdb.h>.
5786         (address_v4::to_string): Use correct constant for string length.
5787         (address_v4::to_string, address_v6::to_string): Define
5788         unconditionally, throw if unsupported.
5789         (make_address_v4, make_address_v6): Define unconditionally.
5790         Return an error if unsupported.
5791         (tcp, udp, v6_only, unicast::hops, multicast::*): Define
5792         conditionally,
5793         * testsuite/experimental/net/internet/socket/opt.cc: Check for
5794         <netinet/in.h> and <netinet/tcp.h> before using types from
5795         namespace net::ip.
5797 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
5799         PR libstdc++/100285
5800         * include/experimental/internet (resolver_base::flags):
5801         Define overloaded operators as hidden friends.
5802         * include/experimental/socket (socket_base::message_flags):
5803         Likewise.
5805 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
5807         * include/experimental/internet (tcp::no_delay, v6_only)
5808         (unicast::hops, multicast::hops, multicast::enable_loopback):
5809         Change access of base class and static data members. Add
5810         using-declaration for __socket_crtp::operator=(_Tp).
5811         (multicast::__mcastopt): New type.
5812         (multicast::join_group, multicast::leave_group): Derive from
5813         __mcastopt for common implementation.
5814         * include/experimental/socket: Add comment.
5815         * testsuite/experimental/net/internet/socket/opt.cc: New test.
5816         * testsuite/experimental/net/socket/socket_base.cc: Check for
5817         protected constructor/destructor of socket_base. Check for
5818         explicit constructors of socket option classes.
5820 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
5822         * include/experimental/bits/net.h (__socket_base): Add
5823         bool template parameter to allow BooleanSocketOption and
5824         IntegerSocketOption to have different __socket_base<int>
5825         base classes.
5826         (__socket_base<bool>): Adjust base class.
5827         (__socket_base<int>): Add partial specialization.
5828         (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
5829         * include/experimental/socket (socket_base::broadcast)
5830         (socket_base::debug, socket_base::do_not_route)
5831         (socket_base::keep_alive, socket_base::linger)
5832         (socket_base::out_of_band_inline)
5833         (socket_base::receive_buffer_size)
5834         (socket_base::receive_low_watermark)
5835         (socket_base::reuse_address, socket_base::send_buffer_size)
5836         (socket_base::send_low_watermark): Add using-declaration for
5837         __socket_crtp::operator=(_Tp).
5838         * testsuite/experimental/net/socket/socket_base.cc: Check
5839         properties of socket option types.
5841 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
5843         * include/experimental/internet (resolver_base::flags): Remove
5844         enumerators. Initialize constants directly with desired values.
5845         Make all operators constexpr and noexcept.
5846         * testsuite/experimental/net/internet/resolver/base.cc: Use
5847         __gnu_test::test_bitmask_values for bitmask type. Check
5848         construction and destruction is protected.
5850 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
5852         * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
5854 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
5856         PR libstdc++/100259
5857         * include/experimental/internet (net::ip::make_error_code)
5858         (net::ip::make_error_condition, net::ip::make_network_v4)
5859         (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
5861 2021-04-24  David Edelsohn  <dje.gcc@gmail.com>
5863         * testsuite/lib/dg-options.exp (atomic_link_flags): New.
5864         (add_options_for_libatomic): Use atomic_link_flags.
5866 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
5868         PR libstdc++/100180
5869         * include/experimental/io_context (io_context): Define
5870         dummy_pollfd type so that most member functions still compile
5871         without <poll.h> and struct pollfd.
5873 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
5875         * include/experimental/io_context (io_context::async_wait): Add
5876         comment.
5877         * include/experimental/socket (basic_socket::async_connect):
5878         Cast wait_type constant to int.
5879         (basic_datagram_socket::async_receive): Likewise.
5880         (basic_datagram_socket::async_receive_from): Likewise.
5881         (basic_datagram_socket::async_send): Likewise.
5882         (basic_datagram_socket::async_send_to): Likewise.
5883         (basic_stream_socket::async_receive): Likewise.
5884         (basic_stream_socket::async_send): Likewise. Use io_context
5885         parameter directly, instead of via an executor.
5886         (basic_socket_acceptor::async_accept): Likewise.
5888 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
5890         * include/experimental/socket (socket_base::shutdown_type):
5891         (socket_base::wait_type, socket_base::message_flags):
5892         Remove enumerators. Initialize constants directly with desired
5893         values.
5894         (socket_base::message_flags): Make all operators constexpr and
5895         noexcept.
5896         * testsuite/util/testsuite_common_types.h (test_bitmask_values):
5897         New test utility.
5898         * testsuite/experimental/net/socket/socket_base.cc: New test.
5900 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
5902         * config/os/aix/atomicity.h: Delete.
5904 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
5906         * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
5907         Handle system_clock as well as steady_clock.
5908         * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
5909         * testsuite/30_threads/semaphore/try_acquire_until.cc:
5910         Re-enable.
5912 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
5914         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
5915         options for libatomic.
5917 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
5919         * config/os/gnu-linux/os_defines.h: Fix type in comment.
5921 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
5923         PR libstdc++/99006
5924         * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
5925         is not an array type.
5926         * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
5927         * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
5929 2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
5931         * include/bits/atomic_wait.h: Always notify waiters in the
5932         case of 'bare' address notification.
5934 2021-04-22  Jakub Jelinek  <jakub@redhat.com>
5936         PR target/100182
5937         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5938         ia32.
5939         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5940         ia32.
5942 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
5944         PR libstdc++/100179
5945         * include/bits/semaphore_base.h: Remove #error.
5946         * include/std/semaphore: Do not define anything unless one of
5947         the implementations is available.
5949 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
5951         * include/bits/semaphore_base.h: Always reload __old in
5952         __atomic_semaphore::_S_do_try_acquire().
5953         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5954         re-enable testcase.
5956 2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
5957             Jonathan Wakely  <jwakely@redhat.com>
5959         PR libstdc++/99453
5960         * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
5961         * python/Makefile.in: Regenerate.
5963 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
5965         * include/bits/semaphore_base.h: Add missing _M_try_acquire()
5966         member to __platform_wait.
5968 2021-04-21  Jonathan Wakely  <jwakely@redhat.com>
5970         * include/std/latch: Replace tab characters in license text.
5971         * include/std/semaphore: Likewise.
5973 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
5975         PR libstdc++/100164
5976         * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
5977         rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
5978         * configure: Regenerated.
5979         * config.h.in: Regenerated.
5981 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
5983         * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
5984         test for targets not using futexes for semaphores.
5985         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5986         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5987         Disable for all targets.
5989 2021-04-20  Thomas Rodgers  <trodgers@redhat.com>
5991         * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
5992         * include/Makefile.in: Regenerate.
5993         * include/bits/this_thread_sleep.h: New file.
5994         * include/bits/atomic_base.h: Adjust all calls
5995         to __atomic_wait/__atomic_notify for new call signatures.
5996         * include/bits/atomic_timed_wait.h: Extensive rewrite.
5997         * include/bits/atomic_wait.h: Likewise.
5998         * include/bits/semaphore_base.h: Adjust all calls
5999         to __atomic_wait/__atomic_notify for new call signatures.
6000         * include/std/atomic: Likewise.
6001         * include/std/barrier: Likewise.
6002         * include/std/latch: Likewise.
6003         * include/std/semaphore: Likewise.
6004         * include/std/thread (this_thread::sleep_for)
6005         (this_thread::sleep_until): Move to new header.
6006         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
6007         test.
6008         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6009         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6010         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6011         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
6012         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
6013         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
6015 2021-04-20  Patrick Palka  <ppalka@redhat.com>
6017         PR libstdc++/95983
6018         * include/bits/stl_iterator.h (__detail::__move_iter_cat):
6019         Define.
6020         (move_iterator): Derive from the above in C++20 in order to
6021         conditionally define iterator_category as per P2259.
6022         (move_iterator::__base_cat): No longer used, so remove.
6023         (move_iterator::iterator_category): Remove in C++20.
6024         (__detail::__common_iter_use_postfix_proxy): Define.
6025         (common_iterator::_Proxy): Rename to ...
6026         (common_iterator:__arrow_proxy): ... this.
6027         (common_iterator::__postfix_proxy): Define as per P2259.
6028         (common_iterator::operator->): Adjust.
6029         (common_iterator::operator++): Adjust as per P2259.
6030         (iterator_traits<common_iterator>::_S_iter_cat): Define.
6031         (iterator_traits<common_iterator>::iterator_category): Change as
6032         per P2259.
6033         (__detail::__counted_iter_value_type): Define.
6034         (__detail::__counted_iter_concept): Define.
6035         (__detail::__counted_iter_cat): Define.
6036         (counted_iterator): Derive from the above three classes in order
6037         to conditionally define value_type, iterator_concept and
6038         iterator category respectively as per P2259.
6039         (counted_iterator::operator->): Define as per P2259.
6040         (incrementable_traits<counted_iterator>): Remove as per P2259.
6041         (iterator_traits<counted_iterator>): Adjust as per P2259.
6042         * include/std/ranges (__detail::__iota_view_iter_cat): Define.
6043         (iota_view::_Iterator): Derive from the above in order to
6044         conditionally define iterator_category as per P2259.
6045         (iota_view::_S_iter_cat): Rename to ...
6046         (iota_view::_S_iter_concept): ... this.
6047         (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
6048         (iota_view::iterator_category): Remove.
6049         (__detail::__filter_view_iter_cat): Define.
6050         (filter_view::_Iterator): Derive from the above in order to
6051         conditionally define iterator_category as per P2259.
6052         (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
6053         (filter_view::_Iterator::iterator_category): Remove.
6054         (transform_view::_Base): Define.
6055         (transform_view::__iter_cat): Define.
6056         (transform_view::_Iterator): Derive from the above in order to
6057         conditionally define iterator_category as per P2259.
6058         (transform_view::_Iterator::_Base): Just alias
6059         transform_view::_Base.
6060         (transform_view::_Iterator::_S_iter_cat): Move to struct
6061         transform_view::__iter_cat.
6062         (transform_view::_Iterator::iterator_category): Remove.
6063         (transform_view::_Sentinel::_Base): Just alias
6064         transform_view::_Base.
6065         (join_view::_Base): Define.
6066         (join_view::_Outer_iter): Define.
6067         (join_view::_Inner_iter): Define.
6068         (join_view::_S_ref_is_glvalue): Define.
6069         (join_view::__iter_cat): Define.
6070         (join_view::_Iterator): Derive from it in order to conditionally
6071         define iterator_category as per P2259.
6072         (join_view::_Iterator::_Base): Just alias join_view::_Base.
6073         (join_view::_Iterator::_S_ref_is_glvalue): Just alias
6074         join_view::_S_ref_is_glvalue.
6075         (join_view::_Iterator::_S_iter_cat): Move to struct
6076         transform_view::__iter_cat.
6077         (join_view::_Iterator::_Outer_iter): Just alias
6078         join_view::_Outer_iter.
6079         (join_view::_Iterator::_Inner_iter): Just alias
6080         join_view::_Inner_iter.
6081         (join_view::_Iterator::iterator_category): Remove.
6082         (join_view::_Sentinel::_Base): Just alias join_view::_Base.
6083         (__detail::__split_view_outer_iter_cat): Define.
6084         (__detail::__split_view_inner_iter_cat): Define.
6085         (split_view::_Base): Define.
6086         (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
6087         in order to conditionally define iterator_category as per P2259.
6088         (split_view::_Outer_iter::iterator_category): Remove.
6089         (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
6090         in order to conditionally define iterator_category as per P2259.
6091         (split_view::_Inner_iter::_S_iter_cat): Move to
6092         __split_view_inner_iter_cat.
6093         (split_view::_Inner_iter::iterator_category): Remove.
6094         (elements_view::_Base): Define.
6095         (elements_view::__iter_cat): Define.
6096         (elements_view::_Iterator): Derive from the above in order to
6097         conditionall define iterator_category as per P2259.
6098         (elements_view::_Iterator::_Base): Just alias
6099         elements_view::_Base.
6100         (elements_view::_Iterator::_S_iter_concept)
6101         (elements_view::_Iterator::iterator_concept): Define as per
6102         P2259.
6103         (elements_view::_Iterator::iterator_category): Remove.
6104         (elements_view::_Sentinel::_Base): Just alias
6105         elements_view::_Base.
6106         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
6107         Adjust constraints on iterator_traits<counted_iterator>.
6108         * testsuite/std/ranges/p2259.cc: New test.
6110 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
6112         PR libstdc++/100146
6113         * include/std/charconv (__cpp_lib_to_chars): Define
6114         conditionally.
6115         * include/std/version (__cpp_lib_to_chars): Likewise..
6116         * testsuite/20_util/from_chars/4.cc: Only check feature test
6117         macro, not _GLIBCXX_HAVE_USELOCALE.
6118         * testsuite/20_util/from_chars/5.cc: Likewise.
6119         * testsuite/20_util/from_chars/6.cc: Likewise.
6120         * testsuite/20_util/to_chars/long_double.cc: Likewise.
6122 2021-04-20  Jakub Jelinek  <jakub@redhat.com>
6124         * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
6125         versions with _IEEE128_ substring are found, set ieee_version_found
6126         to true.  Ignore missing symbols with _IEEE128_ in version name if
6127         !ieee_version_found.  Use i->first as version_name instead of
6128         i->second.version_name if the latter is empty.
6129         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6131 2021-04-19  H.J. Lu  <hjl.tools@gmail.com>
6133         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
6134         Updated.
6136 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
6138         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
6139         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
6141 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
6143         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6144         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6145         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
6146         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6147         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6148         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6150 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
6152         * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
6153         add libatomic options for 32-bit sparc*-*-linux-gnu.
6155 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
6157         PR libstdc++/96657
6158         * libsupc++/Makefile.am: Add atomicity.cc here.
6159         * src/c++98/Makefile.am: Remove it from here.
6160         * libsupc++/Makefile.in: Regenerate.
6161         * src/c++98/Makefile.in: Regenerate.
6162         * testsuite/18_support/exception_ptr/96657.cc: New test.
6164 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
6166         PR libstdc++/100060
6167         * include/std/bit: Only include <ext/numeric_traits.h> for
6168         hosted build, use <limits> otherwise.
6170 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
6172         * doc/xml/manual/backwards_compatibility.xml: Remove porting
6173         notes for libg++ and libstdc++-v2, and bibliography.
6174         * doc/html/*: Regenerated.
6176 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
6178         PR libstdc++/100044
6179         * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
6180         Remove helper concept.
6181         (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
6182         deduction guides, as per LWG 3404.
6183         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
6184         template argument deduction fails.
6186 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
6188         * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
6189         Adjust expected error for C++20 mode.
6190         * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
6191         Likewise.
6193 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
6195         PR libstdc++/99995
6196         * testsuite/17_intro/headers/c++1998/49745.cc: Include all
6197         standard headers and XFAIL for effective-target c++20.
6199 2021-04-09  François Dumont  <fdumont@gcc.gnu.org>
6201         PR libstdc++/99402
6202         * include/debug/helper_functions.h (__can_advance(_InputIterator,
6203         const std::pair<_Diff, _Distance_precision>&, int)): New.
6204         (__can_advance(const _Safe_iterator<>&,
6205         const std::pair<_Diff, _Distance_precision>&, int)): New.
6206         * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
6207         use latter.
6208         (__glibcxx_check_can_increment_range): Adapt to use latter.
6209         (__glibcxx_check_can_decrement_range): Likewise.
6210         * include/debug/safe_iterator.h
6211         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6212         int)): New.
6213         (__can_advance(const _Safe_iterator<>&,
6214         const std::pair<_Diff, _Distance_precision>&, int)): New.
6215         * include/debug/safe_iterator.tcc
6216         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6217         int)): New.
6218         (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
6219         std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
6220         __dp_sign_max_size.
6221         (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
6222         (__copy_move_backward_a): Likewise.
6223         (__equal_aux): Likewise.
6224         * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
6225         const std::pair<_Diff, _Distance_precision>&, int)): New.
6226         (__can_advance(const std::move_iterator<>&,
6227         const std::pair<_Diff, _Distance_precision>&, int)): New.
6228         * testsuite/25_algorithms/copy/debug/99402.cc: New test.
6230 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
6232         PR libstdc++/99985
6233         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
6234         to be a valid constexpr function in C++11.
6235         * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
6237 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
6239         * include/bits/fs_fwd.h: Fix doxygen group command.
6240         * include/bits/streambuf_iterator.h: Likewise.
6241         * include/bits/uses_allocator_args.h: Likewise.
6242         * include/std/memory: Likewise.
6243         * include/tr1/complex: Likewise.
6245 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6247         * include/bits/basic_string.h: Tweak doxygen comment.
6249 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6251         * include/std/ranges (__detail::find): Define.
6252         (split_view::_OuterIter::operator++): Apply proposed resolution
6253         of LWG 3505.
6254         * testsuite/std/ranges/adaptors/split.cc (test10): New test.
6256 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6258         * include/std/ranges (__detail::find_if): Simplify.
6259         (__detail::find_if_not): Likewise.
6260         (__detail::min): Remove.
6261         (__detail::mismatch): Simplify.
6262         (take_view::size): Use std::min instead of __detail::min.
6264 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6266         * include/std/ranges (__detail::__returnable_element): New
6267         concept.
6268         (elements_view): Use this concept in its constraints.  Add
6269         missing private access specifier.
6270         (elements_view::_S_get_element): Define as per LWG 3502.
6271         (elements_view::operator*, elements_view::operator[]): Use
6272         _S_get_element.
6273         (elements_view::operator++): Remove unnecessary constraint
6274         as per LWG 3492.
6275         * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
6277 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6279         * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
6280         out-of-memory error in log file.
6281         * doc/Makefile.in: Regenerate.
6283 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6285         * configure: Regenerate.
6287 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6289         * include/bits/random.h: Fix doxygen group commands.
6290         * include/bits/regex_constants.h: Likewise.
6291         * include/tr1/random.h: Likewise.
6293 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6295         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
6296         New function to determine noexcept-specifier for move
6297         constructors.
6298         (_Hashtable): Use _S_nothrow_move() on move constructors.
6299         * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
6300         Correct static assertion message.
6301         * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
6302         Likewise.
6303         * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
6304         Likewise.
6305         * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
6306         Likewise.
6308 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6310         PR libstdc++/98384
6311         * testsuite/20_util/to_chars/long_double.cc: Don't run the test
6312         on targets without a large long double.  XFAIL the execution on
6313         targets with a non-conforming printf.
6315 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6317         PR libstdc++/99433
6318         * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
6319         (__adaptor::__adaptor_invocable): New concept.
6320         (__adaptor::__adaptor_partial_app_viable): New concept.
6321         (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
6322         non-template base class.
6323         (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
6324         class template.
6325         (__adaptor::_Partial): New class template that represents
6326         partial application of a range adaptor non-closure.
6327         (__adaptor::__pipe_invocable): New concept.
6328         (__adaptor::_Pipe): New class template.
6329         (__detail::__can_ref_view): New concept.
6330         (__detail::__can_subrange): New concept.
6331         (all): Replace the lambda here with ...
6332         (_All): ... this functor.  Add appropriate constraints.
6333         (__detail::__can_filter_view): New concept.
6334         (filter, _Filter): As in all/_All.
6335         (__detail::__can_transform): New concept.
6336         (transform, _Transform): As in all/_All.
6337         (__detail::__can_take_view): New concept.
6338         (take, _Take): As in all/_All.
6339         (__detail::__can_take_while_view): New concept.
6340         (take_while, _TakeWhile): As in all/_All.
6341         (__detail::__can_drop_view): New concept.
6342         (drop, _Drop): As in all/_All.
6343         (__detail::__can_drop_while_view): New concept.
6344         (drop_while, _DropWhile): As in all/_All.
6345         (__detail::__can_join_view): New concept.
6346         (join, _Join): As in all/_All.
6347         (__detail::__can_split_view): New concept.
6348         (split, _Split): As in all/_All.  Rename template parameter
6349         _Fp to _Pattern.
6350         (__detail::__already_common): New concept.
6351         (__detail::__can_common_view): New concept.
6352         (common, _Common): As in all/_All.
6353         (__detail::__can_reverse_view): New concept.
6354         (reverse, _Reverse): As in all/_All.
6355         (__detail::__can_elements_view): New concept.
6356         (elements, _Elements): As in all/_All.
6357         (keys, values): Adjust.
6358         * testsuite/std/ranges/adaptors/99433.cc: New test.
6359         * testsuite/std/ranges/adaptors/all.cc: No longer expect that
6360         adding empty range adaptor closure objects to a pipeline doesn't
6361         increase the size of the pipeline.
6362         (test05): New test.
6363         * testsuite/std/ranges/adaptors/common.cc (test03): New test.
6364         * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
6365         * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
6366         * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
6367         * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
6368         * testsuite/std/ranges/adaptors/join.cc (test09): New test.
6369         * testsuite/std/ranges/adaptors/p2281.cc: New test.
6370         * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
6371         * testsuite/std/ranges/adaptors/split.cc (test01, test04):
6372         Adjust.
6373         (test09): New test.
6374         * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
6375         expected error message.
6376         (test02): Likewise.  Extend test.
6377         * testsuite/std/ranges/adaptors/take.cc (test06): New test.
6378         * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
6379         * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
6380         New test.
6382 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6384         * include/std/string_view: Adjust Doxygen @file comment.
6386 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6388         * include/std/type_traits (is_scoped_enum<T>): Constrain partial
6389         specialization to not match incomplete enum types. Use a
6390         requires-expression instead of instantiating is_convertible.
6391         (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
6392         * testsuite/20_util/is_scoped_enum/value.cc: Check with
6393         incomplete types and opaque-enum-declarations.
6395 2021-04-07  Jonathan Wakely  <jwakely@redhat.com>
6397         PR libstdc++/99805
6398         * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
6399         non-const member on _M_pathname, to avoid copy-on-write.
6400         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6401         Check construction from strings that might be shared.
6403 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
6405         * include/bits/move.h (forward, move, move_if_noexcept)
6406         (addressof): Add _GLIBCXX_NODISCARD.
6407         * include/bits/ranges_cmp.h (identity::operator()): Add
6408         nodiscard attribute.
6409         * include/c_global/cstddef (to_integer): Likewise.
6410         * include/std/bit (bit_cast): Likewise.
6411         * include/std/utility (as_const, to_underlying): Likewise.
6413 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
6415         * include/bits/move.h (forward): Change static_assert message
6416         to be unambiguous about what must be true.
6417         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
6418         * testsuite/20_util/forward/f_neg.cc: Likewise.
6420 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
6422         * include/bits/alloc_traits.h: Use markdown for code font.
6423         * include/bits/basic_string.h: Fix @param names.
6424         * include/bits/max_size_type.h: Remove period after @file.
6425         * include/bits/regex.h: Fix duplicate @retval names, and rename.
6426         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
6427         group open to match existing group close.
6428         * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
6429         open.
6431 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
6433         * include/bits/atomic_base.h: Fix doxygen group close.
6434         * include/bits/basic_ios.h: Likewise.
6435         * include/bits/forward_list.h: Likewise.
6436         * include/bits/fs_dir.h: Likewise.
6437         * include/bits/fs_ops.h: Likewise.
6438         * include/bits/fs_path.h: Likewise.
6439         * include/bits/functional_hash.h: Likewise.
6440         * include/bits/gslice.h: Likewise.
6441         * include/bits/gslice_array.h: Likewise.
6442         * include/bits/hashtable_policy.h: Likewise.
6443         * include/bits/indirect_array.h: Likewise.
6444         * include/bits/locale_classes.h: Likewise.
6445         * include/bits/locale_facets.h: Likewise.
6446         * include/bits/locale_facets_nonio.h: Likewise.
6447         * include/bits/mask_array.h: Likewise.
6448         * include/bits/refwrap.h: Likewise.
6449         * include/bits/regex.h: Likewise.
6450         * include/bits/regex_automaton.h: Likewise.
6451         * include/bits/regex_compiler.h: Likewise.
6452         * include/bits/regex_constants.h: Likewise.
6453         * include/bits/regex_error.h: Likewise.
6454         * include/bits/regex_executor.h: Likewise.
6455         * include/bits/regex_scanner.h: Likewise.
6456         * include/bits/shared_ptr.h: Likewise.
6457         * include/bits/shared_ptr_atomic.h: Likewise.
6458         * include/bits/shared_ptr_base.h: Likewise.
6459         * include/bits/slice_array.h: Likewise.
6460         * include/bits/specfun.h: Likewise.
6461         * include/bits/std_function.h: Likewise.
6462         * include/bits/std_mutex.h: Likewise.
6463         * include/bits/stl_deque.h: Likewise.
6464         * include/bits/stl_iterator.h: Likewise.
6465         * include/bits/stl_iterator_base_types.h: Likewise.
6466         * include/bits/stl_map.h: Likewise.
6467         * include/bits/stl_multimap.h: Likewise.
6468         * include/bits/stl_multiset.h: Likewise.
6469         * include/bits/stl_numeric.h: Likewise.
6470         * include/bits/stl_pair.h: Likewise.
6471         * include/bits/stl_set.h: Likewise.
6472         * include/bits/stl_uninitialized.h: Likewise.
6473         * include/bits/stream_iterator.h: Likewise.
6474         * include/bits/streambuf_iterator.h: Likewise.
6475         * include/bits/unique_ptr.h: Likewise.
6476         * include/bits/unordered_map.h: Likewise.
6477         * include/bits/unordered_set.h: Likewise.
6478         * include/decimal/decimal: Likewise.
6479         * include/experimental/any: Likewise.
6480         * include/experimental/array: Likewise.
6481         * include/experimental/bits/fs_dir.h: Likewise.
6482         * include/experimental/bits/fs_fwd.h: Likewise.
6483         * include/experimental/bits/fs_ops.h: Likewise.
6484         * include/experimental/bits/fs_path.h: Likewise.
6485         * include/experimental/buffer: Likewise.
6486         * include/experimental/internet: Likewise.
6487         * include/experimental/optional: Likewise.
6488         * include/experimental/propagate_const: Likewise.
6489         * include/experimental/socket: Likewise.
6490         * include/ext/pb_ds/assoc_container.hpp: Likewise.
6491         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
6492         Likewise.
6493         * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
6494         * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
6495         * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
6496         * include/ext/pb_ds/exception.hpp: Likewise.
6497         * include/ext/pb_ds/priority_queue.hpp: Likewise.
6498         * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
6499         * include/ext/random: Likewise.
6500         * include/std/any: Likewise.
6501         * include/std/atomic: Likewise.
6502         * include/std/bitset: Likewise.
6503         * include/std/chrono: Likewise.
6504         * include/std/complex: Likewise.
6505         * include/std/condition_variable: Likewise.
6506         * include/std/fstream: Likewise.
6507         * include/std/future: Likewise.
6508         * include/std/iostream: Likewise.
6509         * include/std/istream: Likewise.
6510         * include/std/mutex: Likewise.
6511         * include/std/numeric: Likewise.
6512         * include/std/ostream: Likewise.
6513         * include/std/ratio: Likewise.
6514         * include/std/shared_mutex: Likewise.
6515         * include/std/stdexcept: Likewise.
6516         * include/std/streambuf: Likewise.
6517         * include/std/system_error: Likewise.
6518         * include/std/thread: Likewise.
6519         * include/std/valarray: Likewise.
6520         * include/std/variant: Likewise.
6521         * include/tr1/cmath: Likewise.
6522         * include/tr1/regex: Likewise.
6523         * include/tr2/dynamic_bitset: Likewise.
6524         * libsupc++/atomic_lockfree_defines.h: Likewise.
6525         * libsupc++/exception: Likewise.
6526         * libsupc++/exception.h: Likewise.
6527         * libsupc++/exception_ptr.h: Likewise.
6528         * libsupc++/nested_exception.h: Likewise.
6530 2021-03-31  Alexandre Oliva  <oliva@adacore.com>
6532         * testsuite/30_threads/future/members/poll.cc: Use faster
6533         after-ready call in the calibration loop.
6535 2021-03-29  Jonathan Wakely  <jwakely@redhat.com>
6537         * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
6538         * doc/html/manual/status.html: Regenerate.
6540 2021-03-28  François Dumont  <fdumont@gcc.gnu.org>
6542         * include/debug/forward_list
6543         (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
6544         * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
6545         call to safe container allocator aware move constructor.
6546         * include/debug/vector (vector(vector&&, const allocator_type&)):
6547         Fix noexcept qualification.
6548         * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
6549         Add allocator-extended move constructor noexceot qualification check.
6550         * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
6552 2021-03-26  Jonathan Wakely  <jwakely@redhat.com>
6554         * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
6555         fallback is needed.
6556         [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
6557         New helper functions and callback.
6558         (random_device::_M_init): Add 'prng' and 'all' enumerators.
6559         Replace switch with fallthrough with a series of 'if' statements.
6560         [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
6561         checks fail.
6562         (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
6563         token.
6564         (random_device::_M_getval): Check for callback unconditionally
6565         and always pass _M_file pointer.
6566         * testsuite/26_numerics/random/random_device/85494.cc: Remove
6567         effective-target check. Use new random_device_available helper.
6568         * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
6569         * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
6570         Remove effective-target check.
6571         * testsuite/26_numerics/random/random_device/cons/default.cc:
6572         Likewise.
6573         * testsuite/26_numerics/random/random_device/cons/token.cc: Use
6574         new random_device_available helper. Test "prng" token.
6575         * testsuite/util/testsuite_random.h (random_device_available):
6576         New helper function.
6578 2021-03-25  François Dumont  <fdumont@gcc.gnu.org>
6580         * include/debug/string
6581         (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
6582         (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
6583         (basic_string<>::erase): Adapt to take __const_iterator.
6584         (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
6585         (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
6586         remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
6587         [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
6588         (__gnu_debug::u16string, __gnu_debug::u32string): New.
6589         (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
6590         (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
6591         * testsuite/util/exception/safety.h
6592         (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
6593         (insert_base<__gnu_debug::basic_string<>>): Likewise.
6594         * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
6595         New partial specialization.
6596         * testsuite/21_strings/basic_string/hash/debug.cc: New test.
6597         * testsuite/21_strings/basic_string/requirements/citerators.cc:
6598         Add test on __gnu_debug::string.
6599         * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
6600         * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
6601         * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
6602         Likewise.
6603         * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
6604         Likewise.
6605         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
6606         Likewise.
6607         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
6608         Likewise.
6609         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
6610         Likewise.
6611         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
6612         Likewise.
6613         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
6614         Likewise.
6615         * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
6617 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
6619         PR c++/99672
6620         * testsuite/18_support/source_location/consteval.cc (main): Adjust
6621         expected column numbers.
6622         * testsuite/18_support/source_location/1.cc (main): Likewise.
6624 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
6626         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
6628 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
6630         * testsuite/util/exception/safety.h (setup_base::generate):
6631         Support seeding random engine.
6632         (erase_point, erase_range): Adjust range of random numbers to
6633         ensure dereferenceable iterators are used where required.
6634         (generation_prohibited::run): Do not try to erase from empty
6635         containers.
6636         * testsuite/util/testsuite_containergen.h (test_containers):
6637         Support seeding random engine.
6639 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
6641         * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6642         line with a check that uses the const being/end overloads.
6644 2021-03-23  Moritz Sichert  <sichert@in.tum.de>
6646         * include/std/ranges (reverse_view::begin, reverse_view::end):
6647         Qualify make_reverse_iterator calls to avoid ADL.
6648         * testsuite/std/ranges/adaptors/reverse.cc: Test that
6649         views::reverse works when make_reverse_iterator is defined
6650         in an associated namespace.
6652 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
6654         * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6655         Do not define when compiling with Clang.
6657 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
6659         * include/std/string_view (basic_string_view(Range&&)): Define new
6660         constructor and deduction guide.
6661         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6662         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6664 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
6666         * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6667         Add missing 'noexcept' as per LWG 2280.
6668         (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6669         (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6670         * testsuite/24_iterators/range_access/range_access.cc: Check for
6671         expected noexcept specifiers. Check result types of generic
6672         std::begin and std::end overloads.
6673         * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6674         Check for expected noexcept specifiers.
6675         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6676         Likewise.
6678 2021-03-19  Jonathan Wakely  <jwakely@redhat.com>
6680         * include/std/type_traits (is_scoped_enum): Define.
6681         * include/std/version (__cpp_lib_is_scoped_enum): Define.
6682         * testsuite/20_util/is_scoped_enum/value.cc: New test.
6683         * testsuite/20_util/is_scoped_enum/version.cc: New test.
6685 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
6687         PR libstdc++/99341
6688         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6689         std::once_flag symbols.
6690         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6691         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6692         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6693         Likewise.
6694         * config/abi/pre/gnu.ver: Likewise.
6695         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6696         (struct __once_flag_compat): Remove.
6697         (_ZNSt9once_flag11_M_activateEv): Remove.
6698         (_ZNSt9once_flag9_M_finishEb): Remove.
6700 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
6702         PR libstdc++/99341
6703         * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
6704         Revert to pthread_once_t implementation.
6705         [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
6706         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6707         (struct __once_flag_compat): New type matching the reverted
6708         implementation of once_flag using futexes.
6709         (once_flag::_M_activate): Remove, replace with ...
6710         (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
6711         (once_flag::_M_finish): Remove, replace with ...
6712         (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
6713         * testsuite/30_threads/call_once/66146.cc: Removed.
6715 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
6717         * testsuite/17_intro/names.cc: Exclude j from the list
6718         of test symbols for Darwin.
6720 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
6722         * config/os/bsd/darwin/ppc-extra.ver: Add matching for
6723         to_chars and from_chars for long double.
6725 2021-03-15  Patrick Palka  <ppalka@redhat.com>
6727         * include/bits/max_size_type.h (__max_size_type::operator _Tp):
6728         Fix formatting.
6729         (__max_size_type::operator++): Define.
6730         (__max_size_type::operator--): Likewise.
6731         (__max_size_type::operator<=>): Conditionally define (in place
6732         of the other comparison operators).
6733         (__max_diff_type::operator _Tp): Fix formatting.
6734         (__max_diff_type::operator++): Define.
6735         (__max_diff_type::operator--): Likewise.
6736         (__max_diff_type::operator<=>): Conditionally define (in place
6737         of the other comparison operators).
6738         * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
6739         these operator overloads.
6741 2021-03-15  Caroline Tice  <cmtice@google.com>
6743         PR libstdc++/99172
6744         * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
6745         AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
6746         AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
6747         filtered out.
6748         * src/Makefile.in: Regenerate.
6750 2021-03-11  Patrick Palka  <ppalka@redhat.com>
6752         * src/c++17/floating_to_chars.cc: Simplify the file as if
6753         __SIZEOF_INT128__ is always defined.
6754         [!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
6755         a base-10 to_chars overload for the uint128_t class type.
6756         * src/c++17/uint128_t.h: New file.
6757         * testsuite/20_util/to_chars/long_double.cc: No longer expect an
6758         execution FAIL on targets that have a large long double type
6759         but lack __int128.
6761 2021-03-11  Patrick Palka  <ppalka@redhat.com>
6763         * src/c++17/ryu/LOCAL_PATCHES: Update.
6764         * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
6765         * src/c++17/ryu/generic_128.h: Likewise.
6766         * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
6767         Use uint128_t instead of __uint128_t.
6768         (generic_binary_to_decimal): Likewise.
6770 2021-03-11  Patrick Palka  <ppalka@redhat.com>
6772         * src/c++17/ryu/LOCAL_PATCHES: New file.
6774 2021-03-11  Patrick Palka  <ppalka@redhat.com>
6776         * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
6777         defined alias of unsigned __int128.
6778         (floating_type_traits_binary128::mantissa_t): Use uint128_t
6779         instead of unsigned __int128.
6780         (floating_type_traits<long double>::mantissa_t)
6781         [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
6782         (get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
6783         and uint32_t explicit.  Simplify the extraction of mantissa,
6784         exponent and sign bit.
6786 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
6788         * include/std/barrier (barrier::arrival_token): New move-only
6789         class that encapsulates the underlying token value.
6791 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
6793         * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
6794         instead of unqualified() method.
6796 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
6798         PR libstdc++/99537
6799         * include/std/stop_token (_Stop_state_t::_M_release_ownership):
6800         Use acq_rel memory ordering.
6802 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
6804         PR libstdc++/99533
6805         * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
6806         helper function to check for permission denied errors.
6807         * src/filesystem/dir.cc (recursive_directory_iterator):
6808         Likewise.
6809         * src/filesystem/dir-common.h (is_permission_denied_error): New
6810         helper function.
6812 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
6814         PR libstdc++/99536
6815         * include/bits/random.h (normal_distribution): Use
6816         default-initializer for _M_saved and _M_saved_available.
6818 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
6820         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
6821         link with libatomic.
6822         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6823         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6824         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6825         * testsuite/30_threads/barrier/arrive.cc: Likewise.
6826         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6827         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6828         * testsuite/30_threads/barrier/completion.cc: Likewise.
6829         * testsuite/30_threads/latch/3.cc: Likewise.
6830         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
6831         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
6832         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6834 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
6836         PR libstdc++/99413
6837         * include/bits/align.h: Include debug/assertions.h.
6838         * include/bits/codecvt.h: Include bits/c++config.h.
6839         * include/bits/enable_special_members.h: Likewise.
6840         * include/bits/erase_if.h: Likewise.
6841         * include/bits/functional_hash.h: Include <type_traits>.
6842         * include/bits/invoke.h: Include bits/move.h.
6843         * include/bits/ostream_insert.h: Include bits/exception_defines.h.
6844         * include/bits/parse_numbers.h: Include <type_traits>.
6845         * include/bits/predefined_ops.h: Include bits/c++config.h.
6846         * include/bits/range_access.h: Include bits/stl_iterator.h.
6847         * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
6848         * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
6849         * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
6850         * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
6851         * include/bits/unique_lock.h: Include bits/std_mutex.h.
6852         * include/debug/assertions.h: Include bits/c++config.h.
6854 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
6856         * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
6857         (ranges::equal_to, ranges::not_equal_to): Do not constrain
6858         with __eq_builtin_ptr_cmp.
6859         (ranges::less, ranges::greater, ranges::less_equal)
6860         (ranges::greater_equal): Do not constrain with
6861         __less_builtin_ptr_cmp.
6862         * libsupc++/compare (compare_three_way): Do not constrain with
6863         __3way_builtin_ptr_cmp.
6864         * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
6865         * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
6866         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
6868 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
6870         * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
6871         C++20 calendar types.
6873 2021-03-06  Jakub Jelinek  <jakub@redhat.com>
6875         PR libstdc++/99396
6876         * include/std/bit (__rotl, __rotr): Add optimized variants for power of
6877         two _Nd which the compiler can pattern match the rotates.
6879 2021-03-04  Jonathan Wakely  <jwakely@redhat.com>
6881         PR libstdc++/99382
6882         * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
6883         Make storage larger than required. Verify no write to the last
6884         element.
6885         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
6886         Likewise.
6888 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6890         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6891         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6892         Likewise.
6893         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6894         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6895         Likewise.
6897 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6899         * include/experimental/bits/simd.h: Replace reserved _X, _B by
6900         _Xp, _Bp.
6901         * include/experimental/bits/simd_builtin.h: Likewise.
6902         * include/experimental/bits/simd_x86.h: Likewise.
6904 2021-02-27  Jonathan Wakely  <jwakely@redhat.com>
6906         PR libstdc++/99301
6907         * include/std/chrono (year_month_day::_M_days_since_epoch()):
6908         Convert chrono::month and chrono::day to unsigned before
6909         converting to uint32_t.
6911 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
6913         * include/std/chrono (year_month_day::_S_from_days): Perform
6914         all calculations with type uint32_t.
6916 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
6918         * doc/xml/manual/abi.xml: Document versioning for GCC 11.
6919         * doc/html/manual/abi.html: Regenerate.
6921 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
6923         PR libstdc++/99270
6924         * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
6925         FILE instead of FILE.
6927 2021-02-25  Andreas Schwab  <schwab@suse.de>
6929         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6930         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
6931         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6932         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6934 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
6936         PR libstdc++/99265
6937         * include/std/chrono (year_month_day::_S_from_days): Cast long
6938         to int explicitly.
6940 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
6942         * include/std/utility (to_underlying): Define.
6943         * include/std/version (__cpp_lib_to_underlying): Define.
6944         * testsuite/20_util/to_underlying/1.cc: New test.
6945         * testsuite/20_util/to_underlying/version.cc: New test.
6947 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
6949         PR libstdc++/99261
6950         * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
6951         before value to be printed.
6953 2021-02-24  Patrick Palka  <ppalka@redhat.com>
6955         * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
6956         Relax the condition that guards the printf code path to accept
6957         F128_type as well as long double.
6959 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
6961         * include/std/chrono (year_month_day_last:day): New
6962         implementation.
6964 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
6966         * include/std/chrono (year::is_leap): New implementation.
6967         * testsuite/std/time/year/2.cc: New test.
6969 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
6971         * include/std/chrono (year_month_day::_M_days_since_epoch):
6972         New implementation.
6973         * testsuite/std/time/year_month_day/4.cc: New test.
6975 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
6977         * include/std/chrono (year_month_day::_S_from_days): New
6978         implementation.
6979         * testsuite/std/time/year_month_day/3.cc: New test.
6981 2021-02-24  Patrick Palka  <ppalka@redhat.com>
6983         PR libstdc++/98384
6984         * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
6985         (test01): Simplify verifying the nearby values by using a
6986         2-iteration loop and a dedicated output buffer to check that the
6987         nearby values are different.  Factor out the printf-based
6988         verification into a local function, and check that the leading
6989         hex digits agree before comparing to the output of printf.  Also
6990         verify the output by round-tripping it through from_chars.
6992 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
6994         PR libstdc++/98389
6995         * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
6996         symbols for long double arguments mangled as 'g'.
6997         * config/os/gnu-linux/ldbl-extra.ver: Likewise.
6998         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
6999         * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
7000         Use -mabi=ibmlongdouble for floating_to_chars.cc.
7001         * src/c++17/Makefile.in: Regenerate.
7002         * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
7003         New type defining type traits of IEEE binary128 format.
7004         (floating_type_traits<__float128>): Define specialization.
7005         (floating_type_traits<long double>): Define in terms of
7006         floating_type_traits_binary128 when appropriate.
7007         (floating_to_shortest_scientific): Handle __float128.
7008         (sprintf_ld): New function template for printing a long double
7009         or __ieee128 value using sprintf.
7010         (__floating_to_chars_shortest, __floating_to_chars_precision):
7011         Use sprintf_ld.
7012         (to_chars): Define overloads for __float128.
7014 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
7016         * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
7018 2021-02-23  Martin Sebor  <msebor@redhat.com>
7020         PR c++/99074
7021         * libsupc++/dyncast.cc (__dynamic_cast): Return null when
7022         first argument is null.
7024 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
7026         PR libstdc++/99181
7027         * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
7028         test.
7030 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
7032         PR libstdc++/99181
7033         * include/bits/char_traits.h (char_traits<char>::compare): For
7034         constexpr evaluation don't call
7035         __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
7036         directly.
7038 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
7040         PR libstdc++/97549
7041         * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
7043 2021-02-23  Patrick Palka  <ppalka@redhat.com>
7045         PR libstdc++/98384
7046         * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
7047         the high- and low-order parts from an IBM long double value
7048         in an endian-agnostic way.
7050 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
7052         * include/bits/atomic_wait.h (__thread_relax()): Call
7053         __thread_yield() not __gthread_yield().
7055 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
7057         * include/bits/atomic_wait.h (__thread_yield()): Check
7058         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
7059         (__thread_relax()): Use __thread_yield() instead of repeating
7060         the preprocessor checks for __gthread_yield.
7062 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
7064         * include/std/mutex (once_flag::_M_activate()): Add explicit
7065         return statement for passive case.
7066         (once_flag::_M_finish(bool)): Use reserved name for parameter.
7068 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
7070         PR libstdc++/99096
7071         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
7073 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7075         PR libstdc++/88881
7076         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
7078 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7080         * doc/xml/manual/status_cxx2014.xml: Document implementation
7081         specific properties of std::experimental::filesystem::rename.
7082         * doc/xml/manual/status_cxx2017.xml: Document implementation
7083         specific properties of std::filesystem::rename.
7084         * doc/html/*: Regenerate.
7085         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
7086         for directories on Windows.
7087         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
7088         MoveFileExW on Windows.
7089         * testsuite/27_io/filesystem/operations/rename.cc: New test.
7090         * testsuite/experimental/filesystem/operations/rename.cc: New test.
7092 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7094         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
7095         random number to the path.
7097 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7099         * include/experimental/internet (address_v6::to_string): Include
7100         scope ID in string.
7101         * testsuite/experimental/net/internet/address/v6/members.cc:
7102         Test to_string() results.
7104 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7106         * include/experimental/internet (address_v6::any): Avoid using
7107         memcpy in constexpr function.
7108         (address_v6::loopback): Likewise.
7109         (make_address_v6): Fix missing return statements on error paths.
7110         * include/experimental/io_context: Avoid -Wdangling-else
7111         warning.
7112         * testsuite/experimental/net/internet/address/v4/members.cc:
7113         Remove unused variables.
7114         * testsuite/experimental/net/internet/address/v6/members.cc:
7115         New test.
7117 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7119         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
7120         Add unused attribute to parameter.
7121         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
7122         Likewise.
7124 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7126         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
7127         if -fno-rtti is used.
7128         * testsuite/30_threads/async/forced_unwind.cc: Expect test
7129         to abort if -fno-rtti is used.
7131 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7133         * testsuite/util/testsuite_allocator.h (memory_resource):
7134         Remove requirement for RTTI and exceptions to be enabled.
7136 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7138         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
7139         static_cast when RTTI is disabled.
7140         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
7141         Likewise.
7142         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
7143         Likewise.
7144         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
7145         Likewise.
7146         * testsuite/27_io/basic_stringstream/str/char/2.cc:
7147         Likewise.
7148         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
7149         Likewise.
7151 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7153         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
7154         as unused and only use dynamic_cast when RTTI is enabled.
7156 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7158         PR libstdc++/99077
7159         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
7160         Change int parameter to error_code, to match std::ios_failure.
7161         (__throw_ios_failure(const char*, int)): Construct error_code
7162         from int parameter.
7164 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
7166         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
7167         new macro.
7168         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
7169         macro instead of _GLIBCXX_EH_PTR_COMPAT.
7170         (operator==): Likewise.
7172 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
7174         PR libstdc++/99058
7175         * doc/xml/manual/status_cxx2011.xml: Document when support
7176         became stable.
7177         * doc/xml/manual/status_cxx2014.xml: Likewise.
7178         * doc/xml/manual/status_cxx2017.xml: Likewise.
7179         * doc/html/manual/status.html: Regenerate.
7181 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
7183         PR libstdc++/88881
7184         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
7186 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
7188         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
7189         (fs::remove): Use std::system_category() for error codes from
7190         GetLastError().
7191         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
7192         Likewise.
7194 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
7196         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
7197         in __MINGW32__ macro name.
7198         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
7199         * testsuite/27_io/filesystem/path/generation/proximate.cc:
7200         Likewise.
7201         * testsuite/27_io/filesystem/path/generation/relative.cc:
7202         Likewise.
7203         * testsuite/util/testsuite_fs.h: Likewise.
7205 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
7207         * include/bits/stl_tree.h
7208         (__has_is_transparent, __has_is_transparent_t): Move...
7209         * include/bits/stl_function.h: ...here.
7210         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
7211         (_Hashtable_base<>::_M_equals_tr): New.
7212         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
7213         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
7214         heterogeneous lookup.
7215         (_Hashtable<>::_M_find_before_node_tr): New.
7216         (_Hashtable<>::_M_find_node_tr): New.
7217         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
7218         unordered_map::contains<>, unordered_map::equal_range<>): New member function
7219         templates to perform heterogeneous lookup.
7220         (unordered_multimap::find<>, unordered_multimap::count<>,
7221         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
7222         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
7223         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
7224         (unordered_multiset::find<>, unordered_multiset::count<>,
7225         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
7226         * include/debug/unordered_map
7227         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
7228         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
7229         * include/debug/unordered_set
7230         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
7231         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
7232         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
7233         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
7234         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
7235         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
7237 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
7239         * include/bits/stl_deque.h
7240         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
7241         a null pointer test.
7243 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
7245         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
7246         test directory after making it writable again.
7247         * testsuite/experimental/filesystem/operations/remove_all.cc:
7248         Likewise.
7250 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
7252         PR libstdc++/99021
7253         * include/std/coroutine (coroutine_handle<P>::from_address): Add
7254         noexcept.
7256 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
7258         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
7259         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
7261 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
7263         PR middle-end/98465
7264         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
7265         points to the characters moved by earlier _S_move, compute the source
7266         address using expression based on the __p pointer rather than __s
7267         pointer.
7269 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
7271         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
7272         Add comparison with same category and different values.
7273         * testsuite/19_diagnostics/error_code/operators/less.cc:
7274         Likewise. Fix comparison involving different categories.
7275         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
7276         Likewise.
7277         * testsuite/19_diagnostics/error_condition/operators/less.cc:
7278         Add comment.
7279         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
7280         Likewise.
7282 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
7284         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
7285         calls with a single vaddv for aarch64.
7287 2021-02-03  Matthias Kretz  <kretz@kde.org>
7289         * testsuite/Makefile.am: Warn about the workaround. Add
7290         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
7291         Improve initial user feedback from make check-simd.
7292         * testsuite/Makefile.in: Regenerated.
7294 2021-02-03  Matthias Kretz  <kretz@kde.org>
7296         * include/experimental/bits/simd.h: Add __detail::_Minimum and
7297         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
7298         Add hmin and hmax overloads for simd and const_where_expression.
7299         * include/experimental/bits/simd_scalar.h
7300         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
7301         parameter const-ref to allow calling _S_reduce with an rvalue.
7302         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
7303         hmin and hmax. Since the compiler statically determined that all
7304         tests pass, repeat the test after a call to make_value_unknown.
7306 2021-02-03  Matthias Kretz  <kretz@kde.org>
7308         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
7309         instruction pointer data member. Ensure that the `if (m_failed)`
7310         branch is always inlined into the calling code. The body of the
7311         conditional can still be a function call. Move the get_ip call
7312         into the verify ctor to simplify the ctor calls.
7313         (COMPARE): Don't mention the use of all_of for reduction of a
7314         simd_mask. It only distracts from the real issue.
7316 2021-02-03  Matthias Kretz  <kretz@kde.org>
7318         * testsuite/experimental/simd/driver.sh: Abstract reading test
7319         options into read_src_option function. Read skip, only,
7320         expensive, and xfail via read_src_option. Add timeout and
7321         timeout-factor options and adjust timeout variable accordingly.
7322         * testsuite/experimental/simd/tests/loadstore.cc: Set
7323         timeout-factor 2.
7325 2021-02-03  Matthias Kretz  <kretz@kde.org>
7327         * testsuite/experimental/simd/driver.sh: When handling the pipe
7328         to log (and on verbose to stdout) count the lines. If it exceeds
7329         1000 log the issue and exit 125, which is then handled as a
7330         failure.
7332 2021-02-03  Matthias Kretz  <kretz@kde.org>
7334         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
7335         markup for long double on powerpc64*.
7337 2021-02-03  Matthias Kretz  <kretz@kde.org>
7339         * include/experimental/bits/simd.h: Add __have_power10vec
7340         conditional on _ARCH_PWR10.
7341         * include/experimental/bits/simd_builtin.h: Forward declare
7342         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
7343         defined.
7344         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
7345         _SuperImpl for optimizations and correctness.
7346         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
7347         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
7348         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
7349         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
7351 2021-02-03  Matthias Kretz  <kretz@kde.org>
7353         * testsuite/experimental/simd/driver.sh: Remove executable on
7354         SIGINT. Process compiler and test executable output: In verbose
7355         mode print messages immediately, limited to 1000 lines and
7356         breaking long lines to below $COLUMNS (or 1024 if not set).
7357         Communicating the exit status of the compiler / test with the
7358         necessary pipe is done via a message through stdout/-in.
7360 2021-02-03  Matthias Kretz  <kretz@kde.org>
7362         * testsuite/Makefile.am: Ensure .simd.summary is empty before
7363         collecting a new summary.
7364         * testsuite/Makefile.in: Regenerate.
7366 2021-02-03  Matthias Kretz  <kretz@kde.org>
7368         * testsuite/experimental/simd/generate_makefile.sh: Use
7369         different variables internally than documented for user
7370         overrides. This makes internal append/prepend work as intended.
7372 2021-02-03  Matthias Kretz  <kretz@kde.org>
7374         * testsuite/experimental/simd/driver.sh (verify_test): Print
7375         test output on run xfail. Do not repeat lines from the log that
7376         were already printed on stdout.
7377         (test_selector): Make the compiler flags pattern usable as a
7378         substring selector.
7379         (toplevel): Trap on SIGINT and remove the log and sum files.
7380         Call timout with --foreground to quickly terminate on SIGINT.
7381         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
7382         targets via target patterns. Default DRIVEROPTS to -v for run
7383         targets. Remove log and sum files after completion of the run
7384         target (so that it's always recompiled).
7385         Place help text into text file for reasonable 'make help'
7386         performance.
7388 2021-02-03  Matthias Kretz  <kretz@kde.org>
7390         * include/experimental/bits/simd.h: Remove unnecessary static
7391         assertion. Allow sizeof(8) integer __intrinsic_type to enable
7392         the necessary mask type.
7394 2021-02-03  Matthias Kretz  <kretz@kde.org>
7396         * include/experimental/bits/simd.h: Let __intrinsic_type<long
7397         double, N> be valid if sizeof(long double) == sizeof(double) and
7398         use a __vector double as member type.
7400 2021-02-03  Matthias Kretz  <kretz@kde.org>
7402         * include/experimental/bits/simd.h (__is_intrinsic_type): New
7403         internal type trait. Alias for __is_vector_type on x86.
7404         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
7405         __vector_type.
7406         (__intrin_bitcast): Allow casting to & from vector & intrinsic
7407         types.
7408         (__intrinsic_type): Explicitly specialize for NEON intrinsic
7409         vector types.
7411 2021-02-03  Matthias Kretz  <kretz@kde.org>
7413         * testsuite/experimental/simd/driver.sh: Implement skip, only,
7414         expensive, and xfail markers. They can select on type, ABI tag
7415         subset number, target-triplet, and compiler flags.
7416         * testsuite/experimental/simd/generate_makefile.sh: The summary
7417         now includes lines for unexpected passes and expected failures.
7418         If the skip or only markers are only conditional on the type, do
7419         not generate rules for those types.
7420         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
7421         for ABI tag subsets 1-9.
7422         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7423         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7424         * testsuite/experimental/simd/tests/casts.cc: Ditto.
7425         * testsuite/experimental/simd/tests/generator.cc: Ditto.
7426         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7427         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7428         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7429         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7430         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7431         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
7432         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7433         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7434         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7435         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7436         * testsuite/experimental/simd/tests/operators.cc: Ditto.
7437         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7438         * testsuite/experimental/simd/tests/simd.cc: Ditto.
7439         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7440         * testsuite/experimental/simd/tests/splits.cc: Ditto.
7441         * testsuite/experimental/simd/tests/where.cc: Ditto.
7442         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
7443         addition replace "test only floattypes" marker by unconditional
7444         "float|double|ldouble" only marker.
7445         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7446         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7447         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7448         Ditto.
7449         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7450         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7451         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7452         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7453         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7454         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7455         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
7456         addition, xfail on run because the reference data is missing.
7458 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
7460         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
7461         * doc/xml/manual/status_cxx2014.xml: Likewise.
7462         * doc/xml/manual/status_cxx2017.xml: Likewise.
7463         * doc/html/manual/status.html: Regenerate.
7465 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
7467         PR libstdc++/70303
7468         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
7469         Return 0 if both iterators are value-initialized.
7470         * testsuite/23_containers/deque/70303.cc: New test.
7471         * testsuite/23_containers/vector/70303.cc: New test.
7473 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
7475         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
7476         status.
7477         * doc/xml/manual/status_cxx2014.xml: Likewise.
7478         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
7479         std::from_chars and std::to_chars status. Fix formatting.
7480         * doc/html/manual/status.html: Regenerate.
7482 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
7484         * include/experimental/bits/numeric_traits.h: Update copyright
7485         dates.
7486         * include/experimental/bits/simd.h: Likewise.
7487         * include/experimental/bits/simd_builtin.h: Likewise.
7488         * include/experimental/bits/simd_converter.h: Likewise.
7489         * include/experimental/bits/simd_detail.h: Likewise.
7490         * include/experimental/bits/simd_fixed_size.h: Likewise.
7491         * include/experimental/bits/simd_math.h: Likewise.
7492         * include/experimental/bits/simd_neon.h: Likewise.
7493         * include/experimental/bits/simd_ppc.h: Likewise.
7494         * include/experimental/bits/simd_scalar.h: Likewise.
7495         * include/experimental/bits/simd_x86.h: Likewise.
7496         * include/experimental/bits/simd_x86_conversions.h: Likewise.
7497         * include/experimental/simd: Likewise.
7498         * testsuite/experimental/simd/*: Likewise.
7500 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
7502         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
7503         * doc/html/*: Regenerate.
7505 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
7507         * testsuite/experimental/simd/generate_makefile.sh: Use printf
7508         instead of echo when printing escape characters.
7510 2021-01-27  Matthias Kretz  <kretz@kde.org>
7512         * scripts/check_simd: New file. This script is called from the
7513         the check-simd target. It determines a set of compiler flags and
7514         simulator setups for calling generate_makefile.sh and passes the
7515         information back to the check-simd target, which recurses to the
7516         generated Makefiles.
7517         * scripts/create_testsuite_files: Remove files below simd/tests/
7518         from testsuite_files and place them in testsuite_files_simd.
7519         * testsuite/Makefile.am: Add testsuite_files_simd. Add
7520         check-simd target.
7521         * testsuite/Makefile.in: Regenerate.
7522         * testsuite/experimental/simd/driver.sh: New file. This script
7523         compiles and runs a given simd test, logging its output and
7524         status. It uses the timeout command to implement compile and
7525         test timeouts.
7526         * testsuite/experimental/simd/generate_makefile.sh: New file.
7527         This script generates a Makefile which uses driver.sh to compile
7528         and run the tests and collect the logs into a single log file.
7529         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
7530         abs(simd).
7531         * testsuite/experimental/simd/tests/algorithms.cc: New file.
7532         Tests min/max(simd, simd).
7533         * testsuite/experimental/simd/tests/bits/conversions.h: New
7534         file. Contains functions to support tests involving conversions.
7535         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
7536         Support functions make_mask and make_vec.
7537         * testsuite/experimental/simd/tests/bits/mathreference.h: New
7538         file. Support functions to supply precomputed math function
7539         reference data.
7540         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
7541         file. Support code for SFINAE testing.
7542         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
7543         * testsuite/experimental/simd/tests/bits/test_values.h: New
7544         file. Test functions to easily drive a test with simd objects
7545         initialized from a given list of values and a range of random
7546         values.
7547         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
7548         Support code to determine the ULP distance of simd objects.
7549         * testsuite/experimental/simd/tests/bits/verify.h: New file.
7550         Test framework for COMPARE'ing simd objects and instantiating
7551         the test templates with value_type and ABI tag.
7552         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
7553         simd broadcasts.
7554         * testsuite/experimental/simd/tests/casts.cc: New file. Test
7555         simd casts.
7556         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
7557         Test floating-point classification functions.
7558         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
7559         frexp(simd).
7560         * testsuite/experimental/simd/tests/generator.cc: New file. Test
7561         simd generator constructor.
7562         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
7563         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
7564         * testsuite/experimental/simd/tests/integer_operators.cc: New
7565         file. Test integer operators.
7566         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7567         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
7568         modf(simd).
7569         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
7570         (converting) simd loads and stores.
7571         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
7572         log*(simd).
7573         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
7574         Test simd_mask broadcasts.
7575         * testsuite/experimental/simd/tests/mask_conversions.cc: New
7576         file. Test simd_mask conversions.
7577         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
7578         file. Test simd_mask implicit conversions.
7579         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
7580         Test simd_mask loads and stores.
7581         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
7582         file. Test simd_mask operators convert as specified.
7583         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
7584         Test simd_mask compares, subscripts, and negation.
7585         * testsuite/experimental/simd/tests/mask_reductions.cc: New
7586         file. Test simd_mask reductions.
7587         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
7588         1-arg math functions on simd.
7589         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
7590         2-arg math functions on simd.
7591         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
7592         Test implicit conversions on simd binary operators behave as
7593         specified.
7594         * testsuite/experimental/simd/tests/operators.cc: New file. Test
7595         simd compares, subscripts, not, unary minus, plus, minus,
7596         multiplies, divides, increment, and decrement.
7597         * testsuite/experimental/simd/tests/reductions.cc: New file.
7598         Test reduce(simd).
7599         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
7600         remqo(simd).
7601         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
7602         sanity checks of simd types.
7603         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
7604         sin(simd) and cos(simd).
7605         * testsuite/experimental/simd/tests/split_concat.cc: New file.
7606         Test split(simd) and concat(simd, simd).
7607         * testsuite/experimental/simd/tests/splits.cc: New file. Test
7608         split(simd_mask).
7609         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
7610         Test remaining trigonometric functions on simd.
7611         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
7612         file. Test trunc(simd), ceil(simd), and floor(simd).
7613         * testsuite/experimental/simd/tests/where.cc: New file. Test
7614         masked operations using where.
7616 2021-01-27  Matthias Kretz  <kretz@kde.org>
7618         * doc/xml/manual/status_cxx2017.xml: Add implementation status
7619         of the Parallelism TS 2. Document implementation-defined types
7620         and behavior.
7621         * include/Makefile.am: Add new headers.
7622         * include/Makefile.in: Regenerate.
7623         * include/experimental/simd: New file. New header for
7624         Parallelism TS 2.
7625         * include/experimental/bits/numeric_traits.h: New file.
7626         Implementation of P1841R1 using internal naming. Addition of
7627         missing IEC559 functionality query.
7628         * include/experimental/bits/simd.h: New file. Definition of the
7629         public simd interfaces and general implementation helpers.
7630         * include/experimental/bits/simd_builtin.h: New file.
7631         Implementation of the _VecBuiltin simd_abi.
7632         * include/experimental/bits/simd_converter.h: New file. Generic
7633         simd conversions.
7634         * include/experimental/bits/simd_detail.h: New file. Internal
7635         macros for the simd implementation.
7636         * include/experimental/bits/simd_fixed_size.h: New file. Simd
7637         fixed_size ABI specific implementations.
7638         * include/experimental/bits/simd_math.h: New file. Math
7639         overloads for simd.
7640         * include/experimental/bits/simd_neon.h: New file. Simd NEON
7641         specific implementations.
7642         * include/experimental/bits/simd_ppc.h: New file. Implement bit
7643         shifts to avoid invalid results for integral types smaller than
7644         int.
7645         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7646         ABI specific implementations.
7647         * include/experimental/bits/simd_x86.h: New file. Simd x86
7648         specific implementations.
7649         * include/experimental/bits/simd_x86_conversions.h: New file.
7650         x86 specific conversion optimizations. The conversion patterns
7651         work around missing conversion patterns in the compiler and
7652         should be removed as soon as PR85048 is resolved.
7653         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7654         Test that all (not all fixed_size<N>, though) standard simd and
7655         simd_mask types are usable.
7656         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7657         file. As above but with -ffast-math.
7658         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7659         from the standard test loop. Instead use
7660         check_vect_support_and_set_flags to build simd tests with the
7661         relevant machine flags.
7663 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
7665         PR libstdc++/66414
7666         * include/bits/string_view.tcc
7667         (basic_string_view::find(const CharT*, size_type, size_type)):
7668         Optimize.
7670 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
7672         * include/bits/basic_string.h (basic_string::contains): New
7673         member functions.
7674         * include/std/string_view (basic_string_view::contains):
7675         Likewise.
7676         * include/std/version (__cpp_lib_string_contains): Define.
7677         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7678         Remove trailing whitespace.
7679         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7680         Likewise.
7681         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7682         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7683         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7684         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7685         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7687 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
7689         * src/c++17/Makefile.in: Regenerate.
7691 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
7693         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7694         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7695         __lc_type.
7696         (const char* ctype<char>:: is): Same.
7698 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
7700         PR libstdc++/98725
7701         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
7702         write to a wide character stream if wide character support is
7703         disabled in the library.
7705 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
7707         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
7708         stringbuf not wstringbuf.
7710 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
7712         PR debug/98708
7713         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
7714         Compile with -gno-as-loc-support.
7715         * src/c++11/Makefile.in: Regenerated.
7717 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
7719         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
7720         Add -fcf-protection=none to -march=i486.
7722 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
7724         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
7725         compliant.
7727 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
7729         * testsuite/30_threads/future/members/poll.cc: Calibrate
7730         iteration count.
7732 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
7734         PR libstdc++/98466
7735         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
7736         (_Node_iterator()): Make default.
7737         (_Node_const_iterator()): Make default.
7738         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
7739         iterator checks.
7740         * include/debug/safe_iterator.h
7741         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
7742         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
7743         Likewise.
7744         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
7745         _M_singular checks on input iterators.
7746         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
7747         checks.
7748         * testsuite/23_containers/deque/debug/98466.cc: New test.
7749         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
7751 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
7753         PR libstdc++/98471
7754         * include/bits/fs_path.h (__throw_conversion_error): New
7755         function to throw or abort on character conversion errors.
7756         (__wstr_from_utf8): Move definition after filesystem_error has
7757         been defined. Use __throw_conversion_error.
7758         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
7759         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
7760         (path::u8string): Likewise.
7762 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
7764         * include/std/barrier: Update copyright years. Fix whitespace.
7765         * include/std/version: Fix whitespace.
7766         * testsuite/30_threads/barrier/1.cc: Update copyright years.
7767         * testsuite/30_threads/barrier/2.cc: Likewise.
7768         * testsuite/30_threads/barrier/arrive.cc: Likewise.
7769         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7770         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7771         * testsuite/30_threads/barrier/completion.cc: Likewise.
7773 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
7775         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
7777 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
7779         PR libstdc++/98613
7780         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
7781         warning.
7782         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
7784 2021-01-08  Olivier Hainque  <hainque@adacore.com>
7786         * testsuite/20_util/bind/ref_neg.cc: Tweak the
7787         dg-prune-output regex for out-of-build-tree contexts.
7789 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
7791         * doc/doxygen/user.cfg.in: Add new header.
7792         * include/Makefile.am (std_headers): likewise.
7793         * include/Makefile.in: Regenerate.
7794         * include/precompiled/stdc++.h: Add new header.
7795         * include/std/barrier: New file.
7796         * include/std/version: Add __cpp_lib_barrier feature test macro.
7797         * testsuite/30_threads/barrier/1.cc: New test.
7798         * testsuite/30_threads/barrier/2.cc: Likewise.
7799         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7800         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7801         * testsuite/30_threads/barrier/arrive.cc: Likewise.
7802         * testsuite/30_threads/barrier/completion.cc: Likewise.
7804 2021-01-07  Patrick Palka  <ppalka@redhat.com>
7806         PR libstdc++/98384
7807         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
7808         instead of the non-standard nextupl and nextdownl.
7810 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
7812         * configure: Re-generate.
7814 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
7816         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
7818 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
7820         * ChangeLog-2020: Rotate ChangeLog.  New file.
7823 Copyright (C) 2021 Free Software Foundation, Inc.
7825 Copying and distribution of this file, with or without modification,
7826 are permitted in any medium without royalty provided the copyright
7827 notice and this notice are preserved.