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