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