1 2021-11-14 François Dumont <fdumont@gcc.gnu.org>
3 * include/debug/safe_container.h (_Safe_container<>::_M_safe): Remove.
4 * include/debug/deque (deque::operator=(initializer_list<>)): Replace
5 _M_base() call with _Base:: call.
6 (deque::operator[](size_type)): Likewise.
7 * include/debug/forward_list (forward_list(forward_list&&, const allocator_type&)):
8 Remove _M_safe() and _M_base() calls.
9 (forward_list::operator=(initializer_list<>)): Remove _M_base() calls.
10 (forward_list::splice_after, forward_list::merge): Likewise.
11 * include/debug/list (list(list&&, const allocator_type&)):
12 Remove _M_safe() and _M_base() calls.
13 (list::operator=(initializer_list<>)): Remove _M_base() calls.
14 (list::splice, list::merge): Likewise.
15 * include/debug/map.h (map(map&&, const allocator_type&)):
16 Remove _M_safe() and _M_base() calls.
17 (map::operator=(initializer_list<>)): Remove _M_base() calls.
18 * include/debug/multimap.h (multimap(multimap&&, const allocator_type&)):
19 Remove _M_safe() and _M_base() calls.
20 (multimap::operator=(initializer_list<>)): Remove _M_base() calls.
21 * include/debug/set.h (set(set&&, const allocator_type&)):
22 Remove _M_safe() and _M_base() calls.
23 (set::operator=(initializer_list<>)): Remove _M_base() calls.
24 * include/debug/multiset.h (multiset(multiset&&, const allocator_type&)):
25 Remove _M_safe() and _M_base() calls.
26 (multiset::operator=(initializer_list<>)): Remove _M_base() calls.
27 * include/debug/string (basic_string(basic_string&&, const allocator_type&)):
28 Remove _M_safe() and _M_base() calls.
29 (basic_string::operator=(initializer_list<>)): Remove _M_base() call.
30 (basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise.
31 (basic_string::operator[](size_type), basic_string::operator+=(const basic_string&)):
33 (basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise.
34 * include/debug/unordered_map (unordered_map(unordered_map&&, const allocator_type&)):
35 Remove _M_safe() and _M_base() calls.
36 (unordered_map::operator=(initializer_list<>), unordered_map::merge):
37 Remove _M_base() calls.
38 (unordered_multimap(unordered_multimap&&, const allocator_type&)):
39 Remove _M_safe() and _M_base() calls.
40 (unordered_multimap::operator=(initializer_list<>), unordered_multimap::merge):
41 Remove _M_base() calls.
42 * include/debug/unordered_set (unordered_set(unordered_set&&, const allocator_type&)):
43 Remove _M_safe() and _M_base() calls.
44 (unordered_set::operator=(initializer_list<>), unordered_set::merge):
45 Remove _M_base() calls.
46 (unordered_multiset(unordered_multiset&&, const allocator_type&)):
47 Remove _M_safe() and _M_base() calls.
48 (unordered_multiset::operator=(initializer_list<>), unordered_multiset::merge):
49 Remove _M_base() calls.
50 * include/debug/vector (vector(vector&&, const allocator_type&)):
51 Remove _M_safe() and _M_base() calls.
52 (vector::operator=(initializer_list<>)): Remove _M_base() calls.
53 (vector::operator[](size_type)): Likewise.
55 2021-11-13 Jonathan Wakely <jwakely@redhat.com>
57 * include/Makefile.am: Add spanstream header.
58 * include/Makefile.in: Regenerate.
59 * include/precompiled/stdc++.h: Add spanstream header.
60 * include/std/version (__cpp_lib_spanstream): Define.
61 * include/std/spanstream: New file.
62 * testsuite/27_io/spanstream/1.cc: New test.
63 * testsuite/27_io/spanstream/version.cc: New test.
65 2021-11-13 Hans-Peter Nilsson <hp@axis.com>
68 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
69 Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_COMPILE.
70 * configure: Regenerate.
72 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
75 * acinclude.m4 (libtool_VERSION): Bump version.
76 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and
78 * configure: Regenerate.
79 * include/bits/c++config (__replacement_assert): Remove, declare
80 __glibcxx_assert_fail instead.
81 * src/c++11/debug.cc (__glibcxx_assert_fail): New function to
82 replace __replacement_assert, writing to stderr instead of
84 * testsuite/util/testsuite_abi.cc: Update latest version.
86 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
87 Josh Marshall <joshua.r.marshall.1991@gmail.com>
89 * include/bits/alloc_traits.h (_Destroy): Make constexpr for
91 * include/bits/allocator.h (__shrink_to_fit::_S_do_it):
93 * include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator
94 overload constexpr for C++20.
95 * include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out
97 (_Bit_reference, _Bit_iterator_base, _Bit_iterator)
98 (_Bit_const_iterator, _Bvector_impl_data, _Bvector_base)
99 (vector<bool, A>>): Add constexpr to every member function.
100 (_Bvector_base::_M_allocate): Initialize storage during constant
102 (vector<bool, A>::_M_initialize_value): Use __fill_bvector_n
104 (__fill_bvector_n): New helper function to replace memset during
106 * include/bits/stl_uninitialized.h (__uninitialized_copy<false>):
108 (__do_uninit_copy): New function.
109 (__uninitialized_fill<false>): Move logic to ...
110 (__do_uninit_fill): New function.
111 (__uninitialized_fill_n<false>): Move logic to ...
112 (__do_uninit_fill_n): New function.
113 (__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy.
114 (__uninitialized_move_a, __uninitialized_move_if_noexcept_a):
116 (__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill.
117 (__uninitialized_fill_n_a): Add constexpr. Use
119 (__uninitialized_default_n, __uninitialized_default_n_a)
120 (__relocate_a_1, __relocate_a): Add constexpr.
121 * include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl)
122 (_Vector_base, vector): Add constexpr to every member function.
123 (_Vector_impl::_S_adjust): Disable ASan annotation during
125 (_Vector_base::_S_use_relocate): Disable bitwise-relocation
126 during constant evaluation.
127 (vector::_Temporary_value): Use a union for storage.
128 * include/bits/vector.tcc (vector, vector<bool>): Add constexpr
129 to every member function.
130 * include/std/vector (erase_if, erase): Add constexpr.
131 * testsuite/23_containers/headers/vector/synopsis.cc: Add
132 constexpr for C++20 mode.
133 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to
134 compile-only test using constant expressions.
135 * testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust
136 namespace for _S_word_bit.
137 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
139 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
140 * testsuite/23_containers/vector/cons/89164.cc: Adjust errors
141 for C++20 and move C++17 test to ...
142 * testsuite/23_containers/vector/cons/89164_c++17.cc: ... here.
143 * testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test.
144 * testsuite/23_containers/vector/bool/cons/constexpr.cc: New test.
145 * testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test.
146 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test.
147 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test.
148 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test.
149 * testsuite/23_containers/vector/capacity/constexpr.cc: New test.
150 * testsuite/23_containers/vector/cons/constexpr.cc: New test.
151 * testsuite/23_containers/vector/data_access/constexpr.cc: New test.
152 * testsuite/23_containers/vector/element_access/constexpr.cc: New test.
153 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test.
154 * testsuite/23_containers/vector/modifiers/constexpr.cc: New test.
155 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test.
157 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
159 * include/debug/deque (deque::operator=(const deque&)): Remove
161 * include/debug/list (list::operator=(const list&)): Likewise.
162 * include/debug/map.h (map::operator=(const map&)): Likewise.
163 * include/debug/multimap.h (multimap::operator=(const multimap&)):
165 * include/debug/multiset.h (multiset::operator=(const multiset&)):
167 * include/debug/set.h (set::operator=(const set&)): Likewise.
168 * include/debug/string (basic_string::operator=(const basic_string&)):
170 * include/debug/vector (vector::operator=(const vector&)):
172 (_Safe_vector::operator=(const _Safe_vector&)): Define for
175 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
177 * include/std/memory_resource (memory_resource::allocate):
178 Implicitly create objects in the returned storage.
180 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
182 * include/bits/stl_bvector.h (vector<bool>::data()): Give
183 protected access, and delete for C++11 and later.
185 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
188 * testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list
189 all C++ headers instead of including <bits/stdc++.h>
191 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
195 * config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
196 Define for glibc 2.34 and later.
198 2021-11-09 François Dumont <fdumont@gcc.gnu.org>
200 * include/bits/hashtable_policy.h (__distance_fw): Replace class keyword with
202 * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Remove noexcept
203 qualification. Use const_iterator for node extraction/reinsert.
204 (_Hashtable<>::_M_merge_multi): Likewise. Compute new hash code before extract.
205 * include/debug/safe_container.h (_Safe_container<>): Make all methods
207 * include/debug/safe_unordered_container.h
208 (_Safe_unordered_container<>::_UContInvalidatePred<_ExtractKey, _Source>): New.
209 (_Safe_unordered_container<>::_UMContInvalidatePred<_ExtractKey, _Source>): New.
210 (_Safe_unordered_container<>::_UContMergeGuard<_Source, _InvalidatePred>): New.
211 (_Safe_unordered_container<>::_S_uc_guard<_ExtractKey, _Source>): New.
212 (_Safe_unordered_container<>::_S_umc_guard<_ExtractKey, _Source>): New.
213 (_Safe_unordered_container<>::_M_invalide_all): Make public.
214 (_Safe_unordered_container<>::_M_invalide_if): Likewise.
215 (_Safe_unordered_container<>::_M_invalide_local_if): Likewise.
216 * include/debug/unordered_map
217 (unordered_map<>::mapped_type, pointer, const_pointer): New typedef.
218 (unordered_map<>::reference, const_reference, difference_type): New typedef.
219 (unordered_map<>::get_allocator, empty, size, max_size): Add usings.
220 (unordered_map<>::bucket_count, max_bucket_count, bucket): Add usings.
221 (unordered_map<>::hash_function, key_equal, count, contains): Add usings.
222 (unordered_map<>::operator[], at, rehash, reserve): Add usings.
223 (unordered_map<>::merge): New.
224 (unordered_multimap<>::mapped_type, pointer, const_pointer): New typedef.
225 (unordered_multimap<>::reference, const_reference, difference_type): New typedef.
226 (unordered_multimap<>::get_allocator, empty, size, max_size): Add usings.
227 (unordered_multimap<>::bucket_count, max_bucket_count, bucket): Add usings.
228 (unordered_multimap<>::hash_function, key_equal, count, contains): Add usings.
229 (unordered_multimap<>::rehash, reserve): Add usings.
230 (unordered_multimap<>::merge): New.
231 * include/debug/unordered_set
232 (unordered_set<>::mapped_type, pointer, const_pointer): New typedef.
233 (unordered_set<>::reference, const_reference, difference_type): New typedef.
234 (unordered_set<>::get_allocator, empty, size, max_size): Add usings.
235 (unordered_set<>::bucket_count, max_bucket_count, bucket): Add usings.
236 (unordered_set<>::hash_function, key_equal, count, contains): Add usings.
237 (unordered_set<>::rehash, reserve): Add usings.
238 (unordered_set<>::merge): New.
239 (unordered_multiset<>::mapped_type, pointer, const_pointer): New typedef.
240 (unordered_multiset<>::reference, const_reference, difference_type): New typedef.
241 (unordered_multiset<>::get_allocator, empty, size, max_size): Add usings.
242 (unordered_multiset<>::bucket_count, max_bucket_count, bucket): Add usings.
243 (unordered_multiset<>::hash_function, key_equal, count, contains): Add usings.
244 (unordered_multiset<>::rehash, reserve): Add usings.
245 (unordered_multiset<>::merge): New.
246 * testsuite/23_containers/unordered_map/debug/merge1_neg.cc: New test.
247 * testsuite/23_containers/unordered_map/debug/merge2_neg.cc: New test.
248 * testsuite/23_containers/unordered_map/debug/merge3_neg.cc: New test.
249 * testsuite/23_containers/unordered_map/debug/merge4_neg.cc: New test.
250 * testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc: New test.
251 * testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc: New test.
252 * testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc: New test.
253 * testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc: New test.
254 * testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc: New test.
255 * testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc: New test.
256 * testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc: New test.
257 * testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc: New test.
258 * testsuite/23_containers/unordered_set/debug/merge1_neg.cc: New test.
259 * testsuite/23_containers/unordered_set/debug/merge2_neg.cc: New test.
260 * testsuite/23_containers/unordered_set/debug/merge3_neg.cc: New test.
261 * testsuite/23_containers/unordered_set/debug/merge4_neg.cc: New test.
262 * testsuite/util/testsuite_abi.h: [_GLIBCXX_DEBUG] Use normal unordered
263 container implementation.
265 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
267 * testsuite/26_numerics/random/random_device/cons/token.cc:
268 Print results of random_device_available checks.
270 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
273 * src/c++11/random.cc: Check __powerpc64__ not __powerpc__.
275 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
277 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
279 * configure.ac (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
281 * config.h.in: Regenerate.
282 * configure: Regenerate.
283 * src/c++11/random.cc (random_device): Add getentropy and
284 arc4random as sources.
285 * testsuite/26_numerics/random/random_device/cons/token.cc:
287 * testsuite/26_numerics/random/random_device/entropy.cc:
290 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
292 * testsuite/26_numerics/random/random_device/cons/token.cc:
293 Retry if random devices produce the same value.
295 2021-11-09 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
297 * config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only
298 define for VxWorks >= 6.6.
300 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
302 * include/bits/range_access.h (begin(valarray), end(valarray)):
305 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
307 * include/std/tuple (tuple_size_v): Fix pack expansion.
309 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
311 * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
312 [[unlikely]] attribute.
314 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
316 * src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
317 (__ppc_darn): New function to use POWER9 DARN instruction.
318 (Which): Add 'darn' enumerator.
319 (which_source): Check for __ppc_darn.
320 (random_device::_M_init): Support "darn" and "hw" tokens.
321 (random_device::_M_getentropy): Add darn to switch.
322 * testsuite/26_numerics/random/random_device/cons/token.cc:
324 * testsuite/26_numerics/random/random_device/entropy.cc:
327 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
329 * testsuite/lib/gdb-test.exp: Add target selector support to the
331 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
333 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
334 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
337 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
340 * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
341 for accessing the tuple element stored in a _Tuple_impl node.
342 (tuple_get): New function for accessing a tuple element.
343 (unique_ptr_get): New function for accessing a unique_ptr.
344 (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
345 * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
346 tuple to its base class before accessing _M_head_impl.
348 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
350 * doc/xml/manual/evolution.xml: Document deprecations.
351 * doc/html/*: Regenerate.
352 * libsupc++/exception (unexpected_handler, unexpected)
353 (get_unexpected, set_unexpected): Add deprecated attribute.
354 Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
355 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
357 * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
358 * libsupc++/eh_terminate.cc: Likewise.
359 * libsupc++/eh_throw.cc (__cxa_init_primary_exception):
361 * libsupc++/unwind-cxx.h (struct __cxa_exception): Use
362 terminate_handler instead of unexpected_handler.
363 (struct __cxa_dependent_exception): Likewise.
364 (__unexpected): Likewise.
365 * testsuite/18_support/headers/exception/synopsis.cc: Add
366 dg-warning for deprecated warning.
367 * testsuite/18_support/exception_ptr/60612-unexpected.cc:
368 Disable deprecated warnings.
369 * testsuite/18_support/set_unexpected.cc: Likewise.
370 * testsuite/18_support/unexpected_handler.cc: Likewise.
372 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
374 * include/bits/utility.h (__find_uniq_type_in_pack): Move
375 definition to here, ...
376 * include/std/tuple (__find_uniq_type_in_pack): ... from here.
377 * include/std/variant (__detail__variant::__index_of): Remove.
378 (__detail::__variant::__exactly_once): Define using
379 __find_uniq_type_in_pack instead of __index_of.
380 (get<T>, get_if<T>, variant::__index_of): Likewise.
382 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
384 * include/bits/stl_pair.h (tuple_size_v): Define partial
385 specializations for std::pair.
386 * include/bits/utility.h (_Nth_type): Move definition here
387 and define primary template.
388 (tuple_size_v): Move definition here.
389 * include/std/array (tuple_size_v): Define partial
390 specializations for std::array.
391 * include/std/tuple (tuple_size_v): Move primary template to
392 <bits/utility.h>. Define partial specializations for
394 (tuple_element): Change definition to use _Nth_type.
395 * include/std/variant (_Nth_type): Move to <bits/utility.h>.
396 (variant_alternative, variant): Adjust qualification of
398 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
399 additional errors from _Nth_type.
401 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
403 * include/std/variant (__detail::__variant::__emplace): New
405 (_Copy_assign_base::operator=): Reorder conditions to match
406 bulleted list of effects in the standard. Use __emplace instead
407 of _M_reset followed by _Construct.
408 (_Move_assign_base::operator=): Likewise.
409 (__construct_by_index): Remove.
410 (variant::emplace): Use __emplace instead of _M_reset followed
411 by __construct_by_index.
412 (variant::swap): Hoist valueless cases out of visitor. Use
413 __emplace to replace _M_reset followed by _Construct.
415 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
417 * include/std/variant (_Nth_type): Define partial
418 specializations to reduce number of instantiations.
419 (variant_size_v): Define partial specializations to avoid
421 (variant_alternative): Use _Nth_type. Add static assert.
422 (__tuple_count, __tuple_count_v): Replace with ...
423 (__count): New variable template.
424 (_Variant_union): Add deleted constructor.
425 (variant::__to_type): Use _Nth_type.
426 (variant::emplace): Use _Nth_type. Add deleted overloads for
427 invalid types and indices.
429 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
432 * include/std/variant (_Variant_storage::__index_of): Remove.
433 (__variant_construct_single): Remove.
434 (__variant_construct): Remove.
435 (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
436 construction directly instead of using __variant_construct.
437 (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
438 (_Move_ctor_base::_M_destructive_move()): Remove.
439 (_Move_ctor_base::_M_destructive_copy()): Remove.
440 (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
441 construction directly instead of using _M_destructive_copy.
442 (variant::swap): Do construction directly instead of using
444 * testsuite/20_util/variant/102912.cc: New test.
446 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
449 * include/bits/list.tcc (list::sort): Use mutable iterators for
451 * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
452 * testsuite/23_containers/list/operations/66742.cc: Check
453 non-const comparisons.
455 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
457 * include/std/valarray (valarray::valarray()): Add noexcept.
458 (valarray::operator[]): Likewise.
460 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
462 * include/debug/stl_iterator.h (__valid_range): Add constexpr
463 for C++20. Qualify call to avoid ADL.
464 (__get_distance, __can_advance, __unsafe, __base): Likewise.
465 * testsuite/25_algorithms/move/constexpr.cc: Also check with
466 std::reverse_iterator arguments.
468 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
470 * include/std/span (span(Range&&)): Reorder constraints.
472 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
475 * include/std/valarray (begin, end): Do not dereference an empty
476 valarray. Add noexcept and [[nodiscard]].
477 * testsuite/26_numerics/valarray/range_access.cc: Check empty
478 valarray. Check iterator properties. Run as well as compiling.
479 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
480 * testsuite/26_numerics/valarray/103022.cc: New test.
482 2021-10-29 Jonathan Wakely <jwakely@redhat.com>
484 * testsuite/23_containers/stack/deduction.cc: Fix typo.
486 2021-10-26 Martin Sebor <msebor@redhat.com>
488 * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
490 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.
492 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
494 * testsuite/28_regex/basic_regex/84110.cc (test01)
495 [__cpp_exceptions]: Disambiguate extended.
497 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
499 * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.
501 2021-10-22 Jonathan Wakely <jwakely@redhat.com>
504 * include/std/any (make_any): Add SFINAE constraint.
505 * testsuite/20_util/any/102894.cc: New test.
507 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
509 * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
511 * scripts/run_doxygen: Fix post-processing of #include
512 directives in man pages. Use new xg++ to compile helper program.
514 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
516 * include/bits/mofunc_impl.h: Add doxygen comments.
517 * include/std/functional: Likewise.
519 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
521 * include/bits/alloc_traits.h: Suppress doxygen documentation.
522 * include/bits/allocated_ptr.h: Likewise.
523 * include/bits/enable_special_members.h: Likewise.
524 * include/bits/hashtable.h: Likewise.
525 * include/bits/hashtable_policy.h: Likewise.
526 * include/bits/uses_allocator.h: Likewise.
527 * include/bits/node_handle.h: Document node handles and suppress
528 documentation for protected members.
529 * include/std/any: Suppress documentation for implementation
532 2021-10-21 Patrick Palka <ppalka@redhat.com>
535 * include/bits/stl_iterator.h (__niter_base): Make constexpr
537 (__miter_base): Likewise.
538 * testsuite/25_algorithms/move/constexpr.cc: New test.
540 2021-10-21 Patrick Palka <ppalka@redhat.com>
542 * include/std/ranges (istream_view): Replace this function
543 template with an alias template as per P2432R1.
544 (wistream_view): Define as per P2432R1.
545 (views::_Istream, views::istream): Likewise.
546 * testsuite/std/ranges/istream_view.cc (test07): New test.
548 2021-10-21 Patrick Palka <ppalka@redhat.com>
550 * include/bits/ranges_util.h (views::_Drop): Forward declare.
551 (subrange): Befriend views::_Drop.
552 (subrange::_S_store_size): Declare constexpr instead of just
553 const, remove obsolete comment.
554 * include/std/ranges (views::__detail::__is_empty_view): Define.
555 (views::__detail::__is_basic_string_view): Likewise.
556 (views::__detail::__is_subrange): Likewise.
557 (views::__detail::__is_iota_view): Likewise.
558 (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
559 (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
560 and fix it to range_difference_t<_Range>. Implement P1739R4 and
562 (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
563 (views::_Drop): As with views::_Take.
564 (views::_Counted): Implement P1739R4 changes.
565 * include/std/span (__detail::__is_std_span): Rename to ...
566 (__detail::__is_span): ... this and turn it into a variable
568 (__detail::__is_std_array): Turn it into a variable template.
569 (span::span): Adjust uses of __is_std_span and __is_std_array
571 * testsuite/std/ranges/adaptors/p1739.cc: New test.
573 2021-10-21 Patrick Palka <ppalka@redhat.com>
575 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
576 Make fully constexpr as per LWG 3595.
577 (common_iterator::__postfix_proxy): Likewise.
579 2021-10-21 Patrick Palka <ppalka@redhat.com>
581 * include/std/ranges (lazy_split_view::base): Add forward_range
582 constraint as per LWG 3591.
583 (lazy_split_view::begin, lazy_split_view::end): Also check
584 simpleness of _Pattern as per LWG 3592.
585 (split_view::base): Relax copyable constraint as per LWG 3590.
587 2021-10-21 Patrick Palka <ppalka@redhat.com>
589 * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
590 criteria for returning bidirectional_iterator_tag as per LWG 3535.
591 (join_view::_Iterator::_S_iter_concept): Likewise.
593 2021-10-21 Patrick Palka <ppalka@redhat.com>
595 * include/bits/ranges_base.h (viewable_range): Adjust as per
597 * testsuite/std/ranges/adaptors/all.cc (test07): New test.
599 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
602 * include/std/optional (optional::and_then, optional::transform):
603 Remove requires-clause.
604 * testsuite/20_util/optional/monadic/and_then.cc: Check
605 overload resolution doesn't cause errors.
606 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
608 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
610 * testsuite/20_util/optional/monadic/transform.cc: Check that
611 an rvalue result is not materialized too soon.
613 2021-10-19 Patrick Palka <ppalka@redhat.com>
615 * include/std/ranges (iota_view::_Iterator::operator+): Adjust
616 definition as per LWG 3580.
617 (iota_view::_Iterator::operator-): Likewise.
619 2021-10-19 Patrick Palka <ppalka@redhat.com>
621 * include/std/ranges (basic_istream_view::_M_object): Value
622 initialize as per LWG 3568.
624 2021-10-19 Patrick Palka <ppalka@redhat.com>
626 * include/bits/ranges_util.h
627 (__detail::__uses_nonqualification_pointer_conversion): Define
629 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
630 * testsuite/std/ranges/subrange/1.cc: New test.
632 2021-10-19 Patrick Palka <ppalka@redhat.com>
634 * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
635 (iota_view::_Sentinel): Likewise.
636 (iota_view::iota_view): Add three overloads, each taking an
637 iterator/sentinel pair as per LWG 3523.
638 * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
640 2021-10-19 Patrick Palka <ppalka@redhat.com>
642 * include/bits/ranges_base.h (view_interface): Forward declare.
643 (__detail::__is_derived_from_view_interface_fn): Declare.
644 (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
645 (enable_view): Adjust as per LWG 3549.
646 * include/bits/ranges_util.h (view_interface): Don't derive from
648 * include/std/ranges (filter_view): Revert r11-3504 change.
649 (transform_view): Likewise.
650 (take_view): Likewise.
651 (take_while_view): Likewise.
652 (drop_view): Likewise.
653 (drop_while_view): Likewise.
654 (join_view): Likewise.
655 (lazy_split_view): Likewise.
656 (split_view): Likewise.
657 (reverse_view): Likewise.
658 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
659 * testsuite/std/ranges/view.cc (test_view::test_view): Remove
660 this default ctor since views no longer need to be default initable.
663 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
665 * src/c++11/random.cc (which_source): New helper function.
666 (random_device::_M_getentropy()): Use which_source and return
667 suitable values for sources other than device files.
668 * testsuite/26_numerics/random/random_device/entropy.cc: New test.
670 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
672 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
673 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
674 relative ${top_srcdir}.
675 * doc/Makefile.in: Regenerate.
677 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
679 * include/std/variant (_Uninitialized): Use an empty struct
680 for the unused union member, instead of char.
682 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
684 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
685 non-deducible template parameter from deduction guide.
686 * testsuite/23_containers/stack/deduction.cc: Check new C++23
689 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
691 * include/std/optional (_Optional_payload_base::_Storage): Add
692 constructor taking a callable function to invoke.
693 (_Optional_payload_base::_M_apply): New function.
694 (__cpp_lib_monadic_optional): Define for C++23.
695 (optional::and_then, optional::transform, optional::or_else):
697 * include/std/ranges (__detail::__cached): Remove.
698 (__detail::__non_propagating_cache): Remove use of __cached for
699 contained value. Use _Optional_payload_base::_M_construct and
700 _Optional_payload_base::_M_apply to set the contained value.
701 * include/std/version (__cpp_lib_monadic_optional): Define.
702 * testsuite/20_util/optional/monadic/and_then.cc: New test.
703 * testsuite/20_util/optional/monadic/or_else.cc: New test.
704 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
705 * testsuite/20_util/optional/monadic/transform.cc: New test.
706 * testsuite/20_util/optional/monadic/version.cc: New test.
708 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
711 * include/bits/mofunc_impl.h (move_only_function): Remove
712 invalid base initializer.
713 * testsuite/20_util/move_only_function/cons.cc: Instantiate
714 constructors to check bodies.
716 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
718 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
719 call to function with deduced return type.
721 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
723 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
725 (basic_string::resize_and_overwrite): Declare.
726 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
728 * include/std/version (__cpp_lib_resize_and_overwrite): Define
730 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
733 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
736 * include/std/ranges (__cached): New wrapper struct.
737 (__non_propagating_cache): Use __cached for contained value.
738 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
739 std::construct_at instead of placement new.
740 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
742 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
744 * include/std/variant (__cpp_lib_variant): Update value for
746 (__variant_cast, __variant_construct): Add constexpr for C++20.
747 (__variant_construct_single, __construct_by_index) Likewise. Use
748 std::_Construct instead of placement new.
749 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
750 buffer with a union and define a destructor.
751 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
752 for non-trivial destruction.
753 (_Variant_storage::__index_of): New helper variable template.
754 (_Variant_storage::~_Variant_storage()): Add constexpr.
755 (_Variant_storage::_M_reset()): Likewise.
756 (_Copy_ctor_base, _Move_ctor_base): Likewise.
757 (_Copy_assign_base, _Move_assign_base): Likewise.
758 (variant, swap): Likewise.
759 * include/std/version (__cpp_lib_variant): Update value for
761 * testsuite/20_util/optional/version.cc: Check for exact value
763 * testsuite/20_util/variant/87619.cc: Increase timeout for
765 * testsuite/20_util/variant/constexpr.cc: New test.
766 * testsuite/20_util/variant/version.cc: New test.
768 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
770 * include/std/variant (__detail::__variant::__get_storage):
771 Remove unused function.
772 (__variant_construct_by_index): Set index after construction is
773 complete. Rename to ...
774 (__detail::__variant::__construct_by_index): ... this.
775 (variant): Use new name for __variant_construct_by_index friend
776 declaration. Remove __get_storage friend declaration.
777 (variant::emplace): Use new name and remove try-blocks.
779 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
781 * include/std/variant (_Variant_storage::_M_storage()): Remove.
782 (__detail::__variant::__get_storage): Remove.
783 (variant): Remove friend declaration of __get_storage.
785 2021-10-15 Jason Merrill <jason@redhat.com>
787 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
788 * testsuite/20_util/integer_comparisons/greater_neg.cc:
789 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
790 Adjust expected message.
791 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
793 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
795 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
796 Rename to __get_n and remove first argument. Replace pair of
797 overloads with a single function using 'if constexpr'.
798 (__variant::__get(Variant&&)): Adjust to use __get_n.
800 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
802 * include/bits/fs_path.h (path(path&&)): Make unconditionally
804 (path::_S_convert(T)): Add condtional noexcept.
806 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
809 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
810 for returning the same string unchanged.
812 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
814 * include/bits/regex.h: Check __cpp_inline_variables instead of
817 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
819 * testsuite/20_util/is_layout_compatible/version.cc: Check
822 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
824 * include/bits/stl_construct.h (_Construct): Use
825 std::construct_at when constant evaluated.
826 * include/std/optional (_Storage, _Optional_payload, optional):
827 Add constexpr as specified by P2231R1.
828 * include/std/version (__cpp_lib_optional): Update value for
830 * testsuite/20_util/optional/requirements.cc: Check feature test
832 * testsuite/20_util/optional/constexpr/assign.cc: New test.
833 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
834 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
835 * testsuite/20_util/optional/constexpr/swap.cc: New test.
836 * testsuite/20_util/optional/version.cc: New test.
838 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
840 * include/bits/fs_path.h (__detail::__is_contiguous): Add
841 partial specializations for pointers and __normal_iterator.
843 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
845 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
846 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
847 * testsuite/28_regex/match_results/102667.C: Moved to...
848 * testsuite/28_regex/match_results/102667.cc: ...here.
850 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
852 * include/bits/fs_path.h (__detail::__is_contiguous): New
853 variable template to identify contiguous iterators.
854 (__detail::__unified_char8_t): New alias template to decide when
855 to treat char8_t as char without encoding conversion.
856 (__detail::__effective_range(const basic_string<C,T>&)): Use
857 std::char_traits<C> for returned string view.
858 (__detail::__effective_range(const basic_string_view<C,T>&)):
860 (__detail::__effective_range(const Source&)): Use
861 __is_contiguous to detect mode cases of contiguous iterators.
862 Use __unified_char8_t to return a std::string instead of
865 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
868 * include/bits/fs_path.h (path::path(Iter, Iter, format))
869 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
870 __string_from_range directly, instead of two-argument overload
872 (path::_S_convert(Iter, Iter)): Remove.
873 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
875 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
877 * include/bits/c++config (__terminate): Add extern "C++".
879 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
881 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
882 Restore test for operator<.
883 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
884 Adjust expected errors for C++20.
886 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
889 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
891 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
892 array elements before the last element.
894 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
896 * include/bits/stl_iterator_base_funcs.h (__advance): Add
897 deleted overload to improve diagnostics.
898 (__distance): Likewise.
900 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
902 * include/bits/atomic_timed_wait.h: Remove unused header.
903 * include/bits/c++config (std:__terminate): Define.
904 * include/bits/semaphore_base.h: Remove <exception> and use
905 __terminate instead of terminate.
906 * include/bits/std_thread.h: Likewise.
907 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
908 to call __cxxabiv1::__terminate.
910 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
912 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
913 std::__to_address by using poitner directly or using base()
914 member of __normal_iterator.
916 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
918 * testsuite/18_support/numeric_limits/lowest.cc: Use
919 numeric_limits<T>::is_integer instead of is_integral<T>::value.
921 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
924 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
925 Add __glibcxx_requires_string_len assertion.
926 (basic_regex::assign(InputIterator, InputIterator)): Add
927 __glibcxx_requires_valid_range assertion.
928 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
929 (_Scanner::_M_scan_normal()): Use string literal in assertions.
931 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
934 * include/bits/regex.h (match_result::empty()): Optimize by
935 calling the base function directly.
936 (match_results::end()): Check _Base_type::empty() not empty().
937 * testsuite/28_regex/match_results/102667.C: New test.
939 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
942 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
943 _GLIBCXX_USE_WCHAR_T.
944 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
945 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
946 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
947 _GLIBCXX_USE_WCHAR_T.
948 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
949 char_traits<wchar_t>::length instead of wcslen.
950 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
952 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
953 * testsuite/20_util/is_compound/value.cc: Likewise.
954 * testsuite/20_util/is_floating_point/value.cc: Likewise.
955 * testsuite/20_util/is_fundamental/value.cc: Likewise.
956 * testsuite/20_util/is_integral/value.cc: Likewise.
957 * testsuite/20_util/is_signed/value.cc: Likewise.
958 * testsuite/20_util/is_unsigned/value.cc: Likewise.
959 * testsuite/20_util/is_void/value.cc: Likewise.
960 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
962 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
964 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
966 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
968 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
970 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
972 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
974 * testsuite/20_util/to_chars/3.cc: Likewise.
975 * testsuite/20_util/type_identity/requirements/typedefs.cc:
977 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
978 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
979 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
981 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
982 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
984 * testsuite/21_strings/basic_string/literals/values.cc:
986 * testsuite/21_strings/basic_string/modifiers/64422.cc:
988 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
990 * testsuite/21_strings/basic_string/requirements/citerators.cc:
992 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
994 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
996 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
998 * testsuite/21_strings/basic_string_view/literals/types.cc:
1000 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
1002 * testsuite/21_strings/basic_string_view/literals/values.cc:
1004 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1006 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1007 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
1009 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1011 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
1013 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
1014 * testsuite/25_algorithms/fill/4.cc: Likewise.
1015 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
1016 * testsuite/experimental/functional/searchers.cc: Likewise. Use
1017 char_traits<wchar_t>::length instead of wcslen.
1018 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1020 * testsuite/experimental/string_view/literals/types-char8_t.cc:
1022 * testsuite/experimental/string_view/literals/types.cc:
1024 * testsuite/experimental/string_view/literals/values-char8_t.cc:
1026 * testsuite/experimental/string_view/literals/values.cc:
1028 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1030 * testsuite/experimental/string_view/requirements/typedefs.cc:
1032 * testsuite/experimental/string_view/typedefs.cc: Likewise.
1033 * testsuite/ext/vstring/range_access.cc: Likewise.
1034 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
1036 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
1038 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
1040 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
1042 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
1044 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
1046 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
1048 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
1050 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
1051 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
1053 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
1054 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
1056 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1059 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
1060 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
1061 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
1063 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1066 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
1067 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1069 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1072 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
1073 (__byte_operand<wchar_t>): Define specialization.
1074 * include/std/type_traits (__make_signed<wchar_t>)
1075 (__make_unsigned<wchar_t>): Remove redundant check for
1076 __WCHAR_TYPE__ being defined.
1077 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
1078 (__is_integral_helper<wchar_t>): Likewise.
1080 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1083 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
1084 (__rc_string_base<wchar_t>): Define member function.
1085 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
1086 (hash<__gnu_cxx::__wvstring>): Define specialization.
1087 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
1088 (__wsso_string, __wrc_string): Declare typedefs.
1090 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1093 * include/bits/char_traits.h (char_traits<wchar_t>): Define
1094 explicit specialization unconditionally.
1095 * include/bits/basic_string.h (hash<wstring>): Define
1096 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1097 * include/bits/stringfwd.h (wstring): Likewise.
1098 * include/debug/string (wstring): Likewise.
1099 * include/experimental/string_view (experimental::wstring_view)
1100 (hash<experimental::wstring_view>): Likewise.
1101 * include/std/string (pmr::wstring, hash<pmr::wstring>):
1103 * include/std/string_view (wstring_view, hash<wstring_view>):
1106 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1108 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
1109 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
1111 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1113 * testsuite/22_locale/conversions/buffer/1.cc: Check
1114 _GLIBCXX_USE_WCHAR_T.
1115 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
1116 test using char16_t.
1117 * testsuite/22_locale/conversions/string/1.cc: Check
1118 _GLIBCXX_USE_WCHAR_T.
1119 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
1121 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
1123 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
1124 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
1126 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1127 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
1129 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
1131 * testsuite/experimental/filesystem/path/native/alloc.cc:
1133 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
1135 * testsuite/experimental/filesystem/path/native/string.cc:
1138 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1140 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
1141 * testsuite/util/testsuite_common_types.h:
1143 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1145 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
1146 _GLIBCXX_USE_INT128.
1147 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
1148 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
1149 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
1150 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1151 * testsuite/20_util/is_integral/value.cc: Likewise.
1152 * testsuite/20_util/is_signed/value.cc: Likewise.
1153 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1154 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
1156 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
1158 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1160 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1162 * testsuite/20_util/type_identity/requirements/typedefs.cc:
1164 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1165 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1166 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1167 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1168 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1169 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1170 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1171 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1172 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1174 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1176 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1178 * include/bits/hashtable_policy.h (_Select1st): Replace use of
1180 (_Select2nd): Remove.
1181 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
1182 typedef instead of deducing it. Remove unnecessary piecewise
1184 (_ReuseOrAllocNode): Make __node_type public.
1185 (_Map_base): Adjust partial specialization to be able to extract
1186 the mapped_type without using tuple_element.
1187 (_Map_base::at): Define inline
1188 * testsuite/23_containers/unordered_map/requirements/53339.cc:
1190 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1193 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1195 * include/bits/hashtable.h: Move static assertion to destructor.
1196 * include/bits/hashtable_policy.h: Deduce value type from node
1197 type without instantiating it.
1199 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1201 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
1204 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1207 * include/bits/ranges_algobase.h: Replace <iterator> with a
1208 subset of the headers it includes.
1210 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1212 * include/experimental/deque (erase, erase_if): Revert changes
1213 to avoid debug mode overhead.
1214 * include/experimental/map (erase, erase_if): Likewise.
1215 * include/experimental/set (erase, erase_if): Likewise.
1216 * include/experimental/unordered_map (erase, erase_if):
1218 * include/experimental/unordered_set (erase, erase_if):
1220 * include/experimental/vector (erase, erase_if): Likewise.
1221 * include/std/deque (erase, erase_if): Likewise.
1222 * include/std/map (erase, erase_if): Likewise.
1223 * include/std/set (erase, erase_if): Likewise.
1224 * include/std/unordered_map (erase, erase_if): Likewise.
1225 * include/std/unordered_set (erase, erase_if): Likewise.
1226 * include/std/vector (erase, erase_if): Likewise.
1228 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1230 * include/std/chrono (__detail::__units_suffix_misc): New
1232 (__detail::__units_suffix): Likewise.
1233 (chrono::operator<<(basic_ostream&, const duration&)): Define.
1234 * testsuite/20_util/duration/io.cc: New test.
1236 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
1238 * include/Makefile.am: Add new header.
1239 * include/Makefile.in: Regenerate.
1240 * include/std/chrono (duration, time_point, system_clock)
1241 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
1242 (file_clock, file_time): Move to ...
1243 * include/bits/chrono.h: New file.
1244 * include/bits/atomic_futex.h: Include new header instead of
1246 * include/bits/atomic_timed_wait.h: Likewise.
1247 * include/bits/fs_fwd.h: Likewise.
1248 * include/bits/semaphore_base.h: Likewise.
1249 * include/bits/this_thread_sleep.h: Likewise.
1250 * include/bits/unique_lock.h: Likewise.
1251 * include/experimental/bits/fs_fwd.h: Likewise.
1252 * include/experimental/chrono: Likewise.
1253 * include/experimental/io_context: Likewise.
1254 * include/experimental/netfwd: Likewise.
1255 * include/experimental/timer: Likewise.
1256 * include/std/condition_variable: Likewise.
1257 * include/std/mutex: Likewise.
1258 * include/std/shared_mutex: Likewise.
1260 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
1263 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
1264 Hardcode to 64 instead of using non-constant constant.
1266 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
1268 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
1270 * include/std/string (erase, erase_if): Likewise.
1271 * include/std/deque (erase, erase_if): Access non-debug
1273 * include/std/map (erase, erase_if): Likewise.
1274 * include/std/set (erase, erase_if): Likewise.
1275 * include/std/unordered_map (erase, erase_if): Likewise.
1276 * include/std/unordered_set (erase, erase_if): Likewise.
1277 * include/std/vector (erase, erase_if): Likewise.
1278 * include/experimental/deque (erase, erase_if): Likewise.
1279 * include/experimental/map (erase, erase_if): Likewise.
1280 * include/experimental/set (erase, erase_if): Likewise.
1281 * include/experimental/unordered_map (erase, erase_if):
1283 * include/experimental/unordered_set (erase, erase_if):
1285 * include/experimental/vector (erase, erase_if): Likewise.
1287 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
1289 * include/Makefile.am: Add new headers.
1290 * include/Makefile.in: Regenerate.
1291 * include/std/functional: Include <bits/move_only_function.h>.
1292 * include/std/version (__cpp_lib_move_only_function): Define.
1293 * include/bits/mofunc_impl.h: New file.
1294 * include/bits/move_only_function.h: New file.
1295 * testsuite/20_util/move_only_function/call.cc: New test.
1296 * testsuite/20_util/move_only_function/cons.cc: New test.
1297 * testsuite/20_util/move_only_function/move.cc: New test.
1298 * testsuite/20_util/move_only_function/version.cc: New test.
1300 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1302 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
1304 * testsuite/23_containers/span/trivially_copyable.cc: New test.
1306 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1308 * include/bits/utility.h (__is_in_place_type_v): Define
1309 variable template to detect in_place_type_t specializations.
1310 (__is_in_place_type): Replace class template with alias
1311 template using __is_in_place_type_v.
1312 * include/std/any (any(T&&)): Check __is_in_place_type first and
1313 avoid instantiating is_copy_constructible unnecessarily.
1315 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1317 * testsuite/20_util/integer_comparisons/greater.cc: New test.
1319 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1321 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1322 Check result matches non-volatile pointer.
1324 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1327 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
1328 expected value for C++20.
1330 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1332 * include/bits/std_function.h (_Any_data::_M_access): Add
1334 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
1335 (_Function_base::_Base_manager::_M_not_empty_function):
1338 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1340 * include/std/ostream (operator<<(const volatile void*)):
1341 Add new overload, as per P1147R1.
1342 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1345 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1347 * include/bits/stl_queue.h
1348 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
1350 * include/bits/stl_stack.h
1351 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1352 * include/std/version
1353 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1354 * testsuite/23_containers/queue/cons_from_iters.cc: Update
1356 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
1358 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1360 * include/bits/forward_list.h (forward_list): Use non-deduced
1361 context for allocator parameter of allocator-extended copy and
1363 * include/bits/stl_bvector.h (vector<bool>): Likewise.
1364 * include/bits/stl_deque.h (deque): Likewise.
1365 * include/bits/stl_list.h (list): Likewise.
1366 * include/bits/stl_map.h (map): Likewise.
1367 * include/bits/stl_multimap.h (multimap): Likewise.
1368 * include/bits/stl_multiset.h (multiset): Likewise.
1369 * include/bits/stl_set.h (set): Likewise.
1370 * include/bits/stl_vector.h (vector): Likewise.
1371 * include/bits/stl_queue.h (queue, priority_queue): Do not
1372 constrain Allocator template parameter of deduction guides that
1373 have a Container parameter.
1374 * include/bits/stl_stack.h (stack): Likewise.
1375 * include/debug/deque (__gnu_debug::deque): Use non-deduced
1376 context for allocator parameter of allocator-extended copy and
1378 * include/debug/list (__gnu_debug::list): Likewise.
1379 * include/debug/map.h (__gnu_debug::map): Likewise.
1380 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
1381 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
1382 * include/debug/set.h (__gnu_debug::set): Likewise.
1383 * include/debug/vector (__gnu_debug::vector): Likewise.
1384 * testsuite/23_containers/deque/cons/deduction.cc: Test class
1385 template argument deduction with non-deduced allocator
1387 * testsuite/23_containers/forward_list/cons/deduction.cc:
1389 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1390 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1391 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1392 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1393 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1394 * testsuite/23_containers/queue/deduction.cc: Likewise.
1395 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1396 * testsuite/23_containers/stack/deduction.cc: Likewise.
1397 * testsuite/23_containers/unordered_map/cons/deduction.cc:
1399 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1401 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1403 * testsuite/23_containers/unordered_set/cons/deduction.cc:
1405 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1407 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1409 * include/std/variant (__detail::__variant::__as): Add missing
1410 noexcept to first overload.
1412 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1414 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
1416 (operator=(nullptr_t)): Likewise.
1417 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
1418 (operator=(nullptr_t)): Likewise.
1419 * include/std/string_view (basic_string_view(nullptr_t)):
1421 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
1422 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1423 Change dg-warning to dg-error.
1424 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1427 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
1429 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
1430 * src/filesystem/ops-common.h (__last_system_error): Add
1431 explicit cast to avoid narrowing conversion.
1432 (do_space): Fix type in function name.
1434 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1437 * include/Makefile.am (c++config.h): Define
1438 _GLIBCXX_VERBOSE_ASSERT based on configure output.
1439 * include/Makefile.in: Regenerate.
1440 * include/bits/c++config: Fix condition for verbose assertions.
1442 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1445 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
1446 unwrap debug iterators.
1447 * include/bits/refwrap.h: Do not error if included in C++03.
1448 * include/bits/stl_algo.h (__remove_if): Move to ...
1449 * include/bits/stl_algobase.h (__remove_if): ... here.
1450 * include/std/deque (erase, erase_if): Use __remove_if instead of
1451 remove and remove_if.
1452 * include/std/string (erase, erase_if): Likewise.
1453 * include/std/vector (erase, erase_if): Likewise.
1455 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1458 * include/bits/list.tcc (list::sort()): Use _Scratch_list
1459 objects for splicing and merging.
1460 (list::sort(StrictWeakOrdering)): Likewise.
1461 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
1462 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
1463 assertion for --enable-libstdcxx-debug library.
1464 * testsuite/23_containers/list/operations/66742.cc: New test.
1466 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1469 * include/std/thread (__pmf_expects_stop_token): New variable
1470 template to detect a pointer to member function that needs a
1471 stop_token to be added to the arguments.
1472 (jthread::__S_create): Use __pmf_expects_stop_token.
1473 (jthread::__S_create_pmf): New function.
1474 * testsuite/30_threads/jthread/100612.cc: New test.
1476 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1478 * include/bits/stl_queue.h
1479 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
1481 (queue(InputIterator, InputIterator)): Likewise.
1482 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
1483 * include/bits/stl_stack.h
1484 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1485 (stack(InputIterator, InputIterator)): Likewise.
1486 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
1487 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
1489 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
1490 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
1492 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1494 * include/bits/stl_queue.h (priority_queue): Add
1495 allocator-extended overloads for constructors taking iterator.
1496 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
1498 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1500 * include/bits/stl_queue.h (priority_queue): Construct sequence
1501 from iterators when no sequence argument is present (LWG 3529).
1502 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
1504 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1506 * include/bits/stl_queue.h (priority_queue): Constrain
1507 constructors with InputIterator parameters (LWG 3522).
1508 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
1510 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1512 * include/bits/ranges_base.h (ranges::distance): Split overload
1513 into two (LWG 3392).
1514 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
1516 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1518 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
1519 std::unary_function.
1520 * testsuite/30_threads/thread/cons/4.cc: Likewise.
1521 * testsuite/30_threads/thread/cons/5.cc: Likewise.
1523 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1525 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
1526 unnecesary derivation from std::unary_function.
1527 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
1528 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
1529 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
1530 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
1531 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
1532 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
1533 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
1534 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
1536 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
1537 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
1539 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1541 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
1542 expand the format string for freestanding, or non-vebose, or if
1543 we're just going to abort anyway.
1544 * src/c++11/snprintf_lite.cc: Remove unused header and
1547 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1549 * include/std/variant (__do_visit): Use variant_npos instead of
1550 literal -1 that requires a narrowing conversion.
1552 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1555 * src/filesystem/ops-common.h (__unsupported): New function to
1556 return a suitable error code for missing functionality.
1557 (posix::off_t): New typedef.
1558 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
1559 fallback implementations.
1560 (do_copy_file): Replace uses of errc::not_supported.
1561 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
1562 (fs::create_directory, fs::create_directory_symlink)
1563 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1564 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
1565 (fs::last_write_time, fs::permissions, fs::read_symlink):
1566 Replace uses of errc::not_supported.
1567 (fs::resize_file): Qualify off_t.
1568 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
1569 (fs::create_directory, fs::create_directory_symlink)
1570 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1571 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
1572 (fs::permissions, fs::read_symlink, fs::system_complete):
1573 Replace uses of errc::not_supported.
1574 (fs::resize_file): Qualify off_t and enable unconditionally.
1575 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
1577 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1579 * src/filesystem/ops-common.h (last_error): New helper function.
1580 (filesystem::do_space): Use last_error().
1581 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
1582 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
1584 * src/filesystem/ops.cc (fs::create_hard_link)
1585 (fs::remove, fs::temp_directory_path): Likewise.
1587 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1589 * include/std/type_traits (__conditional): New class template
1590 for internal uses of std::conditional.
1591 (__conditional_t): New alias template to replace conditional_t.
1592 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
1593 __conditional_t instead of conditional::type.
1594 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
1595 * include/bits/hashtable.h (_Hashtable): Likewise.
1596 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
1597 (_Local_iterator): Likewise. Replace typedefs with
1599 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
1600 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
1601 * include/bits/ptr_traits.h (__make_not_void): Likewise.
1602 * include/bits/ranges_algobase.h (__copy_or_move_backward)
1603 (__copy_or_move): Likewise.
1604 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
1605 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
1606 * include/bits/regex_compiler.h (_BracketMatcher): Use
1607 __conditional_t. Replace typedefs with using-declarations.
1608 * include/bits/shared_ptr_base.h (__shared_count): Use
1610 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1612 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
1613 (reverse_iterator::iterator_concept)
1614 (__make_move_if_noexcept_iterator)
1615 (iterator_traits<common_iterator<_It, _Sent>>)
1616 (iterator_traits<counted_iterator<_It>>): Likewise.
1617 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
1618 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
1619 (_Rb_tree::_M_clone_node): Likewise.
1620 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
1622 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
1623 (__is_uses_allocator_predicate): Likewise.
1624 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
1625 * include/experimental/any (any::_Manager, __any_caster):
1627 * include/experimental/executor (async_completion): Likewise.
1628 * include/experimental/functional (__boyer_moore_base_t):
1630 * include/std/any (any::_Manager): Likewise.
1631 * include/std/functional (__boyer_moore_base_t): Likewise.
1632 * include/std/ranges (borrowed_iterator_t)
1633 (borrowed_subrange_t, __detail::__maybe_present_t)
1634 (__detail::__maybe_const_t, split_view): Likewise.
1635 * include/std/tuple (__empty_not_final, tuple::operator=):
1637 * include/std/variant (__detail::__variant::__get_t): Likewise.
1639 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1642 * include/std/variant (__do_visit): Use a switch when we have a
1643 single variant with a small number of alternatives.
1645 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1648 * include/std/variant (__cpp_lib_variant): Update value.
1649 (__detail::__variant::__as): New helpers implementing the
1650 as-variant exposition-only function templates.
1651 (visit, visit<R>): Use __as to upcast the variant parameters.
1652 * include/std/version (__cpp_lib_variant): Update value.
1653 * testsuite/20_util/variant/visit_inherited.cc: New test.
1655 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1657 * include/bits/stl_iterator.h (__normal_iterator): Simplify
1658 converting constructor and do not require _Container::pointer.
1660 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1662 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
1663 (basic_string(basic_string&&)): Add noexcept and avoid
1664 allocation, by sharing rep with the rvalue string.
1666 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1668 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
1669 (common_iterator::__postfix_proxy): Add noexcept.
1671 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1674 * include/bits/stl_iterator.h (reverse_iterator): Use
1675 conditional noexcept on constructors and assignment operators.
1676 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
1678 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1681 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
1682 When size() is zero just deallocate and reset.
1684 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1687 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
1689 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1691 * include/bits/regex.h (basic_regex::multiline): Define for
1692 non-strict C++11 and C++14 modes.
1693 * include/bits/regex_constants.h (regex_constants::multiline):
1694 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
1696 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1698 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
1700 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1702 * include/bits/stream_iterator.h (istream_iterator): Add
1703 noexcept to constructors and non-throwing member functions and
1705 (ostream_iterator): Likewise.
1707 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1709 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
1710 New trait to identify vector<bool> iterators, including debug
1712 (_ForwardIteratorReferenceConcept): Add default template
1713 argument using _Is_vector_bool_iterator and use it in partial
1714 specialization for the vector<bool> cases.
1715 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
1716 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1719 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1721 * include/bits/list.tcc (list::merge): Remove call to size() and
1722 try-catch block. Use _Finalize_merge instead.
1723 * include/bits/stl_list.h (list::_Finalize_merge): New
1724 scope guard type to update _M_size members after a merge.
1726 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
1728 * include/bits/regex.h (basic_regex::multiline): Fix #if
1731 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1733 * include/bits/regex.h (basic_regex::multiline): Define constant
1735 * include/bits/regex_constants.h (regex_constants::multiline):
1736 Define constant for C++17.
1737 (regex_constants::__multiline): Define duplicate constant for
1738 internal use in C++11 and C++14.
1739 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
1740 New member function.
1741 (_Executor::_M_is_line_terminator(_CharT)): New member function.
1742 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
1743 member functions to support multiline matches.
1744 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
1746 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1748 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
1750 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
1751 _S_validate to check flags.
1752 * include/bits/regex_error.h (_S_grammar): New error code for
1754 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
1756 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1759 * include/bits/regex_error.h (regex_constants::_S_null): New
1760 error code for internal use.
1761 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
1762 Check for null character.
1763 * testsuite/28_regex/basic_regex/84110.cc: New test.
1765 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1767 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
1768 here from <bits/regex_compiler.h>.
1769 (basic_regex::_M_compile): New function to compile an NFA from
1770 a regular expression string.
1771 (basic_regex::basic_regex): Use _M_compile instead of delegating
1772 to other constructors.
1773 (basic_regex::operator=(const basic_regex&)): Define as
1775 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
1776 (basic_regex::assign(const basic_regex&)): Use copy assignment.
1777 (basic_regex::assign(basic_regex&&)): Use move assignment.
1778 (basic_regex::assign(const C*, flag_type)): Use _M_compile
1779 instead of constructing a temporary string.
1780 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
1781 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
1782 Use _M_compile instead of constructing a temporary basic_regex.
1783 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
1784 constructing a temporary string for contiguous iterators of the
1786 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
1788 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
1789 (__compile_nfa): Remove.
1790 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
1792 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
1794 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1796 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
1797 Return false for ETIMEDOUT and true otherwise.
1799 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
1801 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
1802 to also match message with '__8' in it.
1804 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1806 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
1807 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
1808 * include/bits/regex_compiler.tcc: Likewise.
1809 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
1810 * include/bits/regex_scanner.tcc: Likewise.
1812 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1814 * include/bits/regex_compiler.tcc: Add line break in empty while
1816 * include/bits/regex_executor.tcc: Avoid unused parameter
1819 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1821 * include/bits/regex.h (basic_regex, swap): Add noexcept to
1822 non-throwing functions.
1823 * include/bits/regex_automaton.h (_State_base, _State)
1824 (_NFA_base): Likewise.
1825 * include/bits/regex_compiler.h (_Compiler): Likewise.
1826 * include/bits/regex_error.h (regex_error::code()): Likewise.
1827 * include/bits/regex_scanner.h (_Scanner): Likewise.
1829 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1831 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
1832 Define before first attempt to check it.
1834 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1836 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
1837 Do not check non-default constructible sequences when
1838 _GLIBCXX_CONCEPT_CHECKS is defined.
1839 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
1841 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
1843 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
1845 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
1847 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
1850 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1852 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
1853 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
1855 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
1857 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
1859 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
1861 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
1863 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
1865 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
1867 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
1869 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
1871 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
1873 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
1875 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
1877 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
1879 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
1881 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
1883 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
1885 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
1887 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
1890 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1892 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
1893 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
1894 Check result types of iterator operations.
1895 (_Mutable_ForwardIteratorConcept): Check that iterator's
1896 reference type is a reference to its value type.
1897 (_Mutable_BidirectionalIteratorConcept): Do not require the
1898 value type to be assignable.
1899 (_Mutable_RandomAccessIteratorConcept): Likewise.
1900 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1903 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1905 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
1906 for type used as an iterator.
1907 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
1909 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1911 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
1912 comparison function for priority_queue of type with no
1913 relational operators.
1914 * testsuite/20_util/is_swappable/value.h: Likewise.
1915 * testsuite/24_iterators/output/concept.cc: Add operator< to
1918 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1920 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1921 Use a function to preserve value category of the type.
1922 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
1923 reference as the second argument for _OutputIteratorConcept.
1924 (copy_backward, move_backward): Use _OutputIteratorConcept
1925 instead of _ConvertibleConcept.
1927 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1929 * include/bits/stl_iterator.h (pointer_traits): Define partial
1930 specialization for __normal_iterator.
1931 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
1933 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1935 * include/bits/move.h (forward(remove_reference_t<T>&&)):
1936 Improve text of static_assert.
1937 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1938 * testsuite/20_util/forward/f_neg.cc: Likewise.
1940 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1943 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1944 to declarations, to match definitions.
1946 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
1948 * include/bits/range_access.h (cbegin, cend): Remove redundant
1951 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1953 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1954 Remove dg-error lines for C++20-only errors.
1956 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1958 * testsuite/19_diagnostics/headers/system_error/93151.cc:
1961 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1963 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1964 Map Windows error codes to generic POSIX error numbers. Use
1965 FormatMessage instead of strerror.
1966 * testsuite/19_diagnostics/error_category/system_category.cc:
1967 Adjust for new behaviour on Windows.
1969 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1971 * src/c++11/system_error.cc (generic_error_category): Define
1972 class and virtual functions as 'final'.
1973 (generic_error_category::equivalent(int, const error_condition&)):
1975 (system_error_category): Define class and virtual functions as
1977 (system_error_category::equivalent(int, const error_condition&)):
1979 (generic_category_instance, system_category_instance): Use
1980 constinit union to make the objects immortal.
1982 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1985 * src/c++11/system_error.cc
1986 (system_error_category::default_error_condition): Add 0 to
1988 * testsuite/19_diagnostics/error_category/102425.cc: New test.
1990 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1992 * include/bits/fs_path.h (path::iterator): Add noexcept to all
1993 member functions and friend functions.
1994 (distance): Add noexcept.
1995 (advance): Add noexcept and inline.
1996 * include/experimental/bits/fs_path.h (path::iterator):
1997 Add noexcept to all member functions.
1999 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
2002 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
2003 missed in previous patch.
2004 * testsuite/20_util/tuple/cons/102270.C: Moved to...
2005 * testsuite/20_util/tuple/cons/102270.cc: ...here.
2006 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
2007 constexpr to constructor so it can be used for C++20 tests.
2009 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
2011 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
2012 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
2013 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
2014 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
2016 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2018 * src/Makefile.am (stamp-debug): Add all Makefiles as
2020 * src/Makefile.in: Regenerate.
2022 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2024 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
2025 timeout factor to 3.
2026 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
2028 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2030 * doc/xml/manual/using.xml: Generalize to apply to more than
2032 * doc/html/manual/using_macros.html: Regenerate.
2034 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2036 * include/std/optional (nullptr_t): Make constructor noexcept.
2038 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2040 * include/bits/fs_path.h (advance): Remove non-deducible
2043 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2046 * include/std/tuple (_Head_base, _Tuple_impl): Add
2047 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
2048 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
2049 * testsuite/20_util/tuple/cons/102270.C: New test.
2051 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2054 * include/std/span (span(Range&&)): Add constraint to deduction
2057 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2059 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
2060 * src/c++98/Makefile.in: Regenerate.
2062 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2064 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2065 (to_string): Add noexcept if the type width is 32 bits or less.
2067 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2069 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
2070 (__uniq_ptr_impl::_M_deleter): Add noexcept.
2072 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
2075 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
2076 va and vb as arguments to wait/notify, remove unused bb local.
2078 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2080 * crossconfig.m4: Check for TLS support on mingw.
2081 * configure: Regenerate.
2083 2021-09-13 Jason Merrill <jason@redhat.com>
2085 * include/std/version: Define __cpp_lib_hardware_interference_size.
2086 * libsupc++/new: Define hardware interference size variables.
2088 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
2090 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2091 Fix invalid hostname to only match the .invalid TLD.
2093 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2095 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
2097 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
2100 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2102 * include/std/atomic: Tweak whitespace.
2104 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2107 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
2108 New function to check if a memory order is valid for the failure
2109 case of compare exchange operations.
2110 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
2111 by using __is_valid_cmpexch_failure_order.
2112 (__atomic_base<I>::compare_exchange_strong): Likewise.
2113 (__atomic_base<P*>::compare_exchange_weak): Likewise.
2114 (__atomic_base<P*>::compare_exchange_strong): Likewise.
2115 (__atomic_impl::compare_exchange_weak): Add assertion.
2116 (__atomic_impl::compare_exchange_strong): Likewise.
2117 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
2118 (atomic::compare_exchange_strong): Likewise.
2120 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2122 * include/std/functional (invoke_r): Define.
2123 * include/std/version (__cpp_lib_invoke_r): Define.
2124 * testsuite/20_util/function_objects/invoke/version.cc: Check
2125 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
2126 * testsuite/20_util/function_objects/invoke/4.cc: New test.
2128 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2131 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
2132 Add valid range checks.
2133 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
2134 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
2136 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2138 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
2139 * configure: Regenerate.
2141 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2143 * src/c++11/system_error.cc (error_category::~error_category()):
2144 Remove noexcept-specifier.
2145 (system_error::~system_error()): Likewise.
2146 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
2147 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
2149 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2152 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
2153 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
2155 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2157 * include/experimental/internet (__make_resolver_error_code):
2158 Handle EAI_SYSTEM errors.
2159 (basic_resolver_results): Use __make_resolver_error_code. Use
2160 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
2162 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2164 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2165 Try other service if "http" fails.
2167 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2169 * testsuite/17_intro/names.cc: Undefine some more names used
2170 by Solaris system headers.
2172 2021-08-30 Jason Merrill <jason@redhat.com>
2175 * testsuite/30_threads/promise/requirements/lwg3466.cc:
2176 Remove dg-prune-outputs.
2178 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
2180 * include/bits/alloc_traits.h (allocator_traits): Add explicit
2181 specialization for allocator<void>. Improve doxygen comments.
2182 * include/bits/allocator.h (allocator<void>): Restore for the
2183 versioned namespace.
2184 (allocator<void>::construct, allocator<void>::destroy): Remove.
2185 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
2186 Add default constructor and converting constructor.
2188 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
2190 * include/bits/stl_uninitialized.h: Fix typo in comment.
2192 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
2195 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
2196 to avoid unnecessary current_path() call.
2198 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
2200 * include/bits/std_function.h (function::function(F&&)): Give
2201 name to defaulted template parameter, to improve diagnostics.
2202 Use markdown for more doxygen comments.
2204 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
2206 * include/bits/std_function.h (function): Adjust doxygen
2208 * include/bits/unique_ptr.h (make_unique_for_overwrite):
2209 Change parameter name to match doxygen comment.
2211 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
2213 * include/bits/std_function.h (_function_base::_Base_manager):
2214 Replace _M_init_functor with a function template using a
2215 forwarding reference, and a pair of _M_create function
2216 templates. Reuse _M_create for the clone operation.
2217 (function::_Decay_t): New alias template.
2218 (function::_Callable): Simplify by using _Decay.
2219 (function::function(F)): Change parameter to forwarding
2220 reference, as per LWG 2447. Add noexcept-specifier. Simplify
2222 (function::operator=(F&&)): Add noexcept-specifier.
2223 * testsuite/20_util/function/cons/lwg2774.cc: New test.
2224 * testsuite/20_util/function/cons/noexcept.cc: New test.
2226 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
2228 * include/bits/std_function.h (function::function(F)): Add
2229 static assertions to check constructibility requirements.
2231 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
2234 * configure.ac: Check for O_NONBLOCK.
2235 * configure: Regenerate.
2236 * include/experimental/internet: Include <ws2tcpip.h> for
2237 Windows. Use preprocessor conditions around more constants.
2238 * include/experimental/socket: Use preprocessor conditions
2239 around more constants.
2240 * testsuite/experimental/net/internet/resolver/base.cc: Only use
2241 constants when the corresponding C macro is defined.
2242 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
2243 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
2244 Make preprocessor checks more fine-grained.
2246 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2248 * testsuite/17_intro/names.cc: Check 'sz'.
2250 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2252 * testsuite/17_intro/names.cc: Adjust for Windows.
2254 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2256 * include/std/valarray: Uglify 'func' parameters.
2257 * testsuite/17_intro/names.cc: Add 'func' to checks.
2259 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2262 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
2263 Define macro to check conditions for optimizing trivial cases.
2264 (__check_constructible): New function to do static assert.
2265 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
2267 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
2268 Adjust dg-error pattern.
2269 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
2270 C++17-specific checks from 89164_c++17.cc.
2271 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
2272 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
2274 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
2276 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
2278 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
2281 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2284 * include/ext/rope (rope::erase(size_type)): Remove broken
2287 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
2289 * doc/xml/manual/status_cxx2020.xml: Update table.
2290 * doc/html/manual/status.html: Regenerate.
2292 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
2294 * include/std/type_traits (is_layout_compatible): Define.
2295 (is_corresponding_member): Define.
2296 * include/std/version (__cpp_lib_is_layout_compatible): Define.
2297 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
2299 * testsuite/20_util/is_layout_compatible/value.cc: New test.
2300 * testsuite/20_util/is_layout_compatible/version.cc: New test.
2301 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
2303 * testsuite/23_containers/span/layout_compat.cc: Do not use real
2304 std::is_layout_compatible trait if available.
2306 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
2308 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
2309 explicit instantiation definitions.
2311 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2313 * include/std/ranges (basic_istream_view): Add default template
2315 * testsuite/std/ranges/istream_view.cc: Check it.
2317 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2319 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
2322 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2325 * testsuite/util/testsuite_fs.h (permissions_are_testable):
2328 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
2331 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
2332 Use new __gnu_test::permissions_are_testable() function.
2333 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2335 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2336 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2337 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2338 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2339 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2340 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2342 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2344 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2346 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2348 * testsuite/experimental/filesystem/operations/exists.cc:
2350 * testsuite/experimental/filesystem/operations/is_empty.cc:
2352 * testsuite/experimental/filesystem/operations/remove.cc:
2354 * testsuite/experimental/filesystem/operations/remove_all.cc:
2356 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2358 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
2359 New function to guess whether testing permissions will work.
2361 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2363 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
2364 * doc/html/manual/status.html: Regenerate.
2366 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2368 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
2370 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2373 * include/std/charconv (__to_chars_i): Remove redundant check.
2375 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2378 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
2379 class' move constructor. Define as defaulted for versioned
2381 * testsuite/20_util/tuple/cons/101960.cc: New test.
2383 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2386 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
2387 * doc/html/manual/status.html: Regenerate.
2389 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2391 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
2392 * include/bits/unique_ptr.h: Add @headerfile tags.
2394 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2396 * src/filesystem/ops-common.h (filesystem::file_time): Improve
2397 overflow check by using system_clock::duration::max().
2399 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2401 * include/bits/stl_tree.h: Tweak whitespace.
2403 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2405 * include/bits/unique_ptr.h (default_delete): Add @since tag.
2406 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
2407 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
2408 @param, and @returns.
2409 (_MakeUniq): Move to __detail namespace. Add alias template
2412 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2414 * include/bits/stl_function.h: Improve doxygen comments.
2416 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2418 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
2419 processing for C++20 components and components that depend on
2421 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
2422 * include/std/type_traits: Improve doxygen comments for C++20
2425 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2427 * include/ext/type_traits.h (__promote_2, __promote_3)
2428 (__promote_4): Redfine as alias templates using __promoted_t.
2429 * include/std/complex (__promote_2): Remove partial
2430 specializations for std::complex.
2432 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2434 * include/bits/stl_algo.h (min(initializer_list<T>))
2435 (min(initializer_list<T>, Compare)): Call __min_element directly to
2436 avoid redundant debug checks for valid ranges.
2437 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
2438 Likewise, for __max_element.
2439 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
2440 Likewise, for __minmax_element.
2442 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2444 * include/debug/deque (deque(size_type, const T&, const A&)):
2445 Prevent class template argument deduction and replace with a
2447 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
2449 * include/debug/list (list(size_type, const T&, const A&)):
2451 * include/debug/vector (vector(size_type, const T&, const A&)):
2454 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2456 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
2457 'std::vector<bool>::reference' as type name, not _Bit_reference.
2458 (build_libstdcxx_dictionary): Register printers for vector<bool>
2459 types in debug mode too.
2460 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
2461 output for invalid _Bit_reference. Use vector<bool>::reference
2462 instead of _Bit_reference.
2463 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2465 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
2467 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
2470 2021-08-17 Luc Michel <lmichel@kalray.eu>
2471 Marc Poulhies <mpoulhies@kalrayinc.com>
2473 * testsuite/lib/gdb-test.exp (gdb_version_check)
2474 (gdb_version_check_xmethods): Only check the GDB version for
2475 local native targets.
2477 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
2478 Jonathan Wakely <jwakely@redhat.com>
2480 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
2481 if distance is O(1).
2482 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2485 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2487 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
2488 construction from input iterators.
2490 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2492 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
2494 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2497 * include/bits/std_function.h (function(function&&)): Check for
2498 non-empty parameter before doing any work.
2500 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2502 * include/bits/cow_string.h (basic_string::contains): Do not
2503 define for -std=gnu++20.
2505 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2507 * include/bits/ranges_util.h (__not_same_as): Rename to
2509 * include/std/ranges (__not_same_as): Likewise.
2511 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2513 * include/std/utility (exchange): Add noexcept-specifier.
2514 * testsuite/20_util/exchange/noexcept.cc: New test.
2516 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2518 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
2519 (build_libstdcxx_dictionary): Register printer for
2520 std::error_code and std::error_condition.
2521 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
2523 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2526 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
2528 (print_word): Use qualified-id to access it.
2530 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2532 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
2533 Install another copy of the GDB hook.
2534 * python/Makefile.in: Regenerate.
2536 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2539 * include/c_global/cmath (hypot): Use __promoted_t.
2540 (lerp): Add new overload accepting any arithmetic types.
2541 * include/ext/type_traits.h (__promoted_t): New alias template.
2542 * testsuite/26_numerics/lerp.cc: Moved to...
2543 * testsuite/26_numerics/lerp/1.cc: ...here.
2544 * testsuite/26_numerics/lerp/constexpr.cc: New test.
2545 * testsuite/26_numerics/lerp/version.cc: New test.
2547 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2549 * testsuite/26_numerics/lerp.cc: Add header name to #error.
2550 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
2551 * testsuite/26_numerics/midpoint/version.cc: New test.
2553 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2555 * include/experimental/random (experimental::randint): Add
2556 nodiscard attribute.
2558 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2560 * src/c++98/locale_init.cc: Require C++11.
2561 * src/c++98/localename.cc: Likewise.
2562 * src/c++98/misc-inst.cc: Require C++98.
2564 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2567 * testsuite/experimental/random/randint.cc: Loop and retry if
2568 reseed() produces the same sequence.
2570 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2572 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
2573 (is_pointer_interconvertible_base_of_v)
2574 (is_pointer_interconvertible_base_of): Define for C++20.
2575 * include/std/version (__cpp_lib_is_pointer_interconvertible):
2577 * testsuite/23_containers/span/layout_compat.cc: Use correct
2578 feature test macro for std::is_layout_compatible_v.
2579 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
2580 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
2582 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2584 * include/bits/regex.h (basic_regex::transform_primary): Use
2585 _GLIBCXX_STD_C::vector for local variable.
2586 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
2587 _GLIBCXX_STD_C::vector base class of match_results.
2588 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
2589 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
2591 * include/bits/regex_compiler.h (_BracketMatcher): Use
2592 _GLIBCXX_STD_C::vector for data members.
2593 * include/bits/regex_executor.h (_Executor): Likewise.
2594 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
2596 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
2598 * include/debug/safe_container.h
2599 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
2600 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
2601 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
2603 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2605 * testsuite/23_containers/unordered_map/cons/default.cc: Add
2606 equality comparison operators to allocator.
2607 * testsuite/23_containers/unordered_set/cons/default.cc:
2610 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
2612 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
2613 dg-prune-output reason with 'builtin_unreachable'.
2614 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
2615 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
2616 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2617 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2618 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2619 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2620 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2621 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2623 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
2625 * testsuite/std/ranges/iota/max_size_type.cc: Set
2626 dg-timeout-factor to 4.
2628 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
2630 * libsupc++/compare (compare_three_way, strong_order)
2631 (weak_order, partial_order, compare_strong_order_fallback)
2632 (compare_weak_order_fallback, compare_partial_order_fallback):
2633 Move nodiscard attributes to correct location.
2635 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2638 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2639 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2640 (ranges::empty, ranges::data): Move attribute after the
2641 declarator-id instead of at the end of the declarator.
2642 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
2643 Move attributes back to the start of the function declarator,
2644 but move the requires-clause to the end.
2645 (common_iterator): Move attribute after the declarator-id.
2646 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
2647 from friend declaration that are not definitions.
2648 * include/std/ranges (views::all, views::filter)
2649 (views::transform, views::take, views::take_while,
2650 views::drop) (views::drop_while, views::join,
2651 views::lazy_split) (views::split, views::counted,
2652 views::common, views::reverse) (views::elements): Move
2653 attributes after the declarator-id.
2655 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2657 * libsupc++/compare (partial_ordering, weak_ordering)
2658 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
2659 (compare_three_way, strong_order, weak_order, partial_order)
2660 (compare_strong_order_fallback, compare_weak_order_fallback)
2661 (compare_partial_order_fallback, __detail::__synth3way): Add
2662 nodiscard attribute.
2663 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
2664 -Wno-unused-result to options.
2666 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2669 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2670 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2671 (ranges::empty, ranges::data): Move attribute to the end of
2673 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
2674 (common_iterator): Likewise for non-member operator functions.
2675 * include/std/ranges (views::all, views::filter)
2676 (views::transform, views::take, views::take_while, views::drop)
2677 (views::drop_while, views::join, views::lazy_split)
2678 (views::split, views::counted, views::common, views::reverse)
2679 (views::elements): Likewise.
2680 * testsuite/std/ranges/access/101782.cc: New test.
2682 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2684 * include/bits/forward_list.h: Add [[nodiscard]] to functions
2685 with no side-effects.
2686 * include/bits/stl_bvector.h: Likewise.
2687 * include/bits/stl_deque.h: Likewise.
2688 * include/bits/stl_list.h: Likewise.
2689 * include/bits/stl_queue.h: Likewise.
2690 * include/bits/stl_stack.h: Likewise.
2691 * include/bits/stl_vector.h: Likewise.
2692 * include/debug/deque: Likewise.
2693 * include/debug/forward_list: Likewise.
2694 * include/debug/list: Likewise.
2695 * include/debug/safe_iterator.h: Likewise.
2696 * include/debug/vector: Likewise.
2697 * include/std/array: Likewise.
2698 * testsuite/23_containers/array/creation/3_neg.cc: Use
2700 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
2702 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
2703 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
2704 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
2705 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
2707 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
2709 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2710 Adjust dg-error line numbers.
2711 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
2713 * testsuite/23_containers/deque/debug/invalidation/4.cc:
2715 * testsuite/23_containers/deque/types/1.cc: Use
2717 * testsuite/23_containers/list/types/1.cc: Cast result to void.
2718 * testsuite/23_containers/priority_queue/members/7161.cc:
2720 * testsuite/23_containers/queue/members/7157.cc: Likewise.
2721 * testsuite/23_containers/vector/59829.cc: Likewise.
2722 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
2724 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
2726 * testsuite/23_containers/vector/types/1.cc: Use
2729 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2731 * include/bits/iterator_concepts.h (iter_move): Add
2733 * include/bits/range_access.h (begin, end, cbegin, cend)
2734 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
2735 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2736 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
2737 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2738 (ranges::empty, ranges::data, ranges::cdata): Likewise.
2739 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
2740 (back_insert_iterator, front_insert_iterator, insert_iterator)
2741 (move_iterator, move_sentinel, common_iterator)
2742 (counted_iterator): Likewise.
2743 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
2745 * include/bits/stream_iterator.h (istream_iterator)
2746 (ostream_iterartor): Likewise.
2747 * include/bits/streambuf_iterator.h (istreambuf_iterator)
2748 (ostreambuf_iterator): Likewise.
2749 * include/std/ranges (views::single, views::iota, views::all)
2750 (views::filter, views::transform, views::take, views::take_while)
2751 (views::drop, views::drop_while, views::join, views::lazy_split)
2752 (views::split, views::counted, views::common, views::reverse)
2753 (views::elements): Likewise.
2754 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
2755 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
2756 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
2758 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
2759 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
2761 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2762 Cast result to void.
2763 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2765 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2767 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2769 * testsuite/23_containers/array/range_access.cc: Likewise.
2770 * testsuite/23_containers/deque/range_access.cc: Likewise.
2771 * testsuite/23_containers/forward_list/range_access.cc:
2773 * testsuite/23_containers/list/range_access.cc: Likewise.
2774 * testsuite/23_containers/map/range_access.cc: Likewise.
2775 * testsuite/23_containers/multimap/range_access.cc: Likewise.
2776 * testsuite/23_containers/multiset/range_access.cc: Likewise.
2777 * testsuite/23_containers/set/range_access.cc: Likewise.
2778 * testsuite/23_containers/unordered_map/range_access.cc:
2780 * testsuite/23_containers/unordered_multimap/range_access.cc:
2782 * testsuite/23_containers/unordered_multiset/range_access.cc:
2784 * testsuite/23_containers/unordered_set/range_access.cc:
2786 * testsuite/23_containers/vector/range_access.cc: Likewise.
2787 * testsuite/24_iterators/customization_points/iter_move.cc:
2789 * testsuite/24_iterators/istream_iterator/sentinel.cc:
2791 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
2793 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
2794 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
2795 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
2796 * testsuite/24_iterators/range_access/range_access.cc:
2798 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
2799 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
2800 * testsuite/28_regex/range_access.cc: Likewise.
2801 * testsuite/experimental/string_view/range_access/char/1.cc:
2803 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
2805 * testsuite/ext/vstring/range_access.cc: Likewise.
2806 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2807 * testsuite/std/ranges/p2259.cc: Likewise.
2809 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2811 * include/bits/random.tcc (linear_congruential_engine): Do not
2812 define static constexpr members when they are implicitly inline.
2813 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
2814 (__ratio_add, __ratio_subtract): Likewise.
2815 * include/std/type_traits (integral_constant): Likewise.
2816 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2819 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2821 * testsuite/util/testsuite_common_types.h: Replace uses of
2822 tr1::unordered_map and tr1::unordered_set with their C++11
2824 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
2825 dg-error line number.
2826 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2827 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2829 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
2831 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2833 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2835 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2838 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2840 * include/std/memory_resource (polymorphic_allocator::delete_object):
2841 Call destructor directly instead of using destroy.
2842 (allocator_traits<polymorphic_allocator<T>>): Define partial
2845 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2847 * testsuite/20_util/function_objects/binders/3113.cc: Remove
2848 trailing whitespace.
2849 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2850 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2851 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2853 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2854 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
2856 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2858 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2861 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2863 * doc/xml/manual/evolution.xml: Document deprecation.
2864 * doc/html/*: Regenerate.
2865 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
2866 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
2867 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
2869 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
2870 for C++11 and C++14 changes to std::random_shuffle and
2872 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
2873 use deprecated algorithms.
2874 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
2875 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2876 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2878 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2881 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2883 * testsuite/23_containers/forward_list/operations/3.cc:
2884 Use lambda instead of std::bind2nd.
2885 * testsuite/20_util/function_objects/binders/3113.cc: Add
2886 options for testing deprecated features.
2887 * testsuite/20_util/pair/cons/99957.cc: Likewise.
2888 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2889 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2890 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2892 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2893 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
2894 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
2895 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2896 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
2897 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
2898 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2900 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2902 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
2905 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2907 * include/bits/regex_executor.h (_State_info): Replace
2908 unique_ptr<bool[]> with array of bool.
2909 * include/bits/regex_executor.tcc: Likewise.
2910 * include/bits/regex_scanner.tcc: Replace std::strchr with
2912 * include/std/regex: Replace standard headers with smaller
2914 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
2915 <string.h> for strlen.
2916 * testsuite/28_regex/traits/char/lookup_collatename.cc:
2919 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2921 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
2922 RAII class template.
2923 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
2924 instead of unique_ptr.
2926 2021-08-02 Patrick Palka <ppalka@redhat.com>
2929 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
2930 Add missing std::move in return statement.
2931 (__partition_copy_fn::operator()): Rename templtae parameter
2932 _O2 to _Out2. Uglify function parameters out_true and out_false.
2933 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
2934 std::move to recursive call that unwraps a __normal_iterator
2936 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2937 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2939 2021-08-02 Patrick Palka <ppalka@redhat.com>
2942 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2943 the const& overload unconstrained and return a const reference
2944 as per LWG 3533. Make unconditionally noexcept.
2945 (elements_view::base): Revert accidental r12-569 change.
2946 (elements_view::_Iterator::base): Make the const& overload
2947 unconstrained and return a const reference as per LWG 3533.
2948 Make unconditionally noexcept.
2950 2021-08-02 Patrick Palka <ppalka@redhat.com>
2953 * include/std/ranges (join_view::_Iterator::_Iterator): Add
2956 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2959 * src/filesystem/ops-common.h (get_temp_directory_from_env):
2960 Add error_code parameter.
2961 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2962 argument to get_temp_directory_from_env and check it.
2963 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2965 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2967 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2968 Add dg-error for c++11_only target.
2970 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
2973 * configure.ac: Check for secure_getenv.
2974 * config.h.in: Regenerate.
2975 * configure: Regenerate.
2976 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2977 helper function to obtain path from the environment.
2978 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2979 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2980 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2981 Print messages if test cannot be run.
2982 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2983 Likewise. Fix incorrect condition. Use "TMP" to work with
2984 Windows as well as POSIX.
2986 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
2988 * src/c++17/memory_resource.cc: Use __exchange instead
2991 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2993 * include/experimental/optional (__throw_bad_optional_access):
2994 Replace GNU attribute with C++11 attribute.
2995 (optional::value, optional::value_or): Use if statements
2996 instead of conditional expressions.
2997 * include/std/optional (__throw_bad_optional_access)
2998 (optional::value, optional::value_or): Likewise.
3000 2021-07-27 Marek Polacek <polacek@redhat.com>
3004 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
3006 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
3009 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3011 * include/bits/cow_string.h: Consistently use tab for
3014 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3016 * include/Makefile.am: Add new header.
3017 * include/Makefile.in: Regenerate.
3018 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
3019 (basic_string): Move definition of Copy-on-Write string to
3021 * include/bits/basic_string.tcc: Likewise.
3022 * include/bits/cow_string.h: New file.
3024 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3026 * include/std/algorithm: Do not include <utility>.
3027 * include/std/functional: Likewise.
3028 * include/std/regex: Include <bits/stl_pair.h> instead of
3030 * include/debug/map.h: Likewise.
3031 * include/debug/multimap.h: Likewise.
3032 * include/debug/multiset.h: Likewise.
3033 * include/debug/set.h: Likewise.
3034 * include/debug/vector: Likewise.
3035 * include/bits/fs_path.h: Likewise.
3036 * include/bits/unique_ptr.h: Do not include <utility>.
3037 * include/experimental/any: Likewise.
3038 * include/experimental/executor: Likewise.
3039 * include/experimental/memory: Likewise.
3040 * include/experimental/optional: Likewise.
3041 * include/experimental/socket: Use __exchange instead
3043 * src/filesystem/ops-common.h: Likewise.
3044 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
3045 errors to not use a hardcoded line number.
3046 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
3047 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
3048 Include <utility> for std::as_const.
3049 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
3051 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
3053 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
3055 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
3056 Adjust dg-error line number.
3058 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3060 * include/Makefile.am: Add bits/utility.h header.
3061 * include/Makefile.in: Regenerate.
3062 * include/bits/utility.h: New file.
3063 * include/std/utility (tuple_size, tuple_element): Move
3065 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
3067 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
3068 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
3069 * include/bits/ranges_util.h: Include new header instead of
3071 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
3072 partial specializations for std::pair here.
3073 (get): Move overloads for std::pair here.
3074 * include/std/any: Include new header instead of <utility>.
3075 * include/std/array: Likewise.
3076 * include/std/memory_resource: Likewise.
3077 * include/std/optional: Likewise.
3078 * include/std/variant: Likewise.
3079 * include/std/tuple: Likewise.
3080 (__is_tuple_like_impl<tuple<T...>>): Move here.
3081 (get) Declare overloads for std::array.
3082 * include/std/version (__cpp_lib_tuples_by_type): Change type
3084 * testsuite/20_util/optional/84601.cc: Include <utility>.
3085 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
3087 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3088 Adjust dg-error line numbers.
3089 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
3090 * testsuite/std/ranges/access/cend.cc: Likewise.
3091 * testsuite/std/ranges/access/end.cc: Likewise.
3092 * testsuite/std/ranges/single_view.cc: Likewise.
3094 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
3096 * include/std/future: Include <bits/atomic_base.h> instead of
3099 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
3101 * include/bits/stl_relops.h: Update documentation comments.
3103 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3106 * include/bits/hashtable.h (_Hashtable): Replace mixin with
3107 _Enable_default_ctor. Construct it explicitly in all
3108 non-forwarding, non-defaulted constructors.
3109 * testsuite/23_containers/unordered_map/cons/default.cc: Check
3110 non-default constructors can be used.
3111 * testsuite/23_containers/unordered_set/cons/default.cc:
3114 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
3116 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
3118 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3121 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
3122 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
3123 (allocator::allocate, allocator::deallocate): Use new macros.
3125 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3128 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
3129 constructor parameter to reference and use addressof.
3130 * testsuite/util/testsuite_iterators.h: Define deleted operator&
3131 overloads for test iterators.
3133 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3135 * include/bits/std_function.h (_Function_base): Add
3136 default member initializers and define constructor as defaulted.
3137 (function::_M_invoker): Add default member initializer.
3139 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3142 * doc/xml/manual/debug_mode.xml: Update documentation about
3143 debug capability of std::array.
3144 * doc/html/*: Regenerate.
3145 * include/debug/array: New file.
3147 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
3150 * include/ext/rope (sequence_buffer): Add move constructor and
3151 move assignment operator.
3152 * testsuite/ext/rope/101542.cc: New test.
3154 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
3157 * src/c++17/fs_ops.cc (fs::create_directories): Use status
3158 instead of symlink_status.
3159 * src/filesystem/ops.cc (fs::create_directories): Likewise.
3160 * testsuite/27_io/filesystem/operations/create_directories.cc:
3161 Check symlink to existing directory.
3162 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
3163 not test with symlinks on Windows.
3164 * testsuite/experimental/filesystem/operations/create_directories.cc:
3165 Check symlink to existing directory.
3166 * testsuite/experimental/filesystem/operations/create_directory.cc:
3167 Do not test with symlinks on Windows.
3169 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
3172 * include/bits/hashtable.h (_Hashtable): Conditionally delete
3173 default constructor by deriving from _Enable_special_members.
3174 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
3175 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
3177 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
3180 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
3181 * testsuite/27_io/filesystem/operations/create_directory.cc:
3182 Test creating directory with name of existing symlink to
3184 * testsuite/experimental/filesystem/operations/create_directory.cc:
3187 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3189 * include/std/tuple (get<I>): Add deleted overload for bad
3191 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
3194 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3196 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
3197 Use __int_traits unconditionally.
3199 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3201 * include/bits/random.h (_Shift::__value): Use constexpr.
3202 (_Select_uint_least_t::type): Use using-declaration.
3204 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3207 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3209 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
3210 instead of diagnostic pragmas.
3211 * include/bits/functional_hash.h: Likewise.
3212 * include/bits/iterator_concepts.h (__is_signed_int128)
3213 (__is_unsigned_int128): Likewise.
3214 * include/bits/max_size_type.h (__max_size_type): Likewise.
3215 (numeric_limits<__max_size_type>): Likewise.
3216 * include/bits/std_abs.h (abs): Likewise.
3217 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
3218 * include/bits/uniform_int_dist.h (uniform_int_distribution):
3220 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
3222 * include/std/type_traits (__is_integral_helper<INT_N>)
3223 (__is_signed_integer, __is_unsigned_integer)
3224 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
3225 * include/std/limits (__INT_N): Add __extension__ keyword.
3226 * include/bits/random.h (_Select_uint_least_t)
3227 (random_device): Likewise.
3229 2021-07-16 Patrick Palka <ppalka@redhat.com>
3232 * include/std/ranges (_CachedPosition::_M_get): For non-forward
3233 ranges, just call __builtin_unreachable.
3234 * testsuite/std/ranges/istream_view.cc (test05): New test.
3236 2021-07-16 Patrick Palka <ppalka@redhat.com>
3239 * include/std/ranges (split_view::split_view): Use std::move.
3240 (split_view::_Iterator::_Iterator): Remove redundant
3241 default_initializable constraint.
3242 (split_view::_Sentinel::_Sentinel): Declare.
3243 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
3245 2021-07-16 Marek Polacek <polacek@redhat.com>
3247 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
3250 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3252 * include/bits/unique_ptr.h: Adjust doxygen markup.
3254 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3257 * include/std/type_traits: Adjust doxygen markup.
3259 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3261 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
3262 uses of non-standard integer types.
3263 * include/bits/functional_hash.h: Likewise.
3264 * include/bits/iterator_concepts.h: Likewise.
3265 * include/bits/max_size_type.h: Likewise.
3266 * include/bits/std_abs.h: Likewise.
3267 * include/bits/stl_algobase.h: Likewise.
3268 * include/bits/uniform_int_dist.h: Likewise.
3269 * include/ext/numeric_traits.h: Likewise.
3270 * include/std/type_traits: Likewise.
3272 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
3275 * include/std/tuple (tuple_element): Improve static_assert text.
3276 (__get_helper): Add deleted overload.
3277 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
3278 __get_helper directly.
3279 (__get_helper2): Remove.
3280 (__find_uniq_type_in_pack): New constexpr helper function.
3281 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
3283 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
3285 * testsuite/20_util/tuple/element_access/101427.cc: New test.
3287 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
3290 * include/bits/c++config (__replacement_assert): Add noexcept.
3291 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
3292 instead of __replacement_assert.
3294 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
3296 * include/std/string_view (basic_string_view(It, End)): Add
3298 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
3299 Check noexcept-specifier. Also check construction without CTAD.
3301 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
3304 * include/std/string_view (ends_with): Use traits_type::compare
3307 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
3309 * include/std/string_view: Only include <bits/ranges_base.h>
3310 once, and only for C++20 and later.
3312 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
3315 * include/std/span (as_writable_bytes): Add requires-clause.
3316 * testsuite/23_containers/span/101411.cc: New test.
3318 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
3320 * include/std/mutex (__lock_impl): Check
3321 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3323 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
3326 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
3327 Remove noexcept-specifier.
3328 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
3329 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
3332 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
3334 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
3335 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
3336 Add some more predefined macros.
3337 * include/bits/fs_fwd.h: Move @addtogroup commands inside
3338 namespaces. Add better documentation.
3339 * include/bits/fs_path.h: Likewise.
3340 * include/experimental/bits/fs_fwd.h: Likewise.
3341 * include/experimental/bits/fs_path.h: Likewise.
3342 * include/ext/throw_allocator.h: Fix typo and improve docs.
3343 * include/std/chrono: Move @addtogroup commands.
3344 * include/std/system_error: Move @addtogroup commands.
3345 * libsupc++/exception: Improve documentation.
3346 * libsupc++/exception.h: Add @since documentation.
3348 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3351 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
3352 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
3353 (PREDEFINED): Add/fix some more macros that need to be expanded.
3354 * include/bits/random.h: Stop Doxygen from documenting internal
3355 implementation details.
3356 * include/bits/random.tcc: Likewise.
3357 * include/bits/this_thread_sleep.h: Fix @file name.
3358 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
3359 document internal implementation details.
3360 * include/experimental/bits/simd_detail.h: Do not document
3361 internal implementation details.
3362 * include/experimental/simd: Define Doxygen groups.
3363 * include/experimental/type_traits: Improve documentation for
3364 the header file. Define groups. Use @since commands.
3365 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
3366 declaration before undocumented region.
3367 * include/std/type_traits (true_type, false_type): Use using
3368 declaration instead of typedef.
3369 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
3370 (is_nothrow_invocable_r_v): Move definitions next to other C++17
3372 Do not document internal implementation details. Move misplaced
3373 group-end command. Define group for variable templates.
3374 * include/std/variant: Do not document internal implementation
3376 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3379 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3381 * include/experimental/simd: Do not define anything pre-C++17.
3383 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3385 * include/bits/random.tcc [__cpp_inline_variables]: Remove
3386 redundant definitions of static constexpr member variables.
3387 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3390 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3392 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
3393 explicit instantiation declarations.
3394 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
3395 explicit instantiation definitions.
3397 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3400 * testsuite/17_intro/names.cc: Fix #if condition for names used
3403 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3406 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
3407 Fail gracefully if element_type is incomplete.
3408 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
3409 the standard doesn't require this test to work for array types.
3410 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
3411 types can be used with array specialization.
3412 * testsuite/20_util/unique_ptr/101236.cc: New test.
3414 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3416 * doc/xml/manual/intro.xml: Document LWG 415 change.
3417 * doc/html/manual/bugs.html: Regenerate.
3418 * include/bits/istream.tcc (ws): Create sentry and catch
3420 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
3421 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
3423 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3425 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
3426 directly instead of using _M_write. Do setstate(__err) all
3427 outside the try-catch block.
3428 * include/std/ostream (basic_ostream::_M_write): Declare
3429 private. Use __ostream_insert. Do not define for the versioned
3432 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3434 * doc/xml/manual/intro.xml: Document LWG 581 change.
3435 * doc/html/manual/bugs.html: Regenerate.
3436 * include/bits/basic_ios.tcc: Whitespace.
3437 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
3439 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
3441 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
3443 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
3444 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
3447 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3449 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
3450 is set, not if eofbit is set.
3451 (tellp, seekp, seekp): Create sentry object. Do not set badbit
3453 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
3454 Adjust expected behaviour.
3455 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
3457 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
3459 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
3461 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
3462 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
3463 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
3464 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
3466 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3468 * include/std/syncstream (basic_syncbuf::swap()): Remove
3469 noexcept, as per LWG 3498.
3471 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3474 * testsuite/17_intro/names.cc: Undef more names for newlib and
3475 also for arm-none-linux-gnueabi.
3476 * testsuite/experimental/names.cc: Disable PCH.
3478 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
3480 * include/experimental/bits/simd.h (__bit_cast): Implement via
3481 __builtin_bit_cast #if available.
3482 (__proposed::simd_bit_cast): Add overloads for simd and
3483 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
3484 available), which return an object of the requested type with
3485 the same bits as the argument.
3486 * include/experimental/bits/simd_math.h: Use simd_bit_cast
3487 instead of __bit_cast to allow casts to fixed_size_simd.
3488 (copysign): Remove branch that was only required if __bit_cast
3489 cannot be constexpr.
3490 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
3491 from __bit_cast to __proposed::simd_bit_cast since the former
3492 will not cast fixed_size objects anymore.
3494 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3496 * include/experimental/bits/simd_math.h
3497 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
3498 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
3501 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3503 * include/experimental/bits/simd.h (__execute_on_index_sequence)
3504 (__execute_on_index_sequence_with_return)
3505 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
3508 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3510 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
3511 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
3514 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3516 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
3517 implementation doesn't require a _VecBltnBtmsk ABI tag, it
3518 requires either a 64-Byte input (in which case AVX512F must be
3519 available) or AVX512VL.
3521 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3523 * include/experimental/bits/simd_math.h: Undefine internal
3525 (frexp): Move #if to a more sensible position and reformat
3527 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
3528 duplicating the code here.
3529 (modf): Simplify condition.
3531 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3533 * include/experimental/bits/simd_math.h (fabs): Remove
3534 fabs(simd<integral>) overload.
3536 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3538 * include/experimental/bits/simd_converter.h
3539 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
3540 * include/experimental/bits/simd_fixed_size.h
3541 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
3542 arguments by const-ref.
3543 (_S_masked_unary): Pass _SimdTuple by const-ref.
3545 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3547 * include/experimental/bits/simd_fixed_size.h
3548 (_AbisInSimdTuple): Removed.
3550 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3552 * include/experimental/bits/simd.h: Add missing operator~
3553 overload for simd<floating-point> to __float_bitwise_operators.
3554 * include/experimental/bits/simd_builtin.h
3555 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
3556 implement complement for floating-point vectors.
3557 * include/experimental/bits/simd_fixed_size.h
3558 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
3559 copysign implementation of _SimdTuple members.
3560 * include/experimental/bits/simd_math.h (copysign): Call
3561 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
3562 generic copysign implementation using the new ~ operator.
3564 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3566 * testsuite/experimental/simd/README.md: Fix typos.
3568 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3570 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
3572 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
3573 conditional noexcept as per LWG 2762.
3574 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
3575 dereferencing cannot throw.
3576 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
3577 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
3578 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
3580 2021-06-23 Patrick Palka <ppalka@redhat.com>
3583 * testsuite/23_containers/multiset/cons/deduction.cc:
3584 Uncomment CTAD example that was rejected by this bug.
3585 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3587 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3589 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
3592 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3594 * testsuite/experimental/simd/README.md: New file.
3596 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3598 * testsuite/experimental/simd/driver.sh: Rewrite output
3599 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
3600 to be used twice. Add -x and -o short options. Parse long
3601 options with = instead of separating space generically. Parce
3602 contracted short options. Make unrecognized options an error.
3603 If same-line output is active, trap on EXIT to increment the
3604 progress (only with --percentage), erase the line and print the
3606 * testsuite/experimental/simd/generate_makefile.sh: Initialize
3607 helper files for progress account keeping. Update help target
3608 for changes to DRIVEROPTS.
3610 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3612 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
3613 and associated warning.
3614 * testsuite/Makefile.in: Regenerate.
3616 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
3617 Jonathan Wakely <jwakely@redhat.com>
3618 Ulrich Drepper <drepper@redhat.com>
3620 * include/std/chrono (chrono::year::is_leap()): Optimize.
3622 2021-06-23 Patrick Palka <ppalka@redhat.com>
3625 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
3627 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3628 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3629 Mention one of the replaced examples is broken due to PR101174.
3630 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3631 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
3632 ambiguous CTAD examples.
3633 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3635 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3637 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
3639 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3641 * include/std/mutex (__detail::__try_lock_impl): Rename
3642 parameter to avoid clashing with newlib's __lockable macro.
3643 (try_lock): Add 'inline' specifier.
3644 * testsuite/17_intro/names.cc: Add check for __lockable.
3645 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
3647 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3648 Matthias Kretz <m.kretz@gsi.de>
3650 * include/std/mutex (lock): Replace recursion with iteration
3651 when lockables all have the same type.
3652 (__detail::__try_lock_impl): Likewise. Pass lockables as
3653 parameters, instead of a tuple. Always lock the first one, and
3654 recurse for the rest.
3655 (__detail::__lock_impl): Adjust call to __try_lock_impl.
3656 (__detail::__try_to_lock): Remove.
3657 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
3658 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
3660 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
3662 * testsuite/30_threads/try_lock/5.cc: New test.
3664 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3666 * include/std/memory (declare_reachable, undeclare_reachable)
3667 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
3668 (pointer_safety): Only define for C++11 to C++20 inclusive.
3669 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
3671 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3673 * include/bits/random.h (seed_seq): Constrain initializer-list
3675 * include/bits/random.tcc (seed_seq): Add template parameter.
3676 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
3678 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
3681 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
3684 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
3685 Force _M_release() to wake all waiting threads.
3686 * testsuite/30_threads/semaphore/100806.cc: New test.
3688 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
3690 * include/std/mutex (__try_to_lock): Move to __detail namespace.
3691 (struct __try_lock_impl): Replace with ...
3692 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
3693 function templates to implement std::try_lock.
3694 (try_lock): Use new __try_lock_impl.
3695 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
3696 template to implement std::lock.
3697 (lock): Use __lock_impl.
3699 2021-06-21 Patrick Palka <ppalka@redhat.com>
3701 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
3703 2021-06-20 Patrick Palka <ppalka@redhat.com>
3705 * include/std/ranges (__non_propagating_cache::operator bool):
3706 Define for split_view::begin().
3707 (split_view): Define as per P2210.
3708 (views::__detail::__can_split_view): Define.
3709 (views::_Split, views::split): Define.
3710 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3712 * testsuite/std/ranges/adaptors/split.cc: New test.
3713 * testsuite/std/ranges/p2325.cc (test08a): New test.
3714 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
3716 2021-06-20 Patrick Palka <ppalka@redhat.com>
3718 * include/std/ranges: Rename views::split to views::lazy_split,
3719 split_view to lazy_split_view, etc. throughout.
3720 * testsuite/std/ranges/*: Likewise.
3721 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
3722 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
3724 2021-06-20 Patrick Palka <ppalka@redhat.com>
3726 * include/std/ranges (split_view::_OuterIter::__at_end):
3727 Check _M_trailing_empty.
3728 (split_view::_OuterIter::_M_trailing_empty): Define this
3730 (split_view::_OuterIter::operator++): Set _M_trailing_empty
3732 (split_view::_OuterIter::operator==): Compare
3734 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
3735 split parts instead of one.
3736 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
3738 2021-06-20 Patrick Palka <ppalka@redhat.com>
3740 * include/std/ranges (split_view::_InnerIter::base): Define as
3743 2021-06-19 Patrick Palka <ppalka@redhat.com>
3745 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
3746 Consider _Base instead of _Vp as per LWG 3555.
3747 (elements_view::_Iterator::_S_iter_concept): Likewise.
3749 2021-06-19 Patrick Palka <ppalka@redhat.com>
3751 * include/std/ranges (split_view::_OuterIter::value_type::begin):
3752 Remove the non-const overload, and remove the copyable constraint
3753 on the const overload as per LWG 3553.
3755 2021-06-19 Patrick Palka <ppalka@redhat.com>
3757 * include/bits/stl_iterator.h
3758 (__detail::__common_iter_use_postfix_proxy): Add
3759 move_constructible constraint as per LWG 3546.
3760 (common_iterator::__postfix_proxy): Adjust initializer of
3761 _M_keep as per LWG 3546.
3763 2021-06-18 Patrick Palka <ppalka@redhat.com>
3766 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
3767 to limit comparison complexity to 3*N/2.
3768 (__minmax_element_fn::operator()): Likewise.
3769 (shift_right): Avoid premature std::move of __result.
3770 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
3772 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
3775 2021-06-18 Patrick Palka <ppalka@redhat.com>
3777 * include/std/concepts (convertible_to): Just use declval as per
3780 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3783 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
3784 incorrect static_assert with ones matching the 'Mandates'
3785 conditions in the standard.
3786 * testsuite/26_numerics/reduce/95833.cc: New test.
3788 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3790 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
3791 diagnostic pragma to suppress -Wstringop-overread error.
3793 2021-06-18 Patrick Palka <ppalka@redhat.com>
3795 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
3796 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
3797 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
3798 * include/bits/ranges_util.h: ... here.
3799 * include/std/ranges (__detail::find, __detail::find_if)
3800 (__detail::find_if_not, __detail::mismatch): Remove.
3801 (filter_view): Use ranges::find_if instead.
3802 (drop_while_view): Use ranges::find_if_not instead.
3803 (split_view): Use ranges::find and ranges::mismatch instead.
3805 2021-06-18 Patrick Palka <ppalka@redhat.com>
3807 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
3808 default_initializable requirement.
3809 * include/bits/ranges_base.h (ranges::view): Likewise.
3810 * include/bits/ranges_util.h (subrange): Constrain the default
3812 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
3814 (front_insert_iterator): Likewise.
3815 (insert_iterator): Likewise. Remove NSDMIs.
3816 (common_iterator): Constrain the default ctor.
3817 (counted_iterator): Likewise.
3818 * include/bits/stream_iterator.h (ostream_iterator): Remove the
3820 * include/std/ranges (__detail::__box::operator=): Handle
3821 self-assignment in the primary template.
3822 (__detail::__box): In the partial specialization: adjust
3823 constraints as per P2325. Add specialized operator= for the
3824 case when the wrapped type is not copyable. Constrain the
3825 default ctor. Avoid list-initialization.
3826 (single_view): Constraint the default ctor.
3827 (iota_view): Relax semiregular constraint to copyable.
3828 Constrain the default ctor.
3829 (iota_view::_Iterator): Constraint the default ctor.
3830 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
3831 Remove redundant checks for empty _M_stream.
3832 (basic_istream_view::_Iterator): Likewise.
3833 (ref_view): Remove the default ctor. Remove NSDMIs.
3834 (ref_view::_Iterator): Constrain the default ctor.
3835 (__detail::__non_propagating_cache::operator=): Define overload
3836 for assigning from a value of the underlying type.
3837 (filter_view): Likewise.
3838 (filter_view::_Iterator): Likewise.
3839 (transform_view): Likewise.
3840 (transform_view::_Iterator): Likewise.
3841 (take_view): Likewise.
3842 (take_view::_Iterator): Likewise.
3843 (take_while_view): Likewise.
3844 (take_while_view::_Iterator): Likewise.
3845 (drop_while_view): Likewise.
3846 (drop_while_view::_Iterator): Likewise.
3847 (join_view): Likewise.
3848 (split_view::_OuterIter::__current): Adjust after changing the
3850 (split_view::_M_current): Wrap it in a __non_propagating_cache.
3851 (split_view::split_view): Constrain the default ctor.
3852 (common_view): Constrain the default ctor.
3853 (reverse_view): Likewise.
3854 (elements_view): Likewise.
3855 * include/std/span (enable_view<span<_ElementType, _Extent>>):
3856 Define this partial specialization to true unconditionally.
3857 * include/std/version (__cpp_lib_ranges): Adjust value.
3858 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
3859 Don't attempt to default construct a back_insert_iterator.
3860 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
3861 Don't attempt to default construct a front_insert_iterator.
3862 * testsuite/24_iterators/insert_iterator/constexpr.cc:
3863 Don't attempt to default construct an insert_iterator.
3864 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
3865 Remove this test for default constructibility of ostream_iterator.
3866 * testsuite/std/ranges/97600.cc: Don't attempt to default
3867 construct a basic_istream_view.
3868 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
3870 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
3871 (test02): Adjust now that __box is copyable-box not
3874 * testsuite/std/ranges/p2325.cc: New test.
3875 * testsuite/std/ranges/single_view.cc (test06): New test.
3876 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
3877 require default_initializable.
3879 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
3882 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
3883 define when is_constant_evaluated is available.
3884 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
3886 (__constant_string_p, __constant_array_p): Remove.
3887 (char_traits): Use is_constant_evaluated directly.
3888 * include/std/version (__cpp_lib_constexpr_char_traits)
3889 (__cpp_lib_constexpr_string): Only define when
3890 is_constant_evaluated is available.
3892 2021-06-17 Patrick Palka <ppalka@redhat.com>
3895 * include/std/ranges (__adaptor::_Partial): For the "simple"
3896 forwarding partial specializations, also require that
3897 the extra arguments are trivially copyable.
3898 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
3900 2021-06-17 Patrick Palka <ppalka@redhat.com>
3903 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
3904 template form of _S_has_simple_extra_args.
3905 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
3906 parameter pack. Try to treat _S_has_simple_extra_args as a
3907 variable template parameterized by _Args.
3908 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
3909 __adaptor_has_simple_extra_args.
3910 (views::_Take::_S_has_simple_extra_args): Templatize according
3911 to the type of the extra argument.
3912 (views::_Drop::_S_has_simple_extra_args): Likewise.
3913 (views::_Split::_S_has_simple_extra_args): Define.
3914 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3915 Adjust after changes to _S_has_simple_extra_args mechanism.
3918 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3920 * include/bits/iterator_concepts.h (__decay_copy): Name type.
3922 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3924 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3925 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3926 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3927 (ranges::empty, ranges::data, ranges::cdata): Remove final
3928 keywords and deleted operator& overloads.
3929 * testsuite/24_iterators/customization_points/iter_move.cc: Use
3930 new is_customization_point_object function.
3931 * testsuite/24_iterators/customization_points/iter_swap.cc:
3933 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
3935 * testsuite/std/ranges/access/begin.cc: Likewise.
3936 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3937 * testsuite/std/ranges/access/cdata.cc: Likewise.
3938 * testsuite/std/ranges/access/cend.cc: Likewise.
3939 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3940 * testsuite/std/ranges/access/crend.cc: Likewise.
3941 * testsuite/std/ranges/access/data.cc: Likewise.
3942 * testsuite/std/ranges/access/empty.cc: Likewise.
3943 * testsuite/std/ranges/access/end.cc: Likewise.
3944 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3945 * testsuite/std/ranges/access/rend.cc: Likewise.
3946 * testsuite/std/ranges/access/size.cc: Likewise.
3947 * testsuite/std/ranges/access/ssize.cc: Likewise.
3948 * testsuite/util/testsuite_iterators.h
3949 (is_customization_point_object): New function.
3951 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3953 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3954 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3955 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3956 (ranges::empty, ranges::data, ranges::cdata): Make types final.
3957 Add deleted operator& overloads.
3958 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3960 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3961 ill-formed & expressions with using-declarations. Add checks for
3962 other function objects.
3964 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3966 * include/bits/ranges_util.h (view_interface): Add noexcept to
3967 empty, operator bool, data and size members.
3968 (subrange): Add noexcept to constructors.
3969 * include/std/ranges (single_view, ref_view): Add noexcept to
3971 (views::single, views::all): Add noexcept.
3972 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3973 * testsuite/std/ranges/single_view.cc: Likewise.
3975 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3977 * include/bits/ranges_util.h (subrange): Add __size_type typedef
3978 and use it to simplify declarations.
3979 (subrange(i, s, n)): Remove assertion.
3980 * testsuite/std/ranges/subrange/constexpr.cc: New test.
3982 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3984 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3985 Replace with function object.
3986 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3987 __decay_copy unqualified.
3988 * include/bits/ranges_base.h (__member_end, __adl_end):
3989 Likewise. Use __range_iter_t for type of ranges::begin.
3990 (__member_rend): Use correct value category for rbegin argument.
3991 (__member_data): Use __decay_copy unqualified.
3992 (__begin_data): Use __range_iter_t for type of ranges::begin.
3994 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3996 * include/bits/ranges_base.h (ranges::empty): Check whether
3997 conversion to bool can throw.
3998 * testsuite/std/ranges/access/empty.cc: Check for correct
4001 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4004 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
4005 use the type if it's a reference.
4006 * testsuite/20_util/common_reference/100894.cc: New test.
4008 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4010 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
4011 Add dg-require-filesystem-ts directive.
4013 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4016 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
4017 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
4019 * testsuite/20_util/any/cons/101034.cc: New test.
4021 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4023 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
4024 -std=gnu++17 option.
4026 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4029 * libsupc++/compare (compare_partial_order_fallback): Add
4030 constraint using reversed parameter order, as per LWG 3465.
4031 * testsuite/18_support/comparisons/algorithms/fallback.cc:
4032 Adjust expected result.
4034 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4036 * libsupc++/compare (__decayed_same_as): New helper concept.
4037 (strong_order, weak_order, partial_order): Constrain with new
4038 concept instead of using static_assert.
4039 (compare_strong_order_fallback, compare_weak_order_fallback)
4040 (compare_partial_order_fallback): Likewise. Do not deduce return
4041 types. Remove redundant if-constexpr checks.
4042 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
4044 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4047 * include/std/tuple: Use reserved form of attribute name.
4048 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
4049 check for no_unique_address.
4050 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
4052 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
4055 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
4057 * include/bits/fs_path.h (operator==, operator<=>): Use new
4058 _S_compare function.
4059 (path::_S_compare): New function to call path::compare in a
4060 context where path::iterator is complete.
4061 * include/experimental/bits/fs_path.h (operator<, operator==):
4062 Define after path::iterator is complete.
4063 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
4065 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
4068 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
4070 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
4071 test logic with constexpr check for is_always_lock_free.
4073 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
4076 * include/std/optional (optional::operator=(const optional<U>&)):
4077 Fix value category used in is_assignable check.
4078 * testsuite/20_util/optional/assignment/100982.cc: New test.
4080 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
4082 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
4083 * include/bits/iterator_concepts.h (indirectly_readable_traits):
4084 Add LWG issue number to comment.
4085 * include/std/memory_resource (polymorphic_allocator::release):
4087 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
4088 dg-warning for deprecation. Also check std::allocator<void>.
4090 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
4093 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
4094 Change parameter type from _Tp to _Tp*.
4095 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
4096 coverage of types tested.
4098 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
4100 * include/std/barrier (__tree_barrier::_M_arrive): Remove
4101 unnecessary hasher instantiation.
4103 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
4105 * include/experimental/propagate_const (swap): Constrain.
4106 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
4108 2021-06-07 Avi Kivity <avi@scylladb.com>
4111 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
4112 Add missing typename.
4114 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
4117 * include/std/optional (operator<=>(const optional<T>& const U&)):
4118 Add missing constraint and add workaround for template
4120 * testsuite/20_util/optional/relops/three_way.cc: Check that
4121 type without equality comparison cannot be compared when wrapped
4124 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
4127 * include/bits/ranges_base.h (_SSize): Return signed type.
4128 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
4130 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4132 * include/bits/ranges_base.h (_SSize): Return the result of
4133 ranges::size converted to the wider of make-signed-like-t<S> and
4134 ptrdiff_t, rather than the ranges different type.
4135 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
4136 for an iota_view that uses an integer class type for its
4139 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4142 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
4143 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
4145 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4148 * include/bits/iterator_concepts.h (__detail::__decay_copy)
4149 (__detail::__member_begin, __detail::__adl_begin): Move to
4150 namespace ranges::__cust_access.
4151 (__detail::__ranges_begin): Likewise, and rename to __begin.
4152 Remove redundant static assertion.
4153 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
4154 Use lvalue in noexcept specifier.
4155 (__as_const): Add non-deduced parameter for value category.
4156 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
4158 (__member_size, __adl_size, __member_empty, __size0_empty):
4159 (__eq_iter_empty, __adl_data): Use lvalue objects in
4161 (__sentinel_size): Likewise. Add check for conversion to
4163 (__member_data): Allow non-lvalue types to satisfy the concept,
4164 but use lvalue object in requirements.
4165 (_Size, _SSize): Remove forwarding to always use an lvalue.
4166 (_Data): Likewise. Add static assertion for arrays.
4167 * testsuite/std/ranges/access/cdata.cc: Adjust expected
4168 behaviour for rvalues. Add negative tests for ill-formed
4170 * testsuite/std/ranges/access/data.cc: Likewise.
4171 * testsuite/std/ranges/access/empty.cc: Adjust expected
4172 behaviour for rvalues.
4173 * testsuite/std/ranges/access/size.cc: Likewise.
4175 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
4177 * include/std/any (any::_Manager::_S_access): New static
4178 function to access the contained value.
4179 (any::emplace, __any_caster): Use _S_access member of the
4182 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4184 * doc/xml/manual/status_cxx2020.xml:
4185 * doc/html/*: Regenerate.
4186 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
4188 * include/std/version (__cpp_lib_generic_unordered_lookup):
4190 * testsuite/23_containers/unordered_map/operations/1.cc: Check
4192 * testsuite/23_containers/unordered_set/operations/1.cc:
4195 2021-06-03 Patrick Palka <ppalka@redhat.com>
4197 * include/bits/ranges_algo.h (__detail::__can_reread_output):
4198 Factor out this concept from ...
4199 (__unique_copy_fn::operator()): ... here. Use the concept
4201 * testsuite/std/ranges/range.cc: Remove now ill-formed use
4202 of range_value_t on an output_range.
4203 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
4204 Define value_type, pointer and reference member types to void.
4206 2021-06-03 Patrick Palka <ppalka@redhat.com>
4209 * include/std/ranges (_RangeAdaptorClosure): Document
4210 _S_has_simple_call_op mechanism.
4211 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
4212 (__closure_has_simple_call_op): New concept.
4213 (__adaptor_has_simple_extra_args): Likewise.
4214 (_Partial<_Adaptor, _Args...>): New partial specialization.
4215 (_Partial<_Adaptor, _Arg>): Likewise.
4216 (_Pipe<_Lhs, _Rhs>): Likewise.
4217 (views::_All::_S_has_simple_call_op): Define to true.
4218 (views::_Filter::_S_has_simple_extra_args): Likewise.
4219 (views::_Transform::_S_has_simple_extra_args): Likewise.
4220 (views::_Take::_S_has_simple_extra_args): Likewise.
4221 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
4222 (views::_Drop::_S_has_simple_extra_args): Likewise.
4223 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
4224 (views::_Join::_S_has_simple_call_op): Likewise.
4225 (views::_Split): Document why we don't define
4226 _S_has_simple_extra_args to true for this adaptor.
4227 (views::_Common::_S_has_simple_call_op): Define to true.
4228 (views::_Reverse::_S_has_simple_call_op): Likewise.
4229 (views::_Elements::_S_has_simple_call_op): Likewise.
4230 * testsuite/std/ranges/adaptors/100577.cc: New test.
4232 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
4236 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
4237 Value-initialize subobject.
4238 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
4240 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
4243 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
4246 * testsuite/23_containers/unordered_map/96088.cc: Adjust
4247 expected number of allocations.
4248 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
4250 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
4252 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
4253 * doc/xml/manual/status_cxxtr1.xml: Likewise.
4254 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
4255 * doc/html/*: Regenerate.
4257 2021-06-01 Patrick Palka <ppalka@redhat.com>
4260 * testsuite/23_containers/deque/allocator/default_init.cc,
4261 testsuite/23_containers/forward_list/allocator/default_init.cc,
4262 testsuite/23_containers/list/allocator/default_init.cc,
4263 testsuite/23_containers/map/allocator/default_init.cc,
4264 testsuite/23_containers/set/allocator/default_init.cc,
4265 testsuite/23_containers/vector/allocator/default_init.cc,
4266 testsuite/23_containers/vector/bool/allocator/default_init.cc:
4269 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
4271 * testsuite/23_containers/unordered_map/96088.cc: Change
4272 effective target to c++17.
4273 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
4275 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
4277 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
4278 isblank for C++11 and later.
4280 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
4283 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
4284 Fix return value for no-op case.
4285 * testsuite/24_iterators/range_operations/advance.cc: Test
4286 return values of three-argument overload.
4288 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
4291 * python/Makefile.am: Use archive name for printer hook if no
4292 dynamic library name is available.
4293 * python/Makefile.in: Regenerate.
4295 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
4297 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
4298 Compilers for Linux: Compatibility with GNU Compilers" article.
4299 * doc/html/manual/abi.html: Regenerate.
4301 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
4303 * include/debug/formatter.h
4304 (_Error_formatter::_Parameter::_Named): New.
4305 (_Error_formatter::_Parameter::_Type): Inherit latter.
4306 (_Error_formatter::_Parameter::_M_integer): Likewise.
4307 (_Error_formatter::_Parameter::_M_string): Likewise.
4308 * src/c++11/debug.cc: Include <cstring>.
4309 (_Print_func_t): New.
4310 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
4311 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
4312 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
4313 (print_type): Rename in...
4314 (print_type_info): ...this. Use pretty_print.
4315 (print_address, print_integer): New.
4316 (print_named_name, print_iterator_constness, print_iterator_state): New.
4317 (print_iterator_seq_type): New.
4318 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
4319 (print_field): Use latters.
4320 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
4321 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
4322 Change signature to...
4323 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
4324 ...this and adapt. Remove intermediate buffer to render input string.
4325 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
4327 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
4330 * include/bits/ranges_base.h (advance, distance, next, prev):
4331 Replace function templates with function objects.
4332 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4333 Adjust for changes to function objects.
4334 * testsuite/std/ranges/adaptors/elements.cc: Add using
4335 declarations for names from namespace ranges.
4336 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
4337 * testsuite/24_iterators/range_operations/100768.cc: New test.
4339 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
4342 * include/bits/hashtable_policy.h (_Select2nd): New.
4343 (_NodeBuilder<>): New.
4344 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
4345 (_AllocNode<>::operator()): Likewise.
4346 * include/bits/hashtable.h
4347 (_Hashtable<>::__node_builder_t): New.
4348 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
4350 (_Hashtable<>::_S_forward_key): New.
4351 (_Hashtable<>::_M_insert): Use latter.
4352 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
4353 Instantiate node first, compute hash code second.
4354 * testsuite/23_containers/unordered_map/96088.cc: New test.
4355 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
4356 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
4357 * testsuite/23_containers/unordered_set/96088.cc: New test.
4358 * testsuite/util/replacement_memory_operators.h
4359 (counter::_M_increment): New.
4360 (counter::_M_decrement): New.
4361 (counter::reset()): New.
4363 2021-05-24 Patrick Palka <ppalka@redhat.com>
4366 * include/std/ranges (__detail::__non_propagating_cache): Move
4367 definition up to before that of _CachedPosition. Make base
4368 class _Optional_base protected instead of private. Add const
4369 overload for operator*.
4370 (__detail::_CachedPosition): Rewrite the partial specialization
4371 for forward ranges as a derived class of __non_propagating_cache.
4372 Remove the size constraint on the partial specialization for
4373 random access ranges. Add copy/move/copy-assignment/move-assignment
4374 members to the offset partial specialization for random
4375 access ranges that propagate the cached value but additionally
4376 invalidate it in the source object on move.
4377 * testsuite/std/ranges/adaptors/100479.cc: New test.
4379 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
4381 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
4382 call to ranges::next.
4383 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
4384 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
4386 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
4389 2021-05-21 Patrick Palka <ppalka@redhat.com>
4392 * include/std/ranges (drop_while_view::begin): Assert the
4393 precondition added by LWG 3490.
4395 2021-05-21 Patrick Palka <ppalka@redhat.com>
4398 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
4399 Split out this member function from ...
4400 (iota_view::_Sentinel::operator-): ... here, for sake of access
4402 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
4404 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
4406 * include/bits/random.tcc (__representable_as_double)
4407 (__p1_representable_as_double): Add "" to static asserts.
4409 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
4412 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
4413 (__glibcxx_constexpr_assert): ... this.
4414 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
4415 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
4416 or __glibcxx_assert_impl.
4417 (__glibcxx_assert_2): Remove
4418 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
4419 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
4420 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4421 Adjust expected error.
4422 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4424 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4427 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4429 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4431 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4433 * testsuite/23_containers/span/back_neg.cc: Likewise.
4434 * testsuite/23_containers/span/front_neg.cc: Likewise.
4435 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
4437 2021-05-20 Patrick Palka <ppalka@redhat.com>
4440 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
4441 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
4442 (reverse_iterator::reference): Likewise, but with iter_reference_t.
4443 (reverse_iterator::value_type): Likewise, but with iter_value_t.
4444 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
4445 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
4447 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
4450 * include/std/charconv (to_chars): Hide the overloads for
4451 floating-point types for 16 bit targets.
4452 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
4453 * testsuite/20_util/to_chars/double.cc: Run this test only on
4455 * testsuite/20_util/to_chars/float.cc: Likewise.
4456 * testsuite/20_util/to_chars/long_double.cc: Likewise.
4458 2021-05-18 Patrick Palka <ppalka@redhat.com>
4461 * include/std/ranges (elements_view::_Sentinel::operator-): Use
4462 _M_distance_from in the other operator- overload too.
4463 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
4465 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
4467 * testsuite/lib/prune.exp: Add note about 'dg-note'.
4469 2021-05-18 Patrick Palka <ppalka@redhat.com>
4472 * include/std/ranges (__box::__box): Use non-list-initialization
4473 in member initializer list of in-place constructor of the
4474 partial specialization for semiregular types.
4475 (__box::operator->): Use std::__addressof.
4476 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
4478 * testsuite/std/ranges/single_view.cc (test04): New test.
4480 2021-05-18 Patrick Palka <ppalka@redhat.com>
4483 * include/std/ranges (reverse_view::_S_needs_cached_begin):
4484 Set to true if the underlying non-common random-access range
4485 doesn't have a sized sentinel.
4487 2021-05-18 Patrick Palka <ppalka@redhat.com>
4490 * include/std/ranges (elements_view::_Iterator): Also befriend
4492 (elements_view::_Sentinel::_M_equal): Templatize.
4493 (elements_view::_Sentinel::_M_distance_from): Split out from ...
4494 (elements_view::_Sentinel::operator-): ... here. Depend on
4495 _Base2 instead of _Base in the return type.
4496 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
4499 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
4501 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
4502 until value change observed.
4503 (__waiter_base::_M_laundered): New member.
4504 (__waiter_base::_M_notify): Check _M_laundered to determine
4505 whether to wake one or all.
4506 (__detail::__atomic_compare): Return true if call to
4507 __builtin_memcmp() == 0.
4508 (__waiter_base::_S_do_spin_v): Adjust predicate.
4509 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
4512 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4515 * include/experimental/bits/fs_path.h (__is_constructible_from):
4516 Test construction from a const lvalue, not an rvalue.
4517 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
4518 * testsuite/experimental/filesystem/path/construct/100630.cc:
4521 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
4524 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
4525 Declare (but do not define) partial specialization.
4526 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
4528 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4530 * include/std/thread (jthread::_S_create): Fix static assert
4532 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
4533 * testsuite/30_threads/jthread/jthread.cc: Do not require
4534 pthread effective target.
4535 * testsuite/30_threads/jthread/2.cc: Moved to...
4536 * testsuite/30_threads/jthread/version.cc: ...here.
4538 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4540 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
4541 * doc/Makefile.in: Regenerate.
4542 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
4544 * scripts/run_doxygen (print_usage): Always print to stdout and
4546 (fail): New function for exiting on error.
4547 (parse_options): Handle --latex_cmd. Do not treat --help the
4548 same as errors. Simplify handling of required arguments.
4550 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
4552 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4553 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
4554 warnings. Replace bitwise AND with logical AND in loop
4556 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4557 Replace bitwise AND with logical AND in loop condition.
4558 * testsuite/util/pstl/test_utils.h: Remove unused parameter
4561 2021-05-11 Patrick Palka <ppalka@redhat.com>
4563 * src/c++17/ryu/LOCAL_PATCHES: Update.
4564 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
4565 Remove declarations for never-defined functions.
4566 * testsuite/20_util/to_chars/4.cc: New test.
4568 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4570 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
4571 alternative for macro.
4572 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
4574 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
4577 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4579 * include/bits/allocator.h (allocator<void>) [C++20]: Add
4580 missing noexcept to constructor. Restore missing POCMA and
4581 is_always_equal_traits.
4582 [C++17]: Make construct and destroy members private and
4583 declare allocator_traits as a friend.
4584 * include/bits/memoryfwd.h (allocator_traits): Declare.
4585 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4586 Add nodiscard attribute. Add static assertion for LWG 3307.
4587 * include/ext/new_allocator.h (new_allocator::allocate): Add
4588 static assertion for LWG 3307.
4589 * testsuite/20_util/allocator/void.cc: Check that converting
4590 constructor is noexcept. Check for propagation traits and
4591 size_type and difference_type. Check that pointer and
4592 const_pointer are gone in C++20.
4594 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4596 * include/std/stop_token: Remove TODO comment.
4598 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4600 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
4601 Initialize a non-reference deleter from an rvalue, as per LWG
4603 (__shared_ptr::_UniqCompatible): Add missing constraint.
4604 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
4605 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
4608 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4610 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
4611 -std=gnu++17 from dg-options directive.
4612 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
4614 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
4616 * testsuite/17_intro/headers/c++2017/operator_names.cc:
4618 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
4619 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
4620 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4622 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
4623 * testsuite/18_support/byte/81076.cc: Likewise.
4624 * testsuite/18_support/byte/global_neg.cc: Likewise.
4625 * testsuite/18_support/byte/ops.cc: Likewise.
4626 * testsuite/18_support/byte/requirements.cc: Likewise.
4627 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
4628 * testsuite/18_support/launder/1.cc: Likewise.
4629 * testsuite/18_support/launder/nodiscard.cc: Likewise.
4630 * testsuite/18_support/launder/requirements.cc: Likewise.
4631 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
4632 * testsuite/18_support/new_aligned.cc: Likewise.
4633 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
4635 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
4637 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
4638 * testsuite/20_util/addressof/requirements/constexpr.cc:
4640 * testsuite/20_util/as_const/1.cc: Likewise.
4641 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
4642 * testsuite/20_util/bind/83427.cc: Likewise.
4643 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
4644 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
4645 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4647 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
4649 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
4650 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
4652 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
4653 * testsuite/20_util/from_chars/requirements.cc: Likewise.
4654 * testsuite/20_util/function/91456.cc: Likewise.
4655 * testsuite/20_util/function/cons/deduction.cc: Likewise.
4656 * testsuite/20_util/function_objects/83607.cc: Likewise.
4657 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
4658 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
4659 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
4660 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
4661 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
4663 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
4665 * testsuite/20_util/has_unique_object_representations/value.cc:
4667 * testsuite/20_util/hash/nullptr.cc: Likewise.
4668 * testsuite/20_util/in_place/requirements.cc: Likewise.
4669 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
4670 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
4672 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
4674 * testsuite/20_util/is_aggregate/value.cc: Likewise.
4675 * testsuite/20_util/is_invocable/83395.cc: Likewise.
4676 * testsuite/20_util/is_invocable/91456.cc: Likewise.
4677 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
4679 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
4681 * testsuite/20_util/is_invocable/value.cc: Likewise.
4682 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
4683 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
4684 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
4685 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
4687 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
4688 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
4689 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
4691 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
4693 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
4694 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
4696 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
4698 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
4700 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
4702 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
4704 * testsuite/20_util/is_swappable/value.cc: Likewise.
4705 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
4707 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
4709 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
4710 * testsuite/20_util/logical_traits/83134.cc: Likewise.
4711 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
4713 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
4715 * testsuite/20_util/logical_traits/value.cc: Likewise.
4716 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
4717 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
4718 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
4720 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
4721 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
4722 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
4723 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
4724 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
4726 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
4728 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
4729 * testsuite/20_util/to_chars/3.cc: Likewise.
4730 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
4731 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
4732 * testsuite/20_util/to_chars/requirements.cc: Likewise.
4733 * testsuite/20_util/tuple/78939.cc: Likewise.
4734 * testsuite/20_util/tuple/apply/1.cc: Likewise.
4735 * testsuite/20_util/tuple/apply/2.cc: Likewise.
4736 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
4737 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
4738 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
4739 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
4740 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
4741 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
4742 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
4744 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
4745 * testsuite/20_util/void_t/1.cc: Likewise.
4746 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
4747 * testsuite/24_iterators/container_access.cc: Likewise.
4748 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
4750 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
4752 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4754 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
4756 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
4757 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
4759 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
4760 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
4762 * testsuite/26_numerics/lcm/1.cc: Likewise.
4763 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4764 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
4765 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
4767 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
4769 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
4771 * testsuite/27_io/types/4.cc: Likewise.
4772 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
4773 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
4774 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4776 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4778 * testsuite/20_util/function_objects/searchers.cc: Remove
4779 -std=gnu++17 from dg-options directive.
4780 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
4782 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4784 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
4786 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
4788 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
4790 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4792 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
4794 * testsuite/25_algorithms/clamp/1.cc: Likewise.
4795 * testsuite/25_algorithms/clamp/2.cc: Likewise.
4796 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
4797 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
4799 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
4801 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
4802 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
4804 * testsuite/25_algorithms/sample/1.cc: Likewise.
4805 * testsuite/25_algorithms/sample/2.cc: Likewise.
4806 * testsuite/25_algorithms/sample/3.cc: Likewise.
4807 * testsuite/25_algorithms/sample/81221.cc: Likewise.
4808 * testsuite/25_algorithms/search/searcher.cc: Likewise.
4809 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
4810 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
4811 * testsuite/26_numerics/reduce/1.cc: Likewise.
4812 * testsuite/26_numerics/reduce/2.cc: Likewise.
4813 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
4814 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
4815 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
4817 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4819 * testsuite/23_containers/array/cons/deduction.cc: Remove
4820 -std=gnu++17 from dg-options directive.
4821 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
4822 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4824 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
4826 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4828 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
4829 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
4831 * testsuite/23_containers/forward_list/cons/deduction.cc:
4833 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
4835 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
4836 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
4838 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
4839 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4840 * testsuite/23_containers/map/modifiers/insert/83226.cc:
4842 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4844 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
4845 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
4847 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4848 * testsuite/23_containers/multimap/modifiers/extract.cc:
4850 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
4851 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4852 * testsuite/23_containers/multiset/modifiers/extract.cc:
4854 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
4855 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
4856 * testsuite/23_containers/queue/deduction.cc: Likewise.
4857 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
4859 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4860 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4861 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
4862 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
4863 * testsuite/23_containers/stack/deduction.cc: Likewise.
4864 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
4866 * testsuite/23_containers/unordered_map/cons/deduction.cc:
4868 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4870 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
4872 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
4874 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
4876 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4878 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
4880 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
4882 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4884 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
4886 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
4888 * testsuite/23_containers/unordered_set/cons/deduction.cc:
4890 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4892 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
4894 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
4896 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
4897 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
4898 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
4901 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4903 * testsuite/21_strings/basic_string/79162.cc: Remove
4904 -std=gnu++17 from dg-options directive.
4905 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
4906 * testsuite/21_strings/basic_string/cons/char/79162.cc:
4908 * testsuite/21_strings/basic_string/cons/char/86138.cc:
4910 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
4911 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
4913 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
4915 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
4916 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
4918 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
4920 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
4921 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4923 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
4925 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
4926 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
4927 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
4928 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
4930 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
4932 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
4934 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
4936 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4938 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4940 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4942 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4944 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4946 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4948 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4950 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4952 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4954 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4956 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4958 * testsuite/21_strings/basic_string/operators/char/5.cc:
4960 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4962 * testsuite/21_strings/basic_string_view/capacity/1.cc:
4964 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4966 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4968 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4970 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4972 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4974 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4976 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4978 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4980 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4982 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4984 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4986 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4988 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4990 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4992 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4994 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4996 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4998 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
5000 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
5002 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
5004 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
5006 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
5008 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
5010 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
5012 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
5014 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
5016 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
5017 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
5019 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
5021 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
5023 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
5025 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
5027 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
5029 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
5031 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
5033 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
5035 * testsuite/21_strings/basic_string_view/literals/types.cc:
5037 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
5039 * testsuite/21_strings/basic_string_view/literals/values.cc:
5041 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
5043 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
5045 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
5047 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
5049 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
5051 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
5053 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
5055 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
5057 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
5059 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
5061 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
5063 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
5065 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
5067 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
5069 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
5071 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
5073 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
5075 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
5077 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
5079 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
5081 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
5083 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
5085 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
5087 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
5089 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
5091 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
5093 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
5095 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
5097 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
5099 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
5101 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
5103 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
5105 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
5107 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
5109 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
5111 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
5113 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
5115 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
5117 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
5119 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
5121 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
5123 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
5125 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
5127 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
5129 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
5131 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
5133 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
5135 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
5137 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
5139 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
5141 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
5143 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
5145 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
5147 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
5149 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
5151 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
5152 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
5153 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
5155 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5157 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5159 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
5160 from dg-options directive.
5161 * testsuite/20_util/memory_resource/2.cc: Likewise.
5162 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
5163 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
5165 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
5167 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
5169 * testsuite/20_util/monotonic_buffer_resource/release.cc:
5171 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
5173 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
5174 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
5176 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
5177 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
5178 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
5180 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
5182 * testsuite/20_util/synchronized_pool_resource/cons.cc:
5184 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
5186 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
5188 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
5190 * testsuite/20_util/synchronized_pool_resource/options.cc:
5192 * testsuite/20_util/synchronized_pool_resource/release.cc:
5194 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
5196 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
5198 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5200 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
5202 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
5204 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
5206 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
5208 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
5210 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
5211 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
5213 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
5215 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
5217 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
5218 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
5219 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
5220 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
5221 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
5222 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
5224 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
5225 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
5227 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
5228 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
5229 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
5231 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
5233 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
5235 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
5237 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
5239 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
5241 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
5243 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
5245 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
5246 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
5248 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
5250 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5252 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
5254 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
5255 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
5256 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
5257 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
5258 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
5259 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
5260 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
5261 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
5263 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
5265 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
5266 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
5267 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
5269 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
5270 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
5272 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
5273 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
5274 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
5275 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
5277 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5279 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
5280 dg-options directive.
5281 * testsuite/20_util/any/assign/2.cc: Likewise.
5282 * testsuite/20_util/any/assign/emplace.cc: Likewise.
5283 * testsuite/20_util/any/assign/exception.cc: Likewise.
5284 * testsuite/20_util/any/assign/self.cc: Likewise.
5285 * testsuite/20_util/any/cons/1.cc: Likewise.
5286 * testsuite/20_util/any/cons/2.cc: Likewise.
5287 * testsuite/20_util/any/cons/90415.cc: Likewise.
5288 * testsuite/20_util/any/cons/92156.cc: Likewise.
5289 * testsuite/20_util/any/cons/aligned.cc: Likewise.
5290 * testsuite/20_util/any/cons/explicit.cc: Likewise.
5291 * testsuite/20_util/any/cons/in_place.cc: Likewise.
5292 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
5293 * testsuite/20_util/any/make_any.cc: Likewise.
5294 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
5295 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
5296 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
5297 * testsuite/20_util/any/misc/swap.cc: Likewise.
5298 * testsuite/20_util/any/modifiers/1.cc: Likewise.
5299 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
5300 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
5301 * testsuite/20_util/any/observers/type.cc: Likewise.
5302 * testsuite/20_util/any/requirements.cc: Likewise.
5303 * testsuite/20_util/any/typedefs.cc: Likewise.
5304 * testsuite/20_util/optional/77288.cc: Likewise.
5305 * testsuite/20_util/optional/84601.cc: Likewise.
5306 * testsuite/20_util/optional/assignment/1.cc: Likewise.
5307 * testsuite/20_util/optional/assignment/2.cc: Likewise.
5308 * testsuite/20_util/optional/assignment/3.cc: Likewise.
5309 * testsuite/20_util/optional/assignment/4.cc: Likewise.
5310 * testsuite/20_util/optional/assignment/5.cc: Likewise.
5311 * testsuite/20_util/optional/assignment/6.cc: Likewise.
5312 * testsuite/20_util/optional/assignment/7.cc: Likewise.
5313 * testsuite/20_util/optional/assignment/8.cc: Likewise.
5314 * testsuite/20_util/optional/assignment/9.cc: Likewise.
5315 * testsuite/20_util/optional/bad_access.cc: Likewise.
5316 * testsuite/20_util/optional/cons/77727.cc: Likewise.
5317 * testsuite/20_util/optional/cons/85642.cc: Likewise.
5318 * testsuite/20_util/optional/cons/copy.cc: Likewise.
5319 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
5320 * testsuite/20_util/optional/cons/default.cc: Likewise.
5321 * testsuite/20_util/optional/cons/move.cc: Likewise.
5322 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
5323 * testsuite/20_util/optional/cons/value.cc: Likewise.
5324 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
5325 * testsuite/20_util/optional/constexpr/cons/default.cc:
5327 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
5328 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
5329 * testsuite/20_util/optional/constexpr/make_optional.cc:
5331 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
5332 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
5333 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
5334 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
5335 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
5336 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
5337 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
5338 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
5339 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
5340 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
5341 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
5342 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
5343 * testsuite/20_util/optional/hash.cc: Likewise.
5344 * testsuite/20_util/optional/in_place.cc: Likewise.
5345 * testsuite/20_util/optional/make_optional.cc: Likewise.
5346 * testsuite/20_util/optional/nullopt.cc: Likewise.
5347 * testsuite/20_util/optional/observers/1.cc: Likewise.
5348 * testsuite/20_util/optional/observers/2.cc: Likewise.
5349 * testsuite/20_util/optional/observers/3.cc: Likewise.
5350 * testsuite/20_util/optional/observers/4.cc: Likewise.
5351 * testsuite/20_util/optional/observers/5.cc: Likewise.
5352 * testsuite/20_util/optional/observers/6.cc: Likewise.
5353 * testsuite/20_util/optional/relops/1.cc: Likewise.
5354 * testsuite/20_util/optional/relops/2.cc: Likewise.
5355 * testsuite/20_util/optional/relops/3.cc: Likewise.
5356 * testsuite/20_util/optional/relops/4.cc: Likewise.
5357 * testsuite/20_util/optional/relops/5.cc: Likewise.
5358 * testsuite/20_util/optional/relops/6.cc: Likewise.
5359 * testsuite/20_util/optional/relops/7.cc: Likewise.
5360 * testsuite/20_util/optional/requirements.cc: Likewise.
5361 * testsuite/20_util/optional/swap/1.cc: Likewise.
5362 * testsuite/20_util/optional/swap/2.cc: Likewise.
5363 * testsuite/20_util/optional/typedefs.cc: Likewise.
5364 * testsuite/20_util/variant/80165.cc: Likewise.
5365 * testsuite/20_util/variant/85183.cc: Likewise.
5366 * testsuite/20_util/variant/86874.cc: Likewise.
5367 * testsuite/20_util/variant/87431.cc: Likewise.
5368 * testsuite/20_util/variant/87619.cc: Likewise.
5369 * testsuite/20_util/variant/91807.cc: Likewise.
5370 * testsuite/20_util/variant/any.cc: Likewise.
5371 * testsuite/20_util/variant/compile.cc: Likewise.
5372 * testsuite/20_util/variant/deduction.cc: Likewise.
5373 * testsuite/20_util/variant/exception_safety.cc: Likewise.
5374 * testsuite/20_util/variant/hash.cc: Likewise.
5375 * testsuite/20_util/variant/index_type.cc: Likewise.
5376 * testsuite/20_util/variant/relops/89851.cc: Likewise.
5377 * testsuite/20_util/variant/relops/90008.cc: Likewise.
5378 * testsuite/20_util/variant/run.cc: Likewise.
5379 * testsuite/20_util/variant/visit.cc: Likewise.
5381 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5383 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
5384 -std=gnu++17 from dg-options directive.
5385 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
5386 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
5387 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
5388 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
5389 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
5390 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
5391 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
5392 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
5394 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
5395 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
5396 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
5397 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
5398 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
5399 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
5401 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
5402 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
5404 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
5406 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
5407 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
5408 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
5409 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
5410 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
5411 * testsuite/27_io/filesystem/operations/create_directories.cc:
5413 * testsuite/27_io/filesystem/operations/create_directory.cc:
5415 * testsuite/27_io/filesystem/operations/create_symlink.cc:
5417 * testsuite/27_io/filesystem/operations/current_path.cc:
5419 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
5420 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
5421 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
5422 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
5423 * testsuite/27_io/filesystem/operations/last_write_time.cc:
5425 * testsuite/27_io/filesystem/operations/permissions.cc:
5427 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
5428 * testsuite/27_io/filesystem/operations/read_symlink.cc:
5430 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
5431 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
5432 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
5433 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
5434 * testsuite/27_io/filesystem/operations/resize_file.cc:
5436 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
5437 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
5438 * testsuite/27_io/filesystem/operations/symlink_status.cc:
5440 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
5442 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
5444 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
5445 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
5446 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
5447 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
5448 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
5449 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5450 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
5451 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
5452 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
5453 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
5454 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
5455 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
5456 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
5457 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
5458 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
5459 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
5460 * testsuite/27_io/filesystem/path/construct/default.cc:
5462 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
5463 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
5464 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
5465 * testsuite/27_io/filesystem/path/construct/string_view.cc:
5467 * testsuite/27_io/filesystem/path/decompose/extension.cc:
5469 * testsuite/27_io/filesystem/path/decompose/filename.cc:
5471 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5473 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
5475 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
5477 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
5479 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
5481 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
5482 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
5484 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
5485 * testsuite/27_io/filesystem/path/generation/normal.cc:
5487 * testsuite/27_io/filesystem/path/generation/normal2.cc:
5489 * testsuite/27_io/filesystem/path/generation/proximate.cc:
5491 * testsuite/27_io/filesystem/path/generation/relative.cc:
5493 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
5494 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
5496 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
5497 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
5498 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5499 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
5500 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
5501 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
5502 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
5504 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
5506 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
5508 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
5510 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
5511 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
5512 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
5514 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
5515 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
5516 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
5517 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
5519 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
5520 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
5521 * testsuite/27_io/filesystem/path/query/has_extension.cc:
5523 * testsuite/27_io/filesystem/path/query/has_filename.cc:
5525 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
5527 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
5529 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
5531 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
5533 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
5535 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
5536 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
5538 * testsuite/27_io/filesystem/path/query/is_relative.cc:
5540 * testsuite/experimental/filesystem/path/construct/string_view.cc:
5543 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5545 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5546 Remove -std=gnu++17 from dg-options.
5547 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5549 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5551 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5553 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5554 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5556 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5558 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5560 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5562 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5564 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5566 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5568 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5570 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5572 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5574 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5576 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5578 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5580 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5582 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5584 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5586 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5588 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5590 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5592 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5594 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5596 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5598 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5600 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5602 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5604 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5606 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5608 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5610 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5612 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5614 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5616 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5618 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5620 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5622 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5624 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
5625 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5627 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5629 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5631 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5633 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5635 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
5636 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
5637 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
5638 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
5639 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
5640 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
5641 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
5642 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5644 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
5645 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
5646 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5648 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5651 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5653 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
5654 for additional errors in C++20.
5655 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5657 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
5658 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5660 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5662 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
5663 clash with std::any.
5665 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
5667 * include/std/istream (__rvalue_stream_extraction_t): Replace
5668 use of __rval_streamable.
5669 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
5670 (__rval_streamable): Remove.
5671 (_Require_derived_from_ios_base, __derived_from_ios_base): New
5672 helper for checking constraints.
5673 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
5674 reference to the wrong subclause of the standard.
5675 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5677 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5679 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5681 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
5683 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
5686 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5688 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
5689 Improve static_assert messages.
5690 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
5691 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
5693 2021-05-06 Patrick Palka <ppalka@redhat.com>
5695 * include/std/ranges (filter_view::_Iterator::base): Make the
5696 const& overload unconstrained and return a const reference as
5697 per LWG 3533. Make unconditionally noexcept.
5698 (transform_view::_Iterator::base): Likewise.
5699 (elements_view::_Iterator::base): Likewise.
5701 2021-05-06 Patrick Palka <ppalka@redhat.com>
5703 * include/bits/stl_iterator.h (move_iterator::base): Make the
5704 const& overload unconstrained and return a const reference as
5705 per LWG 3391. Make unconditionally noexcept.
5706 (counted_iterator::base): Likewise.
5707 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
5708 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
5709 has_member_base concept to decay-copy the result of base().
5711 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5713 * include/std/type_traits (remove_cvref_t): Define in terms of
5715 * testsuite/20_util/remove_cvref/value.cc: Check alias.
5717 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5720 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5722 * include/std/charconv (__from_chars_alnum): Pass unsigned
5723 char to std::isdigit.
5725 2021-05-05 Patrick Palka <ppalka@redhat.com>
5727 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
5728 Remove constraints on this partial specialization.
5729 * include/std/ranges (enable_borrowed_range<iota_view>):
5732 2021-05-05 Patrick Palka <ppalka@redhat.com>
5734 * include/std/ranges (transform_view::_Iterator::iter_swap):
5735 Remove as per LWG 3520.
5736 (join_view::_Iterator::iter_swap): Add indirectly_swappable
5737 constraint as per LWG 3517.
5739 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5741 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
5743 * testsuite/20_util/function_objects/invoke/version.cc: New test.
5745 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5747 * include/std/charconv (__from_chars_alnum): Pass unsigned
5748 char to std::isdigit.
5750 2021-05-05 Corentin Gay <gay@adacore.com>
5752 * acinclude.m4: Add VxWorks-specific case for the
5753 configuration of ctypes.
5754 * configure: Regenerate.
5755 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
5757 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
5758 * config/os/vxworks/ctype_configure_char.cc: Likewise.
5759 * config/os/vxworks/ctype_inline.h: Likewise.
5760 * testsuite/28_regex/traits/char/isctype.cc: Defines
5761 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
5762 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
5764 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5766 * include/std/future (promise::set_value): Check for existence
5767 of shared state before dereferncing it.
5768 (promise::set_exception, promise::set_value_at_thread_exit)
5769 (promise::set_exception_at_thread_exit): Likewise.
5770 (promise<R&>::set_value, promise<R&>::set_exception)
5771 (promise<R&>::set_value_at_thread_exit)
5772 (promise<R&>::set_exception_at_thread_exit): Likewise.
5773 (promise<void>::set_value, promise<void>::set_exception)
5774 (promise<void>::set_value_at_thread_exit)
5775 (promise<void>::set_exception_at_thread_exit): Likewise.
5776 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
5777 Remove unused variable.
5779 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5781 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
5782 Do not do arithmetic on null pointer.
5784 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5786 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
5787 (find_key_pointer(key_const_reference, false_type))
5788 (find_key_pointer(key_const_reference, true_type)): Do not
5789 dereference null pointer.
5791 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5793 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
5795 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
5796 non-zero value to null pointer.
5797 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
5798 Use past-the-end iterator for result.
5799 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
5800 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
5802 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5805 * include/std/variant (__get_t): New alias template yielding the
5806 return type of std::get<N> on a variant.
5807 (__visit_result_t): New alias template yielding the result of
5809 (__same_types): Move into namespace __detail::__variant.
5810 (__check_visitor_results): Likewise. Use __invoke_result_t and
5812 (__check_visitor_result): Remove.
5813 (visit): Use __visit_result_t for return type.
5814 * testsuite/20_util/variant/100384.cc: New test.
5816 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5818 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
5819 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
5820 * config.h.in: Regenerate.
5821 * configure: Regenerate.
5822 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
5823 * include/bits/random.h (_Select_uint_least_t<s, 1>):
5824 Use __SIZEOF_INT128__ to decide whether to use __int128.
5825 * include/std/charconv (__to_chars_unsigned_type): Likewise.
5827 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
5829 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
5830 * doc/html/manual/facets.html: Regenerate.
5832 2021-04-30 Patrick Palka <ppalka@redhat.com>
5834 * include/std/ranges (__detail::__non_propating_cache): Define
5836 (join_view): Remove constraints on the value and reference types
5837 of the wrapped iterator type as per P2328.
5838 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
5839 (join_view::_Iterator::operator++): Likewise.
5840 (join_view::_M_inner): Use __non_propating_cache as per P2328.
5841 Remove now-redundant use of __maybe_present_t.
5842 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
5845 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5847 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
5848 Only define for C++17 and later.
5849 * include/std/version (__cpp_lib_semaphore): Fix condition
5850 to match the one in <semaphore>.
5852 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5854 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
5855 * config.h.in: Regenerate.
5856 * configure: Regenerate.
5857 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
5858 * include/bits/postypes.h: Remove include of <stdint.h> and
5859 definition/undefinition of the __STDC_LIMIT_MACROS and
5860 __STDC_CONSTANT_MACROS macros.
5861 (streamoff): Use __INT64_TYPE__ if defined.
5863 2021-04-30 Patrick Palka <ppalka@redhat.com>
5865 * include/std/ranges (split_view::_InnerIter::operator++):
5866 Depend on _Base instead of _Vp directly, as per LWG 3532.
5868 2021-04-30 Patrick Palka <ppalka@redhat.com>
5870 * include/bits/ranges_util.h (subrange::subrange): Avoid
5871 list-initialization in delegating constructor.
5872 * include/std/ranges (single_view): Replace implicit guide
5873 with explicit deduction guide that decays its argument.
5874 (_Single::operator()): Avoid CTAD when constructing the
5876 (_Iota::operator()): Avoid list-initialization.
5877 (__detail::__can_filter_view, _Filter::operator()): Likewise.
5878 (__detail::__can_transform_view, _Transform::operator()): Likewise.
5879 (take_view::begin): Likewise.
5880 (__detail::__can_take_view, _Take::operator()): Likewise.
5881 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
5882 (__detail::__can_drop_view, _Drop::operator()): Likewise.
5883 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
5884 (split_view::split_view): Use views::single when initializing
5886 (__detail::__can_split_view, _Split::operator()): Avoid
5887 list-initialization.
5888 (_Counted::operator()): Likewise.
5889 * testsuite/std/ranges/p2367.cc: New test.
5891 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5894 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
5896 * include/bits/basic_string.tcc (basic_string::swap)
5897 (basic_string::assign): Likewise.
5898 * include/bits/deque.tcc (deque::operator=(const deque&)):
5900 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
5902 * include/bits/vector.tcc (vector::operator=(const vector&)):
5905 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5907 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
5909 * include/std/ostream (operator<<(Ostream&&, const x&)):
5911 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
5912 Adjust dg-error pattern.
5913 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
5915 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
5916 is_extractable trait to replace std::__is_extractable. Make it
5917 work with rvalue streams as well as lvalues, to replace f() and
5918 g() helper functions.
5919 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5921 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5922 Define is_insertable trait to replace std::__is_insertable. Make
5923 it work with rvalue streams as well as lvalues, to replace f()
5924 and g() helper functions.
5925 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5927 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
5928 errors from new constraints.
5929 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
5930 which are no longer expected to compile.
5931 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
5932 Verify LWG 1203 changes.
5934 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5937 * include/experimental/socket (__basic_socket_impl::set_option)
5938 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5939 Just set error code.
5940 * testsuite/experimental/net/socket/socket_base.cc: CHeck
5941 for <sys/socket.h> not <socket.h>.
5943 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5948 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5949 Use new effective-target keyword.
5950 * testsuite/experimental/net/internet/address/v4/cons.cc:
5952 * testsuite/experimental/net/internet/address/v4/creation.cc:
5954 * testsuite/experimental/net/internet/address/v4/members.cc:
5956 * testsuite/experimental/net/internet/address/v6/members.cc:
5958 * testsuite/experimental/net/internet/resolver/base.cc:
5960 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5962 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5964 * testsuite/experimental/net/internet/socket/opt.cc:
5966 * testsuite/experimental/net/internet/tcp.cc:
5968 * testsuite/experimental/net/internet/udp.cc:
5970 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5971 New proc to check net_ts_ip et.
5973 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5976 * testsuite/20_util/pair/requirements/structural.cc: New test.
5978 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5980 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5981 new definitions for constructors and assignment operators using
5982 concepts for constraints.
5983 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5985 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5986 expected error messages to also match C++20 errors.
5988 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5991 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5992 Combine and replace with ...
5993 (_PCC::_DeprConsPair): New SFINAE helper function.
5994 (pair): Merge preprocessor blocks so that all C++03 members
5995 are defined together at the end.
5996 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5997 Replace _T1 and _T2 parameters with __null_ptr_constant and
5999 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
6000 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
6001 * testsuite/20_util/pair/cons/99957.cc: New test.
6003 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6005 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
6006 * include/std/version (__cpp_lib_constexpr_string): Define.
6007 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
6008 Check for __cpp_lib_constexpr_string.
6009 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
6011 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
6013 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6015 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
6016 dealing with errors. Use '@' to prevent shell command being
6018 * doc/Makefile.in: Regenerate.
6020 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6023 * include/bits/std_thread.h (thread::hardware_concurrency): Add
6024 missing noexcept to inline definition for non-gthreads targets.
6026 2021-04-28 Patrick Palka <ppalka@redhat.com>
6032 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
6033 the __value_comp lambda an explicit bool return type.
6034 (__is_permutation_fn::operator()): Give the __proj_scan local
6035 variable auto&& return type. Give the __comp_scan lambda an
6036 explicit bool return type.
6037 (__remove_fn::operator()): Give the __pred lambda an explicit
6039 (__partition_fn::operator()): Don't std::move __first twice
6040 when returning an empty subrange.
6041 (__min_fn::operator()): Don't std::move __comp.
6042 (__max_fn::operator()): Likewise.
6043 (__minmax_fn::operator()): Likewise.
6045 2021-04-27 Patrick Palka <ppalka@redhat.com>
6048 * include/std/ranges (join_view::_Iterator::operator++): Correct
6049 the return type of the lambda to avoid returning a copy of
6050 _M_parent->_M_inner.
6051 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
6053 2021-04-27 Jakub Jelinek <jakub@redhat.com>
6056 2021-04-22 Jakub Jelinek <jakub@redhat.com>
6059 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
6061 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
6064 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6066 * include/experimental/internet (address_v6::bytes_type): Adjust
6068 (basic_endpoint): Define _M_is_v6() to put all checks for
6069 AF_INET6 in one place.
6070 (basic_endpoint::resize): Simplify.
6071 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
6072 (operator!=(const tcp&, const tcp&)): Likewise.
6073 (operator==(const udp&, const udp&)): Likewise.
6074 (operator!=(const udp&, const udp&)): Likewise.
6075 * testsuite/experimental/net/internet/tcp.cc: New test.
6076 * testsuite/experimental/net/internet/udp.cc: New test.
6078 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6081 * include/experimental/internet (resolver_errc, resolver_category())
6082 (make_error_code, make_error_condition): Define unconditionally,
6083 only make enumerators and use of gai_strerror depend on the
6084 availability of <netdb.h>.
6085 (address_v4::to_string): Use correct constant for string length.
6086 (address_v4::to_string, address_v6::to_string): Define
6087 unconditionally, throw if unsupported.
6088 (make_address_v4, make_address_v6): Define unconditionally.
6089 Return an error if unsupported.
6090 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
6092 * testsuite/experimental/net/internet/socket/opt.cc: Check for
6093 <netinet/in.h> and <netinet/tcp.h> before using types from
6096 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6099 * include/experimental/internet (resolver_base::flags):
6100 Define overloaded operators as hidden friends.
6101 * include/experimental/socket (socket_base::message_flags):
6104 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6106 * include/experimental/internet (tcp::no_delay, v6_only)
6107 (unicast::hops, multicast::hops, multicast::enable_loopback):
6108 Change access of base class and static data members. Add
6109 using-declaration for __socket_crtp::operator=(_Tp).
6110 (multicast::__mcastopt): New type.
6111 (multicast::join_group, multicast::leave_group): Derive from
6112 __mcastopt for common implementation.
6113 * include/experimental/socket: Add comment.
6114 * testsuite/experimental/net/internet/socket/opt.cc: New test.
6115 * testsuite/experimental/net/socket/socket_base.cc: Check for
6116 protected constructor/destructor of socket_base. Check for
6117 explicit constructors of socket option classes.
6119 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6121 * include/experimental/bits/net.h (__socket_base): Add
6122 bool template parameter to allow BooleanSocketOption and
6123 IntegerSocketOption to have different __socket_base<int>
6125 (__socket_base<bool>): Adjust base class.
6126 (__socket_base<int>): Add partial specialization.
6127 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
6128 * include/experimental/socket (socket_base::broadcast)
6129 (socket_base::debug, socket_base::do_not_route)
6130 (socket_base::keep_alive, socket_base::linger)
6131 (socket_base::out_of_band_inline)
6132 (socket_base::receive_buffer_size)
6133 (socket_base::receive_low_watermark)
6134 (socket_base::reuse_address, socket_base::send_buffer_size)
6135 (socket_base::send_low_watermark): Add using-declaration for
6136 __socket_crtp::operator=(_Tp).
6137 * testsuite/experimental/net/socket/socket_base.cc: Check
6138 properties of socket option types.
6140 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6142 * include/experimental/internet (resolver_base::flags): Remove
6143 enumerators. Initialize constants directly with desired values.
6144 Make all operators constexpr and noexcept.
6145 * testsuite/experimental/net/internet/resolver/base.cc: Use
6146 __gnu_test::test_bitmask_values for bitmask type. Check
6147 construction and destruction is protected.
6149 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6151 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
6153 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6156 * include/experimental/internet (net::ip::make_error_code)
6157 (net::ip::make_error_condition, net::ip::make_network_v4)
6158 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
6160 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
6162 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
6163 (add_options_for_libatomic): Use atomic_link_flags.
6165 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
6168 * include/experimental/io_context (io_context): Define
6169 dummy_pollfd type so that most member functions still compile
6170 without <poll.h> and struct pollfd.
6172 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
6174 * include/experimental/io_context (io_context::async_wait): Add
6176 * include/experimental/socket (basic_socket::async_connect):
6177 Cast wait_type constant to int.
6178 (basic_datagram_socket::async_receive): Likewise.
6179 (basic_datagram_socket::async_receive_from): Likewise.
6180 (basic_datagram_socket::async_send): Likewise.
6181 (basic_datagram_socket::async_send_to): Likewise.
6182 (basic_stream_socket::async_receive): Likewise.
6183 (basic_stream_socket::async_send): Likewise. Use io_context
6184 parameter directly, instead of via an executor.
6185 (basic_socket_acceptor::async_accept): Likewise.
6187 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
6189 * include/experimental/socket (socket_base::shutdown_type):
6190 (socket_base::wait_type, socket_base::message_flags):
6191 Remove enumerators. Initialize constants directly with desired
6193 (socket_base::message_flags): Make all operators constexpr and
6195 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
6197 * testsuite/experimental/net/socket/socket_base.cc: New test.
6199 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
6201 * config/os/aix/atomicity.h: Delete.
6203 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6205 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
6206 Handle system_clock as well as steady_clock.
6207 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
6208 * testsuite/30_threads/semaphore/try_acquire_until.cc:
6211 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6213 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
6214 options for libatomic.
6216 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6218 * config/os/gnu-linux/os_defines.h: Fix type in comment.
6220 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6223 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
6224 is not an array type.
6225 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
6226 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
6228 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
6230 * include/bits/atomic_wait.h: Always notify waiters in the
6231 case of 'bare' address notification.
6233 2021-04-22 Jakub Jelinek <jakub@redhat.com>
6236 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
6238 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
6241 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6244 * include/bits/semaphore_base.h: Remove #error.
6245 * include/std/semaphore: Do not define anything unless one of
6246 the implementations is available.
6248 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
6250 * include/bits/semaphore_base.h: Always reload __old in
6251 __atomic_semaphore::_S_do_try_acquire().
6252 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
6255 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
6256 Jonathan Wakely <jwakely@redhat.com>
6259 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
6260 * python/Makefile.in: Regenerate.
6262 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
6264 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
6265 member to __platform_wait.
6267 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
6269 * include/std/latch: Replace tab characters in license text.
6270 * include/std/semaphore: Likewise.
6272 2021-04-21 Jakub Jelinek <jakub@redhat.com>
6275 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
6276 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
6277 * configure: Regenerated.
6278 * config.h.in: Regenerated.
6280 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
6282 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
6283 test for targets not using futexes for semaphores.
6284 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6285 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
6286 Disable for all targets.
6288 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
6290 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
6291 * include/Makefile.in: Regenerate.
6292 * include/bits/this_thread_sleep.h: New file.
6293 * include/bits/atomic_base.h: Adjust all calls
6294 to __atomic_wait/__atomic_notify for new call signatures.
6295 * include/bits/atomic_timed_wait.h: Extensive rewrite.
6296 * include/bits/atomic_wait.h: Likewise.
6297 * include/bits/semaphore_base.h: Adjust all calls
6298 to __atomic_wait/__atomic_notify for new call signatures.
6299 * include/std/atomic: Likewise.
6300 * include/std/barrier: Likewise.
6301 * include/std/latch: Likewise.
6302 * include/std/semaphore: Likewise.
6303 * include/std/thread (this_thread::sleep_for)
6304 (this_thread::sleep_until): Move to new header.
6305 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
6307 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6308 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6309 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6310 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
6311 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
6312 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
6314 2021-04-20 Patrick Palka <ppalka@redhat.com>
6317 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
6319 (move_iterator): Derive from the above in C++20 in order to
6320 conditionally define iterator_category as per P2259.
6321 (move_iterator::__base_cat): No longer used, so remove.
6322 (move_iterator::iterator_category): Remove in C++20.
6323 (__detail::__common_iter_use_postfix_proxy): Define.
6324 (common_iterator::_Proxy): Rename to ...
6325 (common_iterator:__arrow_proxy): ... this.
6326 (common_iterator::__postfix_proxy): Define as per P2259.
6327 (common_iterator::operator->): Adjust.
6328 (common_iterator::operator++): Adjust as per P2259.
6329 (iterator_traits<common_iterator>::_S_iter_cat): Define.
6330 (iterator_traits<common_iterator>::iterator_category): Change as
6332 (__detail::__counted_iter_value_type): Define.
6333 (__detail::__counted_iter_concept): Define.
6334 (__detail::__counted_iter_cat): Define.
6335 (counted_iterator): Derive from the above three classes in order
6336 to conditionally define value_type, iterator_concept and
6337 iterator category respectively as per P2259.
6338 (counted_iterator::operator->): Define as per P2259.
6339 (incrementable_traits<counted_iterator>): Remove as per P2259.
6340 (iterator_traits<counted_iterator>): Adjust as per P2259.
6341 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
6342 (iota_view::_Iterator): Derive from the above in order to
6343 conditionally define iterator_category as per P2259.
6344 (iota_view::_S_iter_cat): Rename to ...
6345 (iota_view::_S_iter_concept): ... this.
6346 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
6347 (iota_view::iterator_category): Remove.
6348 (__detail::__filter_view_iter_cat): Define.
6349 (filter_view::_Iterator): Derive from the above in order to
6350 conditionally define iterator_category as per P2259.
6351 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
6352 (filter_view::_Iterator::iterator_category): Remove.
6353 (transform_view::_Base): Define.
6354 (transform_view::__iter_cat): Define.
6355 (transform_view::_Iterator): Derive from the above in order to
6356 conditionally define iterator_category as per P2259.
6357 (transform_view::_Iterator::_Base): Just alias
6358 transform_view::_Base.
6359 (transform_view::_Iterator::_S_iter_cat): Move to struct
6360 transform_view::__iter_cat.
6361 (transform_view::_Iterator::iterator_category): Remove.
6362 (transform_view::_Sentinel::_Base): Just alias
6363 transform_view::_Base.
6364 (join_view::_Base): Define.
6365 (join_view::_Outer_iter): Define.
6366 (join_view::_Inner_iter): Define.
6367 (join_view::_S_ref_is_glvalue): Define.
6368 (join_view::__iter_cat): Define.
6369 (join_view::_Iterator): Derive from it in order to conditionally
6370 define iterator_category as per P2259.
6371 (join_view::_Iterator::_Base): Just alias join_view::_Base.
6372 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
6373 join_view::_S_ref_is_glvalue.
6374 (join_view::_Iterator::_S_iter_cat): Move to struct
6375 transform_view::__iter_cat.
6376 (join_view::_Iterator::_Outer_iter): Just alias
6377 join_view::_Outer_iter.
6378 (join_view::_Iterator::_Inner_iter): Just alias
6379 join_view::_Inner_iter.
6380 (join_view::_Iterator::iterator_category): Remove.
6381 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
6382 (__detail::__split_view_outer_iter_cat): Define.
6383 (__detail::__split_view_inner_iter_cat): Define.
6384 (split_view::_Base): Define.
6385 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
6386 in order to conditionally define iterator_category as per P2259.
6387 (split_view::_Outer_iter::iterator_category): Remove.
6388 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
6389 in order to conditionally define iterator_category as per P2259.
6390 (split_view::_Inner_iter::_S_iter_cat): Move to
6391 __split_view_inner_iter_cat.
6392 (split_view::_Inner_iter::iterator_category): Remove.
6393 (elements_view::_Base): Define.
6394 (elements_view::__iter_cat): Define.
6395 (elements_view::_Iterator): Derive from the above in order to
6396 conditionall define iterator_category as per P2259.
6397 (elements_view::_Iterator::_Base): Just alias
6398 elements_view::_Base.
6399 (elements_view::_Iterator::_S_iter_concept)
6400 (elements_view::_Iterator::iterator_concept): Define as per
6402 (elements_view::_Iterator::iterator_category): Remove.
6403 (elements_view::_Sentinel::_Base): Just alias
6404 elements_view::_Base.
6405 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
6406 Adjust constraints on iterator_traits<counted_iterator>.
6407 * testsuite/std/ranges/p2259.cc: New test.
6409 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
6412 * include/std/charconv (__cpp_lib_to_chars): Define
6414 * include/std/version (__cpp_lib_to_chars): Likewise..
6415 * testsuite/20_util/from_chars/4.cc: Only check feature test
6416 macro, not _GLIBCXX_HAVE_USELOCALE.
6417 * testsuite/20_util/from_chars/5.cc: Likewise.
6418 * testsuite/20_util/from_chars/6.cc: Likewise.
6419 * testsuite/20_util/to_chars/long_double.cc: Likewise.
6421 2021-04-20 Jakub Jelinek <jakub@redhat.com>
6423 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
6424 versions with _IEEE128_ substring are found, set ieee_version_found
6425 to true. Ignore missing symbols with _IEEE128_ in version name if
6426 !ieee_version_found. Use i->first as version_name instead of
6427 i->second.version_name if the latter is empty.
6428 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6430 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
6432 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
6435 2021-04-17 Jakub Jelinek <jakub@redhat.com>
6437 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
6438 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
6440 2021-04-17 Jakub Jelinek <jakub@redhat.com>
6442 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6443 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6444 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
6445 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6446 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6447 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6449 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
6451 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
6452 add libatomic options for 32-bit sparc*-*-linux-gnu.
6454 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
6457 * libsupc++/Makefile.am: Add atomicity.cc here.
6458 * src/c++98/Makefile.am: Remove it from here.
6459 * libsupc++/Makefile.in: Regenerate.
6460 * src/c++98/Makefile.in: Regenerate.
6461 * testsuite/18_support/exception_ptr/96657.cc: New test.
6463 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
6466 * include/std/bit: Only include <ext/numeric_traits.h> for
6467 hosted build, use <limits> otherwise.
6469 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
6471 * doc/xml/manual/backwards_compatibility.xml: Remove porting
6472 notes for libg++ and libstdc++-v2, and bibliography.
6473 * doc/html/*: Regenerated.
6475 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6478 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
6479 Remove helper concept.
6480 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
6481 deduction guides, as per LWG 3404.
6482 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
6483 template argument deduction fails.
6485 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6487 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
6488 Adjust expected error for C++20 mode.
6489 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
6492 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6495 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
6496 standard headers and XFAIL for effective-target c++20.
6498 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
6501 * include/debug/helper_functions.h (__can_advance(_InputIterator,
6502 const std::pair<_Diff, _Distance_precision>&, int)): New.
6503 (__can_advance(const _Safe_iterator<>&,
6504 const std::pair<_Diff, _Distance_precision>&, int)): New.
6505 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
6507 (__glibcxx_check_can_increment_range): Adapt to use latter.
6508 (__glibcxx_check_can_decrement_range): Likewise.
6509 * include/debug/safe_iterator.h
6510 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6512 (__can_advance(const _Safe_iterator<>&,
6513 const std::pair<_Diff, _Distance_precision>&, int)): New.
6514 * include/debug/safe_iterator.tcc
6515 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6517 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
6518 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
6520 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
6521 (__copy_move_backward_a): Likewise.
6522 (__equal_aux): Likewise.
6523 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
6524 const std::pair<_Diff, _Distance_precision>&, int)): New.
6525 (__can_advance(const std::move_iterator<>&,
6526 const std::pair<_Diff, _Distance_precision>&, int)): New.
6527 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
6529 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6532 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
6533 to be a valid constexpr function in C++11.
6534 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
6536 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6538 * include/bits/fs_fwd.h: Fix doxygen group command.
6539 * include/bits/streambuf_iterator.h: Likewise.
6540 * include/bits/uses_allocator_args.h: Likewise.
6541 * include/std/memory: Likewise.
6542 * include/tr1/complex: Likewise.
6544 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6546 * include/bits/basic_string.h: Tweak doxygen comment.
6548 2021-04-08 Patrick Palka <ppalka@redhat.com>
6550 * include/std/ranges (__detail::find): Define.
6551 (split_view::_OuterIter::operator++): Apply proposed resolution
6553 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
6555 2021-04-08 Patrick Palka <ppalka@redhat.com>
6557 * include/std/ranges (__detail::find_if): Simplify.
6558 (__detail::find_if_not): Likewise.
6559 (__detail::min): Remove.
6560 (__detail::mismatch): Simplify.
6561 (take_view::size): Use std::min instead of __detail::min.
6563 2021-04-08 Patrick Palka <ppalka@redhat.com>
6565 * include/std/ranges (__detail::__returnable_element): New
6567 (elements_view): Use this concept in its constraints. Add
6568 missing private access specifier.
6569 (elements_view::_S_get_element): Define as per LWG 3502.
6570 (elements_view::operator*, elements_view::operator[]): Use
6572 (elements_view::operator++): Remove unnecessary constraint
6574 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
6576 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6578 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
6579 out-of-memory error in log file.
6580 * doc/Makefile.in: Regenerate.
6582 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6584 * configure: Regenerate.
6586 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6588 * include/bits/random.h: Fix doxygen group commands.
6589 * include/bits/regex_constants.h: Likewise.
6590 * include/tr1/random.h: Likewise.
6592 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6594 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
6595 New function to determine noexcept-specifier for move
6597 (_Hashtable): Use _S_nothrow_move() on move constructors.
6598 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
6599 Correct static assertion message.
6600 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
6602 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
6604 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
6607 2021-04-08 Patrick Palka <ppalka@redhat.com>
6610 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
6611 on targets without a large long double. XFAIL the execution on
6612 targets with a non-conforming printf.
6614 2021-04-08 Patrick Palka <ppalka@redhat.com>
6617 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
6618 (__adaptor::__adaptor_invocable): New concept.
6619 (__adaptor::__adaptor_partial_app_viable): New concept.
6620 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
6621 non-template base class.
6622 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
6624 (__adaptor::_Partial): New class template that represents
6625 partial application of a range adaptor non-closure.
6626 (__adaptor::__pipe_invocable): New concept.
6627 (__adaptor::_Pipe): New class template.
6628 (__detail::__can_ref_view): New concept.
6629 (__detail::__can_subrange): New concept.
6630 (all): Replace the lambda here with ...
6631 (_All): ... this functor. Add appropriate constraints.
6632 (__detail::__can_filter_view): New concept.
6633 (filter, _Filter): As in all/_All.
6634 (__detail::__can_transform): New concept.
6635 (transform, _Transform): As in all/_All.
6636 (__detail::__can_take_view): New concept.
6637 (take, _Take): As in all/_All.
6638 (__detail::__can_take_while_view): New concept.
6639 (take_while, _TakeWhile): As in all/_All.
6640 (__detail::__can_drop_view): New concept.
6641 (drop, _Drop): As in all/_All.
6642 (__detail::__can_drop_while_view): New concept.
6643 (drop_while, _DropWhile): As in all/_All.
6644 (__detail::__can_join_view): New concept.
6645 (join, _Join): As in all/_All.
6646 (__detail::__can_split_view): New concept.
6647 (split, _Split): As in all/_All. Rename template parameter
6649 (__detail::__already_common): New concept.
6650 (__detail::__can_common_view): New concept.
6651 (common, _Common): As in all/_All.
6652 (__detail::__can_reverse_view): New concept.
6653 (reverse, _Reverse): As in all/_All.
6654 (__detail::__can_elements_view): New concept.
6655 (elements, _Elements): As in all/_All.
6656 (keys, values): Adjust.
6657 * testsuite/std/ranges/adaptors/99433.cc: New test.
6658 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
6659 adding empty range adaptor closure objects to a pipeline doesn't
6660 increase the size of the pipeline.
6662 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
6663 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
6664 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
6665 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
6666 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
6667 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
6668 * testsuite/std/ranges/adaptors/p2281.cc: New test.
6669 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
6670 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
6673 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
6674 expected error message.
6675 (test02): Likewise. Extend test.
6676 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
6677 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
6678 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
6681 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6683 * include/std/string_view: Adjust Doxygen @file comment.
6685 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6687 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
6688 specialization to not match incomplete enum types. Use a
6689 requires-expression instead of instantiating is_convertible.
6690 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
6691 * testsuite/20_util/is_scoped_enum/value.cc: Check with
6692 incomplete types and opaque-enum-declarations.
6694 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
6697 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
6698 non-const member on _M_pathname, to avoid copy-on-write.
6699 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6700 Check construction from strings that might be shared.
6702 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6704 * include/bits/move.h (forward, move, move_if_noexcept)
6705 (addressof): Add _GLIBCXX_NODISCARD.
6706 * include/bits/ranges_cmp.h (identity::operator()): Add
6707 nodiscard attribute.
6708 * include/c_global/cstddef (to_integer): Likewise.
6709 * include/std/bit (bit_cast): Likewise.
6710 * include/std/utility (as_const, to_underlying): Likewise.
6712 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6714 * include/bits/move.h (forward): Change static_assert message
6715 to be unambiguous about what must be true.
6716 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
6717 * testsuite/20_util/forward/f_neg.cc: Likewise.
6719 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6721 * include/bits/alloc_traits.h: Use markdown for code font.
6722 * include/bits/basic_string.h: Fix @param names.
6723 * include/bits/max_size_type.h: Remove period after @file.
6724 * include/bits/regex.h: Fix duplicate @retval names, and rename.
6725 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
6726 group open to match existing group close.
6727 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
6730 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6732 * include/bits/atomic_base.h: Fix doxygen group close.
6733 * include/bits/basic_ios.h: Likewise.
6734 * include/bits/forward_list.h: Likewise.
6735 * include/bits/fs_dir.h: Likewise.
6736 * include/bits/fs_ops.h: Likewise.
6737 * include/bits/fs_path.h: Likewise.
6738 * include/bits/functional_hash.h: Likewise.
6739 * include/bits/gslice.h: Likewise.
6740 * include/bits/gslice_array.h: Likewise.
6741 * include/bits/hashtable_policy.h: Likewise.
6742 * include/bits/indirect_array.h: Likewise.
6743 * include/bits/locale_classes.h: Likewise.
6744 * include/bits/locale_facets.h: Likewise.
6745 * include/bits/locale_facets_nonio.h: Likewise.
6746 * include/bits/mask_array.h: Likewise.
6747 * include/bits/refwrap.h: Likewise.
6748 * include/bits/regex.h: Likewise.
6749 * include/bits/regex_automaton.h: Likewise.
6750 * include/bits/regex_compiler.h: Likewise.
6751 * include/bits/regex_constants.h: Likewise.
6752 * include/bits/regex_error.h: Likewise.
6753 * include/bits/regex_executor.h: Likewise.
6754 * include/bits/regex_scanner.h: Likewise.
6755 * include/bits/shared_ptr.h: Likewise.
6756 * include/bits/shared_ptr_atomic.h: Likewise.
6757 * include/bits/shared_ptr_base.h: Likewise.
6758 * include/bits/slice_array.h: Likewise.
6759 * include/bits/specfun.h: Likewise.
6760 * include/bits/std_function.h: Likewise.
6761 * include/bits/std_mutex.h: Likewise.
6762 * include/bits/stl_deque.h: Likewise.
6763 * include/bits/stl_iterator.h: Likewise.
6764 * include/bits/stl_iterator_base_types.h: Likewise.
6765 * include/bits/stl_map.h: Likewise.
6766 * include/bits/stl_multimap.h: Likewise.
6767 * include/bits/stl_multiset.h: Likewise.
6768 * include/bits/stl_numeric.h: Likewise.
6769 * include/bits/stl_pair.h: Likewise.
6770 * include/bits/stl_set.h: Likewise.
6771 * include/bits/stl_uninitialized.h: Likewise.
6772 * include/bits/stream_iterator.h: Likewise.
6773 * include/bits/streambuf_iterator.h: Likewise.
6774 * include/bits/unique_ptr.h: Likewise.
6775 * include/bits/unordered_map.h: Likewise.
6776 * include/bits/unordered_set.h: Likewise.
6777 * include/decimal/decimal: Likewise.
6778 * include/experimental/any: Likewise.
6779 * include/experimental/array: Likewise.
6780 * include/experimental/bits/fs_dir.h: Likewise.
6781 * include/experimental/bits/fs_fwd.h: Likewise.
6782 * include/experimental/bits/fs_ops.h: Likewise.
6783 * include/experimental/bits/fs_path.h: Likewise.
6784 * include/experimental/buffer: Likewise.
6785 * include/experimental/internet: Likewise.
6786 * include/experimental/optional: Likewise.
6787 * include/experimental/propagate_const: Likewise.
6788 * include/experimental/socket: Likewise.
6789 * include/ext/pb_ds/assoc_container.hpp: Likewise.
6790 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
6792 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
6793 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
6794 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
6795 * include/ext/pb_ds/exception.hpp: Likewise.
6796 * include/ext/pb_ds/priority_queue.hpp: Likewise.
6797 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
6798 * include/ext/random: Likewise.
6799 * include/std/any: Likewise.
6800 * include/std/atomic: Likewise.
6801 * include/std/bitset: Likewise.
6802 * include/std/chrono: Likewise.
6803 * include/std/complex: Likewise.
6804 * include/std/condition_variable: Likewise.
6805 * include/std/fstream: Likewise.
6806 * include/std/future: Likewise.
6807 * include/std/iostream: Likewise.
6808 * include/std/istream: Likewise.
6809 * include/std/mutex: Likewise.
6810 * include/std/numeric: Likewise.
6811 * include/std/ostream: Likewise.
6812 * include/std/ratio: Likewise.
6813 * include/std/shared_mutex: Likewise.
6814 * include/std/stdexcept: Likewise.
6815 * include/std/streambuf: Likewise.
6816 * include/std/system_error: Likewise.
6817 * include/std/thread: Likewise.
6818 * include/std/valarray: Likewise.
6819 * include/std/variant: Likewise.
6820 * include/tr1/cmath: Likewise.
6821 * include/tr1/regex: Likewise.
6822 * include/tr2/dynamic_bitset: Likewise.
6823 * libsupc++/atomic_lockfree_defines.h: Likewise.
6824 * libsupc++/exception: Likewise.
6825 * libsupc++/exception.h: Likewise.
6826 * libsupc++/exception_ptr.h: Likewise.
6827 * libsupc++/nested_exception.h: Likewise.
6829 2021-03-31 Alexandre Oliva <oliva@adacore.com>
6831 * testsuite/30_threads/future/members/poll.cc: Use faster
6832 after-ready call in the calibration loop.
6834 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
6836 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
6837 * doc/html/manual/status.html: Regenerate.
6839 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
6841 * include/debug/forward_list
6842 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
6843 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
6844 call to safe container allocator aware move constructor.
6845 * include/debug/vector (vector(vector&&, const allocator_type&)):
6846 Fix noexcept qualification.
6847 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
6848 Add allocator-extended move constructor noexceot qualification check.
6849 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
6851 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
6853 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
6855 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
6856 New helper functions and callback.
6857 (random_device::_M_init): Add 'prng' and 'all' enumerators.
6858 Replace switch with fallthrough with a series of 'if' statements.
6859 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
6861 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
6863 (random_device::_M_getval): Check for callback unconditionally
6864 and always pass _M_file pointer.
6865 * testsuite/26_numerics/random/random_device/85494.cc: Remove
6866 effective-target check. Use new random_device_available helper.
6867 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
6868 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
6869 Remove effective-target check.
6870 * testsuite/26_numerics/random/random_device/cons/default.cc:
6872 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
6873 new random_device_available helper. Test "prng" token.
6874 * testsuite/util/testsuite_random.h (random_device_available):
6875 New helper function.
6877 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
6879 * include/debug/string
6880 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
6881 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
6882 (basic_string<>::erase): Adapt to take __const_iterator.
6883 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
6884 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
6885 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
6886 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
6887 (__gnu_debug::u16string, __gnu_debug::u32string): New.
6888 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
6889 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
6890 * testsuite/util/exception/safety.h
6891 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
6892 (insert_base<__gnu_debug::basic_string<>>): Likewise.
6893 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
6894 New partial specialization.
6895 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
6896 * testsuite/21_strings/basic_string/requirements/citerators.cc:
6897 Add test on __gnu_debug::string.
6898 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
6899 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
6900 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
6902 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
6904 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
6906 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
6908 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
6910 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
6912 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
6914 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
6916 2021-03-25 Jakub Jelinek <jakub@redhat.com>
6919 * testsuite/18_support/source_location/consteval.cc (main): Adjust
6920 expected column numbers.
6921 * testsuite/18_support/source_location/1.cc (main): Likewise.
6923 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6925 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
6927 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6929 * testsuite/util/exception/safety.h (setup_base::generate):
6930 Support seeding random engine.
6931 (erase_point, erase_range): Adjust range of random numbers to
6932 ensure dereferenceable iterators are used where required.
6933 (generation_prohibited::run): Do not try to erase from empty
6935 * testsuite/util/testsuite_containergen.h (test_containers):
6936 Support seeding random engine.
6938 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6940 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6941 line with a check that uses the const being/end overloads.
6943 2021-03-23 Moritz Sichert <sichert@in.tum.de>
6945 * include/std/ranges (reverse_view::begin, reverse_view::end):
6946 Qualify make_reverse_iterator calls to avoid ADL.
6947 * testsuite/std/ranges/adaptors/reverse.cc: Test that
6948 views::reverse works when make_reverse_iterator is defined
6949 in an associated namespace.
6951 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6953 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6954 Do not define when compiling with Clang.
6956 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6958 * include/std/string_view (basic_string_view(Range&&)): Define new
6959 constructor and deduction guide.
6960 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6961 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6963 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6965 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6966 Add missing 'noexcept' as per LWG 2280.
6967 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6968 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6969 * testsuite/24_iterators/range_access/range_access.cc: Check for
6970 expected noexcept specifiers. Check result types of generic
6971 std::begin and std::end overloads.
6972 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6973 Check for expected noexcept specifiers.
6974 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6977 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
6979 * include/std/type_traits (is_scoped_enum): Define.
6980 * include/std/version (__cpp_lib_is_scoped_enum): Define.
6981 * testsuite/20_util/is_scoped_enum/value.cc: New test.
6982 * testsuite/20_util/is_scoped_enum/version.cc: New test.
6984 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6987 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6988 std::once_flag symbols.
6989 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6990 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6991 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6993 * config/abi/pre/gnu.ver: Likewise.
6994 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6995 (struct __once_flag_compat): Remove.
6996 (_ZNSt9once_flag11_M_activateEv): Remove.
6997 (_ZNSt9once_flag9_M_finishEb): Remove.
6999 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
7002 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
7003 Revert to pthread_once_t implementation.
7004 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
7005 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
7006 (struct __once_flag_compat): New type matching the reverted
7007 implementation of once_flag using futexes.
7008 (once_flag::_M_activate): Remove, replace with ...
7009 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
7010 (once_flag::_M_finish): Remove, replace with ...
7011 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
7012 * testsuite/30_threads/call_once/66146.cc: Removed.
7014 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
7016 * testsuite/17_intro/names.cc: Exclude j from the list
7017 of test symbols for Darwin.
7019 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
7021 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
7022 to_chars and from_chars for long double.
7024 2021-03-15 Patrick Palka <ppalka@redhat.com>
7026 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
7028 (__max_size_type::operator++): Define.
7029 (__max_size_type::operator--): Likewise.
7030 (__max_size_type::operator<=>): Conditionally define (in place
7031 of the other comparison operators).
7032 (__max_diff_type::operator _Tp): Fix formatting.
7033 (__max_diff_type::operator++): Define.
7034 (__max_diff_type::operator--): Likewise.
7035 (__max_diff_type::operator<=>): Conditionally define (in place
7036 of the other comparison operators).
7037 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
7038 these operator overloads.
7040 2021-03-15 Caroline Tice <cmtice@google.com>
7043 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
7044 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
7045 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
7047 * src/Makefile.in: Regenerate.
7049 2021-03-11 Patrick Palka <ppalka@redhat.com>
7051 * src/c++17/floating_to_chars.cc: Simplify the file as if
7052 __SIZEOF_INT128__ is always defined.
7053 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
7054 a base-10 to_chars overload for the uint128_t class type.
7055 * src/c++17/uint128_t.h: New file.
7056 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
7057 execution FAIL on targets that have a large long double type
7060 2021-03-11 Patrick Palka <ppalka@redhat.com>
7062 * src/c++17/ryu/LOCAL_PATCHES: Update.
7063 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
7064 * src/c++17/ryu/generic_128.h: Likewise.
7065 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
7066 Use uint128_t instead of __uint128_t.
7067 (generic_binary_to_decimal): Likewise.
7069 2021-03-11 Patrick Palka <ppalka@redhat.com>
7071 * src/c++17/ryu/LOCAL_PATCHES: New file.
7073 2021-03-11 Patrick Palka <ppalka@redhat.com>
7075 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
7076 defined alias of unsigned __int128.
7077 (floating_type_traits_binary128::mantissa_t): Use uint128_t
7078 instead of unsigned __int128.
7079 (floating_type_traits<long double>::mantissa_t)
7080 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
7081 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
7082 and uint32_t explicit. Simplify the extraction of mantissa,
7083 exponent and sign bit.
7085 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7087 * include/std/barrier (barrier::arrival_token): New move-only
7088 class that encapsulates the underlying token value.
7090 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7092 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
7093 instead of unqualified() method.
7095 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7098 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
7099 Use acq_rel memory ordering.
7101 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7104 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
7105 helper function to check for permission denied errors.
7106 * src/filesystem/dir.cc (recursive_directory_iterator):
7108 * src/filesystem/dir-common.h (is_permission_denied_error): New
7111 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7114 * include/bits/random.h (normal_distribution): Use
7115 default-initializer for _M_saved and _M_saved_available.
7117 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
7119 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
7120 link with libatomic.
7121 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
7122 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
7123 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
7124 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7125 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7126 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7127 * testsuite/30_threads/barrier/completion.cc: Likewise.
7128 * testsuite/30_threads/latch/3.cc: Likewise.
7129 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
7130 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
7131 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
7133 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
7136 * include/bits/align.h: Include debug/assertions.h.
7137 * include/bits/codecvt.h: Include bits/c++config.h.
7138 * include/bits/enable_special_members.h: Likewise.
7139 * include/bits/erase_if.h: Likewise.
7140 * include/bits/functional_hash.h: Include <type_traits>.
7141 * include/bits/invoke.h: Include bits/move.h.
7142 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
7143 * include/bits/parse_numbers.h: Include <type_traits>.
7144 * include/bits/predefined_ops.h: Include bits/c++config.h.
7145 * include/bits/range_access.h: Include bits/stl_iterator.h.
7146 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
7147 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
7148 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
7149 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
7150 * include/bits/unique_lock.h: Include bits/std_mutex.h.
7151 * include/debug/assertions.h: Include bits/c++config.h.
7153 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
7155 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
7156 (ranges::equal_to, ranges::not_equal_to): Do not constrain
7157 with __eq_builtin_ptr_cmp.
7158 (ranges::less, ranges::greater, ranges::less_equal)
7159 (ranges::greater_equal): Do not constrain with
7160 __less_builtin_ptr_cmp.
7161 * libsupc++/compare (compare_three_way): Do not constrain with
7162 __3way_builtin_ptr_cmp.
7163 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
7164 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
7165 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
7167 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
7169 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
7170 C++20 calendar types.
7172 2021-03-06 Jakub Jelinek <jakub@redhat.com>
7175 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
7176 two _Nd which the compiler can pattern match the rotates.
7178 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
7181 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
7182 Make storage larger than required. Verify no write to the last
7184 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
7187 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7189 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
7190 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
7192 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
7193 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
7196 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7198 * include/experimental/bits/simd.h: Replace reserved _X, _B by
7200 * include/experimental/bits/simd_builtin.h: Likewise.
7201 * include/experimental/bits/simd_x86.h: Likewise.
7203 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
7206 * include/std/chrono (year_month_day::_M_days_since_epoch()):
7207 Convert chrono::month and chrono::day to unsigned before
7208 converting to uint32_t.
7210 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7212 * include/std/chrono (year_month_day::_S_from_days): Perform
7213 all calculations with type uint32_t.
7215 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7217 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
7218 * doc/html/manual/abi.html: Regenerate.
7220 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7223 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
7224 FILE instead of FILE.
7226 2021-02-25 Andreas Schwab <schwab@suse.de>
7228 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
7229 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
7230 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
7231 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
7233 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7236 * include/std/chrono (year_month_day::_S_from_days): Cast long
7239 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7241 * include/std/utility (to_underlying): Define.
7242 * include/std/version (__cpp_lib_to_underlying): Define.
7243 * testsuite/20_util/to_underlying/1.cc: New test.
7244 * testsuite/20_util/to_underlying/version.cc: New test.
7246 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
7249 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
7250 before value to be printed.
7252 2021-02-24 Patrick Palka <ppalka@redhat.com>
7254 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
7255 Relax the condition that guards the printf code path to accept
7256 F128_type as well as long double.
7258 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
7260 * include/std/chrono (year_month_day_last:day): New
7263 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
7265 * include/std/chrono (year::is_leap): New implementation.
7266 * testsuite/std/time/year/2.cc: New test.
7268 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
7270 * include/std/chrono (year_month_day::_M_days_since_epoch):
7272 * testsuite/std/time/year_month_day/4.cc: New test.
7274 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
7276 * include/std/chrono (year_month_day::_S_from_days): New
7278 * testsuite/std/time/year_month_day/3.cc: New test.
7280 2021-02-24 Patrick Palka <ppalka@redhat.com>
7283 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
7284 (test01): Simplify verifying the nearby values by using a
7285 2-iteration loop and a dedicated output buffer to check that the
7286 nearby values are different. Factor out the printf-based
7287 verification into a local function, and check that the leading
7288 hex digits agree before comparing to the output of printf. Also
7289 verify the output by round-tripping it through from_chars.
7291 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
7294 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
7295 symbols for long double arguments mangled as 'g'.
7296 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
7297 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
7298 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
7299 Use -mabi=ibmlongdouble for floating_to_chars.cc.
7300 * src/c++17/Makefile.in: Regenerate.
7301 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
7302 New type defining type traits of IEEE binary128 format.
7303 (floating_type_traits<__float128>): Define specialization.
7304 (floating_type_traits<long double>): Define in terms of
7305 floating_type_traits_binary128 when appropriate.
7306 (floating_to_shortest_scientific): Handle __float128.
7307 (sprintf_ld): New function template for printing a long double
7308 or __ieee128 value using sprintf.
7309 (__floating_to_chars_shortest, __floating_to_chars_precision):
7311 (to_chars): Define overloads for __float128.
7313 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
7315 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
7317 2021-02-23 Martin Sebor <msebor@redhat.com>
7320 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
7321 first argument is null.
7323 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7326 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
7329 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7332 * include/bits/char_traits.h (char_traits<char>::compare): For
7333 constexpr evaluation don't call
7334 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
7337 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7340 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
7342 2021-02-23 Patrick Palka <ppalka@redhat.com>
7345 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
7346 the high- and low-order parts from an IBM long double value
7347 in an endian-agnostic way.
7349 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
7351 * include/bits/atomic_wait.h (__thread_relax()): Call
7352 __thread_yield() not __gthread_yield().
7354 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
7356 * include/bits/atomic_wait.h (__thread_yield()): Check
7357 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
7358 (__thread_relax()): Use __thread_yield() instead of repeating
7359 the preprocessor checks for __gthread_yield.
7361 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
7363 * include/std/mutex (once_flag::_M_activate()): Add explicit
7364 return statement for passive case.
7365 (once_flag::_M_finish(bool)): Use reserved name for parameter.
7367 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
7370 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
7372 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7375 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
7377 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7379 * doc/xml/manual/status_cxx2014.xml: Document implementation
7380 specific properties of std::experimental::filesystem::rename.
7381 * doc/xml/manual/status_cxx2017.xml: Document implementation
7382 specific properties of std::filesystem::rename.
7383 * doc/html/*: Regenerate.
7384 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
7385 for directories on Windows.
7386 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
7387 MoveFileExW on Windows.
7388 * testsuite/27_io/filesystem/operations/rename.cc: New test.
7389 * testsuite/experimental/filesystem/operations/rename.cc: New test.
7391 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7393 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
7394 random number to the path.
7396 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7398 * include/experimental/internet (address_v6::to_string): Include
7400 * testsuite/experimental/net/internet/address/v6/members.cc:
7401 Test to_string() results.
7403 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7405 * include/experimental/internet (address_v6::any): Avoid using
7406 memcpy in constexpr function.
7407 (address_v6::loopback): Likewise.
7408 (make_address_v6): Fix missing return statements on error paths.
7409 * include/experimental/io_context: Avoid -Wdangling-else
7411 * testsuite/experimental/net/internet/address/v4/members.cc:
7412 Remove unused variables.
7413 * testsuite/experimental/net/internet/address/v6/members.cc:
7416 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7418 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
7419 Add unused attribute to parameter.
7420 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
7423 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7425 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
7426 if -fno-rtti is used.
7427 * testsuite/30_threads/async/forced_unwind.cc: Expect test
7428 to abort if -fno-rtti is used.
7430 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7432 * testsuite/util/testsuite_allocator.h (memory_resource):
7433 Remove requirement for RTTI and exceptions to be enabled.
7435 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7437 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
7438 static_cast when RTTI is disabled.
7439 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
7441 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
7443 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
7445 * testsuite/27_io/basic_stringstream/str/char/2.cc:
7447 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
7450 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7452 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
7453 as unused and only use dynamic_cast when RTTI is enabled.
7455 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7458 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
7459 Change int parameter to error_code, to match std::ios_failure.
7460 (__throw_ios_failure(const char*, int)): Construct error_code
7463 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
7465 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
7467 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
7468 macro instead of _GLIBCXX_EH_PTR_COMPAT.
7469 (operator==): Likewise.
7471 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
7474 * doc/xml/manual/status_cxx2011.xml: Document when support
7476 * doc/xml/manual/status_cxx2014.xml: Likewise.
7477 * doc/xml/manual/status_cxx2017.xml: Likewise.
7478 * doc/html/manual/status.html: Regenerate.
7480 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7483 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
7485 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7487 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
7488 (fs::remove): Use std::system_category() for error codes from
7490 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
7493 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7495 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
7496 in __MINGW32__ macro name.
7497 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
7498 * testsuite/27_io/filesystem/path/generation/proximate.cc:
7500 * testsuite/27_io/filesystem/path/generation/relative.cc:
7502 * testsuite/util/testsuite_fs.h: Likewise.
7504 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7506 * include/bits/stl_tree.h
7507 (__has_is_transparent, __has_is_transparent_t): Move...
7508 * include/bits/stl_function.h: ...here.
7509 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
7510 (_Hashtable_base<>::_M_equals_tr): New.
7511 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
7512 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
7513 heterogeneous lookup.
7514 (_Hashtable<>::_M_find_before_node_tr): New.
7515 (_Hashtable<>::_M_find_node_tr): New.
7516 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
7517 unordered_map::contains<>, unordered_map::equal_range<>): New member function
7518 templates to perform heterogeneous lookup.
7519 (unordered_multimap::find<>, unordered_multimap::count<>,
7520 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
7521 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
7522 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
7523 (unordered_multiset::find<>, unordered_multiset::count<>,
7524 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
7525 * include/debug/unordered_map
7526 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
7527 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
7528 * include/debug/unordered_set
7529 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
7530 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
7531 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
7532 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
7533 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
7534 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
7536 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7538 * include/bits/stl_deque.h
7539 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
7540 a null pointer test.
7542 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7544 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
7545 test directory after making it writable again.
7546 * testsuite/experimental/filesystem/operations/remove_all.cc:
7549 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7552 * include/std/coroutine (coroutine_handle<P>::from_address): Add
7555 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
7557 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
7558 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
7560 2021-02-09 Jakub Jelinek <jakub@redhat.com>
7563 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
7564 points to the characters moved by earlier _S_move, compute the source
7565 address using expression based on the __p pointer rather than __s
7568 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
7570 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
7571 Add comparison with same category and different values.
7572 * testsuite/19_diagnostics/error_code/operators/less.cc:
7573 Likewise. Fix comparison involving different categories.
7574 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
7576 * testsuite/19_diagnostics/error_condition/operators/less.cc:
7578 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
7581 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
7583 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
7584 calls with a single vaddv for aarch64.
7586 2021-02-03 Matthias Kretz <kretz@kde.org>
7588 * testsuite/Makefile.am: Warn about the workaround. Add
7589 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
7590 Improve initial user feedback from make check-simd.
7591 * testsuite/Makefile.in: Regenerated.
7593 2021-02-03 Matthias Kretz <kretz@kde.org>
7595 * include/experimental/bits/simd.h: Add __detail::_Minimum and
7596 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
7597 Add hmin and hmax overloads for simd and const_where_expression.
7598 * include/experimental/bits/simd_scalar.h
7599 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
7600 parameter const-ref to allow calling _S_reduce with an rvalue.
7601 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
7602 hmin and hmax. Since the compiler statically determined that all
7603 tests pass, repeat the test after a call to make_value_unknown.
7605 2021-02-03 Matthias Kretz <kretz@kde.org>
7607 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
7608 instruction pointer data member. Ensure that the `if (m_failed)`
7609 branch is always inlined into the calling code. The body of the
7610 conditional can still be a function call. Move the get_ip call
7611 into the verify ctor to simplify the ctor calls.
7612 (COMPARE): Don't mention the use of all_of for reduction of a
7613 simd_mask. It only distracts from the real issue.
7615 2021-02-03 Matthias Kretz <kretz@kde.org>
7617 * testsuite/experimental/simd/driver.sh: Abstract reading test
7618 options into read_src_option function. Read skip, only,
7619 expensive, and xfail via read_src_option. Add timeout and
7620 timeout-factor options and adjust timeout variable accordingly.
7621 * testsuite/experimental/simd/tests/loadstore.cc: Set
7624 2021-02-03 Matthias Kretz <kretz@kde.org>
7626 * testsuite/experimental/simd/driver.sh: When handling the pipe
7627 to log (and on verbose to stdout) count the lines. If it exceeds
7628 1000 log the issue and exit 125, which is then handled as a
7631 2021-02-03 Matthias Kretz <kretz@kde.org>
7633 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
7634 markup for long double on powerpc64*.
7636 2021-02-03 Matthias Kretz <kretz@kde.org>
7638 * include/experimental/bits/simd.h: Add __have_power10vec
7639 conditional on _ARCH_PWR10.
7640 * include/experimental/bits/simd_builtin.h: Forward declare
7641 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
7643 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
7644 _SuperImpl for optimizations and correctness.
7645 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
7646 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
7647 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
7648 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
7650 2021-02-03 Matthias Kretz <kretz@kde.org>
7652 * testsuite/experimental/simd/driver.sh: Remove executable on
7653 SIGINT. Process compiler and test executable output: In verbose
7654 mode print messages immediately, limited to 1000 lines and
7655 breaking long lines to below $COLUMNS (or 1024 if not set).
7656 Communicating the exit status of the compiler / test with the
7657 necessary pipe is done via a message through stdout/-in.
7659 2021-02-03 Matthias Kretz <kretz@kde.org>
7661 * testsuite/Makefile.am: Ensure .simd.summary is empty before
7662 collecting a new summary.
7663 * testsuite/Makefile.in: Regenerate.
7665 2021-02-03 Matthias Kretz <kretz@kde.org>
7667 * testsuite/experimental/simd/generate_makefile.sh: Use
7668 different variables internally than documented for user
7669 overrides. This makes internal append/prepend work as intended.
7671 2021-02-03 Matthias Kretz <kretz@kde.org>
7673 * testsuite/experimental/simd/driver.sh (verify_test): Print
7674 test output on run xfail. Do not repeat lines from the log that
7675 were already printed on stdout.
7676 (test_selector): Make the compiler flags pattern usable as a
7678 (toplevel): Trap on SIGINT and remove the log and sum files.
7679 Call timout with --foreground to quickly terminate on SIGINT.
7680 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
7681 targets via target patterns. Default DRIVEROPTS to -v for run
7682 targets. Remove log and sum files after completion of the run
7683 target (so that it's always recompiled).
7684 Place help text into text file for reasonable 'make help'
7687 2021-02-03 Matthias Kretz <kretz@kde.org>
7689 * include/experimental/bits/simd.h: Remove unnecessary static
7690 assertion. Allow sizeof(8) integer __intrinsic_type to enable
7691 the necessary mask type.
7693 2021-02-03 Matthias Kretz <kretz@kde.org>
7695 * include/experimental/bits/simd.h: Let __intrinsic_type<long
7696 double, N> be valid if sizeof(long double) == sizeof(double) and
7697 use a __vector double as member type.
7699 2021-02-03 Matthias Kretz <kretz@kde.org>
7701 * include/experimental/bits/simd.h (__is_intrinsic_type): New
7702 internal type trait. Alias for __is_vector_type on x86.
7703 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
7705 (__intrin_bitcast): Allow casting to & from vector & intrinsic
7707 (__intrinsic_type): Explicitly specialize for NEON intrinsic
7710 2021-02-03 Matthias Kretz <kretz@kde.org>
7712 * testsuite/experimental/simd/driver.sh: Implement skip, only,
7713 expensive, and xfail markers. They can select on type, ABI tag
7714 subset number, target-triplet, and compiler flags.
7715 * testsuite/experimental/simd/generate_makefile.sh: The summary
7716 now includes lines for unexpected passes and expected failures.
7717 If the skip or only markers are only conditional on the type, do
7718 not generate rules for those types.
7719 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
7720 for ABI tag subsets 1-9.
7721 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7722 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7723 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7724 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7725 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7726 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7727 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7728 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7729 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7730 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
7731 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7732 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7733 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7734 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7735 * testsuite/experimental/simd/tests/operators.cc: Ditto.
7736 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7737 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7738 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7739 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7740 * testsuite/experimental/simd/tests/where.cc: Ditto.
7741 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
7742 addition replace "test only floattypes" marker by unconditional
7743 "float|double|ldouble" only marker.
7744 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7745 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7746 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7748 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7749 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7750 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7751 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7752 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7753 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7754 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
7755 addition, xfail on run because the reference data is missing.
7757 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
7759 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
7760 * doc/xml/manual/status_cxx2014.xml: Likewise.
7761 * doc/xml/manual/status_cxx2017.xml: Likewise.
7762 * doc/html/manual/status.html: Regenerate.
7764 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
7767 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
7768 Return 0 if both iterators are value-initialized.
7769 * testsuite/23_containers/deque/70303.cc: New test.
7770 * testsuite/23_containers/vector/70303.cc: New test.
7772 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
7774 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
7776 * doc/xml/manual/status_cxx2014.xml: Likewise.
7777 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
7778 std::from_chars and std::to_chars status. Fix formatting.
7779 * doc/html/manual/status.html: Regenerate.
7781 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
7783 * include/experimental/bits/numeric_traits.h: Update copyright
7785 * include/experimental/bits/simd.h: Likewise.
7786 * include/experimental/bits/simd_builtin.h: Likewise.
7787 * include/experimental/bits/simd_converter.h: Likewise.
7788 * include/experimental/bits/simd_detail.h: Likewise.
7789 * include/experimental/bits/simd_fixed_size.h: Likewise.
7790 * include/experimental/bits/simd_math.h: Likewise.
7791 * include/experimental/bits/simd_neon.h: Likewise.
7792 * include/experimental/bits/simd_ppc.h: Likewise.
7793 * include/experimental/bits/simd_scalar.h: Likewise.
7794 * include/experimental/bits/simd_x86.h: Likewise.
7795 * include/experimental/bits/simd_x86_conversions.h: Likewise.
7796 * include/experimental/simd: Likewise.
7797 * testsuite/experimental/simd/*: Likewise.
7799 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7801 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
7802 * doc/html/*: Regenerate.
7804 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7806 * testsuite/experimental/simd/generate_makefile.sh: Use printf
7807 instead of echo when printing escape characters.
7809 2021-01-27 Matthias Kretz <kretz@kde.org>
7811 * scripts/check_simd: New file. This script is called from the
7812 the check-simd target. It determines a set of compiler flags and
7813 simulator setups for calling generate_makefile.sh and passes the
7814 information back to the check-simd target, which recurses to the
7815 generated Makefiles.
7816 * scripts/create_testsuite_files: Remove files below simd/tests/
7817 from testsuite_files and place them in testsuite_files_simd.
7818 * testsuite/Makefile.am: Add testsuite_files_simd. Add
7820 * testsuite/Makefile.in: Regenerate.
7821 * testsuite/experimental/simd/driver.sh: New file. This script
7822 compiles and runs a given simd test, logging its output and
7823 status. It uses the timeout command to implement compile and
7825 * testsuite/experimental/simd/generate_makefile.sh: New file.
7826 This script generates a Makefile which uses driver.sh to compile
7827 and run the tests and collect the logs into a single log file.
7828 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
7830 * testsuite/experimental/simd/tests/algorithms.cc: New file.
7831 Tests min/max(simd, simd).
7832 * testsuite/experimental/simd/tests/bits/conversions.h: New
7833 file. Contains functions to support tests involving conversions.
7834 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
7835 Support functions make_mask and make_vec.
7836 * testsuite/experimental/simd/tests/bits/mathreference.h: New
7837 file. Support functions to supply precomputed math function
7839 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
7840 file. Support code for SFINAE testing.
7841 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
7842 * testsuite/experimental/simd/tests/bits/test_values.h: New
7843 file. Test functions to easily drive a test with simd objects
7844 initialized from a given list of values and a range of random
7846 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
7847 Support code to determine the ULP distance of simd objects.
7848 * testsuite/experimental/simd/tests/bits/verify.h: New file.
7849 Test framework for COMPARE'ing simd objects and instantiating
7850 the test templates with value_type and ABI tag.
7851 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
7853 * testsuite/experimental/simd/tests/casts.cc: New file. Test
7855 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
7856 Test floating-point classification functions.
7857 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
7859 * testsuite/experimental/simd/tests/generator.cc: New file. Test
7860 simd generator constructor.
7861 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
7862 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
7863 * testsuite/experimental/simd/tests/integer_operators.cc: New
7864 file. Test integer operators.
7865 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7866 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
7868 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
7869 (converting) simd loads and stores.
7870 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
7872 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
7873 Test simd_mask broadcasts.
7874 * testsuite/experimental/simd/tests/mask_conversions.cc: New
7875 file. Test simd_mask conversions.
7876 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
7877 file. Test simd_mask implicit conversions.
7878 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
7879 Test simd_mask loads and stores.
7880 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
7881 file. Test simd_mask operators convert as specified.
7882 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
7883 Test simd_mask compares, subscripts, and negation.
7884 * testsuite/experimental/simd/tests/mask_reductions.cc: New
7885 file. Test simd_mask reductions.
7886 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
7887 1-arg math functions on simd.
7888 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
7889 2-arg math functions on simd.
7890 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
7891 Test implicit conversions on simd binary operators behave as
7893 * testsuite/experimental/simd/tests/operators.cc: New file. Test
7894 simd compares, subscripts, not, unary minus, plus, minus,
7895 multiplies, divides, increment, and decrement.
7896 * testsuite/experimental/simd/tests/reductions.cc: New file.
7898 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
7900 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
7901 sanity checks of simd types.
7902 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
7903 sin(simd) and cos(simd).
7904 * testsuite/experimental/simd/tests/split_concat.cc: New file.
7905 Test split(simd) and concat(simd, simd).
7906 * testsuite/experimental/simd/tests/splits.cc: New file. Test
7908 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
7909 Test remaining trigonometric functions on simd.
7910 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
7911 file. Test trunc(simd), ceil(simd), and floor(simd).
7912 * testsuite/experimental/simd/tests/where.cc: New file. Test
7913 masked operations using where.
7915 2021-01-27 Matthias Kretz <kretz@kde.org>
7917 * doc/xml/manual/status_cxx2017.xml: Add implementation status
7918 of the Parallelism TS 2. Document implementation-defined types
7920 * include/Makefile.am: Add new headers.
7921 * include/Makefile.in: Regenerate.
7922 * include/experimental/simd: New file. New header for
7924 * include/experimental/bits/numeric_traits.h: New file.
7925 Implementation of P1841R1 using internal naming. Addition of
7926 missing IEC559 functionality query.
7927 * include/experimental/bits/simd.h: New file. Definition of the
7928 public simd interfaces and general implementation helpers.
7929 * include/experimental/bits/simd_builtin.h: New file.
7930 Implementation of the _VecBuiltin simd_abi.
7931 * include/experimental/bits/simd_converter.h: New file. Generic
7933 * include/experimental/bits/simd_detail.h: New file. Internal
7934 macros for the simd implementation.
7935 * include/experimental/bits/simd_fixed_size.h: New file. Simd
7936 fixed_size ABI specific implementations.
7937 * include/experimental/bits/simd_math.h: New file. Math
7939 * include/experimental/bits/simd_neon.h: New file. Simd NEON
7940 specific implementations.
7941 * include/experimental/bits/simd_ppc.h: New file. Implement bit
7942 shifts to avoid invalid results for integral types smaller than
7944 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7945 ABI specific implementations.
7946 * include/experimental/bits/simd_x86.h: New file. Simd x86
7947 specific implementations.
7948 * include/experimental/bits/simd_x86_conversions.h: New file.
7949 x86 specific conversion optimizations. The conversion patterns
7950 work around missing conversion patterns in the compiler and
7951 should be removed as soon as PR85048 is resolved.
7952 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7953 Test that all (not all fixed_size<N>, though) standard simd and
7954 simd_mask types are usable.
7955 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7956 file. As above but with -ffast-math.
7957 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7958 from the standard test loop. Instead use
7959 check_vect_support_and_set_flags to build simd tests with the
7960 relevant machine flags.
7962 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7965 * include/bits/string_view.tcc
7966 (basic_string_view::find(const CharT*, size_type, size_type)):
7969 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
7971 * include/bits/basic_string.h (basic_string::contains): New
7973 * include/std/string_view (basic_string_view::contains):
7975 * include/std/version (__cpp_lib_string_contains): Define.
7976 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7977 Remove trailing whitespace.
7978 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7980 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7981 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7982 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7983 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7984 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7986 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
7988 * src/c++17/Makefile.in: Regenerate.
7990 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
7992 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7993 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7995 (const char* ctype<char>:: is): Same.
7997 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
8000 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
8001 write to a wide character stream if wide character support is
8002 disabled in the library.
8004 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
8006 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
8007 stringbuf not wstringbuf.
8009 2021-01-18 Jakub Jelinek <jakub@redhat.com>
8012 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
8013 Compile with -gno-as-loc-support.
8014 * src/c++11/Makefile.in: Regenerated.
8016 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
8018 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
8019 Add -fcf-protection=none to -march=i486.
8021 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
8023 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
8026 2021-01-14 Alexandre Oliva <oliva@adacore.com>
8028 * testsuite/30_threads/future/members/poll.cc: Calibrate
8031 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
8034 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
8035 (_Node_iterator()): Make default.
8036 (_Node_const_iterator()): Make default.
8037 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
8039 * include/debug/safe_iterator.h
8040 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
8041 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
8043 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
8044 _M_singular checks on input iterators.
8045 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
8047 * testsuite/23_containers/deque/debug/98466.cc: New test.
8048 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
8050 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
8053 * include/bits/fs_path.h (__throw_conversion_error): New
8054 function to throw or abort on character conversion errors.
8055 (__wstr_from_utf8): Move definition after filesystem_error has
8056 been defined. Use __throw_conversion_error.
8057 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
8058 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
8059 (path::u8string): Likewise.
8061 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
8063 * include/std/barrier: Update copyright years. Fix whitespace.
8064 * include/std/version: Fix whitespace.
8065 * testsuite/30_threads/barrier/1.cc: Update copyright years.
8066 * testsuite/30_threads/barrier/2.cc: Likewise.
8067 * testsuite/30_threads/barrier/arrive.cc: Likewise.
8068 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8069 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8070 * testsuite/30_threads/barrier/completion.cc: Likewise.
8072 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
8074 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
8076 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
8079 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
8081 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
8083 2021-01-08 Olivier Hainque <hainque@adacore.com>
8085 * testsuite/20_util/bind/ref_neg.cc: Tweak the
8086 dg-prune-output regex for out-of-build-tree contexts.
8088 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
8090 * doc/doxygen/user.cfg.in: Add new header.
8091 * include/Makefile.am (std_headers): likewise.
8092 * include/Makefile.in: Regenerate.
8093 * include/precompiled/stdc++.h: Add new header.
8094 * include/std/barrier: New file.
8095 * include/std/version: Add __cpp_lib_barrier feature test macro.
8096 * testsuite/30_threads/barrier/1.cc: New test.
8097 * testsuite/30_threads/barrier/2.cc: Likewise.
8098 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8099 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8100 * testsuite/30_threads/barrier/arrive.cc: Likewise.
8101 * testsuite/30_threads/barrier/completion.cc: Likewise.
8103 2021-01-07 Patrick Palka <ppalka@redhat.com>
8106 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
8107 instead of the non-standard nextupl and nextdownl.
8109 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
8111 * configure: Re-generate.
8113 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
8115 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
8117 2021-01-01 Jakub Jelinek <jakub@redhat.com>
8119 * ChangeLog-2020: Rotate ChangeLog. New file.
8122 Copyright (C) 2021 Free Software Foundation, Inc.
8124 Copying and distribution of this file, with or without modification,
8125 are permitted in any medium without royalty provided the copyright
8126 notice and this notice are preserved.