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