1 2021-11-13 Jonathan Wakely <jwakely@redhat.com>
3 * include/Makefile.am: Add spanstream header.
4 * include/Makefile.in: Regenerate.
5 * include/precompiled/stdc++.h: Add spanstream header.
6 * include/std/version (__cpp_lib_spanstream): Define.
7 * include/std/spanstream: New file.
8 * testsuite/27_io/spanstream/1.cc: New test.
9 * testsuite/27_io/spanstream/version.cc: New test.
11 2021-11-13 Hans-Peter Nilsson <hp@axis.com>
14 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
15 Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_COMPILE.
16 * configure: Regenerate.
18 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
21 * acinclude.m4 (libtool_VERSION): Bump version.
22 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and
24 * configure: Regenerate.
25 * include/bits/c++config (__replacement_assert): Remove, declare
26 __glibcxx_assert_fail instead.
27 * src/c++11/debug.cc (__glibcxx_assert_fail): New function to
28 replace __replacement_assert, writing to stderr instead of
30 * testsuite/util/testsuite_abi.cc: Update latest version.
32 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
33 Josh Marshall <joshua.r.marshall.1991@gmail.com>
35 * include/bits/alloc_traits.h (_Destroy): Make constexpr for
37 * include/bits/allocator.h (__shrink_to_fit::_S_do_it):
39 * include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator
40 overload constexpr for C++20.
41 * include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out
43 (_Bit_reference, _Bit_iterator_base, _Bit_iterator)
44 (_Bit_const_iterator, _Bvector_impl_data, _Bvector_base)
45 (vector<bool, A>>): Add constexpr to every member function.
46 (_Bvector_base::_M_allocate): Initialize storage during constant
48 (vector<bool, A>::_M_initialize_value): Use __fill_bvector_n
50 (__fill_bvector_n): New helper function to replace memset during
52 * include/bits/stl_uninitialized.h (__uninitialized_copy<false>):
54 (__do_uninit_copy): New function.
55 (__uninitialized_fill<false>): Move logic to ...
56 (__do_uninit_fill): New function.
57 (__uninitialized_fill_n<false>): Move logic to ...
58 (__do_uninit_fill_n): New function.
59 (__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy.
60 (__uninitialized_move_a, __uninitialized_move_if_noexcept_a):
62 (__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill.
63 (__uninitialized_fill_n_a): Add constexpr. Use
65 (__uninitialized_default_n, __uninitialized_default_n_a)
66 (__relocate_a_1, __relocate_a): Add constexpr.
67 * include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl)
68 (_Vector_base, vector): Add constexpr to every member function.
69 (_Vector_impl::_S_adjust): Disable ASan annotation during
71 (_Vector_base::_S_use_relocate): Disable bitwise-relocation
72 during constant evaluation.
73 (vector::_Temporary_value): Use a union for storage.
74 * include/bits/vector.tcc (vector, vector<bool>): Add constexpr
75 to every member function.
76 * include/std/vector (erase_if, erase): Add constexpr.
77 * testsuite/23_containers/headers/vector/synopsis.cc: Add
78 constexpr for C++20 mode.
79 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to
80 compile-only test using constant expressions.
81 * testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust
82 namespace for _S_word_bit.
83 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
85 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
86 * testsuite/23_containers/vector/cons/89164.cc: Adjust errors
87 for C++20 and move C++17 test to ...
88 * testsuite/23_containers/vector/cons/89164_c++17.cc: ... here.
89 * testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test.
90 * testsuite/23_containers/vector/bool/cons/constexpr.cc: New test.
91 * testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test.
92 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test.
93 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test.
94 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test.
95 * testsuite/23_containers/vector/capacity/constexpr.cc: New test.
96 * testsuite/23_containers/vector/cons/constexpr.cc: New test.
97 * testsuite/23_containers/vector/data_access/constexpr.cc: New test.
98 * testsuite/23_containers/vector/element_access/constexpr.cc: New test.
99 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test.
100 * testsuite/23_containers/vector/modifiers/constexpr.cc: New test.
101 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test.
103 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
105 * include/debug/deque (deque::operator=(const deque&)): Remove
107 * include/debug/list (list::operator=(const list&)): Likewise.
108 * include/debug/map.h (map::operator=(const map&)): Likewise.
109 * include/debug/multimap.h (multimap::operator=(const multimap&)):
111 * include/debug/multiset.h (multiset::operator=(const multiset&)):
113 * include/debug/set.h (set::operator=(const set&)): Likewise.
114 * include/debug/string (basic_string::operator=(const basic_string&)):
116 * include/debug/vector (vector::operator=(const vector&)):
118 (_Safe_vector::operator=(const _Safe_vector&)): Define for
121 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
123 * include/std/memory_resource (memory_resource::allocate):
124 Implicitly create objects in the returned storage.
126 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
128 * include/bits/stl_bvector.h (vector<bool>::data()): Give
129 protected access, and delete for C++11 and later.
131 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
134 * testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list
135 all C++ headers instead of including <bits/stdc++.h>
137 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
141 * config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
142 Define for glibc 2.34 and later.
144 2021-11-09 François Dumont <fdumont@gcc.gnu.org>
146 * include/bits/hashtable_policy.h (__distance_fw): Replace class keyword with
148 * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Remove noexcept
149 qualification. Use const_iterator for node extraction/reinsert.
150 (_Hashtable<>::_M_merge_multi): Likewise. Compute new hash code before extract.
151 * include/debug/safe_container.h (_Safe_container<>): Make all methods
153 * include/debug/safe_unordered_container.h
154 (_Safe_unordered_container<>::_UContInvalidatePred<_ExtractKey, _Source>): New.
155 (_Safe_unordered_container<>::_UMContInvalidatePred<_ExtractKey, _Source>): New.
156 (_Safe_unordered_container<>::_UContMergeGuard<_Source, _InvalidatePred>): New.
157 (_Safe_unordered_container<>::_S_uc_guard<_ExtractKey, _Source>): New.
158 (_Safe_unordered_container<>::_S_umc_guard<_ExtractKey, _Source>): New.
159 (_Safe_unordered_container<>::_M_invalide_all): Make public.
160 (_Safe_unordered_container<>::_M_invalide_if): Likewise.
161 (_Safe_unordered_container<>::_M_invalide_local_if): Likewise.
162 * include/debug/unordered_map
163 (unordered_map<>::mapped_type, pointer, const_pointer): New typedef.
164 (unordered_map<>::reference, const_reference, difference_type): New typedef.
165 (unordered_map<>::get_allocator, empty, size, max_size): Add usings.
166 (unordered_map<>::bucket_count, max_bucket_count, bucket): Add usings.
167 (unordered_map<>::hash_function, key_equal, count, contains): Add usings.
168 (unordered_map<>::operator[], at, rehash, reserve): Add usings.
169 (unordered_map<>::merge): New.
170 (unordered_multimap<>::mapped_type, pointer, const_pointer): New typedef.
171 (unordered_multimap<>::reference, const_reference, difference_type): New typedef.
172 (unordered_multimap<>::get_allocator, empty, size, max_size): Add usings.
173 (unordered_multimap<>::bucket_count, max_bucket_count, bucket): Add usings.
174 (unordered_multimap<>::hash_function, key_equal, count, contains): Add usings.
175 (unordered_multimap<>::rehash, reserve): Add usings.
176 (unordered_multimap<>::merge): New.
177 * include/debug/unordered_set
178 (unordered_set<>::mapped_type, pointer, const_pointer): New typedef.
179 (unordered_set<>::reference, const_reference, difference_type): New typedef.
180 (unordered_set<>::get_allocator, empty, size, max_size): Add usings.
181 (unordered_set<>::bucket_count, max_bucket_count, bucket): Add usings.
182 (unordered_set<>::hash_function, key_equal, count, contains): Add usings.
183 (unordered_set<>::rehash, reserve): Add usings.
184 (unordered_set<>::merge): New.
185 (unordered_multiset<>::mapped_type, pointer, const_pointer): New typedef.
186 (unordered_multiset<>::reference, const_reference, difference_type): New typedef.
187 (unordered_multiset<>::get_allocator, empty, size, max_size): Add usings.
188 (unordered_multiset<>::bucket_count, max_bucket_count, bucket): Add usings.
189 (unordered_multiset<>::hash_function, key_equal, count, contains): Add usings.
190 (unordered_multiset<>::rehash, reserve): Add usings.
191 (unordered_multiset<>::merge): New.
192 * testsuite/23_containers/unordered_map/debug/merge1_neg.cc: New test.
193 * testsuite/23_containers/unordered_map/debug/merge2_neg.cc: New test.
194 * testsuite/23_containers/unordered_map/debug/merge3_neg.cc: New test.
195 * testsuite/23_containers/unordered_map/debug/merge4_neg.cc: New test.
196 * testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc: New test.
197 * testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc: New test.
198 * testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc: New test.
199 * testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc: New test.
200 * testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc: New test.
201 * testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc: New test.
202 * testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc: New test.
203 * testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc: New test.
204 * testsuite/23_containers/unordered_set/debug/merge1_neg.cc: New test.
205 * testsuite/23_containers/unordered_set/debug/merge2_neg.cc: New test.
206 * testsuite/23_containers/unordered_set/debug/merge3_neg.cc: New test.
207 * testsuite/23_containers/unordered_set/debug/merge4_neg.cc: New test.
208 * testsuite/util/testsuite_abi.h: [_GLIBCXX_DEBUG] Use normal unordered
209 container implementation.
211 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
213 * testsuite/26_numerics/random/random_device/cons/token.cc:
214 Print results of random_device_available checks.
216 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
219 * src/c++11/random.cc: Check __powerpc64__ not __powerpc__.
221 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
223 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
225 * configure.ac (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
227 * config.h.in: Regenerate.
228 * configure: Regenerate.
229 * src/c++11/random.cc (random_device): Add getentropy and
230 arc4random as sources.
231 * testsuite/26_numerics/random/random_device/cons/token.cc:
233 * testsuite/26_numerics/random/random_device/entropy.cc:
236 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
238 * testsuite/26_numerics/random/random_device/cons/token.cc:
239 Retry if random devices produce the same value.
241 2021-11-09 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
243 * config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only
244 define for VxWorks >= 6.6.
246 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
248 * include/bits/range_access.h (begin(valarray), end(valarray)):
251 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
253 * include/std/tuple (tuple_size_v): Fix pack expansion.
255 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
257 * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
258 [[unlikely]] attribute.
260 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
262 * src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
263 (__ppc_darn): New function to use POWER9 DARN instruction.
264 (Which): Add 'darn' enumerator.
265 (which_source): Check for __ppc_darn.
266 (random_device::_M_init): Support "darn" and "hw" tokens.
267 (random_device::_M_getentropy): Add darn to switch.
268 * testsuite/26_numerics/random/random_device/cons/token.cc:
270 * testsuite/26_numerics/random/random_device/entropy.cc:
273 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
275 * testsuite/lib/gdb-test.exp: Add target selector support to the
277 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
279 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
280 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
283 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
286 * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
287 for accessing the tuple element stored in a _Tuple_impl node.
288 (tuple_get): New function for accessing a tuple element.
289 (unique_ptr_get): New function for accessing a unique_ptr.
290 (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
291 * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
292 tuple to its base class before accessing _M_head_impl.
294 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
296 * doc/xml/manual/evolution.xml: Document deprecations.
297 * doc/html/*: Regenerate.
298 * libsupc++/exception (unexpected_handler, unexpected)
299 (get_unexpected, set_unexpected): Add deprecated attribute.
300 Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
301 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
303 * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
304 * libsupc++/eh_terminate.cc: Likewise.
305 * libsupc++/eh_throw.cc (__cxa_init_primary_exception):
307 * libsupc++/unwind-cxx.h (struct __cxa_exception): Use
308 terminate_handler instead of unexpected_handler.
309 (struct __cxa_dependent_exception): Likewise.
310 (__unexpected): Likewise.
311 * testsuite/18_support/headers/exception/synopsis.cc: Add
312 dg-warning for deprecated warning.
313 * testsuite/18_support/exception_ptr/60612-unexpected.cc:
314 Disable deprecated warnings.
315 * testsuite/18_support/set_unexpected.cc: Likewise.
316 * testsuite/18_support/unexpected_handler.cc: Likewise.
318 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
320 * include/bits/utility.h (__find_uniq_type_in_pack): Move
321 definition to here, ...
322 * include/std/tuple (__find_uniq_type_in_pack): ... from here.
323 * include/std/variant (__detail__variant::__index_of): Remove.
324 (__detail::__variant::__exactly_once): Define using
325 __find_uniq_type_in_pack instead of __index_of.
326 (get<T>, get_if<T>, variant::__index_of): Likewise.
328 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
330 * include/bits/stl_pair.h (tuple_size_v): Define partial
331 specializations for std::pair.
332 * include/bits/utility.h (_Nth_type): Move definition here
333 and define primary template.
334 (tuple_size_v): Move definition here.
335 * include/std/array (tuple_size_v): Define partial
336 specializations for std::array.
337 * include/std/tuple (tuple_size_v): Move primary template to
338 <bits/utility.h>. Define partial specializations for
340 (tuple_element): Change definition to use _Nth_type.
341 * include/std/variant (_Nth_type): Move to <bits/utility.h>.
342 (variant_alternative, variant): Adjust qualification of
344 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
345 additional errors from _Nth_type.
347 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
349 * include/std/variant (__detail::__variant::__emplace): New
351 (_Copy_assign_base::operator=): Reorder conditions to match
352 bulleted list of effects in the standard. Use __emplace instead
353 of _M_reset followed by _Construct.
354 (_Move_assign_base::operator=): Likewise.
355 (__construct_by_index): Remove.
356 (variant::emplace): Use __emplace instead of _M_reset followed
357 by __construct_by_index.
358 (variant::swap): Hoist valueless cases out of visitor. Use
359 __emplace to replace _M_reset followed by _Construct.
361 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
363 * include/std/variant (_Nth_type): Define partial
364 specializations to reduce number of instantiations.
365 (variant_size_v): Define partial specializations to avoid
367 (variant_alternative): Use _Nth_type. Add static assert.
368 (__tuple_count, __tuple_count_v): Replace with ...
369 (__count): New variable template.
370 (_Variant_union): Add deleted constructor.
371 (variant::__to_type): Use _Nth_type.
372 (variant::emplace): Use _Nth_type. Add deleted overloads for
373 invalid types and indices.
375 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
378 * include/std/variant (_Variant_storage::__index_of): Remove.
379 (__variant_construct_single): Remove.
380 (__variant_construct): Remove.
381 (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
382 construction directly instead of using __variant_construct.
383 (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
384 (_Move_ctor_base::_M_destructive_move()): Remove.
385 (_Move_ctor_base::_M_destructive_copy()): Remove.
386 (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
387 construction directly instead of using _M_destructive_copy.
388 (variant::swap): Do construction directly instead of using
390 * testsuite/20_util/variant/102912.cc: New test.
392 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
395 * include/bits/list.tcc (list::sort): Use mutable iterators for
397 * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
398 * testsuite/23_containers/list/operations/66742.cc: Check
399 non-const comparisons.
401 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
403 * include/std/valarray (valarray::valarray()): Add noexcept.
404 (valarray::operator[]): Likewise.
406 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
408 * include/debug/stl_iterator.h (__valid_range): Add constexpr
409 for C++20. Qualify call to avoid ADL.
410 (__get_distance, __can_advance, __unsafe, __base): Likewise.
411 * testsuite/25_algorithms/move/constexpr.cc: Also check with
412 std::reverse_iterator arguments.
414 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
416 * include/std/span (span(Range&&)): Reorder constraints.
418 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
421 * include/std/valarray (begin, end): Do not dereference an empty
422 valarray. Add noexcept and [[nodiscard]].
423 * testsuite/26_numerics/valarray/range_access.cc: Check empty
424 valarray. Check iterator properties. Run as well as compiling.
425 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
426 * testsuite/26_numerics/valarray/103022.cc: New test.
428 2021-10-29 Jonathan Wakely <jwakely@redhat.com>
430 * testsuite/23_containers/stack/deduction.cc: Fix typo.
432 2021-10-26 Martin Sebor <msebor@redhat.com>
434 * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
436 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.
438 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
440 * testsuite/28_regex/basic_regex/84110.cc (test01)
441 [__cpp_exceptions]: Disambiguate extended.
443 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
445 * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.
447 2021-10-22 Jonathan Wakely <jwakely@redhat.com>
450 * include/std/any (make_any): Add SFINAE constraint.
451 * testsuite/20_util/any/102894.cc: New test.
453 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
455 * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
457 * scripts/run_doxygen: Fix post-processing of #include
458 directives in man pages. Use new xg++ to compile helper program.
460 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
462 * include/bits/mofunc_impl.h: Add doxygen comments.
463 * include/std/functional: Likewise.
465 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
467 * include/bits/alloc_traits.h: Suppress doxygen documentation.
468 * include/bits/allocated_ptr.h: Likewise.
469 * include/bits/enable_special_members.h: Likewise.
470 * include/bits/hashtable.h: Likewise.
471 * include/bits/hashtable_policy.h: Likewise.
472 * include/bits/uses_allocator.h: Likewise.
473 * include/bits/node_handle.h: Document node handles and suppress
474 documentation for protected members.
475 * include/std/any: Suppress documentation for implementation
478 2021-10-21 Patrick Palka <ppalka@redhat.com>
481 * include/bits/stl_iterator.h (__niter_base): Make constexpr
483 (__miter_base): Likewise.
484 * testsuite/25_algorithms/move/constexpr.cc: New test.
486 2021-10-21 Patrick Palka <ppalka@redhat.com>
488 * include/std/ranges (istream_view): Replace this function
489 template with an alias template as per P2432R1.
490 (wistream_view): Define as per P2432R1.
491 (views::_Istream, views::istream): Likewise.
492 * testsuite/std/ranges/istream_view.cc (test07): New test.
494 2021-10-21 Patrick Palka <ppalka@redhat.com>
496 * include/bits/ranges_util.h (views::_Drop): Forward declare.
497 (subrange): Befriend views::_Drop.
498 (subrange::_S_store_size): Declare constexpr instead of just
499 const, remove obsolete comment.
500 * include/std/ranges (views::__detail::__is_empty_view): Define.
501 (views::__detail::__is_basic_string_view): Likewise.
502 (views::__detail::__is_subrange): Likewise.
503 (views::__detail::__is_iota_view): Likewise.
504 (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
505 (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
506 and fix it to range_difference_t<_Range>. Implement P1739R4 and
508 (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
509 (views::_Drop): As with views::_Take.
510 (views::_Counted): Implement P1739R4 changes.
511 * include/std/span (__detail::__is_std_span): Rename to ...
512 (__detail::__is_span): ... this and turn it into a variable
514 (__detail::__is_std_array): Turn it into a variable template.
515 (span::span): Adjust uses of __is_std_span and __is_std_array
517 * testsuite/std/ranges/adaptors/p1739.cc: New test.
519 2021-10-21 Patrick Palka <ppalka@redhat.com>
521 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
522 Make fully constexpr as per LWG 3595.
523 (common_iterator::__postfix_proxy): Likewise.
525 2021-10-21 Patrick Palka <ppalka@redhat.com>
527 * include/std/ranges (lazy_split_view::base): Add forward_range
528 constraint as per LWG 3591.
529 (lazy_split_view::begin, lazy_split_view::end): Also check
530 simpleness of _Pattern as per LWG 3592.
531 (split_view::base): Relax copyable constraint as per LWG 3590.
533 2021-10-21 Patrick Palka <ppalka@redhat.com>
535 * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
536 criteria for returning bidirectional_iterator_tag as per LWG 3535.
537 (join_view::_Iterator::_S_iter_concept): Likewise.
539 2021-10-21 Patrick Palka <ppalka@redhat.com>
541 * include/bits/ranges_base.h (viewable_range): Adjust as per
543 * testsuite/std/ranges/adaptors/all.cc (test07): New test.
545 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
548 * include/std/optional (optional::and_then, optional::transform):
549 Remove requires-clause.
550 * testsuite/20_util/optional/monadic/and_then.cc: Check
551 overload resolution doesn't cause errors.
552 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
554 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
556 * testsuite/20_util/optional/monadic/transform.cc: Check that
557 an rvalue result is not materialized too soon.
559 2021-10-19 Patrick Palka <ppalka@redhat.com>
561 * include/std/ranges (iota_view::_Iterator::operator+): Adjust
562 definition as per LWG 3580.
563 (iota_view::_Iterator::operator-): Likewise.
565 2021-10-19 Patrick Palka <ppalka@redhat.com>
567 * include/std/ranges (basic_istream_view::_M_object): Value
568 initialize as per LWG 3568.
570 2021-10-19 Patrick Palka <ppalka@redhat.com>
572 * include/bits/ranges_util.h
573 (__detail::__uses_nonqualification_pointer_conversion): Define
575 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
576 * testsuite/std/ranges/subrange/1.cc: New test.
578 2021-10-19 Patrick Palka <ppalka@redhat.com>
580 * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
581 (iota_view::_Sentinel): Likewise.
582 (iota_view::iota_view): Add three overloads, each taking an
583 iterator/sentinel pair as per LWG 3523.
584 * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
586 2021-10-19 Patrick Palka <ppalka@redhat.com>
588 * include/bits/ranges_base.h (view_interface): Forward declare.
589 (__detail::__is_derived_from_view_interface_fn): Declare.
590 (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
591 (enable_view): Adjust as per LWG 3549.
592 * include/bits/ranges_util.h (view_interface): Don't derive from
594 * include/std/ranges (filter_view): Revert r11-3504 change.
595 (transform_view): Likewise.
596 (take_view): Likewise.
597 (take_while_view): Likewise.
598 (drop_view): Likewise.
599 (drop_while_view): Likewise.
600 (join_view): Likewise.
601 (lazy_split_view): Likewise.
602 (split_view): Likewise.
603 (reverse_view): Likewise.
604 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
605 * testsuite/std/ranges/view.cc (test_view::test_view): Remove
606 this default ctor since views no longer need to be default initable.
609 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
611 * src/c++11/random.cc (which_source): New helper function.
612 (random_device::_M_getentropy()): Use which_source and return
613 suitable values for sources other than device files.
614 * testsuite/26_numerics/random/random_device/entropy.cc: New test.
616 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
618 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
619 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
620 relative ${top_srcdir}.
621 * doc/Makefile.in: Regenerate.
623 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
625 * include/std/variant (_Uninitialized): Use an empty struct
626 for the unused union member, instead of char.
628 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
630 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
631 non-deducible template parameter from deduction guide.
632 * testsuite/23_containers/stack/deduction.cc: Check new C++23
635 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
637 * include/std/optional (_Optional_payload_base::_Storage): Add
638 constructor taking a callable function to invoke.
639 (_Optional_payload_base::_M_apply): New function.
640 (__cpp_lib_monadic_optional): Define for C++23.
641 (optional::and_then, optional::transform, optional::or_else):
643 * include/std/ranges (__detail::__cached): Remove.
644 (__detail::__non_propagating_cache): Remove use of __cached for
645 contained value. Use _Optional_payload_base::_M_construct and
646 _Optional_payload_base::_M_apply to set the contained value.
647 * include/std/version (__cpp_lib_monadic_optional): Define.
648 * testsuite/20_util/optional/monadic/and_then.cc: New test.
649 * testsuite/20_util/optional/monadic/or_else.cc: New test.
650 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
651 * testsuite/20_util/optional/monadic/transform.cc: New test.
652 * testsuite/20_util/optional/monadic/version.cc: New test.
654 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
657 * include/bits/mofunc_impl.h (move_only_function): Remove
658 invalid base initializer.
659 * testsuite/20_util/move_only_function/cons.cc: Instantiate
660 constructors to check bodies.
662 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
664 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
665 call to function with deduced return type.
667 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
669 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
671 (basic_string::resize_and_overwrite): Declare.
672 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
674 * include/std/version (__cpp_lib_resize_and_overwrite): Define
676 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
679 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
682 * include/std/ranges (__cached): New wrapper struct.
683 (__non_propagating_cache): Use __cached for contained value.
684 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
685 std::construct_at instead of placement new.
686 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
688 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
690 * include/std/variant (__cpp_lib_variant): Update value for
692 (__variant_cast, __variant_construct): Add constexpr for C++20.
693 (__variant_construct_single, __construct_by_index) Likewise. Use
694 std::_Construct instead of placement new.
695 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
696 buffer with a union and define a destructor.
697 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
698 for non-trivial destruction.
699 (_Variant_storage::__index_of): New helper variable template.
700 (_Variant_storage::~_Variant_storage()): Add constexpr.
701 (_Variant_storage::_M_reset()): Likewise.
702 (_Copy_ctor_base, _Move_ctor_base): Likewise.
703 (_Copy_assign_base, _Move_assign_base): Likewise.
704 (variant, swap): Likewise.
705 * include/std/version (__cpp_lib_variant): Update value for
707 * testsuite/20_util/optional/version.cc: Check for exact value
709 * testsuite/20_util/variant/87619.cc: Increase timeout for
711 * testsuite/20_util/variant/constexpr.cc: New test.
712 * testsuite/20_util/variant/version.cc: New test.
714 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
716 * include/std/variant (__detail::__variant::__get_storage):
717 Remove unused function.
718 (__variant_construct_by_index): Set index after construction is
719 complete. Rename to ...
720 (__detail::__variant::__construct_by_index): ... this.
721 (variant): Use new name for __variant_construct_by_index friend
722 declaration. Remove __get_storage friend declaration.
723 (variant::emplace): Use new name and remove try-blocks.
725 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
727 * include/std/variant (_Variant_storage::_M_storage()): Remove.
728 (__detail::__variant::__get_storage): Remove.
729 (variant): Remove friend declaration of __get_storage.
731 2021-10-15 Jason Merrill <jason@redhat.com>
733 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
734 * testsuite/20_util/integer_comparisons/greater_neg.cc:
735 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
736 Adjust expected message.
737 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
739 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
741 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
742 Rename to __get_n and remove first argument. Replace pair of
743 overloads with a single function using 'if constexpr'.
744 (__variant::__get(Variant&&)): Adjust to use __get_n.
746 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
748 * include/bits/fs_path.h (path(path&&)): Make unconditionally
750 (path::_S_convert(T)): Add condtional noexcept.
752 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
755 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
756 for returning the same string unchanged.
758 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
760 * include/bits/regex.h: Check __cpp_inline_variables instead of
763 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
765 * testsuite/20_util/is_layout_compatible/version.cc: Check
768 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
770 * include/bits/stl_construct.h (_Construct): Use
771 std::construct_at when constant evaluated.
772 * include/std/optional (_Storage, _Optional_payload, optional):
773 Add constexpr as specified by P2231R1.
774 * include/std/version (__cpp_lib_optional): Update value for
776 * testsuite/20_util/optional/requirements.cc: Check feature test
778 * testsuite/20_util/optional/constexpr/assign.cc: New test.
779 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
780 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
781 * testsuite/20_util/optional/constexpr/swap.cc: New test.
782 * testsuite/20_util/optional/version.cc: New test.
784 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
786 * include/bits/fs_path.h (__detail::__is_contiguous): Add
787 partial specializations for pointers and __normal_iterator.
789 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
791 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
792 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
793 * testsuite/28_regex/match_results/102667.C: Moved to...
794 * testsuite/28_regex/match_results/102667.cc: ...here.
796 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
798 * include/bits/fs_path.h (__detail::__is_contiguous): New
799 variable template to identify contiguous iterators.
800 (__detail::__unified_char8_t): New alias template to decide when
801 to treat char8_t as char without encoding conversion.
802 (__detail::__effective_range(const basic_string<C,T>&)): Use
803 std::char_traits<C> for returned string view.
804 (__detail::__effective_range(const basic_string_view<C,T>&)):
806 (__detail::__effective_range(const Source&)): Use
807 __is_contiguous to detect mode cases of contiguous iterators.
808 Use __unified_char8_t to return a std::string instead of
811 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
814 * include/bits/fs_path.h (path::path(Iter, Iter, format))
815 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
816 __string_from_range directly, instead of two-argument overload
818 (path::_S_convert(Iter, Iter)): Remove.
819 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
821 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
823 * include/bits/c++config (__terminate): Add extern "C++".
825 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
827 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
828 Restore test for operator<.
829 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
830 Adjust expected errors for C++20.
832 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
835 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
837 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
838 array elements before the last element.
840 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
842 * include/bits/stl_iterator_base_funcs.h (__advance): Add
843 deleted overload to improve diagnostics.
844 (__distance): Likewise.
846 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
848 * include/bits/atomic_timed_wait.h: Remove unused header.
849 * include/bits/c++config (std:__terminate): Define.
850 * include/bits/semaphore_base.h: Remove <exception> and use
851 __terminate instead of terminate.
852 * include/bits/std_thread.h: Likewise.
853 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
854 to call __cxxabiv1::__terminate.
856 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
858 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
859 std::__to_address by using poitner directly or using base()
860 member of __normal_iterator.
862 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
864 * testsuite/18_support/numeric_limits/lowest.cc: Use
865 numeric_limits<T>::is_integer instead of is_integral<T>::value.
867 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
870 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
871 Add __glibcxx_requires_string_len assertion.
872 (basic_regex::assign(InputIterator, InputIterator)): Add
873 __glibcxx_requires_valid_range assertion.
874 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
875 (_Scanner::_M_scan_normal()): Use string literal in assertions.
877 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
880 * include/bits/regex.h (match_result::empty()): Optimize by
881 calling the base function directly.
882 (match_results::end()): Check _Base_type::empty() not empty().
883 * testsuite/28_regex/match_results/102667.C: New test.
885 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
888 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
889 _GLIBCXX_USE_WCHAR_T.
890 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
891 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
892 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
893 _GLIBCXX_USE_WCHAR_T.
894 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
895 char_traits<wchar_t>::length instead of wcslen.
896 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
898 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
899 * testsuite/20_util/is_compound/value.cc: Likewise.
900 * testsuite/20_util/is_floating_point/value.cc: Likewise.
901 * testsuite/20_util/is_fundamental/value.cc: Likewise.
902 * testsuite/20_util/is_integral/value.cc: Likewise.
903 * testsuite/20_util/is_signed/value.cc: Likewise.
904 * testsuite/20_util/is_unsigned/value.cc: Likewise.
905 * testsuite/20_util/is_void/value.cc: Likewise.
906 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
908 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
910 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
912 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
914 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
916 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
918 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
920 * testsuite/20_util/to_chars/3.cc: Likewise.
921 * testsuite/20_util/type_identity/requirements/typedefs.cc:
923 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
924 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
925 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
927 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
928 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
930 * testsuite/21_strings/basic_string/literals/values.cc:
932 * testsuite/21_strings/basic_string/modifiers/64422.cc:
934 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
936 * testsuite/21_strings/basic_string/requirements/citerators.cc:
938 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
940 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
942 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
944 * testsuite/21_strings/basic_string_view/literals/types.cc:
946 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
948 * testsuite/21_strings/basic_string_view/literals/values.cc:
950 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
952 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
953 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
955 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
957 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
959 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
960 * testsuite/25_algorithms/fill/4.cc: Likewise.
961 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
962 * testsuite/experimental/functional/searchers.cc: Likewise. Use
963 char_traits<wchar_t>::length instead of wcslen.
964 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
966 * testsuite/experimental/string_view/literals/types-char8_t.cc:
968 * testsuite/experimental/string_view/literals/types.cc:
970 * testsuite/experimental/string_view/literals/values-char8_t.cc:
972 * testsuite/experimental/string_view/literals/values.cc:
974 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
976 * testsuite/experimental/string_view/requirements/typedefs.cc:
978 * testsuite/experimental/string_view/typedefs.cc: Likewise.
979 * testsuite/ext/vstring/range_access.cc: Likewise.
980 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
982 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
984 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
986 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
988 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
990 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
992 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
994 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
996 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
997 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
999 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
1000 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
1002 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1005 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
1006 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
1007 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
1009 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1012 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
1013 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1015 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1018 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
1019 (__byte_operand<wchar_t>): Define specialization.
1020 * include/std/type_traits (__make_signed<wchar_t>)
1021 (__make_unsigned<wchar_t>): Remove redundant check for
1022 __WCHAR_TYPE__ being defined.
1023 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
1024 (__is_integral_helper<wchar_t>): Likewise.
1026 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1029 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
1030 (__rc_string_base<wchar_t>): Define member function.
1031 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
1032 (hash<__gnu_cxx::__wvstring>): Define specialization.
1033 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
1034 (__wsso_string, __wrc_string): Declare typedefs.
1036 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1039 * include/bits/char_traits.h (char_traits<wchar_t>): Define
1040 explicit specialization unconditionally.
1041 * include/bits/basic_string.h (hash<wstring>): Define
1042 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1043 * include/bits/stringfwd.h (wstring): Likewise.
1044 * include/debug/string (wstring): Likewise.
1045 * include/experimental/string_view (experimental::wstring_view)
1046 (hash<experimental::wstring_view>): Likewise.
1047 * include/std/string (pmr::wstring, hash<pmr::wstring>):
1049 * include/std/string_view (wstring_view, hash<wstring_view>):
1052 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1054 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
1055 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
1057 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1059 * testsuite/22_locale/conversions/buffer/1.cc: Check
1060 _GLIBCXX_USE_WCHAR_T.
1061 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
1062 test using char16_t.
1063 * testsuite/22_locale/conversions/string/1.cc: Check
1064 _GLIBCXX_USE_WCHAR_T.
1065 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
1067 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
1069 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
1070 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
1072 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1073 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
1075 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
1077 * testsuite/experimental/filesystem/path/native/alloc.cc:
1079 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
1081 * testsuite/experimental/filesystem/path/native/string.cc:
1084 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1086 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
1087 * testsuite/util/testsuite_common_types.h:
1089 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1091 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
1092 _GLIBCXX_USE_INT128.
1093 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
1094 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
1095 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
1096 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1097 * testsuite/20_util/is_integral/value.cc: Likewise.
1098 * testsuite/20_util/is_signed/value.cc: Likewise.
1099 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1100 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
1102 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
1104 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1106 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1108 * testsuite/20_util/type_identity/requirements/typedefs.cc:
1110 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1111 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1112 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1113 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1114 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1115 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1116 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1117 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1118 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1120 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1122 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1124 * include/bits/hashtable_policy.h (_Select1st): Replace use of
1126 (_Select2nd): Remove.
1127 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
1128 typedef instead of deducing it. Remove unnecessary piecewise
1130 (_ReuseOrAllocNode): Make __node_type public.
1131 (_Map_base): Adjust partial specialization to be able to extract
1132 the mapped_type without using tuple_element.
1133 (_Map_base::at): Define inline
1134 * testsuite/23_containers/unordered_map/requirements/53339.cc:
1136 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1139 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1141 * include/bits/hashtable.h: Move static assertion to destructor.
1142 * include/bits/hashtable_policy.h: Deduce value type from node
1143 type without instantiating it.
1145 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1147 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
1150 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1153 * include/bits/ranges_algobase.h: Replace <iterator> with a
1154 subset of the headers it includes.
1156 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1158 * include/experimental/deque (erase, erase_if): Revert changes
1159 to avoid debug mode overhead.
1160 * include/experimental/map (erase, erase_if): Likewise.
1161 * include/experimental/set (erase, erase_if): Likewise.
1162 * include/experimental/unordered_map (erase, erase_if):
1164 * include/experimental/unordered_set (erase, erase_if):
1166 * include/experimental/vector (erase, erase_if): Likewise.
1167 * include/std/deque (erase, erase_if): Likewise.
1168 * include/std/map (erase, erase_if): Likewise.
1169 * include/std/set (erase, erase_if): Likewise.
1170 * include/std/unordered_map (erase, erase_if): Likewise.
1171 * include/std/unordered_set (erase, erase_if): Likewise.
1172 * include/std/vector (erase, erase_if): Likewise.
1174 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1176 * include/std/chrono (__detail::__units_suffix_misc): New
1178 (__detail::__units_suffix): Likewise.
1179 (chrono::operator<<(basic_ostream&, const duration&)): Define.
1180 * testsuite/20_util/duration/io.cc: New test.
1182 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
1184 * include/Makefile.am: Add new header.
1185 * include/Makefile.in: Regenerate.
1186 * include/std/chrono (duration, time_point, system_clock)
1187 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
1188 (file_clock, file_time): Move to ...
1189 * include/bits/chrono.h: New file.
1190 * include/bits/atomic_futex.h: Include new header instead of
1192 * include/bits/atomic_timed_wait.h: Likewise.
1193 * include/bits/fs_fwd.h: Likewise.
1194 * include/bits/semaphore_base.h: Likewise.
1195 * include/bits/this_thread_sleep.h: Likewise.
1196 * include/bits/unique_lock.h: Likewise.
1197 * include/experimental/bits/fs_fwd.h: Likewise.
1198 * include/experimental/chrono: Likewise.
1199 * include/experimental/io_context: Likewise.
1200 * include/experimental/netfwd: Likewise.
1201 * include/experimental/timer: Likewise.
1202 * include/std/condition_variable: Likewise.
1203 * include/std/mutex: Likewise.
1204 * include/std/shared_mutex: Likewise.
1206 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
1209 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
1210 Hardcode to 64 instead of using non-constant constant.
1212 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
1214 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
1216 * include/std/string (erase, erase_if): Likewise.
1217 * include/std/deque (erase, erase_if): Access non-debug
1219 * include/std/map (erase, erase_if): Likewise.
1220 * include/std/set (erase, erase_if): Likewise.
1221 * include/std/unordered_map (erase, erase_if): Likewise.
1222 * include/std/unordered_set (erase, erase_if): Likewise.
1223 * include/std/vector (erase, erase_if): Likewise.
1224 * include/experimental/deque (erase, erase_if): Likewise.
1225 * include/experimental/map (erase, erase_if): Likewise.
1226 * include/experimental/set (erase, erase_if): Likewise.
1227 * include/experimental/unordered_map (erase, erase_if):
1229 * include/experimental/unordered_set (erase, erase_if):
1231 * include/experimental/vector (erase, erase_if): Likewise.
1233 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
1235 * include/Makefile.am: Add new headers.
1236 * include/Makefile.in: Regenerate.
1237 * include/std/functional: Include <bits/move_only_function.h>.
1238 * include/std/version (__cpp_lib_move_only_function): Define.
1239 * include/bits/mofunc_impl.h: New file.
1240 * include/bits/move_only_function.h: New file.
1241 * testsuite/20_util/move_only_function/call.cc: New test.
1242 * testsuite/20_util/move_only_function/cons.cc: New test.
1243 * testsuite/20_util/move_only_function/move.cc: New test.
1244 * testsuite/20_util/move_only_function/version.cc: New test.
1246 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1248 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
1250 * testsuite/23_containers/span/trivially_copyable.cc: New test.
1252 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1254 * include/bits/utility.h (__is_in_place_type_v): Define
1255 variable template to detect in_place_type_t specializations.
1256 (__is_in_place_type): Replace class template with alias
1257 template using __is_in_place_type_v.
1258 * include/std/any (any(T&&)): Check __is_in_place_type first and
1259 avoid instantiating is_copy_constructible unnecessarily.
1261 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1263 * testsuite/20_util/integer_comparisons/greater.cc: New test.
1265 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1267 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1268 Check result matches non-volatile pointer.
1270 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1273 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
1274 expected value for C++20.
1276 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1278 * include/bits/std_function.h (_Any_data::_M_access): Add
1280 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
1281 (_Function_base::_Base_manager::_M_not_empty_function):
1284 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1286 * include/std/ostream (operator<<(const volatile void*)):
1287 Add new overload, as per P1147R1.
1288 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1291 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1293 * include/bits/stl_queue.h
1294 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
1296 * include/bits/stl_stack.h
1297 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1298 * include/std/version
1299 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1300 * testsuite/23_containers/queue/cons_from_iters.cc: Update
1302 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
1304 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1306 * include/bits/forward_list.h (forward_list): Use non-deduced
1307 context for allocator parameter of allocator-extended copy and
1309 * include/bits/stl_bvector.h (vector<bool>): Likewise.
1310 * include/bits/stl_deque.h (deque): Likewise.
1311 * include/bits/stl_list.h (list): Likewise.
1312 * include/bits/stl_map.h (map): Likewise.
1313 * include/bits/stl_multimap.h (multimap): Likewise.
1314 * include/bits/stl_multiset.h (multiset): Likewise.
1315 * include/bits/stl_set.h (set): Likewise.
1316 * include/bits/stl_vector.h (vector): Likewise.
1317 * include/bits/stl_queue.h (queue, priority_queue): Do not
1318 constrain Allocator template parameter of deduction guides that
1319 have a Container parameter.
1320 * include/bits/stl_stack.h (stack): Likewise.
1321 * include/debug/deque (__gnu_debug::deque): Use non-deduced
1322 context for allocator parameter of allocator-extended copy and
1324 * include/debug/list (__gnu_debug::list): Likewise.
1325 * include/debug/map.h (__gnu_debug::map): Likewise.
1326 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
1327 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
1328 * include/debug/set.h (__gnu_debug::set): Likewise.
1329 * include/debug/vector (__gnu_debug::vector): Likewise.
1330 * testsuite/23_containers/deque/cons/deduction.cc: Test class
1331 template argument deduction with non-deduced allocator
1333 * testsuite/23_containers/forward_list/cons/deduction.cc:
1335 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1336 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1337 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1338 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1339 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1340 * testsuite/23_containers/queue/deduction.cc: Likewise.
1341 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1342 * testsuite/23_containers/stack/deduction.cc: Likewise.
1343 * testsuite/23_containers/unordered_map/cons/deduction.cc:
1345 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1347 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1349 * testsuite/23_containers/unordered_set/cons/deduction.cc:
1351 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1353 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1355 * include/std/variant (__detail::__variant::__as): Add missing
1356 noexcept to first overload.
1358 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1360 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
1362 (operator=(nullptr_t)): Likewise.
1363 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
1364 (operator=(nullptr_t)): Likewise.
1365 * include/std/string_view (basic_string_view(nullptr_t)):
1367 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
1368 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1369 Change dg-warning to dg-error.
1370 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1373 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
1375 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
1376 * src/filesystem/ops-common.h (__last_system_error): Add
1377 explicit cast to avoid narrowing conversion.
1378 (do_space): Fix type in function name.
1380 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1383 * include/Makefile.am (c++config.h): Define
1384 _GLIBCXX_VERBOSE_ASSERT based on configure output.
1385 * include/Makefile.in: Regenerate.
1386 * include/bits/c++config: Fix condition for verbose assertions.
1388 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1391 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
1392 unwrap debug iterators.
1393 * include/bits/refwrap.h: Do not error if included in C++03.
1394 * include/bits/stl_algo.h (__remove_if): Move to ...
1395 * include/bits/stl_algobase.h (__remove_if): ... here.
1396 * include/std/deque (erase, erase_if): Use __remove_if instead of
1397 remove and remove_if.
1398 * include/std/string (erase, erase_if): Likewise.
1399 * include/std/vector (erase, erase_if): Likewise.
1401 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1404 * include/bits/list.tcc (list::sort()): Use _Scratch_list
1405 objects for splicing and merging.
1406 (list::sort(StrictWeakOrdering)): Likewise.
1407 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
1408 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
1409 assertion for --enable-libstdcxx-debug library.
1410 * testsuite/23_containers/list/operations/66742.cc: New test.
1412 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1415 * include/std/thread (__pmf_expects_stop_token): New variable
1416 template to detect a pointer to member function that needs a
1417 stop_token to be added to the arguments.
1418 (jthread::__S_create): Use __pmf_expects_stop_token.
1419 (jthread::__S_create_pmf): New function.
1420 * testsuite/30_threads/jthread/100612.cc: New test.
1422 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1424 * include/bits/stl_queue.h
1425 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
1427 (queue(InputIterator, InputIterator)): Likewise.
1428 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
1429 * include/bits/stl_stack.h
1430 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1431 (stack(InputIterator, InputIterator)): Likewise.
1432 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
1433 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
1435 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
1436 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
1438 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1440 * include/bits/stl_queue.h (priority_queue): Add
1441 allocator-extended overloads for constructors taking iterator.
1442 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
1444 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1446 * include/bits/stl_queue.h (priority_queue): Construct sequence
1447 from iterators when no sequence argument is present (LWG 3529).
1448 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
1450 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1452 * include/bits/stl_queue.h (priority_queue): Constrain
1453 constructors with InputIterator parameters (LWG 3522).
1454 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
1456 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1458 * include/bits/ranges_base.h (ranges::distance): Split overload
1459 into two (LWG 3392).
1460 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
1462 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1464 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
1465 std::unary_function.
1466 * testsuite/30_threads/thread/cons/4.cc: Likewise.
1467 * testsuite/30_threads/thread/cons/5.cc: Likewise.
1469 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1471 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
1472 unnecesary derivation from std::unary_function.
1473 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
1474 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
1475 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
1476 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
1477 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
1478 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
1479 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
1480 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
1482 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
1483 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
1485 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1487 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
1488 expand the format string for freestanding, or non-vebose, or if
1489 we're just going to abort anyway.
1490 * src/c++11/snprintf_lite.cc: Remove unused header and
1493 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1495 * include/std/variant (__do_visit): Use variant_npos instead of
1496 literal -1 that requires a narrowing conversion.
1498 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1501 * src/filesystem/ops-common.h (__unsupported): New function to
1502 return a suitable error code for missing functionality.
1503 (posix::off_t): New typedef.
1504 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
1505 fallback implementations.
1506 (do_copy_file): Replace uses of errc::not_supported.
1507 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
1508 (fs::create_directory, fs::create_directory_symlink)
1509 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1510 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
1511 (fs::last_write_time, fs::permissions, fs::read_symlink):
1512 Replace uses of errc::not_supported.
1513 (fs::resize_file): Qualify off_t.
1514 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
1515 (fs::create_directory, fs::create_directory_symlink)
1516 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1517 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
1518 (fs::permissions, fs::read_symlink, fs::system_complete):
1519 Replace uses of errc::not_supported.
1520 (fs::resize_file): Qualify off_t and enable unconditionally.
1521 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
1523 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1525 * src/filesystem/ops-common.h (last_error): New helper function.
1526 (filesystem::do_space): Use last_error().
1527 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
1528 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
1530 * src/filesystem/ops.cc (fs::create_hard_link)
1531 (fs::remove, fs::temp_directory_path): Likewise.
1533 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1535 * include/std/type_traits (__conditional): New class template
1536 for internal uses of std::conditional.
1537 (__conditional_t): New alias template to replace conditional_t.
1538 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
1539 __conditional_t instead of conditional::type.
1540 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
1541 * include/bits/hashtable.h (_Hashtable): Likewise.
1542 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
1543 (_Local_iterator): Likewise. Replace typedefs with
1545 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
1546 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
1547 * include/bits/ptr_traits.h (__make_not_void): Likewise.
1548 * include/bits/ranges_algobase.h (__copy_or_move_backward)
1549 (__copy_or_move): Likewise.
1550 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
1551 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
1552 * include/bits/regex_compiler.h (_BracketMatcher): Use
1553 __conditional_t. Replace typedefs with using-declarations.
1554 * include/bits/shared_ptr_base.h (__shared_count): Use
1556 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1558 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
1559 (reverse_iterator::iterator_concept)
1560 (__make_move_if_noexcept_iterator)
1561 (iterator_traits<common_iterator<_It, _Sent>>)
1562 (iterator_traits<counted_iterator<_It>>): Likewise.
1563 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
1564 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
1565 (_Rb_tree::_M_clone_node): Likewise.
1566 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
1568 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
1569 (__is_uses_allocator_predicate): Likewise.
1570 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
1571 * include/experimental/any (any::_Manager, __any_caster):
1573 * include/experimental/executor (async_completion): Likewise.
1574 * include/experimental/functional (__boyer_moore_base_t):
1576 * include/std/any (any::_Manager): Likewise.
1577 * include/std/functional (__boyer_moore_base_t): Likewise.
1578 * include/std/ranges (borrowed_iterator_t)
1579 (borrowed_subrange_t, __detail::__maybe_present_t)
1580 (__detail::__maybe_const_t, split_view): Likewise.
1581 * include/std/tuple (__empty_not_final, tuple::operator=):
1583 * include/std/variant (__detail::__variant::__get_t): Likewise.
1585 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1588 * include/std/variant (__do_visit): Use a switch when we have a
1589 single variant with a small number of alternatives.
1591 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1594 * include/std/variant (__cpp_lib_variant): Update value.
1595 (__detail::__variant::__as): New helpers implementing the
1596 as-variant exposition-only function templates.
1597 (visit, visit<R>): Use __as to upcast the variant parameters.
1598 * include/std/version (__cpp_lib_variant): Update value.
1599 * testsuite/20_util/variant/visit_inherited.cc: New test.
1601 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1603 * include/bits/stl_iterator.h (__normal_iterator): Simplify
1604 converting constructor and do not require _Container::pointer.
1606 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1608 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
1609 (basic_string(basic_string&&)): Add noexcept and avoid
1610 allocation, by sharing rep with the rvalue string.
1612 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1614 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
1615 (common_iterator::__postfix_proxy): Add noexcept.
1617 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1620 * include/bits/stl_iterator.h (reverse_iterator): Use
1621 conditional noexcept on constructors and assignment operators.
1622 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
1624 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1627 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
1628 When size() is zero just deallocate and reset.
1630 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1633 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
1635 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1637 * include/bits/regex.h (basic_regex::multiline): Define for
1638 non-strict C++11 and C++14 modes.
1639 * include/bits/regex_constants.h (regex_constants::multiline):
1640 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
1642 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1644 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
1646 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1648 * include/bits/stream_iterator.h (istream_iterator): Add
1649 noexcept to constructors and non-throwing member functions and
1651 (ostream_iterator): Likewise.
1653 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1655 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
1656 New trait to identify vector<bool> iterators, including debug
1658 (_ForwardIteratorReferenceConcept): Add default template
1659 argument using _Is_vector_bool_iterator and use it in partial
1660 specialization for the vector<bool> cases.
1661 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
1662 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1665 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1667 * include/bits/list.tcc (list::merge): Remove call to size() and
1668 try-catch block. Use _Finalize_merge instead.
1669 * include/bits/stl_list.h (list::_Finalize_merge): New
1670 scope guard type to update _M_size members after a merge.
1672 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
1674 * include/bits/regex.h (basic_regex::multiline): Fix #if
1677 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1679 * include/bits/regex.h (basic_regex::multiline): Define constant
1681 * include/bits/regex_constants.h (regex_constants::multiline):
1682 Define constant for C++17.
1683 (regex_constants::__multiline): Define duplicate constant for
1684 internal use in C++11 and C++14.
1685 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
1686 New member function.
1687 (_Executor::_M_is_line_terminator(_CharT)): New member function.
1688 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
1689 member functions to support multiline matches.
1690 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
1692 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1694 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
1696 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
1697 _S_validate to check flags.
1698 * include/bits/regex_error.h (_S_grammar): New error code for
1700 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
1702 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1705 * include/bits/regex_error.h (regex_constants::_S_null): New
1706 error code for internal use.
1707 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
1708 Check for null character.
1709 * testsuite/28_regex/basic_regex/84110.cc: New test.
1711 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1713 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
1714 here from <bits/regex_compiler.h>.
1715 (basic_regex::_M_compile): New function to compile an NFA from
1716 a regular expression string.
1717 (basic_regex::basic_regex): Use _M_compile instead of delegating
1718 to other constructors.
1719 (basic_regex::operator=(const basic_regex&)): Define as
1721 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
1722 (basic_regex::assign(const basic_regex&)): Use copy assignment.
1723 (basic_regex::assign(basic_regex&&)): Use move assignment.
1724 (basic_regex::assign(const C*, flag_type)): Use _M_compile
1725 instead of constructing a temporary string.
1726 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
1727 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
1728 Use _M_compile instead of constructing a temporary basic_regex.
1729 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
1730 constructing a temporary string for contiguous iterators of the
1732 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
1734 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
1735 (__compile_nfa): Remove.
1736 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
1738 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
1740 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1742 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
1743 Return false for ETIMEDOUT and true otherwise.
1745 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
1747 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
1748 to also match message with '__8' in it.
1750 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1752 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
1753 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
1754 * include/bits/regex_compiler.tcc: Likewise.
1755 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
1756 * include/bits/regex_scanner.tcc: Likewise.
1758 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1760 * include/bits/regex_compiler.tcc: Add line break in empty while
1762 * include/bits/regex_executor.tcc: Avoid unused parameter
1765 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1767 * include/bits/regex.h (basic_regex, swap): Add noexcept to
1768 non-throwing functions.
1769 * include/bits/regex_automaton.h (_State_base, _State)
1770 (_NFA_base): Likewise.
1771 * include/bits/regex_compiler.h (_Compiler): Likewise.
1772 * include/bits/regex_error.h (regex_error::code()): Likewise.
1773 * include/bits/regex_scanner.h (_Scanner): Likewise.
1775 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1777 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
1778 Define before first attempt to check it.
1780 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1782 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
1783 Do not check non-default constructible sequences when
1784 _GLIBCXX_CONCEPT_CHECKS is defined.
1785 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
1787 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
1789 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
1791 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
1793 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
1796 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1798 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
1799 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
1801 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
1803 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
1805 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
1807 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
1809 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
1811 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
1813 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
1815 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
1817 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
1819 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
1821 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
1823 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
1825 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
1827 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
1829 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
1831 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
1833 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
1836 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1838 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
1839 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
1840 Check result types of iterator operations.
1841 (_Mutable_ForwardIteratorConcept): Check that iterator's
1842 reference type is a reference to its value type.
1843 (_Mutable_BidirectionalIteratorConcept): Do not require the
1844 value type to be assignable.
1845 (_Mutable_RandomAccessIteratorConcept): Likewise.
1846 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1849 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1851 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
1852 for type used as an iterator.
1853 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
1855 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1857 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
1858 comparison function for priority_queue of type with no
1859 relational operators.
1860 * testsuite/20_util/is_swappable/value.h: Likewise.
1861 * testsuite/24_iterators/output/concept.cc: Add operator< to
1864 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1866 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1867 Use a function to preserve value category of the type.
1868 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
1869 reference as the second argument for _OutputIteratorConcept.
1870 (copy_backward, move_backward): Use _OutputIteratorConcept
1871 instead of _ConvertibleConcept.
1873 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1875 * include/bits/stl_iterator.h (pointer_traits): Define partial
1876 specialization for __normal_iterator.
1877 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
1879 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1881 * include/bits/move.h (forward(remove_reference_t<T>&&)):
1882 Improve text of static_assert.
1883 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1884 * testsuite/20_util/forward/f_neg.cc: Likewise.
1886 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1889 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1890 to declarations, to match definitions.
1892 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
1894 * include/bits/range_access.h (cbegin, cend): Remove redundant
1897 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1899 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1900 Remove dg-error lines for C++20-only errors.
1902 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1904 * testsuite/19_diagnostics/headers/system_error/93151.cc:
1907 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1909 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1910 Map Windows error codes to generic POSIX error numbers. Use
1911 FormatMessage instead of strerror.
1912 * testsuite/19_diagnostics/error_category/system_category.cc:
1913 Adjust for new behaviour on Windows.
1915 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1917 * src/c++11/system_error.cc (generic_error_category): Define
1918 class and virtual functions as 'final'.
1919 (generic_error_category::equivalent(int, const error_condition&)):
1921 (system_error_category): Define class and virtual functions as
1923 (system_error_category::equivalent(int, const error_condition&)):
1925 (generic_category_instance, system_category_instance): Use
1926 constinit union to make the objects immortal.
1928 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1931 * src/c++11/system_error.cc
1932 (system_error_category::default_error_condition): Add 0 to
1934 * testsuite/19_diagnostics/error_category/102425.cc: New test.
1936 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1938 * include/bits/fs_path.h (path::iterator): Add noexcept to all
1939 member functions and friend functions.
1940 (distance): Add noexcept.
1941 (advance): Add noexcept and inline.
1942 * include/experimental/bits/fs_path.h (path::iterator):
1943 Add noexcept to all member functions.
1945 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1948 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
1949 missed in previous patch.
1950 * testsuite/20_util/tuple/cons/102270.C: Moved to...
1951 * testsuite/20_util/tuple/cons/102270.cc: ...here.
1952 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
1953 constexpr to constructor so it can be used for C++20 tests.
1955 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1957 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
1958 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
1959 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
1960 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
1962 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1964 * src/Makefile.am (stamp-debug): Add all Makefiles as
1966 * src/Makefile.in: Regenerate.
1968 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1970 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
1971 timeout factor to 3.
1972 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1974 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1976 * doc/xml/manual/using.xml: Generalize to apply to more than
1978 * doc/html/manual/using_macros.html: Regenerate.
1980 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1982 * include/std/optional (nullptr_t): Make constructor noexcept.
1984 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1986 * include/bits/fs_path.h (advance): Remove non-deducible
1989 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1992 * include/std/tuple (_Head_base, _Tuple_impl): Add
1993 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
1994 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
1995 * testsuite/20_util/tuple/cons/102270.C: New test.
1997 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2000 * include/std/span (span(Range&&)): Add constraint to deduction
2003 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2005 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
2006 * src/c++98/Makefile.in: Regenerate.
2008 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2010 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2011 (to_string): Add noexcept if the type width is 32 bits or less.
2013 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2015 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
2016 (__uniq_ptr_impl::_M_deleter): Add noexcept.
2018 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
2021 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
2022 va and vb as arguments to wait/notify, remove unused bb local.
2024 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2026 * crossconfig.m4: Check for TLS support on mingw.
2027 * configure: Regenerate.
2029 2021-09-13 Jason Merrill <jason@redhat.com>
2031 * include/std/version: Define __cpp_lib_hardware_interference_size.
2032 * libsupc++/new: Define hardware interference size variables.
2034 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
2036 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2037 Fix invalid hostname to only match the .invalid TLD.
2039 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2041 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
2043 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
2046 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2048 * include/std/atomic: Tweak whitespace.
2050 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2053 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
2054 New function to check if a memory order is valid for the failure
2055 case of compare exchange operations.
2056 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
2057 by using __is_valid_cmpexch_failure_order.
2058 (__atomic_base<I>::compare_exchange_strong): Likewise.
2059 (__atomic_base<P*>::compare_exchange_weak): Likewise.
2060 (__atomic_base<P*>::compare_exchange_strong): Likewise.
2061 (__atomic_impl::compare_exchange_weak): Add assertion.
2062 (__atomic_impl::compare_exchange_strong): Likewise.
2063 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
2064 (atomic::compare_exchange_strong): Likewise.
2066 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2068 * include/std/functional (invoke_r): Define.
2069 * include/std/version (__cpp_lib_invoke_r): Define.
2070 * testsuite/20_util/function_objects/invoke/version.cc: Check
2071 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
2072 * testsuite/20_util/function_objects/invoke/4.cc: New test.
2074 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2077 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
2078 Add valid range checks.
2079 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
2080 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
2082 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2084 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
2085 * configure: Regenerate.
2087 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2089 * src/c++11/system_error.cc (error_category::~error_category()):
2090 Remove noexcept-specifier.
2091 (system_error::~system_error()): Likewise.
2092 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
2093 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
2095 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2098 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
2099 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
2101 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2103 * include/experimental/internet (__make_resolver_error_code):
2104 Handle EAI_SYSTEM errors.
2105 (basic_resolver_results): Use __make_resolver_error_code. Use
2106 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
2108 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2110 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2111 Try other service if "http" fails.
2113 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2115 * testsuite/17_intro/names.cc: Undefine some more names used
2116 by Solaris system headers.
2118 2021-08-30 Jason Merrill <jason@redhat.com>
2121 * testsuite/30_threads/promise/requirements/lwg3466.cc:
2122 Remove dg-prune-outputs.
2124 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
2126 * include/bits/alloc_traits.h (allocator_traits): Add explicit
2127 specialization for allocator<void>. Improve doxygen comments.
2128 * include/bits/allocator.h (allocator<void>): Restore for the
2129 versioned namespace.
2130 (allocator<void>::construct, allocator<void>::destroy): Remove.
2131 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
2132 Add default constructor and converting constructor.
2134 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
2136 * include/bits/stl_uninitialized.h: Fix typo in comment.
2138 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
2141 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
2142 to avoid unnecessary current_path() call.
2144 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
2146 * include/bits/std_function.h (function::function(F&&)): Give
2147 name to defaulted template parameter, to improve diagnostics.
2148 Use markdown for more doxygen comments.
2150 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
2152 * include/bits/std_function.h (function): Adjust doxygen
2154 * include/bits/unique_ptr.h (make_unique_for_overwrite):
2155 Change parameter name to match doxygen comment.
2157 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
2159 * include/bits/std_function.h (_function_base::_Base_manager):
2160 Replace _M_init_functor with a function template using a
2161 forwarding reference, and a pair of _M_create function
2162 templates. Reuse _M_create for the clone operation.
2163 (function::_Decay_t): New alias template.
2164 (function::_Callable): Simplify by using _Decay.
2165 (function::function(F)): Change parameter to forwarding
2166 reference, as per LWG 2447. Add noexcept-specifier. Simplify
2168 (function::operator=(F&&)): Add noexcept-specifier.
2169 * testsuite/20_util/function/cons/lwg2774.cc: New test.
2170 * testsuite/20_util/function/cons/noexcept.cc: New test.
2172 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
2174 * include/bits/std_function.h (function::function(F)): Add
2175 static assertions to check constructibility requirements.
2177 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
2180 * configure.ac: Check for O_NONBLOCK.
2181 * configure: Regenerate.
2182 * include/experimental/internet: Include <ws2tcpip.h> for
2183 Windows. Use preprocessor conditions around more constants.
2184 * include/experimental/socket: Use preprocessor conditions
2185 around more constants.
2186 * testsuite/experimental/net/internet/resolver/base.cc: Only use
2187 constants when the corresponding C macro is defined.
2188 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
2189 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
2190 Make preprocessor checks more fine-grained.
2192 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2194 * testsuite/17_intro/names.cc: Check 'sz'.
2196 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2198 * testsuite/17_intro/names.cc: Adjust for Windows.
2200 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2202 * include/std/valarray: Uglify 'func' parameters.
2203 * testsuite/17_intro/names.cc: Add 'func' to checks.
2205 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2208 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
2209 Define macro to check conditions for optimizing trivial cases.
2210 (__check_constructible): New function to do static assert.
2211 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
2213 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
2214 Adjust dg-error pattern.
2215 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
2216 C++17-specific checks from 89164_c++17.cc.
2217 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
2218 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
2220 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
2222 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
2224 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
2227 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
2230 * include/ext/rope (rope::erase(size_type)): Remove broken
2233 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
2235 * doc/xml/manual/status_cxx2020.xml: Update table.
2236 * doc/html/manual/status.html: Regenerate.
2238 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
2240 * include/std/type_traits (is_layout_compatible): Define.
2241 (is_corresponding_member): Define.
2242 * include/std/version (__cpp_lib_is_layout_compatible): Define.
2243 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
2245 * testsuite/20_util/is_layout_compatible/value.cc: New test.
2246 * testsuite/20_util/is_layout_compatible/version.cc: New test.
2247 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
2249 * testsuite/23_containers/span/layout_compat.cc: Do not use real
2250 std::is_layout_compatible trait if available.
2252 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
2254 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
2255 explicit instantiation definitions.
2257 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2259 * include/std/ranges (basic_istream_view): Add default template
2261 * testsuite/std/ranges/istream_view.cc: Check it.
2263 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2265 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
2268 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2271 * testsuite/util/testsuite_fs.h (permissions_are_testable):
2274 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
2277 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
2278 Use new __gnu_test::permissions_are_testable() function.
2279 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2281 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2282 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2283 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2284 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2285 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2286 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2288 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2290 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2292 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2294 * testsuite/experimental/filesystem/operations/exists.cc:
2296 * testsuite/experimental/filesystem/operations/is_empty.cc:
2298 * testsuite/experimental/filesystem/operations/remove.cc:
2300 * testsuite/experimental/filesystem/operations/remove_all.cc:
2302 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2304 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
2305 New function to guess whether testing permissions will work.
2307 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2309 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
2310 * doc/html/manual/status.html: Regenerate.
2312 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2314 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
2316 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2319 * include/std/charconv (__to_chars_i): Remove redundant check.
2321 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2324 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
2325 class' move constructor. Define as defaulted for versioned
2327 * testsuite/20_util/tuple/cons/101960.cc: New test.
2329 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2332 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
2333 * doc/html/manual/status.html: Regenerate.
2335 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2337 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
2338 * include/bits/unique_ptr.h: Add @headerfile tags.
2340 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2342 * src/filesystem/ops-common.h (filesystem::file_time): Improve
2343 overflow check by using system_clock::duration::max().
2345 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2347 * include/bits/stl_tree.h: Tweak whitespace.
2349 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2351 * include/bits/unique_ptr.h (default_delete): Add @since tag.
2352 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
2353 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
2354 @param, and @returns.
2355 (_MakeUniq): Move to __detail namespace. Add alias template
2358 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2360 * include/bits/stl_function.h: Improve doxygen comments.
2362 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2364 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
2365 processing for C++20 components and components that depend on
2367 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
2368 * include/std/type_traits: Improve doxygen comments for C++20
2371 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2373 * include/ext/type_traits.h (__promote_2, __promote_3)
2374 (__promote_4): Redfine as alias templates using __promoted_t.
2375 * include/std/complex (__promote_2): Remove partial
2376 specializations for std::complex.
2378 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2380 * include/bits/stl_algo.h (min(initializer_list<T>))
2381 (min(initializer_list<T>, Compare)): Call __min_element directly to
2382 avoid redundant debug checks for valid ranges.
2383 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
2384 Likewise, for __max_element.
2385 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
2386 Likewise, for __minmax_element.
2388 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2390 * include/debug/deque (deque(size_type, const T&, const A&)):
2391 Prevent class template argument deduction and replace with a
2393 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
2395 * include/debug/list (list(size_type, const T&, const A&)):
2397 * include/debug/vector (vector(size_type, const T&, const A&)):
2400 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2402 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
2403 'std::vector<bool>::reference' as type name, not _Bit_reference.
2404 (build_libstdcxx_dictionary): Register printers for vector<bool>
2405 types in debug mode too.
2406 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
2407 output for invalid _Bit_reference. Use vector<bool>::reference
2408 instead of _Bit_reference.
2409 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2411 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
2413 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
2416 2021-08-17 Luc Michel <lmichel@kalray.eu>
2417 Marc Poulhies <mpoulhies@kalrayinc.com>
2419 * testsuite/lib/gdb-test.exp (gdb_version_check)
2420 (gdb_version_check_xmethods): Only check the GDB version for
2421 local native targets.
2423 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
2424 Jonathan Wakely <jwakely@redhat.com>
2426 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
2427 if distance is O(1).
2428 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2431 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2433 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
2434 construction from input iterators.
2436 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2438 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
2440 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2443 * include/bits/std_function.h (function(function&&)): Check for
2444 non-empty parameter before doing any work.
2446 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2448 * include/bits/cow_string.h (basic_string::contains): Do not
2449 define for -std=gnu++20.
2451 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2453 * include/bits/ranges_util.h (__not_same_as): Rename to
2455 * include/std/ranges (__not_same_as): Likewise.
2457 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2459 * include/std/utility (exchange): Add noexcept-specifier.
2460 * testsuite/20_util/exchange/noexcept.cc: New test.
2462 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2464 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
2465 (build_libstdcxx_dictionary): Register printer for
2466 std::error_code and std::error_condition.
2467 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
2469 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2472 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
2474 (print_word): Use qualified-id to access it.
2476 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2478 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
2479 Install another copy of the GDB hook.
2480 * python/Makefile.in: Regenerate.
2482 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2485 * include/c_global/cmath (hypot): Use __promoted_t.
2486 (lerp): Add new overload accepting any arithmetic types.
2487 * include/ext/type_traits.h (__promoted_t): New alias template.
2488 * testsuite/26_numerics/lerp.cc: Moved to...
2489 * testsuite/26_numerics/lerp/1.cc: ...here.
2490 * testsuite/26_numerics/lerp/constexpr.cc: New test.
2491 * testsuite/26_numerics/lerp/version.cc: New test.
2493 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2495 * testsuite/26_numerics/lerp.cc: Add header name to #error.
2496 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
2497 * testsuite/26_numerics/midpoint/version.cc: New test.
2499 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2501 * include/experimental/random (experimental::randint): Add
2502 nodiscard attribute.
2504 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2506 * src/c++98/locale_init.cc: Require C++11.
2507 * src/c++98/localename.cc: Likewise.
2508 * src/c++98/misc-inst.cc: Require C++98.
2510 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2513 * testsuite/experimental/random/randint.cc: Loop and retry if
2514 reseed() produces the same sequence.
2516 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2518 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
2519 (is_pointer_interconvertible_base_of_v)
2520 (is_pointer_interconvertible_base_of): Define for C++20.
2521 * include/std/version (__cpp_lib_is_pointer_interconvertible):
2523 * testsuite/23_containers/span/layout_compat.cc: Use correct
2524 feature test macro for std::is_layout_compatible_v.
2525 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
2526 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
2528 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2530 * include/bits/regex.h (basic_regex::transform_primary): Use
2531 _GLIBCXX_STD_C::vector for local variable.
2532 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
2533 _GLIBCXX_STD_C::vector base class of match_results.
2534 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
2535 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
2537 * include/bits/regex_compiler.h (_BracketMatcher): Use
2538 _GLIBCXX_STD_C::vector for data members.
2539 * include/bits/regex_executor.h (_Executor): Likewise.
2540 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
2542 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
2544 * include/debug/safe_container.h
2545 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
2546 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
2547 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
2549 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2551 * testsuite/23_containers/unordered_map/cons/default.cc: Add
2552 equality comparison operators to allocator.
2553 * testsuite/23_containers/unordered_set/cons/default.cc:
2556 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
2558 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
2559 dg-prune-output reason with 'builtin_unreachable'.
2560 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
2561 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
2562 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2563 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2564 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2565 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2566 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2567 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2569 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
2571 * testsuite/std/ranges/iota/max_size_type.cc: Set
2572 dg-timeout-factor to 4.
2574 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
2576 * libsupc++/compare (compare_three_way, strong_order)
2577 (weak_order, partial_order, compare_strong_order_fallback)
2578 (compare_weak_order_fallback, compare_partial_order_fallback):
2579 Move nodiscard attributes to correct location.
2581 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2584 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2585 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2586 (ranges::empty, ranges::data): Move attribute after the
2587 declarator-id instead of at the end of the declarator.
2588 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
2589 Move attributes back to the start of the function declarator,
2590 but move the requires-clause to the end.
2591 (common_iterator): Move attribute after the declarator-id.
2592 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
2593 from friend declaration that are not definitions.
2594 * include/std/ranges (views::all, views::filter)
2595 (views::transform, views::take, views::take_while,
2596 views::drop) (views::drop_while, views::join,
2597 views::lazy_split) (views::split, views::counted,
2598 views::common, views::reverse) (views::elements): Move
2599 attributes after the declarator-id.
2601 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2603 * libsupc++/compare (partial_ordering, weak_ordering)
2604 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
2605 (compare_three_way, strong_order, weak_order, partial_order)
2606 (compare_strong_order_fallback, compare_weak_order_fallback)
2607 (compare_partial_order_fallback, __detail::__synth3way): Add
2608 nodiscard attribute.
2609 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
2610 -Wno-unused-result to options.
2612 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2615 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2616 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2617 (ranges::empty, ranges::data): Move attribute to the end of
2619 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
2620 (common_iterator): Likewise for non-member operator functions.
2621 * include/std/ranges (views::all, views::filter)
2622 (views::transform, views::take, views::take_while, views::drop)
2623 (views::drop_while, views::join, views::lazy_split)
2624 (views::split, views::counted, views::common, views::reverse)
2625 (views::elements): Likewise.
2626 * testsuite/std/ranges/access/101782.cc: New test.
2628 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2630 * include/bits/forward_list.h: Add [[nodiscard]] to functions
2631 with no side-effects.
2632 * include/bits/stl_bvector.h: Likewise.
2633 * include/bits/stl_deque.h: Likewise.
2634 * include/bits/stl_list.h: Likewise.
2635 * include/bits/stl_queue.h: Likewise.
2636 * include/bits/stl_stack.h: Likewise.
2637 * include/bits/stl_vector.h: Likewise.
2638 * include/debug/deque: Likewise.
2639 * include/debug/forward_list: Likewise.
2640 * include/debug/list: Likewise.
2641 * include/debug/safe_iterator.h: Likewise.
2642 * include/debug/vector: Likewise.
2643 * include/std/array: Likewise.
2644 * testsuite/23_containers/array/creation/3_neg.cc: Use
2646 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
2648 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
2649 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
2650 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
2651 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
2653 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
2655 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2656 Adjust dg-error line numbers.
2657 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
2659 * testsuite/23_containers/deque/debug/invalidation/4.cc:
2661 * testsuite/23_containers/deque/types/1.cc: Use
2663 * testsuite/23_containers/list/types/1.cc: Cast result to void.
2664 * testsuite/23_containers/priority_queue/members/7161.cc:
2666 * testsuite/23_containers/queue/members/7157.cc: Likewise.
2667 * testsuite/23_containers/vector/59829.cc: Likewise.
2668 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
2670 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
2672 * testsuite/23_containers/vector/types/1.cc: Use
2675 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2677 * include/bits/iterator_concepts.h (iter_move): Add
2679 * include/bits/range_access.h (begin, end, cbegin, cend)
2680 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
2681 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2682 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
2683 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2684 (ranges::empty, ranges::data, ranges::cdata): Likewise.
2685 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
2686 (back_insert_iterator, front_insert_iterator, insert_iterator)
2687 (move_iterator, move_sentinel, common_iterator)
2688 (counted_iterator): Likewise.
2689 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
2691 * include/bits/stream_iterator.h (istream_iterator)
2692 (ostream_iterartor): Likewise.
2693 * include/bits/streambuf_iterator.h (istreambuf_iterator)
2694 (ostreambuf_iterator): Likewise.
2695 * include/std/ranges (views::single, views::iota, views::all)
2696 (views::filter, views::transform, views::take, views::take_while)
2697 (views::drop, views::drop_while, views::join, views::lazy_split)
2698 (views::split, views::counted, views::common, views::reverse)
2699 (views::elements): Likewise.
2700 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
2701 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
2702 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
2704 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
2705 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
2707 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2708 Cast result to void.
2709 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2711 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2713 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2715 * testsuite/23_containers/array/range_access.cc: Likewise.
2716 * testsuite/23_containers/deque/range_access.cc: Likewise.
2717 * testsuite/23_containers/forward_list/range_access.cc:
2719 * testsuite/23_containers/list/range_access.cc: Likewise.
2720 * testsuite/23_containers/map/range_access.cc: Likewise.
2721 * testsuite/23_containers/multimap/range_access.cc: Likewise.
2722 * testsuite/23_containers/multiset/range_access.cc: Likewise.
2723 * testsuite/23_containers/set/range_access.cc: Likewise.
2724 * testsuite/23_containers/unordered_map/range_access.cc:
2726 * testsuite/23_containers/unordered_multimap/range_access.cc:
2728 * testsuite/23_containers/unordered_multiset/range_access.cc:
2730 * testsuite/23_containers/unordered_set/range_access.cc:
2732 * testsuite/23_containers/vector/range_access.cc: Likewise.
2733 * testsuite/24_iterators/customization_points/iter_move.cc:
2735 * testsuite/24_iterators/istream_iterator/sentinel.cc:
2737 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
2739 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
2740 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
2741 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
2742 * testsuite/24_iterators/range_access/range_access.cc:
2744 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
2745 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
2746 * testsuite/28_regex/range_access.cc: Likewise.
2747 * testsuite/experimental/string_view/range_access/char/1.cc:
2749 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
2751 * testsuite/ext/vstring/range_access.cc: Likewise.
2752 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2753 * testsuite/std/ranges/p2259.cc: Likewise.
2755 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2757 * include/bits/random.tcc (linear_congruential_engine): Do not
2758 define static constexpr members when they are implicitly inline.
2759 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
2760 (__ratio_add, __ratio_subtract): Likewise.
2761 * include/std/type_traits (integral_constant): Likewise.
2762 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2765 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2767 * testsuite/util/testsuite_common_types.h: Replace uses of
2768 tr1::unordered_map and tr1::unordered_set with their C++11
2770 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
2771 dg-error line number.
2772 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2773 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2775 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
2777 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2779 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2781 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2784 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2786 * include/std/memory_resource (polymorphic_allocator::delete_object):
2787 Call destructor directly instead of using destroy.
2788 (allocator_traits<polymorphic_allocator<T>>): Define partial
2791 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2793 * testsuite/20_util/function_objects/binders/3113.cc: Remove
2794 trailing whitespace.
2795 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2796 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2797 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2799 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2800 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
2802 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2804 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2807 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2809 * doc/xml/manual/evolution.xml: Document deprecation.
2810 * doc/html/*: Regenerate.
2811 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
2812 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
2813 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
2815 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
2816 for C++11 and C++14 changes to std::random_shuffle and
2818 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
2819 use deprecated algorithms.
2820 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
2821 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2822 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2824 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2827 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2829 * testsuite/23_containers/forward_list/operations/3.cc:
2830 Use lambda instead of std::bind2nd.
2831 * testsuite/20_util/function_objects/binders/3113.cc: Add
2832 options for testing deprecated features.
2833 * testsuite/20_util/pair/cons/99957.cc: Likewise.
2834 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2835 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2836 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2838 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2839 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
2840 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
2841 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2842 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
2843 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
2844 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2846 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2848 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
2851 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2853 * include/bits/regex_executor.h (_State_info): Replace
2854 unique_ptr<bool[]> with array of bool.
2855 * include/bits/regex_executor.tcc: Likewise.
2856 * include/bits/regex_scanner.tcc: Replace std::strchr with
2858 * include/std/regex: Replace standard headers with smaller
2860 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
2861 <string.h> for strlen.
2862 * testsuite/28_regex/traits/char/lookup_collatename.cc:
2865 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2867 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
2868 RAII class template.
2869 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
2870 instead of unique_ptr.
2872 2021-08-02 Patrick Palka <ppalka@redhat.com>
2875 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
2876 Add missing std::move in return statement.
2877 (__partition_copy_fn::operator()): Rename templtae parameter
2878 _O2 to _Out2. Uglify function parameters out_true and out_false.
2879 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
2880 std::move to recursive call that unwraps a __normal_iterator
2882 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2883 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2885 2021-08-02 Patrick Palka <ppalka@redhat.com>
2888 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2889 the const& overload unconstrained and return a const reference
2890 as per LWG 3533. Make unconditionally noexcept.
2891 (elements_view::base): Revert accidental r12-569 change.
2892 (elements_view::_Iterator::base): Make the const& overload
2893 unconstrained and return a const reference as per LWG 3533.
2894 Make unconditionally noexcept.
2896 2021-08-02 Patrick Palka <ppalka@redhat.com>
2899 * include/std/ranges (join_view::_Iterator::_Iterator): Add
2902 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2905 * src/filesystem/ops-common.h (get_temp_directory_from_env):
2906 Add error_code parameter.
2907 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2908 argument to get_temp_directory_from_env and check it.
2909 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2911 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2913 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2914 Add dg-error for c++11_only target.
2916 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
2919 * configure.ac: Check for secure_getenv.
2920 * config.h.in: Regenerate.
2921 * configure: Regenerate.
2922 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2923 helper function to obtain path from the environment.
2924 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2925 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2926 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2927 Print messages if test cannot be run.
2928 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2929 Likewise. Fix incorrect condition. Use "TMP" to work with
2930 Windows as well as POSIX.
2932 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
2934 * src/c++17/memory_resource.cc: Use __exchange instead
2937 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2939 * include/experimental/optional (__throw_bad_optional_access):
2940 Replace GNU attribute with C++11 attribute.
2941 (optional::value, optional::value_or): Use if statements
2942 instead of conditional expressions.
2943 * include/std/optional (__throw_bad_optional_access)
2944 (optional::value, optional::value_or): Likewise.
2946 2021-07-27 Marek Polacek <polacek@redhat.com>
2950 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
2952 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2955 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2957 * include/bits/cow_string.h: Consistently use tab for
2960 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2962 * include/Makefile.am: Add new header.
2963 * include/Makefile.in: Regenerate.
2964 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2965 (basic_string): Move definition of Copy-on-Write string to
2967 * include/bits/basic_string.tcc: Likewise.
2968 * include/bits/cow_string.h: New file.
2970 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2972 * include/std/algorithm: Do not include <utility>.
2973 * include/std/functional: Likewise.
2974 * include/std/regex: Include <bits/stl_pair.h> instead of
2976 * include/debug/map.h: Likewise.
2977 * include/debug/multimap.h: Likewise.
2978 * include/debug/multiset.h: Likewise.
2979 * include/debug/set.h: Likewise.
2980 * include/debug/vector: Likewise.
2981 * include/bits/fs_path.h: Likewise.
2982 * include/bits/unique_ptr.h: Do not include <utility>.
2983 * include/experimental/any: Likewise.
2984 * include/experimental/executor: Likewise.
2985 * include/experimental/memory: Likewise.
2986 * include/experimental/optional: Likewise.
2987 * include/experimental/socket: Use __exchange instead
2989 * src/filesystem/ops-common.h: Likewise.
2990 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
2991 errors to not use a hardcoded line number.
2992 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
2993 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2994 Include <utility> for std::as_const.
2995 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2997 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2999 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
3001 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
3002 Adjust dg-error line number.
3004 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3006 * include/Makefile.am: Add bits/utility.h header.
3007 * include/Makefile.in: Regenerate.
3008 * include/bits/utility.h: New file.
3009 * include/std/utility (tuple_size, tuple_element): Move
3011 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
3013 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
3014 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
3015 * include/bits/ranges_util.h: Include new header instead of
3017 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
3018 partial specializations for std::pair here.
3019 (get): Move overloads for std::pair here.
3020 * include/std/any: Include new header instead of <utility>.
3021 * include/std/array: Likewise.
3022 * include/std/memory_resource: Likewise.
3023 * include/std/optional: Likewise.
3024 * include/std/variant: Likewise.
3025 * include/std/tuple: Likewise.
3026 (__is_tuple_like_impl<tuple<T...>>): Move here.
3027 (get) Declare overloads for std::array.
3028 * include/std/version (__cpp_lib_tuples_by_type): Change type
3030 * testsuite/20_util/optional/84601.cc: Include <utility>.
3031 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
3033 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3034 Adjust dg-error line numbers.
3035 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
3036 * testsuite/std/ranges/access/cend.cc: Likewise.
3037 * testsuite/std/ranges/access/end.cc: Likewise.
3038 * testsuite/std/ranges/single_view.cc: Likewise.
3040 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
3042 * include/std/future: Include <bits/atomic_base.h> instead of
3045 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
3047 * include/bits/stl_relops.h: Update documentation comments.
3049 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3052 * include/bits/hashtable.h (_Hashtable): Replace mixin with
3053 _Enable_default_ctor. Construct it explicitly in all
3054 non-forwarding, non-defaulted constructors.
3055 * testsuite/23_containers/unordered_map/cons/default.cc: Check
3056 non-default constructors can be used.
3057 * testsuite/23_containers/unordered_set/cons/default.cc:
3060 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
3062 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
3064 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3067 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
3068 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
3069 (allocator::allocate, allocator::deallocate): Use new macros.
3071 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3074 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
3075 constructor parameter to reference and use addressof.
3076 * testsuite/util/testsuite_iterators.h: Define deleted operator&
3077 overloads for test iterators.
3079 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3081 * include/bits/std_function.h (_Function_base): Add
3082 default member initializers and define constructor as defaulted.
3083 (function::_M_invoker): Add default member initializer.
3085 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3088 * doc/xml/manual/debug_mode.xml: Update documentation about
3089 debug capability of std::array.
3090 * doc/html/*: Regenerate.
3091 * include/debug/array: New file.
3093 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
3096 * include/ext/rope (sequence_buffer): Add move constructor and
3097 move assignment operator.
3098 * testsuite/ext/rope/101542.cc: New test.
3100 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
3103 * src/c++17/fs_ops.cc (fs::create_directories): Use status
3104 instead of symlink_status.
3105 * src/filesystem/ops.cc (fs::create_directories): Likewise.
3106 * testsuite/27_io/filesystem/operations/create_directories.cc:
3107 Check symlink to existing directory.
3108 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
3109 not test with symlinks on Windows.
3110 * testsuite/experimental/filesystem/operations/create_directories.cc:
3111 Check symlink to existing directory.
3112 * testsuite/experimental/filesystem/operations/create_directory.cc:
3113 Do not test with symlinks on Windows.
3115 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
3118 * include/bits/hashtable.h (_Hashtable): Conditionally delete
3119 default constructor by deriving from _Enable_special_members.
3120 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
3121 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
3123 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
3126 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
3127 * testsuite/27_io/filesystem/operations/create_directory.cc:
3128 Test creating directory with name of existing symlink to
3130 * testsuite/experimental/filesystem/operations/create_directory.cc:
3133 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3135 * include/std/tuple (get<I>): Add deleted overload for bad
3137 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
3140 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3142 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
3143 Use __int_traits unconditionally.
3145 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3147 * include/bits/random.h (_Shift::__value): Use constexpr.
3148 (_Select_uint_least_t::type): Use using-declaration.
3150 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3153 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3155 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
3156 instead of diagnostic pragmas.
3157 * include/bits/functional_hash.h: Likewise.
3158 * include/bits/iterator_concepts.h (__is_signed_int128)
3159 (__is_unsigned_int128): Likewise.
3160 * include/bits/max_size_type.h (__max_size_type): Likewise.
3161 (numeric_limits<__max_size_type>): Likewise.
3162 * include/bits/std_abs.h (abs): Likewise.
3163 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
3164 * include/bits/uniform_int_dist.h (uniform_int_distribution):
3166 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
3168 * include/std/type_traits (__is_integral_helper<INT_N>)
3169 (__is_signed_integer, __is_unsigned_integer)
3170 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
3171 * include/std/limits (__INT_N): Add __extension__ keyword.
3172 * include/bits/random.h (_Select_uint_least_t)
3173 (random_device): Likewise.
3175 2021-07-16 Patrick Palka <ppalka@redhat.com>
3178 * include/std/ranges (_CachedPosition::_M_get): For non-forward
3179 ranges, just call __builtin_unreachable.
3180 * testsuite/std/ranges/istream_view.cc (test05): New test.
3182 2021-07-16 Patrick Palka <ppalka@redhat.com>
3185 * include/std/ranges (split_view::split_view): Use std::move.
3186 (split_view::_Iterator::_Iterator): Remove redundant
3187 default_initializable constraint.
3188 (split_view::_Sentinel::_Sentinel): Declare.
3189 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
3191 2021-07-16 Marek Polacek <polacek@redhat.com>
3193 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
3196 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3198 * include/bits/unique_ptr.h: Adjust doxygen markup.
3200 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3203 * include/std/type_traits: Adjust doxygen markup.
3205 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
3207 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
3208 uses of non-standard integer types.
3209 * include/bits/functional_hash.h: Likewise.
3210 * include/bits/iterator_concepts.h: Likewise.
3211 * include/bits/max_size_type.h: Likewise.
3212 * include/bits/std_abs.h: Likewise.
3213 * include/bits/stl_algobase.h: Likewise.
3214 * include/bits/uniform_int_dist.h: Likewise.
3215 * include/ext/numeric_traits.h: Likewise.
3216 * include/std/type_traits: Likewise.
3218 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
3221 * include/std/tuple (tuple_element): Improve static_assert text.
3222 (__get_helper): Add deleted overload.
3223 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
3224 __get_helper directly.
3225 (__get_helper2): Remove.
3226 (__find_uniq_type_in_pack): New constexpr helper function.
3227 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
3229 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
3231 * testsuite/20_util/tuple/element_access/101427.cc: New test.
3233 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
3236 * include/bits/c++config (__replacement_assert): Add noexcept.
3237 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
3238 instead of __replacement_assert.
3240 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
3242 * include/std/string_view (basic_string_view(It, End)): Add
3244 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
3245 Check noexcept-specifier. Also check construction without CTAD.
3247 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
3250 * include/std/string_view (ends_with): Use traits_type::compare
3253 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
3255 * include/std/string_view: Only include <bits/ranges_base.h>
3256 once, and only for C++20 and later.
3258 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
3261 * include/std/span (as_writable_bytes): Add requires-clause.
3262 * testsuite/23_containers/span/101411.cc: New test.
3264 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
3266 * include/std/mutex (__lock_impl): Check
3267 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3269 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
3272 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
3273 Remove noexcept-specifier.
3274 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
3275 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
3278 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
3280 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
3281 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
3282 Add some more predefined macros.
3283 * include/bits/fs_fwd.h: Move @addtogroup commands inside
3284 namespaces. Add better documentation.
3285 * include/bits/fs_path.h: Likewise.
3286 * include/experimental/bits/fs_fwd.h: Likewise.
3287 * include/experimental/bits/fs_path.h: Likewise.
3288 * include/ext/throw_allocator.h: Fix typo and improve docs.
3289 * include/std/chrono: Move @addtogroup commands.
3290 * include/std/system_error: Move @addtogroup commands.
3291 * libsupc++/exception: Improve documentation.
3292 * libsupc++/exception.h: Add @since documentation.
3294 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3297 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
3298 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
3299 (PREDEFINED): Add/fix some more macros that need to be expanded.
3300 * include/bits/random.h: Stop Doxygen from documenting internal
3301 implementation details.
3302 * include/bits/random.tcc: Likewise.
3303 * include/bits/this_thread_sleep.h: Fix @file name.
3304 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
3305 document internal implementation details.
3306 * include/experimental/bits/simd_detail.h: Do not document
3307 internal implementation details.
3308 * include/experimental/simd: Define Doxygen groups.
3309 * include/experimental/type_traits: Improve documentation for
3310 the header file. Define groups. Use @since commands.
3311 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
3312 declaration before undocumented region.
3313 * include/std/type_traits (true_type, false_type): Use using
3314 declaration instead of typedef.
3315 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
3316 (is_nothrow_invocable_r_v): Move definitions next to other C++17
3318 Do not document internal implementation details. Move misplaced
3319 group-end command. Define group for variable templates.
3320 * include/std/variant: Do not document internal implementation
3322 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3325 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3327 * include/experimental/simd: Do not define anything pre-C++17.
3329 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3331 * include/bits/random.tcc [__cpp_inline_variables]: Remove
3332 redundant definitions of static constexpr member variables.
3333 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3336 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3338 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
3339 explicit instantiation declarations.
3340 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
3341 explicit instantiation definitions.
3343 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3346 * testsuite/17_intro/names.cc: Fix #if condition for names used
3349 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3352 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
3353 Fail gracefully if element_type is incomplete.
3354 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
3355 the standard doesn't require this test to work for array types.
3356 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
3357 types can be used with array specialization.
3358 * testsuite/20_util/unique_ptr/101236.cc: New test.
3360 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3362 * doc/xml/manual/intro.xml: Document LWG 415 change.
3363 * doc/html/manual/bugs.html: Regenerate.
3364 * include/bits/istream.tcc (ws): Create sentry and catch
3366 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
3367 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
3369 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3371 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
3372 directly instead of using _M_write. Do setstate(__err) all
3373 outside the try-catch block.
3374 * include/std/ostream (basic_ostream::_M_write): Declare
3375 private. Use __ostream_insert. Do not define for the versioned
3378 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3380 * doc/xml/manual/intro.xml: Document LWG 581 change.
3381 * doc/html/manual/bugs.html: Regenerate.
3382 * include/bits/basic_ios.tcc: Whitespace.
3383 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
3385 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
3387 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
3389 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
3390 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
3393 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3395 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
3396 is set, not if eofbit is set.
3397 (tellp, seekp, seekp): Create sentry object. Do not set badbit
3399 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
3400 Adjust expected behaviour.
3401 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
3403 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
3405 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
3407 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
3408 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
3409 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
3410 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
3412 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3414 * include/std/syncstream (basic_syncbuf::swap()): Remove
3415 noexcept, as per LWG 3498.
3417 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3420 * testsuite/17_intro/names.cc: Undef more names for newlib and
3421 also for arm-none-linux-gnueabi.
3422 * testsuite/experimental/names.cc: Disable PCH.
3424 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
3426 * include/experimental/bits/simd.h (__bit_cast): Implement via
3427 __builtin_bit_cast #if available.
3428 (__proposed::simd_bit_cast): Add overloads for simd and
3429 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
3430 available), which return an object of the requested type with
3431 the same bits as the argument.
3432 * include/experimental/bits/simd_math.h: Use simd_bit_cast
3433 instead of __bit_cast to allow casts to fixed_size_simd.
3434 (copysign): Remove branch that was only required if __bit_cast
3435 cannot be constexpr.
3436 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
3437 from __bit_cast to __proposed::simd_bit_cast since the former
3438 will not cast fixed_size objects anymore.
3440 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3442 * include/experimental/bits/simd_math.h
3443 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
3444 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
3447 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3449 * include/experimental/bits/simd.h (__execute_on_index_sequence)
3450 (__execute_on_index_sequence_with_return)
3451 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
3454 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3456 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
3457 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
3460 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3462 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
3463 implementation doesn't require a _VecBltnBtmsk ABI tag, it
3464 requires either a 64-Byte input (in which case AVX512F must be
3465 available) or AVX512VL.
3467 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3469 * include/experimental/bits/simd_math.h: Undefine internal
3471 (frexp): Move #if to a more sensible position and reformat
3473 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
3474 duplicating the code here.
3475 (modf): Simplify condition.
3477 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3479 * include/experimental/bits/simd_math.h (fabs): Remove
3480 fabs(simd<integral>) overload.
3482 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3484 * include/experimental/bits/simd_converter.h
3485 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
3486 * include/experimental/bits/simd_fixed_size.h
3487 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
3488 arguments by const-ref.
3489 (_S_masked_unary): Pass _SimdTuple by const-ref.
3491 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3493 * include/experimental/bits/simd_fixed_size.h
3494 (_AbisInSimdTuple): Removed.
3496 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3498 * include/experimental/bits/simd.h: Add missing operator~
3499 overload for simd<floating-point> to __float_bitwise_operators.
3500 * include/experimental/bits/simd_builtin.h
3501 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
3502 implement complement for floating-point vectors.
3503 * include/experimental/bits/simd_fixed_size.h
3504 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
3505 copysign implementation of _SimdTuple members.
3506 * include/experimental/bits/simd_math.h (copysign): Call
3507 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
3508 generic copysign implementation using the new ~ operator.
3510 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3512 * testsuite/experimental/simd/README.md: Fix typos.
3514 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3516 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
3518 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
3519 conditional noexcept as per LWG 2762.
3520 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
3521 dereferencing cannot throw.
3522 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
3523 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
3524 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
3526 2021-06-23 Patrick Palka <ppalka@redhat.com>
3529 * testsuite/23_containers/multiset/cons/deduction.cc:
3530 Uncomment CTAD example that was rejected by this bug.
3531 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3533 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3535 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
3538 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3540 * testsuite/experimental/simd/README.md: New file.
3542 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3544 * testsuite/experimental/simd/driver.sh: Rewrite output
3545 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
3546 to be used twice. Add -x and -o short options. Parse long
3547 options with = instead of separating space generically. Parce
3548 contracted short options. Make unrecognized options an error.
3549 If same-line output is active, trap on EXIT to increment the
3550 progress (only with --percentage), erase the line and print the
3552 * testsuite/experimental/simd/generate_makefile.sh: Initialize
3553 helper files for progress account keeping. Update help target
3554 for changes to DRIVEROPTS.
3556 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3558 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
3559 and associated warning.
3560 * testsuite/Makefile.in: Regenerate.
3562 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
3563 Jonathan Wakely <jwakely@redhat.com>
3564 Ulrich Drepper <drepper@redhat.com>
3566 * include/std/chrono (chrono::year::is_leap()): Optimize.
3568 2021-06-23 Patrick Palka <ppalka@redhat.com>
3571 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
3573 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3574 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3575 Mention one of the replaced examples is broken due to PR101174.
3576 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3577 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
3578 ambiguous CTAD examples.
3579 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3581 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3583 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
3585 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3587 * include/std/mutex (__detail::__try_lock_impl): Rename
3588 parameter to avoid clashing with newlib's __lockable macro.
3589 (try_lock): Add 'inline' specifier.
3590 * testsuite/17_intro/names.cc: Add check for __lockable.
3591 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
3593 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3594 Matthias Kretz <m.kretz@gsi.de>
3596 * include/std/mutex (lock): Replace recursion with iteration
3597 when lockables all have the same type.
3598 (__detail::__try_lock_impl): Likewise. Pass lockables as
3599 parameters, instead of a tuple. Always lock the first one, and
3600 recurse for the rest.
3601 (__detail::__lock_impl): Adjust call to __try_lock_impl.
3602 (__detail::__try_to_lock): Remove.
3603 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
3604 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
3606 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
3608 * testsuite/30_threads/try_lock/5.cc: New test.
3610 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3612 * include/std/memory (declare_reachable, undeclare_reachable)
3613 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
3614 (pointer_safety): Only define for C++11 to C++20 inclusive.
3615 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
3617 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3619 * include/bits/random.h (seed_seq): Constrain initializer-list
3621 * include/bits/random.tcc (seed_seq): Add template parameter.
3622 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
3624 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
3627 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
3630 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
3631 Force _M_release() to wake all waiting threads.
3632 * testsuite/30_threads/semaphore/100806.cc: New test.
3634 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
3636 * include/std/mutex (__try_to_lock): Move to __detail namespace.
3637 (struct __try_lock_impl): Replace with ...
3638 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
3639 function templates to implement std::try_lock.
3640 (try_lock): Use new __try_lock_impl.
3641 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
3642 template to implement std::lock.
3643 (lock): Use __lock_impl.
3645 2021-06-21 Patrick Palka <ppalka@redhat.com>
3647 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
3649 2021-06-20 Patrick Palka <ppalka@redhat.com>
3651 * include/std/ranges (__non_propagating_cache::operator bool):
3652 Define for split_view::begin().
3653 (split_view): Define as per P2210.
3654 (views::__detail::__can_split_view): Define.
3655 (views::_Split, views::split): Define.
3656 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3658 * testsuite/std/ranges/adaptors/split.cc: New test.
3659 * testsuite/std/ranges/p2325.cc (test08a): New test.
3660 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
3662 2021-06-20 Patrick Palka <ppalka@redhat.com>
3664 * include/std/ranges: Rename views::split to views::lazy_split,
3665 split_view to lazy_split_view, etc. throughout.
3666 * testsuite/std/ranges/*: Likewise.
3667 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
3668 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
3670 2021-06-20 Patrick Palka <ppalka@redhat.com>
3672 * include/std/ranges (split_view::_OuterIter::__at_end):
3673 Check _M_trailing_empty.
3674 (split_view::_OuterIter::_M_trailing_empty): Define this
3676 (split_view::_OuterIter::operator++): Set _M_trailing_empty
3678 (split_view::_OuterIter::operator==): Compare
3680 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
3681 split parts instead of one.
3682 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
3684 2021-06-20 Patrick Palka <ppalka@redhat.com>
3686 * include/std/ranges (split_view::_InnerIter::base): Define as
3689 2021-06-19 Patrick Palka <ppalka@redhat.com>
3691 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
3692 Consider _Base instead of _Vp as per LWG 3555.
3693 (elements_view::_Iterator::_S_iter_concept): Likewise.
3695 2021-06-19 Patrick Palka <ppalka@redhat.com>
3697 * include/std/ranges (split_view::_OuterIter::value_type::begin):
3698 Remove the non-const overload, and remove the copyable constraint
3699 on the const overload as per LWG 3553.
3701 2021-06-19 Patrick Palka <ppalka@redhat.com>
3703 * include/bits/stl_iterator.h
3704 (__detail::__common_iter_use_postfix_proxy): Add
3705 move_constructible constraint as per LWG 3546.
3706 (common_iterator::__postfix_proxy): Adjust initializer of
3707 _M_keep as per LWG 3546.
3709 2021-06-18 Patrick Palka <ppalka@redhat.com>
3712 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
3713 to limit comparison complexity to 3*N/2.
3714 (__minmax_element_fn::operator()): Likewise.
3715 (shift_right): Avoid premature std::move of __result.
3716 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
3718 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
3721 2021-06-18 Patrick Palka <ppalka@redhat.com>
3723 * include/std/concepts (convertible_to): Just use declval as per
3726 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3729 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
3730 incorrect static_assert with ones matching the 'Mandates'
3731 conditions in the standard.
3732 * testsuite/26_numerics/reduce/95833.cc: New test.
3734 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3736 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
3737 diagnostic pragma to suppress -Wstringop-overread error.
3739 2021-06-18 Patrick Palka <ppalka@redhat.com>
3741 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
3742 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
3743 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
3744 * include/bits/ranges_util.h: ... here.
3745 * include/std/ranges (__detail::find, __detail::find_if)
3746 (__detail::find_if_not, __detail::mismatch): Remove.
3747 (filter_view): Use ranges::find_if instead.
3748 (drop_while_view): Use ranges::find_if_not instead.
3749 (split_view): Use ranges::find and ranges::mismatch instead.
3751 2021-06-18 Patrick Palka <ppalka@redhat.com>
3753 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
3754 default_initializable requirement.
3755 * include/bits/ranges_base.h (ranges::view): Likewise.
3756 * include/bits/ranges_util.h (subrange): Constrain the default
3758 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
3760 (front_insert_iterator): Likewise.
3761 (insert_iterator): Likewise. Remove NSDMIs.
3762 (common_iterator): Constrain the default ctor.
3763 (counted_iterator): Likewise.
3764 * include/bits/stream_iterator.h (ostream_iterator): Remove the
3766 * include/std/ranges (__detail::__box::operator=): Handle
3767 self-assignment in the primary template.
3768 (__detail::__box): In the partial specialization: adjust
3769 constraints as per P2325. Add specialized operator= for the
3770 case when the wrapped type is not copyable. Constrain the
3771 default ctor. Avoid list-initialization.
3772 (single_view): Constraint the default ctor.
3773 (iota_view): Relax semiregular constraint to copyable.
3774 Constrain the default ctor.
3775 (iota_view::_Iterator): Constraint the default ctor.
3776 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
3777 Remove redundant checks for empty _M_stream.
3778 (basic_istream_view::_Iterator): Likewise.
3779 (ref_view): Remove the default ctor. Remove NSDMIs.
3780 (ref_view::_Iterator): Constrain the default ctor.
3781 (__detail::__non_propagating_cache::operator=): Define overload
3782 for assigning from a value of the underlying type.
3783 (filter_view): Likewise.
3784 (filter_view::_Iterator): Likewise.
3785 (transform_view): Likewise.
3786 (transform_view::_Iterator): Likewise.
3787 (take_view): Likewise.
3788 (take_view::_Iterator): Likewise.
3789 (take_while_view): Likewise.
3790 (take_while_view::_Iterator): Likewise.
3791 (drop_while_view): Likewise.
3792 (drop_while_view::_Iterator): Likewise.
3793 (join_view): Likewise.
3794 (split_view::_OuterIter::__current): Adjust after changing the
3796 (split_view::_M_current): Wrap it in a __non_propagating_cache.
3797 (split_view::split_view): Constrain the default ctor.
3798 (common_view): Constrain the default ctor.
3799 (reverse_view): Likewise.
3800 (elements_view): Likewise.
3801 * include/std/span (enable_view<span<_ElementType, _Extent>>):
3802 Define this partial specialization to true unconditionally.
3803 * include/std/version (__cpp_lib_ranges): Adjust value.
3804 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
3805 Don't attempt to default construct a back_insert_iterator.
3806 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
3807 Don't attempt to default construct a front_insert_iterator.
3808 * testsuite/24_iterators/insert_iterator/constexpr.cc:
3809 Don't attempt to default construct an insert_iterator.
3810 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
3811 Remove this test for default constructibility of ostream_iterator.
3812 * testsuite/std/ranges/97600.cc: Don't attempt to default
3813 construct a basic_istream_view.
3814 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
3816 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
3817 (test02): Adjust now that __box is copyable-box not
3820 * testsuite/std/ranges/p2325.cc: New test.
3821 * testsuite/std/ranges/single_view.cc (test06): New test.
3822 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
3823 require default_initializable.
3825 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
3828 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
3829 define when is_constant_evaluated is available.
3830 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
3832 (__constant_string_p, __constant_array_p): Remove.
3833 (char_traits): Use is_constant_evaluated directly.
3834 * include/std/version (__cpp_lib_constexpr_char_traits)
3835 (__cpp_lib_constexpr_string): Only define when
3836 is_constant_evaluated is available.
3838 2021-06-17 Patrick Palka <ppalka@redhat.com>
3841 * include/std/ranges (__adaptor::_Partial): For the "simple"
3842 forwarding partial specializations, also require that
3843 the extra arguments are trivially copyable.
3844 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
3846 2021-06-17 Patrick Palka <ppalka@redhat.com>
3849 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
3850 template form of _S_has_simple_extra_args.
3851 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
3852 parameter pack. Try to treat _S_has_simple_extra_args as a
3853 variable template parameterized by _Args.
3854 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
3855 __adaptor_has_simple_extra_args.
3856 (views::_Take::_S_has_simple_extra_args): Templatize according
3857 to the type of the extra argument.
3858 (views::_Drop::_S_has_simple_extra_args): Likewise.
3859 (views::_Split::_S_has_simple_extra_args): Define.
3860 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3861 Adjust after changes to _S_has_simple_extra_args mechanism.
3864 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3866 * include/bits/iterator_concepts.h (__decay_copy): Name type.
3868 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3870 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3871 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3872 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3873 (ranges::empty, ranges::data, ranges::cdata): Remove final
3874 keywords and deleted operator& overloads.
3875 * testsuite/24_iterators/customization_points/iter_move.cc: Use
3876 new is_customization_point_object function.
3877 * testsuite/24_iterators/customization_points/iter_swap.cc:
3879 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
3881 * testsuite/std/ranges/access/begin.cc: Likewise.
3882 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3883 * testsuite/std/ranges/access/cdata.cc: Likewise.
3884 * testsuite/std/ranges/access/cend.cc: Likewise.
3885 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3886 * testsuite/std/ranges/access/crend.cc: Likewise.
3887 * testsuite/std/ranges/access/data.cc: Likewise.
3888 * testsuite/std/ranges/access/empty.cc: Likewise.
3889 * testsuite/std/ranges/access/end.cc: Likewise.
3890 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3891 * testsuite/std/ranges/access/rend.cc: Likewise.
3892 * testsuite/std/ranges/access/size.cc: Likewise.
3893 * testsuite/std/ranges/access/ssize.cc: Likewise.
3894 * testsuite/util/testsuite_iterators.h
3895 (is_customization_point_object): New function.
3897 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3899 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3900 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3901 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3902 (ranges::empty, ranges::data, ranges::cdata): Make types final.
3903 Add deleted operator& overloads.
3904 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3906 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3907 ill-formed & expressions with using-declarations. Add checks for
3908 other function objects.
3910 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3912 * include/bits/ranges_util.h (view_interface): Add noexcept to
3913 empty, operator bool, data and size members.
3914 (subrange): Add noexcept to constructors.
3915 * include/std/ranges (single_view, ref_view): Add noexcept to
3917 (views::single, views::all): Add noexcept.
3918 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3919 * testsuite/std/ranges/single_view.cc: Likewise.
3921 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3923 * include/bits/ranges_util.h (subrange): Add __size_type typedef
3924 and use it to simplify declarations.
3925 (subrange(i, s, n)): Remove assertion.
3926 * testsuite/std/ranges/subrange/constexpr.cc: New test.
3928 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3930 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3931 Replace with function object.
3932 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3933 __decay_copy unqualified.
3934 * include/bits/ranges_base.h (__member_end, __adl_end):
3935 Likewise. Use __range_iter_t for type of ranges::begin.
3936 (__member_rend): Use correct value category for rbegin argument.
3937 (__member_data): Use __decay_copy unqualified.
3938 (__begin_data): Use __range_iter_t for type of ranges::begin.
3940 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3942 * include/bits/ranges_base.h (ranges::empty): Check whether
3943 conversion to bool can throw.
3944 * testsuite/std/ranges/access/empty.cc: Check for correct
3947 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3950 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
3951 use the type if it's a reference.
3952 * testsuite/20_util/common_reference/100894.cc: New test.
3954 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3956 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3957 Add dg-require-filesystem-ts directive.
3959 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3962 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
3963 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
3965 * testsuite/20_util/any/cons/101034.cc: New test.
3967 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3969 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
3970 -std=gnu++17 option.
3972 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3975 * libsupc++/compare (compare_partial_order_fallback): Add
3976 constraint using reversed parameter order, as per LWG 3465.
3977 * testsuite/18_support/comparisons/algorithms/fallback.cc:
3978 Adjust expected result.
3980 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3982 * libsupc++/compare (__decayed_same_as): New helper concept.
3983 (strong_order, weak_order, partial_order): Constrain with new
3984 concept instead of using static_assert.
3985 (compare_strong_order_fallback, compare_weak_order_fallback)
3986 (compare_partial_order_fallback): Likewise. Do not deduce return
3987 types. Remove redundant if-constexpr checks.
3988 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
3990 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3993 * include/std/tuple: Use reserved form of attribute name.
3994 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
3995 check for no_unique_address.
3996 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
3998 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
4001 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
4003 * include/bits/fs_path.h (operator==, operator<=>): Use new
4004 _S_compare function.
4005 (path::_S_compare): New function to call path::compare in a
4006 context where path::iterator is complete.
4007 * include/experimental/bits/fs_path.h (operator<, operator==):
4008 Define after path::iterator is complete.
4009 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
4011 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
4014 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
4016 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
4017 test logic with constexpr check for is_always_lock_free.
4019 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
4022 * include/std/optional (optional::operator=(const optional<U>&)):
4023 Fix value category used in is_assignable check.
4024 * testsuite/20_util/optional/assignment/100982.cc: New test.
4026 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
4028 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
4029 * include/bits/iterator_concepts.h (indirectly_readable_traits):
4030 Add LWG issue number to comment.
4031 * include/std/memory_resource (polymorphic_allocator::release):
4033 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
4034 dg-warning for deprecation. Also check std::allocator<void>.
4036 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
4039 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
4040 Change parameter type from _Tp to _Tp*.
4041 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
4042 coverage of types tested.
4044 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
4046 * include/std/barrier (__tree_barrier::_M_arrive): Remove
4047 unnecessary hasher instantiation.
4049 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
4051 * include/experimental/propagate_const (swap): Constrain.
4052 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
4054 2021-06-07 Avi Kivity <avi@scylladb.com>
4057 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
4058 Add missing typename.
4060 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
4063 * include/std/optional (operator<=>(const optional<T>& const U&)):
4064 Add missing constraint and add workaround for template
4066 * testsuite/20_util/optional/relops/three_way.cc: Check that
4067 type without equality comparison cannot be compared when wrapped
4070 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
4073 * include/bits/ranges_base.h (_SSize): Return signed type.
4074 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
4076 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4078 * include/bits/ranges_base.h (_SSize): Return the result of
4079 ranges::size converted to the wider of make-signed-like-t<S> and
4080 ptrdiff_t, rather than the ranges different type.
4081 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
4082 for an iota_view that uses an integer class type for its
4085 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4088 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
4089 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
4091 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4094 * include/bits/iterator_concepts.h (__detail::__decay_copy)
4095 (__detail::__member_begin, __detail::__adl_begin): Move to
4096 namespace ranges::__cust_access.
4097 (__detail::__ranges_begin): Likewise, and rename to __begin.
4098 Remove redundant static assertion.
4099 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
4100 Use lvalue in noexcept specifier.
4101 (__as_const): Add non-deduced parameter for value category.
4102 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
4104 (__member_size, __adl_size, __member_empty, __size0_empty):
4105 (__eq_iter_empty, __adl_data): Use lvalue objects in
4107 (__sentinel_size): Likewise. Add check for conversion to
4109 (__member_data): Allow non-lvalue types to satisfy the concept,
4110 but use lvalue object in requirements.
4111 (_Size, _SSize): Remove forwarding to always use an lvalue.
4112 (_Data): Likewise. Add static assertion for arrays.
4113 * testsuite/std/ranges/access/cdata.cc: Adjust expected
4114 behaviour for rvalues. Add negative tests for ill-formed
4116 * testsuite/std/ranges/access/data.cc: Likewise.
4117 * testsuite/std/ranges/access/empty.cc: Adjust expected
4118 behaviour for rvalues.
4119 * testsuite/std/ranges/access/size.cc: Likewise.
4121 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
4123 * include/std/any (any::_Manager::_S_access): New static
4124 function to access the contained value.
4125 (any::emplace, __any_caster): Use _S_access member of the
4128 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4130 * doc/xml/manual/status_cxx2020.xml:
4131 * doc/html/*: Regenerate.
4132 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
4134 * include/std/version (__cpp_lib_generic_unordered_lookup):
4136 * testsuite/23_containers/unordered_map/operations/1.cc: Check
4138 * testsuite/23_containers/unordered_set/operations/1.cc:
4141 2021-06-03 Patrick Palka <ppalka@redhat.com>
4143 * include/bits/ranges_algo.h (__detail::__can_reread_output):
4144 Factor out this concept from ...
4145 (__unique_copy_fn::operator()): ... here. Use the concept
4147 * testsuite/std/ranges/range.cc: Remove now ill-formed use
4148 of range_value_t on an output_range.
4149 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
4150 Define value_type, pointer and reference member types to void.
4152 2021-06-03 Patrick Palka <ppalka@redhat.com>
4155 * include/std/ranges (_RangeAdaptorClosure): Document
4156 _S_has_simple_call_op mechanism.
4157 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
4158 (__closure_has_simple_call_op): New concept.
4159 (__adaptor_has_simple_extra_args): Likewise.
4160 (_Partial<_Adaptor, _Args...>): New partial specialization.
4161 (_Partial<_Adaptor, _Arg>): Likewise.
4162 (_Pipe<_Lhs, _Rhs>): Likewise.
4163 (views::_All::_S_has_simple_call_op): Define to true.
4164 (views::_Filter::_S_has_simple_extra_args): Likewise.
4165 (views::_Transform::_S_has_simple_extra_args): Likewise.
4166 (views::_Take::_S_has_simple_extra_args): Likewise.
4167 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
4168 (views::_Drop::_S_has_simple_extra_args): Likewise.
4169 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
4170 (views::_Join::_S_has_simple_call_op): Likewise.
4171 (views::_Split): Document why we don't define
4172 _S_has_simple_extra_args to true for this adaptor.
4173 (views::_Common::_S_has_simple_call_op): Define to true.
4174 (views::_Reverse::_S_has_simple_call_op): Likewise.
4175 (views::_Elements::_S_has_simple_call_op): Likewise.
4176 * testsuite/std/ranges/adaptors/100577.cc: New test.
4178 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
4182 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
4183 Value-initialize subobject.
4184 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
4186 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
4189 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
4192 * testsuite/23_containers/unordered_map/96088.cc: Adjust
4193 expected number of allocations.
4194 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
4196 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
4198 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
4199 * doc/xml/manual/status_cxxtr1.xml: Likewise.
4200 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
4201 * doc/html/*: Regenerate.
4203 2021-06-01 Patrick Palka <ppalka@redhat.com>
4206 * testsuite/23_containers/deque/allocator/default_init.cc,
4207 testsuite/23_containers/forward_list/allocator/default_init.cc,
4208 testsuite/23_containers/list/allocator/default_init.cc,
4209 testsuite/23_containers/map/allocator/default_init.cc,
4210 testsuite/23_containers/set/allocator/default_init.cc,
4211 testsuite/23_containers/vector/allocator/default_init.cc,
4212 testsuite/23_containers/vector/bool/allocator/default_init.cc:
4215 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
4217 * testsuite/23_containers/unordered_map/96088.cc: Change
4218 effective target to c++17.
4219 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
4221 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
4223 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
4224 isblank for C++11 and later.
4226 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
4229 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
4230 Fix return value for no-op case.
4231 * testsuite/24_iterators/range_operations/advance.cc: Test
4232 return values of three-argument overload.
4234 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
4237 * python/Makefile.am: Use archive name for printer hook if no
4238 dynamic library name is available.
4239 * python/Makefile.in: Regenerate.
4241 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
4243 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
4244 Compilers for Linux: Compatibility with GNU Compilers" article.
4245 * doc/html/manual/abi.html: Regenerate.
4247 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
4249 * include/debug/formatter.h
4250 (_Error_formatter::_Parameter::_Named): New.
4251 (_Error_formatter::_Parameter::_Type): Inherit latter.
4252 (_Error_formatter::_Parameter::_M_integer): Likewise.
4253 (_Error_formatter::_Parameter::_M_string): Likewise.
4254 * src/c++11/debug.cc: Include <cstring>.
4255 (_Print_func_t): New.
4256 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
4257 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
4258 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
4259 (print_type): Rename in...
4260 (print_type_info): ...this. Use pretty_print.
4261 (print_address, print_integer): New.
4262 (print_named_name, print_iterator_constness, print_iterator_state): New.
4263 (print_iterator_seq_type): New.
4264 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
4265 (print_field): Use latters.
4266 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
4267 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
4268 Change signature to...
4269 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
4270 ...this and adapt. Remove intermediate buffer to render input string.
4271 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
4273 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
4276 * include/bits/ranges_base.h (advance, distance, next, prev):
4277 Replace function templates with function objects.
4278 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4279 Adjust for changes to function objects.
4280 * testsuite/std/ranges/adaptors/elements.cc: Add using
4281 declarations for names from namespace ranges.
4282 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
4283 * testsuite/24_iterators/range_operations/100768.cc: New test.
4285 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
4288 * include/bits/hashtable_policy.h (_Select2nd): New.
4289 (_NodeBuilder<>): New.
4290 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
4291 (_AllocNode<>::operator()): Likewise.
4292 * include/bits/hashtable.h
4293 (_Hashtable<>::__node_builder_t): New.
4294 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
4296 (_Hashtable<>::_S_forward_key): New.
4297 (_Hashtable<>::_M_insert): Use latter.
4298 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
4299 Instantiate node first, compute hash code second.
4300 * testsuite/23_containers/unordered_map/96088.cc: New test.
4301 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
4302 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
4303 * testsuite/23_containers/unordered_set/96088.cc: New test.
4304 * testsuite/util/replacement_memory_operators.h
4305 (counter::_M_increment): New.
4306 (counter::_M_decrement): New.
4307 (counter::reset()): New.
4309 2021-05-24 Patrick Palka <ppalka@redhat.com>
4312 * include/std/ranges (__detail::__non_propagating_cache): Move
4313 definition up to before that of _CachedPosition. Make base
4314 class _Optional_base protected instead of private. Add const
4315 overload for operator*.
4316 (__detail::_CachedPosition): Rewrite the partial specialization
4317 for forward ranges as a derived class of __non_propagating_cache.
4318 Remove the size constraint on the partial specialization for
4319 random access ranges. Add copy/move/copy-assignment/move-assignment
4320 members to the offset partial specialization for random
4321 access ranges that propagate the cached value but additionally
4322 invalidate it in the source object on move.
4323 * testsuite/std/ranges/adaptors/100479.cc: New test.
4325 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
4327 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
4328 call to ranges::next.
4329 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
4330 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
4332 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
4335 2021-05-21 Patrick Palka <ppalka@redhat.com>
4338 * include/std/ranges (drop_while_view::begin): Assert the
4339 precondition added by LWG 3490.
4341 2021-05-21 Patrick Palka <ppalka@redhat.com>
4344 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
4345 Split out this member function from ...
4346 (iota_view::_Sentinel::operator-): ... here, for sake of access
4348 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
4350 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
4352 * include/bits/random.tcc (__representable_as_double)
4353 (__p1_representable_as_double): Add "" to static asserts.
4355 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
4358 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
4359 (__glibcxx_constexpr_assert): ... this.
4360 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
4361 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
4362 or __glibcxx_assert_impl.
4363 (__glibcxx_assert_2): Remove
4364 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
4365 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
4366 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4367 Adjust expected error.
4368 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4370 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4373 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4375 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4377 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4379 * testsuite/23_containers/span/back_neg.cc: Likewise.
4380 * testsuite/23_containers/span/front_neg.cc: Likewise.
4381 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
4383 2021-05-20 Patrick Palka <ppalka@redhat.com>
4386 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
4387 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
4388 (reverse_iterator::reference): Likewise, but with iter_reference_t.
4389 (reverse_iterator::value_type): Likewise, but with iter_value_t.
4390 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
4391 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
4393 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
4396 * include/std/charconv (to_chars): Hide the overloads for
4397 floating-point types for 16 bit targets.
4398 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
4399 * testsuite/20_util/to_chars/double.cc: Run this test only on
4401 * testsuite/20_util/to_chars/float.cc: Likewise.
4402 * testsuite/20_util/to_chars/long_double.cc: Likewise.
4404 2021-05-18 Patrick Palka <ppalka@redhat.com>
4407 * include/std/ranges (elements_view::_Sentinel::operator-): Use
4408 _M_distance_from in the other operator- overload too.
4409 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
4411 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
4413 * testsuite/lib/prune.exp: Add note about 'dg-note'.
4415 2021-05-18 Patrick Palka <ppalka@redhat.com>
4418 * include/std/ranges (__box::__box): Use non-list-initialization
4419 in member initializer list of in-place constructor of the
4420 partial specialization for semiregular types.
4421 (__box::operator->): Use std::__addressof.
4422 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
4424 * testsuite/std/ranges/single_view.cc (test04): New test.
4426 2021-05-18 Patrick Palka <ppalka@redhat.com>
4429 * include/std/ranges (reverse_view::_S_needs_cached_begin):
4430 Set to true if the underlying non-common random-access range
4431 doesn't have a sized sentinel.
4433 2021-05-18 Patrick Palka <ppalka@redhat.com>
4436 * include/std/ranges (elements_view::_Iterator): Also befriend
4438 (elements_view::_Sentinel::_M_equal): Templatize.
4439 (elements_view::_Sentinel::_M_distance_from): Split out from ...
4440 (elements_view::_Sentinel::operator-): ... here. Depend on
4441 _Base2 instead of _Base in the return type.
4442 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
4445 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
4447 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
4448 until value change observed.
4449 (__waiter_base::_M_laundered): New member.
4450 (__waiter_base::_M_notify): Check _M_laundered to determine
4451 whether to wake one or all.
4452 (__detail::__atomic_compare): Return true if call to
4453 __builtin_memcmp() == 0.
4454 (__waiter_base::_S_do_spin_v): Adjust predicate.
4455 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
4458 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4461 * include/experimental/bits/fs_path.h (__is_constructible_from):
4462 Test construction from a const lvalue, not an rvalue.
4463 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
4464 * testsuite/experimental/filesystem/path/construct/100630.cc:
4467 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
4470 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
4471 Declare (but do not define) partial specialization.
4472 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
4474 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4476 * include/std/thread (jthread::_S_create): Fix static assert
4478 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
4479 * testsuite/30_threads/jthread/jthread.cc: Do not require
4480 pthread effective target.
4481 * testsuite/30_threads/jthread/2.cc: Moved to...
4482 * testsuite/30_threads/jthread/version.cc: ...here.
4484 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4486 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
4487 * doc/Makefile.in: Regenerate.
4488 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
4490 * scripts/run_doxygen (print_usage): Always print to stdout and
4492 (fail): New function for exiting on error.
4493 (parse_options): Handle --latex_cmd. Do not treat --help the
4494 same as errors. Simplify handling of required arguments.
4496 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
4498 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4499 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
4500 warnings. Replace bitwise AND with logical AND in loop
4502 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4503 Replace bitwise AND with logical AND in loop condition.
4504 * testsuite/util/pstl/test_utils.h: Remove unused parameter
4507 2021-05-11 Patrick Palka <ppalka@redhat.com>
4509 * src/c++17/ryu/LOCAL_PATCHES: Update.
4510 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
4511 Remove declarations for never-defined functions.
4512 * testsuite/20_util/to_chars/4.cc: New test.
4514 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4516 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
4517 alternative for macro.
4518 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
4520 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
4523 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4525 * include/bits/allocator.h (allocator<void>) [C++20]: Add
4526 missing noexcept to constructor. Restore missing POCMA and
4527 is_always_equal_traits.
4528 [C++17]: Make construct and destroy members private and
4529 declare allocator_traits as a friend.
4530 * include/bits/memoryfwd.h (allocator_traits): Declare.
4531 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4532 Add nodiscard attribute. Add static assertion for LWG 3307.
4533 * include/ext/new_allocator.h (new_allocator::allocate): Add
4534 static assertion for LWG 3307.
4535 * testsuite/20_util/allocator/void.cc: Check that converting
4536 constructor is noexcept. Check for propagation traits and
4537 size_type and difference_type. Check that pointer and
4538 const_pointer are gone in C++20.
4540 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4542 * include/std/stop_token: Remove TODO comment.
4544 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4546 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
4547 Initialize a non-reference deleter from an rvalue, as per LWG
4549 (__shared_ptr::_UniqCompatible): Add missing constraint.
4550 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
4551 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
4554 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4556 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
4557 -std=gnu++17 from dg-options directive.
4558 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
4560 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
4562 * testsuite/17_intro/headers/c++2017/operator_names.cc:
4564 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
4565 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
4566 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4568 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
4569 * testsuite/18_support/byte/81076.cc: Likewise.
4570 * testsuite/18_support/byte/global_neg.cc: Likewise.
4571 * testsuite/18_support/byte/ops.cc: Likewise.
4572 * testsuite/18_support/byte/requirements.cc: Likewise.
4573 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
4574 * testsuite/18_support/launder/1.cc: Likewise.
4575 * testsuite/18_support/launder/nodiscard.cc: Likewise.
4576 * testsuite/18_support/launder/requirements.cc: Likewise.
4577 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
4578 * testsuite/18_support/new_aligned.cc: Likewise.
4579 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
4581 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
4583 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
4584 * testsuite/20_util/addressof/requirements/constexpr.cc:
4586 * testsuite/20_util/as_const/1.cc: Likewise.
4587 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
4588 * testsuite/20_util/bind/83427.cc: Likewise.
4589 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
4590 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
4591 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4593 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
4595 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
4596 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
4598 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
4599 * testsuite/20_util/from_chars/requirements.cc: Likewise.
4600 * testsuite/20_util/function/91456.cc: Likewise.
4601 * testsuite/20_util/function/cons/deduction.cc: Likewise.
4602 * testsuite/20_util/function_objects/83607.cc: Likewise.
4603 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
4604 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
4605 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
4606 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
4607 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
4609 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
4611 * testsuite/20_util/has_unique_object_representations/value.cc:
4613 * testsuite/20_util/hash/nullptr.cc: Likewise.
4614 * testsuite/20_util/in_place/requirements.cc: Likewise.
4615 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
4616 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
4618 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
4620 * testsuite/20_util/is_aggregate/value.cc: Likewise.
4621 * testsuite/20_util/is_invocable/83395.cc: Likewise.
4622 * testsuite/20_util/is_invocable/91456.cc: Likewise.
4623 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
4625 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
4627 * testsuite/20_util/is_invocable/value.cc: Likewise.
4628 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
4629 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
4630 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
4631 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
4633 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
4634 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
4635 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
4637 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
4639 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
4640 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
4642 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
4644 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
4646 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
4648 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
4650 * testsuite/20_util/is_swappable/value.cc: Likewise.
4651 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
4653 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
4655 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
4656 * testsuite/20_util/logical_traits/83134.cc: Likewise.
4657 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
4659 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
4661 * testsuite/20_util/logical_traits/value.cc: Likewise.
4662 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
4663 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
4664 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
4666 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
4667 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
4668 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
4669 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
4670 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
4672 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
4674 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
4675 * testsuite/20_util/to_chars/3.cc: Likewise.
4676 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
4677 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
4678 * testsuite/20_util/to_chars/requirements.cc: Likewise.
4679 * testsuite/20_util/tuple/78939.cc: Likewise.
4680 * testsuite/20_util/tuple/apply/1.cc: Likewise.
4681 * testsuite/20_util/tuple/apply/2.cc: Likewise.
4682 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
4683 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
4684 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
4685 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
4686 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
4687 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
4688 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
4690 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
4691 * testsuite/20_util/void_t/1.cc: Likewise.
4692 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
4693 * testsuite/24_iterators/container_access.cc: Likewise.
4694 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
4696 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
4698 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4700 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
4702 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
4703 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
4705 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
4706 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
4708 * testsuite/26_numerics/lcm/1.cc: Likewise.
4709 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4710 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
4711 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
4713 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
4715 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
4717 * testsuite/27_io/types/4.cc: Likewise.
4718 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
4719 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
4720 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4722 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4724 * testsuite/20_util/function_objects/searchers.cc: Remove
4725 -std=gnu++17 from dg-options directive.
4726 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
4728 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4730 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
4732 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
4734 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
4736 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4738 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
4740 * testsuite/25_algorithms/clamp/1.cc: Likewise.
4741 * testsuite/25_algorithms/clamp/2.cc: Likewise.
4742 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
4743 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
4745 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
4747 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
4748 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
4750 * testsuite/25_algorithms/sample/1.cc: Likewise.
4751 * testsuite/25_algorithms/sample/2.cc: Likewise.
4752 * testsuite/25_algorithms/sample/3.cc: Likewise.
4753 * testsuite/25_algorithms/sample/81221.cc: Likewise.
4754 * testsuite/25_algorithms/search/searcher.cc: Likewise.
4755 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
4756 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
4757 * testsuite/26_numerics/reduce/1.cc: Likewise.
4758 * testsuite/26_numerics/reduce/2.cc: Likewise.
4759 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
4760 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
4761 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
4763 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4765 * testsuite/23_containers/array/cons/deduction.cc: Remove
4766 -std=gnu++17 from dg-options directive.
4767 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
4768 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4770 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
4772 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4774 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
4775 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
4777 * testsuite/23_containers/forward_list/cons/deduction.cc:
4779 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
4781 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
4782 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
4784 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
4785 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4786 * testsuite/23_containers/map/modifiers/insert/83226.cc:
4788 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4790 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
4791 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
4793 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4794 * testsuite/23_containers/multimap/modifiers/extract.cc:
4796 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
4797 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4798 * testsuite/23_containers/multiset/modifiers/extract.cc:
4800 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
4801 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
4802 * testsuite/23_containers/queue/deduction.cc: Likewise.
4803 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
4805 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4806 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4807 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
4808 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
4809 * testsuite/23_containers/stack/deduction.cc: Likewise.
4810 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
4812 * testsuite/23_containers/unordered_map/cons/deduction.cc:
4814 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4816 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
4818 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
4820 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
4822 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4824 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
4826 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
4828 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4830 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
4832 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
4834 * testsuite/23_containers/unordered_set/cons/deduction.cc:
4836 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4838 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
4840 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
4842 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
4843 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
4844 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
4847 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4849 * testsuite/21_strings/basic_string/79162.cc: Remove
4850 -std=gnu++17 from dg-options directive.
4851 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
4852 * testsuite/21_strings/basic_string/cons/char/79162.cc:
4854 * testsuite/21_strings/basic_string/cons/char/86138.cc:
4856 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
4857 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
4859 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
4861 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
4862 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
4864 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
4866 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
4867 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4869 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
4871 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
4872 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
4873 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
4874 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
4876 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
4878 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
4880 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
4882 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4884 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4886 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4888 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4890 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4892 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4894 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4896 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4898 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4900 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4902 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4904 * testsuite/21_strings/basic_string/operators/char/5.cc:
4906 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4908 * testsuite/21_strings/basic_string_view/capacity/1.cc:
4910 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4912 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4914 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4916 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4918 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4920 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4922 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4924 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4926 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4928 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4930 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4932 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4934 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4936 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4938 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4940 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4942 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4944 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4946 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4948 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
4950 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4952 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
4954 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4956 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
4958 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
4960 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4962 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
4963 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
4965 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
4967 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
4969 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
4971 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
4973 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
4975 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
4977 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
4979 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
4981 * testsuite/21_strings/basic_string_view/literals/types.cc:
4983 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
4985 * testsuite/21_strings/basic_string_view/literals/values.cc:
4987 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4989 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4991 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4993 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4995 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4997 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4999 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
5001 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
5003 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
5005 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
5007 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
5009 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
5011 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
5013 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
5015 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
5017 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
5019 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
5021 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
5023 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
5025 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
5027 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
5029 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
5031 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
5033 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
5035 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
5037 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
5039 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
5041 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
5043 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
5045 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
5047 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
5049 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
5051 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
5053 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
5055 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
5057 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
5059 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
5061 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
5063 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
5065 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
5067 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
5069 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
5071 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
5073 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
5075 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
5077 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
5079 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
5081 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
5083 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
5085 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
5087 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
5089 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
5091 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
5093 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
5095 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
5097 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
5098 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
5099 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
5101 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5103 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5105 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
5106 from dg-options directive.
5107 * testsuite/20_util/memory_resource/2.cc: Likewise.
5108 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
5109 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
5111 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
5113 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
5115 * testsuite/20_util/monotonic_buffer_resource/release.cc:
5117 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
5119 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
5120 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
5122 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
5123 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
5124 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
5126 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
5128 * testsuite/20_util/synchronized_pool_resource/cons.cc:
5130 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
5132 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
5134 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
5136 * testsuite/20_util/synchronized_pool_resource/options.cc:
5138 * testsuite/20_util/synchronized_pool_resource/release.cc:
5140 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
5142 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
5144 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5146 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
5148 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
5150 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
5152 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
5154 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
5156 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
5157 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
5159 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
5161 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
5163 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
5164 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
5165 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
5166 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
5167 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
5168 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
5170 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
5171 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
5173 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
5174 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
5175 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
5177 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
5179 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
5181 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
5183 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
5185 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
5187 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
5189 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
5191 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
5192 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
5194 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
5196 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5198 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
5200 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
5201 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
5202 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
5203 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
5204 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
5205 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
5206 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
5207 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
5209 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
5211 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
5212 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
5213 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
5215 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
5216 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
5218 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
5219 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
5220 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
5221 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
5223 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5225 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
5226 dg-options directive.
5227 * testsuite/20_util/any/assign/2.cc: Likewise.
5228 * testsuite/20_util/any/assign/emplace.cc: Likewise.
5229 * testsuite/20_util/any/assign/exception.cc: Likewise.
5230 * testsuite/20_util/any/assign/self.cc: Likewise.
5231 * testsuite/20_util/any/cons/1.cc: Likewise.
5232 * testsuite/20_util/any/cons/2.cc: Likewise.
5233 * testsuite/20_util/any/cons/90415.cc: Likewise.
5234 * testsuite/20_util/any/cons/92156.cc: Likewise.
5235 * testsuite/20_util/any/cons/aligned.cc: Likewise.
5236 * testsuite/20_util/any/cons/explicit.cc: Likewise.
5237 * testsuite/20_util/any/cons/in_place.cc: Likewise.
5238 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
5239 * testsuite/20_util/any/make_any.cc: Likewise.
5240 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
5241 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
5242 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
5243 * testsuite/20_util/any/misc/swap.cc: Likewise.
5244 * testsuite/20_util/any/modifiers/1.cc: Likewise.
5245 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
5246 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
5247 * testsuite/20_util/any/observers/type.cc: Likewise.
5248 * testsuite/20_util/any/requirements.cc: Likewise.
5249 * testsuite/20_util/any/typedefs.cc: Likewise.
5250 * testsuite/20_util/optional/77288.cc: Likewise.
5251 * testsuite/20_util/optional/84601.cc: Likewise.
5252 * testsuite/20_util/optional/assignment/1.cc: Likewise.
5253 * testsuite/20_util/optional/assignment/2.cc: Likewise.
5254 * testsuite/20_util/optional/assignment/3.cc: Likewise.
5255 * testsuite/20_util/optional/assignment/4.cc: Likewise.
5256 * testsuite/20_util/optional/assignment/5.cc: Likewise.
5257 * testsuite/20_util/optional/assignment/6.cc: Likewise.
5258 * testsuite/20_util/optional/assignment/7.cc: Likewise.
5259 * testsuite/20_util/optional/assignment/8.cc: Likewise.
5260 * testsuite/20_util/optional/assignment/9.cc: Likewise.
5261 * testsuite/20_util/optional/bad_access.cc: Likewise.
5262 * testsuite/20_util/optional/cons/77727.cc: Likewise.
5263 * testsuite/20_util/optional/cons/85642.cc: Likewise.
5264 * testsuite/20_util/optional/cons/copy.cc: Likewise.
5265 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
5266 * testsuite/20_util/optional/cons/default.cc: Likewise.
5267 * testsuite/20_util/optional/cons/move.cc: Likewise.
5268 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
5269 * testsuite/20_util/optional/cons/value.cc: Likewise.
5270 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
5271 * testsuite/20_util/optional/constexpr/cons/default.cc:
5273 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
5274 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
5275 * testsuite/20_util/optional/constexpr/make_optional.cc:
5277 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
5278 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
5279 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
5280 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
5281 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
5282 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
5283 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
5284 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
5285 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
5286 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
5287 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
5288 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
5289 * testsuite/20_util/optional/hash.cc: Likewise.
5290 * testsuite/20_util/optional/in_place.cc: Likewise.
5291 * testsuite/20_util/optional/make_optional.cc: Likewise.
5292 * testsuite/20_util/optional/nullopt.cc: Likewise.
5293 * testsuite/20_util/optional/observers/1.cc: Likewise.
5294 * testsuite/20_util/optional/observers/2.cc: Likewise.
5295 * testsuite/20_util/optional/observers/3.cc: Likewise.
5296 * testsuite/20_util/optional/observers/4.cc: Likewise.
5297 * testsuite/20_util/optional/observers/5.cc: Likewise.
5298 * testsuite/20_util/optional/observers/6.cc: Likewise.
5299 * testsuite/20_util/optional/relops/1.cc: Likewise.
5300 * testsuite/20_util/optional/relops/2.cc: Likewise.
5301 * testsuite/20_util/optional/relops/3.cc: Likewise.
5302 * testsuite/20_util/optional/relops/4.cc: Likewise.
5303 * testsuite/20_util/optional/relops/5.cc: Likewise.
5304 * testsuite/20_util/optional/relops/6.cc: Likewise.
5305 * testsuite/20_util/optional/relops/7.cc: Likewise.
5306 * testsuite/20_util/optional/requirements.cc: Likewise.
5307 * testsuite/20_util/optional/swap/1.cc: Likewise.
5308 * testsuite/20_util/optional/swap/2.cc: Likewise.
5309 * testsuite/20_util/optional/typedefs.cc: Likewise.
5310 * testsuite/20_util/variant/80165.cc: Likewise.
5311 * testsuite/20_util/variant/85183.cc: Likewise.
5312 * testsuite/20_util/variant/86874.cc: Likewise.
5313 * testsuite/20_util/variant/87431.cc: Likewise.
5314 * testsuite/20_util/variant/87619.cc: Likewise.
5315 * testsuite/20_util/variant/91807.cc: Likewise.
5316 * testsuite/20_util/variant/any.cc: Likewise.
5317 * testsuite/20_util/variant/compile.cc: Likewise.
5318 * testsuite/20_util/variant/deduction.cc: Likewise.
5319 * testsuite/20_util/variant/exception_safety.cc: Likewise.
5320 * testsuite/20_util/variant/hash.cc: Likewise.
5321 * testsuite/20_util/variant/index_type.cc: Likewise.
5322 * testsuite/20_util/variant/relops/89851.cc: Likewise.
5323 * testsuite/20_util/variant/relops/90008.cc: Likewise.
5324 * testsuite/20_util/variant/run.cc: Likewise.
5325 * testsuite/20_util/variant/visit.cc: Likewise.
5327 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5329 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
5330 -std=gnu++17 from dg-options directive.
5331 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
5332 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
5333 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
5334 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
5335 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
5336 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
5337 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
5338 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
5340 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
5341 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
5342 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
5343 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
5344 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
5345 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
5347 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
5348 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
5350 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
5352 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
5353 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
5354 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
5355 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
5356 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
5357 * testsuite/27_io/filesystem/operations/create_directories.cc:
5359 * testsuite/27_io/filesystem/operations/create_directory.cc:
5361 * testsuite/27_io/filesystem/operations/create_symlink.cc:
5363 * testsuite/27_io/filesystem/operations/current_path.cc:
5365 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
5366 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
5367 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
5368 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
5369 * testsuite/27_io/filesystem/operations/last_write_time.cc:
5371 * testsuite/27_io/filesystem/operations/permissions.cc:
5373 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
5374 * testsuite/27_io/filesystem/operations/read_symlink.cc:
5376 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
5377 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
5378 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
5379 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
5380 * testsuite/27_io/filesystem/operations/resize_file.cc:
5382 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
5383 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
5384 * testsuite/27_io/filesystem/operations/symlink_status.cc:
5386 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
5388 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
5390 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
5391 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
5392 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
5393 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
5394 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
5395 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5396 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
5397 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
5398 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
5399 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
5400 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
5401 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
5402 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
5403 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
5404 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
5405 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
5406 * testsuite/27_io/filesystem/path/construct/default.cc:
5408 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
5409 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
5410 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
5411 * testsuite/27_io/filesystem/path/construct/string_view.cc:
5413 * testsuite/27_io/filesystem/path/decompose/extension.cc:
5415 * testsuite/27_io/filesystem/path/decompose/filename.cc:
5417 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5419 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
5421 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
5423 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
5425 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
5427 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
5428 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
5430 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
5431 * testsuite/27_io/filesystem/path/generation/normal.cc:
5433 * testsuite/27_io/filesystem/path/generation/normal2.cc:
5435 * testsuite/27_io/filesystem/path/generation/proximate.cc:
5437 * testsuite/27_io/filesystem/path/generation/relative.cc:
5439 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
5440 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
5442 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
5443 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
5444 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5445 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
5446 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
5447 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
5448 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
5450 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
5452 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
5454 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
5456 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
5457 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
5458 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
5460 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
5461 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
5462 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
5463 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
5465 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
5466 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
5467 * testsuite/27_io/filesystem/path/query/has_extension.cc:
5469 * testsuite/27_io/filesystem/path/query/has_filename.cc:
5471 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
5473 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
5475 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
5477 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
5479 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
5481 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
5482 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
5484 * testsuite/27_io/filesystem/path/query/is_relative.cc:
5486 * testsuite/experimental/filesystem/path/construct/string_view.cc:
5489 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5491 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5492 Remove -std=gnu++17 from dg-options.
5493 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5495 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5497 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5499 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5500 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5502 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5504 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5506 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5508 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5510 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5512 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5514 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5516 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5518 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5520 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5522 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5524 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5526 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5528 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5530 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5532 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5534 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5536 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5538 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5540 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5542 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5544 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5546 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5548 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5550 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5552 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5554 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5556 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5558 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5560 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5562 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5564 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5566 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5568 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5570 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
5571 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5573 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5575 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5577 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5579 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5581 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
5582 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
5583 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
5584 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
5585 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
5586 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
5587 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
5588 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5590 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
5591 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
5592 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5594 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5597 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5599 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
5600 for additional errors in C++20.
5601 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5603 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
5604 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5606 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5608 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
5609 clash with std::any.
5611 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
5613 * include/std/istream (__rvalue_stream_extraction_t): Replace
5614 use of __rval_streamable.
5615 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
5616 (__rval_streamable): Remove.
5617 (_Require_derived_from_ios_base, __derived_from_ios_base): New
5618 helper for checking constraints.
5619 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
5620 reference to the wrong subclause of the standard.
5621 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5623 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5625 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5627 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
5629 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
5632 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5634 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
5635 Improve static_assert messages.
5636 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
5637 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
5639 2021-05-06 Patrick Palka <ppalka@redhat.com>
5641 * include/std/ranges (filter_view::_Iterator::base): Make the
5642 const& overload unconstrained and return a const reference as
5643 per LWG 3533. Make unconditionally noexcept.
5644 (transform_view::_Iterator::base): Likewise.
5645 (elements_view::_Iterator::base): Likewise.
5647 2021-05-06 Patrick Palka <ppalka@redhat.com>
5649 * include/bits/stl_iterator.h (move_iterator::base): Make the
5650 const& overload unconstrained and return a const reference as
5651 per LWG 3391. Make unconditionally noexcept.
5652 (counted_iterator::base): Likewise.
5653 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
5654 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
5655 has_member_base concept to decay-copy the result of base().
5657 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5659 * include/std/type_traits (remove_cvref_t): Define in terms of
5661 * testsuite/20_util/remove_cvref/value.cc: Check alias.
5663 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5666 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5668 * include/std/charconv (__from_chars_alnum): Pass unsigned
5669 char to std::isdigit.
5671 2021-05-05 Patrick Palka <ppalka@redhat.com>
5673 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
5674 Remove constraints on this partial specialization.
5675 * include/std/ranges (enable_borrowed_range<iota_view>):
5678 2021-05-05 Patrick Palka <ppalka@redhat.com>
5680 * include/std/ranges (transform_view::_Iterator::iter_swap):
5681 Remove as per LWG 3520.
5682 (join_view::_Iterator::iter_swap): Add indirectly_swappable
5683 constraint as per LWG 3517.
5685 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5687 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
5689 * testsuite/20_util/function_objects/invoke/version.cc: New test.
5691 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5693 * include/std/charconv (__from_chars_alnum): Pass unsigned
5694 char to std::isdigit.
5696 2021-05-05 Corentin Gay <gay@adacore.com>
5698 * acinclude.m4: Add VxWorks-specific case for the
5699 configuration of ctypes.
5700 * configure: Regenerate.
5701 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
5703 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
5704 * config/os/vxworks/ctype_configure_char.cc: Likewise.
5705 * config/os/vxworks/ctype_inline.h: Likewise.
5706 * testsuite/28_regex/traits/char/isctype.cc: Defines
5707 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
5708 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
5710 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5712 * include/std/future (promise::set_value): Check for existence
5713 of shared state before dereferncing it.
5714 (promise::set_exception, promise::set_value_at_thread_exit)
5715 (promise::set_exception_at_thread_exit): Likewise.
5716 (promise<R&>::set_value, promise<R&>::set_exception)
5717 (promise<R&>::set_value_at_thread_exit)
5718 (promise<R&>::set_exception_at_thread_exit): Likewise.
5719 (promise<void>::set_value, promise<void>::set_exception)
5720 (promise<void>::set_value_at_thread_exit)
5721 (promise<void>::set_exception_at_thread_exit): Likewise.
5722 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
5723 Remove unused variable.
5725 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5727 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
5728 Do not do arithmetic on null pointer.
5730 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5732 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
5733 (find_key_pointer(key_const_reference, false_type))
5734 (find_key_pointer(key_const_reference, true_type)): Do not
5735 dereference null pointer.
5737 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5739 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
5741 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
5742 non-zero value to null pointer.
5743 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
5744 Use past-the-end iterator for result.
5745 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
5746 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
5748 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5751 * include/std/variant (__get_t): New alias template yielding the
5752 return type of std::get<N> on a variant.
5753 (__visit_result_t): New alias template yielding the result of
5755 (__same_types): Move into namespace __detail::__variant.
5756 (__check_visitor_results): Likewise. Use __invoke_result_t and
5758 (__check_visitor_result): Remove.
5759 (visit): Use __visit_result_t for return type.
5760 * testsuite/20_util/variant/100384.cc: New test.
5762 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5764 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
5765 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
5766 * config.h.in: Regenerate.
5767 * configure: Regenerate.
5768 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
5769 * include/bits/random.h (_Select_uint_least_t<s, 1>):
5770 Use __SIZEOF_INT128__ to decide whether to use __int128.
5771 * include/std/charconv (__to_chars_unsigned_type): Likewise.
5773 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
5775 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
5776 * doc/html/manual/facets.html: Regenerate.
5778 2021-04-30 Patrick Palka <ppalka@redhat.com>
5780 * include/std/ranges (__detail::__non_propating_cache): Define
5782 (join_view): Remove constraints on the value and reference types
5783 of the wrapped iterator type as per P2328.
5784 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
5785 (join_view::_Iterator::operator++): Likewise.
5786 (join_view::_M_inner): Use __non_propating_cache as per P2328.
5787 Remove now-redundant use of __maybe_present_t.
5788 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
5791 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5793 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
5794 Only define for C++17 and later.
5795 * include/std/version (__cpp_lib_semaphore): Fix condition
5796 to match the one in <semaphore>.
5798 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5800 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
5801 * config.h.in: Regenerate.
5802 * configure: Regenerate.
5803 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
5804 * include/bits/postypes.h: Remove include of <stdint.h> and
5805 definition/undefinition of the __STDC_LIMIT_MACROS and
5806 __STDC_CONSTANT_MACROS macros.
5807 (streamoff): Use __INT64_TYPE__ if defined.
5809 2021-04-30 Patrick Palka <ppalka@redhat.com>
5811 * include/std/ranges (split_view::_InnerIter::operator++):
5812 Depend on _Base instead of _Vp directly, as per LWG 3532.
5814 2021-04-30 Patrick Palka <ppalka@redhat.com>
5816 * include/bits/ranges_util.h (subrange::subrange): Avoid
5817 list-initialization in delegating constructor.
5818 * include/std/ranges (single_view): Replace implicit guide
5819 with explicit deduction guide that decays its argument.
5820 (_Single::operator()): Avoid CTAD when constructing the
5822 (_Iota::operator()): Avoid list-initialization.
5823 (__detail::__can_filter_view, _Filter::operator()): Likewise.
5824 (__detail::__can_transform_view, _Transform::operator()): Likewise.
5825 (take_view::begin): Likewise.
5826 (__detail::__can_take_view, _Take::operator()): Likewise.
5827 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
5828 (__detail::__can_drop_view, _Drop::operator()): Likewise.
5829 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
5830 (split_view::split_view): Use views::single when initializing
5832 (__detail::__can_split_view, _Split::operator()): Avoid
5833 list-initialization.
5834 (_Counted::operator()): Likewise.
5835 * testsuite/std/ranges/p2367.cc: New test.
5837 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5840 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
5842 * include/bits/basic_string.tcc (basic_string::swap)
5843 (basic_string::assign): Likewise.
5844 * include/bits/deque.tcc (deque::operator=(const deque&)):
5846 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
5848 * include/bits/vector.tcc (vector::operator=(const vector&)):
5851 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5853 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
5855 * include/std/ostream (operator<<(Ostream&&, const x&)):
5857 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
5858 Adjust dg-error pattern.
5859 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
5861 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
5862 is_extractable trait to replace std::__is_extractable. Make it
5863 work with rvalue streams as well as lvalues, to replace f() and
5864 g() helper functions.
5865 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5867 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5868 Define is_insertable trait to replace std::__is_insertable. Make
5869 it work with rvalue streams as well as lvalues, to replace f()
5870 and g() helper functions.
5871 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5873 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
5874 errors from new constraints.
5875 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
5876 which are no longer expected to compile.
5877 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
5878 Verify LWG 1203 changes.
5880 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5883 * include/experimental/socket (__basic_socket_impl::set_option)
5884 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5885 Just set error code.
5886 * testsuite/experimental/net/socket/socket_base.cc: CHeck
5887 for <sys/socket.h> not <socket.h>.
5889 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5894 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5895 Use new effective-target keyword.
5896 * testsuite/experimental/net/internet/address/v4/cons.cc:
5898 * testsuite/experimental/net/internet/address/v4/creation.cc:
5900 * testsuite/experimental/net/internet/address/v4/members.cc:
5902 * testsuite/experimental/net/internet/address/v6/members.cc:
5904 * testsuite/experimental/net/internet/resolver/base.cc:
5906 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5908 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5910 * testsuite/experimental/net/internet/socket/opt.cc:
5912 * testsuite/experimental/net/internet/tcp.cc:
5914 * testsuite/experimental/net/internet/udp.cc:
5916 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5917 New proc to check net_ts_ip et.
5919 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5922 * testsuite/20_util/pair/requirements/structural.cc: New test.
5924 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5926 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5927 new definitions for constructors and assignment operators using
5928 concepts for constraints.
5929 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5931 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5932 expected error messages to also match C++20 errors.
5934 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5937 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5938 Combine and replace with ...
5939 (_PCC::_DeprConsPair): New SFINAE helper function.
5940 (pair): Merge preprocessor blocks so that all C++03 members
5941 are defined together at the end.
5942 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5943 Replace _T1 and _T2 parameters with __null_ptr_constant and
5945 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
5946 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
5947 * testsuite/20_util/pair/cons/99957.cc: New test.
5949 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5951 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
5952 * include/std/version (__cpp_lib_constexpr_string): Define.
5953 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5954 Check for __cpp_lib_constexpr_string.
5955 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
5957 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
5959 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5961 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
5962 dealing with errors. Use '@' to prevent shell command being
5964 * doc/Makefile.in: Regenerate.
5966 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5969 * include/bits/std_thread.h (thread::hardware_concurrency): Add
5970 missing noexcept to inline definition for non-gthreads targets.
5972 2021-04-28 Patrick Palka <ppalka@redhat.com>
5978 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
5979 the __value_comp lambda an explicit bool return type.
5980 (__is_permutation_fn::operator()): Give the __proj_scan local
5981 variable auto&& return type. Give the __comp_scan lambda an
5982 explicit bool return type.
5983 (__remove_fn::operator()): Give the __pred lambda an explicit
5985 (__partition_fn::operator()): Don't std::move __first twice
5986 when returning an empty subrange.
5987 (__min_fn::operator()): Don't std::move __comp.
5988 (__max_fn::operator()): Likewise.
5989 (__minmax_fn::operator()): Likewise.
5991 2021-04-27 Patrick Palka <ppalka@redhat.com>
5994 * include/std/ranges (join_view::_Iterator::operator++): Correct
5995 the return type of the lambda to avoid returning a copy of
5996 _M_parent->_M_inner.
5997 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
5999 2021-04-27 Jakub Jelinek <jakub@redhat.com>
6002 2021-04-22 Jakub Jelinek <jakub@redhat.com>
6005 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
6007 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
6010 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6012 * include/experimental/internet (address_v6::bytes_type): Adjust
6014 (basic_endpoint): Define _M_is_v6() to put all checks for
6015 AF_INET6 in one place.
6016 (basic_endpoint::resize): Simplify.
6017 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
6018 (operator!=(const tcp&, const tcp&)): Likewise.
6019 (operator==(const udp&, const udp&)): Likewise.
6020 (operator!=(const udp&, const udp&)): Likewise.
6021 * testsuite/experimental/net/internet/tcp.cc: New test.
6022 * testsuite/experimental/net/internet/udp.cc: New test.
6024 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6027 * include/experimental/internet (resolver_errc, resolver_category())
6028 (make_error_code, make_error_condition): Define unconditionally,
6029 only make enumerators and use of gai_strerror depend on the
6030 availability of <netdb.h>.
6031 (address_v4::to_string): Use correct constant for string length.
6032 (address_v4::to_string, address_v6::to_string): Define
6033 unconditionally, throw if unsupported.
6034 (make_address_v4, make_address_v6): Define unconditionally.
6035 Return an error if unsupported.
6036 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
6038 * testsuite/experimental/net/internet/socket/opt.cc: Check for
6039 <netinet/in.h> and <netinet/tcp.h> before using types from
6042 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6045 * include/experimental/internet (resolver_base::flags):
6046 Define overloaded operators as hidden friends.
6047 * include/experimental/socket (socket_base::message_flags):
6050 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6052 * include/experimental/internet (tcp::no_delay, v6_only)
6053 (unicast::hops, multicast::hops, multicast::enable_loopback):
6054 Change access of base class and static data members. Add
6055 using-declaration for __socket_crtp::operator=(_Tp).
6056 (multicast::__mcastopt): New type.
6057 (multicast::join_group, multicast::leave_group): Derive from
6058 __mcastopt for common implementation.
6059 * include/experimental/socket: Add comment.
6060 * testsuite/experimental/net/internet/socket/opt.cc: New test.
6061 * testsuite/experimental/net/socket/socket_base.cc: Check for
6062 protected constructor/destructor of socket_base. Check for
6063 explicit constructors of socket option classes.
6065 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6067 * include/experimental/bits/net.h (__socket_base): Add
6068 bool template parameter to allow BooleanSocketOption and
6069 IntegerSocketOption to have different __socket_base<int>
6071 (__socket_base<bool>): Adjust base class.
6072 (__socket_base<int>): Add partial specialization.
6073 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
6074 * include/experimental/socket (socket_base::broadcast)
6075 (socket_base::debug, socket_base::do_not_route)
6076 (socket_base::keep_alive, socket_base::linger)
6077 (socket_base::out_of_band_inline)
6078 (socket_base::receive_buffer_size)
6079 (socket_base::receive_low_watermark)
6080 (socket_base::reuse_address, socket_base::send_buffer_size)
6081 (socket_base::send_low_watermark): Add using-declaration for
6082 __socket_crtp::operator=(_Tp).
6083 * testsuite/experimental/net/socket/socket_base.cc: Check
6084 properties of socket option types.
6086 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6088 * include/experimental/internet (resolver_base::flags): Remove
6089 enumerators. Initialize constants directly with desired values.
6090 Make all operators constexpr and noexcept.
6091 * testsuite/experimental/net/internet/resolver/base.cc: Use
6092 __gnu_test::test_bitmask_values for bitmask type. Check
6093 construction and destruction is protected.
6095 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6097 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
6099 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6102 * include/experimental/internet (net::ip::make_error_code)
6103 (net::ip::make_error_condition, net::ip::make_network_v4)
6104 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
6106 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
6108 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
6109 (add_options_for_libatomic): Use atomic_link_flags.
6111 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
6114 * include/experimental/io_context (io_context): Define
6115 dummy_pollfd type so that most member functions still compile
6116 without <poll.h> and struct pollfd.
6118 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
6120 * include/experimental/io_context (io_context::async_wait): Add
6122 * include/experimental/socket (basic_socket::async_connect):
6123 Cast wait_type constant to int.
6124 (basic_datagram_socket::async_receive): Likewise.
6125 (basic_datagram_socket::async_receive_from): Likewise.
6126 (basic_datagram_socket::async_send): Likewise.
6127 (basic_datagram_socket::async_send_to): Likewise.
6128 (basic_stream_socket::async_receive): Likewise.
6129 (basic_stream_socket::async_send): Likewise. Use io_context
6130 parameter directly, instead of via an executor.
6131 (basic_socket_acceptor::async_accept): Likewise.
6133 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
6135 * include/experimental/socket (socket_base::shutdown_type):
6136 (socket_base::wait_type, socket_base::message_flags):
6137 Remove enumerators. Initialize constants directly with desired
6139 (socket_base::message_flags): Make all operators constexpr and
6141 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
6143 * testsuite/experimental/net/socket/socket_base.cc: New test.
6145 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
6147 * config/os/aix/atomicity.h: Delete.
6149 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6151 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
6152 Handle system_clock as well as steady_clock.
6153 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
6154 * testsuite/30_threads/semaphore/try_acquire_until.cc:
6157 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6159 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
6160 options for libatomic.
6162 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6164 * config/os/gnu-linux/os_defines.h: Fix type in comment.
6166 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6169 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
6170 is not an array type.
6171 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
6172 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
6174 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
6176 * include/bits/atomic_wait.h: Always notify waiters in the
6177 case of 'bare' address notification.
6179 2021-04-22 Jakub Jelinek <jakub@redhat.com>
6182 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
6184 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
6187 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
6190 * include/bits/semaphore_base.h: Remove #error.
6191 * include/std/semaphore: Do not define anything unless one of
6192 the implementations is available.
6194 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
6196 * include/bits/semaphore_base.h: Always reload __old in
6197 __atomic_semaphore::_S_do_try_acquire().
6198 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
6201 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
6202 Jonathan Wakely <jwakely@redhat.com>
6205 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
6206 * python/Makefile.in: Regenerate.
6208 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
6210 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
6211 member to __platform_wait.
6213 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
6215 * include/std/latch: Replace tab characters in license text.
6216 * include/std/semaphore: Likewise.
6218 2021-04-21 Jakub Jelinek <jakub@redhat.com>
6221 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
6222 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
6223 * configure: Regenerated.
6224 * config.h.in: Regenerated.
6226 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
6228 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
6229 test for targets not using futexes for semaphores.
6230 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6231 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
6232 Disable for all targets.
6234 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
6236 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
6237 * include/Makefile.in: Regenerate.
6238 * include/bits/this_thread_sleep.h: New file.
6239 * include/bits/atomic_base.h: Adjust all calls
6240 to __atomic_wait/__atomic_notify for new call signatures.
6241 * include/bits/atomic_timed_wait.h: Extensive rewrite.
6242 * include/bits/atomic_wait.h: Likewise.
6243 * include/bits/semaphore_base.h: Adjust all calls
6244 to __atomic_wait/__atomic_notify for new call signatures.
6245 * include/std/atomic: Likewise.
6246 * include/std/barrier: Likewise.
6247 * include/std/latch: Likewise.
6248 * include/std/semaphore: Likewise.
6249 * include/std/thread (this_thread::sleep_for)
6250 (this_thread::sleep_until): Move to new header.
6251 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
6253 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6254 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6255 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6256 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
6257 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
6258 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
6260 2021-04-20 Patrick Palka <ppalka@redhat.com>
6263 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
6265 (move_iterator): Derive from the above in C++20 in order to
6266 conditionally define iterator_category as per P2259.
6267 (move_iterator::__base_cat): No longer used, so remove.
6268 (move_iterator::iterator_category): Remove in C++20.
6269 (__detail::__common_iter_use_postfix_proxy): Define.
6270 (common_iterator::_Proxy): Rename to ...
6271 (common_iterator:__arrow_proxy): ... this.
6272 (common_iterator::__postfix_proxy): Define as per P2259.
6273 (common_iterator::operator->): Adjust.
6274 (common_iterator::operator++): Adjust as per P2259.
6275 (iterator_traits<common_iterator>::_S_iter_cat): Define.
6276 (iterator_traits<common_iterator>::iterator_category): Change as
6278 (__detail::__counted_iter_value_type): Define.
6279 (__detail::__counted_iter_concept): Define.
6280 (__detail::__counted_iter_cat): Define.
6281 (counted_iterator): Derive from the above three classes in order
6282 to conditionally define value_type, iterator_concept and
6283 iterator category respectively as per P2259.
6284 (counted_iterator::operator->): Define as per P2259.
6285 (incrementable_traits<counted_iterator>): Remove as per P2259.
6286 (iterator_traits<counted_iterator>): Adjust as per P2259.
6287 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
6288 (iota_view::_Iterator): Derive from the above in order to
6289 conditionally define iterator_category as per P2259.
6290 (iota_view::_S_iter_cat): Rename to ...
6291 (iota_view::_S_iter_concept): ... this.
6292 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
6293 (iota_view::iterator_category): Remove.
6294 (__detail::__filter_view_iter_cat): Define.
6295 (filter_view::_Iterator): Derive from the above in order to
6296 conditionally define iterator_category as per P2259.
6297 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
6298 (filter_view::_Iterator::iterator_category): Remove.
6299 (transform_view::_Base): Define.
6300 (transform_view::__iter_cat): Define.
6301 (transform_view::_Iterator): Derive from the above in order to
6302 conditionally define iterator_category as per P2259.
6303 (transform_view::_Iterator::_Base): Just alias
6304 transform_view::_Base.
6305 (transform_view::_Iterator::_S_iter_cat): Move to struct
6306 transform_view::__iter_cat.
6307 (transform_view::_Iterator::iterator_category): Remove.
6308 (transform_view::_Sentinel::_Base): Just alias
6309 transform_view::_Base.
6310 (join_view::_Base): Define.
6311 (join_view::_Outer_iter): Define.
6312 (join_view::_Inner_iter): Define.
6313 (join_view::_S_ref_is_glvalue): Define.
6314 (join_view::__iter_cat): Define.
6315 (join_view::_Iterator): Derive from it in order to conditionally
6316 define iterator_category as per P2259.
6317 (join_view::_Iterator::_Base): Just alias join_view::_Base.
6318 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
6319 join_view::_S_ref_is_glvalue.
6320 (join_view::_Iterator::_S_iter_cat): Move to struct
6321 transform_view::__iter_cat.
6322 (join_view::_Iterator::_Outer_iter): Just alias
6323 join_view::_Outer_iter.
6324 (join_view::_Iterator::_Inner_iter): Just alias
6325 join_view::_Inner_iter.
6326 (join_view::_Iterator::iterator_category): Remove.
6327 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
6328 (__detail::__split_view_outer_iter_cat): Define.
6329 (__detail::__split_view_inner_iter_cat): Define.
6330 (split_view::_Base): Define.
6331 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
6332 in order to conditionally define iterator_category as per P2259.
6333 (split_view::_Outer_iter::iterator_category): Remove.
6334 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
6335 in order to conditionally define iterator_category as per P2259.
6336 (split_view::_Inner_iter::_S_iter_cat): Move to
6337 __split_view_inner_iter_cat.
6338 (split_view::_Inner_iter::iterator_category): Remove.
6339 (elements_view::_Base): Define.
6340 (elements_view::__iter_cat): Define.
6341 (elements_view::_Iterator): Derive from the above in order to
6342 conditionall define iterator_category as per P2259.
6343 (elements_view::_Iterator::_Base): Just alias
6344 elements_view::_Base.
6345 (elements_view::_Iterator::_S_iter_concept)
6346 (elements_view::_Iterator::iterator_concept): Define as per
6348 (elements_view::_Iterator::iterator_category): Remove.
6349 (elements_view::_Sentinel::_Base): Just alias
6350 elements_view::_Base.
6351 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
6352 Adjust constraints on iterator_traits<counted_iterator>.
6353 * testsuite/std/ranges/p2259.cc: New test.
6355 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
6358 * include/std/charconv (__cpp_lib_to_chars): Define
6360 * include/std/version (__cpp_lib_to_chars): Likewise..
6361 * testsuite/20_util/from_chars/4.cc: Only check feature test
6362 macro, not _GLIBCXX_HAVE_USELOCALE.
6363 * testsuite/20_util/from_chars/5.cc: Likewise.
6364 * testsuite/20_util/from_chars/6.cc: Likewise.
6365 * testsuite/20_util/to_chars/long_double.cc: Likewise.
6367 2021-04-20 Jakub Jelinek <jakub@redhat.com>
6369 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
6370 versions with _IEEE128_ substring are found, set ieee_version_found
6371 to true. Ignore missing symbols with _IEEE128_ in version name if
6372 !ieee_version_found. Use i->first as version_name instead of
6373 i->second.version_name if the latter is empty.
6374 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6376 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
6378 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
6381 2021-04-17 Jakub Jelinek <jakub@redhat.com>
6383 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
6384 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
6386 2021-04-17 Jakub Jelinek <jakub@redhat.com>
6388 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6389 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6390 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
6391 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6392 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6393 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6395 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
6397 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
6398 add libatomic options for 32-bit sparc*-*-linux-gnu.
6400 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
6403 * libsupc++/Makefile.am: Add atomicity.cc here.
6404 * src/c++98/Makefile.am: Remove it from here.
6405 * libsupc++/Makefile.in: Regenerate.
6406 * src/c++98/Makefile.in: Regenerate.
6407 * testsuite/18_support/exception_ptr/96657.cc: New test.
6409 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
6412 * include/std/bit: Only include <ext/numeric_traits.h> for
6413 hosted build, use <limits> otherwise.
6415 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
6417 * doc/xml/manual/backwards_compatibility.xml: Remove porting
6418 notes for libg++ and libstdc++-v2, and bibliography.
6419 * doc/html/*: Regenerated.
6421 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6424 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
6425 Remove helper concept.
6426 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
6427 deduction guides, as per LWG 3404.
6428 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
6429 template argument deduction fails.
6431 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6433 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
6434 Adjust expected error for C++20 mode.
6435 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
6438 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6441 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
6442 standard headers and XFAIL for effective-target c++20.
6444 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
6447 * include/debug/helper_functions.h (__can_advance(_InputIterator,
6448 const std::pair<_Diff, _Distance_precision>&, int)): New.
6449 (__can_advance(const _Safe_iterator<>&,
6450 const std::pair<_Diff, _Distance_precision>&, int)): New.
6451 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
6453 (__glibcxx_check_can_increment_range): Adapt to use latter.
6454 (__glibcxx_check_can_decrement_range): Likewise.
6455 * include/debug/safe_iterator.h
6456 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6458 (__can_advance(const _Safe_iterator<>&,
6459 const std::pair<_Diff, _Distance_precision>&, int)): New.
6460 * include/debug/safe_iterator.tcc
6461 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6463 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
6464 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
6466 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
6467 (__copy_move_backward_a): Likewise.
6468 (__equal_aux): Likewise.
6469 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
6470 const std::pair<_Diff, _Distance_precision>&, int)): New.
6471 (__can_advance(const std::move_iterator<>&,
6472 const std::pair<_Diff, _Distance_precision>&, int)): New.
6473 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
6475 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6478 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
6479 to be a valid constexpr function in C++11.
6480 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
6482 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6484 * include/bits/fs_fwd.h: Fix doxygen group command.
6485 * include/bits/streambuf_iterator.h: Likewise.
6486 * include/bits/uses_allocator_args.h: Likewise.
6487 * include/std/memory: Likewise.
6488 * include/tr1/complex: Likewise.
6490 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6492 * include/bits/basic_string.h: Tweak doxygen comment.
6494 2021-04-08 Patrick Palka <ppalka@redhat.com>
6496 * include/std/ranges (__detail::find): Define.
6497 (split_view::_OuterIter::operator++): Apply proposed resolution
6499 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
6501 2021-04-08 Patrick Palka <ppalka@redhat.com>
6503 * include/std/ranges (__detail::find_if): Simplify.
6504 (__detail::find_if_not): Likewise.
6505 (__detail::min): Remove.
6506 (__detail::mismatch): Simplify.
6507 (take_view::size): Use std::min instead of __detail::min.
6509 2021-04-08 Patrick Palka <ppalka@redhat.com>
6511 * include/std/ranges (__detail::__returnable_element): New
6513 (elements_view): Use this concept in its constraints. Add
6514 missing private access specifier.
6515 (elements_view::_S_get_element): Define as per LWG 3502.
6516 (elements_view::operator*, elements_view::operator[]): Use
6518 (elements_view::operator++): Remove unnecessary constraint
6520 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
6522 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6524 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
6525 out-of-memory error in log file.
6526 * doc/Makefile.in: Regenerate.
6528 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6530 * configure: Regenerate.
6532 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6534 * include/bits/random.h: Fix doxygen group commands.
6535 * include/bits/regex_constants.h: Likewise.
6536 * include/tr1/random.h: Likewise.
6538 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6540 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
6541 New function to determine noexcept-specifier for move
6543 (_Hashtable): Use _S_nothrow_move() on move constructors.
6544 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
6545 Correct static assertion message.
6546 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
6548 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
6550 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
6553 2021-04-08 Patrick Palka <ppalka@redhat.com>
6556 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
6557 on targets without a large long double. XFAIL the execution on
6558 targets with a non-conforming printf.
6560 2021-04-08 Patrick Palka <ppalka@redhat.com>
6563 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
6564 (__adaptor::__adaptor_invocable): New concept.
6565 (__adaptor::__adaptor_partial_app_viable): New concept.
6566 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
6567 non-template base class.
6568 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
6570 (__adaptor::_Partial): New class template that represents
6571 partial application of a range adaptor non-closure.
6572 (__adaptor::__pipe_invocable): New concept.
6573 (__adaptor::_Pipe): New class template.
6574 (__detail::__can_ref_view): New concept.
6575 (__detail::__can_subrange): New concept.
6576 (all): Replace the lambda here with ...
6577 (_All): ... this functor. Add appropriate constraints.
6578 (__detail::__can_filter_view): New concept.
6579 (filter, _Filter): As in all/_All.
6580 (__detail::__can_transform): New concept.
6581 (transform, _Transform): As in all/_All.
6582 (__detail::__can_take_view): New concept.
6583 (take, _Take): As in all/_All.
6584 (__detail::__can_take_while_view): New concept.
6585 (take_while, _TakeWhile): As in all/_All.
6586 (__detail::__can_drop_view): New concept.
6587 (drop, _Drop): As in all/_All.
6588 (__detail::__can_drop_while_view): New concept.
6589 (drop_while, _DropWhile): As in all/_All.
6590 (__detail::__can_join_view): New concept.
6591 (join, _Join): As in all/_All.
6592 (__detail::__can_split_view): New concept.
6593 (split, _Split): As in all/_All. Rename template parameter
6595 (__detail::__already_common): New concept.
6596 (__detail::__can_common_view): New concept.
6597 (common, _Common): As in all/_All.
6598 (__detail::__can_reverse_view): New concept.
6599 (reverse, _Reverse): As in all/_All.
6600 (__detail::__can_elements_view): New concept.
6601 (elements, _Elements): As in all/_All.
6602 (keys, values): Adjust.
6603 * testsuite/std/ranges/adaptors/99433.cc: New test.
6604 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
6605 adding empty range adaptor closure objects to a pipeline doesn't
6606 increase the size of the pipeline.
6608 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
6609 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
6610 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
6611 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
6612 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
6613 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
6614 * testsuite/std/ranges/adaptors/p2281.cc: New test.
6615 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
6616 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
6619 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
6620 expected error message.
6621 (test02): Likewise. Extend test.
6622 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
6623 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
6624 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
6627 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6629 * include/std/string_view: Adjust Doxygen @file comment.
6631 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6633 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
6634 specialization to not match incomplete enum types. Use a
6635 requires-expression instead of instantiating is_convertible.
6636 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
6637 * testsuite/20_util/is_scoped_enum/value.cc: Check with
6638 incomplete types and opaque-enum-declarations.
6640 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
6643 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
6644 non-const member on _M_pathname, to avoid copy-on-write.
6645 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6646 Check construction from strings that might be shared.
6648 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6650 * include/bits/move.h (forward, move, move_if_noexcept)
6651 (addressof): Add _GLIBCXX_NODISCARD.
6652 * include/bits/ranges_cmp.h (identity::operator()): Add
6653 nodiscard attribute.
6654 * include/c_global/cstddef (to_integer): Likewise.
6655 * include/std/bit (bit_cast): Likewise.
6656 * include/std/utility (as_const, to_underlying): Likewise.
6658 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6660 * include/bits/move.h (forward): Change static_assert message
6661 to be unambiguous about what must be true.
6662 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
6663 * testsuite/20_util/forward/f_neg.cc: Likewise.
6665 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6667 * include/bits/alloc_traits.h: Use markdown for code font.
6668 * include/bits/basic_string.h: Fix @param names.
6669 * include/bits/max_size_type.h: Remove period after @file.
6670 * include/bits/regex.h: Fix duplicate @retval names, and rename.
6671 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
6672 group open to match existing group close.
6673 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
6676 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6678 * include/bits/atomic_base.h: Fix doxygen group close.
6679 * include/bits/basic_ios.h: Likewise.
6680 * include/bits/forward_list.h: Likewise.
6681 * include/bits/fs_dir.h: Likewise.
6682 * include/bits/fs_ops.h: Likewise.
6683 * include/bits/fs_path.h: Likewise.
6684 * include/bits/functional_hash.h: Likewise.
6685 * include/bits/gslice.h: Likewise.
6686 * include/bits/gslice_array.h: Likewise.
6687 * include/bits/hashtable_policy.h: Likewise.
6688 * include/bits/indirect_array.h: Likewise.
6689 * include/bits/locale_classes.h: Likewise.
6690 * include/bits/locale_facets.h: Likewise.
6691 * include/bits/locale_facets_nonio.h: Likewise.
6692 * include/bits/mask_array.h: Likewise.
6693 * include/bits/refwrap.h: Likewise.
6694 * include/bits/regex.h: Likewise.
6695 * include/bits/regex_automaton.h: Likewise.
6696 * include/bits/regex_compiler.h: Likewise.
6697 * include/bits/regex_constants.h: Likewise.
6698 * include/bits/regex_error.h: Likewise.
6699 * include/bits/regex_executor.h: Likewise.
6700 * include/bits/regex_scanner.h: Likewise.
6701 * include/bits/shared_ptr.h: Likewise.
6702 * include/bits/shared_ptr_atomic.h: Likewise.
6703 * include/bits/shared_ptr_base.h: Likewise.
6704 * include/bits/slice_array.h: Likewise.
6705 * include/bits/specfun.h: Likewise.
6706 * include/bits/std_function.h: Likewise.
6707 * include/bits/std_mutex.h: Likewise.
6708 * include/bits/stl_deque.h: Likewise.
6709 * include/bits/stl_iterator.h: Likewise.
6710 * include/bits/stl_iterator_base_types.h: Likewise.
6711 * include/bits/stl_map.h: Likewise.
6712 * include/bits/stl_multimap.h: Likewise.
6713 * include/bits/stl_multiset.h: Likewise.
6714 * include/bits/stl_numeric.h: Likewise.
6715 * include/bits/stl_pair.h: Likewise.
6716 * include/bits/stl_set.h: Likewise.
6717 * include/bits/stl_uninitialized.h: Likewise.
6718 * include/bits/stream_iterator.h: Likewise.
6719 * include/bits/streambuf_iterator.h: Likewise.
6720 * include/bits/unique_ptr.h: Likewise.
6721 * include/bits/unordered_map.h: Likewise.
6722 * include/bits/unordered_set.h: Likewise.
6723 * include/decimal/decimal: Likewise.
6724 * include/experimental/any: Likewise.
6725 * include/experimental/array: Likewise.
6726 * include/experimental/bits/fs_dir.h: Likewise.
6727 * include/experimental/bits/fs_fwd.h: Likewise.
6728 * include/experimental/bits/fs_ops.h: Likewise.
6729 * include/experimental/bits/fs_path.h: Likewise.
6730 * include/experimental/buffer: Likewise.
6731 * include/experimental/internet: Likewise.
6732 * include/experimental/optional: Likewise.
6733 * include/experimental/propagate_const: Likewise.
6734 * include/experimental/socket: Likewise.
6735 * include/ext/pb_ds/assoc_container.hpp: Likewise.
6736 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
6738 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
6739 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
6740 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
6741 * include/ext/pb_ds/exception.hpp: Likewise.
6742 * include/ext/pb_ds/priority_queue.hpp: Likewise.
6743 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
6744 * include/ext/random: Likewise.
6745 * include/std/any: Likewise.
6746 * include/std/atomic: Likewise.
6747 * include/std/bitset: Likewise.
6748 * include/std/chrono: Likewise.
6749 * include/std/complex: Likewise.
6750 * include/std/condition_variable: Likewise.
6751 * include/std/fstream: Likewise.
6752 * include/std/future: Likewise.
6753 * include/std/iostream: Likewise.
6754 * include/std/istream: Likewise.
6755 * include/std/mutex: Likewise.
6756 * include/std/numeric: Likewise.
6757 * include/std/ostream: Likewise.
6758 * include/std/ratio: Likewise.
6759 * include/std/shared_mutex: Likewise.
6760 * include/std/stdexcept: Likewise.
6761 * include/std/streambuf: Likewise.
6762 * include/std/system_error: Likewise.
6763 * include/std/thread: Likewise.
6764 * include/std/valarray: Likewise.
6765 * include/std/variant: Likewise.
6766 * include/tr1/cmath: Likewise.
6767 * include/tr1/regex: Likewise.
6768 * include/tr2/dynamic_bitset: Likewise.
6769 * libsupc++/atomic_lockfree_defines.h: Likewise.
6770 * libsupc++/exception: Likewise.
6771 * libsupc++/exception.h: Likewise.
6772 * libsupc++/exception_ptr.h: Likewise.
6773 * libsupc++/nested_exception.h: Likewise.
6775 2021-03-31 Alexandre Oliva <oliva@adacore.com>
6777 * testsuite/30_threads/future/members/poll.cc: Use faster
6778 after-ready call in the calibration loop.
6780 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
6782 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
6783 * doc/html/manual/status.html: Regenerate.
6785 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
6787 * include/debug/forward_list
6788 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
6789 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
6790 call to safe container allocator aware move constructor.
6791 * include/debug/vector (vector(vector&&, const allocator_type&)):
6792 Fix noexcept qualification.
6793 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
6794 Add allocator-extended move constructor noexceot qualification check.
6795 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
6797 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
6799 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
6801 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
6802 New helper functions and callback.
6803 (random_device::_M_init): Add 'prng' and 'all' enumerators.
6804 Replace switch with fallthrough with a series of 'if' statements.
6805 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
6807 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
6809 (random_device::_M_getval): Check for callback unconditionally
6810 and always pass _M_file pointer.
6811 * testsuite/26_numerics/random/random_device/85494.cc: Remove
6812 effective-target check. Use new random_device_available helper.
6813 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
6814 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
6815 Remove effective-target check.
6816 * testsuite/26_numerics/random/random_device/cons/default.cc:
6818 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
6819 new random_device_available helper. Test "prng" token.
6820 * testsuite/util/testsuite_random.h (random_device_available):
6821 New helper function.
6823 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
6825 * include/debug/string
6826 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
6827 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
6828 (basic_string<>::erase): Adapt to take __const_iterator.
6829 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
6830 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
6831 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
6832 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
6833 (__gnu_debug::u16string, __gnu_debug::u32string): New.
6834 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
6835 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
6836 * testsuite/util/exception/safety.h
6837 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
6838 (insert_base<__gnu_debug::basic_string<>>): Likewise.
6839 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
6840 New partial specialization.
6841 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
6842 * testsuite/21_strings/basic_string/requirements/citerators.cc:
6843 Add test on __gnu_debug::string.
6844 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
6845 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
6846 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
6848 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
6850 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
6852 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
6854 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
6856 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
6858 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
6860 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
6862 2021-03-25 Jakub Jelinek <jakub@redhat.com>
6865 * testsuite/18_support/source_location/consteval.cc (main): Adjust
6866 expected column numbers.
6867 * testsuite/18_support/source_location/1.cc (main): Likewise.
6869 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6871 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
6873 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6875 * testsuite/util/exception/safety.h (setup_base::generate):
6876 Support seeding random engine.
6877 (erase_point, erase_range): Adjust range of random numbers to
6878 ensure dereferenceable iterators are used where required.
6879 (generation_prohibited::run): Do not try to erase from empty
6881 * testsuite/util/testsuite_containergen.h (test_containers):
6882 Support seeding random engine.
6884 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6886 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6887 line with a check that uses the const being/end overloads.
6889 2021-03-23 Moritz Sichert <sichert@in.tum.de>
6891 * include/std/ranges (reverse_view::begin, reverse_view::end):
6892 Qualify make_reverse_iterator calls to avoid ADL.
6893 * testsuite/std/ranges/adaptors/reverse.cc: Test that
6894 views::reverse works when make_reverse_iterator is defined
6895 in an associated namespace.
6897 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6899 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6900 Do not define when compiling with Clang.
6902 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6904 * include/std/string_view (basic_string_view(Range&&)): Define new
6905 constructor and deduction guide.
6906 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6907 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6909 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6911 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6912 Add missing 'noexcept' as per LWG 2280.
6913 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6914 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6915 * testsuite/24_iterators/range_access/range_access.cc: Check for
6916 expected noexcept specifiers. Check result types of generic
6917 std::begin and std::end overloads.
6918 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6919 Check for expected noexcept specifiers.
6920 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6923 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
6925 * include/std/type_traits (is_scoped_enum): Define.
6926 * include/std/version (__cpp_lib_is_scoped_enum): Define.
6927 * testsuite/20_util/is_scoped_enum/value.cc: New test.
6928 * testsuite/20_util/is_scoped_enum/version.cc: New test.
6930 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6933 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6934 std::once_flag symbols.
6935 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6936 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6937 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6939 * config/abi/pre/gnu.ver: Likewise.
6940 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6941 (struct __once_flag_compat): Remove.
6942 (_ZNSt9once_flag11_M_activateEv): Remove.
6943 (_ZNSt9once_flag9_M_finishEb): Remove.
6945 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6948 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
6949 Revert to pthread_once_t implementation.
6950 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
6951 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6952 (struct __once_flag_compat): New type matching the reverted
6953 implementation of once_flag using futexes.
6954 (once_flag::_M_activate): Remove, replace with ...
6955 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
6956 (once_flag::_M_finish): Remove, replace with ...
6957 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
6958 * testsuite/30_threads/call_once/66146.cc: Removed.
6960 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6962 * testsuite/17_intro/names.cc: Exclude j from the list
6963 of test symbols for Darwin.
6965 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6967 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
6968 to_chars and from_chars for long double.
6970 2021-03-15 Patrick Palka <ppalka@redhat.com>
6972 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
6974 (__max_size_type::operator++): Define.
6975 (__max_size_type::operator--): Likewise.
6976 (__max_size_type::operator<=>): Conditionally define (in place
6977 of the other comparison operators).
6978 (__max_diff_type::operator _Tp): Fix formatting.
6979 (__max_diff_type::operator++): Define.
6980 (__max_diff_type::operator--): Likewise.
6981 (__max_diff_type::operator<=>): Conditionally define (in place
6982 of the other comparison operators).
6983 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
6984 these operator overloads.
6986 2021-03-15 Caroline Tice <cmtice@google.com>
6989 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
6990 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
6991 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
6993 * src/Makefile.in: Regenerate.
6995 2021-03-11 Patrick Palka <ppalka@redhat.com>
6997 * src/c++17/floating_to_chars.cc: Simplify the file as if
6998 __SIZEOF_INT128__ is always defined.
6999 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
7000 a base-10 to_chars overload for the uint128_t class type.
7001 * src/c++17/uint128_t.h: New file.
7002 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
7003 execution FAIL on targets that have a large long double type
7006 2021-03-11 Patrick Palka <ppalka@redhat.com>
7008 * src/c++17/ryu/LOCAL_PATCHES: Update.
7009 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
7010 * src/c++17/ryu/generic_128.h: Likewise.
7011 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
7012 Use uint128_t instead of __uint128_t.
7013 (generic_binary_to_decimal): Likewise.
7015 2021-03-11 Patrick Palka <ppalka@redhat.com>
7017 * src/c++17/ryu/LOCAL_PATCHES: New file.
7019 2021-03-11 Patrick Palka <ppalka@redhat.com>
7021 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
7022 defined alias of unsigned __int128.
7023 (floating_type_traits_binary128::mantissa_t): Use uint128_t
7024 instead of unsigned __int128.
7025 (floating_type_traits<long double>::mantissa_t)
7026 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
7027 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
7028 and uint32_t explicit. Simplify the extraction of mantissa,
7029 exponent and sign bit.
7031 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7033 * include/std/barrier (barrier::arrival_token): New move-only
7034 class that encapsulates the underlying token value.
7036 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7038 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
7039 instead of unqualified() method.
7041 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7044 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
7045 Use acq_rel memory ordering.
7047 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7050 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
7051 helper function to check for permission denied errors.
7052 * src/filesystem/dir.cc (recursive_directory_iterator):
7054 * src/filesystem/dir-common.h (is_permission_denied_error): New
7057 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7060 * include/bits/random.h (normal_distribution): Use
7061 default-initializer for _M_saved and _M_saved_available.
7063 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
7065 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
7066 link with libatomic.
7067 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
7068 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
7069 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
7070 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7071 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7072 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7073 * testsuite/30_threads/barrier/completion.cc: Likewise.
7074 * testsuite/30_threads/latch/3.cc: Likewise.
7075 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
7076 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
7077 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
7079 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
7082 * include/bits/align.h: Include debug/assertions.h.
7083 * include/bits/codecvt.h: Include bits/c++config.h.
7084 * include/bits/enable_special_members.h: Likewise.
7085 * include/bits/erase_if.h: Likewise.
7086 * include/bits/functional_hash.h: Include <type_traits>.
7087 * include/bits/invoke.h: Include bits/move.h.
7088 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
7089 * include/bits/parse_numbers.h: Include <type_traits>.
7090 * include/bits/predefined_ops.h: Include bits/c++config.h.
7091 * include/bits/range_access.h: Include bits/stl_iterator.h.
7092 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
7093 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
7094 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
7095 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
7096 * include/bits/unique_lock.h: Include bits/std_mutex.h.
7097 * include/debug/assertions.h: Include bits/c++config.h.
7099 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
7101 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
7102 (ranges::equal_to, ranges::not_equal_to): Do not constrain
7103 with __eq_builtin_ptr_cmp.
7104 (ranges::less, ranges::greater, ranges::less_equal)
7105 (ranges::greater_equal): Do not constrain with
7106 __less_builtin_ptr_cmp.
7107 * libsupc++/compare (compare_three_way): Do not constrain with
7108 __3way_builtin_ptr_cmp.
7109 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
7110 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
7111 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
7113 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
7115 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
7116 C++20 calendar types.
7118 2021-03-06 Jakub Jelinek <jakub@redhat.com>
7121 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
7122 two _Nd which the compiler can pattern match the rotates.
7124 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
7127 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
7128 Make storage larger than required. Verify no write to the last
7130 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
7133 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7135 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
7136 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
7138 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
7139 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
7142 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7144 * include/experimental/bits/simd.h: Replace reserved _X, _B by
7146 * include/experimental/bits/simd_builtin.h: Likewise.
7147 * include/experimental/bits/simd_x86.h: Likewise.
7149 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
7152 * include/std/chrono (year_month_day::_M_days_since_epoch()):
7153 Convert chrono::month and chrono::day to unsigned before
7154 converting to uint32_t.
7156 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7158 * include/std/chrono (year_month_day::_S_from_days): Perform
7159 all calculations with type uint32_t.
7161 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7163 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
7164 * doc/html/manual/abi.html: Regenerate.
7166 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7169 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
7170 FILE instead of FILE.
7172 2021-02-25 Andreas Schwab <schwab@suse.de>
7174 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
7175 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
7176 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
7177 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
7179 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7182 * include/std/chrono (year_month_day::_S_from_days): Cast long
7185 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
7187 * include/std/utility (to_underlying): Define.
7188 * include/std/version (__cpp_lib_to_underlying): Define.
7189 * testsuite/20_util/to_underlying/1.cc: New test.
7190 * testsuite/20_util/to_underlying/version.cc: New test.
7192 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
7195 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
7196 before value to be printed.
7198 2021-02-24 Patrick Palka <ppalka@redhat.com>
7200 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
7201 Relax the condition that guards the printf code path to accept
7202 F128_type as well as long double.
7204 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
7206 * include/std/chrono (year_month_day_last:day): New
7209 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
7211 * include/std/chrono (year::is_leap): New implementation.
7212 * testsuite/std/time/year/2.cc: New test.
7214 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
7216 * include/std/chrono (year_month_day::_M_days_since_epoch):
7218 * testsuite/std/time/year_month_day/4.cc: New test.
7220 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
7222 * include/std/chrono (year_month_day::_S_from_days): New
7224 * testsuite/std/time/year_month_day/3.cc: New test.
7226 2021-02-24 Patrick Palka <ppalka@redhat.com>
7229 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
7230 (test01): Simplify verifying the nearby values by using a
7231 2-iteration loop and a dedicated output buffer to check that the
7232 nearby values are different. Factor out the printf-based
7233 verification into a local function, and check that the leading
7234 hex digits agree before comparing to the output of printf. Also
7235 verify the output by round-tripping it through from_chars.
7237 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
7240 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
7241 symbols for long double arguments mangled as 'g'.
7242 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
7243 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
7244 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
7245 Use -mabi=ibmlongdouble for floating_to_chars.cc.
7246 * src/c++17/Makefile.in: Regenerate.
7247 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
7248 New type defining type traits of IEEE binary128 format.
7249 (floating_type_traits<__float128>): Define specialization.
7250 (floating_type_traits<long double>): Define in terms of
7251 floating_type_traits_binary128 when appropriate.
7252 (floating_to_shortest_scientific): Handle __float128.
7253 (sprintf_ld): New function template for printing a long double
7254 or __ieee128 value using sprintf.
7255 (__floating_to_chars_shortest, __floating_to_chars_precision):
7257 (to_chars): Define overloads for __float128.
7259 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
7261 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
7263 2021-02-23 Martin Sebor <msebor@redhat.com>
7266 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
7267 first argument is null.
7269 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7272 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
7275 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7278 * include/bits/char_traits.h (char_traits<char>::compare): For
7279 constexpr evaluation don't call
7280 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
7283 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7286 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
7288 2021-02-23 Patrick Palka <ppalka@redhat.com>
7291 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
7292 the high- and low-order parts from an IBM long double value
7293 in an endian-agnostic way.
7295 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
7297 * include/bits/atomic_wait.h (__thread_relax()): Call
7298 __thread_yield() not __gthread_yield().
7300 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
7302 * include/bits/atomic_wait.h (__thread_yield()): Check
7303 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
7304 (__thread_relax()): Use __thread_yield() instead of repeating
7305 the preprocessor checks for __gthread_yield.
7307 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
7309 * include/std/mutex (once_flag::_M_activate()): Add explicit
7310 return statement for passive case.
7311 (once_flag::_M_finish(bool)): Use reserved name for parameter.
7313 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
7316 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
7318 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7321 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
7323 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7325 * doc/xml/manual/status_cxx2014.xml: Document implementation
7326 specific properties of std::experimental::filesystem::rename.
7327 * doc/xml/manual/status_cxx2017.xml: Document implementation
7328 specific properties of std::filesystem::rename.
7329 * doc/html/*: Regenerate.
7330 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
7331 for directories on Windows.
7332 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
7333 MoveFileExW on Windows.
7334 * testsuite/27_io/filesystem/operations/rename.cc: New test.
7335 * testsuite/experimental/filesystem/operations/rename.cc: New test.
7337 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7339 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
7340 random number to the path.
7342 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7344 * include/experimental/internet (address_v6::to_string): Include
7346 * testsuite/experimental/net/internet/address/v6/members.cc:
7347 Test to_string() results.
7349 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7351 * include/experimental/internet (address_v6::any): Avoid using
7352 memcpy in constexpr function.
7353 (address_v6::loopback): Likewise.
7354 (make_address_v6): Fix missing return statements on error paths.
7355 * include/experimental/io_context: Avoid -Wdangling-else
7357 * testsuite/experimental/net/internet/address/v4/members.cc:
7358 Remove unused variables.
7359 * testsuite/experimental/net/internet/address/v6/members.cc:
7362 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7364 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
7365 Add unused attribute to parameter.
7366 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
7369 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7371 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
7372 if -fno-rtti is used.
7373 * testsuite/30_threads/async/forced_unwind.cc: Expect test
7374 to abort if -fno-rtti is used.
7376 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7378 * testsuite/util/testsuite_allocator.h (memory_resource):
7379 Remove requirement for RTTI and exceptions to be enabled.
7381 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7383 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
7384 static_cast when RTTI is disabled.
7385 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
7387 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
7389 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
7391 * testsuite/27_io/basic_stringstream/str/char/2.cc:
7393 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
7396 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7398 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
7399 as unused and only use dynamic_cast when RTTI is enabled.
7401 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7404 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
7405 Change int parameter to error_code, to match std::ios_failure.
7406 (__throw_ios_failure(const char*, int)): Construct error_code
7409 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
7411 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
7413 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
7414 macro instead of _GLIBCXX_EH_PTR_COMPAT.
7415 (operator==): Likewise.
7417 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
7420 * doc/xml/manual/status_cxx2011.xml: Document when support
7422 * doc/xml/manual/status_cxx2014.xml: Likewise.
7423 * doc/xml/manual/status_cxx2017.xml: Likewise.
7424 * doc/html/manual/status.html: Regenerate.
7426 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7429 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
7431 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7433 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
7434 (fs::remove): Use std::system_category() for error codes from
7436 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
7439 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7441 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
7442 in __MINGW32__ macro name.
7443 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
7444 * testsuite/27_io/filesystem/path/generation/proximate.cc:
7446 * testsuite/27_io/filesystem/path/generation/relative.cc:
7448 * testsuite/util/testsuite_fs.h: Likewise.
7450 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7452 * include/bits/stl_tree.h
7453 (__has_is_transparent, __has_is_transparent_t): Move...
7454 * include/bits/stl_function.h: ...here.
7455 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
7456 (_Hashtable_base<>::_M_equals_tr): New.
7457 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
7458 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
7459 heterogeneous lookup.
7460 (_Hashtable<>::_M_find_before_node_tr): New.
7461 (_Hashtable<>::_M_find_node_tr): New.
7462 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
7463 unordered_map::contains<>, unordered_map::equal_range<>): New member function
7464 templates to perform heterogeneous lookup.
7465 (unordered_multimap::find<>, unordered_multimap::count<>,
7466 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
7467 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
7468 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
7469 (unordered_multiset::find<>, unordered_multiset::count<>,
7470 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
7471 * include/debug/unordered_map
7472 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
7473 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
7474 * include/debug/unordered_set
7475 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
7476 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
7477 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
7478 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
7479 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
7480 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
7482 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7484 * include/bits/stl_deque.h
7485 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
7486 a null pointer test.
7488 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7490 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
7491 test directory after making it writable again.
7492 * testsuite/experimental/filesystem/operations/remove_all.cc:
7495 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7498 * include/std/coroutine (coroutine_handle<P>::from_address): Add
7501 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
7503 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
7504 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
7506 2021-02-09 Jakub Jelinek <jakub@redhat.com>
7509 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
7510 points to the characters moved by earlier _S_move, compute the source
7511 address using expression based on the __p pointer rather than __s
7514 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
7516 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
7517 Add comparison with same category and different values.
7518 * testsuite/19_diagnostics/error_code/operators/less.cc:
7519 Likewise. Fix comparison involving different categories.
7520 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
7522 * testsuite/19_diagnostics/error_condition/operators/less.cc:
7524 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
7527 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
7529 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
7530 calls with a single vaddv for aarch64.
7532 2021-02-03 Matthias Kretz <kretz@kde.org>
7534 * testsuite/Makefile.am: Warn about the workaround. Add
7535 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
7536 Improve initial user feedback from make check-simd.
7537 * testsuite/Makefile.in: Regenerated.
7539 2021-02-03 Matthias Kretz <kretz@kde.org>
7541 * include/experimental/bits/simd.h: Add __detail::_Minimum and
7542 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
7543 Add hmin and hmax overloads for simd and const_where_expression.
7544 * include/experimental/bits/simd_scalar.h
7545 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
7546 parameter const-ref to allow calling _S_reduce with an rvalue.
7547 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
7548 hmin and hmax. Since the compiler statically determined that all
7549 tests pass, repeat the test after a call to make_value_unknown.
7551 2021-02-03 Matthias Kretz <kretz@kde.org>
7553 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
7554 instruction pointer data member. Ensure that the `if (m_failed)`
7555 branch is always inlined into the calling code. The body of the
7556 conditional can still be a function call. Move the get_ip call
7557 into the verify ctor to simplify the ctor calls.
7558 (COMPARE): Don't mention the use of all_of for reduction of a
7559 simd_mask. It only distracts from the real issue.
7561 2021-02-03 Matthias Kretz <kretz@kde.org>
7563 * testsuite/experimental/simd/driver.sh: Abstract reading test
7564 options into read_src_option function. Read skip, only,
7565 expensive, and xfail via read_src_option. Add timeout and
7566 timeout-factor options and adjust timeout variable accordingly.
7567 * testsuite/experimental/simd/tests/loadstore.cc: Set
7570 2021-02-03 Matthias Kretz <kretz@kde.org>
7572 * testsuite/experimental/simd/driver.sh: When handling the pipe
7573 to log (and on verbose to stdout) count the lines. If it exceeds
7574 1000 log the issue and exit 125, which is then handled as a
7577 2021-02-03 Matthias Kretz <kretz@kde.org>
7579 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
7580 markup for long double on powerpc64*.
7582 2021-02-03 Matthias Kretz <kretz@kde.org>
7584 * include/experimental/bits/simd.h: Add __have_power10vec
7585 conditional on _ARCH_PWR10.
7586 * include/experimental/bits/simd_builtin.h: Forward declare
7587 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
7589 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
7590 _SuperImpl for optimizations and correctness.
7591 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
7592 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
7593 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
7594 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
7596 2021-02-03 Matthias Kretz <kretz@kde.org>
7598 * testsuite/experimental/simd/driver.sh: Remove executable on
7599 SIGINT. Process compiler and test executable output: In verbose
7600 mode print messages immediately, limited to 1000 lines and
7601 breaking long lines to below $COLUMNS (or 1024 if not set).
7602 Communicating the exit status of the compiler / test with the
7603 necessary pipe is done via a message through stdout/-in.
7605 2021-02-03 Matthias Kretz <kretz@kde.org>
7607 * testsuite/Makefile.am: Ensure .simd.summary is empty before
7608 collecting a new summary.
7609 * testsuite/Makefile.in: Regenerate.
7611 2021-02-03 Matthias Kretz <kretz@kde.org>
7613 * testsuite/experimental/simd/generate_makefile.sh: Use
7614 different variables internally than documented for user
7615 overrides. This makes internal append/prepend work as intended.
7617 2021-02-03 Matthias Kretz <kretz@kde.org>
7619 * testsuite/experimental/simd/driver.sh (verify_test): Print
7620 test output on run xfail. Do not repeat lines from the log that
7621 were already printed on stdout.
7622 (test_selector): Make the compiler flags pattern usable as a
7624 (toplevel): Trap on SIGINT and remove the log and sum files.
7625 Call timout with --foreground to quickly terminate on SIGINT.
7626 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
7627 targets via target patterns. Default DRIVEROPTS to -v for run
7628 targets. Remove log and sum files after completion of the run
7629 target (so that it's always recompiled).
7630 Place help text into text file for reasonable 'make help'
7633 2021-02-03 Matthias Kretz <kretz@kde.org>
7635 * include/experimental/bits/simd.h: Remove unnecessary static
7636 assertion. Allow sizeof(8) integer __intrinsic_type to enable
7637 the necessary mask type.
7639 2021-02-03 Matthias Kretz <kretz@kde.org>
7641 * include/experimental/bits/simd.h: Let __intrinsic_type<long
7642 double, N> be valid if sizeof(long double) == sizeof(double) and
7643 use a __vector double as member type.
7645 2021-02-03 Matthias Kretz <kretz@kde.org>
7647 * include/experimental/bits/simd.h (__is_intrinsic_type): New
7648 internal type trait. Alias for __is_vector_type on x86.
7649 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
7651 (__intrin_bitcast): Allow casting to & from vector & intrinsic
7653 (__intrinsic_type): Explicitly specialize for NEON intrinsic
7656 2021-02-03 Matthias Kretz <kretz@kde.org>
7658 * testsuite/experimental/simd/driver.sh: Implement skip, only,
7659 expensive, and xfail markers. They can select on type, ABI tag
7660 subset number, target-triplet, and compiler flags.
7661 * testsuite/experimental/simd/generate_makefile.sh: The summary
7662 now includes lines for unexpected passes and expected failures.
7663 If the skip or only markers are only conditional on the type, do
7664 not generate rules for those types.
7665 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
7666 for ABI tag subsets 1-9.
7667 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7668 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7669 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7670 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7671 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7672 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7673 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7674 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7675 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7676 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
7677 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7678 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7679 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7680 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7681 * testsuite/experimental/simd/tests/operators.cc: Ditto.
7682 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7683 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7684 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7685 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7686 * testsuite/experimental/simd/tests/where.cc: Ditto.
7687 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
7688 addition replace "test only floattypes" marker by unconditional
7689 "float|double|ldouble" only marker.
7690 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7691 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7692 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7694 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7695 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7696 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7697 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7698 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7699 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7700 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
7701 addition, xfail on run because the reference data is missing.
7703 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
7705 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
7706 * doc/xml/manual/status_cxx2014.xml: Likewise.
7707 * doc/xml/manual/status_cxx2017.xml: Likewise.
7708 * doc/html/manual/status.html: Regenerate.
7710 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
7713 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
7714 Return 0 if both iterators are value-initialized.
7715 * testsuite/23_containers/deque/70303.cc: New test.
7716 * testsuite/23_containers/vector/70303.cc: New test.
7718 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
7720 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
7722 * doc/xml/manual/status_cxx2014.xml: Likewise.
7723 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
7724 std::from_chars and std::to_chars status. Fix formatting.
7725 * doc/html/manual/status.html: Regenerate.
7727 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
7729 * include/experimental/bits/numeric_traits.h: Update copyright
7731 * include/experimental/bits/simd.h: Likewise.
7732 * include/experimental/bits/simd_builtin.h: Likewise.
7733 * include/experimental/bits/simd_converter.h: Likewise.
7734 * include/experimental/bits/simd_detail.h: Likewise.
7735 * include/experimental/bits/simd_fixed_size.h: Likewise.
7736 * include/experimental/bits/simd_math.h: Likewise.
7737 * include/experimental/bits/simd_neon.h: Likewise.
7738 * include/experimental/bits/simd_ppc.h: Likewise.
7739 * include/experimental/bits/simd_scalar.h: Likewise.
7740 * include/experimental/bits/simd_x86.h: Likewise.
7741 * include/experimental/bits/simd_x86_conversions.h: Likewise.
7742 * include/experimental/simd: Likewise.
7743 * testsuite/experimental/simd/*: Likewise.
7745 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7747 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
7748 * doc/html/*: Regenerate.
7750 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7752 * testsuite/experimental/simd/generate_makefile.sh: Use printf
7753 instead of echo when printing escape characters.
7755 2021-01-27 Matthias Kretz <kretz@kde.org>
7757 * scripts/check_simd: New file. This script is called from the
7758 the check-simd target. It determines a set of compiler flags and
7759 simulator setups for calling generate_makefile.sh and passes the
7760 information back to the check-simd target, which recurses to the
7761 generated Makefiles.
7762 * scripts/create_testsuite_files: Remove files below simd/tests/
7763 from testsuite_files and place them in testsuite_files_simd.
7764 * testsuite/Makefile.am: Add testsuite_files_simd. Add
7766 * testsuite/Makefile.in: Regenerate.
7767 * testsuite/experimental/simd/driver.sh: New file. This script
7768 compiles and runs a given simd test, logging its output and
7769 status. It uses the timeout command to implement compile and
7771 * testsuite/experimental/simd/generate_makefile.sh: New file.
7772 This script generates a Makefile which uses driver.sh to compile
7773 and run the tests and collect the logs into a single log file.
7774 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
7776 * testsuite/experimental/simd/tests/algorithms.cc: New file.
7777 Tests min/max(simd, simd).
7778 * testsuite/experimental/simd/tests/bits/conversions.h: New
7779 file. Contains functions to support tests involving conversions.
7780 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
7781 Support functions make_mask and make_vec.
7782 * testsuite/experimental/simd/tests/bits/mathreference.h: New
7783 file. Support functions to supply precomputed math function
7785 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
7786 file. Support code for SFINAE testing.
7787 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
7788 * testsuite/experimental/simd/tests/bits/test_values.h: New
7789 file. Test functions to easily drive a test with simd objects
7790 initialized from a given list of values and a range of random
7792 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
7793 Support code to determine the ULP distance of simd objects.
7794 * testsuite/experimental/simd/tests/bits/verify.h: New file.
7795 Test framework for COMPARE'ing simd objects and instantiating
7796 the test templates with value_type and ABI tag.
7797 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
7799 * testsuite/experimental/simd/tests/casts.cc: New file. Test
7801 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
7802 Test floating-point classification functions.
7803 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
7805 * testsuite/experimental/simd/tests/generator.cc: New file. Test
7806 simd generator constructor.
7807 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
7808 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
7809 * testsuite/experimental/simd/tests/integer_operators.cc: New
7810 file. Test integer operators.
7811 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7812 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
7814 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
7815 (converting) simd loads and stores.
7816 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
7818 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
7819 Test simd_mask broadcasts.
7820 * testsuite/experimental/simd/tests/mask_conversions.cc: New
7821 file. Test simd_mask conversions.
7822 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
7823 file. Test simd_mask implicit conversions.
7824 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
7825 Test simd_mask loads and stores.
7826 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
7827 file. Test simd_mask operators convert as specified.
7828 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
7829 Test simd_mask compares, subscripts, and negation.
7830 * testsuite/experimental/simd/tests/mask_reductions.cc: New
7831 file. Test simd_mask reductions.
7832 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
7833 1-arg math functions on simd.
7834 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
7835 2-arg math functions on simd.
7836 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
7837 Test implicit conversions on simd binary operators behave as
7839 * testsuite/experimental/simd/tests/operators.cc: New file. Test
7840 simd compares, subscripts, not, unary minus, plus, minus,
7841 multiplies, divides, increment, and decrement.
7842 * testsuite/experimental/simd/tests/reductions.cc: New file.
7844 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
7846 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
7847 sanity checks of simd types.
7848 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
7849 sin(simd) and cos(simd).
7850 * testsuite/experimental/simd/tests/split_concat.cc: New file.
7851 Test split(simd) and concat(simd, simd).
7852 * testsuite/experimental/simd/tests/splits.cc: New file. Test
7854 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
7855 Test remaining trigonometric functions on simd.
7856 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
7857 file. Test trunc(simd), ceil(simd), and floor(simd).
7858 * testsuite/experimental/simd/tests/where.cc: New file. Test
7859 masked operations using where.
7861 2021-01-27 Matthias Kretz <kretz@kde.org>
7863 * doc/xml/manual/status_cxx2017.xml: Add implementation status
7864 of the Parallelism TS 2. Document implementation-defined types
7866 * include/Makefile.am: Add new headers.
7867 * include/Makefile.in: Regenerate.
7868 * include/experimental/simd: New file. New header for
7870 * include/experimental/bits/numeric_traits.h: New file.
7871 Implementation of P1841R1 using internal naming. Addition of
7872 missing IEC559 functionality query.
7873 * include/experimental/bits/simd.h: New file. Definition of the
7874 public simd interfaces and general implementation helpers.
7875 * include/experimental/bits/simd_builtin.h: New file.
7876 Implementation of the _VecBuiltin simd_abi.
7877 * include/experimental/bits/simd_converter.h: New file. Generic
7879 * include/experimental/bits/simd_detail.h: New file. Internal
7880 macros for the simd implementation.
7881 * include/experimental/bits/simd_fixed_size.h: New file. Simd
7882 fixed_size ABI specific implementations.
7883 * include/experimental/bits/simd_math.h: New file. Math
7885 * include/experimental/bits/simd_neon.h: New file. Simd NEON
7886 specific implementations.
7887 * include/experimental/bits/simd_ppc.h: New file. Implement bit
7888 shifts to avoid invalid results for integral types smaller than
7890 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7891 ABI specific implementations.
7892 * include/experimental/bits/simd_x86.h: New file. Simd x86
7893 specific implementations.
7894 * include/experimental/bits/simd_x86_conversions.h: New file.
7895 x86 specific conversion optimizations. The conversion patterns
7896 work around missing conversion patterns in the compiler and
7897 should be removed as soon as PR85048 is resolved.
7898 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7899 Test that all (not all fixed_size<N>, though) standard simd and
7900 simd_mask types are usable.
7901 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7902 file. As above but with -ffast-math.
7903 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7904 from the standard test loop. Instead use
7905 check_vect_support_and_set_flags to build simd tests with the
7906 relevant machine flags.
7908 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7911 * include/bits/string_view.tcc
7912 (basic_string_view::find(const CharT*, size_type, size_type)):
7915 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
7917 * include/bits/basic_string.h (basic_string::contains): New
7919 * include/std/string_view (basic_string_view::contains):
7921 * include/std/version (__cpp_lib_string_contains): Define.
7922 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7923 Remove trailing whitespace.
7924 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7926 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7927 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7928 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7929 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7930 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7932 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
7934 * src/c++17/Makefile.in: Regenerate.
7936 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
7938 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7939 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7941 (const char* ctype<char>:: is): Same.
7943 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7946 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
7947 write to a wide character stream if wide character support is
7948 disabled in the library.
7950 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7952 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
7953 stringbuf not wstringbuf.
7955 2021-01-18 Jakub Jelinek <jakub@redhat.com>
7958 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
7959 Compile with -gno-as-loc-support.
7960 * src/c++11/Makefile.in: Regenerated.
7962 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
7964 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
7965 Add -fcf-protection=none to -march=i486.
7967 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7969 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
7972 2021-01-14 Alexandre Oliva <oliva@adacore.com>
7974 * testsuite/30_threads/future/members/poll.cc: Calibrate
7977 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7980 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
7981 (_Node_iterator()): Make default.
7982 (_Node_const_iterator()): Make default.
7983 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
7985 * include/debug/safe_iterator.h
7986 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
7987 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
7989 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
7990 _M_singular checks on input iterators.
7991 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
7993 * testsuite/23_containers/deque/debug/98466.cc: New test.
7994 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
7996 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7999 * include/bits/fs_path.h (__throw_conversion_error): New
8000 function to throw or abort on character conversion errors.
8001 (__wstr_from_utf8): Move definition after filesystem_error has
8002 been defined. Use __throw_conversion_error.
8003 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
8004 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
8005 (path::u8string): Likewise.
8007 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
8009 * include/std/barrier: Update copyright years. Fix whitespace.
8010 * include/std/version: Fix whitespace.
8011 * testsuite/30_threads/barrier/1.cc: Update copyright years.
8012 * testsuite/30_threads/barrier/2.cc: Likewise.
8013 * testsuite/30_threads/barrier/arrive.cc: Likewise.
8014 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8015 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8016 * testsuite/30_threads/barrier/completion.cc: Likewise.
8018 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
8020 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
8022 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
8025 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
8027 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
8029 2021-01-08 Olivier Hainque <hainque@adacore.com>
8031 * testsuite/20_util/bind/ref_neg.cc: Tweak the
8032 dg-prune-output regex for out-of-build-tree contexts.
8034 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
8036 * doc/doxygen/user.cfg.in: Add new header.
8037 * include/Makefile.am (std_headers): likewise.
8038 * include/Makefile.in: Regenerate.
8039 * include/precompiled/stdc++.h: Add new header.
8040 * include/std/barrier: New file.
8041 * include/std/version: Add __cpp_lib_barrier feature test macro.
8042 * testsuite/30_threads/barrier/1.cc: New test.
8043 * testsuite/30_threads/barrier/2.cc: Likewise.
8044 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8045 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8046 * testsuite/30_threads/barrier/arrive.cc: Likewise.
8047 * testsuite/30_threads/barrier/completion.cc: Likewise.
8049 2021-01-07 Patrick Palka <ppalka@redhat.com>
8052 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
8053 instead of the non-standard nextupl and nextdownl.
8055 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
8057 * configure: Re-generate.
8059 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
8061 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
8063 2021-01-01 Jakub Jelinek <jakub@redhat.com>
8065 * ChangeLog-2020: Rotate ChangeLog. New file.
8068 Copyright (C) 2021 Free Software Foundation, Inc.
8070 Copying and distribution of this file, with or without modification,
8071 are permitted in any medium without royalty provided the copyright
8072 notice and this notice are preserved.