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