1 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/range_access.h (begin(valarray), end(valarray)):
6 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
8 * include/std/tuple (tuple_size_v): Fix pack expansion.
10 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
12 * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
13 [[unlikely]] attribute.
15 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
17 * src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
18 (__ppc_darn): New function to use POWER9 DARN instruction.
19 (Which): Add 'darn' enumerator.
20 (which_source): Check for __ppc_darn.
21 (random_device::_M_init): Support "darn" and "hw" tokens.
22 (random_device::_M_getentropy): Add darn to switch.
23 * testsuite/26_numerics/random/random_device/cons/token.cc:
25 * testsuite/26_numerics/random/random_device/entropy.cc:
28 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
30 * testsuite/lib/gdb-test.exp: Add target selector support to the
32 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
34 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
35 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
38 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
41 * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
42 for accessing the tuple element stored in a _Tuple_impl node.
43 (tuple_get): New function for accessing a tuple element.
44 (unique_ptr_get): New function for accessing a unique_ptr.
45 (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
46 * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
47 tuple to its base class before accessing _M_head_impl.
49 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
51 * doc/xml/manual/evolution.xml: Document deprecations.
52 * doc/html/*: Regenerate.
53 * libsupc++/exception (unexpected_handler, unexpected)
54 (get_unexpected, set_unexpected): Add deprecated attribute.
55 Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
56 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
58 * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
59 * libsupc++/eh_terminate.cc: Likewise.
60 * libsupc++/eh_throw.cc (__cxa_init_primary_exception):
62 * libsupc++/unwind-cxx.h (struct __cxa_exception): Use
63 terminate_handler instead of unexpected_handler.
64 (struct __cxa_dependent_exception): Likewise.
65 (__unexpected): Likewise.
66 * testsuite/18_support/headers/exception/synopsis.cc: Add
67 dg-warning for deprecated warning.
68 * testsuite/18_support/exception_ptr/60612-unexpected.cc:
69 Disable deprecated warnings.
70 * testsuite/18_support/set_unexpected.cc: Likewise.
71 * testsuite/18_support/unexpected_handler.cc: Likewise.
73 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
75 * include/bits/utility.h (__find_uniq_type_in_pack): Move
76 definition to here, ...
77 * include/std/tuple (__find_uniq_type_in_pack): ... from here.
78 * include/std/variant (__detail__variant::__index_of): Remove.
79 (__detail::__variant::__exactly_once): Define using
80 __find_uniq_type_in_pack instead of __index_of.
81 (get<T>, get_if<T>, variant::__index_of): Likewise.
83 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
85 * include/bits/stl_pair.h (tuple_size_v): Define partial
86 specializations for std::pair.
87 * include/bits/utility.h (_Nth_type): Move definition here
88 and define primary template.
89 (tuple_size_v): Move definition here.
90 * include/std/array (tuple_size_v): Define partial
91 specializations for std::array.
92 * include/std/tuple (tuple_size_v): Move primary template to
93 <bits/utility.h>. Define partial specializations for
95 (tuple_element): Change definition to use _Nth_type.
96 * include/std/variant (_Nth_type): Move to <bits/utility.h>.
97 (variant_alternative, variant): Adjust qualification of
99 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
100 additional errors from _Nth_type.
102 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
104 * include/std/variant (__detail::__variant::__emplace): New
106 (_Copy_assign_base::operator=): Reorder conditions to match
107 bulleted list of effects in the standard. Use __emplace instead
108 of _M_reset followed by _Construct.
109 (_Move_assign_base::operator=): Likewise.
110 (__construct_by_index): Remove.
111 (variant::emplace): Use __emplace instead of _M_reset followed
112 by __construct_by_index.
113 (variant::swap): Hoist valueless cases out of visitor. Use
114 __emplace to replace _M_reset followed by _Construct.
116 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
118 * include/std/variant (_Nth_type): Define partial
119 specializations to reduce number of instantiations.
120 (variant_size_v): Define partial specializations to avoid
122 (variant_alternative): Use _Nth_type. Add static assert.
123 (__tuple_count, __tuple_count_v): Replace with ...
124 (__count): New variable template.
125 (_Variant_union): Add deleted constructor.
126 (variant::__to_type): Use _Nth_type.
127 (variant::emplace): Use _Nth_type. Add deleted overloads for
128 invalid types and indices.
130 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
133 * include/std/variant (_Variant_storage::__index_of): Remove.
134 (__variant_construct_single): Remove.
135 (__variant_construct): Remove.
136 (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
137 construction directly instead of using __variant_construct.
138 (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
139 (_Move_ctor_base::_M_destructive_move()): Remove.
140 (_Move_ctor_base::_M_destructive_copy()): Remove.
141 (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
142 construction directly instead of using _M_destructive_copy.
143 (variant::swap): Do construction directly instead of using
145 * testsuite/20_util/variant/102912.cc: New test.
147 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
150 * include/bits/list.tcc (list::sort): Use mutable iterators for
152 * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
153 * testsuite/23_containers/list/operations/66742.cc: Check
154 non-const comparisons.
156 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
158 * include/std/valarray (valarray::valarray()): Add noexcept.
159 (valarray::operator[]): Likewise.
161 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
163 * include/debug/stl_iterator.h (__valid_range): Add constexpr
164 for C++20. Qualify call to avoid ADL.
165 (__get_distance, __can_advance, __unsafe, __base): Likewise.
166 * testsuite/25_algorithms/move/constexpr.cc: Also check with
167 std::reverse_iterator arguments.
169 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
171 * include/std/span (span(Range&&)): Reorder constraints.
173 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
176 * include/std/valarray (begin, end): Do not dereference an empty
177 valarray. Add noexcept and [[nodiscard]].
178 * testsuite/26_numerics/valarray/range_access.cc: Check empty
179 valarray. Check iterator properties. Run as well as compiling.
180 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
181 * testsuite/26_numerics/valarray/103022.cc: New test.
183 2021-10-29 Jonathan Wakely <jwakely@redhat.com>
185 * testsuite/23_containers/stack/deduction.cc: Fix typo.
187 2021-10-26 Martin Sebor <msebor@redhat.com>
189 * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
191 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.
193 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
195 * testsuite/28_regex/basic_regex/84110.cc (test01)
196 [__cpp_exceptions]: Disambiguate extended.
198 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
200 * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.
202 2021-10-22 Jonathan Wakely <jwakely@redhat.com>
205 * include/std/any (make_any): Add SFINAE constraint.
206 * testsuite/20_util/any/102894.cc: New test.
208 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
210 * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
212 * scripts/run_doxygen: Fix post-processing of #include
213 directives in man pages. Use new xg++ to compile helper program.
215 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
217 * include/bits/mofunc_impl.h: Add doxygen comments.
218 * include/std/functional: Likewise.
220 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
222 * include/bits/alloc_traits.h: Suppress doxygen documentation.
223 * include/bits/allocated_ptr.h: Likewise.
224 * include/bits/enable_special_members.h: Likewise.
225 * include/bits/hashtable.h: Likewise.
226 * include/bits/hashtable_policy.h: Likewise.
227 * include/bits/uses_allocator.h: Likewise.
228 * include/bits/node_handle.h: Document node handles and suppress
229 documentation for protected members.
230 * include/std/any: Suppress documentation for implementation
233 2021-10-21 Patrick Palka <ppalka@redhat.com>
236 * include/bits/stl_iterator.h (__niter_base): Make constexpr
238 (__miter_base): Likewise.
239 * testsuite/25_algorithms/move/constexpr.cc: New test.
241 2021-10-21 Patrick Palka <ppalka@redhat.com>
243 * include/std/ranges (istream_view): Replace this function
244 template with an alias template as per P2432R1.
245 (wistream_view): Define as per P2432R1.
246 (views::_Istream, views::istream): Likewise.
247 * testsuite/std/ranges/istream_view.cc (test07): New test.
249 2021-10-21 Patrick Palka <ppalka@redhat.com>
251 * include/bits/ranges_util.h (views::_Drop): Forward declare.
252 (subrange): Befriend views::_Drop.
253 (subrange::_S_store_size): Declare constexpr instead of just
254 const, remove obsolete comment.
255 * include/std/ranges (views::__detail::__is_empty_view): Define.
256 (views::__detail::__is_basic_string_view): Likewise.
257 (views::__detail::__is_subrange): Likewise.
258 (views::__detail::__is_iota_view): Likewise.
259 (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
260 (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
261 and fix it to range_difference_t<_Range>. Implement P1739R4 and
263 (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
264 (views::_Drop): As with views::_Take.
265 (views::_Counted): Implement P1739R4 changes.
266 * include/std/span (__detail::__is_std_span): Rename to ...
267 (__detail::__is_span): ... this and turn it into a variable
269 (__detail::__is_std_array): Turn it into a variable template.
270 (span::span): Adjust uses of __is_std_span and __is_std_array
272 * testsuite/std/ranges/adaptors/p1739.cc: New test.
274 2021-10-21 Patrick Palka <ppalka@redhat.com>
276 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
277 Make fully constexpr as per LWG 3595.
278 (common_iterator::__postfix_proxy): Likewise.
280 2021-10-21 Patrick Palka <ppalka@redhat.com>
282 * include/std/ranges (lazy_split_view::base): Add forward_range
283 constraint as per LWG 3591.
284 (lazy_split_view::begin, lazy_split_view::end): Also check
285 simpleness of _Pattern as per LWG 3592.
286 (split_view::base): Relax copyable constraint as per LWG 3590.
288 2021-10-21 Patrick Palka <ppalka@redhat.com>
290 * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
291 criteria for returning bidirectional_iterator_tag as per LWG 3535.
292 (join_view::_Iterator::_S_iter_concept): Likewise.
294 2021-10-21 Patrick Palka <ppalka@redhat.com>
296 * include/bits/ranges_base.h (viewable_range): Adjust as per
298 * testsuite/std/ranges/adaptors/all.cc (test07): New test.
300 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
303 * include/std/optional (optional::and_then, optional::transform):
304 Remove requires-clause.
305 * testsuite/20_util/optional/monadic/and_then.cc: Check
306 overload resolution doesn't cause errors.
307 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
309 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
311 * testsuite/20_util/optional/monadic/transform.cc: Check that
312 an rvalue result is not materialized too soon.
314 2021-10-19 Patrick Palka <ppalka@redhat.com>
316 * include/std/ranges (iota_view::_Iterator::operator+): Adjust
317 definition as per LWG 3580.
318 (iota_view::_Iterator::operator-): Likewise.
320 2021-10-19 Patrick Palka <ppalka@redhat.com>
322 * include/std/ranges (basic_istream_view::_M_object): Value
323 initialize as per LWG 3568.
325 2021-10-19 Patrick Palka <ppalka@redhat.com>
327 * include/bits/ranges_util.h
328 (__detail::__uses_nonqualification_pointer_conversion): Define
330 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
331 * testsuite/std/ranges/subrange/1.cc: New test.
333 2021-10-19 Patrick Palka <ppalka@redhat.com>
335 * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
336 (iota_view::_Sentinel): Likewise.
337 (iota_view::iota_view): Add three overloads, each taking an
338 iterator/sentinel pair as per LWG 3523.
339 * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
341 2021-10-19 Patrick Palka <ppalka@redhat.com>
343 * include/bits/ranges_base.h (view_interface): Forward declare.
344 (__detail::__is_derived_from_view_interface_fn): Declare.
345 (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
346 (enable_view): Adjust as per LWG 3549.
347 * include/bits/ranges_util.h (view_interface): Don't derive from
349 * include/std/ranges (filter_view): Revert r11-3504 change.
350 (transform_view): Likewise.
351 (take_view): Likewise.
352 (take_while_view): Likewise.
353 (drop_view): Likewise.
354 (drop_while_view): Likewise.
355 (join_view): Likewise.
356 (lazy_split_view): Likewise.
357 (split_view): Likewise.
358 (reverse_view): Likewise.
359 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
360 * testsuite/std/ranges/view.cc (test_view::test_view): Remove
361 this default ctor since views no longer need to be default initable.
364 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
366 * src/c++11/random.cc (which_source): New helper function.
367 (random_device::_M_getentropy()): Use which_source and return
368 suitable values for sources other than device files.
369 * testsuite/26_numerics/random/random_device/entropy.cc: New test.
371 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
373 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
374 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
375 relative ${top_srcdir}.
376 * doc/Makefile.in: Regenerate.
378 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
380 * include/std/variant (_Uninitialized): Use an empty struct
381 for the unused union member, instead of char.
383 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
385 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
386 non-deducible template parameter from deduction guide.
387 * testsuite/23_containers/stack/deduction.cc: Check new C++23
390 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
392 * include/std/optional (_Optional_payload_base::_Storage): Add
393 constructor taking a callable function to invoke.
394 (_Optional_payload_base::_M_apply): New function.
395 (__cpp_lib_monadic_optional): Define for C++23.
396 (optional::and_then, optional::transform, optional::or_else):
398 * include/std/ranges (__detail::__cached): Remove.
399 (__detail::__non_propagating_cache): Remove use of __cached for
400 contained value. Use _Optional_payload_base::_M_construct and
401 _Optional_payload_base::_M_apply to set the contained value.
402 * include/std/version (__cpp_lib_monadic_optional): Define.
403 * testsuite/20_util/optional/monadic/and_then.cc: New test.
404 * testsuite/20_util/optional/monadic/or_else.cc: New test.
405 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
406 * testsuite/20_util/optional/monadic/transform.cc: New test.
407 * testsuite/20_util/optional/monadic/version.cc: New test.
409 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
412 * include/bits/mofunc_impl.h (move_only_function): Remove
413 invalid base initializer.
414 * testsuite/20_util/move_only_function/cons.cc: Instantiate
415 constructors to check bodies.
417 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
419 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
420 call to function with deduced return type.
422 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
424 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
426 (basic_string::resize_and_overwrite): Declare.
427 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
429 * include/std/version (__cpp_lib_resize_and_overwrite): Define
431 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
434 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
437 * include/std/ranges (__cached): New wrapper struct.
438 (__non_propagating_cache): Use __cached for contained value.
439 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
440 std::construct_at instead of placement new.
441 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
443 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
445 * include/std/variant (__cpp_lib_variant): Update value for
447 (__variant_cast, __variant_construct): Add constexpr for C++20.
448 (__variant_construct_single, __construct_by_index) Likewise. Use
449 std::_Construct instead of placement new.
450 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
451 buffer with a union and define a destructor.
452 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
453 for non-trivial destruction.
454 (_Variant_storage::__index_of): New helper variable template.
455 (_Variant_storage::~_Variant_storage()): Add constexpr.
456 (_Variant_storage::_M_reset()): Likewise.
457 (_Copy_ctor_base, _Move_ctor_base): Likewise.
458 (_Copy_assign_base, _Move_assign_base): Likewise.
459 (variant, swap): Likewise.
460 * include/std/version (__cpp_lib_variant): Update value for
462 * testsuite/20_util/optional/version.cc: Check for exact value
464 * testsuite/20_util/variant/87619.cc: Increase timeout for
466 * testsuite/20_util/variant/constexpr.cc: New test.
467 * testsuite/20_util/variant/version.cc: New test.
469 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
471 * include/std/variant (__detail::__variant::__get_storage):
472 Remove unused function.
473 (__variant_construct_by_index): Set index after construction is
474 complete. Rename to ...
475 (__detail::__variant::__construct_by_index): ... this.
476 (variant): Use new name for __variant_construct_by_index friend
477 declaration. Remove __get_storage friend declaration.
478 (variant::emplace): Use new name and remove try-blocks.
480 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
482 * include/std/variant (_Variant_storage::_M_storage()): Remove.
483 (__detail::__variant::__get_storage): Remove.
484 (variant): Remove friend declaration of __get_storage.
486 2021-10-15 Jason Merrill <jason@redhat.com>
488 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
489 * testsuite/20_util/integer_comparisons/greater_neg.cc:
490 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
491 Adjust expected message.
492 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
494 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
496 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
497 Rename to __get_n and remove first argument. Replace pair of
498 overloads with a single function using 'if constexpr'.
499 (__variant::__get(Variant&&)): Adjust to use __get_n.
501 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
503 * include/bits/fs_path.h (path(path&&)): Make unconditionally
505 (path::_S_convert(T)): Add condtional noexcept.
507 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
510 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
511 for returning the same string unchanged.
513 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
515 * include/bits/regex.h: Check __cpp_inline_variables instead of
518 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
520 * testsuite/20_util/is_layout_compatible/version.cc: Check
523 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
525 * include/bits/stl_construct.h (_Construct): Use
526 std::construct_at when constant evaluated.
527 * include/std/optional (_Storage, _Optional_payload, optional):
528 Add constexpr as specified by P2231R1.
529 * include/std/version (__cpp_lib_optional): Update value for
531 * testsuite/20_util/optional/requirements.cc: Check feature test
533 * testsuite/20_util/optional/constexpr/assign.cc: New test.
534 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
535 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
536 * testsuite/20_util/optional/constexpr/swap.cc: New test.
537 * testsuite/20_util/optional/version.cc: New test.
539 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
541 * include/bits/fs_path.h (__detail::__is_contiguous): Add
542 partial specializations for pointers and __normal_iterator.
544 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
546 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
547 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
548 * testsuite/28_regex/match_results/102667.C: Moved to...
549 * testsuite/28_regex/match_results/102667.cc: ...here.
551 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
553 * include/bits/fs_path.h (__detail::__is_contiguous): New
554 variable template to identify contiguous iterators.
555 (__detail::__unified_char8_t): New alias template to decide when
556 to treat char8_t as char without encoding conversion.
557 (__detail::__effective_range(const basic_string<C,T>&)): Use
558 std::char_traits<C> for returned string view.
559 (__detail::__effective_range(const basic_string_view<C,T>&)):
561 (__detail::__effective_range(const Source&)): Use
562 __is_contiguous to detect mode cases of contiguous iterators.
563 Use __unified_char8_t to return a std::string instead of
566 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
569 * include/bits/fs_path.h (path::path(Iter, Iter, format))
570 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
571 __string_from_range directly, instead of two-argument overload
573 (path::_S_convert(Iter, Iter)): Remove.
574 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
576 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
578 * include/bits/c++config (__terminate): Add extern "C++".
580 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
582 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
583 Restore test for operator<.
584 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
585 Adjust expected errors for C++20.
587 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
590 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
592 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
593 array elements before the last element.
595 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
597 * include/bits/stl_iterator_base_funcs.h (__advance): Add
598 deleted overload to improve diagnostics.
599 (__distance): Likewise.
601 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
603 * include/bits/atomic_timed_wait.h: Remove unused header.
604 * include/bits/c++config (std:__terminate): Define.
605 * include/bits/semaphore_base.h: Remove <exception> and use
606 __terminate instead of terminate.
607 * include/bits/std_thread.h: Likewise.
608 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
609 to call __cxxabiv1::__terminate.
611 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
613 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
614 std::__to_address by using poitner directly or using base()
615 member of __normal_iterator.
617 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
619 * testsuite/18_support/numeric_limits/lowest.cc: Use
620 numeric_limits<T>::is_integer instead of is_integral<T>::value.
622 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
625 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
626 Add __glibcxx_requires_string_len assertion.
627 (basic_regex::assign(InputIterator, InputIterator)): Add
628 __glibcxx_requires_valid_range assertion.
629 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
630 (_Scanner::_M_scan_normal()): Use string literal in assertions.
632 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
635 * include/bits/regex.h (match_result::empty()): Optimize by
636 calling the base function directly.
637 (match_results::end()): Check _Base_type::empty() not empty().
638 * testsuite/28_regex/match_results/102667.C: New test.
640 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
643 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
644 _GLIBCXX_USE_WCHAR_T.
645 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
646 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
647 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
648 _GLIBCXX_USE_WCHAR_T.
649 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
650 char_traits<wchar_t>::length instead of wcslen.
651 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
653 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
654 * testsuite/20_util/is_compound/value.cc: Likewise.
655 * testsuite/20_util/is_floating_point/value.cc: Likewise.
656 * testsuite/20_util/is_fundamental/value.cc: Likewise.
657 * testsuite/20_util/is_integral/value.cc: Likewise.
658 * testsuite/20_util/is_signed/value.cc: Likewise.
659 * testsuite/20_util/is_unsigned/value.cc: Likewise.
660 * testsuite/20_util/is_void/value.cc: Likewise.
661 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
663 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
665 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
667 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
669 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
671 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
673 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
675 * testsuite/20_util/to_chars/3.cc: Likewise.
676 * testsuite/20_util/type_identity/requirements/typedefs.cc:
678 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
679 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
680 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
682 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
683 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
685 * testsuite/21_strings/basic_string/literals/values.cc:
687 * testsuite/21_strings/basic_string/modifiers/64422.cc:
689 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
691 * testsuite/21_strings/basic_string/requirements/citerators.cc:
693 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
695 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
697 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
699 * testsuite/21_strings/basic_string_view/literals/types.cc:
701 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
703 * testsuite/21_strings/basic_string_view/literals/values.cc:
705 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
707 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
708 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
710 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
712 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
714 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
715 * testsuite/25_algorithms/fill/4.cc: Likewise.
716 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
717 * testsuite/experimental/functional/searchers.cc: Likewise. Use
718 char_traits<wchar_t>::length instead of wcslen.
719 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
721 * testsuite/experimental/string_view/literals/types-char8_t.cc:
723 * testsuite/experimental/string_view/literals/types.cc:
725 * testsuite/experimental/string_view/literals/values-char8_t.cc:
727 * testsuite/experimental/string_view/literals/values.cc:
729 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
731 * testsuite/experimental/string_view/requirements/typedefs.cc:
733 * testsuite/experimental/string_view/typedefs.cc: Likewise.
734 * testsuite/ext/vstring/range_access.cc: Likewise.
735 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
737 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
739 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
741 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
743 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
745 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
747 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
749 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
751 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
752 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
754 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
755 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
757 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
760 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
761 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
762 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
764 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
767 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
768 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
770 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
773 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
774 (__byte_operand<wchar_t>): Define specialization.
775 * include/std/type_traits (__make_signed<wchar_t>)
776 (__make_unsigned<wchar_t>): Remove redundant check for
777 __WCHAR_TYPE__ being defined.
778 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
779 (__is_integral_helper<wchar_t>): Likewise.
781 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
784 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
785 (__rc_string_base<wchar_t>): Define member function.
786 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
787 (hash<__gnu_cxx::__wvstring>): Define specialization.
788 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
789 (__wsso_string, __wrc_string): Declare typedefs.
791 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
794 * include/bits/char_traits.h (char_traits<wchar_t>): Define
795 explicit specialization unconditionally.
796 * include/bits/basic_string.h (hash<wstring>): Define
797 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
798 * include/bits/stringfwd.h (wstring): Likewise.
799 * include/debug/string (wstring): Likewise.
800 * include/experimental/string_view (experimental::wstring_view)
801 (hash<experimental::wstring_view>): Likewise.
802 * include/std/string (pmr::wstring, hash<pmr::wstring>):
804 * include/std/string_view (wstring_view, hash<wstring_view>):
807 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
809 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
810 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
812 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
814 * testsuite/22_locale/conversions/buffer/1.cc: Check
815 _GLIBCXX_USE_WCHAR_T.
816 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
818 * testsuite/22_locale/conversions/string/1.cc: Check
819 _GLIBCXX_USE_WCHAR_T.
820 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
822 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
824 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
825 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
827 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
828 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
830 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
832 * testsuite/experimental/filesystem/path/native/alloc.cc:
834 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
836 * testsuite/experimental/filesystem/path/native/string.cc:
839 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
841 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
842 * testsuite/util/testsuite_common_types.h:
844 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
846 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
848 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
849 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
850 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
851 * testsuite/20_util/is_floating_point/value.cc: Likewise.
852 * testsuite/20_util/is_integral/value.cc: Likewise.
853 * testsuite/20_util/is_signed/value.cc: Likewise.
854 * testsuite/20_util/is_unsigned/value.cc: Likewise.
855 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
857 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
859 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
861 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
863 * testsuite/20_util/type_identity/requirements/typedefs.cc:
865 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
866 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
867 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
868 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
869 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
870 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
871 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
872 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
873 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
875 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
877 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
879 * include/bits/hashtable_policy.h (_Select1st): Replace use of
881 (_Select2nd): Remove.
882 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
883 typedef instead of deducing it. Remove unnecessary piecewise
885 (_ReuseOrAllocNode): Make __node_type public.
886 (_Map_base): Adjust partial specialization to be able to extract
887 the mapped_type without using tuple_element.
888 (_Map_base::at): Define inline
889 * testsuite/23_containers/unordered_map/requirements/53339.cc:
891 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
894 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
896 * include/bits/hashtable.h: Move static assertion to destructor.
897 * include/bits/hashtable_policy.h: Deduce value type from node
898 type without instantiating it.
900 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
902 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
905 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
908 * include/bits/ranges_algobase.h: Replace <iterator> with a
909 subset of the headers it includes.
911 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
913 * include/experimental/deque (erase, erase_if): Revert changes
914 to avoid debug mode overhead.
915 * include/experimental/map (erase, erase_if): Likewise.
916 * include/experimental/set (erase, erase_if): Likewise.
917 * include/experimental/unordered_map (erase, erase_if):
919 * include/experimental/unordered_set (erase, erase_if):
921 * include/experimental/vector (erase, erase_if): Likewise.
922 * include/std/deque (erase, erase_if): Likewise.
923 * include/std/map (erase, erase_if): Likewise.
924 * include/std/set (erase, erase_if): Likewise.
925 * include/std/unordered_map (erase, erase_if): Likewise.
926 * include/std/unordered_set (erase, erase_if): Likewise.
927 * include/std/vector (erase, erase_if): Likewise.
929 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
931 * include/std/chrono (__detail::__units_suffix_misc): New
933 (__detail::__units_suffix): Likewise.
934 (chrono::operator<<(basic_ostream&, const duration&)): Define.
935 * testsuite/20_util/duration/io.cc: New test.
937 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
939 * include/Makefile.am: Add new header.
940 * include/Makefile.in: Regenerate.
941 * include/std/chrono (duration, time_point, system_clock)
942 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
943 (file_clock, file_time): Move to ...
944 * include/bits/chrono.h: New file.
945 * include/bits/atomic_futex.h: Include new header instead of
947 * include/bits/atomic_timed_wait.h: Likewise.
948 * include/bits/fs_fwd.h: Likewise.
949 * include/bits/semaphore_base.h: Likewise.
950 * include/bits/this_thread_sleep.h: Likewise.
951 * include/bits/unique_lock.h: Likewise.
952 * include/experimental/bits/fs_fwd.h: Likewise.
953 * include/experimental/chrono: Likewise.
954 * include/experimental/io_context: Likewise.
955 * include/experimental/netfwd: Likewise.
956 * include/experimental/timer: Likewise.
957 * include/std/condition_variable: Likewise.
958 * include/std/mutex: Likewise.
959 * include/std/shared_mutex: Likewise.
961 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
964 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
965 Hardcode to 64 instead of using non-constant constant.
967 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
969 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
971 * include/std/string (erase, erase_if): Likewise.
972 * include/std/deque (erase, erase_if): Access non-debug
974 * include/std/map (erase, erase_if): Likewise.
975 * include/std/set (erase, erase_if): Likewise.
976 * include/std/unordered_map (erase, erase_if): Likewise.
977 * include/std/unordered_set (erase, erase_if): Likewise.
978 * include/std/vector (erase, erase_if): Likewise.
979 * include/experimental/deque (erase, erase_if): Likewise.
980 * include/experimental/map (erase, erase_if): Likewise.
981 * include/experimental/set (erase, erase_if): Likewise.
982 * include/experimental/unordered_map (erase, erase_if):
984 * include/experimental/unordered_set (erase, erase_if):
986 * include/experimental/vector (erase, erase_if): Likewise.
988 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
990 * include/Makefile.am: Add new headers.
991 * include/Makefile.in: Regenerate.
992 * include/std/functional: Include <bits/move_only_function.h>.
993 * include/std/version (__cpp_lib_move_only_function): Define.
994 * include/bits/mofunc_impl.h: New file.
995 * include/bits/move_only_function.h: New file.
996 * testsuite/20_util/move_only_function/call.cc: New test.
997 * testsuite/20_util/move_only_function/cons.cc: New test.
998 * testsuite/20_util/move_only_function/move.cc: New test.
999 * testsuite/20_util/move_only_function/version.cc: New test.
1001 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1003 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
1005 * testsuite/23_containers/span/trivially_copyable.cc: New test.
1007 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1009 * include/bits/utility.h (__is_in_place_type_v): Define
1010 variable template to detect in_place_type_t specializations.
1011 (__is_in_place_type): Replace class template with alias
1012 template using __is_in_place_type_v.
1013 * include/std/any (any(T&&)): Check __is_in_place_type first and
1014 avoid instantiating is_copy_constructible unnecessarily.
1016 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1018 * testsuite/20_util/integer_comparisons/greater.cc: New test.
1020 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1022 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1023 Check result matches non-volatile pointer.
1025 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1028 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
1029 expected value for C++20.
1031 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1033 * include/bits/std_function.h (_Any_data::_M_access): Add
1035 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
1036 (_Function_base::_Base_manager::_M_not_empty_function):
1039 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1041 * include/std/ostream (operator<<(const volatile void*)):
1042 Add new overload, as per P1147R1.
1043 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1046 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1048 * include/bits/stl_queue.h
1049 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
1051 * include/bits/stl_stack.h
1052 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1053 * include/std/version
1054 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1055 * testsuite/23_containers/queue/cons_from_iters.cc: Update
1057 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
1059 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1061 * include/bits/forward_list.h (forward_list): Use non-deduced
1062 context for allocator parameter of allocator-extended copy and
1064 * include/bits/stl_bvector.h (vector<bool>): Likewise.
1065 * include/bits/stl_deque.h (deque): Likewise.
1066 * include/bits/stl_list.h (list): Likewise.
1067 * include/bits/stl_map.h (map): Likewise.
1068 * include/bits/stl_multimap.h (multimap): Likewise.
1069 * include/bits/stl_multiset.h (multiset): Likewise.
1070 * include/bits/stl_set.h (set): Likewise.
1071 * include/bits/stl_vector.h (vector): Likewise.
1072 * include/bits/stl_queue.h (queue, priority_queue): Do not
1073 constrain Allocator template parameter of deduction guides that
1074 have a Container parameter.
1075 * include/bits/stl_stack.h (stack): Likewise.
1076 * include/debug/deque (__gnu_debug::deque): Use non-deduced
1077 context for allocator parameter of allocator-extended copy and
1079 * include/debug/list (__gnu_debug::list): Likewise.
1080 * include/debug/map.h (__gnu_debug::map): Likewise.
1081 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
1082 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
1083 * include/debug/set.h (__gnu_debug::set): Likewise.
1084 * include/debug/vector (__gnu_debug::vector): Likewise.
1085 * testsuite/23_containers/deque/cons/deduction.cc: Test class
1086 template argument deduction with non-deduced allocator
1088 * testsuite/23_containers/forward_list/cons/deduction.cc:
1090 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1091 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1092 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1093 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1094 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1095 * testsuite/23_containers/queue/deduction.cc: Likewise.
1096 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1097 * testsuite/23_containers/stack/deduction.cc: Likewise.
1098 * testsuite/23_containers/unordered_map/cons/deduction.cc:
1100 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1102 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1104 * testsuite/23_containers/unordered_set/cons/deduction.cc:
1106 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1108 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1110 * include/std/variant (__detail::__variant::__as): Add missing
1111 noexcept to first overload.
1113 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1115 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
1117 (operator=(nullptr_t)): Likewise.
1118 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
1119 (operator=(nullptr_t)): Likewise.
1120 * include/std/string_view (basic_string_view(nullptr_t)):
1122 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
1123 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1124 Change dg-warning to dg-error.
1125 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1128 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
1130 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
1131 * src/filesystem/ops-common.h (__last_system_error): Add
1132 explicit cast to avoid narrowing conversion.
1133 (do_space): Fix type in function name.
1135 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1138 * include/Makefile.am (c++config.h): Define
1139 _GLIBCXX_VERBOSE_ASSERT based on configure output.
1140 * include/Makefile.in: Regenerate.
1141 * include/bits/c++config: Fix condition for verbose assertions.
1143 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1146 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
1147 unwrap debug iterators.
1148 * include/bits/refwrap.h: Do not error if included in C++03.
1149 * include/bits/stl_algo.h (__remove_if): Move to ...
1150 * include/bits/stl_algobase.h (__remove_if): ... here.
1151 * include/std/deque (erase, erase_if): Use __remove_if instead of
1152 remove and remove_if.
1153 * include/std/string (erase, erase_if): Likewise.
1154 * include/std/vector (erase, erase_if): Likewise.
1156 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1159 * include/bits/list.tcc (list::sort()): Use _Scratch_list
1160 objects for splicing and merging.
1161 (list::sort(StrictWeakOrdering)): Likewise.
1162 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
1163 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
1164 assertion for --enable-libstdcxx-debug library.
1165 * testsuite/23_containers/list/operations/66742.cc: New test.
1167 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1170 * include/std/thread (__pmf_expects_stop_token): New variable
1171 template to detect a pointer to member function that needs a
1172 stop_token to be added to the arguments.
1173 (jthread::__S_create): Use __pmf_expects_stop_token.
1174 (jthread::__S_create_pmf): New function.
1175 * testsuite/30_threads/jthread/100612.cc: New test.
1177 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1179 * include/bits/stl_queue.h
1180 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
1182 (queue(InputIterator, InputIterator)): Likewise.
1183 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
1184 * include/bits/stl_stack.h
1185 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1186 (stack(InputIterator, InputIterator)): Likewise.
1187 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
1188 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
1190 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
1191 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
1193 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1195 * include/bits/stl_queue.h (priority_queue): Add
1196 allocator-extended overloads for constructors taking iterator.
1197 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
1199 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1201 * include/bits/stl_queue.h (priority_queue): Construct sequence
1202 from iterators when no sequence argument is present (LWG 3529).
1203 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
1205 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1207 * include/bits/stl_queue.h (priority_queue): Constrain
1208 constructors with InputIterator parameters (LWG 3522).
1209 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
1211 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1213 * include/bits/ranges_base.h (ranges::distance): Split overload
1214 into two (LWG 3392).
1215 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
1217 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1219 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
1220 std::unary_function.
1221 * testsuite/30_threads/thread/cons/4.cc: Likewise.
1222 * testsuite/30_threads/thread/cons/5.cc: Likewise.
1224 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1226 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
1227 unnecesary derivation from std::unary_function.
1228 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
1229 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
1230 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
1231 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
1232 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
1233 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
1234 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
1235 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
1237 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
1238 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
1240 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1242 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
1243 expand the format string for freestanding, or non-vebose, or if
1244 we're just going to abort anyway.
1245 * src/c++11/snprintf_lite.cc: Remove unused header and
1248 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1250 * include/std/variant (__do_visit): Use variant_npos instead of
1251 literal -1 that requires a narrowing conversion.
1253 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1256 * src/filesystem/ops-common.h (__unsupported): New function to
1257 return a suitable error code for missing functionality.
1258 (posix::off_t): New typedef.
1259 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
1260 fallback implementations.
1261 (do_copy_file): Replace uses of errc::not_supported.
1262 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
1263 (fs::create_directory, fs::create_directory_symlink)
1264 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1265 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
1266 (fs::last_write_time, fs::permissions, fs::read_symlink):
1267 Replace uses of errc::not_supported.
1268 (fs::resize_file): Qualify off_t.
1269 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
1270 (fs::create_directory, fs::create_directory_symlink)
1271 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1272 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
1273 (fs::permissions, fs::read_symlink, fs::system_complete):
1274 Replace uses of errc::not_supported.
1275 (fs::resize_file): Qualify off_t and enable unconditionally.
1276 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
1278 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1280 * src/filesystem/ops-common.h (last_error): New helper function.
1281 (filesystem::do_space): Use last_error().
1282 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
1283 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
1285 * src/filesystem/ops.cc (fs::create_hard_link)
1286 (fs::remove, fs::temp_directory_path): Likewise.
1288 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1290 * include/std/type_traits (__conditional): New class template
1291 for internal uses of std::conditional.
1292 (__conditional_t): New alias template to replace conditional_t.
1293 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
1294 __conditional_t instead of conditional::type.
1295 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
1296 * include/bits/hashtable.h (_Hashtable): Likewise.
1297 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
1298 (_Local_iterator): Likewise. Replace typedefs with
1300 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
1301 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
1302 * include/bits/ptr_traits.h (__make_not_void): Likewise.
1303 * include/bits/ranges_algobase.h (__copy_or_move_backward)
1304 (__copy_or_move): Likewise.
1305 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
1306 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
1307 * include/bits/regex_compiler.h (_BracketMatcher): Use
1308 __conditional_t. Replace typedefs with using-declarations.
1309 * include/bits/shared_ptr_base.h (__shared_count): Use
1311 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1313 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
1314 (reverse_iterator::iterator_concept)
1315 (__make_move_if_noexcept_iterator)
1316 (iterator_traits<common_iterator<_It, _Sent>>)
1317 (iterator_traits<counted_iterator<_It>>): Likewise.
1318 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
1319 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
1320 (_Rb_tree::_M_clone_node): Likewise.
1321 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
1323 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
1324 (__is_uses_allocator_predicate): Likewise.
1325 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
1326 * include/experimental/any (any::_Manager, __any_caster):
1328 * include/experimental/executor (async_completion): Likewise.
1329 * include/experimental/functional (__boyer_moore_base_t):
1331 * include/std/any (any::_Manager): Likewise.
1332 * include/std/functional (__boyer_moore_base_t): Likewise.
1333 * include/std/ranges (borrowed_iterator_t)
1334 (borrowed_subrange_t, __detail::__maybe_present_t)
1335 (__detail::__maybe_const_t, split_view): Likewise.
1336 * include/std/tuple (__empty_not_final, tuple::operator=):
1338 * include/std/variant (__detail::__variant::__get_t): Likewise.
1340 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1343 * include/std/variant (__do_visit): Use a switch when we have a
1344 single variant with a small number of alternatives.
1346 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1349 * include/std/variant (__cpp_lib_variant): Update value.
1350 (__detail::__variant::__as): New helpers implementing the
1351 as-variant exposition-only function templates.
1352 (visit, visit<R>): Use __as to upcast the variant parameters.
1353 * include/std/version (__cpp_lib_variant): Update value.
1354 * testsuite/20_util/variant/visit_inherited.cc: New test.
1356 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1358 * include/bits/stl_iterator.h (__normal_iterator): Simplify
1359 converting constructor and do not require _Container::pointer.
1361 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1363 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
1364 (basic_string(basic_string&&)): Add noexcept and avoid
1365 allocation, by sharing rep with the rvalue string.
1367 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1369 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
1370 (common_iterator::__postfix_proxy): Add noexcept.
1372 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1375 * include/bits/stl_iterator.h (reverse_iterator): Use
1376 conditional noexcept on constructors and assignment operators.
1377 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
1379 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1382 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
1383 When size() is zero just deallocate and reset.
1385 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1388 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
1390 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1392 * include/bits/regex.h (basic_regex::multiline): Define for
1393 non-strict C++11 and C++14 modes.
1394 * include/bits/regex_constants.h (regex_constants::multiline):
1395 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
1397 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1399 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
1401 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1403 * include/bits/stream_iterator.h (istream_iterator): Add
1404 noexcept to constructors and non-throwing member functions and
1406 (ostream_iterator): Likewise.
1408 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1410 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
1411 New trait to identify vector<bool> iterators, including debug
1413 (_ForwardIteratorReferenceConcept): Add default template
1414 argument using _Is_vector_bool_iterator and use it in partial
1415 specialization for the vector<bool> cases.
1416 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
1417 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1420 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1422 * include/bits/list.tcc (list::merge): Remove call to size() and
1423 try-catch block. Use _Finalize_merge instead.
1424 * include/bits/stl_list.h (list::_Finalize_merge): New
1425 scope guard type to update _M_size members after a merge.
1427 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
1429 * include/bits/regex.h (basic_regex::multiline): Fix #if
1432 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1434 * include/bits/regex.h (basic_regex::multiline): Define constant
1436 * include/bits/regex_constants.h (regex_constants::multiline):
1437 Define constant for C++17.
1438 (regex_constants::__multiline): Define duplicate constant for
1439 internal use in C++11 and C++14.
1440 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
1441 New member function.
1442 (_Executor::_M_is_line_terminator(_CharT)): New member function.
1443 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
1444 member functions to support multiline matches.
1445 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
1447 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1449 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
1451 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
1452 _S_validate to check flags.
1453 * include/bits/regex_error.h (_S_grammar): New error code for
1455 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
1457 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1460 * include/bits/regex_error.h (regex_constants::_S_null): New
1461 error code for internal use.
1462 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
1463 Check for null character.
1464 * testsuite/28_regex/basic_regex/84110.cc: New test.
1466 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1468 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
1469 here from <bits/regex_compiler.h>.
1470 (basic_regex::_M_compile): New function to compile an NFA from
1471 a regular expression string.
1472 (basic_regex::basic_regex): Use _M_compile instead of delegating
1473 to other constructors.
1474 (basic_regex::operator=(const basic_regex&)): Define as
1476 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
1477 (basic_regex::assign(const basic_regex&)): Use copy assignment.
1478 (basic_regex::assign(basic_regex&&)): Use move assignment.
1479 (basic_regex::assign(const C*, flag_type)): Use _M_compile
1480 instead of constructing a temporary string.
1481 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
1482 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
1483 Use _M_compile instead of constructing a temporary basic_regex.
1484 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
1485 constructing a temporary string for contiguous iterators of the
1487 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
1489 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
1490 (__compile_nfa): Remove.
1491 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
1493 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
1495 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1497 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
1498 Return false for ETIMEDOUT and true otherwise.
1500 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
1502 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
1503 to also match message with '__8' in it.
1505 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1507 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
1508 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
1509 * include/bits/regex_compiler.tcc: Likewise.
1510 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
1511 * include/bits/regex_scanner.tcc: Likewise.
1513 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1515 * include/bits/regex_compiler.tcc: Add line break in empty while
1517 * include/bits/regex_executor.tcc: Avoid unused parameter
1520 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1522 * include/bits/regex.h (basic_regex, swap): Add noexcept to
1523 non-throwing functions.
1524 * include/bits/regex_automaton.h (_State_base, _State)
1525 (_NFA_base): Likewise.
1526 * include/bits/regex_compiler.h (_Compiler): Likewise.
1527 * include/bits/regex_error.h (regex_error::code()): Likewise.
1528 * include/bits/regex_scanner.h (_Scanner): Likewise.
1530 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1532 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
1533 Define before first attempt to check it.
1535 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1537 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
1538 Do not check non-default constructible sequences when
1539 _GLIBCXX_CONCEPT_CHECKS is defined.
1540 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
1542 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
1544 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
1546 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
1548 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
1551 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1553 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
1554 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
1556 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
1558 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
1560 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
1562 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
1564 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
1566 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
1568 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
1570 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
1572 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
1574 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
1576 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
1578 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
1580 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
1582 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
1584 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
1586 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
1588 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
1591 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1593 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
1594 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
1595 Check result types of iterator operations.
1596 (_Mutable_ForwardIteratorConcept): Check that iterator's
1597 reference type is a reference to its value type.
1598 (_Mutable_BidirectionalIteratorConcept): Do not require the
1599 value type to be assignable.
1600 (_Mutable_RandomAccessIteratorConcept): Likewise.
1601 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1604 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1606 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
1607 for type used as an iterator.
1608 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
1610 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1612 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
1613 comparison function for priority_queue of type with no
1614 relational operators.
1615 * testsuite/20_util/is_swappable/value.h: Likewise.
1616 * testsuite/24_iterators/output/concept.cc: Add operator< to
1619 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1621 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1622 Use a function to preserve value category of the type.
1623 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
1624 reference as the second argument for _OutputIteratorConcept.
1625 (copy_backward, move_backward): Use _OutputIteratorConcept
1626 instead of _ConvertibleConcept.
1628 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1630 * include/bits/stl_iterator.h (pointer_traits): Define partial
1631 specialization for __normal_iterator.
1632 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
1634 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1636 * include/bits/move.h (forward(remove_reference_t<T>&&)):
1637 Improve text of static_assert.
1638 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1639 * testsuite/20_util/forward/f_neg.cc: Likewise.
1641 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1644 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1645 to declarations, to match definitions.
1647 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
1649 * include/bits/range_access.h (cbegin, cend): Remove redundant
1652 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1654 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1655 Remove dg-error lines for C++20-only errors.
1657 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1659 * testsuite/19_diagnostics/headers/system_error/93151.cc:
1662 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1664 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1665 Map Windows error codes to generic POSIX error numbers. Use
1666 FormatMessage instead of strerror.
1667 * testsuite/19_diagnostics/error_category/system_category.cc:
1668 Adjust for new behaviour on Windows.
1670 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1672 * src/c++11/system_error.cc (generic_error_category): Define
1673 class and virtual functions as 'final'.
1674 (generic_error_category::equivalent(int, const error_condition&)):
1676 (system_error_category): Define class and virtual functions as
1678 (system_error_category::equivalent(int, const error_condition&)):
1680 (generic_category_instance, system_category_instance): Use
1681 constinit union to make the objects immortal.
1683 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1686 * src/c++11/system_error.cc
1687 (system_error_category::default_error_condition): Add 0 to
1689 * testsuite/19_diagnostics/error_category/102425.cc: New test.
1691 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1693 * include/bits/fs_path.h (path::iterator): Add noexcept to all
1694 member functions and friend functions.
1695 (distance): Add noexcept.
1696 (advance): Add noexcept and inline.
1697 * include/experimental/bits/fs_path.h (path::iterator):
1698 Add noexcept to all member functions.
1700 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1703 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
1704 missed in previous patch.
1705 * testsuite/20_util/tuple/cons/102270.C: Moved to...
1706 * testsuite/20_util/tuple/cons/102270.cc: ...here.
1707 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
1708 constexpr to constructor so it can be used for C++20 tests.
1710 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1712 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
1713 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
1714 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
1715 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
1717 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1719 * src/Makefile.am (stamp-debug): Add all Makefiles as
1721 * src/Makefile.in: Regenerate.
1723 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1725 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
1726 timeout factor to 3.
1727 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1729 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1731 * doc/xml/manual/using.xml: Generalize to apply to more than
1733 * doc/html/manual/using_macros.html: Regenerate.
1735 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1737 * include/std/optional (nullptr_t): Make constructor noexcept.
1739 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1741 * include/bits/fs_path.h (advance): Remove non-deducible
1744 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1747 * include/std/tuple (_Head_base, _Tuple_impl): Add
1748 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
1749 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
1750 * testsuite/20_util/tuple/cons/102270.C: New test.
1752 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1755 * include/std/span (span(Range&&)): Add constraint to deduction
1758 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1760 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
1761 * src/c++98/Makefile.in: Regenerate.
1763 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1765 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1766 (to_string): Add noexcept if the type width is 32 bits or less.
1768 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1770 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
1771 (__uniq_ptr_impl::_M_deleter): Add noexcept.
1773 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
1776 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
1777 va and vb as arguments to wait/notify, remove unused bb local.
1779 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1781 * crossconfig.m4: Check for TLS support on mingw.
1782 * configure: Regenerate.
1784 2021-09-13 Jason Merrill <jason@redhat.com>
1786 * include/std/version: Define __cpp_lib_hardware_interference_size.
1787 * libsupc++/new: Define hardware interference size variables.
1789 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
1791 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1792 Fix invalid hostname to only match the .invalid TLD.
1794 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1796 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
1798 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
1801 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1803 * include/std/atomic: Tweak whitespace.
1805 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1808 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
1809 New function to check if a memory order is valid for the failure
1810 case of compare exchange operations.
1811 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
1812 by using __is_valid_cmpexch_failure_order.
1813 (__atomic_base<I>::compare_exchange_strong): Likewise.
1814 (__atomic_base<P*>::compare_exchange_weak): Likewise.
1815 (__atomic_base<P*>::compare_exchange_strong): Likewise.
1816 (__atomic_impl::compare_exchange_weak): Add assertion.
1817 (__atomic_impl::compare_exchange_strong): Likewise.
1818 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
1819 (atomic::compare_exchange_strong): Likewise.
1821 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1823 * include/std/functional (invoke_r): Define.
1824 * include/std/version (__cpp_lib_invoke_r): Define.
1825 * testsuite/20_util/function_objects/invoke/version.cc: Check
1826 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
1827 * testsuite/20_util/function_objects/invoke/4.cc: New test.
1829 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1832 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
1833 Add valid range checks.
1834 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
1835 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
1837 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1839 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
1840 * configure: Regenerate.
1842 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1844 * src/c++11/system_error.cc (error_category::~error_category()):
1845 Remove noexcept-specifier.
1846 (system_error::~system_error()): Likewise.
1847 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
1848 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
1850 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1853 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
1854 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
1856 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1858 * include/experimental/internet (__make_resolver_error_code):
1859 Handle EAI_SYSTEM errors.
1860 (basic_resolver_results): Use __make_resolver_error_code. Use
1861 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
1863 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1865 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1866 Try other service if "http" fails.
1868 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1870 * testsuite/17_intro/names.cc: Undefine some more names used
1871 by Solaris system headers.
1873 2021-08-30 Jason Merrill <jason@redhat.com>
1876 * testsuite/30_threads/promise/requirements/lwg3466.cc:
1877 Remove dg-prune-outputs.
1879 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1881 * include/bits/alloc_traits.h (allocator_traits): Add explicit
1882 specialization for allocator<void>. Improve doxygen comments.
1883 * include/bits/allocator.h (allocator<void>): Restore for the
1884 versioned namespace.
1885 (allocator<void>::construct, allocator<void>::destroy): Remove.
1886 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
1887 Add default constructor and converting constructor.
1889 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1891 * include/bits/stl_uninitialized.h: Fix typo in comment.
1893 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1896 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
1897 to avoid unnecessary current_path() call.
1899 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1901 * include/bits/std_function.h (function::function(F&&)): Give
1902 name to defaulted template parameter, to improve diagnostics.
1903 Use markdown for more doxygen comments.
1905 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1907 * include/bits/std_function.h (function): Adjust doxygen
1909 * include/bits/unique_ptr.h (make_unique_for_overwrite):
1910 Change parameter name to match doxygen comment.
1912 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1914 * include/bits/std_function.h (_function_base::_Base_manager):
1915 Replace _M_init_functor with a function template using a
1916 forwarding reference, and a pair of _M_create function
1917 templates. Reuse _M_create for the clone operation.
1918 (function::_Decay_t): New alias template.
1919 (function::_Callable): Simplify by using _Decay.
1920 (function::function(F)): Change parameter to forwarding
1921 reference, as per LWG 2447. Add noexcept-specifier. Simplify
1923 (function::operator=(F&&)): Add noexcept-specifier.
1924 * testsuite/20_util/function/cons/lwg2774.cc: New test.
1925 * testsuite/20_util/function/cons/noexcept.cc: New test.
1927 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1929 * include/bits/std_function.h (function::function(F)): Add
1930 static assertions to check constructibility requirements.
1932 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1935 * configure.ac: Check for O_NONBLOCK.
1936 * configure: Regenerate.
1937 * include/experimental/internet: Include <ws2tcpip.h> for
1938 Windows. Use preprocessor conditions around more constants.
1939 * include/experimental/socket: Use preprocessor conditions
1940 around more constants.
1941 * testsuite/experimental/net/internet/resolver/base.cc: Only use
1942 constants when the corresponding C macro is defined.
1943 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
1944 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
1945 Make preprocessor checks more fine-grained.
1947 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1949 * testsuite/17_intro/names.cc: Check 'sz'.
1951 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1953 * testsuite/17_intro/names.cc: Adjust for Windows.
1955 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1957 * include/std/valarray: Uglify 'func' parameters.
1958 * testsuite/17_intro/names.cc: Add 'func' to checks.
1960 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1963 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
1964 Define macro to check conditions for optimizing trivial cases.
1965 (__check_constructible): New function to do static assert.
1966 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
1968 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1969 Adjust dg-error pattern.
1970 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
1971 C++17-specific checks from 89164_c++17.cc.
1972 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
1973 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
1975 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
1977 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
1979 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
1982 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1985 * include/ext/rope (rope::erase(size_type)): Remove broken
1988 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1990 * doc/xml/manual/status_cxx2020.xml: Update table.
1991 * doc/html/manual/status.html: Regenerate.
1993 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1995 * include/std/type_traits (is_layout_compatible): Define.
1996 (is_corresponding_member): Define.
1997 * include/std/version (__cpp_lib_is_layout_compatible): Define.
1998 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
2000 * testsuite/20_util/is_layout_compatible/value.cc: New test.
2001 * testsuite/20_util/is_layout_compatible/version.cc: New test.
2002 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
2004 * testsuite/23_containers/span/layout_compat.cc: Do not use real
2005 std::is_layout_compatible trait if available.
2007 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
2009 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
2010 explicit instantiation definitions.
2012 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2014 * include/std/ranges (basic_istream_view): Add default template
2016 * testsuite/std/ranges/istream_view.cc: Check it.
2018 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2020 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
2023 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2026 * testsuite/util/testsuite_fs.h (permissions_are_testable):
2029 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
2032 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
2033 Use new __gnu_test::permissions_are_testable() function.
2034 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2036 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2037 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2038 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2039 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2040 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2041 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2043 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2045 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2047 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2049 * testsuite/experimental/filesystem/operations/exists.cc:
2051 * testsuite/experimental/filesystem/operations/is_empty.cc:
2053 * testsuite/experimental/filesystem/operations/remove.cc:
2055 * testsuite/experimental/filesystem/operations/remove_all.cc:
2057 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2059 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
2060 New function to guess whether testing permissions will work.
2062 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2064 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
2065 * doc/html/manual/status.html: Regenerate.
2067 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2069 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
2071 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2074 * include/std/charconv (__to_chars_i): Remove redundant check.
2076 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2079 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
2080 class' move constructor. Define as defaulted for versioned
2082 * testsuite/20_util/tuple/cons/101960.cc: New test.
2084 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2087 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
2088 * doc/html/manual/status.html: Regenerate.
2090 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2092 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
2093 * include/bits/unique_ptr.h: Add @headerfile tags.
2095 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2097 * src/filesystem/ops-common.h (filesystem::file_time): Improve
2098 overflow check by using system_clock::duration::max().
2100 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2102 * include/bits/stl_tree.h: Tweak whitespace.
2104 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2106 * include/bits/unique_ptr.h (default_delete): Add @since tag.
2107 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
2108 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
2109 @param, and @returns.
2110 (_MakeUniq): Move to __detail namespace. Add alias template
2113 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2115 * include/bits/stl_function.h: Improve doxygen comments.
2117 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2119 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
2120 processing for C++20 components and components that depend on
2122 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
2123 * include/std/type_traits: Improve doxygen comments for C++20
2126 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2128 * include/ext/type_traits.h (__promote_2, __promote_3)
2129 (__promote_4): Redfine as alias templates using __promoted_t.
2130 * include/std/complex (__promote_2): Remove partial
2131 specializations for std::complex.
2133 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2135 * include/bits/stl_algo.h (min(initializer_list<T>))
2136 (min(initializer_list<T>, Compare)): Call __min_element directly to
2137 avoid redundant debug checks for valid ranges.
2138 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
2139 Likewise, for __max_element.
2140 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
2141 Likewise, for __minmax_element.
2143 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2145 * include/debug/deque (deque(size_type, const T&, const A&)):
2146 Prevent class template argument deduction and replace with a
2148 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
2150 * include/debug/list (list(size_type, const T&, const A&)):
2152 * include/debug/vector (vector(size_type, const T&, const A&)):
2155 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2157 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
2158 'std::vector<bool>::reference' as type name, not _Bit_reference.
2159 (build_libstdcxx_dictionary): Register printers for vector<bool>
2160 types in debug mode too.
2161 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
2162 output for invalid _Bit_reference. Use vector<bool>::reference
2163 instead of _Bit_reference.
2164 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2166 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
2168 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
2171 2021-08-17 Luc Michel <lmichel@kalray.eu>
2172 Marc Poulhies <mpoulhies@kalrayinc.com>
2174 * testsuite/lib/gdb-test.exp (gdb_version_check)
2175 (gdb_version_check_xmethods): Only check the GDB version for
2176 local native targets.
2178 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
2179 Jonathan Wakely <jwakely@redhat.com>
2181 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
2182 if distance is O(1).
2183 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2186 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2188 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
2189 construction from input iterators.
2191 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2193 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
2195 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2198 * include/bits/std_function.h (function(function&&)): Check for
2199 non-empty parameter before doing any work.
2201 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2203 * include/bits/cow_string.h (basic_string::contains): Do not
2204 define for -std=gnu++20.
2206 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2208 * include/bits/ranges_util.h (__not_same_as): Rename to
2210 * include/std/ranges (__not_same_as): Likewise.
2212 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2214 * include/std/utility (exchange): Add noexcept-specifier.
2215 * testsuite/20_util/exchange/noexcept.cc: New test.
2217 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2219 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
2220 (build_libstdcxx_dictionary): Register printer for
2221 std::error_code and std::error_condition.
2222 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
2224 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2227 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
2229 (print_word): Use qualified-id to access it.
2231 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2233 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
2234 Install another copy of the GDB hook.
2235 * python/Makefile.in: Regenerate.
2237 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2240 * include/c_global/cmath (hypot): Use __promoted_t.
2241 (lerp): Add new overload accepting any arithmetic types.
2242 * include/ext/type_traits.h (__promoted_t): New alias template.
2243 * testsuite/26_numerics/lerp.cc: Moved to...
2244 * testsuite/26_numerics/lerp/1.cc: ...here.
2245 * testsuite/26_numerics/lerp/constexpr.cc: New test.
2246 * testsuite/26_numerics/lerp/version.cc: New test.
2248 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2250 * testsuite/26_numerics/lerp.cc: Add header name to #error.
2251 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
2252 * testsuite/26_numerics/midpoint/version.cc: New test.
2254 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2256 * include/experimental/random (experimental::randint): Add
2257 nodiscard attribute.
2259 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2261 * src/c++98/locale_init.cc: Require C++11.
2262 * src/c++98/localename.cc: Likewise.
2263 * src/c++98/misc-inst.cc: Require C++98.
2265 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2268 * testsuite/experimental/random/randint.cc: Loop and retry if
2269 reseed() produces the same sequence.
2271 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2273 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
2274 (is_pointer_interconvertible_base_of_v)
2275 (is_pointer_interconvertible_base_of): Define for C++20.
2276 * include/std/version (__cpp_lib_is_pointer_interconvertible):
2278 * testsuite/23_containers/span/layout_compat.cc: Use correct
2279 feature test macro for std::is_layout_compatible_v.
2280 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
2281 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
2283 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2285 * include/bits/regex.h (basic_regex::transform_primary): Use
2286 _GLIBCXX_STD_C::vector for local variable.
2287 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
2288 _GLIBCXX_STD_C::vector base class of match_results.
2289 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
2290 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
2292 * include/bits/regex_compiler.h (_BracketMatcher): Use
2293 _GLIBCXX_STD_C::vector for data members.
2294 * include/bits/regex_executor.h (_Executor): Likewise.
2295 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
2297 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
2299 * include/debug/safe_container.h
2300 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
2301 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
2302 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
2304 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2306 * testsuite/23_containers/unordered_map/cons/default.cc: Add
2307 equality comparison operators to allocator.
2308 * testsuite/23_containers/unordered_set/cons/default.cc:
2311 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
2313 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
2314 dg-prune-output reason with 'builtin_unreachable'.
2315 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
2316 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
2317 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2318 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2319 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2320 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2321 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2322 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2324 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
2326 * testsuite/std/ranges/iota/max_size_type.cc: Set
2327 dg-timeout-factor to 4.
2329 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
2331 * libsupc++/compare (compare_three_way, strong_order)
2332 (weak_order, partial_order, compare_strong_order_fallback)
2333 (compare_weak_order_fallback, compare_partial_order_fallback):
2334 Move nodiscard attributes to correct location.
2336 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2339 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2340 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2341 (ranges::empty, ranges::data): Move attribute after the
2342 declarator-id instead of at the end of the declarator.
2343 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
2344 Move attributes back to the start of the function declarator,
2345 but move the requires-clause to the end.
2346 (common_iterator): Move attribute after the declarator-id.
2347 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
2348 from friend declaration that are not definitions.
2349 * include/std/ranges (views::all, views::filter)
2350 (views::transform, views::take, views::take_while,
2351 views::drop) (views::drop_while, views::join,
2352 views::lazy_split) (views::split, views::counted,
2353 views::common, views::reverse) (views::elements): Move
2354 attributes after the declarator-id.
2356 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2358 * libsupc++/compare (partial_ordering, weak_ordering)
2359 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
2360 (compare_three_way, strong_order, weak_order, partial_order)
2361 (compare_strong_order_fallback, compare_weak_order_fallback)
2362 (compare_partial_order_fallback, __detail::__synth3way): Add
2363 nodiscard attribute.
2364 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
2365 -Wno-unused-result to options.
2367 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2370 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2371 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2372 (ranges::empty, ranges::data): Move attribute to the end of
2374 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
2375 (common_iterator): Likewise for non-member operator functions.
2376 * include/std/ranges (views::all, views::filter)
2377 (views::transform, views::take, views::take_while, views::drop)
2378 (views::drop_while, views::join, views::lazy_split)
2379 (views::split, views::counted, views::common, views::reverse)
2380 (views::elements): Likewise.
2381 * testsuite/std/ranges/access/101782.cc: New test.
2383 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2385 * include/bits/forward_list.h: Add [[nodiscard]] to functions
2386 with no side-effects.
2387 * include/bits/stl_bvector.h: Likewise.
2388 * include/bits/stl_deque.h: Likewise.
2389 * include/bits/stl_list.h: Likewise.
2390 * include/bits/stl_queue.h: Likewise.
2391 * include/bits/stl_stack.h: Likewise.
2392 * include/bits/stl_vector.h: Likewise.
2393 * include/debug/deque: Likewise.
2394 * include/debug/forward_list: Likewise.
2395 * include/debug/list: Likewise.
2396 * include/debug/safe_iterator.h: Likewise.
2397 * include/debug/vector: Likewise.
2398 * include/std/array: Likewise.
2399 * testsuite/23_containers/array/creation/3_neg.cc: Use
2401 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
2403 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
2404 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
2405 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
2406 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
2408 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
2410 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2411 Adjust dg-error line numbers.
2412 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
2414 * testsuite/23_containers/deque/debug/invalidation/4.cc:
2416 * testsuite/23_containers/deque/types/1.cc: Use
2418 * testsuite/23_containers/list/types/1.cc: Cast result to void.
2419 * testsuite/23_containers/priority_queue/members/7161.cc:
2421 * testsuite/23_containers/queue/members/7157.cc: Likewise.
2422 * testsuite/23_containers/vector/59829.cc: Likewise.
2423 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
2425 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
2427 * testsuite/23_containers/vector/types/1.cc: Use
2430 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2432 * include/bits/iterator_concepts.h (iter_move): Add
2434 * include/bits/range_access.h (begin, end, cbegin, cend)
2435 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
2436 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2437 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
2438 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2439 (ranges::empty, ranges::data, ranges::cdata): Likewise.
2440 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
2441 (back_insert_iterator, front_insert_iterator, insert_iterator)
2442 (move_iterator, move_sentinel, common_iterator)
2443 (counted_iterator): Likewise.
2444 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
2446 * include/bits/stream_iterator.h (istream_iterator)
2447 (ostream_iterartor): Likewise.
2448 * include/bits/streambuf_iterator.h (istreambuf_iterator)
2449 (ostreambuf_iterator): Likewise.
2450 * include/std/ranges (views::single, views::iota, views::all)
2451 (views::filter, views::transform, views::take, views::take_while)
2452 (views::drop, views::drop_while, views::join, views::lazy_split)
2453 (views::split, views::counted, views::common, views::reverse)
2454 (views::elements): Likewise.
2455 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
2456 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
2457 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
2459 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
2460 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
2462 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2463 Cast result to void.
2464 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2466 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2468 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2470 * testsuite/23_containers/array/range_access.cc: Likewise.
2471 * testsuite/23_containers/deque/range_access.cc: Likewise.
2472 * testsuite/23_containers/forward_list/range_access.cc:
2474 * testsuite/23_containers/list/range_access.cc: Likewise.
2475 * testsuite/23_containers/map/range_access.cc: Likewise.
2476 * testsuite/23_containers/multimap/range_access.cc: Likewise.
2477 * testsuite/23_containers/multiset/range_access.cc: Likewise.
2478 * testsuite/23_containers/set/range_access.cc: Likewise.
2479 * testsuite/23_containers/unordered_map/range_access.cc:
2481 * testsuite/23_containers/unordered_multimap/range_access.cc:
2483 * testsuite/23_containers/unordered_multiset/range_access.cc:
2485 * testsuite/23_containers/unordered_set/range_access.cc:
2487 * testsuite/23_containers/vector/range_access.cc: Likewise.
2488 * testsuite/24_iterators/customization_points/iter_move.cc:
2490 * testsuite/24_iterators/istream_iterator/sentinel.cc:
2492 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
2494 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
2495 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
2496 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
2497 * testsuite/24_iterators/range_access/range_access.cc:
2499 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
2500 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
2501 * testsuite/28_regex/range_access.cc: Likewise.
2502 * testsuite/experimental/string_view/range_access/char/1.cc:
2504 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
2506 * testsuite/ext/vstring/range_access.cc: Likewise.
2507 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2508 * testsuite/std/ranges/p2259.cc: Likewise.
2510 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2512 * include/bits/random.tcc (linear_congruential_engine): Do not
2513 define static constexpr members when they are implicitly inline.
2514 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
2515 (__ratio_add, __ratio_subtract): Likewise.
2516 * include/std/type_traits (integral_constant): Likewise.
2517 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2520 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2522 * testsuite/util/testsuite_common_types.h: Replace uses of
2523 tr1::unordered_map and tr1::unordered_set with their C++11
2525 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
2526 dg-error line number.
2527 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2528 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2530 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
2532 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2534 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2536 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2539 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2541 * include/std/memory_resource (polymorphic_allocator::delete_object):
2542 Call destructor directly instead of using destroy.
2543 (allocator_traits<polymorphic_allocator<T>>): Define partial
2546 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2548 * testsuite/20_util/function_objects/binders/3113.cc: Remove
2549 trailing whitespace.
2550 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2551 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2552 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2554 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2555 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
2557 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2559 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2562 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2564 * doc/xml/manual/evolution.xml: Document deprecation.
2565 * doc/html/*: Regenerate.
2566 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
2567 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
2568 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
2570 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
2571 for C++11 and C++14 changes to std::random_shuffle and
2573 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
2574 use deprecated algorithms.
2575 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
2576 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2577 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2579 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2582 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2584 * testsuite/23_containers/forward_list/operations/3.cc:
2585 Use lambda instead of std::bind2nd.
2586 * testsuite/20_util/function_objects/binders/3113.cc: Add
2587 options for testing deprecated features.
2588 * testsuite/20_util/pair/cons/99957.cc: Likewise.
2589 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2590 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2591 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2593 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2594 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
2595 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
2596 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2597 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
2598 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
2599 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2601 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2603 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
2606 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2608 * include/bits/regex_executor.h (_State_info): Replace
2609 unique_ptr<bool[]> with array of bool.
2610 * include/bits/regex_executor.tcc: Likewise.
2611 * include/bits/regex_scanner.tcc: Replace std::strchr with
2613 * include/std/regex: Replace standard headers with smaller
2615 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
2616 <string.h> for strlen.
2617 * testsuite/28_regex/traits/char/lookup_collatename.cc:
2620 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2622 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
2623 RAII class template.
2624 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
2625 instead of unique_ptr.
2627 2021-08-02 Patrick Palka <ppalka@redhat.com>
2630 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
2631 Add missing std::move in return statement.
2632 (__partition_copy_fn::operator()): Rename templtae parameter
2633 _O2 to _Out2. Uglify function parameters out_true and out_false.
2634 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
2635 std::move to recursive call that unwraps a __normal_iterator
2637 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2638 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2640 2021-08-02 Patrick Palka <ppalka@redhat.com>
2643 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2644 the const& overload unconstrained and return a const reference
2645 as per LWG 3533. Make unconditionally noexcept.
2646 (elements_view::base): Revert accidental r12-569 change.
2647 (elements_view::_Iterator::base): Make the const& overload
2648 unconstrained and return a const reference as per LWG 3533.
2649 Make unconditionally noexcept.
2651 2021-08-02 Patrick Palka <ppalka@redhat.com>
2654 * include/std/ranges (join_view::_Iterator::_Iterator): Add
2657 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2660 * src/filesystem/ops-common.h (get_temp_directory_from_env):
2661 Add error_code parameter.
2662 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2663 argument to get_temp_directory_from_env and check it.
2664 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2666 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2668 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2669 Add dg-error for c++11_only target.
2671 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
2674 * configure.ac: Check for secure_getenv.
2675 * config.h.in: Regenerate.
2676 * configure: Regenerate.
2677 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2678 helper function to obtain path from the environment.
2679 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2680 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2681 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2682 Print messages if test cannot be run.
2683 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2684 Likewise. Fix incorrect condition. Use "TMP" to work with
2685 Windows as well as POSIX.
2687 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
2689 * src/c++17/memory_resource.cc: Use __exchange instead
2692 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2694 * include/experimental/optional (__throw_bad_optional_access):
2695 Replace GNU attribute with C++11 attribute.
2696 (optional::value, optional::value_or): Use if statements
2697 instead of conditional expressions.
2698 * include/std/optional (__throw_bad_optional_access)
2699 (optional::value, optional::value_or): Likewise.
2701 2021-07-27 Marek Polacek <polacek@redhat.com>
2705 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
2707 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2710 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2712 * include/bits/cow_string.h: Consistently use tab for
2715 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2717 * include/Makefile.am: Add new header.
2718 * include/Makefile.in: Regenerate.
2719 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2720 (basic_string): Move definition of Copy-on-Write string to
2722 * include/bits/basic_string.tcc: Likewise.
2723 * include/bits/cow_string.h: New file.
2725 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2727 * include/std/algorithm: Do not include <utility>.
2728 * include/std/functional: Likewise.
2729 * include/std/regex: Include <bits/stl_pair.h> instead of
2731 * include/debug/map.h: Likewise.
2732 * include/debug/multimap.h: Likewise.
2733 * include/debug/multiset.h: Likewise.
2734 * include/debug/set.h: Likewise.
2735 * include/debug/vector: Likewise.
2736 * include/bits/fs_path.h: Likewise.
2737 * include/bits/unique_ptr.h: Do not include <utility>.
2738 * include/experimental/any: Likewise.
2739 * include/experimental/executor: Likewise.
2740 * include/experimental/memory: Likewise.
2741 * include/experimental/optional: Likewise.
2742 * include/experimental/socket: Use __exchange instead
2744 * src/filesystem/ops-common.h: Likewise.
2745 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
2746 errors to not use a hardcoded line number.
2747 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
2748 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2749 Include <utility> for std::as_const.
2750 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2752 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2754 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2756 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
2757 Adjust dg-error line number.
2759 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2761 * include/Makefile.am: Add bits/utility.h header.
2762 * include/Makefile.in: Regenerate.
2763 * include/bits/utility.h: New file.
2764 * include/std/utility (tuple_size, tuple_element): Move
2766 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
2768 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
2769 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
2770 * include/bits/ranges_util.h: Include new header instead of
2772 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
2773 partial specializations for std::pair here.
2774 (get): Move overloads for std::pair here.
2775 * include/std/any: Include new header instead of <utility>.
2776 * include/std/array: Likewise.
2777 * include/std/memory_resource: Likewise.
2778 * include/std/optional: Likewise.
2779 * include/std/variant: Likewise.
2780 * include/std/tuple: Likewise.
2781 (__is_tuple_like_impl<tuple<T...>>): Move here.
2782 (get) Declare overloads for std::array.
2783 * include/std/version (__cpp_lib_tuples_by_type): Change type
2785 * testsuite/20_util/optional/84601.cc: Include <utility>.
2786 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2788 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2789 Adjust dg-error line numbers.
2790 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
2791 * testsuite/std/ranges/access/cend.cc: Likewise.
2792 * testsuite/std/ranges/access/end.cc: Likewise.
2793 * testsuite/std/ranges/single_view.cc: Likewise.
2795 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2797 * include/std/future: Include <bits/atomic_base.h> instead of
2800 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2802 * include/bits/stl_relops.h: Update documentation comments.
2804 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2807 * include/bits/hashtable.h (_Hashtable): Replace mixin with
2808 _Enable_default_ctor. Construct it explicitly in all
2809 non-forwarding, non-defaulted constructors.
2810 * testsuite/23_containers/unordered_map/cons/default.cc: Check
2811 non-default constructors can be used.
2812 * testsuite/23_containers/unordered_set/cons/default.cc:
2815 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
2817 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
2819 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2822 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
2823 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
2824 (allocator::allocate, allocator::deallocate): Use new macros.
2826 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2829 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
2830 constructor parameter to reference and use addressof.
2831 * testsuite/util/testsuite_iterators.h: Define deleted operator&
2832 overloads for test iterators.
2834 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2836 * include/bits/std_function.h (_Function_base): Add
2837 default member initializers and define constructor as defaulted.
2838 (function::_M_invoker): Add default member initializer.
2840 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2843 * doc/xml/manual/debug_mode.xml: Update documentation about
2844 debug capability of std::array.
2845 * doc/html/*: Regenerate.
2846 * include/debug/array: New file.
2848 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
2851 * include/ext/rope (sequence_buffer): Add move constructor and
2852 move assignment operator.
2853 * testsuite/ext/rope/101542.cc: New test.
2855 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2858 * src/c++17/fs_ops.cc (fs::create_directories): Use status
2859 instead of symlink_status.
2860 * src/filesystem/ops.cc (fs::create_directories): Likewise.
2861 * testsuite/27_io/filesystem/operations/create_directories.cc:
2862 Check symlink to existing directory.
2863 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
2864 not test with symlinks on Windows.
2865 * testsuite/experimental/filesystem/operations/create_directories.cc:
2866 Check symlink to existing directory.
2867 * testsuite/experimental/filesystem/operations/create_directory.cc:
2868 Do not test with symlinks on Windows.
2870 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2873 * include/bits/hashtable.h (_Hashtable): Conditionally delete
2874 default constructor by deriving from _Enable_special_members.
2875 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
2876 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
2878 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2881 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
2882 * testsuite/27_io/filesystem/operations/create_directory.cc:
2883 Test creating directory with name of existing symlink to
2885 * testsuite/experimental/filesystem/operations/create_directory.cc:
2888 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2890 * include/std/tuple (get<I>): Add deleted overload for bad
2892 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2895 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2897 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
2898 Use __int_traits unconditionally.
2900 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2902 * include/bits/random.h (_Shift::__value): Use constexpr.
2903 (_Select_uint_least_t::type): Use using-declaration.
2905 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2908 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2910 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
2911 instead of diagnostic pragmas.
2912 * include/bits/functional_hash.h: Likewise.
2913 * include/bits/iterator_concepts.h (__is_signed_int128)
2914 (__is_unsigned_int128): Likewise.
2915 * include/bits/max_size_type.h (__max_size_type): Likewise.
2916 (numeric_limits<__max_size_type>): Likewise.
2917 * include/bits/std_abs.h (abs): Likewise.
2918 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
2919 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2921 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
2923 * include/std/type_traits (__is_integral_helper<INT_N>)
2924 (__is_signed_integer, __is_unsigned_integer)
2925 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
2926 * include/std/limits (__INT_N): Add __extension__ keyword.
2927 * include/bits/random.h (_Select_uint_least_t)
2928 (random_device): Likewise.
2930 2021-07-16 Patrick Palka <ppalka@redhat.com>
2933 * include/std/ranges (_CachedPosition::_M_get): For non-forward
2934 ranges, just call __builtin_unreachable.
2935 * testsuite/std/ranges/istream_view.cc (test05): New test.
2937 2021-07-16 Patrick Palka <ppalka@redhat.com>
2940 * include/std/ranges (split_view::split_view): Use std::move.
2941 (split_view::_Iterator::_Iterator): Remove redundant
2942 default_initializable constraint.
2943 (split_view::_Sentinel::_Sentinel): Declare.
2944 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
2946 2021-07-16 Marek Polacek <polacek@redhat.com>
2948 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
2951 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2953 * include/bits/unique_ptr.h: Adjust doxygen markup.
2955 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2958 * include/std/type_traits: Adjust doxygen markup.
2960 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2962 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
2963 uses of non-standard integer types.
2964 * include/bits/functional_hash.h: Likewise.
2965 * include/bits/iterator_concepts.h: Likewise.
2966 * include/bits/max_size_type.h: Likewise.
2967 * include/bits/std_abs.h: Likewise.
2968 * include/bits/stl_algobase.h: Likewise.
2969 * include/bits/uniform_int_dist.h: Likewise.
2970 * include/ext/numeric_traits.h: Likewise.
2971 * include/std/type_traits: Likewise.
2973 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2976 * include/std/tuple (tuple_element): Improve static_assert text.
2977 (__get_helper): Add deleted overload.
2978 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
2979 __get_helper directly.
2980 (__get_helper2): Remove.
2981 (__find_uniq_type_in_pack): New constexpr helper function.
2982 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
2984 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2986 * testsuite/20_util/tuple/element_access/101427.cc: New test.
2988 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2991 * include/bits/c++config (__replacement_assert): Add noexcept.
2992 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
2993 instead of __replacement_assert.
2995 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
2997 * include/std/string_view (basic_string_view(It, End)): Add
2999 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
3000 Check noexcept-specifier. Also check construction without CTAD.
3002 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
3005 * include/std/string_view (ends_with): Use traits_type::compare
3008 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
3010 * include/std/string_view: Only include <bits/ranges_base.h>
3011 once, and only for C++20 and later.
3013 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
3016 * include/std/span (as_writable_bytes): Add requires-clause.
3017 * testsuite/23_containers/span/101411.cc: New test.
3019 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
3021 * include/std/mutex (__lock_impl): Check
3022 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3024 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
3027 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
3028 Remove noexcept-specifier.
3029 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
3030 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
3033 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
3035 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
3036 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
3037 Add some more predefined macros.
3038 * include/bits/fs_fwd.h: Move @addtogroup commands inside
3039 namespaces. Add better documentation.
3040 * include/bits/fs_path.h: Likewise.
3041 * include/experimental/bits/fs_fwd.h: Likewise.
3042 * include/experimental/bits/fs_path.h: Likewise.
3043 * include/ext/throw_allocator.h: Fix typo and improve docs.
3044 * include/std/chrono: Move @addtogroup commands.
3045 * include/std/system_error: Move @addtogroup commands.
3046 * libsupc++/exception: Improve documentation.
3047 * libsupc++/exception.h: Add @since documentation.
3049 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3052 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
3053 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
3054 (PREDEFINED): Add/fix some more macros that need to be expanded.
3055 * include/bits/random.h: Stop Doxygen from documenting internal
3056 implementation details.
3057 * include/bits/random.tcc: Likewise.
3058 * include/bits/this_thread_sleep.h: Fix @file name.
3059 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
3060 document internal implementation details.
3061 * include/experimental/bits/simd_detail.h: Do not document
3062 internal implementation details.
3063 * include/experimental/simd: Define Doxygen groups.
3064 * include/experimental/type_traits: Improve documentation for
3065 the header file. Define groups. Use @since commands.
3066 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
3067 declaration before undocumented region.
3068 * include/std/type_traits (true_type, false_type): Use using
3069 declaration instead of typedef.
3070 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
3071 (is_nothrow_invocable_r_v): Move definitions next to other C++17
3073 Do not document internal implementation details. Move misplaced
3074 group-end command. Define group for variable templates.
3075 * include/std/variant: Do not document internal implementation
3077 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3080 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3082 * include/experimental/simd: Do not define anything pre-C++17.
3084 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3086 * include/bits/random.tcc [__cpp_inline_variables]: Remove
3087 redundant definitions of static constexpr member variables.
3088 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3091 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3093 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
3094 explicit instantiation declarations.
3095 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
3096 explicit instantiation definitions.
3098 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3101 * testsuite/17_intro/names.cc: Fix #if condition for names used
3104 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3107 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
3108 Fail gracefully if element_type is incomplete.
3109 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
3110 the standard doesn't require this test to work for array types.
3111 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
3112 types can be used with array specialization.
3113 * testsuite/20_util/unique_ptr/101236.cc: New test.
3115 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3117 * doc/xml/manual/intro.xml: Document LWG 415 change.
3118 * doc/html/manual/bugs.html: Regenerate.
3119 * include/bits/istream.tcc (ws): Create sentry and catch
3121 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
3122 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
3124 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3126 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
3127 directly instead of using _M_write. Do setstate(__err) all
3128 outside the try-catch block.
3129 * include/std/ostream (basic_ostream::_M_write): Declare
3130 private. Use __ostream_insert. Do not define for the versioned
3133 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3135 * doc/xml/manual/intro.xml: Document LWG 581 change.
3136 * doc/html/manual/bugs.html: Regenerate.
3137 * include/bits/basic_ios.tcc: Whitespace.
3138 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
3140 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
3142 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
3144 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
3145 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
3148 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3150 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
3151 is set, not if eofbit is set.
3152 (tellp, seekp, seekp): Create sentry object. Do not set badbit
3154 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
3155 Adjust expected behaviour.
3156 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
3158 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
3160 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
3162 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
3163 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
3164 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
3165 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
3167 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3169 * include/std/syncstream (basic_syncbuf::swap()): Remove
3170 noexcept, as per LWG 3498.
3172 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3175 * testsuite/17_intro/names.cc: Undef more names for newlib and
3176 also for arm-none-linux-gnueabi.
3177 * testsuite/experimental/names.cc: Disable PCH.
3179 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
3181 * include/experimental/bits/simd.h (__bit_cast): Implement via
3182 __builtin_bit_cast #if available.
3183 (__proposed::simd_bit_cast): Add overloads for simd and
3184 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
3185 available), which return an object of the requested type with
3186 the same bits as the argument.
3187 * include/experimental/bits/simd_math.h: Use simd_bit_cast
3188 instead of __bit_cast to allow casts to fixed_size_simd.
3189 (copysign): Remove branch that was only required if __bit_cast
3190 cannot be constexpr.
3191 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
3192 from __bit_cast to __proposed::simd_bit_cast since the former
3193 will not cast fixed_size objects anymore.
3195 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3197 * include/experimental/bits/simd_math.h
3198 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
3199 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
3202 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3204 * include/experimental/bits/simd.h (__execute_on_index_sequence)
3205 (__execute_on_index_sequence_with_return)
3206 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
3209 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3211 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
3212 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
3215 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3217 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
3218 implementation doesn't require a _VecBltnBtmsk ABI tag, it
3219 requires either a 64-Byte input (in which case AVX512F must be
3220 available) or AVX512VL.
3222 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3224 * include/experimental/bits/simd_math.h: Undefine internal
3226 (frexp): Move #if to a more sensible position and reformat
3228 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
3229 duplicating the code here.
3230 (modf): Simplify condition.
3232 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3234 * include/experimental/bits/simd_math.h (fabs): Remove
3235 fabs(simd<integral>) overload.
3237 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3239 * include/experimental/bits/simd_converter.h
3240 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
3241 * include/experimental/bits/simd_fixed_size.h
3242 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
3243 arguments by const-ref.
3244 (_S_masked_unary): Pass _SimdTuple by const-ref.
3246 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3248 * include/experimental/bits/simd_fixed_size.h
3249 (_AbisInSimdTuple): Removed.
3251 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3253 * include/experimental/bits/simd.h: Add missing operator~
3254 overload for simd<floating-point> to __float_bitwise_operators.
3255 * include/experimental/bits/simd_builtin.h
3256 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
3257 implement complement for floating-point vectors.
3258 * include/experimental/bits/simd_fixed_size.h
3259 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
3260 copysign implementation of _SimdTuple members.
3261 * include/experimental/bits/simd_math.h (copysign): Call
3262 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
3263 generic copysign implementation using the new ~ operator.
3265 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3267 * testsuite/experimental/simd/README.md: Fix typos.
3269 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3271 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
3273 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
3274 conditional noexcept as per LWG 2762.
3275 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
3276 dereferencing cannot throw.
3277 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
3278 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
3279 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
3281 2021-06-23 Patrick Palka <ppalka@redhat.com>
3284 * testsuite/23_containers/multiset/cons/deduction.cc:
3285 Uncomment CTAD example that was rejected by this bug.
3286 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3288 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3290 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
3293 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3295 * testsuite/experimental/simd/README.md: New file.
3297 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3299 * testsuite/experimental/simd/driver.sh: Rewrite output
3300 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
3301 to be used twice. Add -x and -o short options. Parse long
3302 options with = instead of separating space generically. Parce
3303 contracted short options. Make unrecognized options an error.
3304 If same-line output is active, trap on EXIT to increment the
3305 progress (only with --percentage), erase the line and print the
3307 * testsuite/experimental/simd/generate_makefile.sh: Initialize
3308 helper files for progress account keeping. Update help target
3309 for changes to DRIVEROPTS.
3311 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3313 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
3314 and associated warning.
3315 * testsuite/Makefile.in: Regenerate.
3317 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
3318 Jonathan Wakely <jwakely@redhat.com>
3319 Ulrich Drepper <drepper@redhat.com>
3321 * include/std/chrono (chrono::year::is_leap()): Optimize.
3323 2021-06-23 Patrick Palka <ppalka@redhat.com>
3326 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
3328 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3329 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3330 Mention one of the replaced examples is broken due to PR101174.
3331 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3332 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
3333 ambiguous CTAD examples.
3334 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3336 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3338 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
3340 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3342 * include/std/mutex (__detail::__try_lock_impl): Rename
3343 parameter to avoid clashing with newlib's __lockable macro.
3344 (try_lock): Add 'inline' specifier.
3345 * testsuite/17_intro/names.cc: Add check for __lockable.
3346 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
3348 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3349 Matthias Kretz <m.kretz@gsi.de>
3351 * include/std/mutex (lock): Replace recursion with iteration
3352 when lockables all have the same type.
3353 (__detail::__try_lock_impl): Likewise. Pass lockables as
3354 parameters, instead of a tuple. Always lock the first one, and
3355 recurse for the rest.
3356 (__detail::__lock_impl): Adjust call to __try_lock_impl.
3357 (__detail::__try_to_lock): Remove.
3358 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
3359 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
3361 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
3363 * testsuite/30_threads/try_lock/5.cc: New test.
3365 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3367 * include/std/memory (declare_reachable, undeclare_reachable)
3368 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
3369 (pointer_safety): Only define for C++11 to C++20 inclusive.
3370 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
3372 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3374 * include/bits/random.h (seed_seq): Constrain initializer-list
3376 * include/bits/random.tcc (seed_seq): Add template parameter.
3377 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
3379 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
3382 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
3385 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
3386 Force _M_release() to wake all waiting threads.
3387 * testsuite/30_threads/semaphore/100806.cc: New test.
3389 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
3391 * include/std/mutex (__try_to_lock): Move to __detail namespace.
3392 (struct __try_lock_impl): Replace with ...
3393 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
3394 function templates to implement std::try_lock.
3395 (try_lock): Use new __try_lock_impl.
3396 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
3397 template to implement std::lock.
3398 (lock): Use __lock_impl.
3400 2021-06-21 Patrick Palka <ppalka@redhat.com>
3402 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
3404 2021-06-20 Patrick Palka <ppalka@redhat.com>
3406 * include/std/ranges (__non_propagating_cache::operator bool):
3407 Define for split_view::begin().
3408 (split_view): Define as per P2210.
3409 (views::__detail::__can_split_view): Define.
3410 (views::_Split, views::split): Define.
3411 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3413 * testsuite/std/ranges/adaptors/split.cc: New test.
3414 * testsuite/std/ranges/p2325.cc (test08a): New test.
3415 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
3417 2021-06-20 Patrick Palka <ppalka@redhat.com>
3419 * include/std/ranges: Rename views::split to views::lazy_split,
3420 split_view to lazy_split_view, etc. throughout.
3421 * testsuite/std/ranges/*: Likewise.
3422 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
3423 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
3425 2021-06-20 Patrick Palka <ppalka@redhat.com>
3427 * include/std/ranges (split_view::_OuterIter::__at_end):
3428 Check _M_trailing_empty.
3429 (split_view::_OuterIter::_M_trailing_empty): Define this
3431 (split_view::_OuterIter::operator++): Set _M_trailing_empty
3433 (split_view::_OuterIter::operator==): Compare
3435 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
3436 split parts instead of one.
3437 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
3439 2021-06-20 Patrick Palka <ppalka@redhat.com>
3441 * include/std/ranges (split_view::_InnerIter::base): Define as
3444 2021-06-19 Patrick Palka <ppalka@redhat.com>
3446 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
3447 Consider _Base instead of _Vp as per LWG 3555.
3448 (elements_view::_Iterator::_S_iter_concept): Likewise.
3450 2021-06-19 Patrick Palka <ppalka@redhat.com>
3452 * include/std/ranges (split_view::_OuterIter::value_type::begin):
3453 Remove the non-const overload, and remove the copyable constraint
3454 on the const overload as per LWG 3553.
3456 2021-06-19 Patrick Palka <ppalka@redhat.com>
3458 * include/bits/stl_iterator.h
3459 (__detail::__common_iter_use_postfix_proxy): Add
3460 move_constructible constraint as per LWG 3546.
3461 (common_iterator::__postfix_proxy): Adjust initializer of
3462 _M_keep as per LWG 3546.
3464 2021-06-18 Patrick Palka <ppalka@redhat.com>
3467 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
3468 to limit comparison complexity to 3*N/2.
3469 (__minmax_element_fn::operator()): Likewise.
3470 (shift_right): Avoid premature std::move of __result.
3471 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
3473 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
3476 2021-06-18 Patrick Palka <ppalka@redhat.com>
3478 * include/std/concepts (convertible_to): Just use declval as per
3481 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3484 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
3485 incorrect static_assert with ones matching the 'Mandates'
3486 conditions in the standard.
3487 * testsuite/26_numerics/reduce/95833.cc: New test.
3489 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3491 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
3492 diagnostic pragma to suppress -Wstringop-overread error.
3494 2021-06-18 Patrick Palka <ppalka@redhat.com>
3496 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
3497 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
3498 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
3499 * include/bits/ranges_util.h: ... here.
3500 * include/std/ranges (__detail::find, __detail::find_if)
3501 (__detail::find_if_not, __detail::mismatch): Remove.
3502 (filter_view): Use ranges::find_if instead.
3503 (drop_while_view): Use ranges::find_if_not instead.
3504 (split_view): Use ranges::find and ranges::mismatch instead.
3506 2021-06-18 Patrick Palka <ppalka@redhat.com>
3508 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
3509 default_initializable requirement.
3510 * include/bits/ranges_base.h (ranges::view): Likewise.
3511 * include/bits/ranges_util.h (subrange): Constrain the default
3513 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
3515 (front_insert_iterator): Likewise.
3516 (insert_iterator): Likewise. Remove NSDMIs.
3517 (common_iterator): Constrain the default ctor.
3518 (counted_iterator): Likewise.
3519 * include/bits/stream_iterator.h (ostream_iterator): Remove the
3521 * include/std/ranges (__detail::__box::operator=): Handle
3522 self-assignment in the primary template.
3523 (__detail::__box): In the partial specialization: adjust
3524 constraints as per P2325. Add specialized operator= for the
3525 case when the wrapped type is not copyable. Constrain the
3526 default ctor. Avoid list-initialization.
3527 (single_view): Constraint the default ctor.
3528 (iota_view): Relax semiregular constraint to copyable.
3529 Constrain the default ctor.
3530 (iota_view::_Iterator): Constraint the default ctor.
3531 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
3532 Remove redundant checks for empty _M_stream.
3533 (basic_istream_view::_Iterator): Likewise.
3534 (ref_view): Remove the default ctor. Remove NSDMIs.
3535 (ref_view::_Iterator): Constrain the default ctor.
3536 (__detail::__non_propagating_cache::operator=): Define overload
3537 for assigning from a value of the underlying type.
3538 (filter_view): Likewise.
3539 (filter_view::_Iterator): Likewise.
3540 (transform_view): Likewise.
3541 (transform_view::_Iterator): Likewise.
3542 (take_view): Likewise.
3543 (take_view::_Iterator): Likewise.
3544 (take_while_view): Likewise.
3545 (take_while_view::_Iterator): Likewise.
3546 (drop_while_view): Likewise.
3547 (drop_while_view::_Iterator): Likewise.
3548 (join_view): Likewise.
3549 (split_view::_OuterIter::__current): Adjust after changing the
3551 (split_view::_M_current): Wrap it in a __non_propagating_cache.
3552 (split_view::split_view): Constrain the default ctor.
3553 (common_view): Constrain the default ctor.
3554 (reverse_view): Likewise.
3555 (elements_view): Likewise.
3556 * include/std/span (enable_view<span<_ElementType, _Extent>>):
3557 Define this partial specialization to true unconditionally.
3558 * include/std/version (__cpp_lib_ranges): Adjust value.
3559 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
3560 Don't attempt to default construct a back_insert_iterator.
3561 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
3562 Don't attempt to default construct a front_insert_iterator.
3563 * testsuite/24_iterators/insert_iterator/constexpr.cc:
3564 Don't attempt to default construct an insert_iterator.
3565 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
3566 Remove this test for default constructibility of ostream_iterator.
3567 * testsuite/std/ranges/97600.cc: Don't attempt to default
3568 construct a basic_istream_view.
3569 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
3571 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
3572 (test02): Adjust now that __box is copyable-box not
3575 * testsuite/std/ranges/p2325.cc: New test.
3576 * testsuite/std/ranges/single_view.cc (test06): New test.
3577 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
3578 require default_initializable.
3580 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
3583 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
3584 define when is_constant_evaluated is available.
3585 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
3587 (__constant_string_p, __constant_array_p): Remove.
3588 (char_traits): Use is_constant_evaluated directly.
3589 * include/std/version (__cpp_lib_constexpr_char_traits)
3590 (__cpp_lib_constexpr_string): Only define when
3591 is_constant_evaluated is available.
3593 2021-06-17 Patrick Palka <ppalka@redhat.com>
3596 * include/std/ranges (__adaptor::_Partial): For the "simple"
3597 forwarding partial specializations, also require that
3598 the extra arguments are trivially copyable.
3599 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
3601 2021-06-17 Patrick Palka <ppalka@redhat.com>
3604 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
3605 template form of _S_has_simple_extra_args.
3606 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
3607 parameter pack. Try to treat _S_has_simple_extra_args as a
3608 variable template parameterized by _Args.
3609 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
3610 __adaptor_has_simple_extra_args.
3611 (views::_Take::_S_has_simple_extra_args): Templatize according
3612 to the type of the extra argument.
3613 (views::_Drop::_S_has_simple_extra_args): Likewise.
3614 (views::_Split::_S_has_simple_extra_args): Define.
3615 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3616 Adjust after changes to _S_has_simple_extra_args mechanism.
3619 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3621 * include/bits/iterator_concepts.h (__decay_copy): Name type.
3623 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3625 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3626 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3627 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3628 (ranges::empty, ranges::data, ranges::cdata): Remove final
3629 keywords and deleted operator& overloads.
3630 * testsuite/24_iterators/customization_points/iter_move.cc: Use
3631 new is_customization_point_object function.
3632 * testsuite/24_iterators/customization_points/iter_swap.cc:
3634 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
3636 * testsuite/std/ranges/access/begin.cc: Likewise.
3637 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3638 * testsuite/std/ranges/access/cdata.cc: Likewise.
3639 * testsuite/std/ranges/access/cend.cc: Likewise.
3640 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3641 * testsuite/std/ranges/access/crend.cc: Likewise.
3642 * testsuite/std/ranges/access/data.cc: Likewise.
3643 * testsuite/std/ranges/access/empty.cc: Likewise.
3644 * testsuite/std/ranges/access/end.cc: Likewise.
3645 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3646 * testsuite/std/ranges/access/rend.cc: Likewise.
3647 * testsuite/std/ranges/access/size.cc: Likewise.
3648 * testsuite/std/ranges/access/ssize.cc: Likewise.
3649 * testsuite/util/testsuite_iterators.h
3650 (is_customization_point_object): New function.
3652 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3654 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3655 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3656 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3657 (ranges::empty, ranges::data, ranges::cdata): Make types final.
3658 Add deleted operator& overloads.
3659 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3661 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3662 ill-formed & expressions with using-declarations. Add checks for
3663 other function objects.
3665 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3667 * include/bits/ranges_util.h (view_interface): Add noexcept to
3668 empty, operator bool, data and size members.
3669 (subrange): Add noexcept to constructors.
3670 * include/std/ranges (single_view, ref_view): Add noexcept to
3672 (views::single, views::all): Add noexcept.
3673 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3674 * testsuite/std/ranges/single_view.cc: Likewise.
3676 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3678 * include/bits/ranges_util.h (subrange): Add __size_type typedef
3679 and use it to simplify declarations.
3680 (subrange(i, s, n)): Remove assertion.
3681 * testsuite/std/ranges/subrange/constexpr.cc: New test.
3683 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3685 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3686 Replace with function object.
3687 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3688 __decay_copy unqualified.
3689 * include/bits/ranges_base.h (__member_end, __adl_end):
3690 Likewise. Use __range_iter_t for type of ranges::begin.
3691 (__member_rend): Use correct value category for rbegin argument.
3692 (__member_data): Use __decay_copy unqualified.
3693 (__begin_data): Use __range_iter_t for type of ranges::begin.
3695 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3697 * include/bits/ranges_base.h (ranges::empty): Check whether
3698 conversion to bool can throw.
3699 * testsuite/std/ranges/access/empty.cc: Check for correct
3702 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3705 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
3706 use the type if it's a reference.
3707 * testsuite/20_util/common_reference/100894.cc: New test.
3709 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3711 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3712 Add dg-require-filesystem-ts directive.
3714 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3717 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
3718 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
3720 * testsuite/20_util/any/cons/101034.cc: New test.
3722 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3724 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
3725 -std=gnu++17 option.
3727 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3730 * libsupc++/compare (compare_partial_order_fallback): Add
3731 constraint using reversed parameter order, as per LWG 3465.
3732 * testsuite/18_support/comparisons/algorithms/fallback.cc:
3733 Adjust expected result.
3735 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3737 * libsupc++/compare (__decayed_same_as): New helper concept.
3738 (strong_order, weak_order, partial_order): Constrain with new
3739 concept instead of using static_assert.
3740 (compare_strong_order_fallback, compare_weak_order_fallback)
3741 (compare_partial_order_fallback): Likewise. Do not deduce return
3742 types. Remove redundant if-constexpr checks.
3743 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
3745 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3748 * include/std/tuple: Use reserved form of attribute name.
3749 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
3750 check for no_unique_address.
3751 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
3753 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
3756 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
3758 * include/bits/fs_path.h (operator==, operator<=>): Use new
3759 _S_compare function.
3760 (path::_S_compare): New function to call path::compare in a
3761 context where path::iterator is complete.
3762 * include/experimental/bits/fs_path.h (operator<, operator==):
3763 Define after path::iterator is complete.
3764 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
3766 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3769 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
3771 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
3772 test logic with constexpr check for is_always_lock_free.
3774 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3777 * include/std/optional (optional::operator=(const optional<U>&)):
3778 Fix value category used in is_assignable check.
3779 * testsuite/20_util/optional/assignment/100982.cc: New test.
3781 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3783 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
3784 * include/bits/iterator_concepts.h (indirectly_readable_traits):
3785 Add LWG issue number to comment.
3786 * include/std/memory_resource (polymorphic_allocator::release):
3788 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
3789 dg-warning for deprecation. Also check std::allocator<void>.
3791 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3794 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
3795 Change parameter type from _Tp to _Tp*.
3796 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
3797 coverage of types tested.
3799 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3801 * include/std/barrier (__tree_barrier::_M_arrive): Remove
3802 unnecessary hasher instantiation.
3804 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
3806 * include/experimental/propagate_const (swap): Constrain.
3807 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
3809 2021-06-07 Avi Kivity <avi@scylladb.com>
3812 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
3813 Add missing typename.
3815 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
3818 * include/std/optional (operator<=>(const optional<T>& const U&)):
3819 Add missing constraint and add workaround for template
3821 * testsuite/20_util/optional/relops/three_way.cc: Check that
3822 type without equality comparison cannot be compared when wrapped
3825 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
3828 * include/bits/ranges_base.h (_SSize): Return signed type.
3829 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
3831 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3833 * include/bits/ranges_base.h (_SSize): Return the result of
3834 ranges::size converted to the wider of make-signed-like-t<S> and
3835 ptrdiff_t, rather than the ranges different type.
3836 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
3837 for an iota_view that uses an integer class type for its
3840 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3843 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
3844 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
3846 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3849 * include/bits/iterator_concepts.h (__detail::__decay_copy)
3850 (__detail::__member_begin, __detail::__adl_begin): Move to
3851 namespace ranges::__cust_access.
3852 (__detail::__ranges_begin): Likewise, and rename to __begin.
3853 Remove redundant static assertion.
3854 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
3855 Use lvalue in noexcept specifier.
3856 (__as_const): Add non-deduced parameter for value category.
3857 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
3859 (__member_size, __adl_size, __member_empty, __size0_empty):
3860 (__eq_iter_empty, __adl_data): Use lvalue objects in
3862 (__sentinel_size): Likewise. Add check for conversion to
3864 (__member_data): Allow non-lvalue types to satisfy the concept,
3865 but use lvalue object in requirements.
3866 (_Size, _SSize): Remove forwarding to always use an lvalue.
3867 (_Data): Likewise. Add static assertion for arrays.
3868 * testsuite/std/ranges/access/cdata.cc: Adjust expected
3869 behaviour for rvalues. Add negative tests for ill-formed
3871 * testsuite/std/ranges/access/data.cc: Likewise.
3872 * testsuite/std/ranges/access/empty.cc: Adjust expected
3873 behaviour for rvalues.
3874 * testsuite/std/ranges/access/size.cc: Likewise.
3876 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
3878 * include/std/any (any::_Manager::_S_access): New static
3879 function to access the contained value.
3880 (any::emplace, __any_caster): Use _S_access member of the
3883 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3885 * doc/xml/manual/status_cxx2020.xml:
3886 * doc/html/*: Regenerate.
3887 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
3889 * include/std/version (__cpp_lib_generic_unordered_lookup):
3891 * testsuite/23_containers/unordered_map/operations/1.cc: Check
3893 * testsuite/23_containers/unordered_set/operations/1.cc:
3896 2021-06-03 Patrick Palka <ppalka@redhat.com>
3898 * include/bits/ranges_algo.h (__detail::__can_reread_output):
3899 Factor out this concept from ...
3900 (__unique_copy_fn::operator()): ... here. Use the concept
3902 * testsuite/std/ranges/range.cc: Remove now ill-formed use
3903 of range_value_t on an output_range.
3904 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3905 Define value_type, pointer and reference member types to void.
3907 2021-06-03 Patrick Palka <ppalka@redhat.com>
3910 * include/std/ranges (_RangeAdaptorClosure): Document
3911 _S_has_simple_call_op mechanism.
3912 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
3913 (__closure_has_simple_call_op): New concept.
3914 (__adaptor_has_simple_extra_args): Likewise.
3915 (_Partial<_Adaptor, _Args...>): New partial specialization.
3916 (_Partial<_Adaptor, _Arg>): Likewise.
3917 (_Pipe<_Lhs, _Rhs>): Likewise.
3918 (views::_All::_S_has_simple_call_op): Define to true.
3919 (views::_Filter::_S_has_simple_extra_args): Likewise.
3920 (views::_Transform::_S_has_simple_extra_args): Likewise.
3921 (views::_Take::_S_has_simple_extra_args): Likewise.
3922 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
3923 (views::_Drop::_S_has_simple_extra_args): Likewise.
3924 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
3925 (views::_Join::_S_has_simple_call_op): Likewise.
3926 (views::_Split): Document why we don't define
3927 _S_has_simple_extra_args to true for this adaptor.
3928 (views::_Common::_S_has_simple_call_op): Define to true.
3929 (views::_Reverse::_S_has_simple_call_op): Likewise.
3930 (views::_Elements::_S_has_simple_call_op): Likewise.
3931 * testsuite/std/ranges/adaptors/100577.cc: New test.
3933 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3937 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
3938 Value-initialize subobject.
3939 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
3941 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
3944 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3947 * testsuite/23_containers/unordered_map/96088.cc: Adjust
3948 expected number of allocations.
3949 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3951 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3953 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
3954 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3955 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3956 * doc/html/*: Regenerate.
3958 2021-06-01 Patrick Palka <ppalka@redhat.com>
3961 * testsuite/23_containers/deque/allocator/default_init.cc,
3962 testsuite/23_containers/forward_list/allocator/default_init.cc,
3963 testsuite/23_containers/list/allocator/default_init.cc,
3964 testsuite/23_containers/map/allocator/default_init.cc,
3965 testsuite/23_containers/set/allocator/default_init.cc,
3966 testsuite/23_containers/vector/allocator/default_init.cc,
3967 testsuite/23_containers/vector/bool/allocator/default_init.cc:
3970 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3972 * testsuite/23_containers/unordered_map/96088.cc: Change
3973 effective target to c++17.
3974 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3976 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3978 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
3979 isblank for C++11 and later.
3981 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3984 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
3985 Fix return value for no-op case.
3986 * testsuite/24_iterators/range_operations/advance.cc: Test
3987 return values of three-argument overload.
3989 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3992 * python/Makefile.am: Use archive name for printer hook if no
3993 dynamic library name is available.
3994 * python/Makefile.in: Regenerate.
3996 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
3998 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
3999 Compilers for Linux: Compatibility with GNU Compilers" article.
4000 * doc/html/manual/abi.html: Regenerate.
4002 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
4004 * include/debug/formatter.h
4005 (_Error_formatter::_Parameter::_Named): New.
4006 (_Error_formatter::_Parameter::_Type): Inherit latter.
4007 (_Error_formatter::_Parameter::_M_integer): Likewise.
4008 (_Error_formatter::_Parameter::_M_string): Likewise.
4009 * src/c++11/debug.cc: Include <cstring>.
4010 (_Print_func_t): New.
4011 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
4012 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
4013 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
4014 (print_type): Rename in...
4015 (print_type_info): ...this. Use pretty_print.
4016 (print_address, print_integer): New.
4017 (print_named_name, print_iterator_constness, print_iterator_state): New.
4018 (print_iterator_seq_type): New.
4019 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
4020 (print_field): Use latters.
4021 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
4022 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
4023 Change signature to...
4024 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
4025 ...this and adapt. Remove intermediate buffer to render input string.
4026 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
4028 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
4031 * include/bits/ranges_base.h (advance, distance, next, prev):
4032 Replace function templates with function objects.
4033 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4034 Adjust for changes to function objects.
4035 * testsuite/std/ranges/adaptors/elements.cc: Add using
4036 declarations for names from namespace ranges.
4037 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
4038 * testsuite/24_iterators/range_operations/100768.cc: New test.
4040 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
4043 * include/bits/hashtable_policy.h (_Select2nd): New.
4044 (_NodeBuilder<>): New.
4045 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
4046 (_AllocNode<>::operator()): Likewise.
4047 * include/bits/hashtable.h
4048 (_Hashtable<>::__node_builder_t): New.
4049 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
4051 (_Hashtable<>::_S_forward_key): New.
4052 (_Hashtable<>::_M_insert): Use latter.
4053 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
4054 Instantiate node first, compute hash code second.
4055 * testsuite/23_containers/unordered_map/96088.cc: New test.
4056 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
4057 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
4058 * testsuite/23_containers/unordered_set/96088.cc: New test.
4059 * testsuite/util/replacement_memory_operators.h
4060 (counter::_M_increment): New.
4061 (counter::_M_decrement): New.
4062 (counter::reset()): New.
4064 2021-05-24 Patrick Palka <ppalka@redhat.com>
4067 * include/std/ranges (__detail::__non_propagating_cache): Move
4068 definition up to before that of _CachedPosition. Make base
4069 class _Optional_base protected instead of private. Add const
4070 overload for operator*.
4071 (__detail::_CachedPosition): Rewrite the partial specialization
4072 for forward ranges as a derived class of __non_propagating_cache.
4073 Remove the size constraint on the partial specialization for
4074 random access ranges. Add copy/move/copy-assignment/move-assignment
4075 members to the offset partial specialization for random
4076 access ranges that propagate the cached value but additionally
4077 invalidate it in the source object on move.
4078 * testsuite/std/ranges/adaptors/100479.cc: New test.
4080 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
4082 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
4083 call to ranges::next.
4084 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
4085 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
4087 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
4090 2021-05-21 Patrick Palka <ppalka@redhat.com>
4093 * include/std/ranges (drop_while_view::begin): Assert the
4094 precondition added by LWG 3490.
4096 2021-05-21 Patrick Palka <ppalka@redhat.com>
4099 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
4100 Split out this member function from ...
4101 (iota_view::_Sentinel::operator-): ... here, for sake of access
4103 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
4105 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
4107 * include/bits/random.tcc (__representable_as_double)
4108 (__p1_representable_as_double): Add "" to static asserts.
4110 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
4113 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
4114 (__glibcxx_constexpr_assert): ... this.
4115 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
4116 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
4117 or __glibcxx_assert_impl.
4118 (__glibcxx_assert_2): Remove
4119 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
4120 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
4121 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4122 Adjust expected error.
4123 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4125 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4128 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4130 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4132 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4134 * testsuite/23_containers/span/back_neg.cc: Likewise.
4135 * testsuite/23_containers/span/front_neg.cc: Likewise.
4136 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
4138 2021-05-20 Patrick Palka <ppalka@redhat.com>
4141 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
4142 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
4143 (reverse_iterator::reference): Likewise, but with iter_reference_t.
4144 (reverse_iterator::value_type): Likewise, but with iter_value_t.
4145 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
4146 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
4148 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
4151 * include/std/charconv (to_chars): Hide the overloads for
4152 floating-point types for 16 bit targets.
4153 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
4154 * testsuite/20_util/to_chars/double.cc: Run this test only on
4156 * testsuite/20_util/to_chars/float.cc: Likewise.
4157 * testsuite/20_util/to_chars/long_double.cc: Likewise.
4159 2021-05-18 Patrick Palka <ppalka@redhat.com>
4162 * include/std/ranges (elements_view::_Sentinel::operator-): Use
4163 _M_distance_from in the other operator- overload too.
4164 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
4166 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
4168 * testsuite/lib/prune.exp: Add note about 'dg-note'.
4170 2021-05-18 Patrick Palka <ppalka@redhat.com>
4173 * include/std/ranges (__box::__box): Use non-list-initialization
4174 in member initializer list of in-place constructor of the
4175 partial specialization for semiregular types.
4176 (__box::operator->): Use std::__addressof.
4177 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
4179 * testsuite/std/ranges/single_view.cc (test04): New test.
4181 2021-05-18 Patrick Palka <ppalka@redhat.com>
4184 * include/std/ranges (reverse_view::_S_needs_cached_begin):
4185 Set to true if the underlying non-common random-access range
4186 doesn't have a sized sentinel.
4188 2021-05-18 Patrick Palka <ppalka@redhat.com>
4191 * include/std/ranges (elements_view::_Iterator): Also befriend
4193 (elements_view::_Sentinel::_M_equal): Templatize.
4194 (elements_view::_Sentinel::_M_distance_from): Split out from ...
4195 (elements_view::_Sentinel::operator-): ... here. Depend on
4196 _Base2 instead of _Base in the return type.
4197 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
4200 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
4202 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
4203 until value change observed.
4204 (__waiter_base::_M_laundered): New member.
4205 (__waiter_base::_M_notify): Check _M_laundered to determine
4206 whether to wake one or all.
4207 (__detail::__atomic_compare): Return true if call to
4208 __builtin_memcmp() == 0.
4209 (__waiter_base::_S_do_spin_v): Adjust predicate.
4210 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
4213 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4216 * include/experimental/bits/fs_path.h (__is_constructible_from):
4217 Test construction from a const lvalue, not an rvalue.
4218 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
4219 * testsuite/experimental/filesystem/path/construct/100630.cc:
4222 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
4225 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
4226 Declare (but do not define) partial specialization.
4227 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
4229 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4231 * include/std/thread (jthread::_S_create): Fix static assert
4233 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
4234 * testsuite/30_threads/jthread/jthread.cc: Do not require
4235 pthread effective target.
4236 * testsuite/30_threads/jthread/2.cc: Moved to...
4237 * testsuite/30_threads/jthread/version.cc: ...here.
4239 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4241 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
4242 * doc/Makefile.in: Regenerate.
4243 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
4245 * scripts/run_doxygen (print_usage): Always print to stdout and
4247 (fail): New function for exiting on error.
4248 (parse_options): Handle --latex_cmd. Do not treat --help the
4249 same as errors. Simplify handling of required arguments.
4251 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
4253 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4254 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
4255 warnings. Replace bitwise AND with logical AND in loop
4257 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4258 Replace bitwise AND with logical AND in loop condition.
4259 * testsuite/util/pstl/test_utils.h: Remove unused parameter
4262 2021-05-11 Patrick Palka <ppalka@redhat.com>
4264 * src/c++17/ryu/LOCAL_PATCHES: Update.
4265 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
4266 Remove declarations for never-defined functions.
4267 * testsuite/20_util/to_chars/4.cc: New test.
4269 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4271 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
4272 alternative for macro.
4273 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
4275 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
4278 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4280 * include/bits/allocator.h (allocator<void>) [C++20]: Add
4281 missing noexcept to constructor. Restore missing POCMA and
4282 is_always_equal_traits.
4283 [C++17]: Make construct and destroy members private and
4284 declare allocator_traits as a friend.
4285 * include/bits/memoryfwd.h (allocator_traits): Declare.
4286 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4287 Add nodiscard attribute. Add static assertion for LWG 3307.
4288 * include/ext/new_allocator.h (new_allocator::allocate): Add
4289 static assertion for LWG 3307.
4290 * testsuite/20_util/allocator/void.cc: Check that converting
4291 constructor is noexcept. Check for propagation traits and
4292 size_type and difference_type. Check that pointer and
4293 const_pointer are gone in C++20.
4295 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4297 * include/std/stop_token: Remove TODO comment.
4299 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4301 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
4302 Initialize a non-reference deleter from an rvalue, as per LWG
4304 (__shared_ptr::_UniqCompatible): Add missing constraint.
4305 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
4306 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
4309 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4311 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
4312 -std=gnu++17 from dg-options directive.
4313 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
4315 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
4317 * testsuite/17_intro/headers/c++2017/operator_names.cc:
4319 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
4320 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
4321 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4323 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
4324 * testsuite/18_support/byte/81076.cc: Likewise.
4325 * testsuite/18_support/byte/global_neg.cc: Likewise.
4326 * testsuite/18_support/byte/ops.cc: Likewise.
4327 * testsuite/18_support/byte/requirements.cc: Likewise.
4328 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
4329 * testsuite/18_support/launder/1.cc: Likewise.
4330 * testsuite/18_support/launder/nodiscard.cc: Likewise.
4331 * testsuite/18_support/launder/requirements.cc: Likewise.
4332 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
4333 * testsuite/18_support/new_aligned.cc: Likewise.
4334 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
4336 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
4338 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
4339 * testsuite/20_util/addressof/requirements/constexpr.cc:
4341 * testsuite/20_util/as_const/1.cc: Likewise.
4342 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
4343 * testsuite/20_util/bind/83427.cc: Likewise.
4344 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
4345 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
4346 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4348 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
4350 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
4351 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
4353 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
4354 * testsuite/20_util/from_chars/requirements.cc: Likewise.
4355 * testsuite/20_util/function/91456.cc: Likewise.
4356 * testsuite/20_util/function/cons/deduction.cc: Likewise.
4357 * testsuite/20_util/function_objects/83607.cc: Likewise.
4358 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
4359 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
4360 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
4361 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
4362 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
4364 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
4366 * testsuite/20_util/has_unique_object_representations/value.cc:
4368 * testsuite/20_util/hash/nullptr.cc: Likewise.
4369 * testsuite/20_util/in_place/requirements.cc: Likewise.
4370 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
4371 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
4373 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
4375 * testsuite/20_util/is_aggregate/value.cc: Likewise.
4376 * testsuite/20_util/is_invocable/83395.cc: Likewise.
4377 * testsuite/20_util/is_invocable/91456.cc: Likewise.
4378 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
4380 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
4382 * testsuite/20_util/is_invocable/value.cc: Likewise.
4383 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
4384 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
4385 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
4386 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
4388 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
4389 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
4390 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
4392 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
4394 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
4395 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
4397 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
4399 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
4401 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
4403 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
4405 * testsuite/20_util/is_swappable/value.cc: Likewise.
4406 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
4408 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
4410 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
4411 * testsuite/20_util/logical_traits/83134.cc: Likewise.
4412 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
4414 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
4416 * testsuite/20_util/logical_traits/value.cc: Likewise.
4417 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
4418 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
4419 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
4421 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
4422 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
4423 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
4424 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
4425 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
4427 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
4429 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
4430 * testsuite/20_util/to_chars/3.cc: Likewise.
4431 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
4432 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
4433 * testsuite/20_util/to_chars/requirements.cc: Likewise.
4434 * testsuite/20_util/tuple/78939.cc: Likewise.
4435 * testsuite/20_util/tuple/apply/1.cc: Likewise.
4436 * testsuite/20_util/tuple/apply/2.cc: Likewise.
4437 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
4438 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
4439 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
4440 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
4441 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
4442 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
4443 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
4445 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
4446 * testsuite/20_util/void_t/1.cc: Likewise.
4447 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
4448 * testsuite/24_iterators/container_access.cc: Likewise.
4449 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
4451 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
4453 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4455 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
4457 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
4458 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
4460 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
4461 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
4463 * testsuite/26_numerics/lcm/1.cc: Likewise.
4464 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4465 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
4466 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
4468 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
4470 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
4472 * testsuite/27_io/types/4.cc: Likewise.
4473 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
4474 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
4475 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4477 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4479 * testsuite/20_util/function_objects/searchers.cc: Remove
4480 -std=gnu++17 from dg-options directive.
4481 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
4483 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4485 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
4487 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
4489 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
4491 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4493 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
4495 * testsuite/25_algorithms/clamp/1.cc: Likewise.
4496 * testsuite/25_algorithms/clamp/2.cc: Likewise.
4497 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
4498 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
4500 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
4502 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
4503 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
4505 * testsuite/25_algorithms/sample/1.cc: Likewise.
4506 * testsuite/25_algorithms/sample/2.cc: Likewise.
4507 * testsuite/25_algorithms/sample/3.cc: Likewise.
4508 * testsuite/25_algorithms/sample/81221.cc: Likewise.
4509 * testsuite/25_algorithms/search/searcher.cc: Likewise.
4510 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
4511 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
4512 * testsuite/26_numerics/reduce/1.cc: Likewise.
4513 * testsuite/26_numerics/reduce/2.cc: Likewise.
4514 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
4515 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
4516 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
4518 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4520 * testsuite/23_containers/array/cons/deduction.cc: Remove
4521 -std=gnu++17 from dg-options directive.
4522 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
4523 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4525 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
4527 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4529 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
4530 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
4532 * testsuite/23_containers/forward_list/cons/deduction.cc:
4534 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
4536 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
4537 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
4539 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
4540 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4541 * testsuite/23_containers/map/modifiers/insert/83226.cc:
4543 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4545 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
4546 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
4548 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4549 * testsuite/23_containers/multimap/modifiers/extract.cc:
4551 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
4552 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4553 * testsuite/23_containers/multiset/modifiers/extract.cc:
4555 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
4556 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
4557 * testsuite/23_containers/queue/deduction.cc: Likewise.
4558 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
4560 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4561 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4562 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
4563 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
4564 * testsuite/23_containers/stack/deduction.cc: Likewise.
4565 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
4567 * testsuite/23_containers/unordered_map/cons/deduction.cc:
4569 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4571 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
4573 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
4575 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
4577 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4579 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
4581 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
4583 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4585 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
4587 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
4589 * testsuite/23_containers/unordered_set/cons/deduction.cc:
4591 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4593 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
4595 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
4597 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
4598 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
4599 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
4602 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4604 * testsuite/21_strings/basic_string/79162.cc: Remove
4605 -std=gnu++17 from dg-options directive.
4606 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
4607 * testsuite/21_strings/basic_string/cons/char/79162.cc:
4609 * testsuite/21_strings/basic_string/cons/char/86138.cc:
4611 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
4612 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
4614 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
4616 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
4617 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
4619 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
4621 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
4622 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4624 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
4626 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
4627 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
4628 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
4629 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
4631 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
4633 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
4635 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
4637 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4639 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4641 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4643 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4645 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4647 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4649 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4651 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4653 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4655 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4657 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4659 * testsuite/21_strings/basic_string/operators/char/5.cc:
4661 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4663 * testsuite/21_strings/basic_string_view/capacity/1.cc:
4665 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4667 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4669 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4671 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4673 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4675 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4677 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4679 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4681 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4683 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4685 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4687 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4689 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4691 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4693 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4695 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4697 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4699 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4701 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4703 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
4705 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4707 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
4709 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4711 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
4713 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
4715 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4717 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
4718 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
4720 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
4722 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
4724 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
4726 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
4728 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
4730 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
4732 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
4734 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
4736 * testsuite/21_strings/basic_string_view/literals/types.cc:
4738 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
4740 * testsuite/21_strings/basic_string_view/literals/values.cc:
4742 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4744 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4746 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4748 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4750 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4752 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4754 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
4756 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
4758 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
4760 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
4762 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
4764 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
4766 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
4768 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
4770 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
4772 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
4774 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
4776 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
4778 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4780 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4782 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
4784 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
4786 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
4788 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
4790 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
4792 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
4794 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
4796 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
4798 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
4800 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
4802 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
4804 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
4806 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
4808 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
4810 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
4812 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
4814 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
4816 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4818 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
4820 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4822 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
4824 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
4826 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
4828 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
4830 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
4832 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4834 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4836 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4838 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4840 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4842 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4844 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4846 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4848 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
4850 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
4852 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
4853 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
4854 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
4856 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4858 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4860 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
4861 from dg-options directive.
4862 * testsuite/20_util/memory_resource/2.cc: Likewise.
4863 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
4864 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
4866 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4868 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
4870 * testsuite/20_util/monotonic_buffer_resource/release.cc:
4872 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
4874 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
4875 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
4877 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
4878 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
4879 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
4881 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
4883 * testsuite/20_util/synchronized_pool_resource/cons.cc:
4885 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
4887 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
4889 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
4891 * testsuite/20_util/synchronized_pool_resource/options.cc:
4893 * testsuite/20_util/synchronized_pool_resource/release.cc:
4895 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
4897 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
4899 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4901 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
4903 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
4905 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
4907 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
4909 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4911 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4912 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
4914 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4916 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
4918 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4919 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
4920 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4921 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
4922 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4923 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
4925 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4926 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
4928 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4929 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
4930 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4932 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
4934 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4936 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
4938 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4940 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
4942 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4944 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
4946 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4947 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
4949 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4951 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4953 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
4955 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
4956 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
4957 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
4958 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
4959 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
4960 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
4961 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
4962 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
4964 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
4966 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
4967 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
4968 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
4970 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
4971 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
4973 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
4974 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
4975 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
4976 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
4978 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4980 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
4981 dg-options directive.
4982 * testsuite/20_util/any/assign/2.cc: Likewise.
4983 * testsuite/20_util/any/assign/emplace.cc: Likewise.
4984 * testsuite/20_util/any/assign/exception.cc: Likewise.
4985 * testsuite/20_util/any/assign/self.cc: Likewise.
4986 * testsuite/20_util/any/cons/1.cc: Likewise.
4987 * testsuite/20_util/any/cons/2.cc: Likewise.
4988 * testsuite/20_util/any/cons/90415.cc: Likewise.
4989 * testsuite/20_util/any/cons/92156.cc: Likewise.
4990 * testsuite/20_util/any/cons/aligned.cc: Likewise.
4991 * testsuite/20_util/any/cons/explicit.cc: Likewise.
4992 * testsuite/20_util/any/cons/in_place.cc: Likewise.
4993 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
4994 * testsuite/20_util/any/make_any.cc: Likewise.
4995 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4996 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
4997 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
4998 * testsuite/20_util/any/misc/swap.cc: Likewise.
4999 * testsuite/20_util/any/modifiers/1.cc: Likewise.
5000 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
5001 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
5002 * testsuite/20_util/any/observers/type.cc: Likewise.
5003 * testsuite/20_util/any/requirements.cc: Likewise.
5004 * testsuite/20_util/any/typedefs.cc: Likewise.
5005 * testsuite/20_util/optional/77288.cc: Likewise.
5006 * testsuite/20_util/optional/84601.cc: Likewise.
5007 * testsuite/20_util/optional/assignment/1.cc: Likewise.
5008 * testsuite/20_util/optional/assignment/2.cc: Likewise.
5009 * testsuite/20_util/optional/assignment/3.cc: Likewise.
5010 * testsuite/20_util/optional/assignment/4.cc: Likewise.
5011 * testsuite/20_util/optional/assignment/5.cc: Likewise.
5012 * testsuite/20_util/optional/assignment/6.cc: Likewise.
5013 * testsuite/20_util/optional/assignment/7.cc: Likewise.
5014 * testsuite/20_util/optional/assignment/8.cc: Likewise.
5015 * testsuite/20_util/optional/assignment/9.cc: Likewise.
5016 * testsuite/20_util/optional/bad_access.cc: Likewise.
5017 * testsuite/20_util/optional/cons/77727.cc: Likewise.
5018 * testsuite/20_util/optional/cons/85642.cc: Likewise.
5019 * testsuite/20_util/optional/cons/copy.cc: Likewise.
5020 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
5021 * testsuite/20_util/optional/cons/default.cc: Likewise.
5022 * testsuite/20_util/optional/cons/move.cc: Likewise.
5023 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
5024 * testsuite/20_util/optional/cons/value.cc: Likewise.
5025 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
5026 * testsuite/20_util/optional/constexpr/cons/default.cc:
5028 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
5029 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
5030 * testsuite/20_util/optional/constexpr/make_optional.cc:
5032 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
5033 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
5034 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
5035 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
5036 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
5037 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
5038 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
5039 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
5040 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
5041 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
5042 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
5043 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
5044 * testsuite/20_util/optional/hash.cc: Likewise.
5045 * testsuite/20_util/optional/in_place.cc: Likewise.
5046 * testsuite/20_util/optional/make_optional.cc: Likewise.
5047 * testsuite/20_util/optional/nullopt.cc: Likewise.
5048 * testsuite/20_util/optional/observers/1.cc: Likewise.
5049 * testsuite/20_util/optional/observers/2.cc: Likewise.
5050 * testsuite/20_util/optional/observers/3.cc: Likewise.
5051 * testsuite/20_util/optional/observers/4.cc: Likewise.
5052 * testsuite/20_util/optional/observers/5.cc: Likewise.
5053 * testsuite/20_util/optional/observers/6.cc: Likewise.
5054 * testsuite/20_util/optional/relops/1.cc: Likewise.
5055 * testsuite/20_util/optional/relops/2.cc: Likewise.
5056 * testsuite/20_util/optional/relops/3.cc: Likewise.
5057 * testsuite/20_util/optional/relops/4.cc: Likewise.
5058 * testsuite/20_util/optional/relops/5.cc: Likewise.
5059 * testsuite/20_util/optional/relops/6.cc: Likewise.
5060 * testsuite/20_util/optional/relops/7.cc: Likewise.
5061 * testsuite/20_util/optional/requirements.cc: Likewise.
5062 * testsuite/20_util/optional/swap/1.cc: Likewise.
5063 * testsuite/20_util/optional/swap/2.cc: Likewise.
5064 * testsuite/20_util/optional/typedefs.cc: Likewise.
5065 * testsuite/20_util/variant/80165.cc: Likewise.
5066 * testsuite/20_util/variant/85183.cc: Likewise.
5067 * testsuite/20_util/variant/86874.cc: Likewise.
5068 * testsuite/20_util/variant/87431.cc: Likewise.
5069 * testsuite/20_util/variant/87619.cc: Likewise.
5070 * testsuite/20_util/variant/91807.cc: Likewise.
5071 * testsuite/20_util/variant/any.cc: Likewise.
5072 * testsuite/20_util/variant/compile.cc: Likewise.
5073 * testsuite/20_util/variant/deduction.cc: Likewise.
5074 * testsuite/20_util/variant/exception_safety.cc: Likewise.
5075 * testsuite/20_util/variant/hash.cc: Likewise.
5076 * testsuite/20_util/variant/index_type.cc: Likewise.
5077 * testsuite/20_util/variant/relops/89851.cc: Likewise.
5078 * testsuite/20_util/variant/relops/90008.cc: Likewise.
5079 * testsuite/20_util/variant/run.cc: Likewise.
5080 * testsuite/20_util/variant/visit.cc: Likewise.
5082 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5084 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
5085 -std=gnu++17 from dg-options directive.
5086 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
5087 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
5088 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
5089 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
5090 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
5091 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
5092 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
5093 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
5095 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
5096 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
5097 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
5098 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
5099 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
5100 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
5102 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
5103 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
5105 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
5107 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
5108 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
5109 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
5110 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
5111 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
5112 * testsuite/27_io/filesystem/operations/create_directories.cc:
5114 * testsuite/27_io/filesystem/operations/create_directory.cc:
5116 * testsuite/27_io/filesystem/operations/create_symlink.cc:
5118 * testsuite/27_io/filesystem/operations/current_path.cc:
5120 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
5121 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
5122 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
5123 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
5124 * testsuite/27_io/filesystem/operations/last_write_time.cc:
5126 * testsuite/27_io/filesystem/operations/permissions.cc:
5128 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
5129 * testsuite/27_io/filesystem/operations/read_symlink.cc:
5131 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
5132 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
5133 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
5134 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
5135 * testsuite/27_io/filesystem/operations/resize_file.cc:
5137 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
5138 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
5139 * testsuite/27_io/filesystem/operations/symlink_status.cc:
5141 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
5143 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
5145 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
5146 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
5147 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
5148 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
5149 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
5150 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5151 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
5152 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
5153 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
5154 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
5155 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
5156 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
5157 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
5158 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
5159 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
5160 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
5161 * testsuite/27_io/filesystem/path/construct/default.cc:
5163 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
5164 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
5165 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
5166 * testsuite/27_io/filesystem/path/construct/string_view.cc:
5168 * testsuite/27_io/filesystem/path/decompose/extension.cc:
5170 * testsuite/27_io/filesystem/path/decompose/filename.cc:
5172 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5174 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
5176 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
5178 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
5180 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
5182 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
5183 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
5185 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
5186 * testsuite/27_io/filesystem/path/generation/normal.cc:
5188 * testsuite/27_io/filesystem/path/generation/normal2.cc:
5190 * testsuite/27_io/filesystem/path/generation/proximate.cc:
5192 * testsuite/27_io/filesystem/path/generation/relative.cc:
5194 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
5195 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
5197 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
5198 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
5199 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5200 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
5201 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
5202 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
5203 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
5205 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
5207 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
5209 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
5211 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
5212 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
5213 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
5215 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
5216 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
5217 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
5218 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
5220 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
5221 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
5222 * testsuite/27_io/filesystem/path/query/has_extension.cc:
5224 * testsuite/27_io/filesystem/path/query/has_filename.cc:
5226 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
5228 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
5230 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
5232 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
5234 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
5236 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
5237 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
5239 * testsuite/27_io/filesystem/path/query/is_relative.cc:
5241 * testsuite/experimental/filesystem/path/construct/string_view.cc:
5244 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5246 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5247 Remove -std=gnu++17 from dg-options.
5248 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5250 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5252 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5254 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5255 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5257 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5259 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5261 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5263 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5265 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5267 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5269 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5271 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5273 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5275 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5277 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5279 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5281 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5283 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5285 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5287 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5289 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5291 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5293 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5295 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5297 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5299 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5301 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5303 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5305 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5307 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5309 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5311 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5313 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5315 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5317 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5319 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5321 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5323 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5325 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
5326 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5328 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5330 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5332 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5334 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5336 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
5337 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
5338 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
5339 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
5340 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
5341 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
5342 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
5343 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5345 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
5346 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
5347 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5349 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5352 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5354 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
5355 for additional errors in C++20.
5356 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5358 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
5359 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5361 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5363 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
5364 clash with std::any.
5366 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
5368 * include/std/istream (__rvalue_stream_extraction_t): Replace
5369 use of __rval_streamable.
5370 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
5371 (__rval_streamable): Remove.
5372 (_Require_derived_from_ios_base, __derived_from_ios_base): New
5373 helper for checking constraints.
5374 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
5375 reference to the wrong subclause of the standard.
5376 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5378 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5380 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5382 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
5384 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
5387 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5389 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
5390 Improve static_assert messages.
5391 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
5392 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
5394 2021-05-06 Patrick Palka <ppalka@redhat.com>
5396 * include/std/ranges (filter_view::_Iterator::base): Make the
5397 const& overload unconstrained and return a const reference as
5398 per LWG 3533. Make unconditionally noexcept.
5399 (transform_view::_Iterator::base): Likewise.
5400 (elements_view::_Iterator::base): Likewise.
5402 2021-05-06 Patrick Palka <ppalka@redhat.com>
5404 * include/bits/stl_iterator.h (move_iterator::base): Make the
5405 const& overload unconstrained and return a const reference as
5406 per LWG 3391. Make unconditionally noexcept.
5407 (counted_iterator::base): Likewise.
5408 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
5409 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
5410 has_member_base concept to decay-copy the result of base().
5412 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5414 * include/std/type_traits (remove_cvref_t): Define in terms of
5416 * testsuite/20_util/remove_cvref/value.cc: Check alias.
5418 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5421 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5423 * include/std/charconv (__from_chars_alnum): Pass unsigned
5424 char to std::isdigit.
5426 2021-05-05 Patrick Palka <ppalka@redhat.com>
5428 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
5429 Remove constraints on this partial specialization.
5430 * include/std/ranges (enable_borrowed_range<iota_view>):
5433 2021-05-05 Patrick Palka <ppalka@redhat.com>
5435 * include/std/ranges (transform_view::_Iterator::iter_swap):
5436 Remove as per LWG 3520.
5437 (join_view::_Iterator::iter_swap): Add indirectly_swappable
5438 constraint as per LWG 3517.
5440 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5442 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
5444 * testsuite/20_util/function_objects/invoke/version.cc: New test.
5446 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5448 * include/std/charconv (__from_chars_alnum): Pass unsigned
5449 char to std::isdigit.
5451 2021-05-05 Corentin Gay <gay@adacore.com>
5453 * acinclude.m4: Add VxWorks-specific case for the
5454 configuration of ctypes.
5455 * configure: Regenerate.
5456 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
5458 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
5459 * config/os/vxworks/ctype_configure_char.cc: Likewise.
5460 * config/os/vxworks/ctype_inline.h: Likewise.
5461 * testsuite/28_regex/traits/char/isctype.cc: Defines
5462 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
5463 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
5465 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5467 * include/std/future (promise::set_value): Check for existence
5468 of shared state before dereferncing it.
5469 (promise::set_exception, promise::set_value_at_thread_exit)
5470 (promise::set_exception_at_thread_exit): Likewise.
5471 (promise<R&>::set_value, promise<R&>::set_exception)
5472 (promise<R&>::set_value_at_thread_exit)
5473 (promise<R&>::set_exception_at_thread_exit): Likewise.
5474 (promise<void>::set_value, promise<void>::set_exception)
5475 (promise<void>::set_value_at_thread_exit)
5476 (promise<void>::set_exception_at_thread_exit): Likewise.
5477 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
5478 Remove unused variable.
5480 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5482 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
5483 Do not do arithmetic on null pointer.
5485 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5487 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
5488 (find_key_pointer(key_const_reference, false_type))
5489 (find_key_pointer(key_const_reference, true_type)): Do not
5490 dereference null pointer.
5492 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5494 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
5496 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
5497 non-zero value to null pointer.
5498 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
5499 Use past-the-end iterator for result.
5500 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
5501 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
5503 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5506 * include/std/variant (__get_t): New alias template yielding the
5507 return type of std::get<N> on a variant.
5508 (__visit_result_t): New alias template yielding the result of
5510 (__same_types): Move into namespace __detail::__variant.
5511 (__check_visitor_results): Likewise. Use __invoke_result_t and
5513 (__check_visitor_result): Remove.
5514 (visit): Use __visit_result_t for return type.
5515 * testsuite/20_util/variant/100384.cc: New test.
5517 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5519 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
5520 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
5521 * config.h.in: Regenerate.
5522 * configure: Regenerate.
5523 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
5524 * include/bits/random.h (_Select_uint_least_t<s, 1>):
5525 Use __SIZEOF_INT128__ to decide whether to use __int128.
5526 * include/std/charconv (__to_chars_unsigned_type): Likewise.
5528 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
5530 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
5531 * doc/html/manual/facets.html: Regenerate.
5533 2021-04-30 Patrick Palka <ppalka@redhat.com>
5535 * include/std/ranges (__detail::__non_propating_cache): Define
5537 (join_view): Remove constraints on the value and reference types
5538 of the wrapped iterator type as per P2328.
5539 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
5540 (join_view::_Iterator::operator++): Likewise.
5541 (join_view::_M_inner): Use __non_propating_cache as per P2328.
5542 Remove now-redundant use of __maybe_present_t.
5543 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
5546 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5548 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
5549 Only define for C++17 and later.
5550 * include/std/version (__cpp_lib_semaphore): Fix condition
5551 to match the one in <semaphore>.
5553 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5555 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
5556 * config.h.in: Regenerate.
5557 * configure: Regenerate.
5558 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
5559 * include/bits/postypes.h: Remove include of <stdint.h> and
5560 definition/undefinition of the __STDC_LIMIT_MACROS and
5561 __STDC_CONSTANT_MACROS macros.
5562 (streamoff): Use __INT64_TYPE__ if defined.
5564 2021-04-30 Patrick Palka <ppalka@redhat.com>
5566 * include/std/ranges (split_view::_InnerIter::operator++):
5567 Depend on _Base instead of _Vp directly, as per LWG 3532.
5569 2021-04-30 Patrick Palka <ppalka@redhat.com>
5571 * include/bits/ranges_util.h (subrange::subrange): Avoid
5572 list-initialization in delegating constructor.
5573 * include/std/ranges (single_view): Replace implicit guide
5574 with explicit deduction guide that decays its argument.
5575 (_Single::operator()): Avoid CTAD when constructing the
5577 (_Iota::operator()): Avoid list-initialization.
5578 (__detail::__can_filter_view, _Filter::operator()): Likewise.
5579 (__detail::__can_transform_view, _Transform::operator()): Likewise.
5580 (take_view::begin): Likewise.
5581 (__detail::__can_take_view, _Take::operator()): Likewise.
5582 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
5583 (__detail::__can_drop_view, _Drop::operator()): Likewise.
5584 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
5585 (split_view::split_view): Use views::single when initializing
5587 (__detail::__can_split_view, _Split::operator()): Avoid
5588 list-initialization.
5589 (_Counted::operator()): Likewise.
5590 * testsuite/std/ranges/p2367.cc: New test.
5592 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5595 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
5597 * include/bits/basic_string.tcc (basic_string::swap)
5598 (basic_string::assign): Likewise.
5599 * include/bits/deque.tcc (deque::operator=(const deque&)):
5601 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
5603 * include/bits/vector.tcc (vector::operator=(const vector&)):
5606 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5608 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
5610 * include/std/ostream (operator<<(Ostream&&, const x&)):
5612 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
5613 Adjust dg-error pattern.
5614 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
5616 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
5617 is_extractable trait to replace std::__is_extractable. Make it
5618 work with rvalue streams as well as lvalues, to replace f() and
5619 g() helper functions.
5620 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5622 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5623 Define is_insertable trait to replace std::__is_insertable. Make
5624 it work with rvalue streams as well as lvalues, to replace f()
5625 and g() helper functions.
5626 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5628 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
5629 errors from new constraints.
5630 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
5631 which are no longer expected to compile.
5632 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
5633 Verify LWG 1203 changes.
5635 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5638 * include/experimental/socket (__basic_socket_impl::set_option)
5639 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5640 Just set error code.
5641 * testsuite/experimental/net/socket/socket_base.cc: CHeck
5642 for <sys/socket.h> not <socket.h>.
5644 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5649 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5650 Use new effective-target keyword.
5651 * testsuite/experimental/net/internet/address/v4/cons.cc:
5653 * testsuite/experimental/net/internet/address/v4/creation.cc:
5655 * testsuite/experimental/net/internet/address/v4/members.cc:
5657 * testsuite/experimental/net/internet/address/v6/members.cc:
5659 * testsuite/experimental/net/internet/resolver/base.cc:
5661 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5663 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5665 * testsuite/experimental/net/internet/socket/opt.cc:
5667 * testsuite/experimental/net/internet/tcp.cc:
5669 * testsuite/experimental/net/internet/udp.cc:
5671 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5672 New proc to check net_ts_ip et.
5674 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5677 * testsuite/20_util/pair/requirements/structural.cc: New test.
5679 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5681 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5682 new definitions for constructors and assignment operators using
5683 concepts for constraints.
5684 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5686 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5687 expected error messages to also match C++20 errors.
5689 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5692 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5693 Combine and replace with ...
5694 (_PCC::_DeprConsPair): New SFINAE helper function.
5695 (pair): Merge preprocessor blocks so that all C++03 members
5696 are defined together at the end.
5697 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5698 Replace _T1 and _T2 parameters with __null_ptr_constant and
5700 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
5701 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
5702 * testsuite/20_util/pair/cons/99957.cc: New test.
5704 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5706 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
5707 * include/std/version (__cpp_lib_constexpr_string): Define.
5708 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5709 Check for __cpp_lib_constexpr_string.
5710 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
5712 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
5714 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5716 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
5717 dealing with errors. Use '@' to prevent shell command being
5719 * doc/Makefile.in: Regenerate.
5721 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5724 * include/bits/std_thread.h (thread::hardware_concurrency): Add
5725 missing noexcept to inline definition for non-gthreads targets.
5727 2021-04-28 Patrick Palka <ppalka@redhat.com>
5733 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
5734 the __value_comp lambda an explicit bool return type.
5735 (__is_permutation_fn::operator()): Give the __proj_scan local
5736 variable auto&& return type. Give the __comp_scan lambda an
5737 explicit bool return type.
5738 (__remove_fn::operator()): Give the __pred lambda an explicit
5740 (__partition_fn::operator()): Don't std::move __first twice
5741 when returning an empty subrange.
5742 (__min_fn::operator()): Don't std::move __comp.
5743 (__max_fn::operator()): Likewise.
5744 (__minmax_fn::operator()): Likewise.
5746 2021-04-27 Patrick Palka <ppalka@redhat.com>
5749 * include/std/ranges (join_view::_Iterator::operator++): Correct
5750 the return type of the lambda to avoid returning a copy of
5751 _M_parent->_M_inner.
5752 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
5754 2021-04-27 Jakub Jelinek <jakub@redhat.com>
5757 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5760 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5762 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5765 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5767 * include/experimental/internet (address_v6::bytes_type): Adjust
5769 (basic_endpoint): Define _M_is_v6() to put all checks for
5770 AF_INET6 in one place.
5771 (basic_endpoint::resize): Simplify.
5772 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
5773 (operator!=(const tcp&, const tcp&)): Likewise.
5774 (operator==(const udp&, const udp&)): Likewise.
5775 (operator!=(const udp&, const udp&)): Likewise.
5776 * testsuite/experimental/net/internet/tcp.cc: New test.
5777 * testsuite/experimental/net/internet/udp.cc: New test.
5779 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5782 * include/experimental/internet (resolver_errc, resolver_category())
5783 (make_error_code, make_error_condition): Define unconditionally,
5784 only make enumerators and use of gai_strerror depend on the
5785 availability of <netdb.h>.
5786 (address_v4::to_string): Use correct constant for string length.
5787 (address_v4::to_string, address_v6::to_string): Define
5788 unconditionally, throw if unsupported.
5789 (make_address_v4, make_address_v6): Define unconditionally.
5790 Return an error if unsupported.
5791 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
5793 * testsuite/experimental/net/internet/socket/opt.cc: Check for
5794 <netinet/in.h> and <netinet/tcp.h> before using types from
5797 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5800 * include/experimental/internet (resolver_base::flags):
5801 Define overloaded operators as hidden friends.
5802 * include/experimental/socket (socket_base::message_flags):
5805 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5807 * include/experimental/internet (tcp::no_delay, v6_only)
5808 (unicast::hops, multicast::hops, multicast::enable_loopback):
5809 Change access of base class and static data members. Add
5810 using-declaration for __socket_crtp::operator=(_Tp).
5811 (multicast::__mcastopt): New type.
5812 (multicast::join_group, multicast::leave_group): Derive from
5813 __mcastopt for common implementation.
5814 * include/experimental/socket: Add comment.
5815 * testsuite/experimental/net/internet/socket/opt.cc: New test.
5816 * testsuite/experimental/net/socket/socket_base.cc: Check for
5817 protected constructor/destructor of socket_base. Check for
5818 explicit constructors of socket option classes.
5820 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5822 * include/experimental/bits/net.h (__socket_base): Add
5823 bool template parameter to allow BooleanSocketOption and
5824 IntegerSocketOption to have different __socket_base<int>
5826 (__socket_base<bool>): Adjust base class.
5827 (__socket_base<int>): Add partial specialization.
5828 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
5829 * include/experimental/socket (socket_base::broadcast)
5830 (socket_base::debug, socket_base::do_not_route)
5831 (socket_base::keep_alive, socket_base::linger)
5832 (socket_base::out_of_band_inline)
5833 (socket_base::receive_buffer_size)
5834 (socket_base::receive_low_watermark)
5835 (socket_base::reuse_address, socket_base::send_buffer_size)
5836 (socket_base::send_low_watermark): Add using-declaration for
5837 __socket_crtp::operator=(_Tp).
5838 * testsuite/experimental/net/socket/socket_base.cc: Check
5839 properties of socket option types.
5841 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5843 * include/experimental/internet (resolver_base::flags): Remove
5844 enumerators. Initialize constants directly with desired values.
5845 Make all operators constexpr and noexcept.
5846 * testsuite/experimental/net/internet/resolver/base.cc: Use
5847 __gnu_test::test_bitmask_values for bitmask type. Check
5848 construction and destruction is protected.
5850 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5852 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
5854 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5857 * include/experimental/internet (net::ip::make_error_code)
5858 (net::ip::make_error_condition, net::ip::make_network_v4)
5859 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
5861 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
5863 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
5864 (add_options_for_libatomic): Use atomic_link_flags.
5866 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5869 * include/experimental/io_context (io_context): Define
5870 dummy_pollfd type so that most member functions still compile
5871 without <poll.h> and struct pollfd.
5873 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5875 * include/experimental/io_context (io_context::async_wait): Add
5877 * include/experimental/socket (basic_socket::async_connect):
5878 Cast wait_type constant to int.
5879 (basic_datagram_socket::async_receive): Likewise.
5880 (basic_datagram_socket::async_receive_from): Likewise.
5881 (basic_datagram_socket::async_send): Likewise.
5882 (basic_datagram_socket::async_send_to): Likewise.
5883 (basic_stream_socket::async_receive): Likewise.
5884 (basic_stream_socket::async_send): Likewise. Use io_context
5885 parameter directly, instead of via an executor.
5886 (basic_socket_acceptor::async_accept): Likewise.
5888 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5890 * include/experimental/socket (socket_base::shutdown_type):
5891 (socket_base::wait_type, socket_base::message_flags):
5892 Remove enumerators. Initialize constants directly with desired
5894 (socket_base::message_flags): Make all operators constexpr and
5896 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
5898 * testsuite/experimental/net/socket/socket_base.cc: New test.
5900 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
5902 * config/os/aix/atomicity.h: Delete.
5904 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5906 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
5907 Handle system_clock as well as steady_clock.
5908 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
5909 * testsuite/30_threads/semaphore/try_acquire_until.cc:
5912 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5914 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
5915 options for libatomic.
5917 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5919 * config/os/gnu-linux/os_defines.h: Fix type in comment.
5921 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5924 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
5925 is not an array type.
5926 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
5927 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
5929 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
5931 * include/bits/atomic_wait.h: Always notify waiters in the
5932 case of 'bare' address notification.
5934 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5937 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5939 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5942 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5945 * include/bits/semaphore_base.h: Remove #error.
5946 * include/std/semaphore: Do not define anything unless one of
5947 the implementations is available.
5949 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5951 * include/bits/semaphore_base.h: Always reload __old in
5952 __atomic_semaphore::_S_do_try_acquire().
5953 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5956 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
5957 Jonathan Wakely <jwakely@redhat.com>
5960 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
5961 * python/Makefile.in: Regenerate.
5963 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5965 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
5966 member to __platform_wait.
5968 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
5970 * include/std/latch: Replace tab characters in license text.
5971 * include/std/semaphore: Likewise.
5973 2021-04-21 Jakub Jelinek <jakub@redhat.com>
5976 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
5977 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
5978 * configure: Regenerated.
5979 * config.h.in: Regenerated.
5981 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5983 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
5984 test for targets not using futexes for semaphores.
5985 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5986 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5987 Disable for all targets.
5989 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
5991 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
5992 * include/Makefile.in: Regenerate.
5993 * include/bits/this_thread_sleep.h: New file.
5994 * include/bits/atomic_base.h: Adjust all calls
5995 to __atomic_wait/__atomic_notify for new call signatures.
5996 * include/bits/atomic_timed_wait.h: Extensive rewrite.
5997 * include/bits/atomic_wait.h: Likewise.
5998 * include/bits/semaphore_base.h: Adjust all calls
5999 to __atomic_wait/__atomic_notify for new call signatures.
6000 * include/std/atomic: Likewise.
6001 * include/std/barrier: Likewise.
6002 * include/std/latch: Likewise.
6003 * include/std/semaphore: Likewise.
6004 * include/std/thread (this_thread::sleep_for)
6005 (this_thread::sleep_until): Move to new header.
6006 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
6008 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6009 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6010 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6011 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
6012 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
6013 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
6015 2021-04-20 Patrick Palka <ppalka@redhat.com>
6018 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
6020 (move_iterator): Derive from the above in C++20 in order to
6021 conditionally define iterator_category as per P2259.
6022 (move_iterator::__base_cat): No longer used, so remove.
6023 (move_iterator::iterator_category): Remove in C++20.
6024 (__detail::__common_iter_use_postfix_proxy): Define.
6025 (common_iterator::_Proxy): Rename to ...
6026 (common_iterator:__arrow_proxy): ... this.
6027 (common_iterator::__postfix_proxy): Define as per P2259.
6028 (common_iterator::operator->): Adjust.
6029 (common_iterator::operator++): Adjust as per P2259.
6030 (iterator_traits<common_iterator>::_S_iter_cat): Define.
6031 (iterator_traits<common_iterator>::iterator_category): Change as
6033 (__detail::__counted_iter_value_type): Define.
6034 (__detail::__counted_iter_concept): Define.
6035 (__detail::__counted_iter_cat): Define.
6036 (counted_iterator): Derive from the above three classes in order
6037 to conditionally define value_type, iterator_concept and
6038 iterator category respectively as per P2259.
6039 (counted_iterator::operator->): Define as per P2259.
6040 (incrementable_traits<counted_iterator>): Remove as per P2259.
6041 (iterator_traits<counted_iterator>): Adjust as per P2259.
6042 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
6043 (iota_view::_Iterator): Derive from the above in order to
6044 conditionally define iterator_category as per P2259.
6045 (iota_view::_S_iter_cat): Rename to ...
6046 (iota_view::_S_iter_concept): ... this.
6047 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
6048 (iota_view::iterator_category): Remove.
6049 (__detail::__filter_view_iter_cat): Define.
6050 (filter_view::_Iterator): Derive from the above in order to
6051 conditionally define iterator_category as per P2259.
6052 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
6053 (filter_view::_Iterator::iterator_category): Remove.
6054 (transform_view::_Base): Define.
6055 (transform_view::__iter_cat): Define.
6056 (transform_view::_Iterator): Derive from the above in order to
6057 conditionally define iterator_category as per P2259.
6058 (transform_view::_Iterator::_Base): Just alias
6059 transform_view::_Base.
6060 (transform_view::_Iterator::_S_iter_cat): Move to struct
6061 transform_view::__iter_cat.
6062 (transform_view::_Iterator::iterator_category): Remove.
6063 (transform_view::_Sentinel::_Base): Just alias
6064 transform_view::_Base.
6065 (join_view::_Base): Define.
6066 (join_view::_Outer_iter): Define.
6067 (join_view::_Inner_iter): Define.
6068 (join_view::_S_ref_is_glvalue): Define.
6069 (join_view::__iter_cat): Define.
6070 (join_view::_Iterator): Derive from it in order to conditionally
6071 define iterator_category as per P2259.
6072 (join_view::_Iterator::_Base): Just alias join_view::_Base.
6073 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
6074 join_view::_S_ref_is_glvalue.
6075 (join_view::_Iterator::_S_iter_cat): Move to struct
6076 transform_view::__iter_cat.
6077 (join_view::_Iterator::_Outer_iter): Just alias
6078 join_view::_Outer_iter.
6079 (join_view::_Iterator::_Inner_iter): Just alias
6080 join_view::_Inner_iter.
6081 (join_view::_Iterator::iterator_category): Remove.
6082 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
6083 (__detail::__split_view_outer_iter_cat): Define.
6084 (__detail::__split_view_inner_iter_cat): Define.
6085 (split_view::_Base): Define.
6086 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
6087 in order to conditionally define iterator_category as per P2259.
6088 (split_view::_Outer_iter::iterator_category): Remove.
6089 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
6090 in order to conditionally define iterator_category as per P2259.
6091 (split_view::_Inner_iter::_S_iter_cat): Move to
6092 __split_view_inner_iter_cat.
6093 (split_view::_Inner_iter::iterator_category): Remove.
6094 (elements_view::_Base): Define.
6095 (elements_view::__iter_cat): Define.
6096 (elements_view::_Iterator): Derive from the above in order to
6097 conditionall define iterator_category as per P2259.
6098 (elements_view::_Iterator::_Base): Just alias
6099 elements_view::_Base.
6100 (elements_view::_Iterator::_S_iter_concept)
6101 (elements_view::_Iterator::iterator_concept): Define as per
6103 (elements_view::_Iterator::iterator_category): Remove.
6104 (elements_view::_Sentinel::_Base): Just alias
6105 elements_view::_Base.
6106 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
6107 Adjust constraints on iterator_traits<counted_iterator>.
6108 * testsuite/std/ranges/p2259.cc: New test.
6110 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
6113 * include/std/charconv (__cpp_lib_to_chars): Define
6115 * include/std/version (__cpp_lib_to_chars): Likewise..
6116 * testsuite/20_util/from_chars/4.cc: Only check feature test
6117 macro, not _GLIBCXX_HAVE_USELOCALE.
6118 * testsuite/20_util/from_chars/5.cc: Likewise.
6119 * testsuite/20_util/from_chars/6.cc: Likewise.
6120 * testsuite/20_util/to_chars/long_double.cc: Likewise.
6122 2021-04-20 Jakub Jelinek <jakub@redhat.com>
6124 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
6125 versions with _IEEE128_ substring are found, set ieee_version_found
6126 to true. Ignore missing symbols with _IEEE128_ in version name if
6127 !ieee_version_found. Use i->first as version_name instead of
6128 i->second.version_name if the latter is empty.
6129 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6131 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
6133 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
6136 2021-04-17 Jakub Jelinek <jakub@redhat.com>
6138 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
6139 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
6141 2021-04-17 Jakub Jelinek <jakub@redhat.com>
6143 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6144 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6145 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
6146 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6147 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6148 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6150 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
6152 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
6153 add libatomic options for 32-bit sparc*-*-linux-gnu.
6155 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
6158 * libsupc++/Makefile.am: Add atomicity.cc here.
6159 * src/c++98/Makefile.am: Remove it from here.
6160 * libsupc++/Makefile.in: Regenerate.
6161 * src/c++98/Makefile.in: Regenerate.
6162 * testsuite/18_support/exception_ptr/96657.cc: New test.
6164 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
6167 * include/std/bit: Only include <ext/numeric_traits.h> for
6168 hosted build, use <limits> otherwise.
6170 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
6172 * doc/xml/manual/backwards_compatibility.xml: Remove porting
6173 notes for libg++ and libstdc++-v2, and bibliography.
6174 * doc/html/*: Regenerated.
6176 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6179 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
6180 Remove helper concept.
6181 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
6182 deduction guides, as per LWG 3404.
6183 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
6184 template argument deduction fails.
6186 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6188 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
6189 Adjust expected error for C++20 mode.
6190 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
6193 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6196 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
6197 standard headers and XFAIL for effective-target c++20.
6199 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
6202 * include/debug/helper_functions.h (__can_advance(_InputIterator,
6203 const std::pair<_Diff, _Distance_precision>&, int)): New.
6204 (__can_advance(const _Safe_iterator<>&,
6205 const std::pair<_Diff, _Distance_precision>&, int)): New.
6206 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
6208 (__glibcxx_check_can_increment_range): Adapt to use latter.
6209 (__glibcxx_check_can_decrement_range): Likewise.
6210 * include/debug/safe_iterator.h
6211 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6213 (__can_advance(const _Safe_iterator<>&,
6214 const std::pair<_Diff, _Distance_precision>&, int)): New.
6215 * include/debug/safe_iterator.tcc
6216 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6218 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
6219 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
6221 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
6222 (__copy_move_backward_a): Likewise.
6223 (__equal_aux): Likewise.
6224 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
6225 const std::pair<_Diff, _Distance_precision>&, int)): New.
6226 (__can_advance(const std::move_iterator<>&,
6227 const std::pair<_Diff, _Distance_precision>&, int)): New.
6228 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
6230 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6233 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
6234 to be a valid constexpr function in C++11.
6235 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
6237 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6239 * include/bits/fs_fwd.h: Fix doxygen group command.
6240 * include/bits/streambuf_iterator.h: Likewise.
6241 * include/bits/uses_allocator_args.h: Likewise.
6242 * include/std/memory: Likewise.
6243 * include/tr1/complex: Likewise.
6245 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6247 * include/bits/basic_string.h: Tweak doxygen comment.
6249 2021-04-08 Patrick Palka <ppalka@redhat.com>
6251 * include/std/ranges (__detail::find): Define.
6252 (split_view::_OuterIter::operator++): Apply proposed resolution
6254 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
6256 2021-04-08 Patrick Palka <ppalka@redhat.com>
6258 * include/std/ranges (__detail::find_if): Simplify.
6259 (__detail::find_if_not): Likewise.
6260 (__detail::min): Remove.
6261 (__detail::mismatch): Simplify.
6262 (take_view::size): Use std::min instead of __detail::min.
6264 2021-04-08 Patrick Palka <ppalka@redhat.com>
6266 * include/std/ranges (__detail::__returnable_element): New
6268 (elements_view): Use this concept in its constraints. Add
6269 missing private access specifier.
6270 (elements_view::_S_get_element): Define as per LWG 3502.
6271 (elements_view::operator*, elements_view::operator[]): Use
6273 (elements_view::operator++): Remove unnecessary constraint
6275 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
6277 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6279 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
6280 out-of-memory error in log file.
6281 * doc/Makefile.in: Regenerate.
6283 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6285 * configure: Regenerate.
6287 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6289 * include/bits/random.h: Fix doxygen group commands.
6290 * include/bits/regex_constants.h: Likewise.
6291 * include/tr1/random.h: Likewise.
6293 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6295 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
6296 New function to determine noexcept-specifier for move
6298 (_Hashtable): Use _S_nothrow_move() on move constructors.
6299 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
6300 Correct static assertion message.
6301 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
6303 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
6305 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
6308 2021-04-08 Patrick Palka <ppalka@redhat.com>
6311 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
6312 on targets without a large long double. XFAIL the execution on
6313 targets with a non-conforming printf.
6315 2021-04-08 Patrick Palka <ppalka@redhat.com>
6318 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
6319 (__adaptor::__adaptor_invocable): New concept.
6320 (__adaptor::__adaptor_partial_app_viable): New concept.
6321 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
6322 non-template base class.
6323 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
6325 (__adaptor::_Partial): New class template that represents
6326 partial application of a range adaptor non-closure.
6327 (__adaptor::__pipe_invocable): New concept.
6328 (__adaptor::_Pipe): New class template.
6329 (__detail::__can_ref_view): New concept.
6330 (__detail::__can_subrange): New concept.
6331 (all): Replace the lambda here with ...
6332 (_All): ... this functor. Add appropriate constraints.
6333 (__detail::__can_filter_view): New concept.
6334 (filter, _Filter): As in all/_All.
6335 (__detail::__can_transform): New concept.
6336 (transform, _Transform): As in all/_All.
6337 (__detail::__can_take_view): New concept.
6338 (take, _Take): As in all/_All.
6339 (__detail::__can_take_while_view): New concept.
6340 (take_while, _TakeWhile): As in all/_All.
6341 (__detail::__can_drop_view): New concept.
6342 (drop, _Drop): As in all/_All.
6343 (__detail::__can_drop_while_view): New concept.
6344 (drop_while, _DropWhile): As in all/_All.
6345 (__detail::__can_join_view): New concept.
6346 (join, _Join): As in all/_All.
6347 (__detail::__can_split_view): New concept.
6348 (split, _Split): As in all/_All. Rename template parameter
6350 (__detail::__already_common): New concept.
6351 (__detail::__can_common_view): New concept.
6352 (common, _Common): As in all/_All.
6353 (__detail::__can_reverse_view): New concept.
6354 (reverse, _Reverse): As in all/_All.
6355 (__detail::__can_elements_view): New concept.
6356 (elements, _Elements): As in all/_All.
6357 (keys, values): Adjust.
6358 * testsuite/std/ranges/adaptors/99433.cc: New test.
6359 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
6360 adding empty range adaptor closure objects to a pipeline doesn't
6361 increase the size of the pipeline.
6363 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
6364 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
6365 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
6366 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
6367 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
6368 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
6369 * testsuite/std/ranges/adaptors/p2281.cc: New test.
6370 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
6371 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
6374 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
6375 expected error message.
6376 (test02): Likewise. Extend test.
6377 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
6378 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
6379 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
6382 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6384 * include/std/string_view: Adjust Doxygen @file comment.
6386 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6388 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
6389 specialization to not match incomplete enum types. Use a
6390 requires-expression instead of instantiating is_convertible.
6391 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
6392 * testsuite/20_util/is_scoped_enum/value.cc: Check with
6393 incomplete types and opaque-enum-declarations.
6395 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
6398 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
6399 non-const member on _M_pathname, to avoid copy-on-write.
6400 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6401 Check construction from strings that might be shared.
6403 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6405 * include/bits/move.h (forward, move, move_if_noexcept)
6406 (addressof): Add _GLIBCXX_NODISCARD.
6407 * include/bits/ranges_cmp.h (identity::operator()): Add
6408 nodiscard attribute.
6409 * include/c_global/cstddef (to_integer): Likewise.
6410 * include/std/bit (bit_cast): Likewise.
6411 * include/std/utility (as_const, to_underlying): Likewise.
6413 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6415 * include/bits/move.h (forward): Change static_assert message
6416 to be unambiguous about what must be true.
6417 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
6418 * testsuite/20_util/forward/f_neg.cc: Likewise.
6420 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6422 * include/bits/alloc_traits.h: Use markdown for code font.
6423 * include/bits/basic_string.h: Fix @param names.
6424 * include/bits/max_size_type.h: Remove period after @file.
6425 * include/bits/regex.h: Fix duplicate @retval names, and rename.
6426 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
6427 group open to match existing group close.
6428 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
6431 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6433 * include/bits/atomic_base.h: Fix doxygen group close.
6434 * include/bits/basic_ios.h: Likewise.
6435 * include/bits/forward_list.h: Likewise.
6436 * include/bits/fs_dir.h: Likewise.
6437 * include/bits/fs_ops.h: Likewise.
6438 * include/bits/fs_path.h: Likewise.
6439 * include/bits/functional_hash.h: Likewise.
6440 * include/bits/gslice.h: Likewise.
6441 * include/bits/gslice_array.h: Likewise.
6442 * include/bits/hashtable_policy.h: Likewise.
6443 * include/bits/indirect_array.h: Likewise.
6444 * include/bits/locale_classes.h: Likewise.
6445 * include/bits/locale_facets.h: Likewise.
6446 * include/bits/locale_facets_nonio.h: Likewise.
6447 * include/bits/mask_array.h: Likewise.
6448 * include/bits/refwrap.h: Likewise.
6449 * include/bits/regex.h: Likewise.
6450 * include/bits/regex_automaton.h: Likewise.
6451 * include/bits/regex_compiler.h: Likewise.
6452 * include/bits/regex_constants.h: Likewise.
6453 * include/bits/regex_error.h: Likewise.
6454 * include/bits/regex_executor.h: Likewise.
6455 * include/bits/regex_scanner.h: Likewise.
6456 * include/bits/shared_ptr.h: Likewise.
6457 * include/bits/shared_ptr_atomic.h: Likewise.
6458 * include/bits/shared_ptr_base.h: Likewise.
6459 * include/bits/slice_array.h: Likewise.
6460 * include/bits/specfun.h: Likewise.
6461 * include/bits/std_function.h: Likewise.
6462 * include/bits/std_mutex.h: Likewise.
6463 * include/bits/stl_deque.h: Likewise.
6464 * include/bits/stl_iterator.h: Likewise.
6465 * include/bits/stl_iterator_base_types.h: Likewise.
6466 * include/bits/stl_map.h: Likewise.
6467 * include/bits/stl_multimap.h: Likewise.
6468 * include/bits/stl_multiset.h: Likewise.
6469 * include/bits/stl_numeric.h: Likewise.
6470 * include/bits/stl_pair.h: Likewise.
6471 * include/bits/stl_set.h: Likewise.
6472 * include/bits/stl_uninitialized.h: Likewise.
6473 * include/bits/stream_iterator.h: Likewise.
6474 * include/bits/streambuf_iterator.h: Likewise.
6475 * include/bits/unique_ptr.h: Likewise.
6476 * include/bits/unordered_map.h: Likewise.
6477 * include/bits/unordered_set.h: Likewise.
6478 * include/decimal/decimal: Likewise.
6479 * include/experimental/any: Likewise.
6480 * include/experimental/array: Likewise.
6481 * include/experimental/bits/fs_dir.h: Likewise.
6482 * include/experimental/bits/fs_fwd.h: Likewise.
6483 * include/experimental/bits/fs_ops.h: Likewise.
6484 * include/experimental/bits/fs_path.h: Likewise.
6485 * include/experimental/buffer: Likewise.
6486 * include/experimental/internet: Likewise.
6487 * include/experimental/optional: Likewise.
6488 * include/experimental/propagate_const: Likewise.
6489 * include/experimental/socket: Likewise.
6490 * include/ext/pb_ds/assoc_container.hpp: Likewise.
6491 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
6493 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
6494 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
6495 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
6496 * include/ext/pb_ds/exception.hpp: Likewise.
6497 * include/ext/pb_ds/priority_queue.hpp: Likewise.
6498 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
6499 * include/ext/random: Likewise.
6500 * include/std/any: Likewise.
6501 * include/std/atomic: Likewise.
6502 * include/std/bitset: Likewise.
6503 * include/std/chrono: Likewise.
6504 * include/std/complex: Likewise.
6505 * include/std/condition_variable: Likewise.
6506 * include/std/fstream: Likewise.
6507 * include/std/future: Likewise.
6508 * include/std/iostream: Likewise.
6509 * include/std/istream: Likewise.
6510 * include/std/mutex: Likewise.
6511 * include/std/numeric: Likewise.
6512 * include/std/ostream: Likewise.
6513 * include/std/ratio: Likewise.
6514 * include/std/shared_mutex: Likewise.
6515 * include/std/stdexcept: Likewise.
6516 * include/std/streambuf: Likewise.
6517 * include/std/system_error: Likewise.
6518 * include/std/thread: Likewise.
6519 * include/std/valarray: Likewise.
6520 * include/std/variant: Likewise.
6521 * include/tr1/cmath: Likewise.
6522 * include/tr1/regex: Likewise.
6523 * include/tr2/dynamic_bitset: Likewise.
6524 * libsupc++/atomic_lockfree_defines.h: Likewise.
6525 * libsupc++/exception: Likewise.
6526 * libsupc++/exception.h: Likewise.
6527 * libsupc++/exception_ptr.h: Likewise.
6528 * libsupc++/nested_exception.h: Likewise.
6530 2021-03-31 Alexandre Oliva <oliva@adacore.com>
6532 * testsuite/30_threads/future/members/poll.cc: Use faster
6533 after-ready call in the calibration loop.
6535 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
6537 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
6538 * doc/html/manual/status.html: Regenerate.
6540 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
6542 * include/debug/forward_list
6543 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
6544 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
6545 call to safe container allocator aware move constructor.
6546 * include/debug/vector (vector(vector&&, const allocator_type&)):
6547 Fix noexcept qualification.
6548 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
6549 Add allocator-extended move constructor noexceot qualification check.
6550 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
6552 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
6554 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
6556 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
6557 New helper functions and callback.
6558 (random_device::_M_init): Add 'prng' and 'all' enumerators.
6559 Replace switch with fallthrough with a series of 'if' statements.
6560 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
6562 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
6564 (random_device::_M_getval): Check for callback unconditionally
6565 and always pass _M_file pointer.
6566 * testsuite/26_numerics/random/random_device/85494.cc: Remove
6567 effective-target check. Use new random_device_available helper.
6568 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
6569 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
6570 Remove effective-target check.
6571 * testsuite/26_numerics/random/random_device/cons/default.cc:
6573 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
6574 new random_device_available helper. Test "prng" token.
6575 * testsuite/util/testsuite_random.h (random_device_available):
6576 New helper function.
6578 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
6580 * include/debug/string
6581 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
6582 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
6583 (basic_string<>::erase): Adapt to take __const_iterator.
6584 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
6585 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
6586 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
6587 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
6588 (__gnu_debug::u16string, __gnu_debug::u32string): New.
6589 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
6590 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
6591 * testsuite/util/exception/safety.h
6592 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
6593 (insert_base<__gnu_debug::basic_string<>>): Likewise.
6594 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
6595 New partial specialization.
6596 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
6597 * testsuite/21_strings/basic_string/requirements/citerators.cc:
6598 Add test on __gnu_debug::string.
6599 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
6600 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
6601 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
6603 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
6605 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
6607 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
6609 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
6611 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
6613 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
6615 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
6617 2021-03-25 Jakub Jelinek <jakub@redhat.com>
6620 * testsuite/18_support/source_location/consteval.cc (main): Adjust
6621 expected column numbers.
6622 * testsuite/18_support/source_location/1.cc (main): Likewise.
6624 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6626 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
6628 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6630 * testsuite/util/exception/safety.h (setup_base::generate):
6631 Support seeding random engine.
6632 (erase_point, erase_range): Adjust range of random numbers to
6633 ensure dereferenceable iterators are used where required.
6634 (generation_prohibited::run): Do not try to erase from empty
6636 * testsuite/util/testsuite_containergen.h (test_containers):
6637 Support seeding random engine.
6639 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6641 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6642 line with a check that uses the const being/end overloads.
6644 2021-03-23 Moritz Sichert <sichert@in.tum.de>
6646 * include/std/ranges (reverse_view::begin, reverse_view::end):
6647 Qualify make_reverse_iterator calls to avoid ADL.
6648 * testsuite/std/ranges/adaptors/reverse.cc: Test that
6649 views::reverse works when make_reverse_iterator is defined
6650 in an associated namespace.
6652 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6654 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6655 Do not define when compiling with Clang.
6657 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6659 * include/std/string_view (basic_string_view(Range&&)): Define new
6660 constructor and deduction guide.
6661 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6662 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6664 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6666 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6667 Add missing 'noexcept' as per LWG 2280.
6668 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6669 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6670 * testsuite/24_iterators/range_access/range_access.cc: Check for
6671 expected noexcept specifiers. Check result types of generic
6672 std::begin and std::end overloads.
6673 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6674 Check for expected noexcept specifiers.
6675 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6678 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
6680 * include/std/type_traits (is_scoped_enum): Define.
6681 * include/std/version (__cpp_lib_is_scoped_enum): Define.
6682 * testsuite/20_util/is_scoped_enum/value.cc: New test.
6683 * testsuite/20_util/is_scoped_enum/version.cc: New test.
6685 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6688 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6689 std::once_flag symbols.
6690 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6691 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6692 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6694 * config/abi/pre/gnu.ver: Likewise.
6695 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6696 (struct __once_flag_compat): Remove.
6697 (_ZNSt9once_flag11_M_activateEv): Remove.
6698 (_ZNSt9once_flag9_M_finishEb): Remove.
6700 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6703 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
6704 Revert to pthread_once_t implementation.
6705 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
6706 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6707 (struct __once_flag_compat): New type matching the reverted
6708 implementation of once_flag using futexes.
6709 (once_flag::_M_activate): Remove, replace with ...
6710 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
6711 (once_flag::_M_finish): Remove, replace with ...
6712 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
6713 * testsuite/30_threads/call_once/66146.cc: Removed.
6715 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6717 * testsuite/17_intro/names.cc: Exclude j from the list
6718 of test symbols for Darwin.
6720 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6722 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
6723 to_chars and from_chars for long double.
6725 2021-03-15 Patrick Palka <ppalka@redhat.com>
6727 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
6729 (__max_size_type::operator++): Define.
6730 (__max_size_type::operator--): Likewise.
6731 (__max_size_type::operator<=>): Conditionally define (in place
6732 of the other comparison operators).
6733 (__max_diff_type::operator _Tp): Fix formatting.
6734 (__max_diff_type::operator++): Define.
6735 (__max_diff_type::operator--): Likewise.
6736 (__max_diff_type::operator<=>): Conditionally define (in place
6737 of the other comparison operators).
6738 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
6739 these operator overloads.
6741 2021-03-15 Caroline Tice <cmtice@google.com>
6744 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
6745 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
6746 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
6748 * src/Makefile.in: Regenerate.
6750 2021-03-11 Patrick Palka <ppalka@redhat.com>
6752 * src/c++17/floating_to_chars.cc: Simplify the file as if
6753 __SIZEOF_INT128__ is always defined.
6754 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
6755 a base-10 to_chars overload for the uint128_t class type.
6756 * src/c++17/uint128_t.h: New file.
6757 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
6758 execution FAIL on targets that have a large long double type
6761 2021-03-11 Patrick Palka <ppalka@redhat.com>
6763 * src/c++17/ryu/LOCAL_PATCHES: Update.
6764 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
6765 * src/c++17/ryu/generic_128.h: Likewise.
6766 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
6767 Use uint128_t instead of __uint128_t.
6768 (generic_binary_to_decimal): Likewise.
6770 2021-03-11 Patrick Palka <ppalka@redhat.com>
6772 * src/c++17/ryu/LOCAL_PATCHES: New file.
6774 2021-03-11 Patrick Palka <ppalka@redhat.com>
6776 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
6777 defined alias of unsigned __int128.
6778 (floating_type_traits_binary128::mantissa_t): Use uint128_t
6779 instead of unsigned __int128.
6780 (floating_type_traits<long double>::mantissa_t)
6781 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
6782 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
6783 and uint32_t explicit. Simplify the extraction of mantissa,
6784 exponent and sign bit.
6786 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6788 * include/std/barrier (barrier::arrival_token): New move-only
6789 class that encapsulates the underlying token value.
6791 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6793 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
6794 instead of unqualified() method.
6796 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6799 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
6800 Use acq_rel memory ordering.
6802 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6805 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
6806 helper function to check for permission denied errors.
6807 * src/filesystem/dir.cc (recursive_directory_iterator):
6809 * src/filesystem/dir-common.h (is_permission_denied_error): New
6812 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6815 * include/bits/random.h (normal_distribution): Use
6816 default-initializer for _M_saved and _M_saved_available.
6818 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
6820 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
6821 link with libatomic.
6822 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6823 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6824 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6825 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6826 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6827 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6828 * testsuite/30_threads/barrier/completion.cc: Likewise.
6829 * testsuite/30_threads/latch/3.cc: Likewise.
6830 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
6831 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
6832 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6834 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6837 * include/bits/align.h: Include debug/assertions.h.
6838 * include/bits/codecvt.h: Include bits/c++config.h.
6839 * include/bits/enable_special_members.h: Likewise.
6840 * include/bits/erase_if.h: Likewise.
6841 * include/bits/functional_hash.h: Include <type_traits>.
6842 * include/bits/invoke.h: Include bits/move.h.
6843 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
6844 * include/bits/parse_numbers.h: Include <type_traits>.
6845 * include/bits/predefined_ops.h: Include bits/c++config.h.
6846 * include/bits/range_access.h: Include bits/stl_iterator.h.
6847 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
6848 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
6849 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
6850 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
6851 * include/bits/unique_lock.h: Include bits/std_mutex.h.
6852 * include/debug/assertions.h: Include bits/c++config.h.
6854 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6856 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
6857 (ranges::equal_to, ranges::not_equal_to): Do not constrain
6858 with __eq_builtin_ptr_cmp.
6859 (ranges::less, ranges::greater, ranges::less_equal)
6860 (ranges::greater_equal): Do not constrain with
6861 __less_builtin_ptr_cmp.
6862 * libsupc++/compare (compare_three_way): Do not constrain with
6863 __3way_builtin_ptr_cmp.
6864 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
6865 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
6866 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
6868 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6870 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
6871 C++20 calendar types.
6873 2021-03-06 Jakub Jelinek <jakub@redhat.com>
6876 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
6877 two _Nd which the compiler can pattern match the rotates.
6879 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
6882 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
6883 Make storage larger than required. Verify no write to the last
6885 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
6888 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6890 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6891 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6893 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6894 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6897 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6899 * include/experimental/bits/simd.h: Replace reserved _X, _B by
6901 * include/experimental/bits/simd_builtin.h: Likewise.
6902 * include/experimental/bits/simd_x86.h: Likewise.
6904 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
6907 * include/std/chrono (year_month_day::_M_days_since_epoch()):
6908 Convert chrono::month and chrono::day to unsigned before
6909 converting to uint32_t.
6911 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6913 * include/std/chrono (year_month_day::_S_from_days): Perform
6914 all calculations with type uint32_t.
6916 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6918 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
6919 * doc/html/manual/abi.html: Regenerate.
6921 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6924 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
6925 FILE instead of FILE.
6927 2021-02-25 Andreas Schwab <schwab@suse.de>
6929 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6930 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
6931 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6932 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6934 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6937 * include/std/chrono (year_month_day::_S_from_days): Cast long
6940 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6942 * include/std/utility (to_underlying): Define.
6943 * include/std/version (__cpp_lib_to_underlying): Define.
6944 * testsuite/20_util/to_underlying/1.cc: New test.
6945 * testsuite/20_util/to_underlying/version.cc: New test.
6947 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6950 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
6951 before value to be printed.
6953 2021-02-24 Patrick Palka <ppalka@redhat.com>
6955 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
6956 Relax the condition that guards the printf code path to accept
6957 F128_type as well as long double.
6959 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6961 * include/std/chrono (year_month_day_last:day): New
6964 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6966 * include/std/chrono (year::is_leap): New implementation.
6967 * testsuite/std/time/year/2.cc: New test.
6969 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6971 * include/std/chrono (year_month_day::_M_days_since_epoch):
6973 * testsuite/std/time/year_month_day/4.cc: New test.
6975 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6977 * include/std/chrono (year_month_day::_S_from_days): New
6979 * testsuite/std/time/year_month_day/3.cc: New test.
6981 2021-02-24 Patrick Palka <ppalka@redhat.com>
6984 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
6985 (test01): Simplify verifying the nearby values by using a
6986 2-iteration loop and a dedicated output buffer to check that the
6987 nearby values are different. Factor out the printf-based
6988 verification into a local function, and check that the leading
6989 hex digits agree before comparing to the output of printf. Also
6990 verify the output by round-tripping it through from_chars.
6992 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6995 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
6996 symbols for long double arguments mangled as 'g'.
6997 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
6998 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
6999 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
7000 Use -mabi=ibmlongdouble for floating_to_chars.cc.
7001 * src/c++17/Makefile.in: Regenerate.
7002 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
7003 New type defining type traits of IEEE binary128 format.
7004 (floating_type_traits<__float128>): Define specialization.
7005 (floating_type_traits<long double>): Define in terms of
7006 floating_type_traits_binary128 when appropriate.
7007 (floating_to_shortest_scientific): Handle __float128.
7008 (sprintf_ld): New function template for printing a long double
7009 or __ieee128 value using sprintf.
7010 (__floating_to_chars_shortest, __floating_to_chars_precision):
7012 (to_chars): Define overloads for __float128.
7014 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
7016 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
7018 2021-02-23 Martin Sebor <msebor@redhat.com>
7021 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
7022 first argument is null.
7024 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7027 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
7030 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7033 * include/bits/char_traits.h (char_traits<char>::compare): For
7034 constexpr evaluation don't call
7035 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
7038 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7041 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
7043 2021-02-23 Patrick Palka <ppalka@redhat.com>
7046 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
7047 the high- and low-order parts from an IBM long double value
7048 in an endian-agnostic way.
7050 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
7052 * include/bits/atomic_wait.h (__thread_relax()): Call
7053 __thread_yield() not __gthread_yield().
7055 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
7057 * include/bits/atomic_wait.h (__thread_yield()): Check
7058 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
7059 (__thread_relax()): Use __thread_yield() instead of repeating
7060 the preprocessor checks for __gthread_yield.
7062 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
7064 * include/std/mutex (once_flag::_M_activate()): Add explicit
7065 return statement for passive case.
7066 (once_flag::_M_finish(bool)): Use reserved name for parameter.
7068 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
7071 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
7073 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7076 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
7078 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7080 * doc/xml/manual/status_cxx2014.xml: Document implementation
7081 specific properties of std::experimental::filesystem::rename.
7082 * doc/xml/manual/status_cxx2017.xml: Document implementation
7083 specific properties of std::filesystem::rename.
7084 * doc/html/*: Regenerate.
7085 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
7086 for directories on Windows.
7087 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
7088 MoveFileExW on Windows.
7089 * testsuite/27_io/filesystem/operations/rename.cc: New test.
7090 * testsuite/experimental/filesystem/operations/rename.cc: New test.
7092 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7094 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
7095 random number to the path.
7097 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7099 * include/experimental/internet (address_v6::to_string): Include
7101 * testsuite/experimental/net/internet/address/v6/members.cc:
7102 Test to_string() results.
7104 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7106 * include/experimental/internet (address_v6::any): Avoid using
7107 memcpy in constexpr function.
7108 (address_v6::loopback): Likewise.
7109 (make_address_v6): Fix missing return statements on error paths.
7110 * include/experimental/io_context: Avoid -Wdangling-else
7112 * testsuite/experimental/net/internet/address/v4/members.cc:
7113 Remove unused variables.
7114 * testsuite/experimental/net/internet/address/v6/members.cc:
7117 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7119 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
7120 Add unused attribute to parameter.
7121 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
7124 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7126 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
7127 if -fno-rtti is used.
7128 * testsuite/30_threads/async/forced_unwind.cc: Expect test
7129 to abort if -fno-rtti is used.
7131 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7133 * testsuite/util/testsuite_allocator.h (memory_resource):
7134 Remove requirement for RTTI and exceptions to be enabled.
7136 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7138 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
7139 static_cast when RTTI is disabled.
7140 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
7142 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
7144 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
7146 * testsuite/27_io/basic_stringstream/str/char/2.cc:
7148 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
7151 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7153 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
7154 as unused and only use dynamic_cast when RTTI is enabled.
7156 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7159 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
7160 Change int parameter to error_code, to match std::ios_failure.
7161 (__throw_ios_failure(const char*, int)): Construct error_code
7164 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
7166 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
7168 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
7169 macro instead of _GLIBCXX_EH_PTR_COMPAT.
7170 (operator==): Likewise.
7172 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
7175 * doc/xml/manual/status_cxx2011.xml: Document when support
7177 * doc/xml/manual/status_cxx2014.xml: Likewise.
7178 * doc/xml/manual/status_cxx2017.xml: Likewise.
7179 * doc/html/manual/status.html: Regenerate.
7181 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7184 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
7186 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7188 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
7189 (fs::remove): Use std::system_category() for error codes from
7191 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
7194 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7196 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
7197 in __MINGW32__ macro name.
7198 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
7199 * testsuite/27_io/filesystem/path/generation/proximate.cc:
7201 * testsuite/27_io/filesystem/path/generation/relative.cc:
7203 * testsuite/util/testsuite_fs.h: Likewise.
7205 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7207 * include/bits/stl_tree.h
7208 (__has_is_transparent, __has_is_transparent_t): Move...
7209 * include/bits/stl_function.h: ...here.
7210 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
7211 (_Hashtable_base<>::_M_equals_tr): New.
7212 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
7213 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
7214 heterogeneous lookup.
7215 (_Hashtable<>::_M_find_before_node_tr): New.
7216 (_Hashtable<>::_M_find_node_tr): New.
7217 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
7218 unordered_map::contains<>, unordered_map::equal_range<>): New member function
7219 templates to perform heterogeneous lookup.
7220 (unordered_multimap::find<>, unordered_multimap::count<>,
7221 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
7222 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
7223 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
7224 (unordered_multiset::find<>, unordered_multiset::count<>,
7225 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
7226 * include/debug/unordered_map
7227 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
7228 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
7229 * include/debug/unordered_set
7230 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
7231 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
7232 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
7233 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
7234 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
7235 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
7237 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7239 * include/bits/stl_deque.h
7240 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
7241 a null pointer test.
7243 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7245 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
7246 test directory after making it writable again.
7247 * testsuite/experimental/filesystem/operations/remove_all.cc:
7250 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7253 * include/std/coroutine (coroutine_handle<P>::from_address): Add
7256 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
7258 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
7259 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
7261 2021-02-09 Jakub Jelinek <jakub@redhat.com>
7264 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
7265 points to the characters moved by earlier _S_move, compute the source
7266 address using expression based on the __p pointer rather than __s
7269 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
7271 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
7272 Add comparison with same category and different values.
7273 * testsuite/19_diagnostics/error_code/operators/less.cc:
7274 Likewise. Fix comparison involving different categories.
7275 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
7277 * testsuite/19_diagnostics/error_condition/operators/less.cc:
7279 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
7282 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
7284 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
7285 calls with a single vaddv for aarch64.
7287 2021-02-03 Matthias Kretz <kretz@kde.org>
7289 * testsuite/Makefile.am: Warn about the workaround. Add
7290 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
7291 Improve initial user feedback from make check-simd.
7292 * testsuite/Makefile.in: Regenerated.
7294 2021-02-03 Matthias Kretz <kretz@kde.org>
7296 * include/experimental/bits/simd.h: Add __detail::_Minimum and
7297 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
7298 Add hmin and hmax overloads for simd and const_where_expression.
7299 * include/experimental/bits/simd_scalar.h
7300 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
7301 parameter const-ref to allow calling _S_reduce with an rvalue.
7302 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
7303 hmin and hmax. Since the compiler statically determined that all
7304 tests pass, repeat the test after a call to make_value_unknown.
7306 2021-02-03 Matthias Kretz <kretz@kde.org>
7308 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
7309 instruction pointer data member. Ensure that the `if (m_failed)`
7310 branch is always inlined into the calling code. The body of the
7311 conditional can still be a function call. Move the get_ip call
7312 into the verify ctor to simplify the ctor calls.
7313 (COMPARE): Don't mention the use of all_of for reduction of a
7314 simd_mask. It only distracts from the real issue.
7316 2021-02-03 Matthias Kretz <kretz@kde.org>
7318 * testsuite/experimental/simd/driver.sh: Abstract reading test
7319 options into read_src_option function. Read skip, only,
7320 expensive, and xfail via read_src_option. Add timeout and
7321 timeout-factor options and adjust timeout variable accordingly.
7322 * testsuite/experimental/simd/tests/loadstore.cc: Set
7325 2021-02-03 Matthias Kretz <kretz@kde.org>
7327 * testsuite/experimental/simd/driver.sh: When handling the pipe
7328 to log (and on verbose to stdout) count the lines. If it exceeds
7329 1000 log the issue and exit 125, which is then handled as a
7332 2021-02-03 Matthias Kretz <kretz@kde.org>
7334 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
7335 markup for long double on powerpc64*.
7337 2021-02-03 Matthias Kretz <kretz@kde.org>
7339 * include/experimental/bits/simd.h: Add __have_power10vec
7340 conditional on _ARCH_PWR10.
7341 * include/experimental/bits/simd_builtin.h: Forward declare
7342 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
7344 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
7345 _SuperImpl for optimizations and correctness.
7346 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
7347 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
7348 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
7349 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
7351 2021-02-03 Matthias Kretz <kretz@kde.org>
7353 * testsuite/experimental/simd/driver.sh: Remove executable on
7354 SIGINT. Process compiler and test executable output: In verbose
7355 mode print messages immediately, limited to 1000 lines and
7356 breaking long lines to below $COLUMNS (or 1024 if not set).
7357 Communicating the exit status of the compiler / test with the
7358 necessary pipe is done via a message through stdout/-in.
7360 2021-02-03 Matthias Kretz <kretz@kde.org>
7362 * testsuite/Makefile.am: Ensure .simd.summary is empty before
7363 collecting a new summary.
7364 * testsuite/Makefile.in: Regenerate.
7366 2021-02-03 Matthias Kretz <kretz@kde.org>
7368 * testsuite/experimental/simd/generate_makefile.sh: Use
7369 different variables internally than documented for user
7370 overrides. This makes internal append/prepend work as intended.
7372 2021-02-03 Matthias Kretz <kretz@kde.org>
7374 * testsuite/experimental/simd/driver.sh (verify_test): Print
7375 test output on run xfail. Do not repeat lines from the log that
7376 were already printed on stdout.
7377 (test_selector): Make the compiler flags pattern usable as a
7379 (toplevel): Trap on SIGINT and remove the log and sum files.
7380 Call timout with --foreground to quickly terminate on SIGINT.
7381 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
7382 targets via target patterns. Default DRIVEROPTS to -v for run
7383 targets. Remove log and sum files after completion of the run
7384 target (so that it's always recompiled).
7385 Place help text into text file for reasonable 'make help'
7388 2021-02-03 Matthias Kretz <kretz@kde.org>
7390 * include/experimental/bits/simd.h: Remove unnecessary static
7391 assertion. Allow sizeof(8) integer __intrinsic_type to enable
7392 the necessary mask type.
7394 2021-02-03 Matthias Kretz <kretz@kde.org>
7396 * include/experimental/bits/simd.h: Let __intrinsic_type<long
7397 double, N> be valid if sizeof(long double) == sizeof(double) and
7398 use a __vector double as member type.
7400 2021-02-03 Matthias Kretz <kretz@kde.org>
7402 * include/experimental/bits/simd.h (__is_intrinsic_type): New
7403 internal type trait. Alias for __is_vector_type on x86.
7404 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
7406 (__intrin_bitcast): Allow casting to & from vector & intrinsic
7408 (__intrinsic_type): Explicitly specialize for NEON intrinsic
7411 2021-02-03 Matthias Kretz <kretz@kde.org>
7413 * testsuite/experimental/simd/driver.sh: Implement skip, only,
7414 expensive, and xfail markers. They can select on type, ABI tag
7415 subset number, target-triplet, and compiler flags.
7416 * testsuite/experimental/simd/generate_makefile.sh: The summary
7417 now includes lines for unexpected passes and expected failures.
7418 If the skip or only markers are only conditional on the type, do
7419 not generate rules for those types.
7420 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
7421 for ABI tag subsets 1-9.
7422 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7423 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7424 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7425 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7426 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7427 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7428 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7429 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7430 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7431 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
7432 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7433 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7434 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7435 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7436 * testsuite/experimental/simd/tests/operators.cc: Ditto.
7437 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7438 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7439 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7440 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7441 * testsuite/experimental/simd/tests/where.cc: Ditto.
7442 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
7443 addition replace "test only floattypes" marker by unconditional
7444 "float|double|ldouble" only marker.
7445 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7446 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7447 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7449 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7450 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7451 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7452 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7453 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7454 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7455 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
7456 addition, xfail on run because the reference data is missing.
7458 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
7460 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
7461 * doc/xml/manual/status_cxx2014.xml: Likewise.
7462 * doc/xml/manual/status_cxx2017.xml: Likewise.
7463 * doc/html/manual/status.html: Regenerate.
7465 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
7468 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
7469 Return 0 if both iterators are value-initialized.
7470 * testsuite/23_containers/deque/70303.cc: New test.
7471 * testsuite/23_containers/vector/70303.cc: New test.
7473 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
7475 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
7477 * doc/xml/manual/status_cxx2014.xml: Likewise.
7478 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
7479 std::from_chars and std::to_chars status. Fix formatting.
7480 * doc/html/manual/status.html: Regenerate.
7482 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
7484 * include/experimental/bits/numeric_traits.h: Update copyright
7486 * include/experimental/bits/simd.h: Likewise.
7487 * include/experimental/bits/simd_builtin.h: Likewise.
7488 * include/experimental/bits/simd_converter.h: Likewise.
7489 * include/experimental/bits/simd_detail.h: Likewise.
7490 * include/experimental/bits/simd_fixed_size.h: Likewise.
7491 * include/experimental/bits/simd_math.h: Likewise.
7492 * include/experimental/bits/simd_neon.h: Likewise.
7493 * include/experimental/bits/simd_ppc.h: Likewise.
7494 * include/experimental/bits/simd_scalar.h: Likewise.
7495 * include/experimental/bits/simd_x86.h: Likewise.
7496 * include/experimental/bits/simd_x86_conversions.h: Likewise.
7497 * include/experimental/simd: Likewise.
7498 * testsuite/experimental/simd/*: Likewise.
7500 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7502 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
7503 * doc/html/*: Regenerate.
7505 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7507 * testsuite/experimental/simd/generate_makefile.sh: Use printf
7508 instead of echo when printing escape characters.
7510 2021-01-27 Matthias Kretz <kretz@kde.org>
7512 * scripts/check_simd: New file. This script is called from the
7513 the check-simd target. It determines a set of compiler flags and
7514 simulator setups for calling generate_makefile.sh and passes the
7515 information back to the check-simd target, which recurses to the
7516 generated Makefiles.
7517 * scripts/create_testsuite_files: Remove files below simd/tests/
7518 from testsuite_files and place them in testsuite_files_simd.
7519 * testsuite/Makefile.am: Add testsuite_files_simd. Add
7521 * testsuite/Makefile.in: Regenerate.
7522 * testsuite/experimental/simd/driver.sh: New file. This script
7523 compiles and runs a given simd test, logging its output and
7524 status. It uses the timeout command to implement compile and
7526 * testsuite/experimental/simd/generate_makefile.sh: New file.
7527 This script generates a Makefile which uses driver.sh to compile
7528 and run the tests and collect the logs into a single log file.
7529 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
7531 * testsuite/experimental/simd/tests/algorithms.cc: New file.
7532 Tests min/max(simd, simd).
7533 * testsuite/experimental/simd/tests/bits/conversions.h: New
7534 file. Contains functions to support tests involving conversions.
7535 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
7536 Support functions make_mask and make_vec.
7537 * testsuite/experimental/simd/tests/bits/mathreference.h: New
7538 file. Support functions to supply precomputed math function
7540 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
7541 file. Support code for SFINAE testing.
7542 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
7543 * testsuite/experimental/simd/tests/bits/test_values.h: New
7544 file. Test functions to easily drive a test with simd objects
7545 initialized from a given list of values and a range of random
7547 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
7548 Support code to determine the ULP distance of simd objects.
7549 * testsuite/experimental/simd/tests/bits/verify.h: New file.
7550 Test framework for COMPARE'ing simd objects and instantiating
7551 the test templates with value_type and ABI tag.
7552 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
7554 * testsuite/experimental/simd/tests/casts.cc: New file. Test
7556 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
7557 Test floating-point classification functions.
7558 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
7560 * testsuite/experimental/simd/tests/generator.cc: New file. Test
7561 simd generator constructor.
7562 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
7563 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
7564 * testsuite/experimental/simd/tests/integer_operators.cc: New
7565 file. Test integer operators.
7566 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7567 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
7569 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
7570 (converting) simd loads and stores.
7571 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
7573 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
7574 Test simd_mask broadcasts.
7575 * testsuite/experimental/simd/tests/mask_conversions.cc: New
7576 file. Test simd_mask conversions.
7577 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
7578 file. Test simd_mask implicit conversions.
7579 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
7580 Test simd_mask loads and stores.
7581 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
7582 file. Test simd_mask operators convert as specified.
7583 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
7584 Test simd_mask compares, subscripts, and negation.
7585 * testsuite/experimental/simd/tests/mask_reductions.cc: New
7586 file. Test simd_mask reductions.
7587 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
7588 1-arg math functions on simd.
7589 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
7590 2-arg math functions on simd.
7591 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
7592 Test implicit conversions on simd binary operators behave as
7594 * testsuite/experimental/simd/tests/operators.cc: New file. Test
7595 simd compares, subscripts, not, unary minus, plus, minus,
7596 multiplies, divides, increment, and decrement.
7597 * testsuite/experimental/simd/tests/reductions.cc: New file.
7599 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
7601 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
7602 sanity checks of simd types.
7603 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
7604 sin(simd) and cos(simd).
7605 * testsuite/experimental/simd/tests/split_concat.cc: New file.
7606 Test split(simd) and concat(simd, simd).
7607 * testsuite/experimental/simd/tests/splits.cc: New file. Test
7609 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
7610 Test remaining trigonometric functions on simd.
7611 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
7612 file. Test trunc(simd), ceil(simd), and floor(simd).
7613 * testsuite/experimental/simd/tests/where.cc: New file. Test
7614 masked operations using where.
7616 2021-01-27 Matthias Kretz <kretz@kde.org>
7618 * doc/xml/manual/status_cxx2017.xml: Add implementation status
7619 of the Parallelism TS 2. Document implementation-defined types
7621 * include/Makefile.am: Add new headers.
7622 * include/Makefile.in: Regenerate.
7623 * include/experimental/simd: New file. New header for
7625 * include/experimental/bits/numeric_traits.h: New file.
7626 Implementation of P1841R1 using internal naming. Addition of
7627 missing IEC559 functionality query.
7628 * include/experimental/bits/simd.h: New file. Definition of the
7629 public simd interfaces and general implementation helpers.
7630 * include/experimental/bits/simd_builtin.h: New file.
7631 Implementation of the _VecBuiltin simd_abi.
7632 * include/experimental/bits/simd_converter.h: New file. Generic
7634 * include/experimental/bits/simd_detail.h: New file. Internal
7635 macros for the simd implementation.
7636 * include/experimental/bits/simd_fixed_size.h: New file. Simd
7637 fixed_size ABI specific implementations.
7638 * include/experimental/bits/simd_math.h: New file. Math
7640 * include/experimental/bits/simd_neon.h: New file. Simd NEON
7641 specific implementations.
7642 * include/experimental/bits/simd_ppc.h: New file. Implement bit
7643 shifts to avoid invalid results for integral types smaller than
7645 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7646 ABI specific implementations.
7647 * include/experimental/bits/simd_x86.h: New file. Simd x86
7648 specific implementations.
7649 * include/experimental/bits/simd_x86_conversions.h: New file.
7650 x86 specific conversion optimizations. The conversion patterns
7651 work around missing conversion patterns in the compiler and
7652 should be removed as soon as PR85048 is resolved.
7653 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7654 Test that all (not all fixed_size<N>, though) standard simd and
7655 simd_mask types are usable.
7656 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7657 file. As above but with -ffast-math.
7658 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7659 from the standard test loop. Instead use
7660 check_vect_support_and_set_flags to build simd tests with the
7661 relevant machine flags.
7663 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7666 * include/bits/string_view.tcc
7667 (basic_string_view::find(const CharT*, size_type, size_type)):
7670 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
7672 * include/bits/basic_string.h (basic_string::contains): New
7674 * include/std/string_view (basic_string_view::contains):
7676 * include/std/version (__cpp_lib_string_contains): Define.
7677 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7678 Remove trailing whitespace.
7679 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7681 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7682 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7683 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7684 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7685 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7687 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
7689 * src/c++17/Makefile.in: Regenerate.
7691 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
7693 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7694 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7696 (const char* ctype<char>:: is): Same.
7698 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7701 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
7702 write to a wide character stream if wide character support is
7703 disabled in the library.
7705 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7707 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
7708 stringbuf not wstringbuf.
7710 2021-01-18 Jakub Jelinek <jakub@redhat.com>
7713 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
7714 Compile with -gno-as-loc-support.
7715 * src/c++11/Makefile.in: Regenerated.
7717 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
7719 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
7720 Add -fcf-protection=none to -march=i486.
7722 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7724 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
7727 2021-01-14 Alexandre Oliva <oliva@adacore.com>
7729 * testsuite/30_threads/future/members/poll.cc: Calibrate
7732 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7735 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
7736 (_Node_iterator()): Make default.
7737 (_Node_const_iterator()): Make default.
7738 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
7740 * include/debug/safe_iterator.h
7741 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
7742 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
7744 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
7745 _M_singular checks on input iterators.
7746 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
7748 * testsuite/23_containers/deque/debug/98466.cc: New test.
7749 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
7751 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7754 * include/bits/fs_path.h (__throw_conversion_error): New
7755 function to throw or abort on character conversion errors.
7756 (__wstr_from_utf8): Move definition after filesystem_error has
7757 been defined. Use __throw_conversion_error.
7758 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
7759 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
7760 (path::u8string): Likewise.
7762 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7764 * include/std/barrier: Update copyright years. Fix whitespace.
7765 * include/std/version: Fix whitespace.
7766 * testsuite/30_threads/barrier/1.cc: Update copyright years.
7767 * testsuite/30_threads/barrier/2.cc: Likewise.
7768 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7769 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7770 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7771 * testsuite/30_threads/barrier/completion.cc: Likewise.
7773 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
7775 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
7777 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
7780 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
7782 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
7784 2021-01-08 Olivier Hainque <hainque@adacore.com>
7786 * testsuite/20_util/bind/ref_neg.cc: Tweak the
7787 dg-prune-output regex for out-of-build-tree contexts.
7789 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
7791 * doc/doxygen/user.cfg.in: Add new header.
7792 * include/Makefile.am (std_headers): likewise.
7793 * include/Makefile.in: Regenerate.
7794 * include/precompiled/stdc++.h: Add new header.
7795 * include/std/barrier: New file.
7796 * include/std/version: Add __cpp_lib_barrier feature test macro.
7797 * testsuite/30_threads/barrier/1.cc: New test.
7798 * testsuite/30_threads/barrier/2.cc: Likewise.
7799 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7800 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7801 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7802 * testsuite/30_threads/barrier/completion.cc: Likewise.
7804 2021-01-07 Patrick Palka <ppalka@redhat.com>
7807 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
7808 instead of the non-standard nextupl and nextdownl.
7810 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
7812 * configure: Re-generate.
7814 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
7816 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
7818 2021-01-01 Jakub Jelinek <jakub@redhat.com>
7820 * ChangeLog-2020: Rotate ChangeLog. New file.
7823 Copyright (C) 2021 Free Software Foundation, Inc.
7825 Copying and distribution of this file, with or without modification,
7826 are permitted in any medium without royalty provided the copyright
7827 notice and this notice are preserved.