Daily bump.
[official-gcc.git] / libstdc++-v3 / ChangeLog
bloba12383b6e3f4747507498fb6a6793d4650c57ac9
1 2021-11-25  Jonathan Wakely  <jwakely@redhat.com>
3         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
4         Remove dg-error for C++11_only error.
6 2021-11-25  Jonathan Wakely  <jwakely@redhat.com>
8         PR libstdc++/96416
9         * include/bits/ptr_traits.h (pointer_traits): Reimplement to be
10         SFINAE-friendly (LWG 3545).
11         * testsuite/20_util/pointer_traits/lwg3545.cc: New test.
12         * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line.
13         * testsuite/20_util/to_address/lwg3545.cc: New test.
15 2021-11-25  Jonathan Wakely  <jwakely@redhat.com>
17         PR libstdc++/101608
18         * include/bits/ranges_algobase.h (__fill_n_fn): Check for
19         constant evaluation before using memset.
20         * testsuite/25_algorithms/fill_n/constrained.cc: Check
21         byte-sized values as well.
23 2021-11-24  Jonathan Wakely  <jwakely@redhat.com>
25         * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
26         debug mode.
27         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
29 2021-11-24  Jonathan Wakely  <jwakely@redhat.com>
31         * testsuite/lib/libstdc++.exp: Rename effective target keywords
32         to avoid dashes in the name.
33         * testsuite/*: Update effective targe keywords.
35 2021-11-23  Jonathan Wakely  <jwakely@redhat.com>
37         PR libstdc++/103086
38         * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr
39         with non-empty pointer and non-empty deleter.
41 2021-11-23  Jonathan Wakely  <jwakely@redhat.com>
43         * testsuite/18_support/50594.cc: Check effective target.
44         * testsuite/20_util/allocator/1.cc: Likewise.
45         * testsuite/20_util/allocator/overaligned.cc: Likewise.
46         * testsuite/23_containers/unordered_map/96088.cc: Likewise.
47         * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
48         * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
49         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
50         * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
51         * testsuite/ext/throw_allocator/check_new.cc: Likewise.
52         * testsuite/lib/libstdc++.exp (check_effective_target_std_allocator_new):
53         Define new proc.
55 2021-11-23  Jonathan Wakely  <jwakely@redhat.com>
57         PR libstdc++/103381
58         * include/ext/bitmap_allocator.h: Include <bits/stl_function.h>
59         instead of <functional>.
61 2021-11-22  Jonathan Wakely  <jwakely@redhat.com>
63         * include/bits/c++config (_GLIBCXX14_DEPRECATED): Fix condition
64         checking for C++14.
66 2021-11-20  François Dumont  <fdumont@gcc.gnu.org>
68         * include/bits/erase_if.h (__erase_nodes_if): Add _UnsafeContainer template
69         parameter. Use it to get iterators to work with.
70         * include/debug/macros.h (__glibcxx_check_erase2): New.
71         * include/debug/map.h (map<>::erase(_Base_const_iterator)): New.
72         (map<>::erase(const_iterator)): Use latter.
73         * include/debug/multimap.h (multimap<>::erase(_Base_const_iterator)): New.
74         (multimap<>::erase(const_iterator)): Use latter.
75         * include/debug/multiset.h (multiset<>::erase(_Base_const_iterator)): New.
76         (multiset<>::erase(const_iterator)): Use latter.
77         * include/debug/set.h (set<>::erase(_Base_const_iterator)): New.
78         (set<>::erase(const_iterator)): Use latter.
79         * include/debug/unordered_map (unordered_map<>::erase(_Base_const_iterator)): New.
80         (unordered_multimap<>::erase(const_iterator)): New.
81         * include/debug/unordered_set (unordered_set<>::erase(_Base_const_iterator)): New.
82         (unordered_multiset<>::erase(const_iterator)): New.
83         * include/experimental/map (erase_if): Adapt.
84         * include/experimental/set (erase_if): Adapt.
85         * include/experimental/unordered_map (erase_if): Adapt.
86         * include/experimental/unordered_set (erase_if): Adapt.
87         * include/std/map (erase_if): Adapt.
88         * include/std/set (erase_if): Adapt.
89         * include/std/unordered_map (erase_if): Adapt.
90         * include/std/unordered_set (erase_if): Adapt.
92 2021-11-19  Jonathan Wakely  <jwakely@redhat.com>
94         * testsuite/27_io/basic_istringstream/cons/char/1.cc: Check all
95         constructors.
96         * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
97         Likewise.
98         * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
99         * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
100         Likewise.
101         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
102         * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
103         Likewise.
105 2021-11-19  Jonathan Wakely  <jwakely@redhat.com>
107         * src/c++98/locale_init.cc (_S_initialize_once): Check if
108         initialization has already been done.
109         (_S_initialize): Replace __gthread_active_p with
110         __is_single_threaded. Use __builtin_expect.
112 2021-11-19  Jonathan Wakely  <jwakely@redhat.com>
114         PR libstdc++/103295
115         * include/bits/basic_string.tcc (_M_construct): Use the
116         traits assign member to write into allcoated memory.
118 2021-11-19  Iain Sandoe  <iain@sandoe.co.uk>
120         * testsuite/lib/prune.exp: Prune dsymutil (ld64) warning.
122 2021-11-19  Jonathan Wakely  <jwakely@redhat.com>
124         PR libstdc++/103332
125         PR libstdc++/102958
126         * testsuite/21_strings/basic_string/capacity/char/1.cc: Add
127         -Wno-stringop-overflow.
128         * testsuite/21_strings/basic_string/operators/char/1.cc:
129         Likewise.
130         * testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc:
131         Add -Wno-stringop-overread.
133 2021-11-19  Jonathan Wakely  <jwakely@redhat.com>
135         PR libstdc++/103295
136         * include/bits/basic_string.h (_Alloc_traits): Replace typedef
137         with struct for C++20 mode.
138         * include/bits/basic_string.tcc (_M_replace): Use _Alloc_traits
139         for allocation.
140         * include/bits/char_traits.h (__gnu_cxx::char_traits::assign):
141         Use std::_Construct during constant evaluation.
142         (__gnu_cxx::char_traits::assign(CharT*, const CharT*, size_t)):
143         Likewise. Replace std::fill_n with memset or manual loop.
144         (__gnu_cxx::char_traits::copy): Likewise, replacing std::copy
145         with memcpy.
146         * include/ext/vstring.h: Include <bits/stl_algobase.h> for
147         std::min.
148         * include/std/string_view: Likewise.
149         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
150         Add constexpr test.
152 2021-11-19  Tamar Christina  <tamar.christina@arm.com>
154         PR libstdc++/103305
155         * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit,
156         space, print, graph, cntrl, punct, alnum, blank): Use short or long
157         names depending on if short ones are defined.
159 2021-11-18  Jonathan Wakely  <jwakely@redhat.com>
161         * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
162         Do not compare unrelated pointers during constant evaluation.
163         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
164         Improve tests for char_traits::move.
166 2021-11-18  Jonathan Wakely  <jwakely@redhat.com>
168         * acinclude.m4: Replace AC_CACHE_VAL with AC_CACHE_CHECK.
169         * configure: Regenerate.
171 2021-11-17  Jonathan Wakely  <jwakely@redhat.com>
173         * include/experimental/internet (address): Use std::_Construct
174         to initialize union members.
176 2021-11-17  Jonathan Wakely  <jwakely@redhat.com>
178         * include/bits/basic_string.h (_M_construct_aux): Only define
179         for C++98. Remove constexpr.
180         (_M_construct_aux_2): Likewise.
181         (_M_construct(InputIter, InputIter)): Remove.
182         (basic_string(const basic_string&)): Call _M_construct with
183         iterator category argument.
184         (basic_string(const basic_string&, size_type, const Alloc&)):
185         Likewise.
186         (basic_string(const basic_string&, size_type, size_type)):
187         Likewise.
188         (basic_string(const charT*, size_type, const Alloc&)): Likewise.
189         Check for null pointer.
190         (basic_string(const charT*, const Alloc&)): Likewise.
191         (basic_string(initializer_list<charT>, const Alloc&)): Call
192         _M_construct with iterator category argument.
193         (basic_string(const basic_string&, const Alloc&)): Likewise.
194         (basic_string(basic_string&&, const Alloc&)): Likewise.
195         (basic_string(_InputIter, _InputIter, const Alloc&)): Likewise
196         for C++11 and later, call _M_construct_aux for C++98.
197         * include/bits/basic_string.tcc
198         (_M_construct(I, I, input_iterator_tag)): Replace try-block with
199         RAII type.
200         (_M_construct(I, I, forward_iterator_tag)): Likewise. Remove
201         __is_null_pointer check.
203 2021-11-17  Jonathan Wakely  <jwakely@redhat.com>
205         PR libstdc++/103295
206         * include/bits/basic_string.h (_M_use_local_data()): New
207         member function to make local buffer the active member.
208         (assign(const basic_string&)): Use it.
209         * include/bits/basic_string.tcc (_M_construct, reserve()):
210         Likewise.
212 2021-11-17  Jonathan Wakely  <jwakely@redhat.com>
214         PR libstdc++/103240
215         * libsupc++/tinfo2.cc (type_info::before): Use unadjusted name
216         to check for the '*' prefix.
217         * testsuite/util/testsuite_shared.cc: Add type_info object for
218         use in new test.
219         * testsuite/18_support/type_info/103240.cc: New test.
221 2021-11-16  Jonathan Wakely  <jwakely@redhat.com>
223         * include/bits/basic_string.h (operator<=>): Use constexpr
224         unconditionally.
225         * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
226         Require cxx11-abit effective target.
227         * testsuite/21_strings/headers/string/synopsis.cc: Add
228         conditional constexpr to declarations, and adjust relational
229         operators for C++20.
231 2021-11-16  Patrick Palka  <ppalka@redhat.com>
233         * src/c++17/ryu/MERGE: Update the commit hash.
234         * src/c++17/ryu/d2s_intrinsics.h: Merge from Ryu's master
235         branch.
237 2021-11-16  Jonathan Wakely  <jwakely@redhat.com>
239         * include/bits/basic_string.h (basic_string, operator""s): Add
240         constexpr for C++20.
241         (basic_string::basic_string(basic_string&&)): Only copy
242         initialized portion of the buffer.
243         (basic_string::basic_string(basic_string&&, const Alloc&)):
244         Likewise.
245         * include/bits/basic_string.tcc (basic_string): Add constexpr
246         for C++20.
247         (basic_string::swap(basic_string&)): Only copy initialized
248         portions of the buffers.
249         (basic_string::_M_replace): Add constexpr implementation that
250         doesn't depend on pointer comparisons.
251         * include/bits/cow_string.h: Adjust comment.
252         * include/ext/type_traits.h (__is_null_pointer): Add constexpr.
253         * include/std/string (erase, erase_if): Add constexpr.
254         * include/std/version (__cpp_lib_constexpr_string): Update
255         value.
256         * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
257         New test.
258         * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
259         New test.
260         * testsuite/21_strings/basic_string/literals/constexpr.cc:
261         New test.
262         * testsuite/21_strings/basic_string/modifiers/constexpr.cc: New test.
263         * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
264         New test.
265         * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
266         New test.
267         * testsuite/21_strings/basic_string/version.cc: New test.
269 2021-11-16  Jonathan Wakely  <jwakely@redhat.com>
271         * include/bits/stl_bvector.h (swap(_Bit_reference, _Bit_reference))
272         (swap(_Bit_reference, bool&), swap(bool&, _Bit_reference)):
273         Define as hidden friends of _Bit_reference.
275 2021-11-16  Jonathan Wakely  <jwakely@redhat.com>
277         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
278         Fix reads past the end of strings.
279         * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
280         Likewise.
281         * testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
282         Likewise.
284 2021-11-16  Jonathan Wakely  <jwakely@redhat.com>
286         * testsuite/21_strings/basic_string/allocator/71964.cc: Fix
287         typo.
288         * testsuite/23_containers/set/allocator/71964.cc: Likewise.
290 2021-11-15  Jason Merrill  <jason@redhat.com>
292         * testsuite/20_util/to_address/1_neg.cc: Adjust error.
293         * testsuite/26_numerics/random/concept.cc: Adjust asserts.
295 2021-11-15  François Dumont  <fdumont@gcc.gnu.org>
297         * include/bits/hashtable_policy.h:
298         (_Hash_code_base<>::_M_hash_code(const _Hash&, const _Hash_node_value<_Value, true>&)): New.
299         (_Hash_code_base<>::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): New.
300         * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Use latter.
301         (_Hashtable<>::_M_merge_multi): Likewise.
302         * testsuite/23_containers/unordered_multiset/modifiers/merge.cc (test05): New test.
303         * testsuite/23_containers/unordered_set/modifiers/merge.cc (test04): New test.
305 2021-11-15  Jason Merrill  <jason@redhat.com>
307         * src/c++17/memory_resource.cc: Add missing constexpr.
308         * include/experimental/internet: Only mark copy constructor
309         as constexpr with __cpp_constexpr_dynamic_alloc.
311 2021-11-14  François Dumont  <fdumont@gcc.gnu.org>
313         * include/debug/safe_container.h (_Safe_container<>::_M_safe): Remove.
314         * include/debug/deque (deque::operator=(initializer_list<>)): Replace
315         _M_base() call with _Base:: call.
316         (deque::operator[](size_type)): Likewise.
317         * include/debug/forward_list (forward_list(forward_list&&, const allocator_type&)):
318         Remove _M_safe() and _M_base() calls.
319         (forward_list::operator=(initializer_list<>)): Remove _M_base() calls.
320         (forward_list::splice_after, forward_list::merge): Likewise.
321         * include/debug/list (list(list&&, const allocator_type&)):
322         Remove _M_safe() and _M_base() calls.
323         (list::operator=(initializer_list<>)): Remove _M_base() calls.
324         (list::splice, list::merge): Likewise.
325         * include/debug/map.h (map(map&&, const allocator_type&)):
326         Remove _M_safe() and _M_base() calls.
327         (map::operator=(initializer_list<>)): Remove _M_base() calls.
328         * include/debug/multimap.h (multimap(multimap&&, const allocator_type&)):
329         Remove _M_safe() and _M_base() calls.
330         (multimap::operator=(initializer_list<>)): Remove _M_base() calls.
331         * include/debug/set.h (set(set&&, const allocator_type&)):
332         Remove _M_safe() and _M_base() calls.
333         (set::operator=(initializer_list<>)): Remove _M_base() calls.
334         * include/debug/multiset.h (multiset(multiset&&, const allocator_type&)):
335         Remove _M_safe() and _M_base() calls.
336         (multiset::operator=(initializer_list<>)): Remove _M_base() calls.
337         * include/debug/string (basic_string(basic_string&&, const allocator_type&)):
338         Remove _M_safe() and _M_base() calls.
339         (basic_string::operator=(initializer_list<>)): Remove _M_base() call.
340         (basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise.
341         (basic_string::operator[](size_type), basic_string::operator+=(const basic_string&)):
342         Likewise.
343         (basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise.
344         * include/debug/unordered_map (unordered_map(unordered_map&&, const allocator_type&)):
345         Remove _M_safe() and _M_base() calls.
346         (unordered_map::operator=(initializer_list<>), unordered_map::merge):
347         Remove _M_base() calls.
348         (unordered_multimap(unordered_multimap&&, const allocator_type&)):
349         Remove _M_safe() and _M_base() calls.
350         (unordered_multimap::operator=(initializer_list<>), unordered_multimap::merge):
351         Remove _M_base() calls.
352         * include/debug/unordered_set (unordered_set(unordered_set&&, const allocator_type&)):
353         Remove _M_safe() and _M_base() calls.
354         (unordered_set::operator=(initializer_list<>), unordered_set::merge):
355         Remove _M_base() calls.
356         (unordered_multiset(unordered_multiset&&, const allocator_type&)):
357         Remove _M_safe() and _M_base() calls.
358         (unordered_multiset::operator=(initializer_list<>), unordered_multiset::merge):
359         Remove _M_base() calls.
360         * include/debug/vector (vector(vector&&, const allocator_type&)):
361         Remove _M_safe() and _M_base() calls.
362         (vector::operator=(initializer_list<>)): Remove _M_base() calls.
363         (vector::operator[](size_type)): Likewise.
365 2021-11-13  Jonathan Wakely  <jwakely@redhat.com>
367         * include/Makefile.am: Add spanstream header.
368         * include/Makefile.in: Regenerate.
369         * include/precompiled/stdc++.h: Add spanstream header.
370         * include/std/version (__cpp_lib_spanstream): Define.
371         * include/std/spanstream: New file.
372         * testsuite/27_io/spanstream/1.cc: New test.
373         * testsuite/27_io/spanstream/version.cc: New test.
375 2021-11-13  Hans-Peter Nilsson  <hp@axis.com>
377         PR libstdc++/103166
378         * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
379         Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_COMPILE.
380         * configure: Regenerate.
382 2021-11-12  Jonathan Wakely  <jwakely@redhat.com>
384         PR libstdc++/59675
385         * acinclude.m4 (libtool_VERSION): Bump version.
386         * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and
387         export new symbol.
388         * configure: Regenerate.
389         * include/bits/c++config (__replacement_assert): Remove, declare
390         __glibcxx_assert_fail instead.
391         * src/c++11/debug.cc (__glibcxx_assert_fail): New function to
392         replace __replacement_assert, writing to stderr instead of
393         stdout.
394         * testsuite/util/testsuite_abi.cc: Update latest version.
396 2021-11-12  Jonathan Wakely  <jwakely@redhat.com>
397             Josh Marshall  <joshua.r.marshall.1991@gmail.com>
399         * include/bits/alloc_traits.h (_Destroy): Make constexpr for
400         C++20 mode.
401         * include/bits/allocator.h (__shrink_to_fit::_S_do_it):
402         Likewise.
403         * include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator
404         overload constexpr for C++20.
405         * include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out
406         of inline namespace.
407         (_Bit_reference, _Bit_iterator_base, _Bit_iterator)
408         (_Bit_const_iterator, _Bvector_impl_data, _Bvector_base)
409         (vector<bool, A>>): Add constexpr to every member function.
410         (_Bvector_base::_M_allocate): Initialize storage during constant
411         evaluation.
412         (vector<bool, A>::_M_initialize_value): Use __fill_bvector_n
413         instead of memset.
414         (__fill_bvector_n): New helper function to replace memset during
415         constant evaluation.
416         * include/bits/stl_uninitialized.h (__uninitialized_copy<false>):
417         Move logic to ...
418         (__do_uninit_copy): New function.
419         (__uninitialized_fill<false>): Move logic to ...
420         (__do_uninit_fill): New function.
421         (__uninitialized_fill_n<false>): Move logic to ...
422         (__do_uninit_fill_n): New function.
423         (__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy.
424         (__uninitialized_move_a, __uninitialized_move_if_noexcept_a):
425         Add constexpr.
426         (__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill.
427         (__uninitialized_fill_n_a): Add constexpr. Use
428         __do_uninit_fill_n.
429         (__uninitialized_default_n, __uninitialized_default_n_a)
430         (__relocate_a_1, __relocate_a): Add constexpr.
431         * include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl)
432         (_Vector_base, vector): Add constexpr to every member function.
433         (_Vector_impl::_S_adjust): Disable ASan annotation during
434         constant evaluation.
435         (_Vector_base::_S_use_relocate): Disable bitwise-relocation
436         during constant evaluation.
437         (vector::_Temporary_value): Use a union for storage.
438         * include/bits/vector.tcc (vector, vector<bool>): Add constexpr
439         to every member function.
440         * include/std/vector (erase_if, erase): Add constexpr.
441         * testsuite/23_containers/headers/vector/synopsis.cc: Add
442         constexpr for C++20 mode.
443         * testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to
444         compile-only test using constant expressions.
445         * testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust
446         namespace for _S_word_bit.
447         * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
448         Likewise.
449         * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
450         * testsuite/23_containers/vector/cons/89164.cc: Adjust errors
451         for C++20 and move C++17 test to ...
452         * testsuite/23_containers/vector/cons/89164_c++17.cc: ... here.
453         * testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test.
454         * testsuite/23_containers/vector/bool/cons/constexpr.cc: New test.
455         * testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test.
456         * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test.
457         * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test.
458         * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test.
459         * testsuite/23_containers/vector/capacity/constexpr.cc: New test.
460         * testsuite/23_containers/vector/cons/constexpr.cc: New test.
461         * testsuite/23_containers/vector/data_access/constexpr.cc: New test.
462         * testsuite/23_containers/vector/element_access/constexpr.cc: New test.
463         * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test.
464         * testsuite/23_containers/vector/modifiers/constexpr.cc: New test.
465         * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test.
467 2021-11-11  Jonathan Wakely  <jwakely@redhat.com>
469         * include/debug/deque (deque::operator=(const deque&)): Remove
470         definition.
471         * include/debug/list (list::operator=(const list&)): Likewise.
472         * include/debug/map.h (map::operator=(const map&)): Likewise.
473         * include/debug/multimap.h (multimap::operator=(const multimap&)):
474         Likewise.
475         * include/debug/multiset.h (multiset::operator=(const multiset&)):
476         Likewise.
477         * include/debug/set.h (set::operator=(const set&)): Likewise.
478         * include/debug/string (basic_string::operator=(const basic_string&)):
479         Likewise.
480         * include/debug/vector (vector::operator=(const vector&)):
481         Likewise.
482         (_Safe_vector::operator=(const _Safe_vector&)): Define for
483         C++98 as well.
485 2021-11-11  Jonathan Wakely  <jwakely@redhat.com>
487         * include/std/memory_resource (memory_resource::allocate):
488         Implicitly create objects in the returned storage.
490 2021-11-11  Jonathan Wakely  <jwakely@redhat.com>
492         * include/bits/stl_bvector.h (vector<bool>::data()): Give
493         protected access, and delete for C++11 and later.
495 2021-11-10  Jonathan Wakely  <jwakely@redhat.com>
497         PR libstdc++/100117
498         * testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list
499         all C++ headers instead of including <bits/stdc++.h>
501 2021-11-10  Jonathan Wakely  <jwakely@redhat.com>
503         PR libstdc++/100748
504         PR libstdc++/103133
505         * config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
506         Define for glibc 2.34 and later.
508 2021-11-09  François Dumont  <fdumont@gcc.gnu.org>
510         * include/bits/hashtable_policy.h (__distance_fw): Replace class keyword with
511         typename.
512         * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Remove noexcept
513         qualification. Use const_iterator for node extraction/reinsert.
514         (_Hashtable<>::_M_merge_multi): Likewise. Compute new hash code before extract.
515         * include/debug/safe_container.h (_Safe_container<>): Make all methods
516         protected.
517         * include/debug/safe_unordered_container.h
518         (_Safe_unordered_container<>::_UContInvalidatePred<_ExtractKey, _Source>): New.
519         (_Safe_unordered_container<>::_UMContInvalidatePred<_ExtractKey, _Source>): New.
520         (_Safe_unordered_container<>::_UContMergeGuard<_Source, _InvalidatePred>): New.
521         (_Safe_unordered_container<>::_S_uc_guard<_ExtractKey, _Source>): New.
522         (_Safe_unordered_container<>::_S_umc_guard<_ExtractKey, _Source>): New.
523         (_Safe_unordered_container<>::_M_invalide_all): Make public.
524         (_Safe_unordered_container<>::_M_invalide_if): Likewise.
525         (_Safe_unordered_container<>::_M_invalide_local_if): Likewise.
526         * include/debug/unordered_map
527         (unordered_map<>::mapped_type, pointer, const_pointer): New typedef.
528         (unordered_map<>::reference, const_reference, difference_type): New typedef.
529         (unordered_map<>::get_allocator, empty, size, max_size): Add usings.
530         (unordered_map<>::bucket_count, max_bucket_count, bucket): Add usings.
531         (unordered_map<>::hash_function, key_equal, count, contains): Add usings.
532         (unordered_map<>::operator[], at, rehash, reserve): Add usings.
533         (unordered_map<>::merge): New.
534         (unordered_multimap<>::mapped_type, pointer, const_pointer): New typedef.
535         (unordered_multimap<>::reference, const_reference, difference_type): New typedef.
536         (unordered_multimap<>::get_allocator, empty, size, max_size): Add usings.
537         (unordered_multimap<>::bucket_count, max_bucket_count, bucket): Add usings.
538         (unordered_multimap<>::hash_function, key_equal, count, contains): Add usings.
539         (unordered_multimap<>::rehash, reserve): Add usings.
540         (unordered_multimap<>::merge): New.
541         * include/debug/unordered_set
542         (unordered_set<>::mapped_type, pointer, const_pointer): New typedef.
543         (unordered_set<>::reference, const_reference, difference_type): New typedef.
544         (unordered_set<>::get_allocator, empty, size, max_size): Add usings.
545         (unordered_set<>::bucket_count, max_bucket_count, bucket): Add usings.
546         (unordered_set<>::hash_function, key_equal, count, contains): Add usings.
547         (unordered_set<>::rehash, reserve): Add usings.
548         (unordered_set<>::merge): New.
549         (unordered_multiset<>::mapped_type, pointer, const_pointer): New typedef.
550         (unordered_multiset<>::reference, const_reference, difference_type): New typedef.
551         (unordered_multiset<>::get_allocator, empty, size, max_size): Add usings.
552         (unordered_multiset<>::bucket_count, max_bucket_count, bucket): Add usings.
553         (unordered_multiset<>::hash_function, key_equal, count, contains): Add usings.
554         (unordered_multiset<>::rehash, reserve): Add usings.
555         (unordered_multiset<>::merge): New.
556         * testsuite/23_containers/unordered_map/debug/merge1_neg.cc: New test.
557         * testsuite/23_containers/unordered_map/debug/merge2_neg.cc: New test.
558         * testsuite/23_containers/unordered_map/debug/merge3_neg.cc: New test.
559         * testsuite/23_containers/unordered_map/debug/merge4_neg.cc: New test.
560         * testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc: New test.
561         * testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc: New test.
562         * testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc: New test.
563         * testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc: New test.
564         * testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc: New test.
565         * testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc: New test.
566         * testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc: New test.
567         * testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc: New test.
568         * testsuite/23_containers/unordered_set/debug/merge1_neg.cc: New test.
569         * testsuite/23_containers/unordered_set/debug/merge2_neg.cc: New test.
570         * testsuite/23_containers/unordered_set/debug/merge3_neg.cc: New test.
571         * testsuite/23_containers/unordered_set/debug/merge4_neg.cc: New test.
572         * testsuite/util/testsuite_abi.h: [_GLIBCXX_DEBUG] Use normal unordered
573         container implementation.
575 2021-11-09  Jonathan Wakely  <jwakely@redhat.com>
577         * testsuite/26_numerics/random/random_device/cons/token.cc:
578         Print results of random_device_available checks.
580 2021-11-09  Jonathan Wakely  <jwakely@redhat.com>
582         PR libstdc++/103146
583         * src/c++11/random.cc: Check __powerpc64__ not __powerpc__.
585 2021-11-09  Jonathan Wakely  <jwakely@redhat.com>
587         * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
588         Define.
589         * configure.ac (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
590         Use them.
591         * config.h.in: Regenerate.
592         * configure: Regenerate.
593         * src/c++11/random.cc (random_device): Add getentropy and
594         arc4random as sources.
595         * testsuite/26_numerics/random/random_device/cons/token.cc:
596         Check new tokens.
597         * testsuite/26_numerics/random/random_device/entropy.cc:
598         Likewise.
600 2021-11-09  Jonathan Wakely  <jwakely@redhat.com>
602         * testsuite/26_numerics/random/random_device/cons/token.cc:
603         Retry if random devices produce the same value.
605 2021-11-09  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>
607         * config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only
608         define for VxWorks >= 6.6.
610 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
612         * include/bits/range_access.h (begin(valarray), end(valarray)):
613         Add noexcept.
615 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
617         * include/std/tuple (tuple_size_v): Fix pack expansion.
619 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
621         * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
622         [[unlikely]] attribute.
624 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
626         * src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
627         (__ppc_darn): New function to use POWER9 DARN instruction.
628         (Which): Add 'darn' enumerator.
629         (which_source): Check for __ppc_darn.
630         (random_device::_M_init): Support "darn" and "hw" tokens.
631         (random_device::_M_getentropy): Add darn to switch.
632         * testsuite/26_numerics/random/random_device/cons/token.cc:
633         Check "darn" token.
634         * testsuite/26_numerics/random/random_device/entropy.cc:
635         Likewise.
637 2021-11-05  Jonathan Wakely  <jwakely@redhat.com>
639         * testsuite/lib/gdb-test.exp: Add target selector support to the
640         dg-final directives.
641         * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
642         C++20.
643         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
644         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
645         comment.
647 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
649         PR libstdc++/103086
650         * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
651         for accessing the tuple element stored in a _Tuple_impl node.
652         (tuple_get): New function for accessing a tuple element.
653         (unique_ptr_get): New function for accessing a unique_ptr.
654         (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
655         * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
656         tuple to its base class before accessing _M_head_impl.
658 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
660         * doc/xml/manual/evolution.xml: Document deprecations.
661         * doc/html/*: Regenerate.
662         * libsupc++/exception (unexpected_handler, unexpected)
663         (get_unexpected, set_unexpected): Add deprecated attribute.
664         Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
665         * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
666         deprecated warnings.
667         * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
668         * libsupc++/eh_terminate.cc: Likewise.
669         * libsupc++/eh_throw.cc (__cxa_init_primary_exception):
670         Likewise.
671         * libsupc++/unwind-cxx.h (struct __cxa_exception): Use
672         terminate_handler instead of unexpected_handler.
673         (struct __cxa_dependent_exception): Likewise.
674         (__unexpected): Likewise.
675         * testsuite/18_support/headers/exception/synopsis.cc: Add
676         dg-warning for deprecated warning.
677         * testsuite/18_support/exception_ptr/60612-unexpected.cc:
678         Disable deprecated warnings.
679         * testsuite/18_support/set_unexpected.cc: Likewise.
680         * testsuite/18_support/unexpected_handler.cc: Likewise.
682 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
684         * include/bits/utility.h (__find_uniq_type_in_pack): Move
685         definition to here, ...
686         * include/std/tuple (__find_uniq_type_in_pack): ... from here.
687         * include/std/variant (__detail__variant::__index_of): Remove.
688         (__detail::__variant::__exactly_once): Define using
689         __find_uniq_type_in_pack instead of __index_of.
690         (get<T>, get_if<T>, variant::__index_of): Likewise.
692 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
694         * include/bits/stl_pair.h (tuple_size_v): Define partial
695         specializations for std::pair.
696         * include/bits/utility.h (_Nth_type): Move definition here
697         and define primary template.
698         (tuple_size_v): Move definition here.
699         * include/std/array (tuple_size_v): Define partial
700         specializations for std::array.
701         * include/std/tuple (tuple_size_v): Move primary template to
702         <bits/utility.h>.  Define partial specializations for
703         std::tuple.
704         (tuple_element): Change definition to use _Nth_type.
705         * include/std/variant (_Nth_type): Move to <bits/utility.h>.
706         (variant_alternative, variant): Adjust qualification of
707         _Nth_type.
708         * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
709         additional errors from _Nth_type.
711 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
713         * include/std/variant (__detail::__variant::__emplace): New
714         function template.
715         (_Copy_assign_base::operator=): Reorder conditions to match
716         bulleted list of effects in the standard. Use __emplace instead
717         of _M_reset followed by _Construct.
718         (_Move_assign_base::operator=): Likewise.
719         (__construct_by_index): Remove.
720         (variant::emplace): Use __emplace instead of _M_reset followed
721         by __construct_by_index.
722         (variant::swap): Hoist valueless cases out of visitor. Use
723         __emplace to replace _M_reset followed by _Construct.
725 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
727         * include/std/variant (_Nth_type): Define partial
728         specializations to reduce number of instantiations.
729         (variant_size_v): Define partial specializations to avoid
730         instantiations.
731         (variant_alternative): Use _Nth_type. Add static assert.
732         (__tuple_count, __tuple_count_v): Replace with ...
733         (__count): New variable template.
734         (_Variant_union): Add deleted constructor.
735         (variant::__to_type): Use _Nth_type.
736         (variant::emplace): Use _Nth_type. Add deleted overloads for
737         invalid types and indices.
739 2021-11-04  Jonathan Wakely  <jwakely@redhat.com>
741         PR libstdc++/102912
742         * include/std/variant (_Variant_storage::__index_of): Remove.
743         (__variant_construct_single): Remove.
744         (__variant_construct): Remove.
745         (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
746         construction directly instead of using __variant_construct.
747         (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
748         (_Move_ctor_base::_M_destructive_move()): Remove.
749         (_Move_ctor_base::_M_destructive_copy()): Remove.
750         (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
751         construction directly instead of using _M_destructive_copy.
752         (variant::swap): Do construction directly instead of using
753         _M_destructive_move.
754         * testsuite/20_util/variant/102912.cc: New test.
756 2021-11-03  Jonathan Wakely  <jwakely@redhat.com>
758         PR libstdc++/66742
759         * include/bits/list.tcc (list::sort): Use mutable iterators for
760         comparisons.
761         * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
762         * testsuite/23_containers/list/operations/66742.cc: Check
763         non-const comparisons.
765 2021-11-03  Jonathan Wakely  <jwakely@redhat.com>
767         * include/std/valarray (valarray::valarray()): Add noexcept.
768         (valarray::operator[]): Likewise.
770 2021-11-01  Jonathan Wakely  <jwakely@redhat.com>
772         * include/debug/stl_iterator.h (__valid_range): Add constexpr
773         for C++20. Qualify call to avoid ADL.
774         (__get_distance, __can_advance, __unsafe, __base): Likewise.
775         * testsuite/25_algorithms/move/constexpr.cc: Also check with
776         std::reverse_iterator arguments.
778 2021-11-01  Jonathan Wakely  <jwakely@redhat.com>
780         * include/std/span (span(Range&&)): Reorder constraints.
782 2021-11-01  Jonathan Wakely  <jwakely@redhat.com>
784         PR libstdc++/103022
785         * include/std/valarray (begin, end): Do not dereference an empty
786         valarray. Add noexcept and [[nodiscard]].
787         * testsuite/26_numerics/valarray/range_access.cc: Check empty
788         valarray. Check iterator properties. Run as well as compiling.
789         * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
790         * testsuite/26_numerics/valarray/103022.cc: New test.
792 2021-10-29  Jonathan Wakely  <jwakely@redhat.com>
794         * testsuite/23_containers/stack/deduction.cc: Fix typo.
796 2021-10-26  Martin Sebor  <msebor@redhat.com>
798         * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
799         -Wstringop-overread.
800         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.
802 2021-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
804         * testsuite/28_regex/basic_regex/84110.cc (test01)
805         [__cpp_exceptions]: Disambiguate extended.
807 2021-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
809         * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.
811 2021-10-22  Jonathan Wakely  <jwakely@redhat.com>
813         PR libstdc++/102894
814         * include/std/any (make_any): Add SFINAE constraint.
815         * testsuite/20_util/any/102894.cc: New test.
817 2021-10-21  Jonathan Wakely  <jwakely@redhat.com>
819         * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
820         headers.
821         * scripts/run_doxygen: Fix post-processing of #include
822         directives in man pages. Use new xg++ to compile helper program.
824 2021-10-21  Jonathan Wakely  <jwakely@redhat.com>
826         * include/bits/mofunc_impl.h: Add doxygen comments.
827         * include/std/functional: Likewise.
829 2021-10-21  Jonathan Wakely  <jwakely@redhat.com>
831         * include/bits/alloc_traits.h: Suppress doxygen documentation.
832         * include/bits/allocated_ptr.h: Likewise.
833         * include/bits/enable_special_members.h: Likewise.
834         * include/bits/hashtable.h: Likewise.
835         * include/bits/hashtable_policy.h: Likewise.
836         * include/bits/uses_allocator.h: Likewise.
837         * include/bits/node_handle.h: Document node handles and suppress
838         documentation for protected members.
839         * include/std/any: Suppress documentation for implementation
840         details.
842 2021-10-21  Patrick Palka  <ppalka@redhat.com>
844         PR libstdc++/102358
845         * include/bits/stl_iterator.h (__niter_base): Make constexpr
846         for C++20.
847         (__miter_base): Likewise.
848         * testsuite/25_algorithms/move/constexpr.cc: New test.
850 2021-10-21  Patrick Palka  <ppalka@redhat.com>
852         * include/std/ranges (istream_view): Replace this function
853         template with an alias template as per P2432R1.
854         (wistream_view): Define as per P2432R1.
855         (views::_Istream, views::istream): Likewise.
856         * testsuite/std/ranges/istream_view.cc (test07): New test.
858 2021-10-21  Patrick Palka  <ppalka@redhat.com>
860         * include/bits/ranges_util.h (views::_Drop): Forward declare.
861         (subrange): Befriend views::_Drop.
862         (subrange::_S_store_size): Declare constexpr instead of just
863         const, remove obsolete comment.
864         * include/std/ranges (views::__detail::__is_empty_view): Define.
865         (views::__detail::__is_basic_string_view): Likewise.
866         (views::__detail::__is_subrange): Likewise.
867         (views::__detail::__is_iota_view): Likewise.
868         (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
869         (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
870         and fix it to range_difference_t<_Range>.  Implement P1739R4 and
871         LWG 3407 changes.
872         (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
873         (views::_Drop): As with views::_Take.
874         (views::_Counted): Implement P1739R4 changes.
875         * include/std/span (__detail::__is_std_span): Rename to ...
876         (__detail::__is_span): ... this and turn it into a variable
877         template.
878         (__detail::__is_std_array): Turn it into a variable template.
879         (span::span): Adjust uses of __is_std_span and __is_std_array
880         accordingly.
881         * testsuite/std/ranges/adaptors/p1739.cc: New test.
883 2021-10-21  Patrick Palka  <ppalka@redhat.com>
885         * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
886         Make fully constexpr as per LWG 3595.
887         (common_iterator::__postfix_proxy): Likewise.
889 2021-10-21  Patrick Palka  <ppalka@redhat.com>
891         * include/std/ranges (lazy_split_view::base): Add forward_range
892         constraint as per LWG 3591.
893         (lazy_split_view::begin, lazy_split_view::end): Also check
894         simpleness of _Pattern as per LWG 3592.
895         (split_view::base): Relax copyable constraint as per LWG 3590.
897 2021-10-21  Patrick Palka  <ppalka@redhat.com>
899         * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
900         criteria for returning bidirectional_iterator_tag as per LWG 3535.
901         (join_view::_Iterator::_S_iter_concept): Likewise.
903 2021-10-21  Patrick Palka  <ppalka@redhat.com>
905         * include/bits/ranges_base.h (viewable_range): Adjust as per
906         LWG 3481.
907         * testsuite/std/ranges/adaptors/all.cc (test07): New test.
909 2021-10-21  Jonathan Wakely  <jwakely@redhat.com>
911         PR libstdc++/102863
912         * include/std/optional (optional::and_then, optional::transform):
913         Remove requires-clause.
914         * testsuite/20_util/optional/monadic/and_then.cc: Check
915         overload resolution doesn't cause errors.
916         * testsuite/20_util/optional/monadic/transform.cc: Likewise.
918 2021-10-20  Jonathan Wakely  <jwakely@redhat.com>
920         * testsuite/20_util/optional/monadic/transform.cc: Check that
921         an rvalue result is not materialized too soon.
923 2021-10-19  Patrick Palka  <ppalka@redhat.com>
925         * include/std/ranges (iota_view::_Iterator::operator+): Adjust
926         definition as per LWG 3580.
927         (iota_view::_Iterator::operator-): Likewise.
929 2021-10-19  Patrick Palka  <ppalka@redhat.com>
931         * include/std/ranges (basic_istream_view::_M_object): Value
932         initialize as per LWG 3568.
934 2021-10-19  Patrick Palka  <ppalka@redhat.com>
936         * include/bits/ranges_util.h
937         (__detail::__uses_nonqualification_pointer_conversion): Define
938         and use it ...
939         (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
940         * testsuite/std/ranges/subrange/1.cc: New test.
942 2021-10-19  Patrick Palka  <ppalka@redhat.com>
944         * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
945         (iota_view::_Sentinel): Likewise.
946         (iota_view::iota_view): Add three overloads, each taking an
947         iterator/sentinel pair as per LWG 3523.
948         * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
950 2021-10-19  Patrick Palka  <ppalka@redhat.com>
952         * include/bits/ranges_base.h (view_interface): Forward declare.
953         (__detail::__is_derived_from_view_interface_fn): Declare.
954         (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
955         (enable_view): Adjust as per LWG 3549.
956         * include/bits/ranges_util.h (view_interface): Don't derive from
957         view_base.
958         * include/std/ranges (filter_view): Revert r11-3504 change.
959         (transform_view): Likewise.
960         (take_view): Likewise.
961         (take_while_view): Likewise.
962         (drop_view): Likewise.
963         (drop_while_view): Likewise.
964         (join_view): Likewise.
965         (lazy_split_view): Likewise.
966         (split_view): Likewise.
967         (reverse_view): Likewise.
968         * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
969         * testsuite/std/ranges/view.cc (test_view::test_view): Remove
970         this default ctor since views no longer need to be default initable.
971         (test01): New test.
973 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
975         * src/c++11/random.cc (which_source): New helper function.
976         (random_device::_M_getentropy()): Use which_source and return
977         suitable values for sources other than device files.
978         * testsuite/26_numerics/random/random_device/entropy.cc: New test.
980 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
982         * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
983         (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
984         relative ${top_srcdir}.
985         * doc/Makefile.in: Regenerate.
987 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
989         * include/std/variant (_Uninitialized): Use an empty struct
990         for the unused union member, instead of char.
992 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
994         * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
995         non-deducible template parameter from deduction guide.
996         * testsuite/23_containers/stack/deduction.cc: Check new C++23
997         deduction guides.
999 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
1001         * include/std/optional (_Optional_payload_base::_Storage): Add
1002         constructor taking a callable function to invoke.
1003         (_Optional_payload_base::_M_apply): New function.
1004         (__cpp_lib_monadic_optional): Define for C++23.
1005         (optional::and_then, optional::transform, optional::or_else):
1006         Define for C++23.
1007         * include/std/ranges (__detail::__cached): Remove.
1008         (__detail::__non_propagating_cache): Remove use of __cached for
1009         contained value. Use _Optional_payload_base::_M_construct and
1010         _Optional_payload_base::_M_apply to set the contained value.
1011         * include/std/version (__cpp_lib_monadic_optional): Define.
1012         * testsuite/20_util/optional/monadic/and_then.cc: New test.
1013         * testsuite/20_util/optional/monadic/or_else.cc: New test.
1014         * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
1015         * testsuite/20_util/optional/monadic/transform.cc: New test.
1016         * testsuite/20_util/optional/monadic/version.cc: New test.
1018 2021-10-19  Jonathan Wakely  <jwakely@redhat.com>
1020         PR libstdc++/102825
1021         * include/bits/mofunc_impl.h (move_only_function): Remove
1022         invalid base initializer.
1023         * testsuite/20_util/move_only_function/cons.cc: Instantiate
1024         constructors to check bodies.
1026 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
1028         * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
1029         call to function with deduced return type.
1031 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
1033         * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
1034         Define for C++23.
1035         (basic_string::resize_and_overwrite): Declare.
1036         * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
1037         Define.
1038         * include/std/version (__cpp_lib_resize_and_overwrite): Define
1039         for C++23.
1040         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
1041         New test.
1043 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
1045         PR libstdc++/101263
1046         * include/std/ranges (__cached): New wrapper struct.
1047         (__non_propagating_cache): Use __cached for contained value.
1048         (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
1049         std::construct_at instead of placement new.
1050         * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
1052 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
1054         * include/std/variant (__cpp_lib_variant): Update value for
1055         C++20.
1056         (__variant_cast, __variant_construct): Add constexpr for C++20.
1057         (__variant_construct_single, __construct_by_index) Likewise. Use
1058         std::_Construct instead of placement new.
1059         (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
1060         buffer with a union and define a destructor.
1061         (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
1062         for non-trivial destruction.
1063         (_Variant_storage::__index_of): New helper variable template.
1064         (_Variant_storage::~_Variant_storage()): Add constexpr.
1065         (_Variant_storage::_M_reset()): Likewise.
1066         (_Copy_ctor_base, _Move_ctor_base): Likewise.
1067         (_Copy_assign_base, _Move_assign_base): Likewise.
1068         (variant, swap): Likewise.
1069         * include/std/version (__cpp_lib_variant): Update value for
1070         C++20.
1071         * testsuite/20_util/optional/version.cc: Check for exact value
1072         in C++17.
1073         * testsuite/20_util/variant/87619.cc: Increase timeout for
1074         C++20 mode.
1075         * testsuite/20_util/variant/constexpr.cc: New test.
1076         * testsuite/20_util/variant/version.cc: New test.
1078 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
1080         * include/std/variant (__detail::__variant::__get_storage):
1081         Remove unused function.
1082         (__variant_construct_by_index): Set index after construction is
1083         complete. Rename to ...
1084         (__detail::__variant::__construct_by_index): ... this.
1085         (variant): Use new name for __variant_construct_by_index friend
1086         declaration. Remove __get_storage friend declaration.
1087         (variant::emplace): Use new name and remove try-blocks.
1089 2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
1091         * include/std/variant (_Variant_storage::_M_storage()): Remove.
1092         (__detail::__variant::__get_storage): Remove.
1093         (variant): Remove friend declaration of __get_storage.
1095 2021-10-15  Jason Merrill  <jason@redhat.com>
1097         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
1098         * testsuite/20_util/integer_comparisons/greater_neg.cc:
1099         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
1100         Adjust expected message.
1101         * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
1103 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
1105         * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
1106         Rename to __get_n and remove first argument. Replace pair of
1107         overloads with a single function using 'if constexpr'.
1108         (__variant::__get(Variant&&)): Adjust to use __get_n.
1110 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
1112         * include/bits/fs_path.h (path(path&&)): Make unconditionally
1113         noexcept.
1114         (path::_S_convert(T)): Add condtional noexcept.
1116 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
1118         PR libstdc++/102743
1119         * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
1120         for returning the same string unchanged.
1122 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
1124         * include/bits/regex.h: Check __cpp_inline_variables instead of
1125         __cplusplus.
1127 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
1129         * testsuite/20_util/is_layout_compatible/version.cc: Check
1130         correct macro.
1132 2021-10-14  Jonathan Wakely  <jwakely@redhat.com>
1134         * include/bits/stl_construct.h (_Construct): Use
1135         std::construct_at when constant evaluated.
1136         * include/std/optional (_Storage, _Optional_payload, optional):
1137         Add constexpr as specified by P2231R1.
1138         * include/std/version (__cpp_lib_optional): Update value for
1139         C++20.
1140         * testsuite/20_util/optional/requirements.cc: Check feature test
1141         macro.
1142         * testsuite/20_util/optional/constexpr/assign.cc: New test.
1143         * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
1144         * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
1145         * testsuite/20_util/optional/constexpr/swap.cc: New test.
1146         * testsuite/20_util/optional/version.cc: New test.
1148 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
1150         * include/bits/fs_path.h (__detail::__is_contiguous): Add
1151         partial specializations for pointers and __normal_iterator.
1153 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
1155         * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
1156         * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
1157         * testsuite/28_regex/match_results/102667.C: Moved to...
1158         * testsuite/28_regex/match_results/102667.cc: ...here.
1160 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
1162         * include/bits/fs_path.h (__detail::__is_contiguous): New
1163         variable template to identify contiguous iterators.
1164         (__detail::__unified_char8_t): New alias template to decide when
1165         to treat char8_t as char without encoding conversion.
1166         (__detail::__effective_range(const basic_string<C,T>&)): Use
1167         std::char_traits<C> for returned string view.
1168         (__detail::__effective_range(const basic_string_view<C,T>&)):
1169         Likewise.
1170         (__detail::__effective_range(const Source&)): Use
1171         __is_contiguous to detect mode cases of contiguous iterators.
1172         Use __unified_char8_t to return a std::string instead of
1173         std::u8string.
1175 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
1177         PR libstdc++/102592
1178         * include/bits/fs_path.h (path::path(Iter, Iter, format))
1179         (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
1180         __string_from_range directly, instead of two-argument overload
1181         of _S_convert.
1182         (path::_S_convert(Iter, Iter)): Remove.
1183         * testsuite/27_io/filesystem/path/construct/102592.C: New test.
1185 2021-10-13  Jonathan Wakely  <jwakely@redhat.com>
1187         * include/bits/c++config (__terminate): Add extern "C++".
1189 2021-10-12  Jonathan Wakely  <jwakely@redhat.com>
1191         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1192         Restore test for operator<.
1193         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1194         Adjust expected errors for C++20.
1196 2021-10-12  Jonathan Wakely  <jwakely@redhat.com>
1198         PR libstdc++/101960
1199         * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
1200         defauled.
1201         * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
1202         array elements before the last element.
1204 2021-10-12  Jonathan Wakely  <jwakely@redhat.com>
1206         * include/bits/stl_iterator_base_funcs.h (__advance): Add
1207         deleted overload to improve diagnostics.
1208         (__distance): Likewise.
1210 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
1212         * include/bits/atomic_timed_wait.h: Remove unused header.
1213         * include/bits/c++config (std:__terminate): Define.
1214         * include/bits/semaphore_base.h: Remove <exception> and use
1215         __terminate instead of terminate.
1216         * include/bits/std_thread.h: Likewise.
1217         * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
1218         to call __cxxabiv1::__terminate.
1220 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
1222         * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
1223         std::__to_address by using poitner directly or using base()
1224         member of __normal_iterator.
1226 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
1228         * testsuite/18_support/numeric_limits/lowest.cc: Use
1229         numeric_limits<T>::is_integer instead of is_integral<T>::value.
1231 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
1233         PR libstdc++/89927
1234         * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
1235         Add __glibcxx_requires_string_len assertion.
1236         (basic_regex::assign(InputIterator, InputIterator)): Add
1237         __glibcxx_requires_valid_range assertion.
1238         * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
1239         (_Scanner::_M_scan_normal()): Use string literal in assertions.
1241 2021-10-11  Jonathan Wakely  <jwakely@redhat.com>
1243         PR libstdc++/102667
1244         * include/bits/regex.h (match_result::empty()): Optimize by
1245         calling the base function directly.
1246         (match_results::end()): Check _Base_type::empty() not empty().
1247         * testsuite/28_regex/match_results/102667.C: New test.
1249 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1251         PR libstdc++/98725
1252         * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
1253         _GLIBCXX_USE_WCHAR_T.
1254         * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
1255         _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
1256         * testsuite/20_util/from_chars/1_neg.cc: Remove use of
1257         _GLIBCXX_USE_WCHAR_T.
1258         * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
1259         char_traits<wchar_t>::length instead of wcslen.
1260         * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
1261         Likewise.
1262         * testsuite/20_util/is_arithmetic/value.cc: Likewise.
1263         * testsuite/20_util/is_compound/value.cc: Likewise.
1264         * testsuite/20_util/is_floating_point/value.cc: Likewise.
1265         * testsuite/20_util/is_fundamental/value.cc: Likewise.
1266         * testsuite/20_util/is_integral/value.cc: Likewise.
1267         * testsuite/20_util/is_signed/value.cc: Likewise.
1268         * testsuite/20_util/is_unsigned/value.cc: Likewise.
1269         * testsuite/20_util/is_void/value.cc: Likewise.
1270         * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
1271         Likewise.
1272         * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
1273         Likewise.
1274         * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
1275         Likewise.
1276         * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
1277         Likewise.
1278         * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1279         Likewise.
1280         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1281         Likewise.
1282         * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
1283         Likewise.
1284         * testsuite/20_util/to_chars/3.cc: Likewise.
1285         * testsuite/20_util/type_identity/requirements/typedefs.cc:
1286         Likewise.
1287         * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
1288         * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
1289         * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
1290         Likewise.
1291         * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
1292         * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
1293         Likewise.
1294         * testsuite/21_strings/basic_string/literals/values.cc:
1295         Likewise.
1296         * testsuite/21_strings/basic_string/modifiers/64422.cc:
1297         Likewise.
1298         * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
1299         Likewise.
1300         * testsuite/21_strings/basic_string/requirements/citerators.cc:
1301         Likewise.
1302         * testsuite/21_strings/basic_string/requirements/typedefs.cc:
1303         Likewise.
1304         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
1305         Likewise.
1306         * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
1307         Likewise.
1308         * testsuite/21_strings/basic_string_view/literals/types.cc:
1309         Likewise.
1310         * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
1311         Likewise.
1312         * testsuite/21_strings/basic_string_view/literals/values.cc:
1313         Likewise.
1314         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1315         Likewise.
1316         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1317         * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
1318         Likewise.
1319         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1320         Likewise.
1321         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
1322         Likewise.
1323         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
1324         * testsuite/25_algorithms/fill/4.cc: Likewise.
1325         * testsuite/25_algorithms/fill_n/1.cc: Likewise.
1326         * testsuite/experimental/functional/searchers.cc: Likewise. Use
1327         char_traits<wchar_t>::length instead of wcslen.
1328         * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1329         Likewise.
1330         * testsuite/experimental/string_view/literals/types-char8_t.cc:
1331         Likewise.
1332         * testsuite/experimental/string_view/literals/types.cc:
1333         Likewise.
1334         * testsuite/experimental/string_view/literals/values-char8_t.cc:
1335         Likewise.
1336         * testsuite/experimental/string_view/literals/values.cc:
1337         Likewise.
1338         * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1339         Likewise.
1340         * testsuite/experimental/string_view/requirements/typedefs.cc:
1341         Likewise.
1342         * testsuite/experimental/string_view/typedefs.cc: Likewise.
1343         * testsuite/ext/vstring/range_access.cc: Likewise.
1344         * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
1345         Likewise.
1346         * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
1347         Likewise.
1348         * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
1349         Likewise.
1350         * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
1351         Likewise.
1352         * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
1353         Likewise.
1354         * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
1355         Likewise.
1356         * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
1357         Likewise.
1358         * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
1359         Likewise.
1360         * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
1361         * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
1362         Likewise.
1363         * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
1364         * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
1366 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1368         PR libstdc++/98725
1369         * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
1370         (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
1371         define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
1373 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1375         PR libstdc++/98725
1376         * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
1377         Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1379 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1381         PR libstdc++/98725
1382         * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
1383         (__byte_operand<wchar_t>): Define specialization.
1384         * include/std/type_traits (__make_signed<wchar_t>)
1385         (__make_unsigned<wchar_t>): Remove redundant check for
1386         __WCHAR_TYPE__ being defined.
1387         * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
1388         (__is_integral_helper<wchar_t>): Likewise.
1390 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1392         PR libstdc++/98725
1393         * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
1394         (__rc_string_base<wchar_t>): Define member function.
1395         * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
1396         (hash<__gnu_cxx::__wvstring>): Define specialization.
1397         * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
1398         (__wsso_string, __wrc_string): Declare typedefs.
1400 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1402         PR libstdc++/98725
1403         * include/bits/char_traits.h (char_traits<wchar_t>): Define
1404         explicit specialization unconditionally.
1405         * include/bits/basic_string.h (hash<wstring>): Define
1406         unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1407         * include/bits/stringfwd.h (wstring): Likewise.
1408         * include/debug/string (wstring): Likewise.
1409         * include/experimental/string_view (experimental::wstring_view)
1410         (hash<experimental::wstring_view>): Likewise.
1411         * include/std/string (pmr::wstring, hash<pmr::wstring>):
1412         Likewise.
1413         * include/std/string_view (wstring_view, hash<wstring_view>):
1414         Likewise.
1416 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1418         * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
1419         * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
1421 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1423         * testsuite/22_locale/conversions/buffer/1.cc: Check
1424         _GLIBCXX_USE_WCHAR_T.
1425         * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
1426         test using char16_t.
1427         * testsuite/22_locale/conversions/string/1.cc: Check
1428         _GLIBCXX_USE_WCHAR_T.
1429         * testsuite/27_io/filesystem/path/generic/generic_string.cc:
1430         Likewise.
1431         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
1432         Likewise.
1433         * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
1434         * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
1435         Likewise.
1436         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1437         * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
1438         Likewise.
1439         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
1440         Likewise.
1441         * testsuite/experimental/filesystem/path/native/alloc.cc:
1442         Likewise.
1443         * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
1444         Likewise.
1445         * testsuite/experimental/filesystem/path/native/string.cc:
1446         Likewise.
1448 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1450         * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
1451         * testsuite/util/testsuite_common_types.h:
1453 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1455         * testsuite/18_support/numeric_limits/40856.cc: Replace use of
1456         _GLIBCXX_USE_INT128.
1457         * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
1458         * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
1459         * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
1460         * testsuite/20_util/is_floating_point/value.cc: Likewise.
1461         * testsuite/20_util/is_integral/value.cc: Likewise.
1462         * testsuite/20_util/is_signed/value.cc: Likewise.
1463         * testsuite/20_util/is_unsigned/value.cc: Likewise.
1464         * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
1465         Likewise.
1466         * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
1467         Likewise.
1468         * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1469         Likewise.
1470         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1471         Likewise.
1472         * testsuite/20_util/type_identity/requirements/typedefs.cc:
1473         Likewise.
1474         * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1475         * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1476         * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1477         * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1478         * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1479         * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1480         * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1481         * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1482         * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1483         Likewise.
1484         * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1486 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1488         * include/bits/hashtable_policy.h (_Select1st): Replace use of
1489         std::get.
1490         (_Select2nd): Remove.
1491         (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
1492         typedef instead of deducing it. Remove unnecessary piecewise
1493         construction.
1494         (_ReuseOrAllocNode): Make __node_type public.
1495         (_Map_base): Adjust partial specialization to be able to extract
1496         the mapped_type without using tuple_element.
1497         (_Map_base::at): Define inline
1498         * testsuite/23_containers/unordered_map/requirements/53339.cc:
1499         Remove XFAIL.
1500         * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1501         Likewise.
1503 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1505         * include/bits/hashtable.h: Move static assertion to destructor.
1506         * include/bits/hashtable_policy.h: Deduce value type from node
1507         type without instantiating it.
1509 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1511         * src/c++11/limits.cc: Fail if __cpp_inline_variables is
1512         defined.
1514 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1516         PR libstdc++/92546
1517         * include/bits/ranges_algobase.h: Replace <iterator> with a
1518         subset of the headers it includes.
1520 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1522         * include/experimental/deque (erase, erase_if): Revert changes
1523         to avoid debug mode overhead.
1524         * include/experimental/map (erase, erase_if): Likewise.
1525         * include/experimental/set (erase, erase_if): Likewise.
1526         * include/experimental/unordered_map (erase, erase_if):
1527         Likewise.
1528         * include/experimental/unordered_set (erase, erase_if):
1529         Likewise.
1530         * include/experimental/vector (erase, erase_if): Likewise.
1531         * include/std/deque (erase, erase_if): Likewise.
1532         * include/std/map (erase, erase_if): Likewise.
1533         * include/std/set (erase, erase_if): Likewise.
1534         * include/std/unordered_map (erase, erase_if): Likewise.
1535         * include/std/unordered_set (erase, erase_if): Likewise.
1536         * include/std/vector (erase, erase_if): Likewise.
1538 2021-10-08  Jonathan Wakely  <jwakely@redhat.com>
1540         * include/std/chrono (__detail::__units_suffix_misc): New
1541         helper function.
1542         (__detail::__units_suffix): Likewise.
1543         (chrono::operator<<(basic_ostream&, const duration&)): Define.
1544         * testsuite/20_util/duration/io.cc: New test.
1546 2021-10-07  Jonathan Wakely  <jwakely@redhat.com>
1548         * include/Makefile.am: Add new header.
1549         * include/Makefile.in: Regenerate.
1550         * include/std/chrono (duration, time_point, system_clock)
1551         (steady_clock, high_resolution_clock, chrono_literals, sys_time)
1552         (file_clock, file_time): Move to ...
1553         * include/bits/chrono.h: New file.
1554         * include/bits/atomic_futex.h: Include new header instead of
1555         <chrono>.
1556         * include/bits/atomic_timed_wait.h: Likewise.
1557         * include/bits/fs_fwd.h: Likewise.
1558         * include/bits/semaphore_base.h: Likewise.
1559         * include/bits/this_thread_sleep.h: Likewise.
1560         * include/bits/unique_lock.h: Likewise.
1561         * include/experimental/bits/fs_fwd.h: Likewise.
1562         * include/experimental/chrono: Likewise.
1563         * include/experimental/io_context: Likewise.
1564         * include/experimental/netfwd: Likewise.
1565         * include/experimental/timer: Likewise.
1566         * include/std/condition_variable: Likewise.
1567         * include/std/mutex: Likewise.
1568         * include/std/shared_mutex: Likewise.
1570 2021-10-07  Jonathan Wakely  <jwakely@redhat.com>
1572         PR libstdc++/102377
1573         * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
1574         Hardcode to 64 instead of using non-constant constant.
1576 2021-10-07  Jonathan Wakely  <jwakely@redhat.com>
1578         * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
1579         __niter_base calls.
1580         * include/std/string (erase, erase_if): Likewise.
1581         * include/std/deque (erase, erase_if): Access non-debug
1582         container directly.
1583         * include/std/map (erase, erase_if): Likewise.
1584         * include/std/set (erase, erase_if): Likewise.
1585         * include/std/unordered_map (erase, erase_if): Likewise.
1586         * include/std/unordered_set (erase, erase_if): Likewise.
1587         * include/std/vector (erase, erase_if): Likewise.
1588         * include/experimental/deque (erase, erase_if): Likewise.
1589         * include/experimental/map (erase, erase_if): Likewise.
1590         * include/experimental/set (erase, erase_if): Likewise.
1591         * include/experimental/unordered_map (erase, erase_if):
1592         Likewise.
1593         * include/experimental/unordered_set (erase, erase_if):
1594         Likewise.
1595         * include/experimental/vector (erase, erase_if): Likewise.
1597 2021-10-06  Jonathan Wakely  <jwakely@redhat.com>
1599         * include/Makefile.am: Add new headers.
1600         * include/Makefile.in: Regenerate.
1601         * include/std/functional: Include <bits/move_only_function.h>.
1602         * include/std/version (__cpp_lib_move_only_function): Define.
1603         * include/bits/mofunc_impl.h: New file.
1604         * include/bits/move_only_function.h: New file.
1605         * testsuite/20_util/move_only_function/call.cc: New test.
1606         * testsuite/20_util/move_only_function/cons.cc: New test.
1607         * testsuite/20_util/move_only_function/move.cc: New test.
1608         * testsuite/20_util/move_only_function/version.cc: New test.
1610 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1612         * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
1613         New test.
1614         * testsuite/23_containers/span/trivially_copyable.cc: New test.
1616 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1618         * include/bits/utility.h (__is_in_place_type_v): Define
1619         variable template to detect in_place_type_t specializations.
1620         (__is_in_place_type): Replace class template with alias
1621         template using __is_in_place_type_v.
1622         * include/std/any (any(T&&)): Check __is_in_place_type first and
1623         avoid instantiating is_copy_constructible unnecessarily.
1625 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1627         * testsuite/20_util/integer_comparisons/greater.cc: New test.
1629 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1631         * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1632         Check result matches non-volatile pointer.
1634 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1636         PR c++/102535
1637         * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
1638         expected value for C++20.
1640 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1642         * include/bits/std_function.h (_Any_data::_M_access): Add
1643         noexcept.
1644         (_Function_base::_Base_manager::_M_get_pointer): Likewise.
1645         (_Function_base::_Base_manager::_M_not_empty_function):
1646         Likewise.
1648 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1650         * include/std/ostream (operator<<(const volatile void*)):
1651         Add new overload, as per P1147R1.
1652         * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1653         New test.
1655 2021-10-05  Jonathan Wakely  <jwakely@redhat.com>
1657         * include/bits/stl_queue.h
1658         (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
1659         value.
1660         * include/bits/stl_stack.h
1661         (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1662         * include/std/version
1663         (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1664         * testsuite/23_containers/queue/cons_from_iters.cc: Update
1665         expected value.
1666         * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
1668 2021-10-04  Jonathan Wakely  <jwakely@redhat.com>
1670         * include/bits/forward_list.h (forward_list): Use non-deduced
1671         context for allocator parameter of allocator-extended copy and
1672         move constructors.
1673         * include/bits/stl_bvector.h (vector<bool>): Likewise.
1674         * include/bits/stl_deque.h (deque): Likewise.
1675         * include/bits/stl_list.h (list): Likewise.
1676         * include/bits/stl_map.h (map): Likewise.
1677         * include/bits/stl_multimap.h (multimap): Likewise.
1678         * include/bits/stl_multiset.h (multiset): Likewise.
1679         * include/bits/stl_set.h (set): Likewise.
1680         * include/bits/stl_vector.h (vector): Likewise.
1681         * include/bits/stl_queue.h (queue, priority_queue): Do not
1682         constrain Allocator template parameter of deduction guides that
1683         have a Container parameter.
1684         * include/bits/stl_stack.h (stack): Likewise.
1685         * include/debug/deque (__gnu_debug::deque): Use non-deduced
1686         context for allocator parameter of allocator-extended copy and
1687         move constructors.
1688         * include/debug/list (__gnu_debug::list): Likewise.
1689         * include/debug/map.h (__gnu_debug::map): Likewise.
1690         * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
1691         * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
1692         * include/debug/set.h (__gnu_debug::set): Likewise.
1693         * include/debug/vector (__gnu_debug::vector): Likewise.
1694         * testsuite/23_containers/deque/cons/deduction.cc: Test class
1695         template argument deduction with non-deduced allocator
1696         arguments.
1697         * testsuite/23_containers/forward_list/cons/deduction.cc:
1698         Likewise.
1699         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1700         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1701         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1702         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1703         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1704         * testsuite/23_containers/queue/deduction.cc: Likewise.
1705         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1706         * testsuite/23_containers/stack/deduction.cc: Likewise.
1707         * testsuite/23_containers/unordered_map/cons/deduction.cc:
1708         Likewise.
1709         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1710         Likewise.
1711         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1712         Likewise.
1713         * testsuite/23_containers/unordered_set/cons/deduction.cc:
1714         Likewise.
1715         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1717 2021-10-04  Jonathan Wakely  <jwakely@redhat.com>
1719         * include/std/variant (__detail::__variant::__as): Add missing
1720         noexcept to first overload.
1722 2021-10-04  Jonathan Wakely  <jwakely@redhat.com>
1724         * include/bits/basic_string.h (basic_string(nullptr_t)): Define
1725         as deleted.
1726         (operator=(nullptr_t)): Likewise.
1727         * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
1728         (operator=(nullptr_t)): Likewise.
1729         * include/std/string_view (basic_string_view(nullptr_t)):
1730         Likewise.
1731         * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
1732         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1733         Change dg-warning to dg-error.
1734         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1735         Likewise.
1737 2021-10-02  Jonathan Wakely  <jwakely@redhat.com>
1739         * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
1740         * src/filesystem/ops-common.h (__last_system_error): Add
1741         explicit cast to avoid narrowing conversion.
1742         (do_space): Fix type in function name.
1744 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1746         PR libstdc++/102100
1747         * include/Makefile.am (c++config.h): Define
1748         _GLIBCXX_VERBOSE_ASSERT based on configure output.
1749         * include/Makefile.in: Regenerate.
1750         * include/bits/c++config: Fix condition for verbose assertions.
1752 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1754         PR libstdc++/92546
1755         * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
1756         unwrap debug iterators.
1757         * include/bits/refwrap.h: Do not error if included in C++03.
1758         * include/bits/stl_algo.h (__remove_if): Move to ...
1759         * include/bits/stl_algobase.h (__remove_if): ... here.
1760         * include/std/deque (erase, erase_if): Use __remove_if instead of
1761         remove and remove_if.
1762         * include/std/string (erase, erase_if): Likewise.
1763         * include/std/vector (erase, erase_if): Likewise.
1765 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1767         PR libstdc++/66742
1768         * include/bits/list.tcc (list::sort()): Use _Scratch_list
1769         objects for splicing and merging.
1770         (list::sort(StrictWeakOrdering)): Likewise.
1771         * include/bits/stl_list.h (__detail::_Scratch_list): New type.
1772         * src/c++98/list.cc (_List_node_base::_M_transfer): Add
1773         assertion for --enable-libstdcxx-debug library.
1774         * testsuite/23_containers/list/operations/66742.cc: New test.
1776 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1778         PR libstdc++/100612
1779         * include/std/thread (__pmf_expects_stop_token): New variable
1780         template to detect a pointer to member function that needs a
1781         stop_token to be added to the arguments.
1782         (jthread::__S_create): Use __pmf_expects_stop_token.
1783         (jthread::__S_create_pmf): New function.
1784         * testsuite/30_threads/jthread/100612.cc: New test.
1786 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1788         * include/bits/stl_queue.h
1789         (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
1790         per P1425R4.
1791         (queue(InputIterator, InputIterator)): Likewise.
1792         (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
1793         * include/bits/stl_stack.h
1794         (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1795         (stack(InputIterator, InputIterator)): Likewise.
1796         (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
1797         * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
1798         Define.
1799         * testsuite/23_containers/queue/cons_from_iters.cc: New test.
1800         * testsuite/23_containers/stack/cons_from_iters.cc: New test.
1802 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1804         * include/bits/stl_queue.h (priority_queue): Add
1805         allocator-extended overloads for constructors taking iterator.
1806         * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
1808 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1810         * include/bits/stl_queue.h (priority_queue): Construct sequence
1811         from iterators when no sequence argument is present (LWG 3529).
1812         * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
1814 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1816         * include/bits/stl_queue.h (priority_queue): Constrain
1817         constructors with InputIterator parameters (LWG 3522).
1818         * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
1820 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1822         * include/bits/ranges_base.h (ranges::distance): Split overload
1823         into two (LWG 3392).
1824         * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
1826 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1828         * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
1829         std::unary_function.
1830         * testsuite/30_threads/thread/cons/4.cc: Likewise.
1831         * testsuite/30_threads/thread/cons/5.cc: Likewise.
1833 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1835         * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
1836         unnecesary derivation from std::unary_function.
1837         * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
1838         * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
1839         * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
1840         * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
1841         * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
1842         * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
1843         * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
1844         * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
1845         Likewise.
1846         * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
1847         * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
1849 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1851         * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
1852         expand the format string for freestanding, or non-vebose, or if
1853         we're just going to abort anyway.
1854         * src/c++11/snprintf_lite.cc: Remove unused header and
1855         declaration.
1857 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1859         * include/std/variant (__do_visit): Use variant_npos instead of
1860         literal -1 that requires a narrowing conversion.
1862 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1864         PR libstdc++/99327
1865         * src/filesystem/ops-common.h (__unsupported): New function to
1866         return a suitable error code for missing functionality.
1867         (posix::off_t): New typedef.
1868         (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
1869         fallback implementations.
1870         (do_copy_file): Replace uses of errc::not_supported.
1871         * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
1872         (fs::create_directory, fs::create_directory_symlink)
1873         (fs::create_hard_link, fs::create_symlink, fs::current_path)
1874         (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
1875         (fs::last_write_time, fs::permissions, fs::read_symlink):
1876         Replace uses of errc::not_supported.
1877         (fs::resize_file): Qualify off_t.
1878         * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
1879         (fs::create_directory, fs::create_directory_symlink)
1880         (fs::create_hard_link, fs::create_symlink, fs::current_path)
1881         (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
1882         (fs::permissions, fs::read_symlink, fs::system_complete):
1883         Replace uses of errc::not_supported.
1884         (fs::resize_file): Qualify off_t and enable unconditionally.
1885         * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
1887 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1889         * src/filesystem/ops-common.h (last_error): New helper function.
1890         (filesystem::do_space): Use last_error().
1891         * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
1892         (fs::equivalent, fs::remove, fs::temp_directory_path): Use
1893         last_error().
1894         * src/filesystem/ops.cc (fs::create_hard_link)
1895         (fs::remove, fs::temp_directory_path): Likewise.
1897 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1899         * include/std/type_traits (__conditional): New class template
1900         for internal uses of std::conditional.
1901         (__conditional_t): New alias template to replace conditional_t.
1902         (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
1903         __conditional_t instead of conditional::type.
1904         * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
1905         * include/bits/hashtable.h (_Hashtable): Likewise.
1906         * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
1907         (_Local_iterator): Likewise. Replace typedefs with
1908         using-declarations.
1909         * include/bits/move.h (move_if_noexcept): Use __conditional_t.
1910         * include/bits/parse_numbers.h (_Select_int_base): Likewise.
1911         * include/bits/ptr_traits.h (__make_not_void): Likewise.
1912         * include/bits/ranges_algobase.h (__copy_or_move_backward)
1913         (__copy_or_move): Likewise.
1914         * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
1915         * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
1916         * include/bits/regex_compiler.h (_BracketMatcher): Use
1917         __conditional_t. Replace typedefs with using-declarations.
1918         * include/bits/shared_ptr_base.h (__shared_count): Use
1919         __conditional_t.
1920         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1921         Likewise.
1922         * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
1923         (reverse_iterator::iterator_concept)
1924         (__make_move_if_noexcept_iterator)
1925         (iterator_traits<common_iterator<_It, _Sent>>)
1926         (iterator_traits<counted_iterator<_It>>): Likewise.
1927         * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
1928         * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
1929         (_Rb_tree::_M_clone_node): Likewise.
1930         * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
1931         Likewise.
1932         * include/bits/uses_allocator.h (__uses_alloc): Likewise.
1933         (__is_uses_allocator_predicate): Likewise.
1934         * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
1935         * include/experimental/any (any::_Manager, __any_caster):
1936         Likewise.
1937         * include/experimental/executor (async_completion): Likewise.
1938         * include/experimental/functional (__boyer_moore_base_t):
1939         Likewise.
1940         * include/std/any (any::_Manager): Likewise.
1941         * include/std/functional (__boyer_moore_base_t): Likewise.
1942         * include/std/ranges (borrowed_iterator_t)
1943         (borrowed_subrange_t, __detail::__maybe_present_t)
1944         (__detail::__maybe_const_t, split_view): Likewise.
1945         * include/std/tuple (__empty_not_final, tuple::operator=):
1946         Likewise.
1947         * include/std/variant (__detail::__variant::__get_t): Likewise.
1949 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1951         PR libstdc++/78113
1952         * include/std/variant (__do_visit): Use a switch when we have a
1953         single variant with a small number of alternatives.
1955 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1957         PR libstdc++/90943
1958         * include/std/variant (__cpp_lib_variant): Update value.
1959         (__detail::__variant::__as): New helpers implementing the
1960         as-variant exposition-only function templates.
1961         (visit, visit<R>): Use __as to upcast the variant parameters.
1962         * include/std/version (__cpp_lib_variant): Update value.
1963         * testsuite/20_util/variant/visit_inherited.cc: New test.
1965 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1967         * include/bits/stl_iterator.h (__normal_iterator): Simplify
1968         converting constructor and do not require _Container::pointer.
1970 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1972         * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
1973         (basic_string(basic_string&&)): Add noexcept and avoid
1974         allocation, by sharing rep with the rvalue string.
1976 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1978         * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
1979         (common_iterator::__postfix_proxy): Add noexcept.
1981 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1983         PR libstdc++/94418
1984         * include/bits/stl_iterator.h (reverse_iterator): Use
1985         conditional noexcept on constructors and assignment operators.
1986         * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
1988 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1990         PR libstdc++/100153
1991         * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
1992         When size() is zero just deallocate and reset.
1994 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
1996         PR libstdc++/96733
1997         * include/bits/stl_algo.h (clamp): Use std::min and std::max.
1999 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
2001         * include/bits/regex.h (basic_regex::multiline): Define for
2002         non-strict C++11 and C++14 modes.
2003         * include/bits/regex_constants.h (regex_constants::multiline):
2004         Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
2006 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
2008         * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
2010 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
2012         * include/bits/stream_iterator.h (istream_iterator): Add
2013         noexcept to constructors and non-throwing member functions and
2014         friend functions.
2015         (ostream_iterator): Likewise.
2017 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
2019         * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
2020         New trait to identify vector<bool> iterators, including debug
2021         ones.
2022         (_ForwardIteratorReferenceConcept): Add default template
2023         argument using _Is_vector_bool_iterator and use it in partial
2024         specialization for the vector<bool> cases.
2025         (_Mutable_ForwardIteratorReferenceConcept): Likewise.
2026         * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
2027         line number.
2029 2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
2031         * include/bits/list.tcc (list::merge): Remove call to size() and
2032         try-catch block. Use _Finalize_merge instead.
2033         * include/bits/stl_list.h (list::_Finalize_merge): New
2034         scope guard type to update _M_size members after a merge.
2036 2021-09-30  Jonathan Wakely  <jwakely@redhat.com>
2038         * include/bits/regex.h (basic_regex::multiline): Fix #if
2039         condition.
2041 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
2043         * include/bits/regex.h (basic_regex::multiline): Define constant
2044         for C++17.
2045         * include/bits/regex_constants.h (regex_constants::multiline):
2046         Define constant for C++17.
2047         (regex_constants::__multiline): Define duplicate constant for
2048         internal use in C++11 and C++14.
2049         * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
2050         New member function.
2051         (_Executor::_M_is_line_terminator(_CharT)): New member function.
2052         (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
2053         member functions to support multiline matches.
2054         * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
2056 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
2058         * include/bits/regex_compiler.h (_Compiler::_S_validate): New
2059         function.
2060         * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
2061         _S_validate to check flags.
2062         * include/bits/regex_error.h (_S_grammar): New error code for
2063         internal use.
2064         * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
2066 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
2068         PR libstdc++/84110
2069         * include/bits/regex_error.h (regex_constants::_S_null): New
2070         error code for internal use.
2071         * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
2072         Check for null character.
2073         * testsuite/28_regex/basic_regex/84110.cc: New test.
2075 2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
2077         * include/bits/regex.h (__detail::__is_contiguous_iter): Move
2078         here from <bits/regex_compiler.h>.
2079         (basic_regex::_M_compile): New function to compile an NFA from
2080         a regular expression string.
2081         (basic_regex::basic_regex): Use _M_compile instead of delegating
2082         to other constructors.
2083         (basic_regex::operator=(const basic_regex&)): Define as
2084         defaulted.
2085         (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
2086         (basic_regex::assign(const basic_regex&)): Use copy assignment.
2087         (basic_regex::assign(basic_regex&&)): Use move assignment.
2088         (basic_regex::assign(const C*, flag_type)): Use _M_compile
2089         instead of constructing a temporary string.
2090         (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
2091         (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
2092         Use _M_compile instead of constructing a temporary basic_regex.
2093         (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
2094         constructing a temporary string for contiguous iterators of the
2095         right value type.
2096         * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
2097         <bits/regex.h>.
2098         (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
2099         (__compile_nfa): Remove.
2100         * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
2101         test.
2102         * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
2104 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2106         * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
2107         Return false for ETIMEDOUT and true otherwise.
2109 2021-09-28  François Dumont  <fdumont@gcc.gnu.org>
2111         * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
2112         to also match message with '__8' in it.
2114 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2116         * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
2117         * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
2118         * include/bits/regex_compiler.tcc: Likewise.
2119         * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
2120         * include/bits/regex_scanner.tcc: Likewise.
2122 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2124         * include/bits/regex_compiler.tcc: Add line break in empty while
2125         statement.
2126         * include/bits/regex_executor.tcc: Avoid unused parameter
2127         warning.
2129 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2131         * include/bits/regex.h (basic_regex, swap): Add noexcept to
2132         non-throwing functions.
2133         * include/bits/regex_automaton.h (_State_base, _State)
2134         (_NFA_base): Likewise.
2135         * include/bits/regex_compiler.h (_Compiler): Likewise.
2136         * include/bits/regex_error.h (regex_error::code()): Likewise.
2137         * include/bits/regex_scanner.h (_Scanner): Likewise.
2139 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2141         * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
2142         Define before first attempt to check it.
2144 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2146         * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
2147         Do not check non-default constructible sequences when
2148         _GLIBCXX_CONCEPT_CHECKS is defined.
2149         * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
2150         Likewise.
2151         * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
2152         Likewise.
2153         * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
2154         Likewise.
2155         * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
2156         Likewise.
2157         * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
2158         Likewise.
2160 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2162         * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
2163         Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
2164         is defined.
2165         * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
2166         Likewise.
2167         * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
2168         Likewise.
2169         * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
2170         Likewise.
2171         * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
2172         Likewise.
2173         * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
2174         Likewise.
2175         * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
2176         Likewise.
2177         * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
2178         Likewise.
2179         * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
2180         Likewise.
2181         * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
2182         Likewise.
2183         * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
2184         Likewise.
2185         * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
2186         Likewise.
2187         * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
2188         Likewise.
2189         * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
2190         Likewise.
2191         * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
2192         Likewise.
2193         * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
2194         Likewise.
2195         * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
2196         Likewise.
2197         * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
2198         Likewise.
2200 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2202         * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
2203         (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
2204         Check result types of iterator operations.
2205         (_Mutable_ForwardIteratorConcept): Check that iterator's
2206         reference type is a reference to its value type.
2207         (_Mutable_BidirectionalIteratorConcept): Do not require the
2208         value type to be assignable.
2209         (_Mutable_RandomAccessIteratorConcept): Likewise.
2210         * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
2211         line number.
2213 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2215         * testsuite/25_algorithms/copy/34595.cc: Add missing operation
2216         for type used as an iterator.
2217         * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
2219 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2221         * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
2222         comparison function for priority_queue of type with no
2223         relational operators.
2224         * testsuite/20_util/is_swappable/value.h: Likewise.
2225         * testsuite/24_iterators/output/concept.cc: Add operator< to
2226         type used in set.
2228 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2230         * include/bits/boost_concept_check.h (_OutputIteratorConcept):
2231         Use a function to preserve value category of the type.
2232         * include/bits/stl_algobase.h (copy, move, fill_n): Use a
2233         reference as the second argument for _OutputIteratorConcept.
2234         (copy_backward, move_backward): Use _OutputIteratorConcept
2235         instead of _ConvertibleConcept.
2237 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2239         * include/bits/stl_iterator.h (pointer_traits): Define partial
2240         specialization for __normal_iterator.
2241         * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
2243 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2245         * include/bits/move.h (forward(remove_reference_t<T>&&)):
2246         Improve text of static_assert.
2247         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
2248         * testsuite/20_util/forward/f_neg.cc: Likewise.
2250 2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
2252         PR libstdc++/102499
2253         * include/bits/fs_path.h (path::begin, path::end): Add noexcept
2254         to declarations, to match definitions.
2256 2021-09-24  Jonathan Wakely  <jwakely@redhat.com>
2258         * include/bits/range_access.h (cbegin, cend): Remove redundant
2259         'inline' specifier.
2261 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
2263         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2264         Remove dg-error lines for C++20-only errors.
2266 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
2268         * testsuite/19_diagnostics/headers/system_error/93151.cc:
2269         Disable PCH.
2271 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
2273         * src/c++11/system_error.cc (system_error_category) [_WIN32]:
2274         Map Windows error codes to generic POSIX error numbers. Use
2275         FormatMessage instead of strerror.
2276         * testsuite/19_diagnostics/error_category/system_category.cc:
2277         Adjust for new behaviour on Windows.
2279 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
2281         * src/c++11/system_error.cc (generic_error_category): Define
2282         class and virtual functions as 'final'.
2283         (generic_error_category::equivalent(int, const error_condition&)):
2284         Override.
2285         (system_error_category): Define class and virtual functions as
2286         'final'.
2287         (system_error_category::equivalent(int, const error_condition&)):
2288         Override.
2289         (generic_category_instance, system_category_instance): Use
2290         constinit union to make the objects immortal.
2292 2021-09-23  Jonathan Wakely  <jwakely@redhat.com>
2294         PR libstdc++/102425
2295         * src/c++11/system_error.cc
2296         (system_error_category::default_error_condition): Add 0 to
2297         switch.
2298         * testsuite/19_diagnostics/error_category/102425.cc: New test.
2300 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
2302         * include/bits/fs_path.h (path::iterator): Add noexcept to all
2303         member functions and friend functions.
2304         (distance): Add noexcept.
2305         (advance): Add noexcept and inline.
2306         * include/experimental/bits/fs_path.h (path::iterator):
2307         Add noexcept to all member functions.
2309 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
2311         PR libstdc++/102270
2312         * include/std/tuple (_Tuple_impl): Add constexpr to constructor
2313         missed in previous patch.
2314         * testsuite/20_util/tuple/cons/102270.C: Moved to...
2315         * testsuite/20_util/tuple/cons/102270.cc: ...here.
2316         * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
2317         constexpr to constructor so it can be used for C++20 tests.
2319 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
2321         * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
2322         * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
2323         * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
2324         * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
2326 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2328         * src/Makefile.am (stamp-debug): Add all Makefiles as
2329         prerequisites.
2330         * src/Makefile.in: Regenerate.
2332 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2334         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
2335         timeout factor to 3.
2336         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
2338 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2340         * doc/xml/manual/using.xml: Generalize to apply to more than
2341         just -std=c++11.
2342         * doc/html/manual/using_macros.html: Regenerate.
2344 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2346         * include/std/optional (nullptr_t): Make constructor noexcept.
2348 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2350         * include/bits/fs_path.h (advance): Remove non-deducible
2351         template parameter.
2353 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2355         PR libstdc++/102270
2356         * include/std/tuple (_Head_base, _Tuple_impl): Add
2357         _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
2358         (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
2359         * testsuite/20_util/tuple/cons/102270.C: New test.
2361 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2363         PR libstdc++/102280
2364         * include/std/span (span(Range&&)): Add constraint to deduction
2365         guide.
2367 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2369         * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
2370         * src/c++98/Makefile.in: Regenerate.
2372 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2374         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2375         (to_string): Add noexcept if the type width is 32 bits or less.
2377 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
2379         * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
2380         (__uniq_ptr_impl::_M_deleter): Add noexcept.
2382 2021-09-16  Thomas Rodgers  <rodgert@twrodgers.com>
2384         PR libstdc++/101761
2385         * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
2386         va and vb as arguments to wait/notify, remove unused bb local.
2388 2021-09-15  Hugo Beauzée-Luyssen  <hugo@beauzee.fr>
2390         * crossconfig.m4: Check for TLS support on mingw.
2391         * configure: Regenerate.
2393 2021-09-13  Jason Merrill  <jason@redhat.com>
2395         * include/std/version: Define __cpp_lib_hardware_interference_size.
2396         * libsupc++/new: Define hardware interference size variables.
2398 2021-09-10  Jonathan Wakely  <jwakely@redhat.com>
2400         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2401         Fix invalid hostname to only match the .invalid TLD.
2403 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
2405         * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
2406         Add new functions.
2407         * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
2408         it.
2410 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
2412         * include/std/atomic: Tweak whitespace.
2414 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
2416         PR c++/102177
2417         * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
2418         New function to check if a memory order is valid for the failure
2419         case of compare exchange operations.
2420         (__atomic_base<I>::compare_exchange_weak): Simplify assertions
2421         by using __is_valid_cmpexch_failure_order.
2422         (__atomic_base<I>::compare_exchange_strong): Likewise.
2423         (__atomic_base<P*>::compare_exchange_weak): Likewise.
2424         (__atomic_base<P*>::compare_exchange_strong): Likewise.
2425         (__atomic_impl::compare_exchange_weak): Add assertion.
2426         (__atomic_impl::compare_exchange_strong): Likewise.
2427         * include/std/atomic (atomic::compare_exchange_weak): Likewise.
2428         (atomic::compare_exchange_strong): Likewise.
2430 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
2432         * include/std/functional (invoke_r): Define.
2433         * include/std/version (__cpp_lib_invoke_r): Define.
2434         * testsuite/20_util/function_objects/invoke/version.cc: Check
2435         for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
2436         * testsuite/20_util/function_objects/invoke/4.cc: New test.
2438 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
2440         PR libstdc++/98421
2441         * include/std/span (span(Iter, size_type), span(Iter, Iter)):
2442         Add valid range checks.
2443         * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
2444         * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
2446 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
2448         * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
2449         * configure: Regenerate.
2451 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
2453         * src/c++11/system_error.cc (error_category::~error_category()):
2454         Remove noexcept-specifier.
2455         (system_error::~system_error()): Likewise.
2456         * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
2457         * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
2459 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
2461         PR libstdc++/102074
2462         * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
2463         [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
2465 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
2467         * include/experimental/internet (__make_resolver_error_code):
2468         Handle EAI_SYSTEM errors.
2469         (basic_resolver_results): Use __make_resolver_error_code. Use
2470         Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
2472 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
2474         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2475         Try other service if "http" fails.
2477 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
2479         * testsuite/17_intro/names.cc: Undefine some more names used
2480         by Solaris system headers.
2482 2021-08-30  Jason Merrill  <jason@redhat.com>
2484         PR c++/96286
2485         * testsuite/30_threads/promise/requirements/lwg3466.cc:
2486         Remove dg-prune-outputs.
2488 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
2490         * include/bits/alloc_traits.h (allocator_traits): Add explicit
2491         specialization for allocator<void>. Improve doxygen comments.
2492         * include/bits/allocator.h (allocator<void>): Restore for the
2493         versioned namespace.
2494         (allocator<void>::construct, allocator<void>::destroy): Remove.
2495         * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
2496         Add default constructor and converting constructor.
2498 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
2500         * include/bits/stl_uninitialized.h: Fix typo in comment.
2502 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
2504         PR libstdc++/99876
2505         * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
2506         to avoid unnecessary current_path() call.
2508 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
2510         * include/bits/std_function.h (function::function(F&&)): Give
2511         name to defaulted template parameter, to improve diagnostics.
2512         Use markdown for more doxygen comments.
2514 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
2516         * include/bits/std_function.h (function): Adjust doxygen
2517         comments.
2518         * include/bits/unique_ptr.h (make_unique_for_overwrite):
2519         Change parameter name to match doxygen comment.
2521 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
2523         * include/bits/std_function.h (_function_base::_Base_manager):
2524         Replace _M_init_functor with a function template using a
2525         forwarding reference, and a pair of _M_create function
2526         templates. Reuse _M_create for the clone operation.
2527         (function::_Decay_t): New alias template.
2528         (function::_Callable): Simplify by using _Decay.
2529         (function::function(F)): Change parameter to forwarding
2530         reference, as per LWG 2447. Add noexcept-specifier. Simplify
2531         constraints.
2532         (function::operator=(F&&)): Add noexcept-specifier.
2533         * testsuite/20_util/function/cons/lwg2774.cc: New test.
2534         * testsuite/20_util/function/cons/noexcept.cc: New test.
2536 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
2538         * include/bits/std_function.h (function::function(F)): Add
2539         static assertions to check constructibility requirements.
2541 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
2543         PR libstdc++/100285
2544         * configure.ac: Check for O_NONBLOCK.
2545         * configure: Regenerate.
2546         * include/experimental/internet: Include <ws2tcpip.h> for
2547         Windows.  Use preprocessor conditions around more constants.
2548         * include/experimental/socket: Use preprocessor conditions
2549         around more constants.
2550         * testsuite/experimental/net/internet/resolver/base.cc: Only use
2551         constants when the corresponding C macro is defined.
2552         * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
2553         * testsuite/experimental/net/socket/socket_base.cc: Likewise.
2554         Make preprocessor checks more fine-grained.
2556 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
2558         * testsuite/17_intro/names.cc: Check 'sz'.
2560 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
2562         * testsuite/17_intro/names.cc: Adjust for Windows.
2564 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
2566         * include/std/valarray: Uglify 'func' parameters.
2567         * testsuite/17_intro/names.cc: Add 'func' to checks.
2569 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
2571         PR libstdc++/102064
2572         * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
2573         Define macro to check conditions for optimizing trivial cases.
2574         (__check_constructible): New function to do static assert.
2575         (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
2576         Use new macro.
2577         * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
2578         Adjust dg-error pattern.
2579         * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
2580         C++17-specific checks from 89164_c++17.cc.
2581         * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
2582         * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
2583         New test.
2584         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
2585         New test.
2586         * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
2587         New test.
2588         * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
2589         New test.
2591 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
2593         PR libstdc++/102048
2594         * include/ext/rope (rope::erase(size_type)): Remove broken
2595         function.
2597 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
2599         * doc/xml/manual/status_cxx2020.xml: Update table.
2600         * doc/html/manual/status.html: Regenerate.
2602 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
2604         * include/std/type_traits (is_layout_compatible): Define.
2605         (is_corresponding_member): Define.
2606         * include/std/version (__cpp_lib_is_layout_compatible): Define.
2607         * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
2608         New test.
2609         * testsuite/20_util/is_layout_compatible/value.cc: New test.
2610         * testsuite/20_util/is_layout_compatible/version.cc: New test.
2611         * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
2612         New test.
2613         * testsuite/23_containers/span/layout_compat.cc: Do not use real
2614         std::is_layout_compatible trait if available.
2616 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
2618         * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
2619         explicit instantiation definitions.
2621 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
2623         * include/std/ranges (basic_istream_view): Add default template
2624         argument.
2625         * testsuite/std/ranges/istream_view.cc: Check it.
2627 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
2629         * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
2630         precondition check.
2632 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
2634         PR libstdc++/90787
2635         * testsuite/util/testsuite_fs.h (permissions_are_testable):
2636         Define as inline.
2638 2021-08-20  Jonathan Wakely  <jwakely@redhat.com>
2640         PR libstdc++/90787
2641         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
2642         Use new __gnu_test::permissions_are_testable() function.
2643         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2644         Likewise.
2645         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2646         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2647         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2648         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2649         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2650         * testsuite/27_io/filesystem/operations/symlink_status.cc:
2651         Likewise.
2652         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2653         Likewise.
2654         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2655         Likewise.
2656         * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2657         Likewise.
2658         * testsuite/experimental/filesystem/operations/exists.cc:
2659         Likewise.
2660         * testsuite/experimental/filesystem/operations/is_empty.cc:
2661         Likewise.
2662         * testsuite/experimental/filesystem/operations/remove.cc:
2663         Likewise.
2664         * testsuite/experimental/filesystem/operations/remove_all.cc:
2665         Likewise.
2666         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2667         Likewise.
2668         * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
2669         New function to guess whether testing permissions will work.
2671 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2673         * doc/xml/manual/status_cxx2020.xml: Move row  earlier in table.
2674         * doc/html/manual/status.html: Regenerate.
2676 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2678         * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
2680 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2682         PR libstdc++/101965
2683         * include/std/charconv (__to_chars_i): Remove redundant check.
2685 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2687         PR libstdc++/101960
2688         * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
2689         class' move constructor. Define as defaulted for versioned
2690         namespace.
2691         * testsuite/20_util/tuple/cons/101960.cc: New test.
2693 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2695         PR libstdc++/100139
2696         * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
2697         * doc/html/manual/status.html: Regenerate.
2699 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2701         * include/bits/shared_ptr.h: Add @since and @headerfile tags.
2702         * include/bits/unique_ptr.h: Add @headerfile tags.
2704 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2706         * src/filesystem/ops-common.h (filesystem::file_time): Improve
2707         overflow check by using system_clock::duration::max().
2709 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
2711         * include/bits/stl_tree.h: Tweak whitespace.
2713 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2715         * include/bits/unique_ptr.h (default_delete): Add @since tag.
2716         (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
2717         (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
2718         @param, and @returns.
2719         (_MakeUniq): Move to __detail namespace. Add alias template
2720         helpers.
2722 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2724         * include/bits/stl_function.h: Improve doxygen comments.
2726 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2728         * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
2729         processing for C++20 components and components that depend on
2730         compiler features.
2731         * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
2732         * include/std/type_traits: Improve doxygen comments for C++20
2733         traits.
2735 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2737         * include/ext/type_traits.h (__promote_2, __promote_3)
2738         (__promote_4): Redfine as alias templates using __promoted_t.
2739         * include/std/complex (__promote_2): Remove partial
2740         specializations for std::complex.
2742 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2744         * include/bits/stl_algo.h (min(initializer_list<T>))
2745         (min(initializer_list<T>, Compare)): Call __min_element directly to
2746         avoid redundant debug checks for valid ranges.
2747         (max(initializer_list<T>), max(initializer_list<T>, Compare)):
2748         Likewise, for __max_element.
2749         (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
2750         Likewise, for __minmax_element.
2752 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2754         * include/debug/deque (deque(size_type, const T&, const A&)):
2755         Prevent class template argument deduction and replace with a
2756         deduction guide.
2757         * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
2758         Likewise.
2759         * include/debug/list (list(size_type, const T&, const A&)):
2760         Likewise.
2761         * include/debug/vector (vector(size_type, const T&, const A&)):
2762         Likewise.
2764 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
2766         * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
2767         'std::vector<bool>::reference' as type name, not _Bit_reference.
2768         (build_libstdcxx_dictionary): Register printers for vector<bool>
2769         types in debug mode too.
2770         * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
2771         output for invalid _Bit_reference. Use vector<bool>::reference
2772         instead of _Bit_reference.
2773         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2775 2021-08-17  Thomas Schwinge  <thomas@codesourcery.com>
2777         * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
2778         continued.
2780 2021-08-17  Luc Michel  <lmichel@kalray.eu>
2781             Marc Poulhies  <mpoulhies@kalrayinc.com>
2783         * testsuite/lib/gdb-test.exp (gdb_version_check)
2784         (gdb_version_check_xmethods): Only check the GDB version for
2785         local native targets.
2787 2021-08-17  Antony Polukhin  <antoshkka@gmail.com>
2788             Jonathan Wakely  <jwakely@redhat.com>
2790         * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
2791         if distance is O(1).
2792         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2793         line number.
2795 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2797         * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
2798         construction from input iterators.
2800 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2802         * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
2804 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2806         PR libstdc++/101923
2807         * include/bits/std_function.h (function(function&&)): Check for
2808         non-empty parameter before doing any work.
2810 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2812         * include/bits/cow_string.h (basic_string::contains): Do not
2813         define for -std=gnu++20.
2815 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2817         * include/bits/ranges_util.h (__not_same_as): Rename to
2818         __different_from.
2819         * include/std/ranges (__not_same_as): Likewise.
2821 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2823         * include/std/utility (exchange): Add noexcept-specifier.
2824         * testsuite/20_util/exchange/noexcept.cc: New test.
2826 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
2828         * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
2829         (build_libstdcxx_dictionary): Register printer for
2830         std::error_code and std::error_condition.
2831         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
2833 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
2835         PR libstdc++/101937
2836         * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
2837         static data member.
2838         (print_word): Use qualified-id to access it.
2840 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
2842         * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
2843         Install another copy of the GDB hook.
2844         * python/Makefile.in: Regenerate.
2846 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
2848         PR libstdc++/101870
2849         * include/c_global/cmath (hypot): Use __promoted_t.
2850         (lerp): Add new overload accepting any arithmetic types.
2851         * include/ext/type_traits.h (__promoted_t): New alias template.
2852         * testsuite/26_numerics/lerp.cc: Moved to...
2853         * testsuite/26_numerics/lerp/1.cc: ...here.
2854         * testsuite/26_numerics/lerp/constexpr.cc: New test.
2855         * testsuite/26_numerics/lerp/version.cc: New test.
2857 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
2859         * testsuite/26_numerics/lerp.cc: Add header name to #error.
2860         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
2861         * testsuite/26_numerics/midpoint/version.cc: New test.
2863 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
2865         * include/experimental/random (experimental::randint): Add
2866         nodiscard attribute.
2868 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
2870         * src/c++98/locale_init.cc: Require C++11.
2871         * src/c++98/localename.cc: Likewise.
2872         * src/c++98/misc-inst.cc: Require C++98.
2874 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
2876         PR libstdc++/101866
2877         * testsuite/experimental/random/randint.cc: Loop and retry if
2878         reseed() produces the same sequence.
2880 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
2882         * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
2883         (is_pointer_interconvertible_base_of_v)
2884         (is_pointer_interconvertible_base_of): Define for C++20.
2885         * include/std/version (__cpp_lib_is_pointer_interconvertible):
2886         Define.
2887         * testsuite/23_containers/span/layout_compat.cc: Use correct
2888         feature test macro for std::is_layout_compatible_v.
2889         * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
2890         * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
2892 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
2894         * include/bits/regex.h (basic_regex::transform_primary): Use
2895         _GLIBCXX_STD_C::vector for local variable.
2896         * include/bits/regex.tcc (__regex_algo_impl): Use reference to
2897         _GLIBCXX_STD_C::vector base class of match_results.
2898         * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
2899         _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
2900         variables.
2901         * include/bits/regex_compiler.h (_BracketMatcher): Use
2902         _GLIBCXX_STD_C::vector for data members.
2903         * include/bits/regex_executor.h (_Executor): Likewise.
2904         * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
2906 2021-08-09  François Dumont  <fdumont@gcc.gnu.org>
2908         * include/debug/safe_container.h
2909         (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
2910         (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
2911         (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
2913 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
2915         * testsuite/23_containers/unordered_map/cons/default.cc: Add
2916         equality comparison operators to allocator.
2917         * testsuite/23_containers/unordered_set/cons/default.cc:
2918         Likewise.
2920 2021-08-08  François Dumont  <fdumont@gcc.gnu.org>
2922         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
2923         dg-prune-output reason with 'builtin_unreachable'.
2924         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
2925         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
2926         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2927         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2928         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2929         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2930         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2931         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2933 2021-08-08  Hans-Peter Nilsson  <hp@bitrange.com>
2935         * testsuite/std/ranges/iota/max_size_type.cc: Set
2936         dg-timeout-factor to 4.
2938 2021-08-06  Jonathan Wakely  <jwakely@redhat.com>
2940         * libsupc++/compare (compare_three_way, strong_order)
2941         (weak_order, partial_order, compare_strong_order_fallback)
2942         (compare_weak_order_fallback, compare_partial_order_fallback):
2943         Move nodiscard attributes to correct location.
2945 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
2947         PR libstdc++/101782
2948         * include/bits/ranges_base.h (ranges::begin, ranges::end)
2949         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2950         (ranges::empty, ranges::data): Move attribute after the
2951         declarator-id instead of at the end of the declarator.
2952         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
2953         Move attributes back to the start of the function declarator,
2954         but move the requires-clause to the end.
2955         (common_iterator): Move attribute after the declarator-id.
2956         * include/bits/stl_queue.h (queue): Remove ill-formed attributes
2957         from friend declaration that are not definitions.
2958         * include/std/ranges (views::all, views::filter)
2959         (views::transform, views::take, views::take_while,
2960         views::drop) (views::drop_while, views::join,
2961         views::lazy_split) (views::split, views::counted,
2962         views::common, views::reverse) (views::elements): Move
2963         attributes after the declarator-id.
2965 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
2967         * libsupc++/compare (partial_ordering, weak_ordering)
2968         (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
2969         (compare_three_way, strong_order, weak_order, partial_order)
2970         (compare_strong_order_fallback, compare_weak_order_fallback)
2971         (compare_partial_order_fallback, __detail::__synth3way): Add
2972         nodiscard attribute.
2973         * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
2974         -Wno-unused-result to options.
2976 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
2978         PR libstdc++/101782
2979         * include/bits/ranges_base.h (ranges::begin, ranges::end)
2980         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2981         (ranges::empty, ranges::data): Move attribute to the end of
2982         the declarator.
2983         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
2984         (common_iterator): Likewise for non-member operator functions.
2985         * include/std/ranges (views::all, views::filter)
2986         (views::transform, views::take, views::take_while, views::drop)
2987         (views::drop_while, views::join, views::lazy_split)
2988         (views::split, views::counted, views::common, views::reverse)
2989         (views::elements): Likewise.
2990         * testsuite/std/ranges/access/101782.cc: New test.
2992 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
2994         * include/bits/forward_list.h: Add [[nodiscard]] to functions
2995         with no side-effects.
2996         * include/bits/stl_bvector.h: Likewise.
2997         * include/bits/stl_deque.h: Likewise.
2998         * include/bits/stl_list.h: Likewise.
2999         * include/bits/stl_queue.h: Likewise.
3000         * include/bits/stl_stack.h: Likewise.
3001         * include/bits/stl_vector.h: Likewise.
3002         * include/debug/deque: Likewise.
3003         * include/debug/forward_list: Likewise.
3004         * include/debug/list: Likewise.
3005         * include/debug/safe_iterator.h: Likewise.
3006         * include/debug/vector: Likewise.
3007         * include/std/array: Likewise.
3008         * testsuite/23_containers/array/creation/3_neg.cc: Use
3009         -Wno-unused-result.
3010         * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
3011         to void.
3012         * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
3013         * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
3014         * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
3015         * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
3016         Likewise.
3017         * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
3018         Likewise.
3019         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3020         Adjust dg-error line numbers.
3021         * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
3022         result to void.
3023         * testsuite/23_containers/deque/debug/invalidation/4.cc:
3024         Likewise.
3025         * testsuite/23_containers/deque/types/1.cc: Use
3026         -Wno-unused-result.
3027         * testsuite/23_containers/list/types/1.cc: Cast result to void.
3028         * testsuite/23_containers/priority_queue/members/7161.cc:
3029         Likewise.
3030         * testsuite/23_containers/queue/members/7157.cc: Likewise.
3031         * testsuite/23_containers/vector/59829.cc: Likewise.
3032         * testsuite/23_containers/vector/ext_pointer/types/1.cc:
3033         Likewise.
3034         * testsuite/23_containers/vector/ext_pointer/types/2.cc:
3035         Likewise.
3036         * testsuite/23_containers/vector/types/1.cc: Use
3037         -Wno-unused-result.
3039 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
3041         * include/bits/iterator_concepts.h (iter_move): Add
3042         [[nodiscard]].
3043         * include/bits/range_access.h (begin, end, cbegin, cend)
3044         (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
3045         * include/bits/ranges_base.h (ranges::begin, ranges::end)
3046         (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
3047         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3048         (ranges::empty, ranges::data, ranges::cdata): Likewise.
3049         * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
3050         (back_insert_iterator, front_insert_iterator, insert_iterator)
3051         (move_iterator, move_sentinel, common_iterator)
3052         (counted_iterator): Likewise.
3053         * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
3054         Likewise.
3055         * include/bits/stream_iterator.h (istream_iterator)
3056         (ostream_iterartor): Likewise.
3057         * include/bits/streambuf_iterator.h (istreambuf_iterator)
3058         (ostreambuf_iterator): Likewise.
3059         * include/std/ranges (views::single, views::iota, views::all)
3060         (views::filter, views::transform, views::take, views::take_while)
3061         (views::drop, views::drop_while, views::join, views::lazy_split)
3062         (views::split, views::counted, views::common, views::reverse)
3063         (views::elements): Likewise.
3064         * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
3065         * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
3066         * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
3067         Likewise.
3068         * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
3069         * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
3070         Likewise.
3071         * testsuite/21_strings/basic_string/range_access/char/1.cc:
3072         Cast result to void.
3073         * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
3074         Likewise.
3075         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3076         Likewise.
3077         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3078         Likewise.
3079         * testsuite/23_containers/array/range_access.cc: Likewise.
3080         * testsuite/23_containers/deque/range_access.cc: Likewise.
3081         * testsuite/23_containers/forward_list/range_access.cc:
3082         Likewise.
3083         * testsuite/23_containers/list/range_access.cc: Likewise.
3084         * testsuite/23_containers/map/range_access.cc: Likewise.
3085         * testsuite/23_containers/multimap/range_access.cc: Likewise.
3086         * testsuite/23_containers/multiset/range_access.cc: Likewise.
3087         * testsuite/23_containers/set/range_access.cc: Likewise.
3088         * testsuite/23_containers/unordered_map/range_access.cc:
3089         Likewise.
3090         * testsuite/23_containers/unordered_multimap/range_access.cc:
3091         Likewise.
3092         * testsuite/23_containers/unordered_multiset/range_access.cc:
3093         Likewise.
3094         * testsuite/23_containers/unordered_set/range_access.cc:
3095         Likewise.
3096         * testsuite/23_containers/vector/range_access.cc: Likewise.
3097         * testsuite/24_iterators/customization_points/iter_move.cc:
3098         Likewise.
3099         * testsuite/24_iterators/istream_iterator/sentinel.cc:
3100         Likewise.
3101         * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
3102         Likewise.
3103         * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
3104         * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
3105         * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
3106         * testsuite/24_iterators/range_access/range_access.cc:
3107         Likewise.
3108         * testsuite/24_iterators/range_operations/100768.cc: Likewise.
3109         * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
3110         * testsuite/28_regex/range_access.cc: Likewise.
3111         * testsuite/experimental/string_view/range_access/char/1.cc:
3112         Likewise.
3113         * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
3114         Likewise.
3115         * testsuite/ext/vstring/range_access.cc: Likewise.
3116         * testsuite/std/ranges/adaptors/take.cc: Likewise.
3117         * testsuite/std/ranges/p2259.cc: Likewise.
3119 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
3121         * include/bits/random.tcc (linear_congruential_engine): Do not
3122         define static constexpr members when they are implicitly inline.
3123         * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
3124         (__ratio_add, __ratio_subtract): Likewise.
3125         * include/std/type_traits (integral_constant): Likewise.
3126         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3127         line number.
3129 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
3131         * testsuite/util/testsuite_common_types.h: Replace uses of
3132         tr1::unordered_map and tr1::unordered_set with their C++11
3133         equivalents.
3134         * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
3135         dg-error line number.
3136         * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
3137         * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
3138         Likewise.
3139         * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
3140         Likewise.
3141         * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
3142         Likewise.
3143         * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
3144         Likewise.
3145         * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
3146         Likewise.
3148 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
3150         * include/std/memory_resource (polymorphic_allocator::delete_object):
3151         Call destructor directly instead of using destroy.
3152         (allocator_traits<polymorphic_allocator<T>>): Define partial
3153         specialization.
3155 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
3157         * testsuite/20_util/function_objects/binders/3113.cc: Remove
3158         trailing whitespace.
3159         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
3160         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
3161         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
3162         Likewise.
3163         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
3164         * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
3165         Likewise.
3166         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
3167         Likewise.
3168         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
3169         Likewise.
3171 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
3173         * doc/xml/manual/evolution.xml: Document deprecation.
3174         * doc/html/*: Regenerate.
3175         * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
3176         (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
3177         * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
3178         and later.
3179         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
3180         for C++11 and C++14 changes to std::random_shuffle and
3181         std::shuffle.
3182         * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
3183         use deprecated algorithms.
3184         * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
3185         * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
3186         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
3187         Likewise.
3188         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
3189         Likewise.
3191 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
3193         * testsuite/23_containers/forward_list/operations/3.cc:
3194         Use lambda instead of std::bind2nd.
3195         * testsuite/20_util/function_objects/binders/3113.cc: Add
3196         options for testing deprecated features.
3197         * testsuite/20_util/pair/cons/99957.cc: Likewise.
3198         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
3199         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
3200         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
3201         Likewise.
3202         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3203         * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
3204         * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
3205         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
3206         * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
3207         * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
3208         * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
3209         Likewise.
3210         * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
3211         Likewise.
3212         * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
3213         New proc.
3215 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
3217         * include/bits/regex_executor.h (_State_info): Replace
3218         unique_ptr<bool[]> with array of bool.
3219         * include/bits/regex_executor.tcc: Likewise.
3220         * include/bits/regex_scanner.tcc: Replace std::strchr with
3221         __builtin_strchr.
3222         * include/std/regex: Replace standard headers with smaller
3223         internal ones.
3224         * testsuite/28_regex/traits/char/lookup_classname.cc: Include
3225         <string.h> for strlen.
3226         * testsuite/28_regex/traits/char/lookup_collatename.cc:
3227         Likewise.
3229 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
3231         * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
3232         RAII class template.
3233         (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
3234         instead of unique_ptr.
3236 2021-08-02  Patrick Palka  <ppalka@redhat.com>
3238         PR libstdc++/101599
3239         * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
3240         Add missing std::move in return statement.
3241         (__partition_copy_fn::operator()): Rename templtae parameter
3242         _O2 to _Out2.  Uglify function parameters out_true and out_false.
3243         * include/bits/ranges_algobase.h (__copy_or_move): Add missing
3244         std::move to recursive call that unwraps a __normal_iterator
3245         output iterator.
3246         * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
3247         * testsuite/25_algorithms/move/constrained.cc (test05): New test.
3249 2021-08-02  Patrick Palka  <ppalka@redhat.com>
3251         PR libstdc++/101589
3252         * include/std/ranges (lazy_split_view::_InnerIter::base): Make
3253         the const& overload unconstrained and return a const reference
3254         as per LWG 3533.  Make unconditionally noexcept.
3255         (elements_view::base): Revert accidental r12-569 change.
3256         (elements_view::_Iterator::base): Make the const& overload
3257         unconstrained and return a const reference as per LWG 3533.
3258         Make unconditionally noexcept.
3260 2021-08-02  Patrick Palka  <ppalka@redhat.com>
3262         PR libstdc++/101483
3263         * include/std/ranges (join_view::_Iterator::_Iterator): Add
3264         missing std::move.
3266 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
3268         PR libstdc++/101709
3269         * src/filesystem/ops-common.h (get_temp_directory_from_env):
3270         Add error_code parameter.
3271         * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
3272         argument to get_temp_directory_from_env and check it.
3273         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
3275 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
3277         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
3278         Add dg-error for c++11_only target.
3280 2021-07-30  Jonathan Wakely  <jwakely@redhat.com>
3282         PR libstdc++/65018
3283         * configure.ac: Check for secure_getenv.
3284         * config.h.in: Regenerate.
3285         * configure: Regenerate.
3286         * src/filesystem/ops-common.h (get_temp_directory_from_env): New
3287         helper function to obtain path from the environment.
3288         * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
3289         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
3290         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3291         Print messages if test cannot be run.
3292         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3293         Likewise. Fix incorrect condition. Use "TMP" to work with
3294         Windows as well as POSIX.
3296 2021-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
3298         * src/c++17/memory_resource.cc: Use __exchange instead
3299         of std::exchange.
3301 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
3303         * include/experimental/optional (__throw_bad_optional_access):
3304         Replace GNU attribute with C++11 attribute.
3305         (optional::value, optional::value_or): Use if statements
3306         instead of conditional expressions.
3307         * include/std/optional (__throw_bad_optional_access)
3308         (optional::value, optional::value_or): Likewise.
3310 2021-07-27  Marek Polacek  <polacek@redhat.com>
3312         DR 1512
3313         PR c++/99701
3314         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
3315         Move a line...
3316         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
3317         ...here.  New test.
3319 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
3321         * include/bits/cow_string.h: Consistently use tab for
3322         indentation.
3324 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
3326         * include/Makefile.am: Add new header.
3327         * include/Makefile.in: Regenerate.
3328         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
3329         (basic_string): Move definition of Copy-on-Write string to
3330         new file.
3331         * include/bits/basic_string.tcc: Likewise.
3332         * include/bits/cow_string.h: New file.
3334 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
3336         * include/std/algorithm: Do not include <utility>.
3337         * include/std/functional: Likewise.
3338         * include/std/regex: Include <bits/stl_pair.h> instead of
3339         <utility>.
3340         * include/debug/map.h: Likewise.
3341         * include/debug/multimap.h: Likewise.
3342         * include/debug/multiset.h: Likewise.
3343         * include/debug/set.h: Likewise.
3344         * include/debug/vector: Likewise.
3345         * include/bits/fs_path.h: Likewise.
3346         * include/bits/unique_ptr.h: Do not include <utility>.
3347         * include/experimental/any: Likewise.
3348         * include/experimental/executor: Likewise.
3349         * include/experimental/memory: Likewise.
3350         * include/experimental/optional: Likewise.
3351         * include/experimental/socket: Use __exchange instead
3352         of std::exchange.
3353         * src/filesystem/ops-common.h: Likewise.
3354         * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
3355         errors to not use a hardcoded line number.
3356         * testsuite/20_util/default_delete/void_neg.cc: Likewise.
3357         * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
3358         Include <utility> for std::as_const.
3359         * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
3360         Likewise.
3361         * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
3362         Likewise.
3363         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
3364         Likewise.
3365         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
3366         Adjust dg-error line number.
3368 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
3370         * include/Makefile.am: Add bits/utility.h header.
3371         * include/Makefile.in: Regenerate.
3372         * include/bits/utility.h: New file.
3373         * include/std/utility (tuple_size, tuple_element): Move
3374         to new header.
3375         * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
3376         Move to <tuple>.
3377         (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
3378         (in_place_t, in_place_index_t, in_place_type_t): Likewise.
3379         * include/bits/ranges_util.h: Include new header instead of
3380         <utility>.
3381         * include/bits/stl_pair.h (tuple_size, tuple_element): Move
3382         partial specializations for std::pair here.
3383         (get): Move overloads for std::pair here.
3384         * include/std/any: Include new header instead of <utility>.
3385         * include/std/array: Likewise.
3386         * include/std/memory_resource: Likewise.
3387         * include/std/optional: Likewise.
3388         * include/std/variant: Likewise.
3389         * include/std/tuple: Likewise.
3390         (__is_tuple_like_impl<tuple<T...>>): Move here.
3391         (get) Declare overloads for std::array.
3392         * include/std/version (__cpp_lib_tuples_by_type): Change type
3393         to long.
3394         * testsuite/20_util/optional/84601.cc: Include <utility>.
3395         * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
3396         Likewise.
3397         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3398         Adjust dg-error line numbers.
3399         * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
3400         * testsuite/std/ranges/access/cend.cc: Likewise.
3401         * testsuite/std/ranges/access/end.cc: Likewise.
3402         * testsuite/std/ranges/single_view.cc: Likewise.
3404 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
3406         * include/std/future: Include <bits/atomic_base.h> instead of
3407         <atomic>.
3409 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
3411         * include/bits/stl_relops.h: Update documentation comments.
3413 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
3415         PR libstdc++/101583
3416         * include/bits/hashtable.h (_Hashtable): Replace mixin with
3417         _Enable_default_ctor. Construct it explicitly in all
3418         non-forwarding, non-defaulted constructors.
3419         * testsuite/23_containers/unordered_map/cons/default.cc: Check
3420         non-default constructors can be used.
3421         * testsuite/23_containers/unordered_set/cons/default.cc:
3422         Likewise.
3424 2021-07-22  David Edelsohn  <dje.gcc@gmail.com>
3426         * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
3428 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
3430         PR libstdc++/94295
3431         * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
3432         (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
3433         (allocator::allocate, allocator::deallocate): Use new macros.
3435 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
3437         PR libstdc++/101571
3438         * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
3439         constructor parameter to reference and use addressof.
3440         * testsuite/util/testsuite_iterators.h: Define deleted operator&
3441         overloads for test iterators.
3443 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
3445         * include/bits/std_function.h (_Function_base): Add
3446         default member initializers and define constructor as defaulted.
3447         (function::_M_invoker): Add default member initializer.
3449 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
3451         PR libstdc++/100682
3452         * doc/xml/manual/debug_mode.xml: Update documentation about
3453         debug capability of std::array.
3454         * doc/html/*: Regenerate.
3455         * include/debug/array: New file.
3457 2021-07-21  Jonathan Wakely  <jwakely@redhat.com>
3459         PR libstdc++/101542
3460         * include/ext/rope (sequence_buffer): Add move constructor and
3461         move assignment operator.
3462         * testsuite/ext/rope/101542.cc: New test.
3464 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
3466         PR libstdc++/101510
3467         * src/c++17/fs_ops.cc (fs::create_directories): Use status
3468         instead of symlink_status.
3469         * src/filesystem/ops.cc (fs::create_directories): Likewise.
3470         * testsuite/27_io/filesystem/operations/create_directories.cc:
3471         Check symlink to existing directory.
3472         * testsuite/27_io/filesystem/operations/create_directory.cc: Do
3473         not test with symlinks on Windows.
3474         * testsuite/experimental/filesystem/operations/create_directories.cc:
3475         Check symlink to existing directory.
3476         * testsuite/experimental/filesystem/operations/create_directory.cc:
3477         Do not test with symlinks on Windows.
3479 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
3481         PR libstdc++/100863
3482         * include/bits/hashtable.h (_Hashtable): Conditionally delete
3483         default constructor by deriving from _Enable_special_members.
3484         * testsuite/23_containers/unordered_map/cons/default.cc: New test.
3485         * testsuite/23_containers/unordered_set/cons/default.cc: New test.
3487 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
3489         PR libstdc++/101510
3490         * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
3491         * testsuite/27_io/filesystem/operations/create_directory.cc:
3492         Test creating directory with name of existing symlink to
3493         directory.
3494         * testsuite/experimental/filesystem/operations/create_directory.cc:
3495         Likewise.
3497 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
3499         * include/std/tuple (get<I>): Add deleted overload for bad
3500         index.
3501         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
3502         expected errors.
3504 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
3506         * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
3507         Use __int_traits unconditionally.
3509 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
3511         * include/bits/random.h (_Shift::__value): Use constexpr.
3512         (_Select_uint_least_t::type): Use using-declaration.
3513         (_Mod): Likewise.
3514         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3515         line number.
3517 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
3519         * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
3520         instead of diagnostic pragmas.
3521         * include/bits/functional_hash.h: Likewise.
3522         * include/bits/iterator_concepts.h (__is_signed_int128)
3523         (__is_unsigned_int128): Likewise.
3524         * include/bits/max_size_type.h (__max_size_type): Likewise.
3525         (numeric_limits<__max_size_type>): Likewise.
3526         * include/bits/std_abs.h (abs): Likewise.
3527         * include/bits/stl_algobase.h (__size_to_integer): Likewise.
3528         * include/bits/uniform_int_dist.h (uniform_int_distribution):
3529         Likewise.
3530         * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
3531         Likewise.
3532         * include/std/type_traits (__is_integral_helper<INT_N>)
3533         (__is_signed_integer, __is_unsigned_integer)
3534         (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
3535         * include/std/limits (__INT_N): Add __extension__ keyword.
3536         * include/bits/random.h (_Select_uint_least_t)
3537         (random_device): Likewise.
3539 2021-07-16  Patrick Palka  <ppalka@redhat.com>
3541         PR libstdc++/101231
3542         * include/std/ranges (_CachedPosition::_M_get): For non-forward
3543         ranges, just call __builtin_unreachable.
3544         * testsuite/std/ranges/istream_view.cc (test05): New test.
3546 2021-07-16  Patrick Palka  <ppalka@redhat.com>
3548         PR libstdc++/101214
3549         * include/std/ranges (split_view::split_view): Use std::move.
3550         (split_view::_Iterator::_Iterator): Remove redundant
3551         default_initializable constraint.
3552         (split_view::_Sentinel::_Sentinel): Declare.
3553         * testsuite/std/ranges/adaptors/split.cc (test02): New test.
3555 2021-07-16  Marek Polacek  <polacek@redhat.com>
3557         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
3558         dg-error.
3560 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
3562         * include/bits/unique_ptr.h: Adjust doxygen markup.
3564 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
3566         PR libstdc++/101307
3567         * include/std/type_traits: Adjust doxygen markup.
3569 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
3571         * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
3572         uses of non-standard integer types.
3573         * include/bits/functional_hash.h: Likewise.
3574         * include/bits/iterator_concepts.h: Likewise.
3575         * include/bits/max_size_type.h: Likewise.
3576         * include/bits/std_abs.h: Likewise.
3577         * include/bits/stl_algobase.h: Likewise.
3578         * include/bits/uniform_int_dist.h: Likewise.
3579         * include/ext/numeric_traits.h: Likewise.
3580         * include/std/type_traits: Likewise.
3582 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
3584         PR libstdc++/101427
3585         * include/std/tuple (tuple_element): Improve static_assert text.
3586         (__get_helper): Add deleted overload.
3587         (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
3588         __get_helper directly.
3589         (__get_helper2): Remove.
3590         (__find_uniq_type_in_pack): New constexpr helper function.
3591         (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
3592         of __get_helper2.
3593         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
3594         expected errors.
3595         * testsuite/20_util/tuple/element_access/101427.cc: New test.
3597 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
3599         PR libstdc++/101429
3600         * include/bits/c++config (__replacement_assert): Add noexcept.
3601         [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
3602         instead of __replacement_assert.
3604 2021-07-14  Jonathan Wakely  <jwakely@redhat.com>
3606         * include/std/string_view (basic_string_view(It, End)): Add
3607         noexcept-specifier.
3608         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
3609         Check noexcept-specifier. Also check construction without CTAD.
3611 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
3613         PR c++/101361
3614         * include/std/string_view (ends_with): Use traits_type::compare
3615         directly.
3617 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
3619         * include/std/string_view: Only include <bits/ranges_base.h>
3620         once, and only for C++20 and later.
3622 2021-07-12  Jonathan Wakely  <jwakely@redhat.com>
3624         PR libstdc++/101411
3625         * include/std/span (as_writable_bytes): Add requires-clause.
3626         * testsuite/23_containers/span/101411.cc: New test.
3628 2021-07-09  Matheus Castanho  <msc@linux.ibm.com>
3630         * include/std/mutex (__lock_impl): Check
3631         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3633 2021-07-02  Jonathan Wakely  <jwakely@redhat.com>
3635         PR libstdc++/101271
3636         * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
3637         Remove noexcept-specifier.
3638         (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
3639         * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
3640         operator[].
3642 2021-07-01  Jonathan Wakely  <jwakely@redhat.com>
3644         * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
3645         * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
3646         Add some more predefined macros.
3647         * include/bits/fs_fwd.h: Move @addtogroup commands inside
3648         namespaces. Add better documentation.
3649         * include/bits/fs_path.h: Likewise.
3650         * include/experimental/bits/fs_fwd.h: Likewise.
3651         * include/experimental/bits/fs_path.h: Likewise.
3652         * include/ext/throw_allocator.h: Fix typo and improve docs.
3653         * include/std/chrono: Move @addtogroup commands.
3654         * include/std/system_error: Move @addtogroup commands.
3655         * libsupc++/exception: Improve documentation.
3656         * libsupc++/exception.h: Add @since documentation.
3658 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
3660         PR libstdc++/101258
3661         * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
3662         (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
3663         (PREDEFINED): Add/fix some more macros that need to be expanded.
3664         * include/bits/random.h: Stop Doxygen from documenting internal
3665         implementation details.
3666         * include/bits/random.tcc: Likewise.
3667         * include/bits/this_thread_sleep.h: Fix @file name.
3668         * include/experimental/bits/simd.h: Add to Doxygen group. Do not
3669         document internal implementation details.
3670         * include/experimental/bits/simd_detail.h: Do not document
3671         internal implementation details.
3672         * include/experimental/simd: Define Doxygen groups.
3673         * include/experimental/type_traits: Improve documentation for
3674         the header file. Define groups. Use @since commands.
3675         * include/std/scoped_allocator (scoped_allocator_adaptor): Move
3676         declaration before undocumented region.
3677         * include/std/type_traits (true_type, false_type): Use using
3678         declaration instead of typedef.
3679         (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
3680         (is_nothrow_invocable_r_v): Move definitions next to other C++17
3681         variable templates.
3682         Do not document internal implementation details. Move misplaced
3683         group-end command. Define group for variable templates.
3684         * include/std/variant: Do not document internal implementation
3685         details.
3686         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3687         line number.
3689 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
3691         * include/experimental/simd: Do not define anything pre-C++17.
3693 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
3695         * include/bits/random.tcc [__cpp_inline_variables]: Remove
3696         redundant definitions of static constexpr member variables.
3697         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3698         line number.
3700 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
3702         * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
3703         explicit instantiation declarations.
3704         * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
3705         explicit instantiation definitions.
3707 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
3709         PR libstdc++/97088
3710         * testsuite/17_intro/names.cc: Fix #if condition for names used
3711         by newlib headers.
3713 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
3715         PR libstdc++/101236
3716         * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
3717         Fail gracefully if element_type is incomplete.
3718         * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
3719         the standard doesn't require this test to work for array types.
3720         * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
3721         types can be used with array specialization.
3722         * testsuite/20_util/unique_ptr/101236.cc: New test.
3724 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
3726         * doc/xml/manual/intro.xml: Document LWG 415 change.
3727         * doc/html/manual/bugs.html: Regenerate.
3728         * include/bits/istream.tcc (ws): Create sentry and catch
3729         exceptions.
3730         * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
3731         * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
3733 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3735         * include/bits/ostream.tcc (basic_ostream::write): Call sputn
3736         directly instead of using _M_write. Do setstate(__err) all
3737         outside the try-catch block.
3738         * include/std/ostream (basic_ostream::_M_write): Declare
3739         private. Use __ostream_insert. Do not define for the versioned
3740         namespace.
3742 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3744         * doc/xml/manual/intro.xml: Document LWG 581 change.
3745         * doc/html/manual/bugs.html: Regenerate.
3746         * include/bits/basic_ios.tcc: Whitespace.
3747         * include/bits/ostream.tcc (basic_ostream::flush()): Construct
3748         sentry.
3749         * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
3750         additional cases.
3751         * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
3752         Likewise.
3753         * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
3754         * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
3755         Likewise.
3757 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3759         * include/bits/ostream.tcc (sentry): Only set failbit if badbit
3760         is set, not if eofbit is set.
3761         (tellp, seekp, seekp): Create sentry object. Do not set badbit
3762         on exceptions.
3763         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
3764         Adjust expected behaviour.
3765         * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
3766         Likewise.
3767         * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
3768         Likewise.
3769         * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
3770         Likewise.
3771         * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
3772         * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
3773         * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
3774         * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
3776 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3778         * include/std/syncstream (basic_syncbuf::swap()): Remove
3779         noexcept, as per LWG 3498.
3781 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
3783         PR libstdc++/97088
3784         * testsuite/17_intro/names.cc: Undef more names for newlib and
3785         also for arm-none-linux-gnueabi.
3786         * testsuite/experimental/names.cc: Disable PCH.
3788 2021-06-25  Matthias Kretz  <m.kretz@gsi.de>
3790         * include/experimental/bits/simd.h (__bit_cast): Implement via
3791         __builtin_bit_cast #if available.
3792         (__proposed::simd_bit_cast): Add overloads for simd and
3793         simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
3794         available), which return an object of the requested type with
3795         the same bits as the argument.
3796         * include/experimental/bits/simd_math.h: Use simd_bit_cast
3797         instead of __bit_cast to allow casts to fixed_size_simd.
3798         (copysign): Remove branch that was only required if __bit_cast
3799         cannot be constexpr.
3800         * testsuite/experimental/simd/tests/bits/test_values.h: Switch
3801         from __bit_cast to __proposed::simd_bit_cast since the former
3802         will not cast fixed_size objects anymore.
3804 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3806         * include/experimental/bits/simd_math.h
3807         (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
3808         (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
3809         __arg3.
3811 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3813         * include/experimental/bits/simd.h (__execute_on_index_sequence)
3814         (__execute_on_index_sequence_with_return)
3815         (__call_with_n_evaluations, __call_with_subscripts): Add flatten
3816         attribute.
3818 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3820         * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
3821         (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
3822         roundp[sd] calls.
3824 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3826         * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
3827         implementation doesn't require a _VecBltnBtmsk ABI tag, it
3828         requires either a 64-Byte input (in which case AVX512F must be
3829         available) or AVX512VL.
3831 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3833         * include/experimental/bits/simd_math.h: Undefine internal
3834         macros after use.
3835         (frexp): Move #if to a more sensible position and reformat
3836         preceding code.
3837         (logb): Call _SimdImpl::_S_logb for fixed_size instead of
3838         duplicating the code here.
3839         (modf): Simplify condition.
3841 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3843         * include/experimental/bits/simd_math.h (fabs): Remove
3844         fabs(simd<integral>) overload.
3846 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3848         * include/experimental/bits/simd_converter.h
3849         (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
3850         * include/experimental/bits/simd_fixed_size.h
3851         (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
3852         arguments by const-ref.
3853         (_S_masked_unary): Pass _SimdTuple by const-ref.
3855 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3857         * include/experimental/bits/simd_fixed_size.h
3858         (_AbisInSimdTuple): Removed.
3860 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
3862         * include/experimental/bits/simd.h: Add missing operator~
3863         overload for simd<floating-point> to __float_bitwise_operators.
3864         * include/experimental/bits/simd_builtin.h
3865         (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
3866         implement complement for floating-point vectors.
3867         * include/experimental/bits/simd_fixed_size.h
3868         (_SimdImplFixedSize::_S_copysign): New function, forwarding to
3869         copysign implementation of _SimdTuple members.
3870         * include/experimental/bits/simd_math.h (copysign): Call
3871         _SimdImpl::_S_copysign for fixed_size arguments. Simplify
3872         generic copysign implementation using the new ~ operator.
3874 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
3876         * testsuite/experimental/simd/README.md: Fix typos.
3878 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
3880         * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
3881         Add noexcept.
3882         * include/bits/unique_ptr.h (unique_ptr::operator*): Add
3883         conditional noexcept as per LWG 2762.
3884         * testsuite/20_util/shared_ptr/observers/array.cc: Check that
3885         dereferencing cannot throw.
3886         * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
3887         * testsuite/20_util/optional/observers/lwg2762.cc: New test.
3888         * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
3890 2021-06-23  Patrick Palka  <ppalka@redhat.com>
3892         PR c++/101174
3893         * testsuite/23_containers/multiset/cons/deduction.cc:
3894         Uncomment CTAD example that was rejected by this bug.
3895         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3897 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
3899         * include/std/chrono (chrono::year::is_leap()): Fix incorrect
3900         logic in comment.
3902 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
3904         * testsuite/experimental/simd/README.md: New file.
3906 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
3908         * testsuite/experimental/simd/driver.sh: Rewrite output
3909         verbosity logic. Add -p/--percentage option. Allow -v/--verbose
3910         to be used twice. Add -x and -o short options. Parse long
3911         options with = instead of separating space generically. Parce
3912         contracted short options. Make unrecognized options an error.
3913         If same-line output is active, trap on EXIT to increment the
3914         progress (only with --percentage), erase the line and print the
3915         current status.
3916         * testsuite/experimental/simd/generate_makefile.sh: Initialize
3917         helper files for progress account keeping. Update help target
3918         for changes to DRIVEROPTS.
3920 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
3922         * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
3923         and associated warning.
3924         * testsuite/Makefile.in: Regenerate.
3926 2021-06-23  Cassio Neri  <cassio.neri@gmail.com>
3927             Jonathan Wakely  <jwakely@redhat.com>
3928             Ulrich Drepper  <drepper@redhat.com>
3930         * include/std/chrono (chrono::year::is_leap()): Optimize.
3932 2021-06-23  Patrick Palka  <ppalka@redhat.com>
3934         PR c++/86439
3935         * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
3936         CTAD examples.
3937         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3938         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3939         Mention one of the replaced examples is broken due to PR101174.
3940         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3941         * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
3942         ambiguous CTAD examples.
3943         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3944         Likewise.
3945         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3946         Likewise.
3947         * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
3949 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
3951         * include/std/mutex (__detail::__try_lock_impl): Rename
3952         parameter to avoid clashing with newlib's __lockable macro.
3953         (try_lock): Add 'inline' specifier.
3954         * testsuite/17_intro/names.cc: Add check for __lockable.
3955         * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
3957 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
3958             Matthias Kretz  <m.kretz@gsi.de>
3960         * include/std/mutex (lock): Replace recursion with iteration
3961         when lockables all have the same type.
3962         (__detail::__try_lock_impl): Likewise. Pass lockables as
3963         parameters, instead of a tuple. Always lock the first one, and
3964         recurse for the rest.
3965         (__detail::__lock_impl): Adjust call to __try_lock_impl.
3966         (__detail::__try_to_lock): Remove.
3967         * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
3968         * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
3969         arguments.
3970         * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
3971         std::try_lock.
3972         * testsuite/30_threads/try_lock/5.cc: New test.
3974 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
3976         * include/std/memory (declare_reachable, undeclare_reachable)
3977         (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
3978         (pointer_safety): Only define for C++11 to C++20 inclusive.
3979         * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
3981 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
3983         * include/bits/random.h (seed_seq): Constrain initializer-list
3984         constructor.
3985         * include/bits/random.tcc (seed_seq): Add template parameter.
3986         * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
3987         for noexcept.
3988         * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
3989         constraints.
3991 2021-06-22  Thomas Rodgers  <rodgert@appliantology.com>
3993         PR libstdc++/100806
3994         * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
3995         Force _M_release() to wake all waiting threads.
3996         * testsuite/30_threads/semaphore/100806.cc: New test.
3998 2021-06-21  Jonathan Wakely  <jwakely@redhat.com>
4000         * include/std/mutex (__try_to_lock): Move to __detail namespace.
4001         (struct __try_lock_impl): Replace with ...
4002         (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
4003         function templates to implement std::try_lock.
4004         (try_lock): Use new __try_lock_impl.
4005         (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
4006         template to implement std::lock.
4007         (lock): Use __lock_impl.
4009 2021-06-21  Patrick Palka  <ppalka@redhat.com>
4011         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4013 2021-06-20  Patrick Palka  <ppalka@redhat.com>
4015         * include/std/ranges (__non_propagating_cache::operator bool):
4016         Define for split_view::begin().
4017         (split_view): Define as per P2210.
4018         (views::__detail::__can_split_view): Define.
4019         (views::_Split, views::split): Define.
4020         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
4021         Test views::split.
4022         * testsuite/std/ranges/adaptors/split.cc: New test.
4023         * testsuite/std/ranges/p2325.cc (test08a): New test.
4024         * testsuite/std/ranges/p2367.cc (test01): Test views::split.
4026 2021-06-20  Patrick Palka  <ppalka@redhat.com>
4028         * include/std/ranges: Rename views::split to views::lazy_split,
4029         split_view to lazy_split_view, etc. throughout.
4030         * testsuite/std/ranges/*: Likewise.
4031         * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
4032         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
4034 2021-06-20  Patrick Palka  <ppalka@redhat.com>
4036         * include/std/ranges (split_view::_OuterIter::__at_end):
4037         Check _M_trailing_empty.
4038         (split_view::_OuterIter::_M_trailing_empty): Define this
4039         data member.
4040         (split_view::_OuterIter::operator++): Set _M_trailing_empty
4041         appropriately.
4042         (split_view::_OuterIter::operator==): Compare
4043         _M_trailing_empty.
4044         * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
4045         split parts instead of one.
4046         * testsuite/std/ranges/adaptors/split.cc (test11): New test.
4048 2021-06-20  Patrick Palka  <ppalka@redhat.com>
4050         * include/std/ranges (split_view::_InnerIter::base): Define as
4051         per P2210.
4053 2021-06-19  Patrick Palka  <ppalka@redhat.com>
4055         * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
4056         Consider _Base instead of _Vp as per LWG 3555.
4057         (elements_view::_Iterator::_S_iter_concept): Likewise.
4059 2021-06-19  Patrick Palka  <ppalka@redhat.com>
4061         * include/std/ranges (split_view::_OuterIter::value_type::begin):
4062         Remove the non-const overload, and remove the copyable constraint
4063         on the const overload as per LWG 3553.
4065 2021-06-19  Patrick Palka  <ppalka@redhat.com>
4067         * include/bits/stl_iterator.h
4068         (__detail::__common_iter_use_postfix_proxy): Add
4069         move_constructible constraint as per LWG 3546.
4070         (common_iterator::__postfix_proxy): Adjust initializer of
4071         _M_keep as per LWG 3546.
4073 2021-06-18  Patrick Palka  <ppalka@redhat.com>
4075         PR libstdc++/100387
4076         * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
4077         to limit comparison complexity to 3*N/2.
4078         (__minmax_element_fn::operator()): Likewise.
4079         (shift_right): Avoid premature std::move of __result.
4080         * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
4081         New tests.
4082         * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
4083         Likewise.
4085 2021-06-18  Patrick Palka  <ppalka@redhat.com>
4087         * include/std/concepts (convertible_to): Just use declval as per
4088         LWG 3557.
4090 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
4092         PR libstdc++/95833
4093         * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
4094         incorrect static_assert with ones matching the 'Mandates'
4095         conditions in the standard.
4096         * testsuite/26_numerics/reduce/95833.cc: New test.
4098 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
4100         * testsuite/21_strings/basic_string/cons/char/1.cc: Use
4101         diagnostic pragma to suppress -Wstringop-overread error.
4103 2021-06-18  Patrick Palka  <ppalka@redhat.com>
4105         * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
4106         (find_if, __find_if_not_fn, find_if_not, _in_in_result)
4107         (__mismatch_fn, mismatch, __search_fn, search): Move to ...
4108         * include/bits/ranges_util.h: ... here.
4109         * include/std/ranges (__detail::find, __detail::find_if)
4110         (__detail::find_if_not, __detail::mismatch): Remove.
4111         (filter_view): Use ranges::find_if instead.
4112         (drop_while_view): Use ranges::find_if_not instead.
4113         (split_view): Use ranges::find and ranges::mismatch instead.
4115 2021-06-18  Patrick Palka  <ppalka@redhat.com>
4117         * include/bits/iterator_concepts.h (weakly_incrementable): Remove
4118         default_initializable requirement.
4119         * include/bits/ranges_base.h (ranges::view): Likewise.
4120         * include/bits/ranges_util.h (subrange): Constrain the default
4121         ctor.
4122         * include/bits/stl_iterator.h (back_insert_iterator): Remove the
4123         default ctor.
4124         (front_insert_iterator): Likewise.
4125         (insert_iterator): Likewise.  Remove NSDMIs.
4126         (common_iterator): Constrain the default ctor.
4127         (counted_iterator): Likewise.
4128         * include/bits/stream_iterator.h (ostream_iterator): Remove the
4129         default ctor.
4130         * include/std/ranges (__detail::__box::operator=): Handle
4131         self-assignment in the primary template.
4132         (__detail::__box): In the partial specialization: adjust
4133         constraints as per P2325.  Add specialized operator= for the
4134         case when the wrapped type is not copyable.  Constrain the
4135         default ctor.  Avoid list-initialization.
4136         (single_view): Constraint the default ctor.
4137         (iota_view): Relax semiregular constraint to copyable.
4138         Constrain the default ctor.
4139         (iota_view::_Iterator): Constraint the default ctor.
4140         (basic_istream_view): Remove the default ctor.  Remove NSDMIs.
4141         Remove redundant checks for empty _M_stream.
4142         (basic_istream_view::_Iterator): Likewise.
4143         (ref_view): Remove the default ctor.  Remove NSDMIs.
4144         (ref_view::_Iterator): Constrain the default ctor.
4145         (__detail::__non_propagating_cache::operator=): Define overload
4146         for assigning from a value of the underlying type.
4147         (filter_view): Likewise.
4148         (filter_view::_Iterator): Likewise.
4149         (transform_view): Likewise.
4150         (transform_view::_Iterator): Likewise.
4151         (take_view): Likewise.
4152         (take_view::_Iterator): Likewise.
4153         (take_while_view): Likewise.
4154         (take_while_view::_Iterator): Likewise.
4155         (drop_while_view): Likewise.
4156         (drop_while_view::_Iterator): Likewise.
4157         (join_view): Likewise.
4158         (split_view::_OuterIter::__current): Adjust after changing the
4159         type of _M_current.
4160         (split_view::_M_current): Wrap it in a __non_propagating_cache.
4161         (split_view::split_view): Constrain the default ctor.
4162         (common_view): Constrain the default ctor.
4163         (reverse_view): Likewise.
4164         (elements_view): Likewise.
4165         * include/std/span (enable_view<span<_ElementType, _Extent>>):
4166         Define this partial specialization to true unconditionally.
4167         * include/std/version (__cpp_lib_ranges): Adjust value.
4168         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
4169         Don't attempt to default construct a back_insert_iterator.
4170         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
4171         Don't attempt to default construct a front_insert_iterator.
4172         * testsuite/24_iterators/insert_iterator/constexpr.cc:
4173         Don't attempt to default construct an insert_iterator.
4174         * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
4175         Remove this test for default constructibility of ostream_iterator.
4176         * testsuite/std/ranges/97600.cc: Don't attempt to default
4177         construct a basic_istream_view.
4178         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
4179         Rename to ...
4180         * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
4181         (test02): Adjust now that __box is copyable-box not
4182         semiregular-box.
4183         (test03): New test.
4184         * testsuite/std/ranges/p2325.cc: New test.
4185         * testsuite/std/ranges/single_view.cc (test06): New test.
4186         * testsuite/std/ranges/view.cc: Adjust now that view doesn't
4187         require default_initializable.
4189 2021-06-17  Jonathan Wakely  <jwakely@redhat.com>
4191         PR libstdc++/91488
4192         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
4193         define when is_constant_evaluated is available.
4194         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
4195         Likewise.
4196         (__constant_string_p, __constant_array_p): Remove.
4197         (char_traits): Use is_constant_evaluated directly.
4198         * include/std/version (__cpp_lib_constexpr_char_traits)
4199         (__cpp_lib_constexpr_string): Only define when
4200         is_constant_evaluated is available.
4202 2021-06-17  Patrick Palka  <ppalka@redhat.com>
4204         PR libstdc++/100940
4205         * include/std/ranges (__adaptor::_Partial): For the "simple"
4206         forwarding partial specializations, also require that
4207         the extra arguments are trivially copyable.
4208         * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
4210 2021-06-17  Patrick Palka  <ppalka@redhat.com>
4212         PR libstdc++/100940
4213         * include/std/ranges (__adaptor::_RangeAdaptor): Document the
4214         template form of _S_has_simple_extra_args.
4215         (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
4216         parameter pack.  Try to treat _S_has_simple_extra_args as a
4217         variable template parameterized by _Args.
4218         (__adaptor::_Partial): Pass _Arg/_Args to the constraint
4219         __adaptor_has_simple_extra_args.
4220         (views::_Take::_S_has_simple_extra_args): Templatize according
4221         to the type of the extra argument.
4222         (views::_Drop::_S_has_simple_extra_args): Likewise.
4223         (views::_Split::_S_has_simple_extra_args): Define.
4224         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
4225         Adjust after changes to _S_has_simple_extra_args mechanism.
4226         (test03): Define.
4228 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
4230         * include/bits/iterator_concepts.h (__decay_copy): Name type.
4232 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
4234         * include/bits/ranges_base.h (ranges::begin, ranges::end)
4235         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
4236         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
4237         (ranges::empty, ranges::data, ranges::cdata): Remove final
4238         keywords and deleted operator& overloads.
4239         * testsuite/24_iterators/customization_points/iter_move.cc: Use
4240         new is_customization_point_object function.
4241         * testsuite/24_iterators/customization_points/iter_swap.cc:
4242         Likewise.
4243         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
4244         Likewise.
4245         * testsuite/std/ranges/access/begin.cc: Likewise.
4246         * testsuite/std/ranges/access/cbegin.cc: Likewise.
4247         * testsuite/std/ranges/access/cdata.cc: Likewise.
4248         * testsuite/std/ranges/access/cend.cc: Likewise.
4249         * testsuite/std/ranges/access/crbegin.cc: Likewise.
4250         * testsuite/std/ranges/access/crend.cc: Likewise.
4251         * testsuite/std/ranges/access/data.cc: Likewise.
4252         * testsuite/std/ranges/access/empty.cc: Likewise.
4253         * testsuite/std/ranges/access/end.cc: Likewise.
4254         * testsuite/std/ranges/access/rbegin.cc: Likewise.
4255         * testsuite/std/ranges/access/rend.cc: Likewise.
4256         * testsuite/std/ranges/access/size.cc: Likewise.
4257         * testsuite/std/ranges/access/ssize.cc: Likewise.
4258         * testsuite/util/testsuite_iterators.h
4259         (is_customization_point_object): New function.
4261 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
4263         * include/bits/ranges_base.h (ranges::begin, ranges::end)
4264         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
4265         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
4266         (ranges::empty, ranges::data, ranges::cdata): Make types final.
4267         Add deleted operator& overloads.
4268         (ranges::advance, ranges::distance, ranges::next, ranges::prev):
4269         Likewise.
4270         * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
4271         ill-formed & expressions with using-declarations. Add checks for
4272         other function objects.
4274 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
4276         * include/bits/ranges_util.h (view_interface): Add noexcept to
4277         empty, operator bool, data and size members.
4278         (subrange): Add noexcept to constructors.
4279         * include/std/ranges (single_view, ref_view): Add noexcept to
4280         constructors.
4281         (views::single, views::all): Add noexcept.
4282         * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
4283         * testsuite/std/ranges/single_view.cc: Likewise.
4285 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
4287         * include/bits/ranges_util.h (subrange): Add __size_type typedef
4288         and use it to simplify declarations.
4289         (subrange(i, s, n)): Remove assertion.
4290         * testsuite/std/ranges/subrange/constexpr.cc: New test.
4292 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
4294         * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
4295         Replace with function object.
4296         (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
4297         __decay_copy unqualified.
4298         * include/bits/ranges_base.h (__member_end, __adl_end):
4299         Likewise. Use __range_iter_t for type of ranges::begin.
4300         (__member_rend): Use correct value category for rbegin argument.
4301         (__member_data): Use __decay_copy unqualified.
4302         (__begin_data): Use __range_iter_t for type of ranges::begin.
4304 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
4306         * include/bits/ranges_base.h (ranges::empty): Check whether
4307         conversion to bool can throw.
4308         * testsuite/std/ranges/access/empty.cc: Check for correct
4309         noexcept-specifier.
4311 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
4313         PR libstdc++/100894
4314         * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
4315         use the type if it's a reference.
4316         * testsuite/20_util/common_reference/100894.cc: New test.
4318 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
4320         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
4321         Add dg-require-filesystem-ts directive.
4323 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
4325         PR libstdc++/101034
4326         * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
4327         (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
4328         to use lvalue.
4329         * testsuite/20_util/any/cons/101034.cc: New test.
4331 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
4333         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
4334         -std=gnu++17 option.
4336 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
4338         PR libstdc++/101056
4339         * libsupc++/compare (compare_partial_order_fallback): Add
4340         constraint using reversed parameter order, as per LWG 3465.
4341         * testsuite/18_support/comparisons/algorithms/fallback.cc:
4342         Adjust expected result.
4344 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
4346         * libsupc++/compare (__decayed_same_as): New helper concept.
4347         (strong_order, weak_order, partial_order): Constrain with new
4348         concept instead of using static_assert.
4349         (compare_strong_order_fallback, compare_weak_order_fallback)
4350         (compare_partial_order_fallback): Likewise. Do not deduce return
4351         types. Remove redundant if-constexpr checks.
4352         * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
4354 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
4356         PR libstdc++/101055
4357         * include/std/tuple: Use reserved form of attribute name.
4358         * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
4359         check for no_unique_address.
4360         * testsuite/17_intro/headers/c++2014/all_attributes.cc:
4361         Likewise.
4362         * testsuite/17_intro/headers/c++2017/all_attributes.cc:
4363         Likewise.
4365 2021-06-11  Jonathan Wakely  <jwakely@redhat.com>
4367         * include/bits/fs_path.h (operator==, operator<=>): Use new
4368         _S_compare function.
4369         (path::_S_compare): New function to call path::compare in a
4370         context where path::iterator is complete.
4371         * include/experimental/bits/fs_path.h (operator<, operator==):
4372         Define after path::iterator is complete.
4373         * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
4374         test.
4375         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
4376         New test.
4378 2021-06-09  Thomas Rodgers  <rodgert@appliantology.com>
4380         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
4381         test logic with constexpr check for is_always_lock_free.
4383 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
4385         PR libstdc++/100982
4386         * include/std/optional (optional::operator=(const optional<U>&)):
4387         Fix value category used in is_assignable check.
4388         * testsuite/20_util/optional/assignment/100982.cc: New test.
4390 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
4392         * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
4393         * include/bits/iterator_concepts.h (indirectly_readable_traits):
4394         Add LWG issue number to comment.
4395         * include/std/memory_resource (polymorphic_allocator::release):
4396         Deprecate.
4397         * testsuite/20_util/allocator/requirements/typedefs.cc: Add
4398         dg-warning for deprecation. Also check std::allocator<void>.
4400 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
4402         PR libstdc++/100889
4403         * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
4404         Change parameter type from _Tp to _Tp*.
4405         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
4406         coverage of types tested.
4408 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
4410         * include/std/barrier (__tree_barrier::_M_arrive): Remove
4411         unnecessary hasher instantiation.
4413 2021-06-08  Jonathan Wakely  <jwakely@redhat.com>
4415         * include/experimental/propagate_const (swap): Constrain.
4416         * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
4418 2021-06-07  Avi Kivity  <avi@scylladb.com>
4420         PR libstdc++/100900
4421         * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
4422         Add missing typename.
4424 2021-06-07  Jonathan Wakely  <jwakely@redhat.com>
4426         PR libstdc++/98842
4427         * include/std/optional (operator<=>(const optional<T>& const U&)):
4428         Add missing constraint and add workaround for template
4429         recursion.
4430         * testsuite/20_util/optional/relops/three_way.cc: Check that
4431         type without equality comparison cannot be compared when wrapped
4432         in std::optional.
4434 2021-06-05  Jonathan Wakely  <jwakely@redhat.com>
4436         PR libstdc++/100824
4437         * include/bits/ranges_base.h (_SSize): Return signed type.
4438         * testsuite/std/ranges/access/ssize.cc: Check with __int128.
4440 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
4442         * include/bits/ranges_base.h (_SSize): Return the result of
4443         ranges::size converted to the wider of make-signed-like-t<S> and
4444         ptrdiff_t, rather than the ranges different type.
4445         * testsuite/std/ranges/access/ssize.cc: Adjust expected result
4446         for an iota_view that uses an integer class type for its
4447         difference_type.
4449 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
4451         PR libstdc++/100824
4452         * include/bits/ranges_base.h (__member_data): Use __decay_copy.
4453         * testsuite/std/ranges/access/data.cc: Add testcase from PR.
4455 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
4457         PR libstdc++/100824
4458         * include/bits/iterator_concepts.h (__detail::__decay_copy)
4459         (__detail::__member_begin, __detail::__adl_begin): Move to
4460         namespace ranges::__cust_access.
4461         (__detail::__ranges_begin): Likewise, and rename to __begin.
4462         Remove redundant static assertion.
4463         * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
4464         Use lvalue in noexcept specifier.
4465         (__as_const): Add non-deduced parameter for value category.
4466         (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
4467         __as_const.
4468         (__member_size, __adl_size, __member_empty, __size0_empty):
4469         (__eq_iter_empty, __adl_data): Use lvalue objects in
4470         requirements.
4471         (__sentinel_size): Likewise. Add check for conversion to
4472         unsigned-like.
4473         (__member_data): Allow non-lvalue types to satisfy the concept,
4474         but use lvalue object in requirements.
4475         (_Size, _SSize): Remove forwarding to always use an lvalue.
4476         (_Data): Likewise. Add static assertion for arrays.
4477         * testsuite/std/ranges/access/cdata.cc: Adjust expected
4478         behaviour for rvalues. Add negative tests for ill-formed
4479         expressions.
4480         * testsuite/std/ranges/access/data.cc: Likewise.
4481         * testsuite/std/ranges/access/empty.cc: Adjust expected
4482         behaviour for rvalues.
4483         * testsuite/std/ranges/access/size.cc: Likewise.
4485 2021-06-04  Tim Adye  <Tim.Adye@cern.ch>
4487         * include/std/any (any::_Manager::_S_access): New static
4488         function to access the contained value.
4489         (any::emplace, __any_caster): Use _S_access member of the
4490         manager type.
4492 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
4494         * doc/xml/manual/status_cxx2020.xml:
4495         * doc/html/*: Regenerate.
4496         * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
4497         Define.
4498         * include/std/version (__cpp_lib_generic_unordered_lookup):
4499         Define.
4500         * testsuite/23_containers/unordered_map/operations/1.cc: Check
4501         feature test macro.
4502         * testsuite/23_containers/unordered_set/operations/1.cc:
4503         Likewise.
4505 2021-06-03  Patrick Palka  <ppalka@redhat.com>
4507         * include/bits/ranges_algo.h (__detail::__can_reread_output):
4508         Factor out this concept from ...
4509         (__unique_copy_fn::operator()): ... here.  Use the concept
4510         throughout.
4511         * testsuite/std/ranges/range.cc: Remove now ill-formed use
4512         of range_value_t on an output_range.
4513         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
4514         Define value_type, pointer and reference member types to void.
4516 2021-06-03  Patrick Palka  <ppalka@redhat.com>
4518         PR libstdc++/100577
4519         * include/std/ranges (_RangeAdaptorClosure): Document
4520         _S_has_simple_call_op mechanism.
4521         (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
4522         (__closure_has_simple_call_op): New concept.
4523         (__adaptor_has_simple_extra_args): Likewise.
4524         (_Partial<_Adaptor, _Args...>): New partial specialization.
4525         (_Partial<_Adaptor, _Arg>): Likewise.
4526         (_Pipe<_Lhs, _Rhs>): Likewise.
4527         (views::_All::_S_has_simple_call_op): Define to true.
4528         (views::_Filter::_S_has_simple_extra_args): Likewise.
4529         (views::_Transform::_S_has_simple_extra_args): Likewise.
4530         (views::_Take::_S_has_simple_extra_args): Likewise.
4531         (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
4532         (views::_Drop::_S_has_simple_extra_args): Likewise.
4533         (views::_DropWhile::_S_has_simple_extra_args): Likewise.
4534         (views::_Join::_S_has_simple_call_op): Likewise.
4535         (views::_Split): Document why we don't define
4536         _S_has_simple_extra_args to true for this adaptor.
4537         (views::_Common::_S_has_simple_call_op): Define to true.
4538         (views::_Reverse::_S_has_simple_call_op): Likewise.
4539         (views::_Elements::_S_has_simple_call_op): Likewise.
4540         * testsuite/std/ranges/adaptors/100577.cc: New test.
4542 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
4544         PR libstdc++/100863
4545         PR libstdc++/65816
4546         * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
4547         Value-initialize subobject.
4548         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
4549         Remove XFAIL.
4550         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
4551         Remove XFAIL.
4553 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
4555         PR libstdc++/96088
4556         * testsuite/23_containers/unordered_map/96088.cc: Adjust
4557         expected number of allocations.
4558         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
4560 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
4562         * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
4563         * doc/xml/manual/status_cxxtr1.xml: Likewise.
4564         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
4565         * doc/html/*: Regenerate.
4567 2021-06-01  Patrick Palka  <ppalka@redhat.com>
4569         PR c++/65816
4570         * testsuite/23_containers/deque/allocator/default_init.cc,
4571         testsuite/23_containers/forward_list/allocator/default_init.cc,
4572         testsuite/23_containers/list/allocator/default_init.cc,
4573         testsuite/23_containers/map/allocator/default_init.cc,
4574         testsuite/23_containers/set/allocator/default_init.cc,
4575         testsuite/23_containers/vector/allocator/default_init.cc,
4576         testsuite/23_containers/vector/bool/allocator/default_init.cc:
4577         Remove xfail.
4579 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
4581         * testsuite/23_containers/unordered_map/96088.cc: Change
4582         effective target to c++17.
4583         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
4585 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
4587         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
4588         isblank for C++11 and later.
4590 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
4592         PR libstdc++/100833
4593         * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
4594         Fix return value for no-op case.
4595         * testsuite/24_iterators/range_operations/advance.cc: Test
4596         return values of three-argument overload.
4598 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
4600         PR libstdc++/99453
4601         * python/Makefile.am: Use archive name for printer hook if no
4602         dynamic library name is available.
4603         * python/Makefile.in: Regenerate.
4605 2021-05-30  Gerald Pfeifer  <gerald@pfeifer.com>
4607         * doc/xml/manual/abi.xml: Remove dead reference to "Intel
4608         Compilers for Linux: Compatibility with GNU Compilers" article.
4609         * doc/html/manual/abi.html: Regenerate.
4611 2021-05-26  François Dumont  <fdumont@gcc.gnu.org>
4613         * include/debug/formatter.h
4614         (_Error_formatter::_Parameter::_Named): New.
4615         (_Error_formatter::_Parameter::_Type): Inherit latter.
4616         (_Error_formatter::_Parameter::_M_integer): Likewise.
4617         (_Error_formatter::_Parameter::_M_string): Likewise.
4618         * src/c++11/debug.cc: Include <cstring>.
4619         (_Print_func_t): New.
4620         (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
4621         (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
4622         (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
4623         (print_type): Rename in...
4624         (print_type_info): ...this. Use pretty_print.
4625         (print_address, print_integer): New.
4626         (print_named_name, print_iterator_constness, print_iterator_state): New.
4627         (print_iterator_seq_type): New.
4628         (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
4629         (print_field): Use latters.
4630         (print_quoted_named_name, print_type_type, print_type, print_instance): New.
4631         (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
4632         Change signature to...
4633         (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
4634         ...this and adapt. Remove intermediate buffer to render input string.
4635         (print_string(PrintContext&, const char*, ptrdiff_t)): New.
4637 2021-05-26  Jonathan Wakely  <jwakely@redhat.com>
4639         PR libstdc++/100768
4640         * include/bits/ranges_base.h (advance, distance, next, prev):
4641         Replace function templates with function objects.
4642         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4643         Adjust for changes to function objects.
4644         * testsuite/std/ranges/adaptors/elements.cc: Add using
4645         declarations for names from namespace ranges.
4646         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
4647         * testsuite/24_iterators/range_operations/100768.cc: New test.
4649 2021-05-24  François Dumont  <fdumont@gcc.gnu.org>
4651         PR libstdc++/96088
4652         * include/bits/hashtable_policy.h (_Select2nd): New.
4653         (_NodeBuilder<>): New.
4654         (_ReuseOrAllocNode<>::operator()): Use variadic template args.
4655         (_AllocNode<>::operator()): Likewise.
4656         * include/bits/hashtable.h
4657         (_Hashtable<>::__node_builder_t): New.
4658         (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
4659          New.
4660         (_Hashtable<>::_S_forward_key): New.
4661         (_Hashtable<>::_M_insert): Use latter.
4662         (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
4663         Instantiate node first, compute hash code second.
4664         * testsuite/23_containers/unordered_map/96088.cc: New test.
4665         * testsuite/23_containers/unordered_multimap/96088.cc: New test.
4666         * testsuite/23_containers/unordered_multiset/96088.cc: New test.
4667         * testsuite/23_containers/unordered_set/96088.cc: New test.
4668         * testsuite/util/replacement_memory_operators.h
4669         (counter::_M_increment): New.
4670         (counter::_M_decrement): New.
4671         (counter::reset()): New.
4673 2021-05-24  Patrick Palka  <ppalka@redhat.com>
4675         PR libstdc++/100479
4676         * include/std/ranges (__detail::__non_propagating_cache): Move
4677         definition up to before that of _CachedPosition.  Make base
4678         class _Optional_base protected instead of private.  Add const
4679         overload for operator*.
4680         (__detail::_CachedPosition): Rewrite the partial specialization
4681         for forward ranges as a derived class of __non_propagating_cache.
4682         Remove the size constraint on the partial specialization for
4683         random access ranges.  Add copy/move/copy-assignment/move-assignment
4684         members to the offset partial specialization for random
4685         access ranges that propagate the cached value but additionally
4686         invalidate it in the source object on move.
4687         * testsuite/std/ranges/adaptors/100479.cc: New test.
4689 2021-05-24  Jonathan Wakely  <jwakely@redhat.com>
4691         * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
4692         call to ranges::next.
4693         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
4694         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
4695         Likewise.
4696         * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
4697         swap_ranges.
4699 2021-05-21  Patrick Palka  <ppalka@redhat.com>
4701         PR libstdc++/100606
4702         * include/std/ranges (drop_while_view::begin): Assert the
4703         precondition added by LWG 3490.
4705 2021-05-21  Patrick Palka  <ppalka@redhat.com>
4707         PR libstdc++/100690
4708         * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
4709         Split out this member function from ...
4710         (iota_view::_Sentinel::operator-): ... here, for sake of access
4711         control.
4712         * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
4714 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
4716         * include/bits/random.tcc (__representable_as_double)
4717         (__p1_representable_as_double): Add "" to static asserts.
4719 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
4721         PR libstdc++/100676
4722         * include/bits/c++config (__glibcxx_assert_1): Rename to ...
4723         (__glibcxx_constexpr_assert): ... this.
4724         (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
4725         (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
4726         or __glibcxx_assert_impl.
4727         (__glibcxx_assert_2): Remove
4728         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
4729         __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
4730         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4731         Adjust expected error.
4732         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4733         Likewise.
4734         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4735         Likewise.
4736         Likewise.
4737         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4738         Likewise.
4739         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4740         Likewise.
4741         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4742         Likewise.
4743         * testsuite/23_containers/span/back_neg.cc: Likewise.
4744         * testsuite/23_containers/span/front_neg.cc: Likewise.
4745         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
4747 2021-05-20  Patrick Palka  <ppalka@redhat.com>
4749         PR libstdc++/100639
4750         * include/bits/stl_iterator.h (reverse_iterator::difference_type):
4751         In C++20 mode, define in terms of iter_difference_t as per P0896R4.
4752         (reverse_iterator::reference): Likewise, but with iter_reference_t.
4753         (reverse_iterator::value_type): Likewise, but with iter_value_t.
4754         * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
4755         * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
4757 2021-05-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>
4759         PR libstdc++/100361
4760         * include/std/charconv (to_chars): Hide the overloads for
4761         floating-point types for 16 bit targets.
4762         * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
4763         * testsuite/20_util/to_chars/double.cc: Run this test only on
4764         size32plus targets.
4765         * testsuite/20_util/to_chars/float.cc: Likewise.
4766         * testsuite/20_util/to_chars/long_double.cc: Likewise.
4768 2021-05-18  Patrick Palka  <ppalka@redhat.com>
4770         PR libstdc++/100631
4771         * include/std/ranges (elements_view::_Sentinel::operator-): Use
4772         _M_distance_from in the other operator- overload too.
4773         * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
4775 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
4777         * testsuite/lib/prune.exp: Add note about 'dg-note'.
4779 2021-05-18  Patrick Palka  <ppalka@redhat.com>
4781         PR libstdc++/100475
4782         * include/std/ranges (__box::__box): Use non-list-initialization
4783         in member initializer list of in-place constructor of the
4784         partial specialization for semiregular types.
4785         (__box::operator->): Use std::__addressof.
4786         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
4787         (test02): New test.
4788         * testsuite/std/ranges/single_view.cc (test04): New test.
4790 2021-05-18  Patrick Palka  <ppalka@redhat.com>
4792         PR libstdc++/100621
4793         * include/std/ranges (reverse_view::_S_needs_cached_begin):
4794         Set to true if the underlying non-common random-access range
4795         doesn't have a sized sentinel.
4797 2021-05-18  Patrick Palka  <ppalka@redhat.com>
4799         PR libstdc++/100631
4800         * include/std/ranges (elements_view::_Iterator): Also befriend
4801         _Sentinel<!_Const>.
4802         (elements_view::_Sentinel::_M_equal): Templatize.
4803         (elements_view::_Sentinel::_M_distance_from): Split out from ...
4804         (elements_view::_Sentinel::operator-): ... here.  Depend on
4805         _Base2 instead of _Base in the return type.
4806         * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
4807         New tests.
4809 2021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>
4811         * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
4812         until value change observed.
4813         (__waiter_base::_M_laundered): New member.
4814         (__waiter_base::_M_notify): Check _M_laundered to determine
4815         whether to wake one or all.
4816         (__detail::__atomic_compare): Return true if call to
4817         __builtin_memcmp() == 0.
4818         (__waiter_base::_S_do_spin_v): Adjust predicate.
4819         * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
4820         test.
4822 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
4824         PR libstdc++/100630
4825         * include/experimental/bits/fs_path.h (__is_constructible_from):
4826         Test construction from a const lvalue, not an rvalue.
4827         * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
4828         * testsuite/experimental/filesystem/path/construct/100630.cc:
4829         New test.
4831 2021-05-17  Antony Polukhin  <antoshkka@gmail.com>
4833         PR libstdc++/89728
4834         * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
4835         Declare (but do not define) partial specialization.
4836         * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
4838 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
4840         * include/std/thread (jthread::_S_create): Fix static assert
4841         message.
4842         * testsuite/30_threads/jthread/95989.cc: Re-enable test.
4843         * testsuite/30_threads/jthread/jthread.cc: Do not require
4844         pthread effective target.
4845         * testsuite/30_threads/jthread/2.cc: Moved to...
4846         * testsuite/30_threads/jthread/version.cc: ...here.
4848 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
4850         * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
4851         * doc/Makefile.in: Regenerate.
4852         * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
4853         value.
4854         * scripts/run_doxygen (print_usage): Always print to stdout and
4855         do not exit.
4856         (fail): New function for exiting on error.
4857         (parse_options): Handle --latex_cmd. Do not treat --help the
4858         same as errors. Simplify handling of required arguments.
4860 2021-05-12  Jonathan Wakely  <jwakely@redhat.com>
4862         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4863         Increase dg-timeout-factor to 4. Fix -Wunused-parameter
4864         warnings. Replace bitwise AND with logical AND in loop
4865         condition.
4866         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4867         Replace bitwise AND with logical AND in loop condition.
4868         * testsuite/util/pstl/test_utils.h: Remove unused parameter
4869         names.
4871 2021-05-11  Patrick Palka  <ppalka@redhat.com>
4873         * src/c++17/ryu/LOCAL_PATCHES: Update.
4874         * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
4875         Remove declarations for never-defined functions.
4876         * testsuite/20_util/to_chars/4.cc: New test.
4878 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
4880         * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
4881         alternative for macro.
4882         * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
4883         target keyword.
4884         * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
4885         syntax.
4887 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
4889         * include/bits/allocator.h (allocator<void>) [C++20]: Add
4890         missing noexcept to constructor. Restore missing POCMA and
4891         is_always_equal_traits.
4892         [C++17]: Make construct and destroy members private and
4893         declare allocator_traits as a friend.
4894         * include/bits/memoryfwd.h (allocator_traits): Declare.
4895         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4896         Add nodiscard attribute. Add static assertion for LWG 3307.
4897         * include/ext/new_allocator.h (new_allocator::allocate): Add
4898         static assertion for LWG 3307.
4899         * testsuite/20_util/allocator/void.cc: Check that converting
4900         constructor is noexcept. Check for propagation traits and
4901         size_type and difference_type. Check that pointer and
4902         const_pointer are gone in C++20.
4904 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4906         * include/std/stop_token: Remove TODO comment.
4908 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4910         * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
4911         Initialize a non-reference deleter from an rvalue, as per LWG
4912         3548.
4913         (__shared_ptr::_UniqCompatible): Add missing constraint.
4914         * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
4915         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
4916         constraints.
4918 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
4920         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
4921         -std=gnu++17 from dg-options directive.
4922         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
4923         Likewise.
4924         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
4925         Likewise.
4926         * testsuite/17_intro/headers/c++2017/operator_names.cc:
4927         Likewise.
4928         * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
4929         * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
4930         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4931         Likewise.
4932         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
4933         * testsuite/18_support/byte/81076.cc: Likewise.
4934         * testsuite/18_support/byte/global_neg.cc: Likewise.
4935         * testsuite/18_support/byte/ops.cc: Likewise.
4936         * testsuite/18_support/byte/requirements.cc: Likewise.
4937         * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
4938         * testsuite/18_support/launder/1.cc: Likewise.
4939         * testsuite/18_support/launder/nodiscard.cc: Likewise.
4940         * testsuite/18_support/launder/requirements.cc: Likewise.
4941         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
4942         * testsuite/18_support/new_aligned.cc: Likewise.
4943         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
4944         Likewise.
4945         * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
4946         Likewise.
4947         * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
4948         * testsuite/20_util/addressof/requirements/constexpr.cc:
4949         Likewise.
4950         * testsuite/20_util/as_const/1.cc: Likewise.
4951         * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
4952         * testsuite/20_util/bind/83427.cc: Likewise.
4953         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
4954         * testsuite/20_util/bool_constant/requirements.cc: Likewise.
4955         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4956         Likewise.
4957         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
4958         Likewise.
4959         * testsuite/20_util/duration_cast/rounding.cc: Likewise.
4960         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
4961         Likewise.
4962         * testsuite/20_util/from_chars/1_neg.cc: Likewise.
4963         * testsuite/20_util/from_chars/requirements.cc: Likewise.
4964         * testsuite/20_util/function/91456.cc: Likewise.
4965         * testsuite/20_util/function/cons/deduction.cc: Likewise.
4966         * testsuite/20_util/function_objects/83607.cc: Likewise.
4967         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
4968         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
4969         * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
4970         * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
4971         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
4972         Likewise.
4973         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
4974         Likewise.
4975         * testsuite/20_util/has_unique_object_representations/value.cc:
4976         Likewise.
4977         * testsuite/20_util/hash/nullptr.cc: Likewise.
4978         * testsuite/20_util/in_place/requirements.cc: Likewise.
4979         * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
4980         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
4981         Likewise.
4982         * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
4983         Likewise.
4984         * testsuite/20_util/is_aggregate/value.cc: Likewise.
4985         * testsuite/20_util/is_invocable/83395.cc: Likewise.
4986         * testsuite/20_util/is_invocable/91456.cc: Likewise.
4987         * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
4988         Likewise.
4989         * testsuite/20_util/is_invocable/requirements/typedefs.cc:
4990         Likewise.
4991         * testsuite/20_util/is_invocable/value.cc: Likewise.
4992         * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
4993         * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
4994         * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
4995         * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
4996         Likewise.
4997         * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
4998         * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
4999         * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
5000         Likewise.
5001         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
5002         Likewise.
5003         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
5004         * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
5005         Likewise.
5006         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
5007         Likewise.
5008         * testsuite/20_util/is_nothrow_swappable_with/value.cc:
5009         Likewise.
5010         * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
5011         Likewise.
5012         * testsuite/20_util/is_swappable/requirements/typedefs.cc:
5013         Likewise.
5014         * testsuite/20_util/is_swappable/value.cc: Likewise.
5015         * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
5016         Likewise.
5017         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
5018         Likewise.
5019         * testsuite/20_util/is_swappable_with/value.cc: Likewise.
5020         * testsuite/20_util/logical_traits/83134.cc: Likewise.
5021         * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
5022         Likewise.
5023         * testsuite/20_util/logical_traits/requirements/typedefs.cc:
5024         Likewise.
5025         * testsuite/20_util/logical_traits/value.cc: Likewise.
5026         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
5027         * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
5028         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
5029         Likewise.
5030         * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
5031         * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
5032         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
5033         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
5034         * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
5035         Likewise.
5036         * testsuite/20_util/time_point/arithmetic/constexpr.cc:
5037         Likewise.
5038         * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
5039         * testsuite/20_util/to_chars/3.cc: Likewise.
5040         * testsuite/20_util/to_chars/chars_format.cc: Likewise.
5041         * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
5042         * testsuite/20_util/to_chars/requirements.cc: Likewise.
5043         * testsuite/20_util/tuple/78939.cc: Likewise.
5044         * testsuite/20_util/tuple/apply/1.cc: Likewise.
5045         * testsuite/20_util/tuple/apply/2.cc: Likewise.
5046         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
5047         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
5048         * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
5049         * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
5050         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
5051         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
5052         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
5053         Likewise.
5054         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
5055         * testsuite/20_util/void_t/1.cc: Likewise.
5056         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
5057         * testsuite/24_iterators/container_access.cc: Likewise.
5058         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
5059         Likewise.
5060         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
5061         Likewise.
5062         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5063         Likewise.
5064         * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
5065         Likewise.
5066         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
5067         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
5068         Likewise.
5069         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
5070         * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
5071         Likewise.
5072         * testsuite/26_numerics/lcm/1.cc: Likewise.
5073         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
5074         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
5075         * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
5076         Likewise.
5077         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
5078         Likewise.
5079         * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
5080         Likewise.
5081         * testsuite/27_io/types/4.cc: Likewise.
5082         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
5083         * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
5084         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
5086 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5088         * testsuite/20_util/function_objects/searchers.cc: Remove
5089         -std=gnu++17 from dg-options directive.
5090         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
5091         Likewise.
5092         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5093         Likewise.
5094         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
5095         Likewise.
5096         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
5097         Likewise.
5098         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
5099         Likewise.
5100         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5101         Likewise.
5102         * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
5103         Likewise.
5104         * testsuite/25_algorithms/clamp/1.cc: Likewise.
5105         * testsuite/25_algorithms/clamp/2.cc: Likewise.
5106         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
5107         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
5108         Likewise.
5109         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
5110         Likewise.
5111         * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
5112         * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
5113         Likewise.
5114         * testsuite/25_algorithms/sample/1.cc: Likewise.
5115         * testsuite/25_algorithms/sample/2.cc: Likewise.
5116         * testsuite/25_algorithms/sample/3.cc: Likewise.
5117         * testsuite/25_algorithms/sample/81221.cc: Likewise.
5118         * testsuite/25_algorithms/search/searcher.cc: Likewise.
5119         * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
5120         * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
5121         * testsuite/26_numerics/reduce/1.cc: Likewise.
5122         * testsuite/26_numerics/reduce/2.cc: Likewise.
5123         * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
5124         * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
5125         * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
5127 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5129         * testsuite/23_containers/array/cons/deduction.cc: Remove
5130         -std=gnu++17 from dg-options directive.
5131         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
5132         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
5133         Likewise.
5134         * testsuite/23_containers/array/requirements/constexpr_iter.cc:
5135         Likewise.
5136         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
5137         Likewise.
5138         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
5139         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
5140         Likewise.
5141         * testsuite/23_containers/forward_list/cons/deduction.cc:
5142         Likewise.
5143         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
5144         Likewise.
5145         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
5146         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
5147         Likewise.
5148         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
5149         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
5150         * testsuite/23_containers/map/modifiers/insert/83226.cc:
5151         Likewise.
5152         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
5153         Likewise.
5154         * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
5155         * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
5156         Likewise.
5157         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
5158         * testsuite/23_containers/multimap/modifiers/extract.cc:
5159         Likewise.
5160         * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
5161         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
5162         * testsuite/23_containers/multiset/modifiers/extract.cc:
5163         Likewise.
5164         * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
5165         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
5166         * testsuite/23_containers/queue/deduction.cc: Likewise.
5167         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
5168         Likewise.
5169         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
5170         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
5171         * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
5172         * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
5173         * testsuite/23_containers/stack/deduction.cc: Likewise.
5174         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
5175         Likewise.
5176         * testsuite/23_containers/unordered_map/cons/deduction.cc:
5177         Likewise.
5178         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
5179         Likewise.
5180         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
5181         Likewise.
5182         * testsuite/23_containers/unordered_map/modifiers/merge.cc:
5183         Likewise.
5184         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
5185         Likewise.
5186         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
5187         Likewise.
5188         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
5189         Likewise.
5190         * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
5191         Likewise.
5192         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
5193         Likewise.
5194         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
5195         Likewise.
5196         * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
5197         Likewise.
5198         * testsuite/23_containers/unordered_set/cons/deduction.cc:
5199         Likewise.
5200         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
5201         Likewise.
5202         * testsuite/23_containers/unordered_set/modifiers/merge.cc:
5203         Likewise.
5204         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
5205         Likewise.
5206         * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
5207         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
5208         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
5209         Likewise.
5211 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5213         * testsuite/21_strings/basic_string/79162.cc: Remove
5214         -std=gnu++17 from dg-options directive.
5215         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
5216         * testsuite/21_strings/basic_string/cons/char/79162.cc:
5217         Likewise.
5218         * testsuite/21_strings/basic_string/cons/char/86138.cc:
5219         Likewise.
5220         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
5221         * testsuite/21_strings/basic_string/cons/char/deduction.cc:
5222         Likewise.
5223         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
5224         Likewise.
5225         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
5226         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
5227         Likewise.
5228         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
5229         Likewise.
5230         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
5231         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
5232         Likewise.
5233         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
5234         Likewise.
5235         * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
5236         * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
5237         * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
5238         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
5239         Likewise.
5240         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
5241         Likewise.
5242         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
5243         Likewise.
5244         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
5245         Likewise.
5246         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
5247         Likewise.
5248         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
5249         Likewise.
5250         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
5251         Likewise.
5252         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
5253         Likewise.
5254         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
5255         Likewise.
5256         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
5257         Likewise.
5258         * testsuite/21_strings/basic_string/operations/data/char/2.cc:
5259         Likewise.
5260         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
5261         Likewise.
5262         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
5263         Likewise.
5264         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
5265         Likewise.
5266         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
5267         Likewise.
5268         * testsuite/21_strings/basic_string/operators/char/5.cc:
5269         Likewise.
5270         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
5271         Likewise.
5272         * testsuite/21_strings/basic_string_view/capacity/1.cc:
5273         Likewise.
5274         * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
5275         Likewise.
5276         * testsuite/21_strings/basic_string_view/cons/char/1.cc:
5277         Likewise.
5278         * testsuite/21_strings/basic_string_view/cons/char/2.cc:
5279         Likewise.
5280         * testsuite/21_strings/basic_string_view/cons/char/3.cc:
5281         Likewise.
5282         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
5283         Likewise.
5284         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
5285         Likewise.
5286         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
5287         Likewise.
5288         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
5289         Likewise.
5290         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
5291         Likewise.
5292         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
5293         Likewise.
5294         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
5295         Likewise.
5296         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
5297         Likewise.
5298         * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
5299         Likewise.
5300         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
5301         Likewise.
5302         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
5303         Likewise.
5304         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
5305         Likewise.
5306         * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
5307         Likewise.
5308         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
5309         Likewise.
5310         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
5311         Likewise.
5312         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
5313         Likewise.
5314         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
5315         Likewise.
5316         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
5317         Likewise.
5318         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
5319         Likewise.
5320         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
5321         Likewise.
5322         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
5323         Likewise.
5324         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
5325         Likewise.
5326         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
5327         * testsuite/21_strings/basic_string_view/inserters/94051.cc:
5328         Likewise.
5329         * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
5330         Likewise.
5331         * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
5332         Likewise.
5333         * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
5334         Likewise.
5335         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
5336         Likewise.
5337         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
5338         Likewise.
5339         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
5340         Likewise.
5341         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
5342         Likewise.
5343         * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
5344         Likewise.
5345         * testsuite/21_strings/basic_string_view/literals/types.cc:
5346         Likewise.
5347         * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
5348         Likewise.
5349         * testsuite/21_strings/basic_string_view/literals/values.cc:
5350         Likewise.
5351         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
5352         Likewise.
5353         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
5354         Likewise.
5355         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
5356         Likewise.
5357         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
5358         Likewise.
5359         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
5360         Likewise.
5361         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
5362         Likewise.
5363         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
5364         Likewise.
5365         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
5366         Likewise.
5367         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
5368         Likewise.
5369         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
5370         Likewise.
5371         * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
5372         Likewise.
5373         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
5374         Likewise.
5375         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
5376         Likewise.
5377         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
5378         Likewise.
5379         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
5380         Likewise.
5381         * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
5382         Likewise.
5383         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
5384         Likewise.
5385         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
5386         Likewise.
5387         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
5388         Likewise.
5389         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
5390         Likewise.
5391         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
5392         Likewise.
5393         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
5394         Likewise.
5395         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
5396         Likewise.
5397         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
5398         Likewise.
5399         * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
5400         Likewise.
5401         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
5402         Likewise.
5403         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
5404         Likewise.
5405         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
5406         Likewise.
5407         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
5408         Likewise.
5409         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
5410         Likewise.
5411         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
5412         Likewise.
5413         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
5414         Likewise.
5415         * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
5416         Likewise.
5417         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
5418         Likewise.
5419         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
5420         Likewise.
5421         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
5422         Likewise.
5423         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
5424         Likewise.
5425         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
5426         Likewise.
5427         * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
5428         Likewise.
5429         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
5430         Likewise.
5431         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
5432         Likewise.
5433         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
5434         Likewise.
5435         * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
5436         Likewise.
5437         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
5438         Likewise.
5439         * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
5440         Likewise.
5441         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
5442         Likewise.
5443         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
5444         Likewise.
5445         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
5446         Likewise.
5447         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
5448         Likewise.
5449         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
5450         Likewise.
5451         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
5452         Likewise.
5453         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
5454         Likewise.
5455         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
5456         Likewise.
5457         * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
5458         Likewise.
5459         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
5460         Likewise.
5461         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
5462         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
5463         * testsuite/21_strings/char_traits/requirements/char/99181.cc:
5464         Likewise.
5465         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5467 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5469         * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
5470         from dg-options directive.
5471         * testsuite/20_util/memory_resource/2.cc: Likewise.
5472         * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
5473         * testsuite/20_util/monotonic_buffer_resource/93208.cc:
5474         Likewise.
5475         * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
5476         Likewise.
5477         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
5478         Likewise.
5479         * testsuite/20_util/monotonic_buffer_resource/release.cc:
5480         Likewise.
5481         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
5482         Likewise.
5483         * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
5484         * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
5485         Likewise.
5486         * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
5487         * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
5488         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
5489         Likewise.
5490         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
5491         Likewise.
5492         * testsuite/20_util/synchronized_pool_resource/cons.cc:
5493         Likewise.
5494         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
5495         Likewise.
5496         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
5497         Likewise.
5498         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
5499         Likewise.
5500         * testsuite/20_util/synchronized_pool_resource/options.cc:
5501         Likewise.
5502         * testsuite/20_util/synchronized_pool_resource/release.cc:
5503         Likewise.
5504         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
5505         Likewise.
5506         * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
5507         Likewise.
5508         * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5509         Likewise.
5510         * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
5511         Likewise.
5512         * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
5513         Likewise.
5514         * testsuite/20_util/unsynchronized_pool_resource/options.cc:
5515         Likewise.
5516         * testsuite/20_util/unsynchronized_pool_resource/release.cc:
5517         Likewise.
5518         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
5519         Likewise.
5520         * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
5521         * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
5522         Likewise.
5523         * testsuite/23_containers/forward_list/pmr_typedefs.cc:
5524         Likewise.
5525         * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
5526         Likewise.
5527         * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
5528         * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
5529         * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
5530         * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
5531         * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
5532         * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
5533         Likewise.
5534         * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
5535         * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
5536         Likewise.
5537         * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
5538         * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
5539         * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
5540         Likewise.
5541         * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
5542         Likewise.
5543         * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
5544         Likewise.
5545         * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
5546         Likewise.
5547         * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
5548         Likewise.
5549         * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
5550         Likewise.
5551         * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
5552         Likewise.
5553         * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
5554         Likewise.
5555         * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
5556         * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
5557         Likewise.
5558         * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
5560 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5562         * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
5563         dg-options.
5564         * testsuite/29_atomics/atomic/is_always_lock_free.cc:
5565         * testsuite/29_atomics/atomic/requirements/typedefs.cc:
5566         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
5567         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
5568         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
5569         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
5570         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
5571         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
5572         Likewise.
5573         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
5574         Likewise.
5575         * testsuite/30_threads/shared_lock/70766.cc: Likewise.
5576         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
5577         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
5578         Likewise.
5579         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
5580         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
5581         Likewise.
5582         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
5583         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
5584         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
5585         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
5587 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5589         * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
5590         dg-options directive.
5591         * testsuite/20_util/any/assign/2.cc: Likewise.
5592         * testsuite/20_util/any/assign/emplace.cc: Likewise.
5593         * testsuite/20_util/any/assign/exception.cc: Likewise.
5594         * testsuite/20_util/any/assign/self.cc: Likewise.
5595         * testsuite/20_util/any/cons/1.cc: Likewise.
5596         * testsuite/20_util/any/cons/2.cc: Likewise.
5597         * testsuite/20_util/any/cons/90415.cc: Likewise.
5598         * testsuite/20_util/any/cons/92156.cc: Likewise.
5599         * testsuite/20_util/any/cons/aligned.cc: Likewise.
5600         * testsuite/20_util/any/cons/explicit.cc: Likewise.
5601         * testsuite/20_util/any/cons/in_place.cc: Likewise.
5602         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
5603         * testsuite/20_util/any/make_any.cc: Likewise.
5604         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
5605         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
5606         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
5607         * testsuite/20_util/any/misc/swap.cc: Likewise.
5608         * testsuite/20_util/any/modifiers/1.cc: Likewise.
5609         * testsuite/20_util/any/modifiers/83658.cc: Likewise.
5610         * testsuite/20_util/any/modifiers/92156.cc: Likewise.
5611         * testsuite/20_util/any/observers/type.cc: Likewise.
5612         * testsuite/20_util/any/requirements.cc: Likewise.
5613         * testsuite/20_util/any/typedefs.cc: Likewise.
5614         * testsuite/20_util/optional/77288.cc: Likewise.
5615         * testsuite/20_util/optional/84601.cc: Likewise.
5616         * testsuite/20_util/optional/assignment/1.cc: Likewise.
5617         * testsuite/20_util/optional/assignment/2.cc: Likewise.
5618         * testsuite/20_util/optional/assignment/3.cc: Likewise.
5619         * testsuite/20_util/optional/assignment/4.cc: Likewise.
5620         * testsuite/20_util/optional/assignment/5.cc: Likewise.
5621         * testsuite/20_util/optional/assignment/6.cc: Likewise.
5622         * testsuite/20_util/optional/assignment/7.cc: Likewise.
5623         * testsuite/20_util/optional/assignment/8.cc: Likewise.
5624         * testsuite/20_util/optional/assignment/9.cc: Likewise.
5625         * testsuite/20_util/optional/bad_access.cc: Likewise.
5626         * testsuite/20_util/optional/cons/77727.cc: Likewise.
5627         * testsuite/20_util/optional/cons/85642.cc: Likewise.
5628         * testsuite/20_util/optional/cons/copy.cc: Likewise.
5629         * testsuite/20_util/optional/cons/deduction.cc: Likewise.
5630         * testsuite/20_util/optional/cons/default.cc: Likewise.
5631         * testsuite/20_util/optional/cons/move.cc: Likewise.
5632         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
5633         * testsuite/20_util/optional/cons/value.cc: Likewise.
5634         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
5635         * testsuite/20_util/optional/constexpr/cons/default.cc:
5636         Likewise.
5637         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
5638         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
5639         * testsuite/20_util/optional/constexpr/make_optional.cc:
5640         Likewise.
5641         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
5642         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
5643         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
5644         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
5645         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
5646         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
5647         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
5648         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
5649         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
5650         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
5651         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
5652         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
5653         * testsuite/20_util/optional/hash.cc: Likewise.
5654         * testsuite/20_util/optional/in_place.cc: Likewise.
5655         * testsuite/20_util/optional/make_optional.cc: Likewise.
5656         * testsuite/20_util/optional/nullopt.cc: Likewise.
5657         * testsuite/20_util/optional/observers/1.cc: Likewise.
5658         * testsuite/20_util/optional/observers/2.cc: Likewise.
5659         * testsuite/20_util/optional/observers/3.cc: Likewise.
5660         * testsuite/20_util/optional/observers/4.cc: Likewise.
5661         * testsuite/20_util/optional/observers/5.cc: Likewise.
5662         * testsuite/20_util/optional/observers/6.cc: Likewise.
5663         * testsuite/20_util/optional/relops/1.cc: Likewise.
5664         * testsuite/20_util/optional/relops/2.cc: Likewise.
5665         * testsuite/20_util/optional/relops/3.cc: Likewise.
5666         * testsuite/20_util/optional/relops/4.cc: Likewise.
5667         * testsuite/20_util/optional/relops/5.cc: Likewise.
5668         * testsuite/20_util/optional/relops/6.cc: Likewise.
5669         * testsuite/20_util/optional/relops/7.cc: Likewise.
5670         * testsuite/20_util/optional/requirements.cc: Likewise.
5671         * testsuite/20_util/optional/swap/1.cc: Likewise.
5672         * testsuite/20_util/optional/swap/2.cc: Likewise.
5673         * testsuite/20_util/optional/typedefs.cc: Likewise.
5674         * testsuite/20_util/variant/80165.cc: Likewise.
5675         * testsuite/20_util/variant/85183.cc: Likewise.
5676         * testsuite/20_util/variant/86874.cc: Likewise.
5677         * testsuite/20_util/variant/87431.cc: Likewise.
5678         * testsuite/20_util/variant/87619.cc: Likewise.
5679         * testsuite/20_util/variant/91807.cc: Likewise.
5680         * testsuite/20_util/variant/any.cc: Likewise.
5681         * testsuite/20_util/variant/compile.cc: Likewise.
5682         * testsuite/20_util/variant/deduction.cc: Likewise.
5683         * testsuite/20_util/variant/exception_safety.cc: Likewise.
5684         * testsuite/20_util/variant/hash.cc: Likewise.
5685         * testsuite/20_util/variant/index_type.cc: Likewise.
5686         * testsuite/20_util/variant/relops/89851.cc: Likewise.
5687         * testsuite/20_util/variant/relops/90008.cc: Likewise.
5688         * testsuite/20_util/variant/run.cc: Likewise.
5689         * testsuite/20_util/variant/visit.cc: Likewise.
5691 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5693         * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
5694         -std=gnu++17 from dg-options directive.
5695         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
5696         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
5697         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
5698         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
5699         * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
5700         * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
5701         * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
5702         * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
5703         Likewise.
5704         * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
5705         * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
5706         * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
5707         * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
5708         * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
5709         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
5710         Likewise.
5711         * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
5712         * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
5713         Likewise.
5714         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
5715         Likewise.
5716         * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
5717         * testsuite/27_io/filesystem/operations/all.cc: Likewise.
5718         * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
5719         * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
5720         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
5721         * testsuite/27_io/filesystem/operations/create_directories.cc:
5722         Likewise.
5723         * testsuite/27_io/filesystem/operations/create_directory.cc:
5724         Likewise.
5725         * testsuite/27_io/filesystem/operations/create_symlink.cc:
5726         Likewise.
5727         * testsuite/27_io/filesystem/operations/current_path.cc:
5728         Likewise.
5729         * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
5730         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
5731         * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
5732         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
5733         * testsuite/27_io/filesystem/operations/last_write_time.cc:
5734         Likewise.
5735         * testsuite/27_io/filesystem/operations/permissions.cc:
5736         Likewise.
5737         * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
5738         * testsuite/27_io/filesystem/operations/read_symlink.cc:
5739         Likewise.
5740         * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
5741         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
5742         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
5743         * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
5744         * testsuite/27_io/filesystem/operations/resize_file.cc:
5745         Likewise.
5746         * testsuite/27_io/filesystem/operations/space.cc: Likewise.
5747         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
5748         * testsuite/27_io/filesystem/operations/symlink_status.cc:
5749         Likewise.
5750         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
5751         Likewise.
5752         * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
5753         Likewise.
5754         * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
5755         * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
5756         * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
5757         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
5758         * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
5759         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5760         * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
5761         * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
5762         * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
5763         * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
5764         * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
5765         * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
5766         * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
5767         * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
5768         * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
5769         * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
5770         * testsuite/27_io/filesystem/path/construct/default.cc:
5771         Likewise.
5772         * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
5773         * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
5774         * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
5775         * testsuite/27_io/filesystem/path/construct/string_view.cc:
5776         Likewise.
5777         * testsuite/27_io/filesystem/path/decompose/extension.cc:
5778         Likewise.
5779         * testsuite/27_io/filesystem/path/decompose/filename.cc:
5780         Likewise.
5781         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5782         Likewise.
5783         * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
5784         Likewise.
5785         * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
5786         Likewise.
5787         * testsuite/27_io/filesystem/path/decompose/root_name.cc:
5788         Likewise.
5789         * testsuite/27_io/filesystem/path/decompose/root_path.cc:
5790         Likewise.
5791         * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
5792         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
5793         Likewise.
5794         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
5795         * testsuite/27_io/filesystem/path/generation/normal.cc:
5796         Likewise.
5797         * testsuite/27_io/filesystem/path/generation/normal2.cc:
5798         Likewise.
5799         * testsuite/27_io/filesystem/path/generation/proximate.cc:
5800         Likewise.
5801         * testsuite/27_io/filesystem/path/generation/relative.cc:
5802         Likewise.
5803         * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
5804         * testsuite/27_io/filesystem/path/generic/generic_string.cc:
5805         Likewise.
5806         * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
5807         * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
5808         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5809         * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
5810         * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
5811         * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
5812         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
5813         Likewise.
5814         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
5815         Likewise.
5816         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
5817         Likewise.
5818         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
5819         Likewise.
5820         * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
5821         * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
5822         * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
5823         Likewise.
5824         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
5825         * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
5826         * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
5827         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
5828         Likewise.
5829         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
5830         * testsuite/27_io/filesystem/path/query/empty_neg.cc:
5831         * testsuite/27_io/filesystem/path/query/has_extension.cc:
5832         Likewise.
5833         * testsuite/27_io/filesystem/path/query/has_filename.cc:
5834         Likewise.
5835         * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
5836         Likewise.
5837         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
5838         Likewise.
5839         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
5840         Likewise.
5841         * testsuite/27_io/filesystem/path/query/has_root_name.cc:
5842         Likewise.
5843         * testsuite/27_io/filesystem/path/query/has_root_path.cc:
5844         Likewise.
5845         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
5846         * testsuite/27_io/filesystem/path/query/is_absolute.cc:
5847         Likewise.
5848         * testsuite/27_io/filesystem/path/query/is_relative.cc:
5849         Likewise.
5850         * testsuite/experimental/filesystem/path/construct/string_view.cc:
5851         Likewise.
5853 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5855         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5856         Remove -std=gnu++17 from dg-options.
5857         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5858         Likewise.
5859         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5860         Likewise.
5861         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5862         Likewise.
5863         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5864         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5865         Likewise.
5866         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5867         Likewise.
5868         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5869         Likewise.
5870         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5871         Likewise.
5872         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5873         Likewise.
5874         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5875         Likewise.
5876         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5877         Likewise.
5878         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5879         Likewise.
5880         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5881         Likewise.
5882         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5883         Likewise.
5884         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5885         Likewise.
5886         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5887         Likewise.
5888         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5889         Likewise.
5890         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5891         Likewise.
5892         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5893         Likewise.
5894         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5895         Likewise.
5896         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5897         Likewise.
5898         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5899         Likewise.
5900         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5901         Likewise.
5902         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5903         Likewise.
5904         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5905         Likewise.
5906         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5907         Likewise.
5908         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5909         Likewise.
5910         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5911         Likewise.
5912         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5913         Likewise.
5914         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5915         Likewise.
5916         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5917         Likewise.
5918         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5919         Likewise.
5920         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5921         Likewise.
5922         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5923         Likewise.
5924         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5925         Likewise.
5926         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5927         Likewise.
5928         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5929         Likewise.
5930         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5931         Likewise.
5932         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5933         Likewise.
5934         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
5935         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5936         Likewise.
5937         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5938         Likewise.
5939         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5940         Likewise.
5941         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5942         Likewise.
5943         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5944         Likewise.
5945         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
5946         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
5947         * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
5948         * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
5949         * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
5950         * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
5951         * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
5952         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5953         Likewise.
5954         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
5955         * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
5956         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5957         Likewise.
5958         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5959         Likewise.
5961 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5963         * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
5964         for additional errors in C++20.
5965         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5966         Likewise.
5967         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
5968         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5970 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
5972         * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
5973         clash with std::any.
5975 2021-05-07  Jonathan Wakely  <jwakely@redhat.com>
5977         * include/std/istream (__rvalue_stream_extraction_t): Replace
5978         use of __rval_streamable.
5979         * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
5980         (__rval_streamable): Remove.
5981         (_Require_derived_from_ios_base, __derived_from_ios_base): New
5982         helper for checking constraints.
5983         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
5984         reference to the wrong subclause of the standard.
5985         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5986         Likewise.
5987         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5988         Likewise.
5989         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5990         Likewise.
5991         * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
5992         New test.
5993         * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
5994         errors.
5996 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
5998         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
5999         Improve static_assert messages.
6000         * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
6001         * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
6003 2021-05-06  Patrick Palka  <ppalka@redhat.com>
6005         * include/std/ranges (filter_view::_Iterator::base): Make the
6006         const& overload unconstrained and return a const reference as
6007         per LWG 3533.  Make unconditionally noexcept.
6008         (transform_view::_Iterator::base): Likewise.
6009         (elements_view::_Iterator::base): Likewise.
6011 2021-05-06  Patrick Palka  <ppalka@redhat.com>
6013         * include/bits/stl_iterator.h (move_iterator::base): Make the
6014         const& overload unconstrained and return a const reference as
6015         per LWG 3391.  Make unconditionally noexcept.
6016         (counted_iterator::base): Likewise.
6017         * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
6018         * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
6019         has_member_base concept to decay-copy the result of base().
6021 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
6023         * include/std/type_traits (remove_cvref_t): Define in terms of
6024         remove_cvref.
6025         * testsuite/20_util/remove_cvref/value.cc: Check alias.
6027 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
6029         Revert:
6030         2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
6032         * include/std/charconv (__from_chars_alnum): Pass unsigned
6033         char to std::isdigit.
6035 2021-05-05  Patrick Palka  <ppalka@redhat.com>
6037         * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
6038         Remove constraints on this partial specialization.
6039         * include/std/ranges (enable_borrowed_range<iota_view>):
6040         Likewise.
6042 2021-05-05  Patrick Palka  <ppalka@redhat.com>
6044         * include/std/ranges (transform_view::_Iterator::iter_swap):
6045         Remove as per LWG 3520.
6046         (join_view::_Iterator::iter_swap): Add indirectly_swappable
6047         constraint as per LWG 3517.
6049 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
6051         * testsuite/20_util/function_objects/invoke/3.cc: Check feature
6052         test macro.
6053         * testsuite/20_util/function_objects/invoke/version.cc: New test.
6055 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
6057         * include/std/charconv (__from_chars_alnum): Pass unsigned
6058         char to std::isdigit.
6060 2021-05-05  Corentin Gay  <gay@adacore.com>
6062         * acinclude.m4: Add VxWorks-specific case for the
6063         configuration of ctypes.
6064         * configure: Regenerate.
6065         * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
6066         version.
6067         * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
6068         * config/os/vxworks/ctype_configure_char.cc: Likewise.
6069         * config/os/vxworks/ctype_inline.h: Likewise.
6070         * testsuite/28_regex/traits/char/isctype.cc: Defines
6071         NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
6072         * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
6074 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
6076         * include/std/future (promise::set_value): Check for existence
6077         of shared state before dereferncing it.
6078         (promise::set_exception, promise::set_value_at_thread_exit)
6079         (promise::set_exception_at_thread_exit): Likewise.
6080         (promise<R&>::set_value, promise<R&>::set_exception)
6081         (promise<R&>::set_value_at_thread_exit)
6082         (promise<R&>::set_exception_at_thread_exit): Likewise.
6083         (promise<void>::set_value, promise<void>::set_exception)
6084         (promise<void>::set_value_at_thread_exit)
6085         (promise<void>::set_exception_at_thread_exit): Likewise.
6086         * testsuite/30_threads/promise/members/at_thread_exit2.cc:
6087         Remove unused variable.
6089 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
6091         * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
6092         Do not do arithmetic on null pointer.
6094 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
6096         * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
6097         (find_key_pointer(key_const_reference, false_type))
6098         (find_key_pointer(key_const_reference, true_type)): Do not
6099         dereference null pointer.
6101 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
6103         * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
6104         overflow.
6105         * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
6106         non-zero value to null pointer.
6107         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
6108         Use past-the-end iterator for result.
6109         * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
6110         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
6112 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
6114         PR libstdc++/100384
6115         * include/std/variant (__get_t): New alias template yielding the
6116         return type of std::get<N> on a variant.
6117         (__visit_result_t): New alias template yielding the result of
6118         std::visit.
6119         (__same_types): Move into namespace __detail::__variant.
6120         (__check_visitor_results): Likewise. Use __invoke_result_t and
6121         __get_t.
6122         (__check_visitor_result): Remove.
6123         (visit): Use __visit_result_t for return type.
6124         * testsuite/20_util/variant/100384.cc: New test.
6126 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
6128         * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
6129         checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
6130         * config.h.in: Regenerate.
6131         * configure: Regenerate.
6132         * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
6133         * include/bits/random.h (_Select_uint_least_t<s, 1>):
6134         Use __SIZEOF_INT128__ to decide whether to use __int128.
6135         * include/std/charconv (__to_chars_unsigned_type): Likewise.
6137 2021-05-03  Gerald Pfeifer  <gerald@pfeifer.com>
6139         * doc/xml/manual/ctype.xml: Move unix.org reference to https.
6140         * doc/html/manual/facets.html: Regenerate.
6142 2021-04-30  Patrick Palka  <ppalka@redhat.com>
6144         * include/std/ranges (__detail::__non_propating_cache): Define
6145         as per P2328.
6146         (join_view): Remove constraints on the value and reference types
6147         of the wrapped iterator type as per P2328.
6148         (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
6149         (join_view::_Iterator::operator++): Likewise.
6150         (join_view::_M_inner): Use __non_propating_cache as per P2328.
6151         Remove now-redundant use of __maybe_present_t.
6152         * testsuite/std/ranges/adaptors/join.cc: Include <array>.
6153         (test10): New test.
6155 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
6157         * include/bits/basic_string.h (__cpp_lib_constexpr_string):
6158         Only define for C++17 and later.
6159         * include/std/version (__cpp_lib_semaphore): Fix condition
6160         to match the one in <semaphore>.
6162 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
6164         * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
6165         * config.h.in: Regenerate.
6166         * configure: Regenerate.
6167         * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
6168         * include/bits/postypes.h: Remove include of <stdint.h> and
6169         definition/undefinition of the __STDC_LIMIT_MACROS and
6170         __STDC_CONSTANT_MACROS macros.
6171         (streamoff): Use __INT64_TYPE__ if defined.
6173 2021-04-30  Patrick Palka  <ppalka@redhat.com>
6175         * include/std/ranges (split_view::_InnerIter::operator++):
6176         Depend on _Base instead of _Vp directly, as per LWG 3532.
6178 2021-04-30  Patrick Palka  <ppalka@redhat.com>
6180         * include/bits/ranges_util.h (subrange::subrange): Avoid
6181         list-initialization in delegating constructor.
6182         * include/std/ranges (single_view): Replace implicit guide
6183         with explicit deduction guide that decays its argument.
6184         (_Single::operator()): Avoid CTAD when constructing the
6185         single_view object.
6186         (_Iota::operator()): Avoid list-initialization.
6187         (__detail::__can_filter_view, _Filter::operator()): Likewise.
6188         (__detail::__can_transform_view, _Transform::operator()): Likewise.
6189         (take_view::begin): Likewise.
6190         (__detail::__can_take_view, _Take::operator()): Likewise.
6191         (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
6192         (__detail::__can_drop_view, _Drop::operator()): Likewise.
6193         (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
6194         (split_view::split_view): Use views::single when initializing
6195         _M_pattern.
6196         (__detail::__can_split_view, _Split::operator()): Avoid
6197         list-initialization.
6198         (_Counted::operator()): Likewise.
6199         * testsuite/std/ranges/p2367.cc: New test.
6201 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
6203         PR libstdc++/60497
6204         * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
6205         std::addressof.
6206         * include/bits/basic_string.tcc (basic_string::swap)
6207         (basic_string::assign): Likewise.
6208         * include/bits/deque.tcc (deque::operator=(const deque&)):
6209         Likewise.
6210         * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
6211         Likewise.
6212         * include/bits/vector.tcc (vector::operator=(const vector&)):
6213         Likewise.
6215 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
6217         * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
6218         per LWG 1203.
6219         * include/std/ostream (operator<<(Ostream&&, const x&)):
6220         Likewise.
6221         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
6222         Adjust dg-error pattern.
6223         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
6224         Likewise.
6225         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
6226         is_extractable trait to replace std::__is_extractable. Make it
6227         work with rvalue streams as well as lvalues, to replace f() and
6228         g() helper functions.
6229         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
6230         Likewise.
6231         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
6232         Define is_insertable trait to replace std::__is_insertable. Make
6233         it work with rvalue streams as well as lvalues, to replace f()
6234         and g() helper functions.
6235         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
6236         Likewise.
6237         * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
6238         errors from new constraints.
6239         * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
6240         which are no longer expected to compile.
6241         * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
6242         Verify LWG 1203 changes.
6244 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
6246         PR libstdc++/100285
6247         * include/experimental/socket (__basic_socket_impl::set_option)
6248         (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
6249         Just set error code.
6250         * testsuite/experimental/net/socket/socket_base.cc: CHeck
6251         for <sys/socket.h> not <socket.h>.
6253 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
6255         PR libstdc++/100180
6256         PR libstdc++/100286
6257         PR libstdc++/100351
6258         * testsuite/experimental/net/internet/address/v4/comparisons.cc:
6259         Use new effective-target keyword.
6260         * testsuite/experimental/net/internet/address/v4/cons.cc:
6261         Likewise.
6262         * testsuite/experimental/net/internet/address/v4/creation.cc:
6263         Likewise.
6264         * testsuite/experimental/net/internet/address/v4/members.cc:
6265         Likewise.
6266         * testsuite/experimental/net/internet/address/v6/members.cc:
6267         Likewise.
6268         * testsuite/experimental/net/internet/resolver/base.cc:
6269         Likewise.
6270         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
6271         Likewise.
6272         * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
6273         Likewise.
6274         * testsuite/experimental/net/internet/socket/opt.cc:
6275         Likewise.
6276         * testsuite/experimental/net/internet/tcp.cc:
6277         Likewise.
6278         * testsuite/experimental/net/internet/udp.cc:
6279         Likewise.
6280         * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
6281         New proc to check net_ts_ip et.
6283 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
6285         PR libstdc++/97930
6286         * testsuite/20_util/pair/requirements/structural.cc: New test.
6288 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
6290         * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
6291         new definitions for constructors and assignment operators using
6292         concepts for constraints.
6293         * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
6294         later.
6295         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
6296         expected error messages to also match C++20 errors.
6298 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
6300         PR libstdc++/99957
6301         * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
6302         Combine and replace with ...
6303         (_PCC::_DeprConsPair): New SFINAE helper function.
6304         (pair): Merge preprocessor blocks so that all C++03 members
6305         are defined together at the end.
6306         (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
6307         Replace _T1 and _T2 parameters with __null_ptr_constant and
6308         adjust constraints.
6309         * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
6310         * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
6311         * testsuite/20_util/pair/cons/99957.cc: New test.
6313 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
6315         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
6316         * include/std/version (__cpp_lib_constexpr_string): Define.
6317         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
6318         Check for __cpp_lib_constexpr_string.
6319         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
6320         Likewise.
6321         * testsuite/21_strings/char_traits/requirements/version.cc: New test.
6323 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
6325         * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
6326         dealing with errors. Use '@' to prevent shell command being
6327         echoed.
6328         * doc/Makefile.in: Regenerate.
6330 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
6332         PR libstdc++/100298
6333         * include/bits/std_thread.h (thread::hardware_concurrency): Add
6334         missing noexcept to inline definition for non-gthreads targets.
6336 2021-04-28  Patrick Palka  <ppalka@redhat.com>
6338         PR libstdc++/100187
6339         PR libstdc++/100237
6340         PR libstdc++/100249
6341         PR libstdc++/100287
6342         * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
6343         the __value_comp lambda an explicit bool return type.
6344         (__is_permutation_fn::operator()): Give the __proj_scan local
6345         variable auto&& return type.  Give the __comp_scan lambda an
6346         explicit bool return type.
6347         (__remove_fn::operator()): Give the __pred lambda an explicit
6348         bool return type.
6349         (__partition_fn::operator()): Don't std::move __first twice
6350         when returning an empty subrange.
6351         (__min_fn::operator()): Don't std::move __comp.
6352         (__max_fn::operator()): Likewise.
6353         (__minmax_fn::operator()): Likewise.
6355 2021-04-27  Patrick Palka  <ppalka@redhat.com>
6357         PR libstdc++/100290
6358         * include/std/ranges (join_view::_Iterator::operator++): Correct
6359         the return type of the lambda to avoid returning a copy of
6360         _M_parent->_M_inner.
6361         * testsuite/std/ranges/adaptors/join.cc (test10): New test.
6363 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
6365         Revert:
6366         2021-04-22  Jakub Jelinek  <jakub@redhat.com>
6368         PR target/100182
6369         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
6370         ia32.
6371         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
6372         ia32.
6374 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
6376         * include/experimental/internet (address_v6::bytes_type): Adjust
6377         formatting.
6378         (basic_endpoint): Define _M_is_v6() to put all checks for
6379         AF_INET6 in one place.
6380         (basic_endpoint::resize): Simplify.
6381         (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
6382         (operator!=(const tcp&, const tcp&)): Likewise.
6383         (operator==(const udp&, const udp&)): Likewise.
6384         (operator!=(const udp&, const udp&)): Likewise.
6385         * testsuite/experimental/net/internet/tcp.cc: New test.
6386         * testsuite/experimental/net/internet/udp.cc: New test.
6388 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
6390         PR libstdc++/100286
6391         * include/experimental/internet (resolver_errc, resolver_category())
6392         (make_error_code, make_error_condition): Define unconditionally,
6393         only make enumerators and use of gai_strerror depend on the
6394         availability of <netdb.h>.
6395         (address_v4::to_string): Use correct constant for string length.
6396         (address_v4::to_string, address_v6::to_string): Define
6397         unconditionally, throw if unsupported.
6398         (make_address_v4, make_address_v6): Define unconditionally.
6399         Return an error if unsupported.
6400         (tcp, udp, v6_only, unicast::hops, multicast::*): Define
6401         conditionally,
6402         * testsuite/experimental/net/internet/socket/opt.cc: Check for
6403         <netinet/in.h> and <netinet/tcp.h> before using types from
6404         namespace net::ip.
6406 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
6408         PR libstdc++/100285
6409         * include/experimental/internet (resolver_base::flags):
6410         Define overloaded operators as hidden friends.
6411         * include/experimental/socket (socket_base::message_flags):
6412         Likewise.
6414 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
6416         * include/experimental/internet (tcp::no_delay, v6_only)
6417         (unicast::hops, multicast::hops, multicast::enable_loopback):
6418         Change access of base class and static data members. Add
6419         using-declaration for __socket_crtp::operator=(_Tp).
6420         (multicast::__mcastopt): New type.
6421         (multicast::join_group, multicast::leave_group): Derive from
6422         __mcastopt for common implementation.
6423         * include/experimental/socket: Add comment.
6424         * testsuite/experimental/net/internet/socket/opt.cc: New test.
6425         * testsuite/experimental/net/socket/socket_base.cc: Check for
6426         protected constructor/destructor of socket_base. Check for
6427         explicit constructors of socket option classes.
6429 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
6431         * include/experimental/bits/net.h (__socket_base): Add
6432         bool template parameter to allow BooleanSocketOption and
6433         IntegerSocketOption to have different __socket_base<int>
6434         base classes.
6435         (__socket_base<bool>): Adjust base class.
6436         (__socket_base<int>): Add partial specialization.
6437         (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
6438         * include/experimental/socket (socket_base::broadcast)
6439         (socket_base::debug, socket_base::do_not_route)
6440         (socket_base::keep_alive, socket_base::linger)
6441         (socket_base::out_of_band_inline)
6442         (socket_base::receive_buffer_size)
6443         (socket_base::receive_low_watermark)
6444         (socket_base::reuse_address, socket_base::send_buffer_size)
6445         (socket_base::send_low_watermark): Add using-declaration for
6446         __socket_crtp::operator=(_Tp).
6447         * testsuite/experimental/net/socket/socket_base.cc: Check
6448         properties of socket option types.
6450 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
6452         * include/experimental/internet (resolver_base::flags): Remove
6453         enumerators. Initialize constants directly with desired values.
6454         Make all operators constexpr and noexcept.
6455         * testsuite/experimental/net/internet/resolver/base.cc: Use
6456         __gnu_test::test_bitmask_values for bitmask type. Check
6457         construction and destruction is protected.
6459 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
6461         * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
6463 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
6465         PR libstdc++/100259
6466         * include/experimental/internet (net::ip::make_error_code)
6467         (net::ip::make_error_condition, net::ip::make_network_v4)
6468         (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
6470 2021-04-24  David Edelsohn  <dje.gcc@gmail.com>
6472         * testsuite/lib/dg-options.exp (atomic_link_flags): New.
6473         (add_options_for_libatomic): Use atomic_link_flags.
6475 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
6477         PR libstdc++/100180
6478         * include/experimental/io_context (io_context): Define
6479         dummy_pollfd type so that most member functions still compile
6480         without <poll.h> and struct pollfd.
6482 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
6484         * include/experimental/io_context (io_context::async_wait): Add
6485         comment.
6486         * include/experimental/socket (basic_socket::async_connect):
6487         Cast wait_type constant to int.
6488         (basic_datagram_socket::async_receive): Likewise.
6489         (basic_datagram_socket::async_receive_from): Likewise.
6490         (basic_datagram_socket::async_send): Likewise.
6491         (basic_datagram_socket::async_send_to): Likewise.
6492         (basic_stream_socket::async_receive): Likewise.
6493         (basic_stream_socket::async_send): Likewise. Use io_context
6494         parameter directly, instead of via an executor.
6495         (basic_socket_acceptor::async_accept): Likewise.
6497 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
6499         * include/experimental/socket (socket_base::shutdown_type):
6500         (socket_base::wait_type, socket_base::message_flags):
6501         Remove enumerators. Initialize constants directly with desired
6502         values.
6503         (socket_base::message_flags): Make all operators constexpr and
6504         noexcept.
6505         * testsuite/util/testsuite_common_types.h (test_bitmask_values):
6506         New test utility.
6507         * testsuite/experimental/net/socket/socket_base.cc: New test.
6509 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
6511         * config/os/aix/atomicity.h: Delete.
6513 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
6515         * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
6516         Handle system_clock as well as steady_clock.
6517         * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
6518         * testsuite/30_threads/semaphore/try_acquire_until.cc:
6519         Re-enable.
6521 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
6523         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
6524         options for libatomic.
6526 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
6528         * config/os/gnu-linux/os_defines.h: Fix type in comment.
6530 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
6532         PR libstdc++/99006
6533         * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
6534         is not an array type.
6535         * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
6536         * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
6538 2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
6540         * include/bits/atomic_wait.h: Always notify waiters in the
6541         case of 'bare' address notification.
6543 2021-04-22  Jakub Jelinek  <jakub@redhat.com>
6545         PR target/100182
6546         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
6547         ia32.
6548         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
6549         ia32.
6551 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
6553         PR libstdc++/100179
6554         * include/bits/semaphore_base.h: Remove #error.
6555         * include/std/semaphore: Do not define anything unless one of
6556         the implementations is available.
6558 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
6560         * include/bits/semaphore_base.h: Always reload __old in
6561         __atomic_semaphore::_S_do_try_acquire().
6562         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
6563         re-enable testcase.
6565 2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
6566             Jonathan Wakely  <jwakely@redhat.com>
6568         PR libstdc++/99453
6569         * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
6570         * python/Makefile.in: Regenerate.
6572 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
6574         * include/bits/semaphore_base.h: Add missing _M_try_acquire()
6575         member to __platform_wait.
6577 2021-04-21  Jonathan Wakely  <jwakely@redhat.com>
6579         * include/std/latch: Replace tab characters in license text.
6580         * include/std/semaphore: Likewise.
6582 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
6584         PR libstdc++/100164
6585         * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
6586         rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
6587         * configure: Regenerated.
6588         * config.h.in: Regenerated.
6590 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
6592         * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
6593         test for targets not using futexes for semaphores.
6594         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6595         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
6596         Disable for all targets.
6598 2021-04-20  Thomas Rodgers  <trodgers@redhat.com>
6600         * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
6601         * include/Makefile.in: Regenerate.
6602         * include/bits/this_thread_sleep.h: New file.
6603         * include/bits/atomic_base.h: Adjust all calls
6604         to __atomic_wait/__atomic_notify for new call signatures.
6605         * include/bits/atomic_timed_wait.h: Extensive rewrite.
6606         * include/bits/atomic_wait.h: Likewise.
6607         * include/bits/semaphore_base.h: Adjust all calls
6608         to __atomic_wait/__atomic_notify for new call signatures.
6609         * include/std/atomic: Likewise.
6610         * include/std/barrier: Likewise.
6611         * include/std/latch: Likewise.
6612         * include/std/semaphore: Likewise.
6613         * include/std/thread (this_thread::sleep_for)
6614         (this_thread::sleep_until): Move to new header.
6615         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
6616         test.
6617         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6618         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6619         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6620         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
6621         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
6622         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
6624 2021-04-20  Patrick Palka  <ppalka@redhat.com>
6626         PR libstdc++/95983
6627         * include/bits/stl_iterator.h (__detail::__move_iter_cat):
6628         Define.
6629         (move_iterator): Derive from the above in C++20 in order to
6630         conditionally define iterator_category as per P2259.
6631         (move_iterator::__base_cat): No longer used, so remove.
6632         (move_iterator::iterator_category): Remove in C++20.
6633         (__detail::__common_iter_use_postfix_proxy): Define.
6634         (common_iterator::_Proxy): Rename to ...
6635         (common_iterator:__arrow_proxy): ... this.
6636         (common_iterator::__postfix_proxy): Define as per P2259.
6637         (common_iterator::operator->): Adjust.
6638         (common_iterator::operator++): Adjust as per P2259.
6639         (iterator_traits<common_iterator>::_S_iter_cat): Define.
6640         (iterator_traits<common_iterator>::iterator_category): Change as
6641         per P2259.
6642         (__detail::__counted_iter_value_type): Define.
6643         (__detail::__counted_iter_concept): Define.
6644         (__detail::__counted_iter_cat): Define.
6645         (counted_iterator): Derive from the above three classes in order
6646         to conditionally define value_type, iterator_concept and
6647         iterator category respectively as per P2259.
6648         (counted_iterator::operator->): Define as per P2259.
6649         (incrementable_traits<counted_iterator>): Remove as per P2259.
6650         (iterator_traits<counted_iterator>): Adjust as per P2259.
6651         * include/std/ranges (__detail::__iota_view_iter_cat): Define.
6652         (iota_view::_Iterator): Derive from the above in order to
6653         conditionally define iterator_category as per P2259.
6654         (iota_view::_S_iter_cat): Rename to ...
6655         (iota_view::_S_iter_concept): ... this.
6656         (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
6657         (iota_view::iterator_category): Remove.
6658         (__detail::__filter_view_iter_cat): Define.
6659         (filter_view::_Iterator): Derive from the above in order to
6660         conditionally define iterator_category as per P2259.
6661         (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
6662         (filter_view::_Iterator::iterator_category): Remove.
6663         (transform_view::_Base): Define.
6664         (transform_view::__iter_cat): Define.
6665         (transform_view::_Iterator): Derive from the above in order to
6666         conditionally define iterator_category as per P2259.
6667         (transform_view::_Iterator::_Base): Just alias
6668         transform_view::_Base.
6669         (transform_view::_Iterator::_S_iter_cat): Move to struct
6670         transform_view::__iter_cat.
6671         (transform_view::_Iterator::iterator_category): Remove.
6672         (transform_view::_Sentinel::_Base): Just alias
6673         transform_view::_Base.
6674         (join_view::_Base): Define.
6675         (join_view::_Outer_iter): Define.
6676         (join_view::_Inner_iter): Define.
6677         (join_view::_S_ref_is_glvalue): Define.
6678         (join_view::__iter_cat): Define.
6679         (join_view::_Iterator): Derive from it in order to conditionally
6680         define iterator_category as per P2259.
6681         (join_view::_Iterator::_Base): Just alias join_view::_Base.
6682         (join_view::_Iterator::_S_ref_is_glvalue): Just alias
6683         join_view::_S_ref_is_glvalue.
6684         (join_view::_Iterator::_S_iter_cat): Move to struct
6685         transform_view::__iter_cat.
6686         (join_view::_Iterator::_Outer_iter): Just alias
6687         join_view::_Outer_iter.
6688         (join_view::_Iterator::_Inner_iter): Just alias
6689         join_view::_Inner_iter.
6690         (join_view::_Iterator::iterator_category): Remove.
6691         (join_view::_Sentinel::_Base): Just alias join_view::_Base.
6692         (__detail::__split_view_outer_iter_cat): Define.
6693         (__detail::__split_view_inner_iter_cat): Define.
6694         (split_view::_Base): Define.
6695         (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
6696         in order to conditionally define iterator_category as per P2259.
6697         (split_view::_Outer_iter::iterator_category): Remove.
6698         (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
6699         in order to conditionally define iterator_category as per P2259.
6700         (split_view::_Inner_iter::_S_iter_cat): Move to
6701         __split_view_inner_iter_cat.
6702         (split_view::_Inner_iter::iterator_category): Remove.
6703         (elements_view::_Base): Define.
6704         (elements_view::__iter_cat): Define.
6705         (elements_view::_Iterator): Derive from the above in order to
6706         conditionall define iterator_category as per P2259.
6707         (elements_view::_Iterator::_Base): Just alias
6708         elements_view::_Base.
6709         (elements_view::_Iterator::_S_iter_concept)
6710         (elements_view::_Iterator::iterator_concept): Define as per
6711         P2259.
6712         (elements_view::_Iterator::iterator_category): Remove.
6713         (elements_view::_Sentinel::_Base): Just alias
6714         elements_view::_Base.
6715         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
6716         Adjust constraints on iterator_traits<counted_iterator>.
6717         * testsuite/std/ranges/p2259.cc: New test.
6719 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
6721         PR libstdc++/100146
6722         * include/std/charconv (__cpp_lib_to_chars): Define
6723         conditionally.
6724         * include/std/version (__cpp_lib_to_chars): Likewise..
6725         * testsuite/20_util/from_chars/4.cc: Only check feature test
6726         macro, not _GLIBCXX_HAVE_USELOCALE.
6727         * testsuite/20_util/from_chars/5.cc: Likewise.
6728         * testsuite/20_util/from_chars/6.cc: Likewise.
6729         * testsuite/20_util/to_chars/long_double.cc: Likewise.
6731 2021-04-20  Jakub Jelinek  <jakub@redhat.com>
6733         * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
6734         versions with _IEEE128_ substring are found, set ieee_version_found
6735         to true.  Ignore missing symbols with _IEEE128_ in version name if
6736         !ieee_version_found.  Use i->first as version_name instead of
6737         i->second.version_name if the latter is empty.
6738         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6740 2021-04-19  H.J. Lu  <hjl.tools@gmail.com>
6742         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
6743         Updated.
6745 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
6747         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
6748         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
6750 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
6752         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6753         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6754         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
6755         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6756         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6757         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6759 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
6761         * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
6762         add libatomic options for 32-bit sparc*-*-linux-gnu.
6764 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
6766         PR libstdc++/96657
6767         * libsupc++/Makefile.am: Add atomicity.cc here.
6768         * src/c++98/Makefile.am: Remove it from here.
6769         * libsupc++/Makefile.in: Regenerate.
6770         * src/c++98/Makefile.in: Regenerate.
6771         * testsuite/18_support/exception_ptr/96657.cc: New test.
6773 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
6775         PR libstdc++/100060
6776         * include/std/bit: Only include <ext/numeric_traits.h> for
6777         hosted build, use <limits> otherwise.
6779 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
6781         * doc/xml/manual/backwards_compatibility.xml: Remove porting
6782         notes for libg++ and libstdc++-v2, and bibliography.
6783         * doc/html/*: Regenerated.
6785 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
6787         PR libstdc++/100044
6788         * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
6789         Remove helper concept.
6790         (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
6791         deduction guides, as per LWG 3404.
6792         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
6793         template argument deduction fails.
6795 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
6797         * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
6798         Adjust expected error for C++20 mode.
6799         * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
6800         Likewise.
6802 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
6804         PR libstdc++/99995
6805         * testsuite/17_intro/headers/c++1998/49745.cc: Include all
6806         standard headers and XFAIL for effective-target c++20.
6808 2021-04-09  François Dumont  <fdumont@gcc.gnu.org>
6810         PR libstdc++/99402
6811         * include/debug/helper_functions.h (__can_advance(_InputIterator,
6812         const std::pair<_Diff, _Distance_precision>&, int)): New.
6813         (__can_advance(const _Safe_iterator<>&,
6814         const std::pair<_Diff, _Distance_precision>&, int)): New.
6815         * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
6816         use latter.
6817         (__glibcxx_check_can_increment_range): Adapt to use latter.
6818         (__glibcxx_check_can_decrement_range): Likewise.
6819         * include/debug/safe_iterator.h
6820         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6821         int)): New.
6822         (__can_advance(const _Safe_iterator<>&,
6823         const std::pair<_Diff, _Distance_precision>&, int)): New.
6824         * include/debug/safe_iterator.tcc
6825         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6826         int)): New.
6827         (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
6828         std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
6829         __dp_sign_max_size.
6830         (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
6831         (__copy_move_backward_a): Likewise.
6832         (__equal_aux): Likewise.
6833         * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
6834         const std::pair<_Diff, _Distance_precision>&, int)): New.
6835         (__can_advance(const std::move_iterator<>&,
6836         const std::pair<_Diff, _Distance_precision>&, int)): New.
6837         * testsuite/25_algorithms/copy/debug/99402.cc: New test.
6839 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
6841         PR libstdc++/99985
6842         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
6843         to be a valid constexpr function in C++11.
6844         * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
6846 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
6848         * include/bits/fs_fwd.h: Fix doxygen group command.
6849         * include/bits/streambuf_iterator.h: Likewise.
6850         * include/bits/uses_allocator_args.h: Likewise.
6851         * include/std/memory: Likewise.
6852         * include/tr1/complex: Likewise.
6854 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6856         * include/bits/basic_string.h: Tweak doxygen comment.
6858 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6860         * include/std/ranges (__detail::find): Define.
6861         (split_view::_OuterIter::operator++): Apply proposed resolution
6862         of LWG 3505.
6863         * testsuite/std/ranges/adaptors/split.cc (test10): New test.
6865 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6867         * include/std/ranges (__detail::find_if): Simplify.
6868         (__detail::find_if_not): Likewise.
6869         (__detail::min): Remove.
6870         (__detail::mismatch): Simplify.
6871         (take_view::size): Use std::min instead of __detail::min.
6873 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6875         * include/std/ranges (__detail::__returnable_element): New
6876         concept.
6877         (elements_view): Use this concept in its constraints.  Add
6878         missing private access specifier.
6879         (elements_view::_S_get_element): Define as per LWG 3502.
6880         (elements_view::operator*, elements_view::operator[]): Use
6881         _S_get_element.
6882         (elements_view::operator++): Remove unnecessary constraint
6883         as per LWG 3492.
6884         * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
6886 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6888         * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
6889         out-of-memory error in log file.
6890         * doc/Makefile.in: Regenerate.
6892 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6894         * configure: Regenerate.
6896 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6898         * include/bits/random.h: Fix doxygen group commands.
6899         * include/bits/regex_constants.h: Likewise.
6900         * include/tr1/random.h: Likewise.
6902 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6904         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
6905         New function to determine noexcept-specifier for move
6906         constructors.
6907         (_Hashtable): Use _S_nothrow_move() on move constructors.
6908         * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
6909         Correct static assertion message.
6910         * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
6911         Likewise.
6912         * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
6913         Likewise.
6914         * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
6915         Likewise.
6917 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6919         PR libstdc++/98384
6920         * testsuite/20_util/to_chars/long_double.cc: Don't run the test
6921         on targets without a large long double.  XFAIL the execution on
6922         targets with a non-conforming printf.
6924 2021-04-08  Patrick Palka  <ppalka@redhat.com>
6926         PR libstdc++/99433
6927         * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
6928         (__adaptor::__adaptor_invocable): New concept.
6929         (__adaptor::__adaptor_partial_app_viable): New concept.
6930         (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
6931         non-template base class.
6932         (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
6933         class template.
6934         (__adaptor::_Partial): New class template that represents
6935         partial application of a range adaptor non-closure.
6936         (__adaptor::__pipe_invocable): New concept.
6937         (__adaptor::_Pipe): New class template.
6938         (__detail::__can_ref_view): New concept.
6939         (__detail::__can_subrange): New concept.
6940         (all): Replace the lambda here with ...
6941         (_All): ... this functor.  Add appropriate constraints.
6942         (__detail::__can_filter_view): New concept.
6943         (filter, _Filter): As in all/_All.
6944         (__detail::__can_transform): New concept.
6945         (transform, _Transform): As in all/_All.
6946         (__detail::__can_take_view): New concept.
6947         (take, _Take): As in all/_All.
6948         (__detail::__can_take_while_view): New concept.
6949         (take_while, _TakeWhile): As in all/_All.
6950         (__detail::__can_drop_view): New concept.
6951         (drop, _Drop): As in all/_All.
6952         (__detail::__can_drop_while_view): New concept.
6953         (drop_while, _DropWhile): As in all/_All.
6954         (__detail::__can_join_view): New concept.
6955         (join, _Join): As in all/_All.
6956         (__detail::__can_split_view): New concept.
6957         (split, _Split): As in all/_All.  Rename template parameter
6958         _Fp to _Pattern.
6959         (__detail::__already_common): New concept.
6960         (__detail::__can_common_view): New concept.
6961         (common, _Common): As in all/_All.
6962         (__detail::__can_reverse_view): New concept.
6963         (reverse, _Reverse): As in all/_All.
6964         (__detail::__can_elements_view): New concept.
6965         (elements, _Elements): As in all/_All.
6966         (keys, values): Adjust.
6967         * testsuite/std/ranges/adaptors/99433.cc: New test.
6968         * testsuite/std/ranges/adaptors/all.cc: No longer expect that
6969         adding empty range adaptor closure objects to a pipeline doesn't
6970         increase the size of the pipeline.
6971         (test05): New test.
6972         * testsuite/std/ranges/adaptors/common.cc (test03): New test.
6973         * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
6974         * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
6975         * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
6976         * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
6977         * testsuite/std/ranges/adaptors/join.cc (test09): New test.
6978         * testsuite/std/ranges/adaptors/p2281.cc: New test.
6979         * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
6980         * testsuite/std/ranges/adaptors/split.cc (test01, test04):
6981         Adjust.
6982         (test09): New test.
6983         * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
6984         expected error message.
6985         (test02): Likewise.  Extend test.
6986         * testsuite/std/ranges/adaptors/take.cc (test06): New test.
6987         * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
6988         * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
6989         New test.
6991 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6993         * include/std/string_view: Adjust Doxygen @file comment.
6995 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
6997         * include/std/type_traits (is_scoped_enum<T>): Constrain partial
6998         specialization to not match incomplete enum types. Use a
6999         requires-expression instead of instantiating is_convertible.
7000         (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
7001         * testsuite/20_util/is_scoped_enum/value.cc: Check with
7002         incomplete types and opaque-enum-declarations.
7004 2021-04-07  Jonathan Wakely  <jwakely@redhat.com>
7006         PR libstdc++/99805
7007         * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
7008         non-const member on _M_pathname, to avoid copy-on-write.
7009         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
7010         Check construction from strings that might be shared.
7012 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
7014         * include/bits/move.h (forward, move, move_if_noexcept)
7015         (addressof): Add _GLIBCXX_NODISCARD.
7016         * include/bits/ranges_cmp.h (identity::operator()): Add
7017         nodiscard attribute.
7018         * include/c_global/cstddef (to_integer): Likewise.
7019         * include/std/bit (bit_cast): Likewise.
7020         * include/std/utility (as_const, to_underlying): Likewise.
7022 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
7024         * include/bits/move.h (forward): Change static_assert message
7025         to be unambiguous about what must be true.
7026         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
7027         * testsuite/20_util/forward/f_neg.cc: Likewise.
7029 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
7031         * include/bits/alloc_traits.h: Use markdown for code font.
7032         * include/bits/basic_string.h: Fix @param names.
7033         * include/bits/max_size_type.h: Remove period after @file.
7034         * include/bits/regex.h: Fix duplicate @retval names, and rename.
7035         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
7036         group open to match existing group close.
7037         * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
7038         open.
7040 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
7042         * include/bits/atomic_base.h: Fix doxygen group close.
7043         * include/bits/basic_ios.h: Likewise.
7044         * include/bits/forward_list.h: Likewise.
7045         * include/bits/fs_dir.h: Likewise.
7046         * include/bits/fs_ops.h: Likewise.
7047         * include/bits/fs_path.h: Likewise.
7048         * include/bits/functional_hash.h: Likewise.
7049         * include/bits/gslice.h: Likewise.
7050         * include/bits/gslice_array.h: Likewise.
7051         * include/bits/hashtable_policy.h: Likewise.
7052         * include/bits/indirect_array.h: Likewise.
7053         * include/bits/locale_classes.h: Likewise.
7054         * include/bits/locale_facets.h: Likewise.
7055         * include/bits/locale_facets_nonio.h: Likewise.
7056         * include/bits/mask_array.h: Likewise.
7057         * include/bits/refwrap.h: Likewise.
7058         * include/bits/regex.h: Likewise.
7059         * include/bits/regex_automaton.h: Likewise.
7060         * include/bits/regex_compiler.h: Likewise.
7061         * include/bits/regex_constants.h: Likewise.
7062         * include/bits/regex_error.h: Likewise.
7063         * include/bits/regex_executor.h: Likewise.
7064         * include/bits/regex_scanner.h: Likewise.
7065         * include/bits/shared_ptr.h: Likewise.
7066         * include/bits/shared_ptr_atomic.h: Likewise.
7067         * include/bits/shared_ptr_base.h: Likewise.
7068         * include/bits/slice_array.h: Likewise.
7069         * include/bits/specfun.h: Likewise.
7070         * include/bits/std_function.h: Likewise.
7071         * include/bits/std_mutex.h: Likewise.
7072         * include/bits/stl_deque.h: Likewise.
7073         * include/bits/stl_iterator.h: Likewise.
7074         * include/bits/stl_iterator_base_types.h: Likewise.
7075         * include/bits/stl_map.h: Likewise.
7076         * include/bits/stl_multimap.h: Likewise.
7077         * include/bits/stl_multiset.h: Likewise.
7078         * include/bits/stl_numeric.h: Likewise.
7079         * include/bits/stl_pair.h: Likewise.
7080         * include/bits/stl_set.h: Likewise.
7081         * include/bits/stl_uninitialized.h: Likewise.
7082         * include/bits/stream_iterator.h: Likewise.
7083         * include/bits/streambuf_iterator.h: Likewise.
7084         * include/bits/unique_ptr.h: Likewise.
7085         * include/bits/unordered_map.h: Likewise.
7086         * include/bits/unordered_set.h: Likewise.
7087         * include/decimal/decimal: Likewise.
7088         * include/experimental/any: Likewise.
7089         * include/experimental/array: Likewise.
7090         * include/experimental/bits/fs_dir.h: Likewise.
7091         * include/experimental/bits/fs_fwd.h: Likewise.
7092         * include/experimental/bits/fs_ops.h: Likewise.
7093         * include/experimental/bits/fs_path.h: Likewise.
7094         * include/experimental/buffer: Likewise.
7095         * include/experimental/internet: Likewise.
7096         * include/experimental/optional: Likewise.
7097         * include/experimental/propagate_const: Likewise.
7098         * include/experimental/socket: Likewise.
7099         * include/ext/pb_ds/assoc_container.hpp: Likewise.
7100         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
7101         Likewise.
7102         * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
7103         * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
7104         * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
7105         * include/ext/pb_ds/exception.hpp: Likewise.
7106         * include/ext/pb_ds/priority_queue.hpp: Likewise.
7107         * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
7108         * include/ext/random: Likewise.
7109         * include/std/any: Likewise.
7110         * include/std/atomic: Likewise.
7111         * include/std/bitset: Likewise.
7112         * include/std/chrono: Likewise.
7113         * include/std/complex: Likewise.
7114         * include/std/condition_variable: Likewise.
7115         * include/std/fstream: Likewise.
7116         * include/std/future: Likewise.
7117         * include/std/iostream: Likewise.
7118         * include/std/istream: Likewise.
7119         * include/std/mutex: Likewise.
7120         * include/std/numeric: Likewise.
7121         * include/std/ostream: Likewise.
7122         * include/std/ratio: Likewise.
7123         * include/std/shared_mutex: Likewise.
7124         * include/std/stdexcept: Likewise.
7125         * include/std/streambuf: Likewise.
7126         * include/std/system_error: Likewise.
7127         * include/std/thread: Likewise.
7128         * include/std/valarray: Likewise.
7129         * include/std/variant: Likewise.
7130         * include/tr1/cmath: Likewise.
7131         * include/tr1/regex: Likewise.
7132         * include/tr2/dynamic_bitset: Likewise.
7133         * libsupc++/atomic_lockfree_defines.h: Likewise.
7134         * libsupc++/exception: Likewise.
7135         * libsupc++/exception.h: Likewise.
7136         * libsupc++/exception_ptr.h: Likewise.
7137         * libsupc++/nested_exception.h: Likewise.
7139 2021-03-31  Alexandre Oliva  <oliva@adacore.com>
7141         * testsuite/30_threads/future/members/poll.cc: Use faster
7142         after-ready call in the calibration loop.
7144 2021-03-29  Jonathan Wakely  <jwakely@redhat.com>
7146         * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
7147         * doc/html/manual/status.html: Regenerate.
7149 2021-03-28  François Dumont  <fdumont@gcc.gnu.org>
7151         * include/debug/forward_list
7152         (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
7153         * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
7154         call to safe container allocator aware move constructor.
7155         * include/debug/vector (vector(vector&&, const allocator_type&)):
7156         Fix noexcept qualification.
7157         * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
7158         Add allocator-extended move constructor noexceot qualification check.
7159         * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
7161 2021-03-26  Jonathan Wakely  <jwakely@redhat.com>
7163         * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
7164         fallback is needed.
7165         [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
7166         New helper functions and callback.
7167         (random_device::_M_init): Add 'prng' and 'all' enumerators.
7168         Replace switch with fallthrough with a series of 'if' statements.
7169         [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
7170         checks fail.
7171         (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
7172         token.
7173         (random_device::_M_getval): Check for callback unconditionally
7174         and always pass _M_file pointer.
7175         * testsuite/26_numerics/random/random_device/85494.cc: Remove
7176         effective-target check. Use new random_device_available helper.
7177         * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
7178         * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
7179         Remove effective-target check.
7180         * testsuite/26_numerics/random/random_device/cons/default.cc:
7181         Likewise.
7182         * testsuite/26_numerics/random/random_device/cons/token.cc: Use
7183         new random_device_available helper. Test "prng" token.
7184         * testsuite/util/testsuite_random.h (random_device_available):
7185         New helper function.
7187 2021-03-25  François Dumont  <fdumont@gcc.gnu.org>
7189         * include/debug/string
7190         (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
7191         (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
7192         (basic_string<>::erase): Adapt to take __const_iterator.
7193         (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
7194         (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
7195         remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
7196         [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
7197         (__gnu_debug::u16string, __gnu_debug::u32string): New.
7198         (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
7199         (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
7200         * testsuite/util/exception/safety.h
7201         (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
7202         (insert_base<__gnu_debug::basic_string<>>): Likewise.
7203         * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
7204         New partial specialization.
7205         * testsuite/21_strings/basic_string/hash/debug.cc: New test.
7206         * testsuite/21_strings/basic_string/requirements/citerators.cc:
7207         Add test on __gnu_debug::string.
7208         * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
7209         * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
7210         * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
7211         Likewise.
7212         * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
7213         Likewise.
7214         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
7215         Likewise.
7216         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
7217         Likewise.
7218         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
7219         Likewise.
7220         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
7221         Likewise.
7222         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
7223         Likewise.
7224         * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
7226 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
7228         PR c++/99672
7229         * testsuite/18_support/source_location/consteval.cc (main): Adjust
7230         expected column numbers.
7231         * testsuite/18_support/source_location/1.cc (main): Likewise.
7233 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
7235         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
7237 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
7239         * testsuite/util/exception/safety.h (setup_base::generate):
7240         Support seeding random engine.
7241         (erase_point, erase_range): Adjust range of random numbers to
7242         ensure dereferenceable iterators are used where required.
7243         (generation_prohibited::run): Do not try to erase from empty
7244         containers.
7245         * testsuite/util/testsuite_containergen.h (test_containers):
7246         Support seeding random engine.
7248 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
7250         * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
7251         line with a check that uses the const being/end overloads.
7253 2021-03-23  Moritz Sichert  <sichert@in.tum.de>
7255         * include/std/ranges (reverse_view::begin, reverse_view::end):
7256         Qualify make_reverse_iterator calls to avoid ADL.
7257         * testsuite/std/ranges/adaptors/reverse.cc: Test that
7258         views::reverse works when make_reverse_iterator is defined
7259         in an associated namespace.
7261 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
7263         * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
7264         Do not define when compiling with Clang.
7266 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
7268         * include/std/string_view (basic_string_view(Range&&)): Define new
7269         constructor and deduction guide.
7270         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
7271         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
7273 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
7275         * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
7276         Add missing 'noexcept' as per LWG 2280.
7277         (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
7278         (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
7279         * testsuite/24_iterators/range_access/range_access.cc: Check for
7280         expected noexcept specifiers. Check result types of generic
7281         std::begin and std::end overloads.
7282         * testsuite/24_iterators/range_access/range_access_cpp14.cc:
7283         Check for expected noexcept specifiers.
7284         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
7285         Likewise.
7287 2021-03-19  Jonathan Wakely  <jwakely@redhat.com>
7289         * include/std/type_traits (is_scoped_enum): Define.
7290         * include/std/version (__cpp_lib_is_scoped_enum): Define.
7291         * testsuite/20_util/is_scoped_enum/value.cc: New test.
7292         * testsuite/20_util/is_scoped_enum/version.cc: New test.
7294 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
7296         PR libstdc++/99341
7297         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
7298         std::once_flag symbols.
7299         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
7300         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
7301         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
7302         Likewise.
7303         * config/abi/pre/gnu.ver: Likewise.
7304         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
7305         (struct __once_flag_compat): Remove.
7306         (_ZNSt9once_flag11_M_activateEv): Remove.
7307         (_ZNSt9once_flag9_M_finishEb): Remove.
7309 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
7311         PR libstdc++/99341
7312         * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
7313         Revert to pthread_once_t implementation.
7314         [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
7315         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
7316         (struct __once_flag_compat): New type matching the reverted
7317         implementation of once_flag using futexes.
7318         (once_flag::_M_activate): Remove, replace with ...
7319         (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
7320         (once_flag::_M_finish): Remove, replace with ...
7321         (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
7322         * testsuite/30_threads/call_once/66146.cc: Removed.
7324 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
7326         * testsuite/17_intro/names.cc: Exclude j from the list
7327         of test symbols for Darwin.
7329 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
7331         * config/os/bsd/darwin/ppc-extra.ver: Add matching for
7332         to_chars and from_chars for long double.
7334 2021-03-15  Patrick Palka  <ppalka@redhat.com>
7336         * include/bits/max_size_type.h (__max_size_type::operator _Tp):
7337         Fix formatting.
7338         (__max_size_type::operator++): Define.
7339         (__max_size_type::operator--): Likewise.
7340         (__max_size_type::operator<=>): Conditionally define (in place
7341         of the other comparison operators).
7342         (__max_diff_type::operator _Tp): Fix formatting.
7343         (__max_diff_type::operator++): Define.
7344         (__max_diff_type::operator--): Likewise.
7345         (__max_diff_type::operator<=>): Conditionally define (in place
7346         of the other comparison operators).
7347         * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
7348         these operator overloads.
7350 2021-03-15  Caroline Tice  <cmtice@google.com>
7352         PR libstdc++/99172
7353         * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
7354         AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
7355         AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
7356         filtered out.
7357         * src/Makefile.in: Regenerate.
7359 2021-03-11  Patrick Palka  <ppalka@redhat.com>
7361         * src/c++17/floating_to_chars.cc: Simplify the file as if
7362         __SIZEOF_INT128__ is always defined.
7363         [!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
7364         a base-10 to_chars overload for the uint128_t class type.
7365         * src/c++17/uint128_t.h: New file.
7366         * testsuite/20_util/to_chars/long_double.cc: No longer expect an
7367         execution FAIL on targets that have a large long double type
7368         but lack __int128.
7370 2021-03-11  Patrick Palka  <ppalka@redhat.com>
7372         * src/c++17/ryu/LOCAL_PATCHES: Update.
7373         * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
7374         * src/c++17/ryu/generic_128.h: Likewise.
7375         * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
7376         Use uint128_t instead of __uint128_t.
7377         (generic_binary_to_decimal): Likewise.
7379 2021-03-11  Patrick Palka  <ppalka@redhat.com>
7381         * src/c++17/ryu/LOCAL_PATCHES: New file.
7383 2021-03-11  Patrick Palka  <ppalka@redhat.com>
7385         * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
7386         defined alias of unsigned __int128.
7387         (floating_type_traits_binary128::mantissa_t): Use uint128_t
7388         instead of unsigned __int128.
7389         (floating_type_traits<long double>::mantissa_t)
7390         [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
7391         (get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
7392         and uint32_t explicit.  Simplify the extraction of mantissa,
7393         exponent and sign bit.
7395 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
7397         * include/std/barrier (barrier::arrival_token): New move-only
7398         class that encapsulates the underlying token value.
7400 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
7402         * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
7403         instead of unqualified() method.
7405 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
7407         PR libstdc++/99537
7408         * include/std/stop_token (_Stop_state_t::_M_release_ownership):
7409         Use acq_rel memory ordering.
7411 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
7413         PR libstdc++/99533
7414         * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
7415         helper function to check for permission denied errors.
7416         * src/filesystem/dir.cc (recursive_directory_iterator):
7417         Likewise.
7418         * src/filesystem/dir-common.h (is_permission_denied_error): New
7419         helper function.
7421 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
7423         PR libstdc++/99536
7424         * include/bits/random.h (normal_distribution): Use
7425         default-initializer for _M_saved and _M_saved_available.
7427 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
7429         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
7430         link with libatomic.
7431         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
7432         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
7433         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
7434         * testsuite/30_threads/barrier/arrive.cc: Likewise.
7435         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7436         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7437         * testsuite/30_threads/barrier/completion.cc: Likewise.
7438         * testsuite/30_threads/latch/3.cc: Likewise.
7439         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
7440         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
7441         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
7443 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
7445         PR libstdc++/99413
7446         * include/bits/align.h: Include debug/assertions.h.
7447         * include/bits/codecvt.h: Include bits/c++config.h.
7448         * include/bits/enable_special_members.h: Likewise.
7449         * include/bits/erase_if.h: Likewise.
7450         * include/bits/functional_hash.h: Include <type_traits>.
7451         * include/bits/invoke.h: Include bits/move.h.
7452         * include/bits/ostream_insert.h: Include bits/exception_defines.h.
7453         * include/bits/parse_numbers.h: Include <type_traits>.
7454         * include/bits/predefined_ops.h: Include bits/c++config.h.
7455         * include/bits/range_access.h: Include bits/stl_iterator.h.
7456         * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
7457         * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
7458         * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
7459         * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
7460         * include/bits/unique_lock.h: Include bits/std_mutex.h.
7461         * include/debug/assertions.h: Include bits/c++config.h.
7463 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
7465         * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
7466         (ranges::equal_to, ranges::not_equal_to): Do not constrain
7467         with __eq_builtin_ptr_cmp.
7468         (ranges::less, ranges::greater, ranges::less_equal)
7469         (ranges::greater_equal): Do not constrain with
7470         __less_builtin_ptr_cmp.
7471         * libsupc++/compare (compare_three_way): Do not constrain with
7472         __3way_builtin_ptr_cmp.
7473         * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
7474         * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
7475         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
7477 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
7479         * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
7480         C++20 calendar types.
7482 2021-03-06  Jakub Jelinek  <jakub@redhat.com>
7484         PR libstdc++/99396
7485         * include/std/bit (__rotl, __rotr): Add optimized variants for power of
7486         two _Nd which the compiler can pattern match the rotates.
7488 2021-03-04  Jonathan Wakely  <jwakely@redhat.com>
7490         PR libstdc++/99382
7491         * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
7492         Make storage larger than required. Verify no write to the last
7493         element.
7494         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
7495         Likewise.
7497 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7499         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
7500         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
7501         Likewise.
7502         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
7503         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
7504         Likewise.
7506 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7508         * include/experimental/bits/simd.h: Replace reserved _X, _B by
7509         _Xp, _Bp.
7510         * include/experimental/bits/simd_builtin.h: Likewise.
7511         * include/experimental/bits/simd_x86.h: Likewise.
7513 2021-02-27  Jonathan Wakely  <jwakely@redhat.com>
7515         PR libstdc++/99301
7516         * include/std/chrono (year_month_day::_M_days_since_epoch()):
7517         Convert chrono::month and chrono::day to unsigned before
7518         converting to uint32_t.
7520 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
7522         * include/std/chrono (year_month_day::_S_from_days): Perform
7523         all calculations with type uint32_t.
7525 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
7527         * doc/xml/manual/abi.xml: Document versioning for GCC 11.
7528         * doc/html/manual/abi.html: Regenerate.
7530 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
7532         PR libstdc++/99270
7533         * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
7534         FILE instead of FILE.
7536 2021-02-25  Andreas Schwab  <schwab@suse.de>
7538         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
7539         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
7540         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
7541         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
7543 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
7545         PR libstdc++/99265
7546         * include/std/chrono (year_month_day::_S_from_days): Cast long
7547         to int explicitly.
7549 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
7551         * include/std/utility (to_underlying): Define.
7552         * include/std/version (__cpp_lib_to_underlying): Define.
7553         * testsuite/20_util/to_underlying/1.cc: New test.
7554         * testsuite/20_util/to_underlying/version.cc: New test.
7556 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
7558         PR libstdc++/99261
7559         * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
7560         before value to be printed.
7562 2021-02-24  Patrick Palka  <ppalka@redhat.com>
7564         * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
7565         Relax the condition that guards the printf code path to accept
7566         F128_type as well as long double.
7568 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
7570         * include/std/chrono (year_month_day_last:day): New
7571         implementation.
7573 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
7575         * include/std/chrono (year::is_leap): New implementation.
7576         * testsuite/std/time/year/2.cc: New test.
7578 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
7580         * include/std/chrono (year_month_day::_M_days_since_epoch):
7581         New implementation.
7582         * testsuite/std/time/year_month_day/4.cc: New test.
7584 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
7586         * include/std/chrono (year_month_day::_S_from_days): New
7587         implementation.
7588         * testsuite/std/time/year_month_day/3.cc: New test.
7590 2021-02-24  Patrick Palka  <ppalka@redhat.com>
7592         PR libstdc++/98384
7593         * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
7594         (test01): Simplify verifying the nearby values by using a
7595         2-iteration loop and a dedicated output buffer to check that the
7596         nearby values are different.  Factor out the printf-based
7597         verification into a local function, and check that the leading
7598         hex digits agree before comparing to the output of printf.  Also
7599         verify the output by round-tripping it through from_chars.
7601 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
7603         PR libstdc++/98389
7604         * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
7605         symbols for long double arguments mangled as 'g'.
7606         * config/os/gnu-linux/ldbl-extra.ver: Likewise.
7607         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
7608         * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
7609         Use -mabi=ibmlongdouble for floating_to_chars.cc.
7610         * src/c++17/Makefile.in: Regenerate.
7611         * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
7612         New type defining type traits of IEEE binary128 format.
7613         (floating_type_traits<__float128>): Define specialization.
7614         (floating_type_traits<long double>): Define in terms of
7615         floating_type_traits_binary128 when appropriate.
7616         (floating_to_shortest_scientific): Handle __float128.
7617         (sprintf_ld): New function template for printing a long double
7618         or __ieee128 value using sprintf.
7619         (__floating_to_chars_shortest, __floating_to_chars_precision):
7620         Use sprintf_ld.
7621         (to_chars): Define overloads for __float128.
7623 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
7625         * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
7627 2021-02-23  Martin Sebor  <msebor@redhat.com>
7629         PR c++/99074
7630         * libsupc++/dyncast.cc (__dynamic_cast): Return null when
7631         first argument is null.
7633 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
7635         PR libstdc++/99181
7636         * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
7637         test.
7639 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
7641         PR libstdc++/99181
7642         * include/bits/char_traits.h (char_traits<char>::compare): For
7643         constexpr evaluation don't call
7644         __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
7645         directly.
7647 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
7649         PR libstdc++/97549
7650         * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
7652 2021-02-23  Patrick Palka  <ppalka@redhat.com>
7654         PR libstdc++/98384
7655         * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
7656         the high- and low-order parts from an IBM long double value
7657         in an endian-agnostic way.
7659 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
7661         * include/bits/atomic_wait.h (__thread_relax()): Call
7662         __thread_yield() not __gthread_yield().
7664 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
7666         * include/bits/atomic_wait.h (__thread_yield()): Check
7667         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
7668         (__thread_relax()): Use __thread_yield() instead of repeating
7669         the preprocessor checks for __gthread_yield.
7671 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
7673         * include/std/mutex (once_flag::_M_activate()): Add explicit
7674         return statement for passive case.
7675         (once_flag::_M_finish(bool)): Use reserved name for parameter.
7677 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
7679         PR libstdc++/99096
7680         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
7682 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7684         PR libstdc++/88881
7685         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
7687 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7689         * doc/xml/manual/status_cxx2014.xml: Document implementation
7690         specific properties of std::experimental::filesystem::rename.
7691         * doc/xml/manual/status_cxx2017.xml: Document implementation
7692         specific properties of std::filesystem::rename.
7693         * doc/html/*: Regenerate.
7694         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
7695         for directories on Windows.
7696         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
7697         MoveFileExW on Windows.
7698         * testsuite/27_io/filesystem/operations/rename.cc: New test.
7699         * testsuite/experimental/filesystem/operations/rename.cc: New test.
7701 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7703         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
7704         random number to the path.
7706 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7708         * include/experimental/internet (address_v6::to_string): Include
7709         scope ID in string.
7710         * testsuite/experimental/net/internet/address/v6/members.cc:
7711         Test to_string() results.
7713 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7715         * include/experimental/internet (address_v6::any): Avoid using
7716         memcpy in constexpr function.
7717         (address_v6::loopback): Likewise.
7718         (make_address_v6): Fix missing return statements on error paths.
7719         * include/experimental/io_context: Avoid -Wdangling-else
7720         warning.
7721         * testsuite/experimental/net/internet/address/v4/members.cc:
7722         Remove unused variables.
7723         * testsuite/experimental/net/internet/address/v6/members.cc:
7724         New test.
7726 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7728         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
7729         Add unused attribute to parameter.
7730         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
7731         Likewise.
7733 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7735         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
7736         if -fno-rtti is used.
7737         * testsuite/30_threads/async/forced_unwind.cc: Expect test
7738         to abort if -fno-rtti is used.
7740 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7742         * testsuite/util/testsuite_allocator.h (memory_resource):
7743         Remove requirement for RTTI and exceptions to be enabled.
7745 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7747         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
7748         static_cast when RTTI is disabled.
7749         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
7750         Likewise.
7751         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
7752         Likewise.
7753         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
7754         Likewise.
7755         * testsuite/27_io/basic_stringstream/str/char/2.cc:
7756         Likewise.
7757         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
7758         Likewise.
7760 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7762         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
7763         as unused and only use dynamic_cast when RTTI is enabled.
7765 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
7767         PR libstdc++/99077
7768         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
7769         Change int parameter to error_code, to match std::ios_failure.
7770         (__throw_ios_failure(const char*, int)): Construct error_code
7771         from int parameter.
7773 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
7775         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
7776         new macro.
7777         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
7778         macro instead of _GLIBCXX_EH_PTR_COMPAT.
7779         (operator==): Likewise.
7781 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
7783         PR libstdc++/99058
7784         * doc/xml/manual/status_cxx2011.xml: Document when support
7785         became stable.
7786         * doc/xml/manual/status_cxx2014.xml: Likewise.
7787         * doc/xml/manual/status_cxx2017.xml: Likewise.
7788         * doc/html/manual/status.html: Regenerate.
7790 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
7792         PR libstdc++/88881
7793         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
7795 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
7797         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
7798         (fs::remove): Use std::system_category() for error codes from
7799         GetLastError().
7800         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
7801         Likewise.
7803 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
7805         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
7806         in __MINGW32__ macro name.
7807         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
7808         * testsuite/27_io/filesystem/path/generation/proximate.cc:
7809         Likewise.
7810         * testsuite/27_io/filesystem/path/generation/relative.cc:
7811         Likewise.
7812         * testsuite/util/testsuite_fs.h: Likewise.
7814 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
7816         * include/bits/stl_tree.h
7817         (__has_is_transparent, __has_is_transparent_t): Move...
7818         * include/bits/stl_function.h: ...here.
7819         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
7820         (_Hashtable_base<>::_M_equals_tr): New.
7821         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
7822         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
7823         heterogeneous lookup.
7824         (_Hashtable<>::_M_find_before_node_tr): New.
7825         (_Hashtable<>::_M_find_node_tr): New.
7826         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
7827         unordered_map::contains<>, unordered_map::equal_range<>): New member function
7828         templates to perform heterogeneous lookup.
7829         (unordered_multimap::find<>, unordered_multimap::count<>,
7830         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
7831         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
7832         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
7833         (unordered_multiset::find<>, unordered_multiset::count<>,
7834         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
7835         * include/debug/unordered_map
7836         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
7837         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
7838         * include/debug/unordered_set
7839         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
7840         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
7841         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
7842         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
7843         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
7844         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
7846 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
7848         * include/bits/stl_deque.h
7849         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
7850         a null pointer test.
7852 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
7854         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
7855         test directory after making it writable again.
7856         * testsuite/experimental/filesystem/operations/remove_all.cc:
7857         Likewise.
7859 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
7861         PR libstdc++/99021
7862         * include/std/coroutine (coroutine_handle<P>::from_address): Add
7863         noexcept.
7865 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
7867         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
7868         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
7870 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
7872         PR middle-end/98465
7873         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
7874         points to the characters moved by earlier _S_move, compute the source
7875         address using expression based on the __p pointer rather than __s
7876         pointer.
7878 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
7880         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
7881         Add comparison with same category and different values.
7882         * testsuite/19_diagnostics/error_code/operators/less.cc:
7883         Likewise. Fix comparison involving different categories.
7884         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
7885         Likewise.
7886         * testsuite/19_diagnostics/error_condition/operators/less.cc:
7887         Add comment.
7888         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
7889         Likewise.
7891 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
7893         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
7894         calls with a single vaddv for aarch64.
7896 2021-02-03  Matthias Kretz  <kretz@kde.org>
7898         * testsuite/Makefile.am: Warn about the workaround. Add
7899         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
7900         Improve initial user feedback from make check-simd.
7901         * testsuite/Makefile.in: Regenerated.
7903 2021-02-03  Matthias Kretz  <kretz@kde.org>
7905         * include/experimental/bits/simd.h: Add __detail::_Minimum and
7906         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
7907         Add hmin and hmax overloads for simd and const_where_expression.
7908         * include/experimental/bits/simd_scalar.h
7909         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
7910         parameter const-ref to allow calling _S_reduce with an rvalue.
7911         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
7912         hmin and hmax. Since the compiler statically determined that all
7913         tests pass, repeat the test after a call to make_value_unknown.
7915 2021-02-03  Matthias Kretz  <kretz@kde.org>
7917         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
7918         instruction pointer data member. Ensure that the `if (m_failed)`
7919         branch is always inlined into the calling code. The body of the
7920         conditional can still be a function call. Move the get_ip call
7921         into the verify ctor to simplify the ctor calls.
7922         (COMPARE): Don't mention the use of all_of for reduction of a
7923         simd_mask. It only distracts from the real issue.
7925 2021-02-03  Matthias Kretz  <kretz@kde.org>
7927         * testsuite/experimental/simd/driver.sh: Abstract reading test
7928         options into read_src_option function. Read skip, only,
7929         expensive, and xfail via read_src_option. Add timeout and
7930         timeout-factor options and adjust timeout variable accordingly.
7931         * testsuite/experimental/simd/tests/loadstore.cc: Set
7932         timeout-factor 2.
7934 2021-02-03  Matthias Kretz  <kretz@kde.org>
7936         * testsuite/experimental/simd/driver.sh: When handling the pipe
7937         to log (and on verbose to stdout) count the lines. If it exceeds
7938         1000 log the issue and exit 125, which is then handled as a
7939         failure.
7941 2021-02-03  Matthias Kretz  <kretz@kde.org>
7943         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
7944         markup for long double on powerpc64*.
7946 2021-02-03  Matthias Kretz  <kretz@kde.org>
7948         * include/experimental/bits/simd.h: Add __have_power10vec
7949         conditional on _ARCH_PWR10.
7950         * include/experimental/bits/simd_builtin.h: Forward declare
7951         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
7952         defined.
7953         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
7954         _SuperImpl for optimizations and correctness.
7955         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
7956         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
7957         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
7958         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
7960 2021-02-03  Matthias Kretz  <kretz@kde.org>
7962         * testsuite/experimental/simd/driver.sh: Remove executable on
7963         SIGINT. Process compiler and test executable output: In verbose
7964         mode print messages immediately, limited to 1000 lines and
7965         breaking long lines to below $COLUMNS (or 1024 if not set).
7966         Communicating the exit status of the compiler / test with the
7967         necessary pipe is done via a message through stdout/-in.
7969 2021-02-03  Matthias Kretz  <kretz@kde.org>
7971         * testsuite/Makefile.am: Ensure .simd.summary is empty before
7972         collecting a new summary.
7973         * testsuite/Makefile.in: Regenerate.
7975 2021-02-03  Matthias Kretz  <kretz@kde.org>
7977         * testsuite/experimental/simd/generate_makefile.sh: Use
7978         different variables internally than documented for user
7979         overrides. This makes internal append/prepend work as intended.
7981 2021-02-03  Matthias Kretz  <kretz@kde.org>
7983         * testsuite/experimental/simd/driver.sh (verify_test): Print
7984         test output on run xfail. Do not repeat lines from the log that
7985         were already printed on stdout.
7986         (test_selector): Make the compiler flags pattern usable as a
7987         substring selector.
7988         (toplevel): Trap on SIGINT and remove the log and sum files.
7989         Call timout with --foreground to quickly terminate on SIGINT.
7990         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
7991         targets via target patterns. Default DRIVEROPTS to -v for run
7992         targets. Remove log and sum files after completion of the run
7993         target (so that it's always recompiled).
7994         Place help text into text file for reasonable 'make help'
7995         performance.
7997 2021-02-03  Matthias Kretz  <kretz@kde.org>
7999         * include/experimental/bits/simd.h: Remove unnecessary static
8000         assertion. Allow sizeof(8) integer __intrinsic_type to enable
8001         the necessary mask type.
8003 2021-02-03  Matthias Kretz  <kretz@kde.org>
8005         * include/experimental/bits/simd.h: Let __intrinsic_type<long
8006         double, N> be valid if sizeof(long double) == sizeof(double) and
8007         use a __vector double as member type.
8009 2021-02-03  Matthias Kretz  <kretz@kde.org>
8011         * include/experimental/bits/simd.h (__is_intrinsic_type): New
8012         internal type trait. Alias for __is_vector_type on x86.
8013         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
8014         __vector_type.
8015         (__intrin_bitcast): Allow casting to & from vector & intrinsic
8016         types.
8017         (__intrinsic_type): Explicitly specialize for NEON intrinsic
8018         vector types.
8020 2021-02-03  Matthias Kretz  <kretz@kde.org>
8022         * testsuite/experimental/simd/driver.sh: Implement skip, only,
8023         expensive, and xfail markers. They can select on type, ABI tag
8024         subset number, target-triplet, and compiler flags.
8025         * testsuite/experimental/simd/generate_makefile.sh: The summary
8026         now includes lines for unexpected passes and expected failures.
8027         If the skip or only markers are only conditional on the type, do
8028         not generate rules for those types.
8029         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
8030         for ABI tag subsets 1-9.
8031         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
8032         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
8033         * testsuite/experimental/simd/tests/casts.cc: Ditto.
8034         * testsuite/experimental/simd/tests/generator.cc: Ditto.
8035         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
8036         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
8037         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
8038         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
8039         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
8040         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
8041         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
8042         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
8043         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
8044         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
8045         * testsuite/experimental/simd/tests/operators.cc: Ditto.
8046         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
8047         * testsuite/experimental/simd/tests/simd.cc: Ditto.
8048         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
8049         * testsuite/experimental/simd/tests/splits.cc: Ditto.
8050         * testsuite/experimental/simd/tests/where.cc: Ditto.
8051         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
8052         addition replace "test only floattypes" marker by unconditional
8053         "float|double|ldouble" only marker.
8054         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
8055         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
8056         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
8057         Ditto.
8058         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
8059         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
8060         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
8061         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
8062         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
8063         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
8064         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
8065         addition, xfail on run because the reference data is missing.
8067 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
8069         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
8070         * doc/xml/manual/status_cxx2014.xml: Likewise.
8071         * doc/xml/manual/status_cxx2017.xml: Likewise.
8072         * doc/html/manual/status.html: Regenerate.
8074 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
8076         PR libstdc++/70303
8077         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
8078         Return 0 if both iterators are value-initialized.
8079         * testsuite/23_containers/deque/70303.cc: New test.
8080         * testsuite/23_containers/vector/70303.cc: New test.
8082 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
8084         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
8085         status.
8086         * doc/xml/manual/status_cxx2014.xml: Likewise.
8087         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
8088         std::from_chars and std::to_chars status. Fix formatting.
8089         * doc/html/manual/status.html: Regenerate.
8091 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
8093         * include/experimental/bits/numeric_traits.h: Update copyright
8094         dates.
8095         * include/experimental/bits/simd.h: Likewise.
8096         * include/experimental/bits/simd_builtin.h: Likewise.
8097         * include/experimental/bits/simd_converter.h: Likewise.
8098         * include/experimental/bits/simd_detail.h: Likewise.
8099         * include/experimental/bits/simd_fixed_size.h: Likewise.
8100         * include/experimental/bits/simd_math.h: Likewise.
8101         * include/experimental/bits/simd_neon.h: Likewise.
8102         * include/experimental/bits/simd_ppc.h: Likewise.
8103         * include/experimental/bits/simd_scalar.h: Likewise.
8104         * include/experimental/bits/simd_x86.h: Likewise.
8105         * include/experimental/bits/simd_x86_conversions.h: Likewise.
8106         * include/experimental/simd: Likewise.
8107         * testsuite/experimental/simd/*: Likewise.
8109 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
8111         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
8112         * doc/html/*: Regenerate.
8114 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
8116         * testsuite/experimental/simd/generate_makefile.sh: Use printf
8117         instead of echo when printing escape characters.
8119 2021-01-27  Matthias Kretz  <kretz@kde.org>
8121         * scripts/check_simd: New file. This script is called from the
8122         the check-simd target. It determines a set of compiler flags and
8123         simulator setups for calling generate_makefile.sh and passes the
8124         information back to the check-simd target, which recurses to the
8125         generated Makefiles.
8126         * scripts/create_testsuite_files: Remove files below simd/tests/
8127         from testsuite_files and place them in testsuite_files_simd.
8128         * testsuite/Makefile.am: Add testsuite_files_simd. Add
8129         check-simd target.
8130         * testsuite/Makefile.in: Regenerate.
8131         * testsuite/experimental/simd/driver.sh: New file. This script
8132         compiles and runs a given simd test, logging its output and
8133         status. It uses the timeout command to implement compile and
8134         test timeouts.
8135         * testsuite/experimental/simd/generate_makefile.sh: New file.
8136         This script generates a Makefile which uses driver.sh to compile
8137         and run the tests and collect the logs into a single log file.
8138         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
8139         abs(simd).
8140         * testsuite/experimental/simd/tests/algorithms.cc: New file.
8141         Tests min/max(simd, simd).
8142         * testsuite/experimental/simd/tests/bits/conversions.h: New
8143         file. Contains functions to support tests involving conversions.
8144         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
8145         Support functions make_mask and make_vec.
8146         * testsuite/experimental/simd/tests/bits/mathreference.h: New
8147         file. Support functions to supply precomputed math function
8148         reference data.
8149         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
8150         file. Support code for SFINAE testing.
8151         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
8152         * testsuite/experimental/simd/tests/bits/test_values.h: New
8153         file. Test functions to easily drive a test with simd objects
8154         initialized from a given list of values and a range of random
8155         values.
8156         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
8157         Support code to determine the ULP distance of simd objects.
8158         * testsuite/experimental/simd/tests/bits/verify.h: New file.
8159         Test framework for COMPARE'ing simd objects and instantiating
8160         the test templates with value_type and ABI tag.
8161         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
8162         simd broadcasts.
8163         * testsuite/experimental/simd/tests/casts.cc: New file. Test
8164         simd casts.
8165         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
8166         Test floating-point classification functions.
8167         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
8168         frexp(simd).
8169         * testsuite/experimental/simd/tests/generator.cc: New file. Test
8170         simd generator constructor.
8171         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
8172         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
8173         * testsuite/experimental/simd/tests/integer_operators.cc: New
8174         file. Test integer operators.
8175         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
8176         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
8177         modf(simd).
8178         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
8179         (converting) simd loads and stores.
8180         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
8181         log*(simd).
8182         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
8183         Test simd_mask broadcasts.
8184         * testsuite/experimental/simd/tests/mask_conversions.cc: New
8185         file. Test simd_mask conversions.
8186         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
8187         file. Test simd_mask implicit conversions.
8188         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
8189         Test simd_mask loads and stores.
8190         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
8191         file. Test simd_mask operators convert as specified.
8192         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
8193         Test simd_mask compares, subscripts, and negation.
8194         * testsuite/experimental/simd/tests/mask_reductions.cc: New
8195         file. Test simd_mask reductions.
8196         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
8197         1-arg math functions on simd.
8198         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
8199         2-arg math functions on simd.
8200         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
8201         Test implicit conversions on simd binary operators behave as
8202         specified.
8203         * testsuite/experimental/simd/tests/operators.cc: New file. Test
8204         simd compares, subscripts, not, unary minus, plus, minus,
8205         multiplies, divides, increment, and decrement.
8206         * testsuite/experimental/simd/tests/reductions.cc: New file.
8207         Test reduce(simd).
8208         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
8209         remqo(simd).
8210         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
8211         sanity checks of simd types.
8212         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
8213         sin(simd) and cos(simd).
8214         * testsuite/experimental/simd/tests/split_concat.cc: New file.
8215         Test split(simd) and concat(simd, simd).
8216         * testsuite/experimental/simd/tests/splits.cc: New file. Test
8217         split(simd_mask).
8218         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
8219         Test remaining trigonometric functions on simd.
8220         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
8221         file. Test trunc(simd), ceil(simd), and floor(simd).
8222         * testsuite/experimental/simd/tests/where.cc: New file. Test
8223         masked operations using where.
8225 2021-01-27  Matthias Kretz  <kretz@kde.org>
8227         * doc/xml/manual/status_cxx2017.xml: Add implementation status
8228         of the Parallelism TS 2. Document implementation-defined types
8229         and behavior.
8230         * include/Makefile.am: Add new headers.
8231         * include/Makefile.in: Regenerate.
8232         * include/experimental/simd: New file. New header for
8233         Parallelism TS 2.
8234         * include/experimental/bits/numeric_traits.h: New file.
8235         Implementation of P1841R1 using internal naming. Addition of
8236         missing IEC559 functionality query.
8237         * include/experimental/bits/simd.h: New file. Definition of the
8238         public simd interfaces and general implementation helpers.
8239         * include/experimental/bits/simd_builtin.h: New file.
8240         Implementation of the _VecBuiltin simd_abi.
8241         * include/experimental/bits/simd_converter.h: New file. Generic
8242         simd conversions.
8243         * include/experimental/bits/simd_detail.h: New file. Internal
8244         macros for the simd implementation.
8245         * include/experimental/bits/simd_fixed_size.h: New file. Simd
8246         fixed_size ABI specific implementations.
8247         * include/experimental/bits/simd_math.h: New file. Math
8248         overloads for simd.
8249         * include/experimental/bits/simd_neon.h: New file. Simd NEON
8250         specific implementations.
8251         * include/experimental/bits/simd_ppc.h: New file. Implement bit
8252         shifts to avoid invalid results for integral types smaller than
8253         int.
8254         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
8255         ABI specific implementations.
8256         * include/experimental/bits/simd_x86.h: New file. Simd x86
8257         specific implementations.
8258         * include/experimental/bits/simd_x86_conversions.h: New file.
8259         x86 specific conversion optimizations. The conversion patterns
8260         work around missing conversion patterns in the compiler and
8261         should be removed as soon as PR85048 is resolved.
8262         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
8263         Test that all (not all fixed_size<N>, though) standard simd and
8264         simd_mask types are usable.
8265         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
8266         file. As above but with -ffast-math.
8267         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
8268         from the standard test loop. Instead use
8269         check_vect_support_and_set_flags to build simd tests with the
8270         relevant machine flags.
8272 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
8274         PR libstdc++/66414
8275         * include/bits/string_view.tcc
8276         (basic_string_view::find(const CharT*, size_type, size_type)):
8277         Optimize.
8279 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
8281         * include/bits/basic_string.h (basic_string::contains): New
8282         member functions.
8283         * include/std/string_view (basic_string_view::contains):
8284         Likewise.
8285         * include/std/version (__cpp_lib_string_contains): Define.
8286         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
8287         Remove trailing whitespace.
8288         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
8289         Likewise.
8290         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
8291         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
8292         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
8293         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
8294         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
8296 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
8298         * src/c++17/Makefile.in: Regenerate.
8300 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
8302         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
8303         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
8304         __lc_type.
8305         (const char* ctype<char>:: is): Same.
8307 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
8309         PR libstdc++/98725
8310         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
8311         write to a wide character stream if wide character support is
8312         disabled in the library.
8314 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
8316         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
8317         stringbuf not wstringbuf.
8319 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
8321         PR debug/98708
8322         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
8323         Compile with -gno-as-loc-support.
8324         * src/c++11/Makefile.in: Regenerated.
8326 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
8328         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
8329         Add -fcf-protection=none to -march=i486.
8331 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
8333         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
8334         compliant.
8336 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
8338         * testsuite/30_threads/future/members/poll.cc: Calibrate
8339         iteration count.
8341 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
8343         PR libstdc++/98466
8344         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
8345         (_Node_iterator()): Make default.
8346         (_Node_const_iterator()): Make default.
8347         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
8348         iterator checks.
8349         * include/debug/safe_iterator.h
8350         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
8351         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
8352         Likewise.
8353         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
8354         _M_singular checks on input iterators.
8355         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
8356         checks.
8357         * testsuite/23_containers/deque/debug/98466.cc: New test.
8358         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
8360 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
8362         PR libstdc++/98471
8363         * include/bits/fs_path.h (__throw_conversion_error): New
8364         function to throw or abort on character conversion errors.
8365         (__wstr_from_utf8): Move definition after filesystem_error has
8366         been defined. Use __throw_conversion_error.
8367         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
8368         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
8369         (path::u8string): Likewise.
8371 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
8373         * include/std/barrier: Update copyright years. Fix whitespace.
8374         * include/std/version: Fix whitespace.
8375         * testsuite/30_threads/barrier/1.cc: Update copyright years.
8376         * testsuite/30_threads/barrier/2.cc: Likewise.
8377         * testsuite/30_threads/barrier/arrive.cc: Likewise.
8378         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8379         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8380         * testsuite/30_threads/barrier/completion.cc: Likewise.
8382 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
8384         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
8386 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
8388         PR libstdc++/98613
8389         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
8390         warning.
8391         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
8393 2021-01-08  Olivier Hainque  <hainque@adacore.com>
8395         * testsuite/20_util/bind/ref_neg.cc: Tweak the
8396         dg-prune-output regex for out-of-build-tree contexts.
8398 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
8400         * doc/doxygen/user.cfg.in: Add new header.
8401         * include/Makefile.am (std_headers): likewise.
8402         * include/Makefile.in: Regenerate.
8403         * include/precompiled/stdc++.h: Add new header.
8404         * include/std/barrier: New file.
8405         * include/std/version: Add __cpp_lib_barrier feature test macro.
8406         * testsuite/30_threads/barrier/1.cc: New test.
8407         * testsuite/30_threads/barrier/2.cc: Likewise.
8408         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8409         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8410         * testsuite/30_threads/barrier/arrive.cc: Likewise.
8411         * testsuite/30_threads/barrier/completion.cc: Likewise.
8413 2021-01-07  Patrick Palka  <ppalka@redhat.com>
8415         PR libstdc++/98384
8416         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
8417         instead of the non-standard nextupl and nextdownl.
8419 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
8421         * configure: Re-generate.
8423 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
8425         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
8427 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
8429         * ChangeLog-2020: Rotate ChangeLog.  New file.
8432 Copyright (C) 2021 Free Software Foundation, Inc.
8434 Copying and distribution of this file, with or without modification,
8435 are permitted in any medium without royalty provided the copyright
8436 notice and this notice are preserved.