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