1 2021-10-22 Jonathan Wakely <jwakely@redhat.com>
4 * include/std/any (make_any): Add SFINAE constraint.
5 * testsuite/20_util/any/102894.cc: New test.
7 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
9 * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
11 * scripts/run_doxygen: Fix post-processing of #include
12 directives in man pages. Use new xg++ to compile helper program.
14 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
16 * include/bits/mofunc_impl.h: Add doxygen comments.
17 * include/std/functional: Likewise.
19 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
21 * include/bits/alloc_traits.h: Suppress doxygen documentation.
22 * include/bits/allocated_ptr.h: Likewise.
23 * include/bits/enable_special_members.h: Likewise.
24 * include/bits/hashtable.h: Likewise.
25 * include/bits/hashtable_policy.h: Likewise.
26 * include/bits/uses_allocator.h: Likewise.
27 * include/bits/node_handle.h: Document node handles and suppress
28 documentation for protected members.
29 * include/std/any: Suppress documentation for implementation
32 2021-10-21 Patrick Palka <ppalka@redhat.com>
35 * include/bits/stl_iterator.h (__niter_base): Make constexpr
37 (__miter_base): Likewise.
38 * testsuite/25_algorithms/move/constexpr.cc: New test.
40 2021-10-21 Patrick Palka <ppalka@redhat.com>
42 * include/std/ranges (istream_view): Replace this function
43 template with an alias template as per P2432R1.
44 (wistream_view): Define as per P2432R1.
45 (views::_Istream, views::istream): Likewise.
46 * testsuite/std/ranges/istream_view.cc (test07): New test.
48 2021-10-21 Patrick Palka <ppalka@redhat.com>
50 * include/bits/ranges_util.h (views::_Drop): Forward declare.
51 (subrange): Befriend views::_Drop.
52 (subrange::_S_store_size): Declare constexpr instead of just
53 const, remove obsolete comment.
54 * include/std/ranges (views::__detail::__is_empty_view): Define.
55 (views::__detail::__is_basic_string_view): Likewise.
56 (views::__detail::__is_subrange): Likewise.
57 (views::__detail::__is_iota_view): Likewise.
58 (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
59 (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
60 and fix it to range_difference_t<_Range>. Implement P1739R4 and
62 (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
63 (views::_Drop): As with views::_Take.
64 (views::_Counted): Implement P1739R4 changes.
65 * include/std/span (__detail::__is_std_span): Rename to ...
66 (__detail::__is_span): ... this and turn it into a variable
68 (__detail::__is_std_array): Turn it into a variable template.
69 (span::span): Adjust uses of __is_std_span and __is_std_array
71 * testsuite/std/ranges/adaptors/p1739.cc: New test.
73 2021-10-21 Patrick Palka <ppalka@redhat.com>
75 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
76 Make fully constexpr as per LWG 3595.
77 (common_iterator::__postfix_proxy): Likewise.
79 2021-10-21 Patrick Palka <ppalka@redhat.com>
81 * include/std/ranges (lazy_split_view::base): Add forward_range
82 constraint as per LWG 3591.
83 (lazy_split_view::begin, lazy_split_view::end): Also check
84 simpleness of _Pattern as per LWG 3592.
85 (split_view::base): Relax copyable constraint as per LWG 3590.
87 2021-10-21 Patrick Palka <ppalka@redhat.com>
89 * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
90 criteria for returning bidirectional_iterator_tag as per LWG 3535.
91 (join_view::_Iterator::_S_iter_concept): Likewise.
93 2021-10-21 Patrick Palka <ppalka@redhat.com>
95 * include/bits/ranges_base.h (viewable_range): Adjust as per
97 * testsuite/std/ranges/adaptors/all.cc (test07): New test.
99 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
102 * include/std/optional (optional::and_then, optional::transform):
103 Remove requires-clause.
104 * testsuite/20_util/optional/monadic/and_then.cc: Check
105 overload resolution doesn't cause errors.
106 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
108 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
110 * testsuite/20_util/optional/monadic/transform.cc: Check that
111 an rvalue result is not materialized too soon.
113 2021-10-19 Patrick Palka <ppalka@redhat.com>
115 * include/std/ranges (iota_view::_Iterator::operator+): Adjust
116 definition as per LWG 3580.
117 (iota_view::_Iterator::operator-): Likewise.
119 2021-10-19 Patrick Palka <ppalka@redhat.com>
121 * include/std/ranges (basic_istream_view::_M_object): Value
122 initialize as per LWG 3568.
124 2021-10-19 Patrick Palka <ppalka@redhat.com>
126 * include/bits/ranges_util.h
127 (__detail::__uses_nonqualification_pointer_conversion): Define
129 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
130 * testsuite/std/ranges/subrange/1.cc: New test.
132 2021-10-19 Patrick Palka <ppalka@redhat.com>
134 * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
135 (iota_view::_Sentinel): Likewise.
136 (iota_view::iota_view): Add three overloads, each taking an
137 iterator/sentinel pair as per LWG 3523.
138 * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
140 2021-10-19 Patrick Palka <ppalka@redhat.com>
142 * include/bits/ranges_base.h (view_interface): Forward declare.
143 (__detail::__is_derived_from_view_interface_fn): Declare.
144 (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
145 (enable_view): Adjust as per LWG 3549.
146 * include/bits/ranges_util.h (view_interface): Don't derive from
148 * include/std/ranges (filter_view): Revert r11-3504 change.
149 (transform_view): Likewise.
150 (take_view): Likewise.
151 (take_while_view): Likewise.
152 (drop_view): Likewise.
153 (drop_while_view): Likewise.
154 (join_view): Likewise.
155 (lazy_split_view): Likewise.
156 (split_view): Likewise.
157 (reverse_view): Likewise.
158 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
159 * testsuite/std/ranges/view.cc (test_view::test_view): Remove
160 this default ctor since views no longer need to be default initable.
163 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
165 * src/c++11/random.cc (which_source): New helper function.
166 (random_device::_M_getentropy()): Use which_source and return
167 suitable values for sources other than device files.
168 * testsuite/26_numerics/random/random_device/entropy.cc: New test.
170 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
172 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
173 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
174 relative ${top_srcdir}.
175 * doc/Makefile.in: Regenerate.
177 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
179 * include/std/variant (_Uninitialized): Use an empty struct
180 for the unused union member, instead of char.
182 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
184 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
185 non-deducible template parameter from deduction guide.
186 * testsuite/23_containers/stack/deduction.cc: Check new C++23
189 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
191 * include/std/optional (_Optional_payload_base::_Storage): Add
192 constructor taking a callable function to invoke.
193 (_Optional_payload_base::_M_apply): New function.
194 (__cpp_lib_monadic_optional): Define for C++23.
195 (optional::and_then, optional::transform, optional::or_else):
197 * include/std/ranges (__detail::__cached): Remove.
198 (__detail::__non_propagating_cache): Remove use of __cached for
199 contained value. Use _Optional_payload_base::_M_construct and
200 _Optional_payload_base::_M_apply to set the contained value.
201 * include/std/version (__cpp_lib_monadic_optional): Define.
202 * testsuite/20_util/optional/monadic/and_then.cc: New test.
203 * testsuite/20_util/optional/monadic/or_else.cc: New test.
204 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
205 * testsuite/20_util/optional/monadic/transform.cc: New test.
206 * testsuite/20_util/optional/monadic/version.cc: New test.
208 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
211 * include/bits/mofunc_impl.h (move_only_function): Remove
212 invalid base initializer.
213 * testsuite/20_util/move_only_function/cons.cc: Instantiate
214 constructors to check bodies.
216 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
218 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
219 call to function with deduced return type.
221 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
223 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
225 (basic_string::resize_and_overwrite): Declare.
226 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
228 * include/std/version (__cpp_lib_resize_and_overwrite): Define
230 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
233 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
236 * include/std/ranges (__cached): New wrapper struct.
237 (__non_propagating_cache): Use __cached for contained value.
238 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
239 std::construct_at instead of placement new.
240 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
242 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
244 * include/std/variant (__cpp_lib_variant): Update value for
246 (__variant_cast, __variant_construct): Add constexpr for C++20.
247 (__variant_construct_single, __construct_by_index) Likewise. Use
248 std::_Construct instead of placement new.
249 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
250 buffer with a union and define a destructor.
251 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
252 for non-trivial destruction.
253 (_Variant_storage::__index_of): New helper variable template.
254 (_Variant_storage::~_Variant_storage()): Add constexpr.
255 (_Variant_storage::_M_reset()): Likewise.
256 (_Copy_ctor_base, _Move_ctor_base): Likewise.
257 (_Copy_assign_base, _Move_assign_base): Likewise.
258 (variant, swap): Likewise.
259 * include/std/version (__cpp_lib_variant): Update value for
261 * testsuite/20_util/optional/version.cc: Check for exact value
263 * testsuite/20_util/variant/87619.cc: Increase timeout for
265 * testsuite/20_util/variant/constexpr.cc: New test.
266 * testsuite/20_util/variant/version.cc: New test.
268 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
270 * include/std/variant (__detail::__variant::__get_storage):
271 Remove unused function.
272 (__variant_construct_by_index): Set index after construction is
273 complete. Rename to ...
274 (__detail::__variant::__construct_by_index): ... this.
275 (variant): Use new name for __variant_construct_by_index friend
276 declaration. Remove __get_storage friend declaration.
277 (variant::emplace): Use new name and remove try-blocks.
279 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
281 * include/std/variant (_Variant_storage::_M_storage()): Remove.
282 (__detail::__variant::__get_storage): Remove.
283 (variant): Remove friend declaration of __get_storage.
285 2021-10-15 Jason Merrill <jason@redhat.com>
287 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
288 * testsuite/20_util/integer_comparisons/greater_neg.cc:
289 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
290 Adjust expected message.
291 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
293 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
295 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
296 Rename to __get_n and remove first argument. Replace pair of
297 overloads with a single function using 'if constexpr'.
298 (__variant::__get(Variant&&)): Adjust to use __get_n.
300 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
302 * include/bits/fs_path.h (path(path&&)): Make unconditionally
304 (path::_S_convert(T)): Add condtional noexcept.
306 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
309 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
310 for returning the same string unchanged.
312 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
314 * include/bits/regex.h: Check __cpp_inline_variables instead of
317 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
319 * testsuite/20_util/is_layout_compatible/version.cc: Check
322 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
324 * include/bits/stl_construct.h (_Construct): Use
325 std::construct_at when constant evaluated.
326 * include/std/optional (_Storage, _Optional_payload, optional):
327 Add constexpr as specified by P2231R1.
328 * include/std/version (__cpp_lib_optional): Update value for
330 * testsuite/20_util/optional/requirements.cc: Check feature test
332 * testsuite/20_util/optional/constexpr/assign.cc: New test.
333 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
334 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
335 * testsuite/20_util/optional/constexpr/swap.cc: New test.
336 * testsuite/20_util/optional/version.cc: New test.
338 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
340 * include/bits/fs_path.h (__detail::__is_contiguous): Add
341 partial specializations for pointers and __normal_iterator.
343 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
345 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
346 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
347 * testsuite/28_regex/match_results/102667.C: Moved to...
348 * testsuite/28_regex/match_results/102667.cc: ...here.
350 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
352 * include/bits/fs_path.h (__detail::__is_contiguous): New
353 variable template to identify contiguous iterators.
354 (__detail::__unified_char8_t): New alias template to decide when
355 to treat char8_t as char without encoding conversion.
356 (__detail::__effective_range(const basic_string<C,T>&)): Use
357 std::char_traits<C> for returned string view.
358 (__detail::__effective_range(const basic_string_view<C,T>&)):
360 (__detail::__effective_range(const Source&)): Use
361 __is_contiguous to detect mode cases of contiguous iterators.
362 Use __unified_char8_t to return a std::string instead of
365 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
368 * include/bits/fs_path.h (path::path(Iter, Iter, format))
369 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
370 __string_from_range directly, instead of two-argument overload
372 (path::_S_convert(Iter, Iter)): Remove.
373 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
375 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
377 * include/bits/c++config (__terminate): Add extern "C++".
379 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
381 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
382 Restore test for operator<.
383 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
384 Adjust expected errors for C++20.
386 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
389 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
391 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
392 array elements before the last element.
394 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
396 * include/bits/stl_iterator_base_funcs.h (__advance): Add
397 deleted overload to improve diagnostics.
398 (__distance): Likewise.
400 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
402 * include/bits/atomic_timed_wait.h: Remove unused header.
403 * include/bits/c++config (std:__terminate): Define.
404 * include/bits/semaphore_base.h: Remove <exception> and use
405 __terminate instead of terminate.
406 * include/bits/std_thread.h: Likewise.
407 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
408 to call __cxxabiv1::__terminate.
410 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
412 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
413 std::__to_address by using poitner directly or using base()
414 member of __normal_iterator.
416 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
418 * testsuite/18_support/numeric_limits/lowest.cc: Use
419 numeric_limits<T>::is_integer instead of is_integral<T>::value.
421 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
424 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
425 Add __glibcxx_requires_string_len assertion.
426 (basic_regex::assign(InputIterator, InputIterator)): Add
427 __glibcxx_requires_valid_range assertion.
428 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
429 (_Scanner::_M_scan_normal()): Use string literal in assertions.
431 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
434 * include/bits/regex.h (match_result::empty()): Optimize by
435 calling the base function directly.
436 (match_results::end()): Check _Base_type::empty() not empty().
437 * testsuite/28_regex/match_results/102667.C: New test.
439 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
442 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
443 _GLIBCXX_USE_WCHAR_T.
444 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
445 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
446 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
447 _GLIBCXX_USE_WCHAR_T.
448 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
449 char_traits<wchar_t>::length instead of wcslen.
450 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
452 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
453 * testsuite/20_util/is_compound/value.cc: Likewise.
454 * testsuite/20_util/is_floating_point/value.cc: Likewise.
455 * testsuite/20_util/is_fundamental/value.cc: Likewise.
456 * testsuite/20_util/is_integral/value.cc: Likewise.
457 * testsuite/20_util/is_signed/value.cc: Likewise.
458 * testsuite/20_util/is_unsigned/value.cc: Likewise.
459 * testsuite/20_util/is_void/value.cc: Likewise.
460 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
462 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
464 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
466 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
468 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
470 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
472 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
474 * testsuite/20_util/to_chars/3.cc: Likewise.
475 * testsuite/20_util/type_identity/requirements/typedefs.cc:
477 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
478 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
479 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
481 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
482 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
484 * testsuite/21_strings/basic_string/literals/values.cc:
486 * testsuite/21_strings/basic_string/modifiers/64422.cc:
488 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
490 * testsuite/21_strings/basic_string/requirements/citerators.cc:
492 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
494 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
496 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
498 * testsuite/21_strings/basic_string_view/literals/types.cc:
500 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
502 * testsuite/21_strings/basic_string_view/literals/values.cc:
504 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
506 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
507 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
509 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
511 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
513 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
514 * testsuite/25_algorithms/fill/4.cc: Likewise.
515 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
516 * testsuite/experimental/functional/searchers.cc: Likewise. Use
517 char_traits<wchar_t>::length instead of wcslen.
518 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
520 * testsuite/experimental/string_view/literals/types-char8_t.cc:
522 * testsuite/experimental/string_view/literals/types.cc:
524 * testsuite/experimental/string_view/literals/values-char8_t.cc:
526 * testsuite/experimental/string_view/literals/values.cc:
528 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
530 * testsuite/experimental/string_view/requirements/typedefs.cc:
532 * testsuite/experimental/string_view/typedefs.cc: Likewise.
533 * testsuite/ext/vstring/range_access.cc: Likewise.
534 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
536 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
538 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
540 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
542 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
544 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
546 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
548 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
550 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
551 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
553 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
554 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
556 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
559 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
560 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
561 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
563 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
566 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
567 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
569 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
572 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
573 (__byte_operand<wchar_t>): Define specialization.
574 * include/std/type_traits (__make_signed<wchar_t>)
575 (__make_unsigned<wchar_t>): Remove redundant check for
576 __WCHAR_TYPE__ being defined.
577 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
578 (__is_integral_helper<wchar_t>): Likewise.
580 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
583 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
584 (__rc_string_base<wchar_t>): Define member function.
585 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
586 (hash<__gnu_cxx::__wvstring>): Define specialization.
587 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
588 (__wsso_string, __wrc_string): Declare typedefs.
590 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
593 * include/bits/char_traits.h (char_traits<wchar_t>): Define
594 explicit specialization unconditionally.
595 * include/bits/basic_string.h (hash<wstring>): Define
596 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
597 * include/bits/stringfwd.h (wstring): Likewise.
598 * include/debug/string (wstring): Likewise.
599 * include/experimental/string_view (experimental::wstring_view)
600 (hash<experimental::wstring_view>): Likewise.
601 * include/std/string (pmr::wstring, hash<pmr::wstring>):
603 * include/std/string_view (wstring_view, hash<wstring_view>):
606 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
608 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
609 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
611 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
613 * testsuite/22_locale/conversions/buffer/1.cc: Check
614 _GLIBCXX_USE_WCHAR_T.
615 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
617 * testsuite/22_locale/conversions/string/1.cc: Check
618 _GLIBCXX_USE_WCHAR_T.
619 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
621 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
623 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
624 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
626 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
627 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
629 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
631 * testsuite/experimental/filesystem/path/native/alloc.cc:
633 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
635 * testsuite/experimental/filesystem/path/native/string.cc:
638 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
640 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
641 * testsuite/util/testsuite_common_types.h:
643 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
645 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
647 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
648 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
649 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
650 * testsuite/20_util/is_floating_point/value.cc: Likewise.
651 * testsuite/20_util/is_integral/value.cc: Likewise.
652 * testsuite/20_util/is_signed/value.cc: Likewise.
653 * testsuite/20_util/is_unsigned/value.cc: Likewise.
654 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
656 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
658 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
660 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
662 * testsuite/20_util/type_identity/requirements/typedefs.cc:
664 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
665 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
666 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
667 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
668 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
669 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
670 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
671 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
672 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
674 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
676 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
678 * include/bits/hashtable_policy.h (_Select1st): Replace use of
680 (_Select2nd): Remove.
681 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
682 typedef instead of deducing it. Remove unnecessary piecewise
684 (_ReuseOrAllocNode): Make __node_type public.
685 (_Map_base): Adjust partial specialization to be able to extract
686 the mapped_type without using tuple_element.
687 (_Map_base::at): Define inline
688 * testsuite/23_containers/unordered_map/requirements/53339.cc:
690 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
693 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
695 * include/bits/hashtable.h: Move static assertion to destructor.
696 * include/bits/hashtable_policy.h: Deduce value type from node
697 type without instantiating it.
699 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
701 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
704 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
707 * include/bits/ranges_algobase.h: Replace <iterator> with a
708 subset of the headers it includes.
710 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
712 * include/experimental/deque (erase, erase_if): Revert changes
713 to avoid debug mode overhead.
714 * include/experimental/map (erase, erase_if): Likewise.
715 * include/experimental/set (erase, erase_if): Likewise.
716 * include/experimental/unordered_map (erase, erase_if):
718 * include/experimental/unordered_set (erase, erase_if):
720 * include/experimental/vector (erase, erase_if): Likewise.
721 * include/std/deque (erase, erase_if): Likewise.
722 * include/std/map (erase, erase_if): Likewise.
723 * include/std/set (erase, erase_if): Likewise.
724 * include/std/unordered_map (erase, erase_if): Likewise.
725 * include/std/unordered_set (erase, erase_if): Likewise.
726 * include/std/vector (erase, erase_if): Likewise.
728 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
730 * include/std/chrono (__detail::__units_suffix_misc): New
732 (__detail::__units_suffix): Likewise.
733 (chrono::operator<<(basic_ostream&, const duration&)): Define.
734 * testsuite/20_util/duration/io.cc: New test.
736 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
738 * include/Makefile.am: Add new header.
739 * include/Makefile.in: Regenerate.
740 * include/std/chrono (duration, time_point, system_clock)
741 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
742 (file_clock, file_time): Move to ...
743 * include/bits/chrono.h: New file.
744 * include/bits/atomic_futex.h: Include new header instead of
746 * include/bits/atomic_timed_wait.h: Likewise.
747 * include/bits/fs_fwd.h: Likewise.
748 * include/bits/semaphore_base.h: Likewise.
749 * include/bits/this_thread_sleep.h: Likewise.
750 * include/bits/unique_lock.h: Likewise.
751 * include/experimental/bits/fs_fwd.h: Likewise.
752 * include/experimental/chrono: Likewise.
753 * include/experimental/io_context: Likewise.
754 * include/experimental/netfwd: Likewise.
755 * include/experimental/timer: Likewise.
756 * include/std/condition_variable: Likewise.
757 * include/std/mutex: Likewise.
758 * include/std/shared_mutex: Likewise.
760 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
763 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
764 Hardcode to 64 instead of using non-constant constant.
766 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
768 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
770 * include/std/string (erase, erase_if): Likewise.
771 * include/std/deque (erase, erase_if): Access non-debug
773 * include/std/map (erase, erase_if): Likewise.
774 * include/std/set (erase, erase_if): Likewise.
775 * include/std/unordered_map (erase, erase_if): Likewise.
776 * include/std/unordered_set (erase, erase_if): Likewise.
777 * include/std/vector (erase, erase_if): Likewise.
778 * include/experimental/deque (erase, erase_if): Likewise.
779 * include/experimental/map (erase, erase_if): Likewise.
780 * include/experimental/set (erase, erase_if): Likewise.
781 * include/experimental/unordered_map (erase, erase_if):
783 * include/experimental/unordered_set (erase, erase_if):
785 * include/experimental/vector (erase, erase_if): Likewise.
787 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
789 * include/Makefile.am: Add new headers.
790 * include/Makefile.in: Regenerate.
791 * include/std/functional: Include <bits/move_only_function.h>.
792 * include/std/version (__cpp_lib_move_only_function): Define.
793 * include/bits/mofunc_impl.h: New file.
794 * include/bits/move_only_function.h: New file.
795 * testsuite/20_util/move_only_function/call.cc: New test.
796 * testsuite/20_util/move_only_function/cons.cc: New test.
797 * testsuite/20_util/move_only_function/move.cc: New test.
798 * testsuite/20_util/move_only_function/version.cc: New test.
800 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
802 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
804 * testsuite/23_containers/span/trivially_copyable.cc: New test.
806 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
808 * include/bits/utility.h (__is_in_place_type_v): Define
809 variable template to detect in_place_type_t specializations.
810 (__is_in_place_type): Replace class template with alias
811 template using __is_in_place_type_v.
812 * include/std/any (any(T&&)): Check __is_in_place_type first and
813 avoid instantiating is_copy_constructible unnecessarily.
815 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
817 * testsuite/20_util/integer_comparisons/greater.cc: New test.
819 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
821 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
822 Check result matches non-volatile pointer.
824 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
827 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
828 expected value for C++20.
830 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
832 * include/bits/std_function.h (_Any_data::_M_access): Add
834 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
835 (_Function_base::_Base_manager::_M_not_empty_function):
838 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
840 * include/std/ostream (operator<<(const volatile void*)):
841 Add new overload, as per P1147R1.
842 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
845 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
847 * include/bits/stl_queue.h
848 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
850 * include/bits/stl_stack.h
851 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
852 * include/std/version
853 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
854 * testsuite/23_containers/queue/cons_from_iters.cc: Update
856 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
858 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
860 * include/bits/forward_list.h (forward_list): Use non-deduced
861 context for allocator parameter of allocator-extended copy and
863 * include/bits/stl_bvector.h (vector<bool>): Likewise.
864 * include/bits/stl_deque.h (deque): Likewise.
865 * include/bits/stl_list.h (list): Likewise.
866 * include/bits/stl_map.h (map): Likewise.
867 * include/bits/stl_multimap.h (multimap): Likewise.
868 * include/bits/stl_multiset.h (multiset): Likewise.
869 * include/bits/stl_set.h (set): Likewise.
870 * include/bits/stl_vector.h (vector): Likewise.
871 * include/bits/stl_queue.h (queue, priority_queue): Do not
872 constrain Allocator template parameter of deduction guides that
873 have a Container parameter.
874 * include/bits/stl_stack.h (stack): Likewise.
875 * include/debug/deque (__gnu_debug::deque): Use non-deduced
876 context for allocator parameter of allocator-extended copy and
878 * include/debug/list (__gnu_debug::list): Likewise.
879 * include/debug/map.h (__gnu_debug::map): Likewise.
880 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
881 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
882 * include/debug/set.h (__gnu_debug::set): Likewise.
883 * include/debug/vector (__gnu_debug::vector): Likewise.
884 * testsuite/23_containers/deque/cons/deduction.cc: Test class
885 template argument deduction with non-deduced allocator
887 * testsuite/23_containers/forward_list/cons/deduction.cc:
889 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
890 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
891 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
892 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
893 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
894 * testsuite/23_containers/queue/deduction.cc: Likewise.
895 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
896 * testsuite/23_containers/stack/deduction.cc: Likewise.
897 * testsuite/23_containers/unordered_map/cons/deduction.cc:
899 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
901 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
903 * testsuite/23_containers/unordered_set/cons/deduction.cc:
905 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
907 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
909 * include/std/variant (__detail::__variant::__as): Add missing
910 noexcept to first overload.
912 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
914 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
916 (operator=(nullptr_t)): Likewise.
917 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
918 (operator=(nullptr_t)): Likewise.
919 * include/std/string_view (basic_string_view(nullptr_t)):
921 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
922 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
923 Change dg-warning to dg-error.
924 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
927 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
929 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
930 * src/filesystem/ops-common.h (__last_system_error): Add
931 explicit cast to avoid narrowing conversion.
932 (do_space): Fix type in function name.
934 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
937 * include/Makefile.am (c++config.h): Define
938 _GLIBCXX_VERBOSE_ASSERT based on configure output.
939 * include/Makefile.in: Regenerate.
940 * include/bits/c++config: Fix condition for verbose assertions.
942 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
945 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
946 unwrap debug iterators.
947 * include/bits/refwrap.h: Do not error if included in C++03.
948 * include/bits/stl_algo.h (__remove_if): Move to ...
949 * include/bits/stl_algobase.h (__remove_if): ... here.
950 * include/std/deque (erase, erase_if): Use __remove_if instead of
951 remove and remove_if.
952 * include/std/string (erase, erase_if): Likewise.
953 * include/std/vector (erase, erase_if): Likewise.
955 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
958 * include/bits/list.tcc (list::sort()): Use _Scratch_list
959 objects for splicing and merging.
960 (list::sort(StrictWeakOrdering)): Likewise.
961 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
962 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
963 assertion for --enable-libstdcxx-debug library.
964 * testsuite/23_containers/list/operations/66742.cc: New test.
966 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
969 * include/std/thread (__pmf_expects_stop_token): New variable
970 template to detect a pointer to member function that needs a
971 stop_token to be added to the arguments.
972 (jthread::__S_create): Use __pmf_expects_stop_token.
973 (jthread::__S_create_pmf): New function.
974 * testsuite/30_threads/jthread/100612.cc: New test.
976 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
978 * include/bits/stl_queue.h
979 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
981 (queue(InputIterator, InputIterator)): Likewise.
982 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
983 * include/bits/stl_stack.h
984 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
985 (stack(InputIterator, InputIterator)): Likewise.
986 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
987 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
989 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
990 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
992 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
994 * include/bits/stl_queue.h (priority_queue): Add
995 allocator-extended overloads for constructors taking iterator.
996 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
998 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1000 * include/bits/stl_queue.h (priority_queue): Construct sequence
1001 from iterators when no sequence argument is present (LWG 3529).
1002 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
1004 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1006 * include/bits/stl_queue.h (priority_queue): Constrain
1007 constructors with InputIterator parameters (LWG 3522).
1008 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
1010 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1012 * include/bits/ranges_base.h (ranges::distance): Split overload
1013 into two (LWG 3392).
1014 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
1016 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1018 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
1019 std::unary_function.
1020 * testsuite/30_threads/thread/cons/4.cc: Likewise.
1021 * testsuite/30_threads/thread/cons/5.cc: Likewise.
1023 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1025 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
1026 unnecesary derivation from std::unary_function.
1027 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
1028 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
1029 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
1030 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
1031 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
1032 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
1033 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
1034 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
1036 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
1037 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
1039 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1041 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
1042 expand the format string for freestanding, or non-vebose, or if
1043 we're just going to abort anyway.
1044 * src/c++11/snprintf_lite.cc: Remove unused header and
1047 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1049 * include/std/variant (__do_visit): Use variant_npos instead of
1050 literal -1 that requires a narrowing conversion.
1052 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1055 * src/filesystem/ops-common.h (__unsupported): New function to
1056 return a suitable error code for missing functionality.
1057 (posix::off_t): New typedef.
1058 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
1059 fallback implementations.
1060 (do_copy_file): Replace uses of errc::not_supported.
1061 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
1062 (fs::create_directory, fs::create_directory_symlink)
1063 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1064 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
1065 (fs::last_write_time, fs::permissions, fs::read_symlink):
1066 Replace uses of errc::not_supported.
1067 (fs::resize_file): Qualify off_t.
1068 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
1069 (fs::create_directory, fs::create_directory_symlink)
1070 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1071 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
1072 (fs::permissions, fs::read_symlink, fs::system_complete):
1073 Replace uses of errc::not_supported.
1074 (fs::resize_file): Qualify off_t and enable unconditionally.
1075 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
1077 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1079 * src/filesystem/ops-common.h (last_error): New helper function.
1080 (filesystem::do_space): Use last_error().
1081 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
1082 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
1084 * src/filesystem/ops.cc (fs::create_hard_link)
1085 (fs::remove, fs::temp_directory_path): Likewise.
1087 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1089 * include/std/type_traits (__conditional): New class template
1090 for internal uses of std::conditional.
1091 (__conditional_t): New alias template to replace conditional_t.
1092 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
1093 __conditional_t instead of conditional::type.
1094 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
1095 * include/bits/hashtable.h (_Hashtable): Likewise.
1096 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
1097 (_Local_iterator): Likewise. Replace typedefs with
1099 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
1100 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
1101 * include/bits/ptr_traits.h (__make_not_void): Likewise.
1102 * include/bits/ranges_algobase.h (__copy_or_move_backward)
1103 (__copy_or_move): Likewise.
1104 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
1105 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
1106 * include/bits/regex_compiler.h (_BracketMatcher): Use
1107 __conditional_t. Replace typedefs with using-declarations.
1108 * include/bits/shared_ptr_base.h (__shared_count): Use
1110 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1112 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
1113 (reverse_iterator::iterator_concept)
1114 (__make_move_if_noexcept_iterator)
1115 (iterator_traits<common_iterator<_It, _Sent>>)
1116 (iterator_traits<counted_iterator<_It>>): Likewise.
1117 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
1118 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
1119 (_Rb_tree::_M_clone_node): Likewise.
1120 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
1122 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
1123 (__is_uses_allocator_predicate): Likewise.
1124 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
1125 * include/experimental/any (any::_Manager, __any_caster):
1127 * include/experimental/executor (async_completion): Likewise.
1128 * include/experimental/functional (__boyer_moore_base_t):
1130 * include/std/any (any::_Manager): Likewise.
1131 * include/std/functional (__boyer_moore_base_t): Likewise.
1132 * include/std/ranges (borrowed_iterator_t)
1133 (borrowed_subrange_t, __detail::__maybe_present_t)
1134 (__detail::__maybe_const_t, split_view): Likewise.
1135 * include/std/tuple (__empty_not_final, tuple::operator=):
1137 * include/std/variant (__detail::__variant::__get_t): Likewise.
1139 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1142 * include/std/variant (__do_visit): Use a switch when we have a
1143 single variant with a small number of alternatives.
1145 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1148 * include/std/variant (__cpp_lib_variant): Update value.
1149 (__detail::__variant::__as): New helpers implementing the
1150 as-variant exposition-only function templates.
1151 (visit, visit<R>): Use __as to upcast the variant parameters.
1152 * include/std/version (__cpp_lib_variant): Update value.
1153 * testsuite/20_util/variant/visit_inherited.cc: New test.
1155 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1157 * include/bits/stl_iterator.h (__normal_iterator): Simplify
1158 converting constructor and do not require _Container::pointer.
1160 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1162 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
1163 (basic_string(basic_string&&)): Add noexcept and avoid
1164 allocation, by sharing rep with the rvalue string.
1166 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1168 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
1169 (common_iterator::__postfix_proxy): Add noexcept.
1171 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1174 * include/bits/stl_iterator.h (reverse_iterator): Use
1175 conditional noexcept on constructors and assignment operators.
1176 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
1178 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1181 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
1182 When size() is zero just deallocate and reset.
1184 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1187 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
1189 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1191 * include/bits/regex.h (basic_regex::multiline): Define for
1192 non-strict C++11 and C++14 modes.
1193 * include/bits/regex_constants.h (regex_constants::multiline):
1194 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
1196 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1198 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
1200 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1202 * include/bits/stream_iterator.h (istream_iterator): Add
1203 noexcept to constructors and non-throwing member functions and
1205 (ostream_iterator): Likewise.
1207 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1209 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
1210 New trait to identify vector<bool> iterators, including debug
1212 (_ForwardIteratorReferenceConcept): Add default template
1213 argument using _Is_vector_bool_iterator and use it in partial
1214 specialization for the vector<bool> cases.
1215 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
1216 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1219 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1221 * include/bits/list.tcc (list::merge): Remove call to size() and
1222 try-catch block. Use _Finalize_merge instead.
1223 * include/bits/stl_list.h (list::_Finalize_merge): New
1224 scope guard type to update _M_size members after a merge.
1226 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
1228 * include/bits/regex.h (basic_regex::multiline): Fix #if
1231 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1233 * include/bits/regex.h (basic_regex::multiline): Define constant
1235 * include/bits/regex_constants.h (regex_constants::multiline):
1236 Define constant for C++17.
1237 (regex_constants::__multiline): Define duplicate constant for
1238 internal use in C++11 and C++14.
1239 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
1240 New member function.
1241 (_Executor::_M_is_line_terminator(_CharT)): New member function.
1242 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
1243 member functions to support multiline matches.
1244 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
1246 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1248 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
1250 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
1251 _S_validate to check flags.
1252 * include/bits/regex_error.h (_S_grammar): New error code for
1254 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
1256 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1259 * include/bits/regex_error.h (regex_constants::_S_null): New
1260 error code for internal use.
1261 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
1262 Check for null character.
1263 * testsuite/28_regex/basic_regex/84110.cc: New test.
1265 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1267 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
1268 here from <bits/regex_compiler.h>.
1269 (basic_regex::_M_compile): New function to compile an NFA from
1270 a regular expression string.
1271 (basic_regex::basic_regex): Use _M_compile instead of delegating
1272 to other constructors.
1273 (basic_regex::operator=(const basic_regex&)): Define as
1275 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
1276 (basic_regex::assign(const basic_regex&)): Use copy assignment.
1277 (basic_regex::assign(basic_regex&&)): Use move assignment.
1278 (basic_regex::assign(const C*, flag_type)): Use _M_compile
1279 instead of constructing a temporary string.
1280 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
1281 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
1282 Use _M_compile instead of constructing a temporary basic_regex.
1283 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
1284 constructing a temporary string for contiguous iterators of the
1286 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
1288 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
1289 (__compile_nfa): Remove.
1290 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
1292 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
1294 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1296 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
1297 Return false for ETIMEDOUT and true otherwise.
1299 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
1301 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
1302 to also match message with '__8' in it.
1304 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1306 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
1307 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
1308 * include/bits/regex_compiler.tcc: Likewise.
1309 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
1310 * include/bits/regex_scanner.tcc: Likewise.
1312 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1314 * include/bits/regex_compiler.tcc: Add line break in empty while
1316 * include/bits/regex_executor.tcc: Avoid unused parameter
1319 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1321 * include/bits/regex.h (basic_regex, swap): Add noexcept to
1322 non-throwing functions.
1323 * include/bits/regex_automaton.h (_State_base, _State)
1324 (_NFA_base): Likewise.
1325 * include/bits/regex_compiler.h (_Compiler): Likewise.
1326 * include/bits/regex_error.h (regex_error::code()): Likewise.
1327 * include/bits/regex_scanner.h (_Scanner): Likewise.
1329 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1331 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
1332 Define before first attempt to check it.
1334 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1336 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
1337 Do not check non-default constructible sequences when
1338 _GLIBCXX_CONCEPT_CHECKS is defined.
1339 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
1341 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
1343 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
1345 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
1347 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
1350 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1352 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
1353 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
1355 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
1357 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
1359 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
1361 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
1363 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
1365 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
1367 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
1369 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
1371 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
1373 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
1375 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
1377 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
1379 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
1381 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
1383 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
1385 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
1387 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
1390 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1392 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
1393 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
1394 Check result types of iterator operations.
1395 (_Mutable_ForwardIteratorConcept): Check that iterator's
1396 reference type is a reference to its value type.
1397 (_Mutable_BidirectionalIteratorConcept): Do not require the
1398 value type to be assignable.
1399 (_Mutable_RandomAccessIteratorConcept): Likewise.
1400 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1403 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1405 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
1406 for type used as an iterator.
1407 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
1409 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1411 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
1412 comparison function for priority_queue of type with no
1413 relational operators.
1414 * testsuite/20_util/is_swappable/value.h: Likewise.
1415 * testsuite/24_iterators/output/concept.cc: Add operator< to
1418 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1420 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1421 Use a function to preserve value category of the type.
1422 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
1423 reference as the second argument for _OutputIteratorConcept.
1424 (copy_backward, move_backward): Use _OutputIteratorConcept
1425 instead of _ConvertibleConcept.
1427 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1429 * include/bits/stl_iterator.h (pointer_traits): Define partial
1430 specialization for __normal_iterator.
1431 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
1433 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1435 * include/bits/move.h (forward(remove_reference_t<T>&&)):
1436 Improve text of static_assert.
1437 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1438 * testsuite/20_util/forward/f_neg.cc: Likewise.
1440 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1443 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1444 to declarations, to match definitions.
1446 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
1448 * include/bits/range_access.h (cbegin, cend): Remove redundant
1451 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1453 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1454 Remove dg-error lines for C++20-only errors.
1456 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1458 * testsuite/19_diagnostics/headers/system_error/93151.cc:
1461 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1463 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1464 Map Windows error codes to generic POSIX error numbers. Use
1465 FormatMessage instead of strerror.
1466 * testsuite/19_diagnostics/error_category/system_category.cc:
1467 Adjust for new behaviour on Windows.
1469 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1471 * src/c++11/system_error.cc (generic_error_category): Define
1472 class and virtual functions as 'final'.
1473 (generic_error_category::equivalent(int, const error_condition&)):
1475 (system_error_category): Define class and virtual functions as
1477 (system_error_category::equivalent(int, const error_condition&)):
1479 (generic_category_instance, system_category_instance): Use
1480 constinit union to make the objects immortal.
1482 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1485 * src/c++11/system_error.cc
1486 (system_error_category::default_error_condition): Add 0 to
1488 * testsuite/19_diagnostics/error_category/102425.cc: New test.
1490 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1492 * include/bits/fs_path.h (path::iterator): Add noexcept to all
1493 member functions and friend functions.
1494 (distance): Add noexcept.
1495 (advance): Add noexcept and inline.
1496 * include/experimental/bits/fs_path.h (path::iterator):
1497 Add noexcept to all member functions.
1499 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1502 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
1503 missed in previous patch.
1504 * testsuite/20_util/tuple/cons/102270.C: Moved to...
1505 * testsuite/20_util/tuple/cons/102270.cc: ...here.
1506 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
1507 constexpr to constructor so it can be used for C++20 tests.
1509 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1511 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
1512 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
1513 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
1514 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
1516 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1518 * src/Makefile.am (stamp-debug): Add all Makefiles as
1520 * src/Makefile.in: Regenerate.
1522 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1524 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
1525 timeout factor to 3.
1526 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1528 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1530 * doc/xml/manual/using.xml: Generalize to apply to more than
1532 * doc/html/manual/using_macros.html: Regenerate.
1534 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1536 * include/std/optional (nullptr_t): Make constructor noexcept.
1538 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1540 * include/bits/fs_path.h (advance): Remove non-deducible
1543 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1546 * include/std/tuple (_Head_base, _Tuple_impl): Add
1547 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
1548 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
1549 * testsuite/20_util/tuple/cons/102270.C: New test.
1551 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1554 * include/std/span (span(Range&&)): Add constraint to deduction
1557 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1559 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
1560 * src/c++98/Makefile.in: Regenerate.
1562 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1564 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1565 (to_string): Add noexcept if the type width is 32 bits or less.
1567 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1569 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
1570 (__uniq_ptr_impl::_M_deleter): Add noexcept.
1572 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
1575 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
1576 va and vb as arguments to wait/notify, remove unused bb local.
1578 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1580 * crossconfig.m4: Check for TLS support on mingw.
1581 * configure: Regenerate.
1583 2021-09-13 Jason Merrill <jason@redhat.com>
1585 * include/std/version: Define __cpp_lib_hardware_interference_size.
1586 * libsupc++/new: Define hardware interference size variables.
1588 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
1590 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1591 Fix invalid hostname to only match the .invalid TLD.
1593 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1595 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
1597 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
1600 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1602 * include/std/atomic: Tweak whitespace.
1604 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1607 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
1608 New function to check if a memory order is valid for the failure
1609 case of compare exchange operations.
1610 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
1611 by using __is_valid_cmpexch_failure_order.
1612 (__atomic_base<I>::compare_exchange_strong): Likewise.
1613 (__atomic_base<P*>::compare_exchange_weak): Likewise.
1614 (__atomic_base<P*>::compare_exchange_strong): Likewise.
1615 (__atomic_impl::compare_exchange_weak): Add assertion.
1616 (__atomic_impl::compare_exchange_strong): Likewise.
1617 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
1618 (atomic::compare_exchange_strong): Likewise.
1620 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1622 * include/std/functional (invoke_r): Define.
1623 * include/std/version (__cpp_lib_invoke_r): Define.
1624 * testsuite/20_util/function_objects/invoke/version.cc: Check
1625 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
1626 * testsuite/20_util/function_objects/invoke/4.cc: New test.
1628 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1631 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
1632 Add valid range checks.
1633 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
1634 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
1636 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1638 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
1639 * configure: Regenerate.
1641 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1643 * src/c++11/system_error.cc (error_category::~error_category()):
1644 Remove noexcept-specifier.
1645 (system_error::~system_error()): Likewise.
1646 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
1647 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
1649 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1652 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
1653 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
1655 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1657 * include/experimental/internet (__make_resolver_error_code):
1658 Handle EAI_SYSTEM errors.
1659 (basic_resolver_results): Use __make_resolver_error_code. Use
1660 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
1662 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1664 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1665 Try other service if "http" fails.
1667 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1669 * testsuite/17_intro/names.cc: Undefine some more names used
1670 by Solaris system headers.
1672 2021-08-30 Jason Merrill <jason@redhat.com>
1675 * testsuite/30_threads/promise/requirements/lwg3466.cc:
1676 Remove dg-prune-outputs.
1678 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1680 * include/bits/alloc_traits.h (allocator_traits): Add explicit
1681 specialization for allocator<void>. Improve doxygen comments.
1682 * include/bits/allocator.h (allocator<void>): Restore for the
1683 versioned namespace.
1684 (allocator<void>::construct, allocator<void>::destroy): Remove.
1685 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
1686 Add default constructor and converting constructor.
1688 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1690 * include/bits/stl_uninitialized.h: Fix typo in comment.
1692 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1695 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
1696 to avoid unnecessary current_path() call.
1698 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1700 * include/bits/std_function.h (function::function(F&&)): Give
1701 name to defaulted template parameter, to improve diagnostics.
1702 Use markdown for more doxygen comments.
1704 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1706 * include/bits/std_function.h (function): Adjust doxygen
1708 * include/bits/unique_ptr.h (make_unique_for_overwrite):
1709 Change parameter name to match doxygen comment.
1711 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1713 * include/bits/std_function.h (_function_base::_Base_manager):
1714 Replace _M_init_functor with a function template using a
1715 forwarding reference, and a pair of _M_create function
1716 templates. Reuse _M_create for the clone operation.
1717 (function::_Decay_t): New alias template.
1718 (function::_Callable): Simplify by using _Decay.
1719 (function::function(F)): Change parameter to forwarding
1720 reference, as per LWG 2447. Add noexcept-specifier. Simplify
1722 (function::operator=(F&&)): Add noexcept-specifier.
1723 * testsuite/20_util/function/cons/lwg2774.cc: New test.
1724 * testsuite/20_util/function/cons/noexcept.cc: New test.
1726 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1728 * include/bits/std_function.h (function::function(F)): Add
1729 static assertions to check constructibility requirements.
1731 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1734 * configure.ac: Check for O_NONBLOCK.
1735 * configure: Regenerate.
1736 * include/experimental/internet: Include <ws2tcpip.h> for
1737 Windows. Use preprocessor conditions around more constants.
1738 * include/experimental/socket: Use preprocessor conditions
1739 around more constants.
1740 * testsuite/experimental/net/internet/resolver/base.cc: Only use
1741 constants when the corresponding C macro is defined.
1742 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
1743 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
1744 Make preprocessor checks more fine-grained.
1746 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1748 * testsuite/17_intro/names.cc: Check 'sz'.
1750 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1752 * testsuite/17_intro/names.cc: Adjust for Windows.
1754 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1756 * include/std/valarray: Uglify 'func' parameters.
1757 * testsuite/17_intro/names.cc: Add 'func' to checks.
1759 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1762 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
1763 Define macro to check conditions for optimizing trivial cases.
1764 (__check_constructible): New function to do static assert.
1765 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
1767 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1768 Adjust dg-error pattern.
1769 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
1770 C++17-specific checks from 89164_c++17.cc.
1771 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
1772 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
1774 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
1776 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
1778 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
1781 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1784 * include/ext/rope (rope::erase(size_type)): Remove broken
1787 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1789 * doc/xml/manual/status_cxx2020.xml: Update table.
1790 * doc/html/manual/status.html: Regenerate.
1792 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1794 * include/std/type_traits (is_layout_compatible): Define.
1795 (is_corresponding_member): Define.
1796 * include/std/version (__cpp_lib_is_layout_compatible): Define.
1797 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1799 * testsuite/20_util/is_layout_compatible/value.cc: New test.
1800 * testsuite/20_util/is_layout_compatible/version.cc: New test.
1801 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1803 * testsuite/23_containers/span/layout_compat.cc: Do not use real
1804 std::is_layout_compatible trait if available.
1806 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1808 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
1809 explicit instantiation definitions.
1811 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1813 * include/std/ranges (basic_istream_view): Add default template
1815 * testsuite/std/ranges/istream_view.cc: Check it.
1817 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1819 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
1822 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1825 * testsuite/util/testsuite_fs.h (permissions_are_testable):
1828 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
1831 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1832 Use new __gnu_test::permissions_are_testable() function.
1833 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1835 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1836 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1837 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1838 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1839 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1840 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1842 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1844 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1846 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1848 * testsuite/experimental/filesystem/operations/exists.cc:
1850 * testsuite/experimental/filesystem/operations/is_empty.cc:
1852 * testsuite/experimental/filesystem/operations/remove.cc:
1854 * testsuite/experimental/filesystem/operations/remove_all.cc:
1856 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1858 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
1859 New function to guess whether testing permissions will work.
1861 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1863 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
1864 * doc/html/manual/status.html: Regenerate.
1866 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1868 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
1870 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1873 * include/std/charconv (__to_chars_i): Remove redundant check.
1875 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1878 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
1879 class' move constructor. Define as defaulted for versioned
1881 * testsuite/20_util/tuple/cons/101960.cc: New test.
1883 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1886 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
1887 * doc/html/manual/status.html: Regenerate.
1889 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1891 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
1892 * include/bits/unique_ptr.h: Add @headerfile tags.
1894 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1896 * src/filesystem/ops-common.h (filesystem::file_time): Improve
1897 overflow check by using system_clock::duration::max().
1899 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1901 * include/bits/stl_tree.h: Tweak whitespace.
1903 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1905 * include/bits/unique_ptr.h (default_delete): Add @since tag.
1906 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
1907 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
1908 @param, and @returns.
1909 (_MakeUniq): Move to __detail namespace. Add alias template
1912 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1914 * include/bits/stl_function.h: Improve doxygen comments.
1916 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1918 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
1919 processing for C++20 components and components that depend on
1921 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
1922 * include/std/type_traits: Improve doxygen comments for C++20
1925 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1927 * include/ext/type_traits.h (__promote_2, __promote_3)
1928 (__promote_4): Redfine as alias templates using __promoted_t.
1929 * include/std/complex (__promote_2): Remove partial
1930 specializations for std::complex.
1932 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1934 * include/bits/stl_algo.h (min(initializer_list<T>))
1935 (min(initializer_list<T>, Compare)): Call __min_element directly to
1936 avoid redundant debug checks for valid ranges.
1937 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
1938 Likewise, for __max_element.
1939 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
1940 Likewise, for __minmax_element.
1942 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1944 * include/debug/deque (deque(size_type, const T&, const A&)):
1945 Prevent class template argument deduction and replace with a
1947 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
1949 * include/debug/list (list(size_type, const T&, const A&)):
1951 * include/debug/vector (vector(size_type, const T&, const A&)):
1954 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1956 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
1957 'std::vector<bool>::reference' as type name, not _Bit_reference.
1958 (build_libstdcxx_dictionary): Register printers for vector<bool>
1959 types in debug mode too.
1960 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
1961 output for invalid _Bit_reference. Use vector<bool>::reference
1962 instead of _Bit_reference.
1963 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1965 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
1967 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
1970 2021-08-17 Luc Michel <lmichel@kalray.eu>
1971 Marc Poulhies <mpoulhies@kalrayinc.com>
1973 * testsuite/lib/gdb-test.exp (gdb_version_check)
1974 (gdb_version_check_xmethods): Only check the GDB version for
1975 local native targets.
1977 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
1978 Jonathan Wakely <jwakely@redhat.com>
1980 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
1981 if distance is O(1).
1982 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1985 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1987 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
1988 construction from input iterators.
1990 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1992 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
1994 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1997 * include/bits/std_function.h (function(function&&)): Check for
1998 non-empty parameter before doing any work.
2000 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2002 * include/bits/cow_string.h (basic_string::contains): Do not
2003 define for -std=gnu++20.
2005 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2007 * include/bits/ranges_util.h (__not_same_as): Rename to
2009 * include/std/ranges (__not_same_as): Likewise.
2011 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2013 * include/std/utility (exchange): Add noexcept-specifier.
2014 * testsuite/20_util/exchange/noexcept.cc: New test.
2016 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2018 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
2019 (build_libstdcxx_dictionary): Register printer for
2020 std::error_code and std::error_condition.
2021 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
2023 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2026 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
2028 (print_word): Use qualified-id to access it.
2030 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2032 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
2033 Install another copy of the GDB hook.
2034 * python/Makefile.in: Regenerate.
2036 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2039 * include/c_global/cmath (hypot): Use __promoted_t.
2040 (lerp): Add new overload accepting any arithmetic types.
2041 * include/ext/type_traits.h (__promoted_t): New alias template.
2042 * testsuite/26_numerics/lerp.cc: Moved to...
2043 * testsuite/26_numerics/lerp/1.cc: ...here.
2044 * testsuite/26_numerics/lerp/constexpr.cc: New test.
2045 * testsuite/26_numerics/lerp/version.cc: New test.
2047 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2049 * testsuite/26_numerics/lerp.cc: Add header name to #error.
2050 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
2051 * testsuite/26_numerics/midpoint/version.cc: New test.
2053 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2055 * include/experimental/random (experimental::randint): Add
2056 nodiscard attribute.
2058 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2060 * src/c++98/locale_init.cc: Require C++11.
2061 * src/c++98/localename.cc: Likewise.
2062 * src/c++98/misc-inst.cc: Require C++98.
2064 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2067 * testsuite/experimental/random/randint.cc: Loop and retry if
2068 reseed() produces the same sequence.
2070 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2072 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
2073 (is_pointer_interconvertible_base_of_v)
2074 (is_pointer_interconvertible_base_of): Define for C++20.
2075 * include/std/version (__cpp_lib_is_pointer_interconvertible):
2077 * testsuite/23_containers/span/layout_compat.cc: Use correct
2078 feature test macro for std::is_layout_compatible_v.
2079 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
2080 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
2082 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2084 * include/bits/regex.h (basic_regex::transform_primary): Use
2085 _GLIBCXX_STD_C::vector for local variable.
2086 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
2087 _GLIBCXX_STD_C::vector base class of match_results.
2088 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
2089 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
2091 * include/bits/regex_compiler.h (_BracketMatcher): Use
2092 _GLIBCXX_STD_C::vector for data members.
2093 * include/bits/regex_executor.h (_Executor): Likewise.
2094 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
2096 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
2098 * include/debug/safe_container.h
2099 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
2100 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
2101 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
2103 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2105 * testsuite/23_containers/unordered_map/cons/default.cc: Add
2106 equality comparison operators to allocator.
2107 * testsuite/23_containers/unordered_set/cons/default.cc:
2110 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
2112 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
2113 dg-prune-output reason with 'builtin_unreachable'.
2114 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
2115 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
2116 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2117 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2118 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2119 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2120 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2121 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2123 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
2125 * testsuite/std/ranges/iota/max_size_type.cc: Set
2126 dg-timeout-factor to 4.
2128 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
2130 * libsupc++/compare (compare_three_way, strong_order)
2131 (weak_order, partial_order, compare_strong_order_fallback)
2132 (compare_weak_order_fallback, compare_partial_order_fallback):
2133 Move nodiscard attributes to correct location.
2135 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2138 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2139 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2140 (ranges::empty, ranges::data): Move attribute after the
2141 declarator-id instead of at the end of the declarator.
2142 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
2143 Move attributes back to the start of the function declarator,
2144 but move the requires-clause to the end.
2145 (common_iterator): Move attribute after the declarator-id.
2146 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
2147 from friend declaration that are not definitions.
2148 * include/std/ranges (views::all, views::filter)
2149 (views::transform, views::take, views::take_while,
2150 views::drop) (views::drop_while, views::join,
2151 views::lazy_split) (views::split, views::counted,
2152 views::common, views::reverse) (views::elements): Move
2153 attributes after the declarator-id.
2155 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2157 * libsupc++/compare (partial_ordering, weak_ordering)
2158 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
2159 (compare_three_way, strong_order, weak_order, partial_order)
2160 (compare_strong_order_fallback, compare_weak_order_fallback)
2161 (compare_partial_order_fallback, __detail::__synth3way): Add
2162 nodiscard attribute.
2163 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
2164 -Wno-unused-result to options.
2166 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2169 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2170 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2171 (ranges::empty, ranges::data): Move attribute to the end of
2173 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
2174 (common_iterator): Likewise for non-member operator functions.
2175 * include/std/ranges (views::all, views::filter)
2176 (views::transform, views::take, views::take_while, views::drop)
2177 (views::drop_while, views::join, views::lazy_split)
2178 (views::split, views::counted, views::common, views::reverse)
2179 (views::elements): Likewise.
2180 * testsuite/std/ranges/access/101782.cc: New test.
2182 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2184 * include/bits/forward_list.h: Add [[nodiscard]] to functions
2185 with no side-effects.
2186 * include/bits/stl_bvector.h: Likewise.
2187 * include/bits/stl_deque.h: Likewise.
2188 * include/bits/stl_list.h: Likewise.
2189 * include/bits/stl_queue.h: Likewise.
2190 * include/bits/stl_stack.h: Likewise.
2191 * include/bits/stl_vector.h: Likewise.
2192 * include/debug/deque: Likewise.
2193 * include/debug/forward_list: Likewise.
2194 * include/debug/list: Likewise.
2195 * include/debug/safe_iterator.h: Likewise.
2196 * include/debug/vector: Likewise.
2197 * include/std/array: Likewise.
2198 * testsuite/23_containers/array/creation/3_neg.cc: Use
2200 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
2202 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
2203 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
2204 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
2205 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
2207 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
2209 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2210 Adjust dg-error line numbers.
2211 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
2213 * testsuite/23_containers/deque/debug/invalidation/4.cc:
2215 * testsuite/23_containers/deque/types/1.cc: Use
2217 * testsuite/23_containers/list/types/1.cc: Cast result to void.
2218 * testsuite/23_containers/priority_queue/members/7161.cc:
2220 * testsuite/23_containers/queue/members/7157.cc: Likewise.
2221 * testsuite/23_containers/vector/59829.cc: Likewise.
2222 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
2224 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
2226 * testsuite/23_containers/vector/types/1.cc: Use
2229 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2231 * include/bits/iterator_concepts.h (iter_move): Add
2233 * include/bits/range_access.h (begin, end, cbegin, cend)
2234 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
2235 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2236 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
2237 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2238 (ranges::empty, ranges::data, ranges::cdata): Likewise.
2239 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
2240 (back_insert_iterator, front_insert_iterator, insert_iterator)
2241 (move_iterator, move_sentinel, common_iterator)
2242 (counted_iterator): Likewise.
2243 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
2245 * include/bits/stream_iterator.h (istream_iterator)
2246 (ostream_iterartor): Likewise.
2247 * include/bits/streambuf_iterator.h (istreambuf_iterator)
2248 (ostreambuf_iterator): Likewise.
2249 * include/std/ranges (views::single, views::iota, views::all)
2250 (views::filter, views::transform, views::take, views::take_while)
2251 (views::drop, views::drop_while, views::join, views::lazy_split)
2252 (views::split, views::counted, views::common, views::reverse)
2253 (views::elements): Likewise.
2254 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
2255 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
2256 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
2258 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
2259 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
2261 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2262 Cast result to void.
2263 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2265 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2267 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2269 * testsuite/23_containers/array/range_access.cc: Likewise.
2270 * testsuite/23_containers/deque/range_access.cc: Likewise.
2271 * testsuite/23_containers/forward_list/range_access.cc:
2273 * testsuite/23_containers/list/range_access.cc: Likewise.
2274 * testsuite/23_containers/map/range_access.cc: Likewise.
2275 * testsuite/23_containers/multimap/range_access.cc: Likewise.
2276 * testsuite/23_containers/multiset/range_access.cc: Likewise.
2277 * testsuite/23_containers/set/range_access.cc: Likewise.
2278 * testsuite/23_containers/unordered_map/range_access.cc:
2280 * testsuite/23_containers/unordered_multimap/range_access.cc:
2282 * testsuite/23_containers/unordered_multiset/range_access.cc:
2284 * testsuite/23_containers/unordered_set/range_access.cc:
2286 * testsuite/23_containers/vector/range_access.cc: Likewise.
2287 * testsuite/24_iterators/customization_points/iter_move.cc:
2289 * testsuite/24_iterators/istream_iterator/sentinel.cc:
2291 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
2293 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
2294 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
2295 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
2296 * testsuite/24_iterators/range_access/range_access.cc:
2298 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
2299 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
2300 * testsuite/28_regex/range_access.cc: Likewise.
2301 * testsuite/experimental/string_view/range_access/char/1.cc:
2303 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
2305 * testsuite/ext/vstring/range_access.cc: Likewise.
2306 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2307 * testsuite/std/ranges/p2259.cc: Likewise.
2309 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2311 * include/bits/random.tcc (linear_congruential_engine): Do not
2312 define static constexpr members when they are implicitly inline.
2313 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
2314 (__ratio_add, __ratio_subtract): Likewise.
2315 * include/std/type_traits (integral_constant): Likewise.
2316 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2319 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2321 * testsuite/util/testsuite_common_types.h: Replace uses of
2322 tr1::unordered_map and tr1::unordered_set with their C++11
2324 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
2325 dg-error line number.
2326 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2327 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2329 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
2331 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2333 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2335 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2338 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2340 * include/std/memory_resource (polymorphic_allocator::delete_object):
2341 Call destructor directly instead of using destroy.
2342 (allocator_traits<polymorphic_allocator<T>>): Define partial
2345 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2347 * testsuite/20_util/function_objects/binders/3113.cc: Remove
2348 trailing whitespace.
2349 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2350 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2351 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2353 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2354 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
2356 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2358 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2361 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2363 * doc/xml/manual/evolution.xml: Document deprecation.
2364 * doc/html/*: Regenerate.
2365 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
2366 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
2367 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
2369 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
2370 for C++11 and C++14 changes to std::random_shuffle and
2372 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
2373 use deprecated algorithms.
2374 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
2375 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2376 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2378 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2381 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2383 * testsuite/23_containers/forward_list/operations/3.cc:
2384 Use lambda instead of std::bind2nd.
2385 * testsuite/20_util/function_objects/binders/3113.cc: Add
2386 options for testing deprecated features.
2387 * testsuite/20_util/pair/cons/99957.cc: Likewise.
2388 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2389 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2390 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2392 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2393 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
2394 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
2395 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2396 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
2397 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
2398 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2400 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2402 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
2405 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2407 * include/bits/regex_executor.h (_State_info): Replace
2408 unique_ptr<bool[]> with array of bool.
2409 * include/bits/regex_executor.tcc: Likewise.
2410 * include/bits/regex_scanner.tcc: Replace std::strchr with
2412 * include/std/regex: Replace standard headers with smaller
2414 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
2415 <string.h> for strlen.
2416 * testsuite/28_regex/traits/char/lookup_collatename.cc:
2419 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2421 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
2422 RAII class template.
2423 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
2424 instead of unique_ptr.
2426 2021-08-02 Patrick Palka <ppalka@redhat.com>
2429 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
2430 Add missing std::move in return statement.
2431 (__partition_copy_fn::operator()): Rename templtae parameter
2432 _O2 to _Out2. Uglify function parameters out_true and out_false.
2433 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
2434 std::move to recursive call that unwraps a __normal_iterator
2436 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2437 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2439 2021-08-02 Patrick Palka <ppalka@redhat.com>
2442 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2443 the const& overload unconstrained and return a const reference
2444 as per LWG 3533. Make unconditionally noexcept.
2445 (elements_view::base): Revert accidental r12-569 change.
2446 (elements_view::_Iterator::base): Make the const& overload
2447 unconstrained and return a const reference as per LWG 3533.
2448 Make unconditionally noexcept.
2450 2021-08-02 Patrick Palka <ppalka@redhat.com>
2453 * include/std/ranges (join_view::_Iterator::_Iterator): Add
2456 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2459 * src/filesystem/ops-common.h (get_temp_directory_from_env):
2460 Add error_code parameter.
2461 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2462 argument to get_temp_directory_from_env and check it.
2463 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2465 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2467 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2468 Add dg-error for c++11_only target.
2470 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
2473 * configure.ac: Check for secure_getenv.
2474 * config.h.in: Regenerate.
2475 * configure: Regenerate.
2476 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2477 helper function to obtain path from the environment.
2478 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2479 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2480 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2481 Print messages if test cannot be run.
2482 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2483 Likewise. Fix incorrect condition. Use "TMP" to work with
2484 Windows as well as POSIX.
2486 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
2488 * src/c++17/memory_resource.cc: Use __exchange instead
2491 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2493 * include/experimental/optional (__throw_bad_optional_access):
2494 Replace GNU attribute with C++11 attribute.
2495 (optional::value, optional::value_or): Use if statements
2496 instead of conditional expressions.
2497 * include/std/optional (__throw_bad_optional_access)
2498 (optional::value, optional::value_or): Likewise.
2500 2021-07-27 Marek Polacek <polacek@redhat.com>
2504 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
2506 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2509 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2511 * include/bits/cow_string.h: Consistently use tab for
2514 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2516 * include/Makefile.am: Add new header.
2517 * include/Makefile.in: Regenerate.
2518 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2519 (basic_string): Move definition of Copy-on-Write string to
2521 * include/bits/basic_string.tcc: Likewise.
2522 * include/bits/cow_string.h: New file.
2524 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2526 * include/std/algorithm: Do not include <utility>.
2527 * include/std/functional: Likewise.
2528 * include/std/regex: Include <bits/stl_pair.h> instead of
2530 * include/debug/map.h: Likewise.
2531 * include/debug/multimap.h: Likewise.
2532 * include/debug/multiset.h: Likewise.
2533 * include/debug/set.h: Likewise.
2534 * include/debug/vector: Likewise.
2535 * include/bits/fs_path.h: Likewise.
2536 * include/bits/unique_ptr.h: Do not include <utility>.
2537 * include/experimental/any: Likewise.
2538 * include/experimental/executor: Likewise.
2539 * include/experimental/memory: Likewise.
2540 * include/experimental/optional: Likewise.
2541 * include/experimental/socket: Use __exchange instead
2543 * src/filesystem/ops-common.h: Likewise.
2544 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
2545 errors to not use a hardcoded line number.
2546 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
2547 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2548 Include <utility> for std::as_const.
2549 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2551 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2553 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2555 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
2556 Adjust dg-error line number.
2558 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2560 * include/Makefile.am: Add bits/utility.h header.
2561 * include/Makefile.in: Regenerate.
2562 * include/bits/utility.h: New file.
2563 * include/std/utility (tuple_size, tuple_element): Move
2565 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
2567 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
2568 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
2569 * include/bits/ranges_util.h: Include new header instead of
2571 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
2572 partial specializations for std::pair here.
2573 (get): Move overloads for std::pair here.
2574 * include/std/any: Include new header instead of <utility>.
2575 * include/std/array: Likewise.
2576 * include/std/memory_resource: Likewise.
2577 * include/std/optional: Likewise.
2578 * include/std/variant: Likewise.
2579 * include/std/tuple: Likewise.
2580 (__is_tuple_like_impl<tuple<T...>>): Move here.
2581 (get) Declare overloads for std::array.
2582 * include/std/version (__cpp_lib_tuples_by_type): Change type
2584 * testsuite/20_util/optional/84601.cc: Include <utility>.
2585 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2587 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2588 Adjust dg-error line numbers.
2589 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
2590 * testsuite/std/ranges/access/cend.cc: Likewise.
2591 * testsuite/std/ranges/access/end.cc: Likewise.
2592 * testsuite/std/ranges/single_view.cc: Likewise.
2594 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2596 * include/std/future: Include <bits/atomic_base.h> instead of
2599 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2601 * include/bits/stl_relops.h: Update documentation comments.
2603 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2606 * include/bits/hashtable.h (_Hashtable): Replace mixin with
2607 _Enable_default_ctor. Construct it explicitly in all
2608 non-forwarding, non-defaulted constructors.
2609 * testsuite/23_containers/unordered_map/cons/default.cc: Check
2610 non-default constructors can be used.
2611 * testsuite/23_containers/unordered_set/cons/default.cc:
2614 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
2616 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
2618 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2621 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
2622 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
2623 (allocator::allocate, allocator::deallocate): Use new macros.
2625 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2628 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
2629 constructor parameter to reference and use addressof.
2630 * testsuite/util/testsuite_iterators.h: Define deleted operator&
2631 overloads for test iterators.
2633 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2635 * include/bits/std_function.h (_Function_base): Add
2636 default member initializers and define constructor as defaulted.
2637 (function::_M_invoker): Add default member initializer.
2639 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2642 * doc/xml/manual/debug_mode.xml: Update documentation about
2643 debug capability of std::array.
2644 * doc/html/*: Regenerate.
2645 * include/debug/array: New file.
2647 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
2650 * include/ext/rope (sequence_buffer): Add move constructor and
2651 move assignment operator.
2652 * testsuite/ext/rope/101542.cc: New test.
2654 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2657 * src/c++17/fs_ops.cc (fs::create_directories): Use status
2658 instead of symlink_status.
2659 * src/filesystem/ops.cc (fs::create_directories): Likewise.
2660 * testsuite/27_io/filesystem/operations/create_directories.cc:
2661 Check symlink to existing directory.
2662 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
2663 not test with symlinks on Windows.
2664 * testsuite/experimental/filesystem/operations/create_directories.cc:
2665 Check symlink to existing directory.
2666 * testsuite/experimental/filesystem/operations/create_directory.cc:
2667 Do not test with symlinks on Windows.
2669 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2672 * include/bits/hashtable.h (_Hashtable): Conditionally delete
2673 default constructor by deriving from _Enable_special_members.
2674 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
2675 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
2677 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2680 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
2681 * testsuite/27_io/filesystem/operations/create_directory.cc:
2682 Test creating directory with name of existing symlink to
2684 * testsuite/experimental/filesystem/operations/create_directory.cc:
2687 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2689 * include/std/tuple (get<I>): Add deleted overload for bad
2691 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2694 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2696 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
2697 Use __int_traits unconditionally.
2699 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2701 * include/bits/random.h (_Shift::__value): Use constexpr.
2702 (_Select_uint_least_t::type): Use using-declaration.
2704 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2707 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2709 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
2710 instead of diagnostic pragmas.
2711 * include/bits/functional_hash.h: Likewise.
2712 * include/bits/iterator_concepts.h (__is_signed_int128)
2713 (__is_unsigned_int128): Likewise.
2714 * include/bits/max_size_type.h (__max_size_type): Likewise.
2715 (numeric_limits<__max_size_type>): Likewise.
2716 * include/bits/std_abs.h (abs): Likewise.
2717 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
2718 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2720 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
2722 * include/std/type_traits (__is_integral_helper<INT_N>)
2723 (__is_signed_integer, __is_unsigned_integer)
2724 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
2725 * include/std/limits (__INT_N): Add __extension__ keyword.
2726 * include/bits/random.h (_Select_uint_least_t)
2727 (random_device): Likewise.
2729 2021-07-16 Patrick Palka <ppalka@redhat.com>
2732 * include/std/ranges (_CachedPosition::_M_get): For non-forward
2733 ranges, just call __builtin_unreachable.
2734 * testsuite/std/ranges/istream_view.cc (test05): New test.
2736 2021-07-16 Patrick Palka <ppalka@redhat.com>
2739 * include/std/ranges (split_view::split_view): Use std::move.
2740 (split_view::_Iterator::_Iterator): Remove redundant
2741 default_initializable constraint.
2742 (split_view::_Sentinel::_Sentinel): Declare.
2743 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
2745 2021-07-16 Marek Polacek <polacek@redhat.com>
2747 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
2750 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2752 * include/bits/unique_ptr.h: Adjust doxygen markup.
2754 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2757 * include/std/type_traits: Adjust doxygen markup.
2759 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2761 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
2762 uses of non-standard integer types.
2763 * include/bits/functional_hash.h: Likewise.
2764 * include/bits/iterator_concepts.h: Likewise.
2765 * include/bits/max_size_type.h: Likewise.
2766 * include/bits/std_abs.h: Likewise.
2767 * include/bits/stl_algobase.h: Likewise.
2768 * include/bits/uniform_int_dist.h: Likewise.
2769 * include/ext/numeric_traits.h: Likewise.
2770 * include/std/type_traits: Likewise.
2772 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2775 * include/std/tuple (tuple_element): Improve static_assert text.
2776 (__get_helper): Add deleted overload.
2777 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
2778 __get_helper directly.
2779 (__get_helper2): Remove.
2780 (__find_uniq_type_in_pack): New constexpr helper function.
2781 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
2783 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2785 * testsuite/20_util/tuple/element_access/101427.cc: New test.
2787 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2790 * include/bits/c++config (__replacement_assert): Add noexcept.
2791 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
2792 instead of __replacement_assert.
2794 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
2796 * include/std/string_view (basic_string_view(It, End)): Add
2798 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2799 Check noexcept-specifier. Also check construction without CTAD.
2801 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2804 * include/std/string_view (ends_with): Use traits_type::compare
2807 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2809 * include/std/string_view: Only include <bits/ranges_base.h>
2810 once, and only for C++20 and later.
2812 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
2815 * include/std/span (as_writable_bytes): Add requires-clause.
2816 * testsuite/23_containers/span/101411.cc: New test.
2818 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
2820 * include/std/mutex (__lock_impl): Check
2821 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
2823 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
2826 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
2827 Remove noexcept-specifier.
2828 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
2829 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
2832 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
2834 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
2835 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
2836 Add some more predefined macros.
2837 * include/bits/fs_fwd.h: Move @addtogroup commands inside
2838 namespaces. Add better documentation.
2839 * include/bits/fs_path.h: Likewise.
2840 * include/experimental/bits/fs_fwd.h: Likewise.
2841 * include/experimental/bits/fs_path.h: Likewise.
2842 * include/ext/throw_allocator.h: Fix typo and improve docs.
2843 * include/std/chrono: Move @addtogroup commands.
2844 * include/std/system_error: Move @addtogroup commands.
2845 * libsupc++/exception: Improve documentation.
2846 * libsupc++/exception.h: Add @since documentation.
2848 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2851 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
2852 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
2853 (PREDEFINED): Add/fix some more macros that need to be expanded.
2854 * include/bits/random.h: Stop Doxygen from documenting internal
2855 implementation details.
2856 * include/bits/random.tcc: Likewise.
2857 * include/bits/this_thread_sleep.h: Fix @file name.
2858 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
2859 document internal implementation details.
2860 * include/experimental/bits/simd_detail.h: Do not document
2861 internal implementation details.
2862 * include/experimental/simd: Define Doxygen groups.
2863 * include/experimental/type_traits: Improve documentation for
2864 the header file. Define groups. Use @since commands.
2865 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
2866 declaration before undocumented region.
2867 * include/std/type_traits (true_type, false_type): Use using
2868 declaration instead of typedef.
2869 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
2870 (is_nothrow_invocable_r_v): Move definitions next to other C++17
2872 Do not document internal implementation details. Move misplaced
2873 group-end command. Define group for variable templates.
2874 * include/std/variant: Do not document internal implementation
2876 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2879 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2881 * include/experimental/simd: Do not define anything pre-C++17.
2883 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2885 * include/bits/random.tcc [__cpp_inline_variables]: Remove
2886 redundant definitions of static constexpr member variables.
2887 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2890 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2892 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
2893 explicit instantiation declarations.
2894 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
2895 explicit instantiation definitions.
2897 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2900 * testsuite/17_intro/names.cc: Fix #if condition for names used
2903 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2906 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
2907 Fail gracefully if element_type is incomplete.
2908 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
2909 the standard doesn't require this test to work for array types.
2910 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
2911 types can be used with array specialization.
2912 * testsuite/20_util/unique_ptr/101236.cc: New test.
2914 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2916 * doc/xml/manual/intro.xml: Document LWG 415 change.
2917 * doc/html/manual/bugs.html: Regenerate.
2918 * include/bits/istream.tcc (ws): Create sentry and catch
2920 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
2921 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
2923 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2925 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
2926 directly instead of using _M_write. Do setstate(__err) all
2927 outside the try-catch block.
2928 * include/std/ostream (basic_ostream::_M_write): Declare
2929 private. Use __ostream_insert. Do not define for the versioned
2932 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2934 * doc/xml/manual/intro.xml: Document LWG 581 change.
2935 * doc/html/manual/bugs.html: Regenerate.
2936 * include/bits/basic_ios.tcc: Whitespace.
2937 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
2939 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
2941 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
2943 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
2944 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
2947 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2949 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
2950 is set, not if eofbit is set.
2951 (tellp, seekp, seekp): Create sentry object. Do not set badbit
2953 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2954 Adjust expected behaviour.
2955 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
2957 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
2959 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
2961 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
2962 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
2963 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
2964 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
2966 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2968 * include/std/syncstream (basic_syncbuf::swap()): Remove
2969 noexcept, as per LWG 3498.
2971 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2974 * testsuite/17_intro/names.cc: Undef more names for newlib and
2975 also for arm-none-linux-gnueabi.
2976 * testsuite/experimental/names.cc: Disable PCH.
2978 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
2980 * include/experimental/bits/simd.h (__bit_cast): Implement via
2981 __builtin_bit_cast #if available.
2982 (__proposed::simd_bit_cast): Add overloads for simd and
2983 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
2984 available), which return an object of the requested type with
2985 the same bits as the argument.
2986 * include/experimental/bits/simd_math.h: Use simd_bit_cast
2987 instead of __bit_cast to allow casts to fixed_size_simd.
2988 (copysign): Remove branch that was only required if __bit_cast
2989 cannot be constexpr.
2990 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
2991 from __bit_cast to __proposed::simd_bit_cast since the former
2992 will not cast fixed_size objects anymore.
2994 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2996 * include/experimental/bits/simd_math.h
2997 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
2998 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
3001 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3003 * include/experimental/bits/simd.h (__execute_on_index_sequence)
3004 (__execute_on_index_sequence_with_return)
3005 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
3008 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3010 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
3011 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
3014 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3016 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
3017 implementation doesn't require a _VecBltnBtmsk ABI tag, it
3018 requires either a 64-Byte input (in which case AVX512F must be
3019 available) or AVX512VL.
3021 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3023 * include/experimental/bits/simd_math.h: Undefine internal
3025 (frexp): Move #if to a more sensible position and reformat
3027 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
3028 duplicating the code here.
3029 (modf): Simplify condition.
3031 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3033 * include/experimental/bits/simd_math.h (fabs): Remove
3034 fabs(simd<integral>) overload.
3036 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3038 * include/experimental/bits/simd_converter.h
3039 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
3040 * include/experimental/bits/simd_fixed_size.h
3041 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
3042 arguments by const-ref.
3043 (_S_masked_unary): Pass _SimdTuple by const-ref.
3045 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3047 * include/experimental/bits/simd_fixed_size.h
3048 (_AbisInSimdTuple): Removed.
3050 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3052 * include/experimental/bits/simd.h: Add missing operator~
3053 overload for simd<floating-point> to __float_bitwise_operators.
3054 * include/experimental/bits/simd_builtin.h
3055 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
3056 implement complement for floating-point vectors.
3057 * include/experimental/bits/simd_fixed_size.h
3058 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
3059 copysign implementation of _SimdTuple members.
3060 * include/experimental/bits/simd_math.h (copysign): Call
3061 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
3062 generic copysign implementation using the new ~ operator.
3064 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3066 * testsuite/experimental/simd/README.md: Fix typos.
3068 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3070 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
3072 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
3073 conditional noexcept as per LWG 2762.
3074 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
3075 dereferencing cannot throw.
3076 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
3077 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
3078 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
3080 2021-06-23 Patrick Palka <ppalka@redhat.com>
3083 * testsuite/23_containers/multiset/cons/deduction.cc:
3084 Uncomment CTAD example that was rejected by this bug.
3085 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3087 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3089 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
3092 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3094 * testsuite/experimental/simd/README.md: New file.
3096 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3098 * testsuite/experimental/simd/driver.sh: Rewrite output
3099 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
3100 to be used twice. Add -x and -o short options. Parse long
3101 options with = instead of separating space generically. Parce
3102 contracted short options. Make unrecognized options an error.
3103 If same-line output is active, trap on EXIT to increment the
3104 progress (only with --percentage), erase the line and print the
3106 * testsuite/experimental/simd/generate_makefile.sh: Initialize
3107 helper files for progress account keeping. Update help target
3108 for changes to DRIVEROPTS.
3110 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3112 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
3113 and associated warning.
3114 * testsuite/Makefile.in: Regenerate.
3116 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
3117 Jonathan Wakely <jwakely@redhat.com>
3118 Ulrich Drepper <drepper@redhat.com>
3120 * include/std/chrono (chrono::year::is_leap()): Optimize.
3122 2021-06-23 Patrick Palka <ppalka@redhat.com>
3125 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
3127 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3128 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3129 Mention one of the replaced examples is broken due to PR101174.
3130 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3131 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
3132 ambiguous CTAD examples.
3133 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3135 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3137 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
3139 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3141 * include/std/mutex (__detail::__try_lock_impl): Rename
3142 parameter to avoid clashing with newlib's __lockable macro.
3143 (try_lock): Add 'inline' specifier.
3144 * testsuite/17_intro/names.cc: Add check for __lockable.
3145 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
3147 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3148 Matthias Kretz <m.kretz@gsi.de>
3150 * include/std/mutex (lock): Replace recursion with iteration
3151 when lockables all have the same type.
3152 (__detail::__try_lock_impl): Likewise. Pass lockables as
3153 parameters, instead of a tuple. Always lock the first one, and
3154 recurse for the rest.
3155 (__detail::__lock_impl): Adjust call to __try_lock_impl.
3156 (__detail::__try_to_lock): Remove.
3157 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
3158 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
3160 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
3162 * testsuite/30_threads/try_lock/5.cc: New test.
3164 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3166 * include/std/memory (declare_reachable, undeclare_reachable)
3167 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
3168 (pointer_safety): Only define for C++11 to C++20 inclusive.
3169 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
3171 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3173 * include/bits/random.h (seed_seq): Constrain initializer-list
3175 * include/bits/random.tcc (seed_seq): Add template parameter.
3176 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
3178 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
3181 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
3184 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
3185 Force _M_release() to wake all waiting threads.
3186 * testsuite/30_threads/semaphore/100806.cc: New test.
3188 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
3190 * include/std/mutex (__try_to_lock): Move to __detail namespace.
3191 (struct __try_lock_impl): Replace with ...
3192 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
3193 function templates to implement std::try_lock.
3194 (try_lock): Use new __try_lock_impl.
3195 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
3196 template to implement std::lock.
3197 (lock): Use __lock_impl.
3199 2021-06-21 Patrick Palka <ppalka@redhat.com>
3201 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
3203 2021-06-20 Patrick Palka <ppalka@redhat.com>
3205 * include/std/ranges (__non_propagating_cache::operator bool):
3206 Define for split_view::begin().
3207 (split_view): Define as per P2210.
3208 (views::__detail::__can_split_view): Define.
3209 (views::_Split, views::split): Define.
3210 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3212 * testsuite/std/ranges/adaptors/split.cc: New test.
3213 * testsuite/std/ranges/p2325.cc (test08a): New test.
3214 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
3216 2021-06-20 Patrick Palka <ppalka@redhat.com>
3218 * include/std/ranges: Rename views::split to views::lazy_split,
3219 split_view to lazy_split_view, etc. throughout.
3220 * testsuite/std/ranges/*: Likewise.
3221 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
3222 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
3224 2021-06-20 Patrick Palka <ppalka@redhat.com>
3226 * include/std/ranges (split_view::_OuterIter::__at_end):
3227 Check _M_trailing_empty.
3228 (split_view::_OuterIter::_M_trailing_empty): Define this
3230 (split_view::_OuterIter::operator++): Set _M_trailing_empty
3232 (split_view::_OuterIter::operator==): Compare
3234 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
3235 split parts instead of one.
3236 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
3238 2021-06-20 Patrick Palka <ppalka@redhat.com>
3240 * include/std/ranges (split_view::_InnerIter::base): Define as
3243 2021-06-19 Patrick Palka <ppalka@redhat.com>
3245 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
3246 Consider _Base instead of _Vp as per LWG 3555.
3247 (elements_view::_Iterator::_S_iter_concept): Likewise.
3249 2021-06-19 Patrick Palka <ppalka@redhat.com>
3251 * include/std/ranges (split_view::_OuterIter::value_type::begin):
3252 Remove the non-const overload, and remove the copyable constraint
3253 on the const overload as per LWG 3553.
3255 2021-06-19 Patrick Palka <ppalka@redhat.com>
3257 * include/bits/stl_iterator.h
3258 (__detail::__common_iter_use_postfix_proxy): Add
3259 move_constructible constraint as per LWG 3546.
3260 (common_iterator::__postfix_proxy): Adjust initializer of
3261 _M_keep as per LWG 3546.
3263 2021-06-18 Patrick Palka <ppalka@redhat.com>
3266 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
3267 to limit comparison complexity to 3*N/2.
3268 (__minmax_element_fn::operator()): Likewise.
3269 (shift_right): Avoid premature std::move of __result.
3270 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
3272 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
3275 2021-06-18 Patrick Palka <ppalka@redhat.com>
3277 * include/std/concepts (convertible_to): Just use declval as per
3280 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3283 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
3284 incorrect static_assert with ones matching the 'Mandates'
3285 conditions in the standard.
3286 * testsuite/26_numerics/reduce/95833.cc: New test.
3288 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3290 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
3291 diagnostic pragma to suppress -Wstringop-overread error.
3293 2021-06-18 Patrick Palka <ppalka@redhat.com>
3295 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
3296 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
3297 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
3298 * include/bits/ranges_util.h: ... here.
3299 * include/std/ranges (__detail::find, __detail::find_if)
3300 (__detail::find_if_not, __detail::mismatch): Remove.
3301 (filter_view): Use ranges::find_if instead.
3302 (drop_while_view): Use ranges::find_if_not instead.
3303 (split_view): Use ranges::find and ranges::mismatch instead.
3305 2021-06-18 Patrick Palka <ppalka@redhat.com>
3307 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
3308 default_initializable requirement.
3309 * include/bits/ranges_base.h (ranges::view): Likewise.
3310 * include/bits/ranges_util.h (subrange): Constrain the default
3312 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
3314 (front_insert_iterator): Likewise.
3315 (insert_iterator): Likewise. Remove NSDMIs.
3316 (common_iterator): Constrain the default ctor.
3317 (counted_iterator): Likewise.
3318 * include/bits/stream_iterator.h (ostream_iterator): Remove the
3320 * include/std/ranges (__detail::__box::operator=): Handle
3321 self-assignment in the primary template.
3322 (__detail::__box): In the partial specialization: adjust
3323 constraints as per P2325. Add specialized operator= for the
3324 case when the wrapped type is not copyable. Constrain the
3325 default ctor. Avoid list-initialization.
3326 (single_view): Constraint the default ctor.
3327 (iota_view): Relax semiregular constraint to copyable.
3328 Constrain the default ctor.
3329 (iota_view::_Iterator): Constraint the default ctor.
3330 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
3331 Remove redundant checks for empty _M_stream.
3332 (basic_istream_view::_Iterator): Likewise.
3333 (ref_view): Remove the default ctor. Remove NSDMIs.
3334 (ref_view::_Iterator): Constrain the default ctor.
3335 (__detail::__non_propagating_cache::operator=): Define overload
3336 for assigning from a value of the underlying type.
3337 (filter_view): Likewise.
3338 (filter_view::_Iterator): Likewise.
3339 (transform_view): Likewise.
3340 (transform_view::_Iterator): Likewise.
3341 (take_view): Likewise.
3342 (take_view::_Iterator): Likewise.
3343 (take_while_view): Likewise.
3344 (take_while_view::_Iterator): Likewise.
3345 (drop_while_view): Likewise.
3346 (drop_while_view::_Iterator): Likewise.
3347 (join_view): Likewise.
3348 (split_view::_OuterIter::__current): Adjust after changing the
3350 (split_view::_M_current): Wrap it in a __non_propagating_cache.
3351 (split_view::split_view): Constrain the default ctor.
3352 (common_view): Constrain the default ctor.
3353 (reverse_view): Likewise.
3354 (elements_view): Likewise.
3355 * include/std/span (enable_view<span<_ElementType, _Extent>>):
3356 Define this partial specialization to true unconditionally.
3357 * include/std/version (__cpp_lib_ranges): Adjust value.
3358 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
3359 Don't attempt to default construct a back_insert_iterator.
3360 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
3361 Don't attempt to default construct a front_insert_iterator.
3362 * testsuite/24_iterators/insert_iterator/constexpr.cc:
3363 Don't attempt to default construct an insert_iterator.
3364 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
3365 Remove this test for default constructibility of ostream_iterator.
3366 * testsuite/std/ranges/97600.cc: Don't attempt to default
3367 construct a basic_istream_view.
3368 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
3370 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
3371 (test02): Adjust now that __box is copyable-box not
3374 * testsuite/std/ranges/p2325.cc: New test.
3375 * testsuite/std/ranges/single_view.cc (test06): New test.
3376 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
3377 require default_initializable.
3379 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
3382 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
3383 define when is_constant_evaluated is available.
3384 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
3386 (__constant_string_p, __constant_array_p): Remove.
3387 (char_traits): Use is_constant_evaluated directly.
3388 * include/std/version (__cpp_lib_constexpr_char_traits)
3389 (__cpp_lib_constexpr_string): Only define when
3390 is_constant_evaluated is available.
3392 2021-06-17 Patrick Palka <ppalka@redhat.com>
3395 * include/std/ranges (__adaptor::_Partial): For the "simple"
3396 forwarding partial specializations, also require that
3397 the extra arguments are trivially copyable.
3398 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
3400 2021-06-17 Patrick Palka <ppalka@redhat.com>
3403 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
3404 template form of _S_has_simple_extra_args.
3405 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
3406 parameter pack. Try to treat _S_has_simple_extra_args as a
3407 variable template parameterized by _Args.
3408 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
3409 __adaptor_has_simple_extra_args.
3410 (views::_Take::_S_has_simple_extra_args): Templatize according
3411 to the type of the extra argument.
3412 (views::_Drop::_S_has_simple_extra_args): Likewise.
3413 (views::_Split::_S_has_simple_extra_args): Define.
3414 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3415 Adjust after changes to _S_has_simple_extra_args mechanism.
3418 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3420 * include/bits/iterator_concepts.h (__decay_copy): Name type.
3422 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3424 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3425 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3426 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3427 (ranges::empty, ranges::data, ranges::cdata): Remove final
3428 keywords and deleted operator& overloads.
3429 * testsuite/24_iterators/customization_points/iter_move.cc: Use
3430 new is_customization_point_object function.
3431 * testsuite/24_iterators/customization_points/iter_swap.cc:
3433 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
3435 * testsuite/std/ranges/access/begin.cc: Likewise.
3436 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3437 * testsuite/std/ranges/access/cdata.cc: Likewise.
3438 * testsuite/std/ranges/access/cend.cc: Likewise.
3439 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3440 * testsuite/std/ranges/access/crend.cc: Likewise.
3441 * testsuite/std/ranges/access/data.cc: Likewise.
3442 * testsuite/std/ranges/access/empty.cc: Likewise.
3443 * testsuite/std/ranges/access/end.cc: Likewise.
3444 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3445 * testsuite/std/ranges/access/rend.cc: Likewise.
3446 * testsuite/std/ranges/access/size.cc: Likewise.
3447 * testsuite/std/ranges/access/ssize.cc: Likewise.
3448 * testsuite/util/testsuite_iterators.h
3449 (is_customization_point_object): New function.
3451 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3453 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3454 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3455 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3456 (ranges::empty, ranges::data, ranges::cdata): Make types final.
3457 Add deleted operator& overloads.
3458 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3460 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3461 ill-formed & expressions with using-declarations. Add checks for
3462 other function objects.
3464 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3466 * include/bits/ranges_util.h (view_interface): Add noexcept to
3467 empty, operator bool, data and size members.
3468 (subrange): Add noexcept to constructors.
3469 * include/std/ranges (single_view, ref_view): Add noexcept to
3471 (views::single, views::all): Add noexcept.
3472 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3473 * testsuite/std/ranges/single_view.cc: Likewise.
3475 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3477 * include/bits/ranges_util.h (subrange): Add __size_type typedef
3478 and use it to simplify declarations.
3479 (subrange(i, s, n)): Remove assertion.
3480 * testsuite/std/ranges/subrange/constexpr.cc: New test.
3482 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3484 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3485 Replace with function object.
3486 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3487 __decay_copy unqualified.
3488 * include/bits/ranges_base.h (__member_end, __adl_end):
3489 Likewise. Use __range_iter_t for type of ranges::begin.
3490 (__member_rend): Use correct value category for rbegin argument.
3491 (__member_data): Use __decay_copy unqualified.
3492 (__begin_data): Use __range_iter_t for type of ranges::begin.
3494 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3496 * include/bits/ranges_base.h (ranges::empty): Check whether
3497 conversion to bool can throw.
3498 * testsuite/std/ranges/access/empty.cc: Check for correct
3501 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3504 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
3505 use the type if it's a reference.
3506 * testsuite/20_util/common_reference/100894.cc: New test.
3508 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3510 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3511 Add dg-require-filesystem-ts directive.
3513 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3516 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
3517 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
3519 * testsuite/20_util/any/cons/101034.cc: New test.
3521 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3523 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
3524 -std=gnu++17 option.
3526 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3529 * libsupc++/compare (compare_partial_order_fallback): Add
3530 constraint using reversed parameter order, as per LWG 3465.
3531 * testsuite/18_support/comparisons/algorithms/fallback.cc:
3532 Adjust expected result.
3534 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3536 * libsupc++/compare (__decayed_same_as): New helper concept.
3537 (strong_order, weak_order, partial_order): Constrain with new
3538 concept instead of using static_assert.
3539 (compare_strong_order_fallback, compare_weak_order_fallback)
3540 (compare_partial_order_fallback): Likewise. Do not deduce return
3541 types. Remove redundant if-constexpr checks.
3542 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
3544 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3547 * include/std/tuple: Use reserved form of attribute name.
3548 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
3549 check for no_unique_address.
3550 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
3552 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
3555 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
3557 * include/bits/fs_path.h (operator==, operator<=>): Use new
3558 _S_compare function.
3559 (path::_S_compare): New function to call path::compare in a
3560 context where path::iterator is complete.
3561 * include/experimental/bits/fs_path.h (operator<, operator==):
3562 Define after path::iterator is complete.
3563 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
3565 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3568 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
3570 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
3571 test logic with constexpr check for is_always_lock_free.
3573 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3576 * include/std/optional (optional::operator=(const optional<U>&)):
3577 Fix value category used in is_assignable check.
3578 * testsuite/20_util/optional/assignment/100982.cc: New test.
3580 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3582 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
3583 * include/bits/iterator_concepts.h (indirectly_readable_traits):
3584 Add LWG issue number to comment.
3585 * include/std/memory_resource (polymorphic_allocator::release):
3587 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
3588 dg-warning for deprecation. Also check std::allocator<void>.
3590 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3593 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
3594 Change parameter type from _Tp to _Tp*.
3595 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
3596 coverage of types tested.
3598 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3600 * include/std/barrier (__tree_barrier::_M_arrive): Remove
3601 unnecessary hasher instantiation.
3603 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
3605 * include/experimental/propagate_const (swap): Constrain.
3606 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
3608 2021-06-07 Avi Kivity <avi@scylladb.com>
3611 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
3612 Add missing typename.
3614 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
3617 * include/std/optional (operator<=>(const optional<T>& const U&)):
3618 Add missing constraint and add workaround for template
3620 * testsuite/20_util/optional/relops/three_way.cc: Check that
3621 type without equality comparison cannot be compared when wrapped
3624 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
3627 * include/bits/ranges_base.h (_SSize): Return signed type.
3628 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
3630 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3632 * include/bits/ranges_base.h (_SSize): Return the result of
3633 ranges::size converted to the wider of make-signed-like-t<S> and
3634 ptrdiff_t, rather than the ranges different type.
3635 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
3636 for an iota_view that uses an integer class type for its
3639 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3642 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
3643 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
3645 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3648 * include/bits/iterator_concepts.h (__detail::__decay_copy)
3649 (__detail::__member_begin, __detail::__adl_begin): Move to
3650 namespace ranges::__cust_access.
3651 (__detail::__ranges_begin): Likewise, and rename to __begin.
3652 Remove redundant static assertion.
3653 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
3654 Use lvalue in noexcept specifier.
3655 (__as_const): Add non-deduced parameter for value category.
3656 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
3658 (__member_size, __adl_size, __member_empty, __size0_empty):
3659 (__eq_iter_empty, __adl_data): Use lvalue objects in
3661 (__sentinel_size): Likewise. Add check for conversion to
3663 (__member_data): Allow non-lvalue types to satisfy the concept,
3664 but use lvalue object in requirements.
3665 (_Size, _SSize): Remove forwarding to always use an lvalue.
3666 (_Data): Likewise. Add static assertion for arrays.
3667 * testsuite/std/ranges/access/cdata.cc: Adjust expected
3668 behaviour for rvalues. Add negative tests for ill-formed
3670 * testsuite/std/ranges/access/data.cc: Likewise.
3671 * testsuite/std/ranges/access/empty.cc: Adjust expected
3672 behaviour for rvalues.
3673 * testsuite/std/ranges/access/size.cc: Likewise.
3675 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
3677 * include/std/any (any::_Manager::_S_access): New static
3678 function to access the contained value.
3679 (any::emplace, __any_caster): Use _S_access member of the
3682 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3684 * doc/xml/manual/status_cxx2020.xml:
3685 * doc/html/*: Regenerate.
3686 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
3688 * include/std/version (__cpp_lib_generic_unordered_lookup):
3690 * testsuite/23_containers/unordered_map/operations/1.cc: Check
3692 * testsuite/23_containers/unordered_set/operations/1.cc:
3695 2021-06-03 Patrick Palka <ppalka@redhat.com>
3697 * include/bits/ranges_algo.h (__detail::__can_reread_output):
3698 Factor out this concept from ...
3699 (__unique_copy_fn::operator()): ... here. Use the concept
3701 * testsuite/std/ranges/range.cc: Remove now ill-formed use
3702 of range_value_t on an output_range.
3703 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3704 Define value_type, pointer and reference member types to void.
3706 2021-06-03 Patrick Palka <ppalka@redhat.com>
3709 * include/std/ranges (_RangeAdaptorClosure): Document
3710 _S_has_simple_call_op mechanism.
3711 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
3712 (__closure_has_simple_call_op): New concept.
3713 (__adaptor_has_simple_extra_args): Likewise.
3714 (_Partial<_Adaptor, _Args...>): New partial specialization.
3715 (_Partial<_Adaptor, _Arg>): Likewise.
3716 (_Pipe<_Lhs, _Rhs>): Likewise.
3717 (views::_All::_S_has_simple_call_op): Define to true.
3718 (views::_Filter::_S_has_simple_extra_args): Likewise.
3719 (views::_Transform::_S_has_simple_extra_args): Likewise.
3720 (views::_Take::_S_has_simple_extra_args): Likewise.
3721 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
3722 (views::_Drop::_S_has_simple_extra_args): Likewise.
3723 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
3724 (views::_Join::_S_has_simple_call_op): Likewise.
3725 (views::_Split): Document why we don't define
3726 _S_has_simple_extra_args to true for this adaptor.
3727 (views::_Common::_S_has_simple_call_op): Define to true.
3728 (views::_Reverse::_S_has_simple_call_op): Likewise.
3729 (views::_Elements::_S_has_simple_call_op): Likewise.
3730 * testsuite/std/ranges/adaptors/100577.cc: New test.
3732 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3736 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
3737 Value-initialize subobject.
3738 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
3740 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
3743 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3746 * testsuite/23_containers/unordered_map/96088.cc: Adjust
3747 expected number of allocations.
3748 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3750 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3752 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
3753 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3754 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3755 * doc/html/*: Regenerate.
3757 2021-06-01 Patrick Palka <ppalka@redhat.com>
3760 * testsuite/23_containers/deque/allocator/default_init.cc,
3761 testsuite/23_containers/forward_list/allocator/default_init.cc,
3762 testsuite/23_containers/list/allocator/default_init.cc,
3763 testsuite/23_containers/map/allocator/default_init.cc,
3764 testsuite/23_containers/set/allocator/default_init.cc,
3765 testsuite/23_containers/vector/allocator/default_init.cc,
3766 testsuite/23_containers/vector/bool/allocator/default_init.cc:
3769 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3771 * testsuite/23_containers/unordered_map/96088.cc: Change
3772 effective target to c++17.
3773 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3775 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3777 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
3778 isblank for C++11 and later.
3780 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3783 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
3784 Fix return value for no-op case.
3785 * testsuite/24_iterators/range_operations/advance.cc: Test
3786 return values of three-argument overload.
3788 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3791 * python/Makefile.am: Use archive name for printer hook if no
3792 dynamic library name is available.
3793 * python/Makefile.in: Regenerate.
3795 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
3797 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
3798 Compilers for Linux: Compatibility with GNU Compilers" article.
3799 * doc/html/manual/abi.html: Regenerate.
3801 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
3803 * include/debug/formatter.h
3804 (_Error_formatter::_Parameter::_Named): New.
3805 (_Error_formatter::_Parameter::_Type): Inherit latter.
3806 (_Error_formatter::_Parameter::_M_integer): Likewise.
3807 (_Error_formatter::_Parameter::_M_string): Likewise.
3808 * src/c++11/debug.cc: Include <cstring>.
3809 (_Print_func_t): New.
3810 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
3811 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
3812 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
3813 (print_type): Rename in...
3814 (print_type_info): ...this. Use pretty_print.
3815 (print_address, print_integer): New.
3816 (print_named_name, print_iterator_constness, print_iterator_state): New.
3817 (print_iterator_seq_type): New.
3818 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
3819 (print_field): Use latters.
3820 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
3821 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
3822 Change signature to...
3823 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
3824 ...this and adapt. Remove intermediate buffer to render input string.
3825 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
3827 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
3830 * include/bits/ranges_base.h (advance, distance, next, prev):
3831 Replace function templates with function objects.
3832 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3833 Adjust for changes to function objects.
3834 * testsuite/std/ranges/adaptors/elements.cc: Add using
3835 declarations for names from namespace ranges.
3836 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3837 * testsuite/24_iterators/range_operations/100768.cc: New test.
3839 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
3842 * include/bits/hashtable_policy.h (_Select2nd): New.
3843 (_NodeBuilder<>): New.
3844 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
3845 (_AllocNode<>::operator()): Likewise.
3846 * include/bits/hashtable.h
3847 (_Hashtable<>::__node_builder_t): New.
3848 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
3850 (_Hashtable<>::_S_forward_key): New.
3851 (_Hashtable<>::_M_insert): Use latter.
3852 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
3853 Instantiate node first, compute hash code second.
3854 * testsuite/23_containers/unordered_map/96088.cc: New test.
3855 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
3856 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
3857 * testsuite/23_containers/unordered_set/96088.cc: New test.
3858 * testsuite/util/replacement_memory_operators.h
3859 (counter::_M_increment): New.
3860 (counter::_M_decrement): New.
3861 (counter::reset()): New.
3863 2021-05-24 Patrick Palka <ppalka@redhat.com>
3866 * include/std/ranges (__detail::__non_propagating_cache): Move
3867 definition up to before that of _CachedPosition. Make base
3868 class _Optional_base protected instead of private. Add const
3869 overload for operator*.
3870 (__detail::_CachedPosition): Rewrite the partial specialization
3871 for forward ranges as a derived class of __non_propagating_cache.
3872 Remove the size constraint on the partial specialization for
3873 random access ranges. Add copy/move/copy-assignment/move-assignment
3874 members to the offset partial specialization for random
3875 access ranges that propagate the cached value but additionally
3876 invalidate it in the source object on move.
3877 * testsuite/std/ranges/adaptors/100479.cc: New test.
3879 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
3881 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
3882 call to ranges::next.
3883 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
3884 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
3886 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
3889 2021-05-21 Patrick Palka <ppalka@redhat.com>
3892 * include/std/ranges (drop_while_view::begin): Assert the
3893 precondition added by LWG 3490.
3895 2021-05-21 Patrick Palka <ppalka@redhat.com>
3898 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
3899 Split out this member function from ...
3900 (iota_view::_Sentinel::operator-): ... here, for sake of access
3902 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
3904 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3906 * include/bits/random.tcc (__representable_as_double)
3907 (__p1_representable_as_double): Add "" to static asserts.
3909 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3912 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
3913 (__glibcxx_constexpr_assert): ... this.
3914 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
3915 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
3916 or __glibcxx_assert_impl.
3917 (__glibcxx_assert_2): Remove
3918 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
3919 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
3920 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3921 Adjust expected error.
3922 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3924 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3927 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3929 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3931 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3933 * testsuite/23_containers/span/back_neg.cc: Likewise.
3934 * testsuite/23_containers/span/front_neg.cc: Likewise.
3935 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
3937 2021-05-20 Patrick Palka <ppalka@redhat.com>
3940 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
3941 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
3942 (reverse_iterator::reference): Likewise, but with iter_reference_t.
3943 (reverse_iterator::value_type): Likewise, but with iter_value_t.
3944 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
3945 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
3947 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
3950 * include/std/charconv (to_chars): Hide the overloads for
3951 floating-point types for 16 bit targets.
3952 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
3953 * testsuite/20_util/to_chars/double.cc: Run this test only on
3955 * testsuite/20_util/to_chars/float.cc: Likewise.
3956 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3958 2021-05-18 Patrick Palka <ppalka@redhat.com>
3961 * include/std/ranges (elements_view::_Sentinel::operator-): Use
3962 _M_distance_from in the other operator- overload too.
3963 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
3965 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
3967 * testsuite/lib/prune.exp: Add note about 'dg-note'.
3969 2021-05-18 Patrick Palka <ppalka@redhat.com>
3972 * include/std/ranges (__box::__box): Use non-list-initialization
3973 in member initializer list of in-place constructor of the
3974 partial specialization for semiregular types.
3975 (__box::operator->): Use std::__addressof.
3976 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
3978 * testsuite/std/ranges/single_view.cc (test04): New test.
3980 2021-05-18 Patrick Palka <ppalka@redhat.com>
3983 * include/std/ranges (reverse_view::_S_needs_cached_begin):
3984 Set to true if the underlying non-common random-access range
3985 doesn't have a sized sentinel.
3987 2021-05-18 Patrick Palka <ppalka@redhat.com>
3990 * include/std/ranges (elements_view::_Iterator): Also befriend
3992 (elements_view::_Sentinel::_M_equal): Templatize.
3993 (elements_view::_Sentinel::_M_distance_from): Split out from ...
3994 (elements_view::_Sentinel::operator-): ... here. Depend on
3995 _Base2 instead of _Base in the return type.
3996 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
3999 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
4001 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
4002 until value change observed.
4003 (__waiter_base::_M_laundered): New member.
4004 (__waiter_base::_M_notify): Check _M_laundered to determine
4005 whether to wake one or all.
4006 (__detail::__atomic_compare): Return true if call to
4007 __builtin_memcmp() == 0.
4008 (__waiter_base::_S_do_spin_v): Adjust predicate.
4009 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
4012 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4015 * include/experimental/bits/fs_path.h (__is_constructible_from):
4016 Test construction from a const lvalue, not an rvalue.
4017 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
4018 * testsuite/experimental/filesystem/path/construct/100630.cc:
4021 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
4024 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
4025 Declare (but do not define) partial specialization.
4026 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
4028 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4030 * include/std/thread (jthread::_S_create): Fix static assert
4032 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
4033 * testsuite/30_threads/jthread/jthread.cc: Do not require
4034 pthread effective target.
4035 * testsuite/30_threads/jthread/2.cc: Moved to...
4036 * testsuite/30_threads/jthread/version.cc: ...here.
4038 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4040 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
4041 * doc/Makefile.in: Regenerate.
4042 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
4044 * scripts/run_doxygen (print_usage): Always print to stdout and
4046 (fail): New function for exiting on error.
4047 (parse_options): Handle --latex_cmd. Do not treat --help the
4048 same as errors. Simplify handling of required arguments.
4050 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
4052 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4053 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
4054 warnings. Replace bitwise AND with logical AND in loop
4056 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4057 Replace bitwise AND with logical AND in loop condition.
4058 * testsuite/util/pstl/test_utils.h: Remove unused parameter
4061 2021-05-11 Patrick Palka <ppalka@redhat.com>
4063 * src/c++17/ryu/LOCAL_PATCHES: Update.
4064 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
4065 Remove declarations for never-defined functions.
4066 * testsuite/20_util/to_chars/4.cc: New test.
4068 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4070 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
4071 alternative for macro.
4072 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
4074 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
4077 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4079 * include/bits/allocator.h (allocator<void>) [C++20]: Add
4080 missing noexcept to constructor. Restore missing POCMA and
4081 is_always_equal_traits.
4082 [C++17]: Make construct and destroy members private and
4083 declare allocator_traits as a friend.
4084 * include/bits/memoryfwd.h (allocator_traits): Declare.
4085 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4086 Add nodiscard attribute. Add static assertion for LWG 3307.
4087 * include/ext/new_allocator.h (new_allocator::allocate): Add
4088 static assertion for LWG 3307.
4089 * testsuite/20_util/allocator/void.cc: Check that converting
4090 constructor is noexcept. Check for propagation traits and
4091 size_type and difference_type. Check that pointer and
4092 const_pointer are gone in C++20.
4094 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4096 * include/std/stop_token: Remove TODO comment.
4098 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4100 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
4101 Initialize a non-reference deleter from an rvalue, as per LWG
4103 (__shared_ptr::_UniqCompatible): Add missing constraint.
4104 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
4105 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
4108 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4110 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
4111 -std=gnu++17 from dg-options directive.
4112 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
4114 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
4116 * testsuite/17_intro/headers/c++2017/operator_names.cc:
4118 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
4119 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
4120 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4122 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
4123 * testsuite/18_support/byte/81076.cc: Likewise.
4124 * testsuite/18_support/byte/global_neg.cc: Likewise.
4125 * testsuite/18_support/byte/ops.cc: Likewise.
4126 * testsuite/18_support/byte/requirements.cc: Likewise.
4127 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
4128 * testsuite/18_support/launder/1.cc: Likewise.
4129 * testsuite/18_support/launder/nodiscard.cc: Likewise.
4130 * testsuite/18_support/launder/requirements.cc: Likewise.
4131 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
4132 * testsuite/18_support/new_aligned.cc: Likewise.
4133 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
4135 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
4137 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
4138 * testsuite/20_util/addressof/requirements/constexpr.cc:
4140 * testsuite/20_util/as_const/1.cc: Likewise.
4141 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
4142 * testsuite/20_util/bind/83427.cc: Likewise.
4143 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
4144 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
4145 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4147 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
4149 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
4150 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
4152 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
4153 * testsuite/20_util/from_chars/requirements.cc: Likewise.
4154 * testsuite/20_util/function/91456.cc: Likewise.
4155 * testsuite/20_util/function/cons/deduction.cc: Likewise.
4156 * testsuite/20_util/function_objects/83607.cc: Likewise.
4157 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
4158 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
4159 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
4160 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
4161 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
4163 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
4165 * testsuite/20_util/has_unique_object_representations/value.cc:
4167 * testsuite/20_util/hash/nullptr.cc: Likewise.
4168 * testsuite/20_util/in_place/requirements.cc: Likewise.
4169 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
4170 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
4172 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
4174 * testsuite/20_util/is_aggregate/value.cc: Likewise.
4175 * testsuite/20_util/is_invocable/83395.cc: Likewise.
4176 * testsuite/20_util/is_invocable/91456.cc: Likewise.
4177 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
4179 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
4181 * testsuite/20_util/is_invocable/value.cc: Likewise.
4182 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
4183 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
4184 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
4185 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
4187 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
4188 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
4189 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
4191 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
4193 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
4194 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
4196 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
4198 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
4200 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
4202 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
4204 * testsuite/20_util/is_swappable/value.cc: Likewise.
4205 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
4207 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
4209 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
4210 * testsuite/20_util/logical_traits/83134.cc: Likewise.
4211 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
4213 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
4215 * testsuite/20_util/logical_traits/value.cc: Likewise.
4216 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
4217 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
4218 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
4220 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
4221 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
4222 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
4223 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
4224 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
4226 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
4228 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
4229 * testsuite/20_util/to_chars/3.cc: Likewise.
4230 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
4231 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
4232 * testsuite/20_util/to_chars/requirements.cc: Likewise.
4233 * testsuite/20_util/tuple/78939.cc: Likewise.
4234 * testsuite/20_util/tuple/apply/1.cc: Likewise.
4235 * testsuite/20_util/tuple/apply/2.cc: Likewise.
4236 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
4237 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
4238 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
4239 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
4240 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
4241 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
4242 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
4244 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
4245 * testsuite/20_util/void_t/1.cc: Likewise.
4246 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
4247 * testsuite/24_iterators/container_access.cc: Likewise.
4248 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
4250 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
4252 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4254 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
4256 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
4257 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
4259 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
4260 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
4262 * testsuite/26_numerics/lcm/1.cc: Likewise.
4263 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4264 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
4265 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
4267 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
4269 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
4271 * testsuite/27_io/types/4.cc: Likewise.
4272 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
4273 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
4274 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4276 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4278 * testsuite/20_util/function_objects/searchers.cc: Remove
4279 -std=gnu++17 from dg-options directive.
4280 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
4282 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4284 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
4286 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
4288 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
4290 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4292 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
4294 * testsuite/25_algorithms/clamp/1.cc: Likewise.
4295 * testsuite/25_algorithms/clamp/2.cc: Likewise.
4296 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
4297 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
4299 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
4301 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
4302 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
4304 * testsuite/25_algorithms/sample/1.cc: Likewise.
4305 * testsuite/25_algorithms/sample/2.cc: Likewise.
4306 * testsuite/25_algorithms/sample/3.cc: Likewise.
4307 * testsuite/25_algorithms/sample/81221.cc: Likewise.
4308 * testsuite/25_algorithms/search/searcher.cc: Likewise.
4309 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
4310 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
4311 * testsuite/26_numerics/reduce/1.cc: Likewise.
4312 * testsuite/26_numerics/reduce/2.cc: Likewise.
4313 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
4314 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
4315 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
4317 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4319 * testsuite/23_containers/array/cons/deduction.cc: Remove
4320 -std=gnu++17 from dg-options directive.
4321 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
4322 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4324 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
4326 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4328 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
4329 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
4331 * testsuite/23_containers/forward_list/cons/deduction.cc:
4333 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
4335 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
4336 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
4338 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
4339 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4340 * testsuite/23_containers/map/modifiers/insert/83226.cc:
4342 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4344 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
4345 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
4347 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4348 * testsuite/23_containers/multimap/modifiers/extract.cc:
4350 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
4351 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4352 * testsuite/23_containers/multiset/modifiers/extract.cc:
4354 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
4355 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
4356 * testsuite/23_containers/queue/deduction.cc: Likewise.
4357 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
4359 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4360 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4361 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
4362 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
4363 * testsuite/23_containers/stack/deduction.cc: Likewise.
4364 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
4366 * testsuite/23_containers/unordered_map/cons/deduction.cc:
4368 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4370 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
4372 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
4374 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
4376 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4378 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
4380 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
4382 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4384 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
4386 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
4388 * testsuite/23_containers/unordered_set/cons/deduction.cc:
4390 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4392 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
4394 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
4396 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
4397 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
4398 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
4401 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4403 * testsuite/21_strings/basic_string/79162.cc: Remove
4404 -std=gnu++17 from dg-options directive.
4405 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
4406 * testsuite/21_strings/basic_string/cons/char/79162.cc:
4408 * testsuite/21_strings/basic_string/cons/char/86138.cc:
4410 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
4411 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
4413 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
4415 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
4416 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
4418 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
4420 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
4421 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4423 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
4425 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
4426 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
4427 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
4428 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
4430 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
4432 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
4434 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
4436 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4438 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4440 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4442 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4444 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4446 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4448 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4450 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4452 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4454 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4456 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4458 * testsuite/21_strings/basic_string/operators/char/5.cc:
4460 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4462 * testsuite/21_strings/basic_string_view/capacity/1.cc:
4464 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4466 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4468 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4470 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4472 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4474 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4476 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4478 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4480 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4482 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4484 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4486 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4488 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4490 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4492 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4494 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4496 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4498 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4500 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4502 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
4504 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4506 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
4508 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4510 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
4512 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
4514 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4516 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
4517 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
4519 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
4521 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
4523 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
4525 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
4527 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
4529 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
4531 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
4533 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
4535 * testsuite/21_strings/basic_string_view/literals/types.cc:
4537 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
4539 * testsuite/21_strings/basic_string_view/literals/values.cc:
4541 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4543 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4545 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4547 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4549 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4551 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4553 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
4555 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
4557 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
4559 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
4561 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
4563 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
4565 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
4567 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
4569 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
4571 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
4573 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
4575 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
4577 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4579 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4581 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
4583 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
4585 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
4587 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
4589 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
4591 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
4593 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
4595 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
4597 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
4599 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
4601 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
4603 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
4605 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
4607 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
4609 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
4611 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
4613 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
4615 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4617 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
4619 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4621 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
4623 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
4625 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
4627 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
4629 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
4631 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4633 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4635 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4637 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4639 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4641 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4643 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4645 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4647 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
4649 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
4651 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
4652 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
4653 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
4655 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4657 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4659 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
4660 from dg-options directive.
4661 * testsuite/20_util/memory_resource/2.cc: Likewise.
4662 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
4663 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
4665 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4667 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
4669 * testsuite/20_util/monotonic_buffer_resource/release.cc:
4671 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
4673 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
4674 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
4676 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
4677 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
4678 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
4680 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
4682 * testsuite/20_util/synchronized_pool_resource/cons.cc:
4684 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
4686 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
4688 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
4690 * testsuite/20_util/synchronized_pool_resource/options.cc:
4692 * testsuite/20_util/synchronized_pool_resource/release.cc:
4694 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
4696 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
4698 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4700 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
4702 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
4704 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
4706 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
4708 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4710 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4711 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
4713 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4715 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
4717 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4718 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
4719 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4720 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
4721 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4722 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
4724 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4725 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
4727 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4728 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
4729 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4731 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
4733 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4735 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
4737 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4739 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
4741 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4743 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
4745 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4746 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
4748 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4750 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4752 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
4754 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
4755 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
4756 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
4757 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
4758 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
4759 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
4760 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
4761 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
4763 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
4765 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
4766 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
4767 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
4769 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
4770 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
4772 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
4773 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
4774 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
4775 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
4777 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4779 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
4780 dg-options directive.
4781 * testsuite/20_util/any/assign/2.cc: Likewise.
4782 * testsuite/20_util/any/assign/emplace.cc: Likewise.
4783 * testsuite/20_util/any/assign/exception.cc: Likewise.
4784 * testsuite/20_util/any/assign/self.cc: Likewise.
4785 * testsuite/20_util/any/cons/1.cc: Likewise.
4786 * testsuite/20_util/any/cons/2.cc: Likewise.
4787 * testsuite/20_util/any/cons/90415.cc: Likewise.
4788 * testsuite/20_util/any/cons/92156.cc: Likewise.
4789 * testsuite/20_util/any/cons/aligned.cc: Likewise.
4790 * testsuite/20_util/any/cons/explicit.cc: Likewise.
4791 * testsuite/20_util/any/cons/in_place.cc: Likewise.
4792 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
4793 * testsuite/20_util/any/make_any.cc: Likewise.
4794 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4795 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
4796 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
4797 * testsuite/20_util/any/misc/swap.cc: Likewise.
4798 * testsuite/20_util/any/modifiers/1.cc: Likewise.
4799 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
4800 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
4801 * testsuite/20_util/any/observers/type.cc: Likewise.
4802 * testsuite/20_util/any/requirements.cc: Likewise.
4803 * testsuite/20_util/any/typedefs.cc: Likewise.
4804 * testsuite/20_util/optional/77288.cc: Likewise.
4805 * testsuite/20_util/optional/84601.cc: Likewise.
4806 * testsuite/20_util/optional/assignment/1.cc: Likewise.
4807 * testsuite/20_util/optional/assignment/2.cc: Likewise.
4808 * testsuite/20_util/optional/assignment/3.cc: Likewise.
4809 * testsuite/20_util/optional/assignment/4.cc: Likewise.
4810 * testsuite/20_util/optional/assignment/5.cc: Likewise.
4811 * testsuite/20_util/optional/assignment/6.cc: Likewise.
4812 * testsuite/20_util/optional/assignment/7.cc: Likewise.
4813 * testsuite/20_util/optional/assignment/8.cc: Likewise.
4814 * testsuite/20_util/optional/assignment/9.cc: Likewise.
4815 * testsuite/20_util/optional/bad_access.cc: Likewise.
4816 * testsuite/20_util/optional/cons/77727.cc: Likewise.
4817 * testsuite/20_util/optional/cons/85642.cc: Likewise.
4818 * testsuite/20_util/optional/cons/copy.cc: Likewise.
4819 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
4820 * testsuite/20_util/optional/cons/default.cc: Likewise.
4821 * testsuite/20_util/optional/cons/move.cc: Likewise.
4822 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4823 * testsuite/20_util/optional/cons/value.cc: Likewise.
4824 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
4825 * testsuite/20_util/optional/constexpr/cons/default.cc:
4827 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
4828 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
4829 * testsuite/20_util/optional/constexpr/make_optional.cc:
4831 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
4832 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
4833 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
4834 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
4835 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
4836 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
4837 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
4838 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
4839 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
4840 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
4841 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
4842 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
4843 * testsuite/20_util/optional/hash.cc: Likewise.
4844 * testsuite/20_util/optional/in_place.cc: Likewise.
4845 * testsuite/20_util/optional/make_optional.cc: Likewise.
4846 * testsuite/20_util/optional/nullopt.cc: Likewise.
4847 * testsuite/20_util/optional/observers/1.cc: Likewise.
4848 * testsuite/20_util/optional/observers/2.cc: Likewise.
4849 * testsuite/20_util/optional/observers/3.cc: Likewise.
4850 * testsuite/20_util/optional/observers/4.cc: Likewise.
4851 * testsuite/20_util/optional/observers/5.cc: Likewise.
4852 * testsuite/20_util/optional/observers/6.cc: Likewise.
4853 * testsuite/20_util/optional/relops/1.cc: Likewise.
4854 * testsuite/20_util/optional/relops/2.cc: Likewise.
4855 * testsuite/20_util/optional/relops/3.cc: Likewise.
4856 * testsuite/20_util/optional/relops/4.cc: Likewise.
4857 * testsuite/20_util/optional/relops/5.cc: Likewise.
4858 * testsuite/20_util/optional/relops/6.cc: Likewise.
4859 * testsuite/20_util/optional/relops/7.cc: Likewise.
4860 * testsuite/20_util/optional/requirements.cc: Likewise.
4861 * testsuite/20_util/optional/swap/1.cc: Likewise.
4862 * testsuite/20_util/optional/swap/2.cc: Likewise.
4863 * testsuite/20_util/optional/typedefs.cc: Likewise.
4864 * testsuite/20_util/variant/80165.cc: Likewise.
4865 * testsuite/20_util/variant/85183.cc: Likewise.
4866 * testsuite/20_util/variant/86874.cc: Likewise.
4867 * testsuite/20_util/variant/87431.cc: Likewise.
4868 * testsuite/20_util/variant/87619.cc: Likewise.
4869 * testsuite/20_util/variant/91807.cc: Likewise.
4870 * testsuite/20_util/variant/any.cc: Likewise.
4871 * testsuite/20_util/variant/compile.cc: Likewise.
4872 * testsuite/20_util/variant/deduction.cc: Likewise.
4873 * testsuite/20_util/variant/exception_safety.cc: Likewise.
4874 * testsuite/20_util/variant/hash.cc: Likewise.
4875 * testsuite/20_util/variant/index_type.cc: Likewise.
4876 * testsuite/20_util/variant/relops/89851.cc: Likewise.
4877 * testsuite/20_util/variant/relops/90008.cc: Likewise.
4878 * testsuite/20_util/variant/run.cc: Likewise.
4879 * testsuite/20_util/variant/visit.cc: Likewise.
4881 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4883 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
4884 -std=gnu++17 from dg-options directive.
4885 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
4886 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
4887 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
4888 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
4889 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
4890 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
4891 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
4892 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
4894 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
4895 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
4896 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
4897 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
4898 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
4899 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
4901 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
4902 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
4904 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4906 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
4907 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
4908 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
4909 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
4910 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
4911 * testsuite/27_io/filesystem/operations/create_directories.cc:
4913 * testsuite/27_io/filesystem/operations/create_directory.cc:
4915 * testsuite/27_io/filesystem/operations/create_symlink.cc:
4917 * testsuite/27_io/filesystem/operations/current_path.cc:
4919 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
4920 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
4921 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
4922 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
4923 * testsuite/27_io/filesystem/operations/last_write_time.cc:
4925 * testsuite/27_io/filesystem/operations/permissions.cc:
4927 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
4928 * testsuite/27_io/filesystem/operations/read_symlink.cc:
4930 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
4931 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
4932 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
4933 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
4934 * testsuite/27_io/filesystem/operations/resize_file.cc:
4936 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
4937 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
4938 * testsuite/27_io/filesystem/operations/symlink_status.cc:
4940 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
4942 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
4944 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
4945 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
4946 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
4947 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
4948 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
4949 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4950 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
4951 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
4952 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
4953 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
4954 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
4955 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
4956 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
4957 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
4958 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
4959 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
4960 * testsuite/27_io/filesystem/path/construct/default.cc:
4962 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
4963 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
4964 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
4965 * testsuite/27_io/filesystem/path/construct/string_view.cc:
4967 * testsuite/27_io/filesystem/path/decompose/extension.cc:
4969 * testsuite/27_io/filesystem/path/decompose/filename.cc:
4971 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4973 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
4975 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
4977 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
4979 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
4981 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
4982 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4984 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4985 * testsuite/27_io/filesystem/path/generation/normal.cc:
4987 * testsuite/27_io/filesystem/path/generation/normal2.cc:
4989 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4991 * testsuite/27_io/filesystem/path/generation/relative.cc:
4993 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
4994 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
4996 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
4997 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
4998 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4999 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
5000 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
5001 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
5002 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
5004 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
5006 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
5008 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
5010 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
5011 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
5012 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
5014 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
5015 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
5016 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
5017 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
5019 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
5020 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
5021 * testsuite/27_io/filesystem/path/query/has_extension.cc:
5023 * testsuite/27_io/filesystem/path/query/has_filename.cc:
5025 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
5027 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
5029 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
5031 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
5033 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
5035 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
5036 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
5038 * testsuite/27_io/filesystem/path/query/is_relative.cc:
5040 * testsuite/experimental/filesystem/path/construct/string_view.cc:
5043 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5045 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5046 Remove -std=gnu++17 from dg-options.
5047 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5049 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5051 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5053 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5054 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5056 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5058 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5060 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5062 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5064 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5066 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5068 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5070 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5072 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5074 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5076 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5078 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5080 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5082 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5084 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5086 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5088 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5090 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5092 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5094 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5096 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5098 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5100 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5102 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5104 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5106 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5108 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5110 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5112 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5114 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5116 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5118 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5120 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5122 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5124 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
5125 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5127 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5129 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5131 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5133 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5135 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
5136 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
5137 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
5138 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
5139 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
5140 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
5141 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
5142 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5144 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
5145 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
5146 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5148 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5151 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5153 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
5154 for additional errors in C++20.
5155 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5157 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
5158 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5160 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5162 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
5163 clash with std::any.
5165 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
5167 * include/std/istream (__rvalue_stream_extraction_t): Replace
5168 use of __rval_streamable.
5169 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
5170 (__rval_streamable): Remove.
5171 (_Require_derived_from_ios_base, __derived_from_ios_base): New
5172 helper for checking constraints.
5173 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
5174 reference to the wrong subclause of the standard.
5175 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5177 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5179 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5181 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
5183 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
5186 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5188 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
5189 Improve static_assert messages.
5190 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
5191 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
5193 2021-05-06 Patrick Palka <ppalka@redhat.com>
5195 * include/std/ranges (filter_view::_Iterator::base): Make the
5196 const& overload unconstrained and return a const reference as
5197 per LWG 3533. Make unconditionally noexcept.
5198 (transform_view::_Iterator::base): Likewise.
5199 (elements_view::_Iterator::base): Likewise.
5201 2021-05-06 Patrick Palka <ppalka@redhat.com>
5203 * include/bits/stl_iterator.h (move_iterator::base): Make the
5204 const& overload unconstrained and return a const reference as
5205 per LWG 3391. Make unconditionally noexcept.
5206 (counted_iterator::base): Likewise.
5207 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
5208 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
5209 has_member_base concept to decay-copy the result of base().
5211 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5213 * include/std/type_traits (remove_cvref_t): Define in terms of
5215 * testsuite/20_util/remove_cvref/value.cc: Check alias.
5217 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5220 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5222 * include/std/charconv (__from_chars_alnum): Pass unsigned
5223 char to std::isdigit.
5225 2021-05-05 Patrick Palka <ppalka@redhat.com>
5227 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
5228 Remove constraints on this partial specialization.
5229 * include/std/ranges (enable_borrowed_range<iota_view>):
5232 2021-05-05 Patrick Palka <ppalka@redhat.com>
5234 * include/std/ranges (transform_view::_Iterator::iter_swap):
5235 Remove as per LWG 3520.
5236 (join_view::_Iterator::iter_swap): Add indirectly_swappable
5237 constraint as per LWG 3517.
5239 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5241 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
5243 * testsuite/20_util/function_objects/invoke/version.cc: New test.
5245 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5247 * include/std/charconv (__from_chars_alnum): Pass unsigned
5248 char to std::isdigit.
5250 2021-05-05 Corentin Gay <gay@adacore.com>
5252 * acinclude.m4: Add VxWorks-specific case for the
5253 configuration of ctypes.
5254 * configure: Regenerate.
5255 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
5257 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
5258 * config/os/vxworks/ctype_configure_char.cc: Likewise.
5259 * config/os/vxworks/ctype_inline.h: Likewise.
5260 * testsuite/28_regex/traits/char/isctype.cc: Defines
5261 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
5262 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
5264 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5266 * include/std/future (promise::set_value): Check for existence
5267 of shared state before dereferncing it.
5268 (promise::set_exception, promise::set_value_at_thread_exit)
5269 (promise::set_exception_at_thread_exit): Likewise.
5270 (promise<R&>::set_value, promise<R&>::set_exception)
5271 (promise<R&>::set_value_at_thread_exit)
5272 (promise<R&>::set_exception_at_thread_exit): Likewise.
5273 (promise<void>::set_value, promise<void>::set_exception)
5274 (promise<void>::set_value_at_thread_exit)
5275 (promise<void>::set_exception_at_thread_exit): Likewise.
5276 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
5277 Remove unused variable.
5279 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5281 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
5282 Do not do arithmetic on null pointer.
5284 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5286 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
5287 (find_key_pointer(key_const_reference, false_type))
5288 (find_key_pointer(key_const_reference, true_type)): Do not
5289 dereference null pointer.
5291 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5293 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
5295 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
5296 non-zero value to null pointer.
5297 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
5298 Use past-the-end iterator for result.
5299 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
5300 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
5302 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5305 * include/std/variant (__get_t): New alias template yielding the
5306 return type of std::get<N> on a variant.
5307 (__visit_result_t): New alias template yielding the result of
5309 (__same_types): Move into namespace __detail::__variant.
5310 (__check_visitor_results): Likewise. Use __invoke_result_t and
5312 (__check_visitor_result): Remove.
5313 (visit): Use __visit_result_t for return type.
5314 * testsuite/20_util/variant/100384.cc: New test.
5316 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5318 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
5319 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
5320 * config.h.in: Regenerate.
5321 * configure: Regenerate.
5322 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
5323 * include/bits/random.h (_Select_uint_least_t<s, 1>):
5324 Use __SIZEOF_INT128__ to decide whether to use __int128.
5325 * include/std/charconv (__to_chars_unsigned_type): Likewise.
5327 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
5329 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
5330 * doc/html/manual/facets.html: Regenerate.
5332 2021-04-30 Patrick Palka <ppalka@redhat.com>
5334 * include/std/ranges (__detail::__non_propating_cache): Define
5336 (join_view): Remove constraints on the value and reference types
5337 of the wrapped iterator type as per P2328.
5338 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
5339 (join_view::_Iterator::operator++): Likewise.
5340 (join_view::_M_inner): Use __non_propating_cache as per P2328.
5341 Remove now-redundant use of __maybe_present_t.
5342 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
5345 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5347 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
5348 Only define for C++17 and later.
5349 * include/std/version (__cpp_lib_semaphore): Fix condition
5350 to match the one in <semaphore>.
5352 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5354 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
5355 * config.h.in: Regenerate.
5356 * configure: Regenerate.
5357 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
5358 * include/bits/postypes.h: Remove include of <stdint.h> and
5359 definition/undefinition of the __STDC_LIMIT_MACROS and
5360 __STDC_CONSTANT_MACROS macros.
5361 (streamoff): Use __INT64_TYPE__ if defined.
5363 2021-04-30 Patrick Palka <ppalka@redhat.com>
5365 * include/std/ranges (split_view::_InnerIter::operator++):
5366 Depend on _Base instead of _Vp directly, as per LWG 3532.
5368 2021-04-30 Patrick Palka <ppalka@redhat.com>
5370 * include/bits/ranges_util.h (subrange::subrange): Avoid
5371 list-initialization in delegating constructor.
5372 * include/std/ranges (single_view): Replace implicit guide
5373 with explicit deduction guide that decays its argument.
5374 (_Single::operator()): Avoid CTAD when constructing the
5376 (_Iota::operator()): Avoid list-initialization.
5377 (__detail::__can_filter_view, _Filter::operator()): Likewise.
5378 (__detail::__can_transform_view, _Transform::operator()): Likewise.
5379 (take_view::begin): Likewise.
5380 (__detail::__can_take_view, _Take::operator()): Likewise.
5381 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
5382 (__detail::__can_drop_view, _Drop::operator()): Likewise.
5383 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
5384 (split_view::split_view): Use views::single when initializing
5386 (__detail::__can_split_view, _Split::operator()): Avoid
5387 list-initialization.
5388 (_Counted::operator()): Likewise.
5389 * testsuite/std/ranges/p2367.cc: New test.
5391 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5394 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
5396 * include/bits/basic_string.tcc (basic_string::swap)
5397 (basic_string::assign): Likewise.
5398 * include/bits/deque.tcc (deque::operator=(const deque&)):
5400 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
5402 * include/bits/vector.tcc (vector::operator=(const vector&)):
5405 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5407 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
5409 * include/std/ostream (operator<<(Ostream&&, const x&)):
5411 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
5412 Adjust dg-error pattern.
5413 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
5415 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
5416 is_extractable trait to replace std::__is_extractable. Make it
5417 work with rvalue streams as well as lvalues, to replace f() and
5418 g() helper functions.
5419 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5421 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5422 Define is_insertable trait to replace std::__is_insertable. Make
5423 it work with rvalue streams as well as lvalues, to replace f()
5424 and g() helper functions.
5425 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5427 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
5428 errors from new constraints.
5429 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
5430 which are no longer expected to compile.
5431 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
5432 Verify LWG 1203 changes.
5434 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5437 * include/experimental/socket (__basic_socket_impl::set_option)
5438 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5439 Just set error code.
5440 * testsuite/experimental/net/socket/socket_base.cc: CHeck
5441 for <sys/socket.h> not <socket.h>.
5443 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5448 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5449 Use new effective-target keyword.
5450 * testsuite/experimental/net/internet/address/v4/cons.cc:
5452 * testsuite/experimental/net/internet/address/v4/creation.cc:
5454 * testsuite/experimental/net/internet/address/v4/members.cc:
5456 * testsuite/experimental/net/internet/address/v6/members.cc:
5458 * testsuite/experimental/net/internet/resolver/base.cc:
5460 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5462 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5464 * testsuite/experimental/net/internet/socket/opt.cc:
5466 * testsuite/experimental/net/internet/tcp.cc:
5468 * testsuite/experimental/net/internet/udp.cc:
5470 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5471 New proc to check net_ts_ip et.
5473 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5476 * testsuite/20_util/pair/requirements/structural.cc: New test.
5478 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5480 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5481 new definitions for constructors and assignment operators using
5482 concepts for constraints.
5483 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5485 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5486 expected error messages to also match C++20 errors.
5488 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5491 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5492 Combine and replace with ...
5493 (_PCC::_DeprConsPair): New SFINAE helper function.
5494 (pair): Merge preprocessor blocks so that all C++03 members
5495 are defined together at the end.
5496 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5497 Replace _T1 and _T2 parameters with __null_ptr_constant and
5499 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
5500 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
5501 * testsuite/20_util/pair/cons/99957.cc: New test.
5503 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5505 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
5506 * include/std/version (__cpp_lib_constexpr_string): Define.
5507 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5508 Check for __cpp_lib_constexpr_string.
5509 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
5511 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
5513 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5515 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
5516 dealing with errors. Use '@' to prevent shell command being
5518 * doc/Makefile.in: Regenerate.
5520 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5523 * include/bits/std_thread.h (thread::hardware_concurrency): Add
5524 missing noexcept to inline definition for non-gthreads targets.
5526 2021-04-28 Patrick Palka <ppalka@redhat.com>
5532 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
5533 the __value_comp lambda an explicit bool return type.
5534 (__is_permutation_fn::operator()): Give the __proj_scan local
5535 variable auto&& return type. Give the __comp_scan lambda an
5536 explicit bool return type.
5537 (__remove_fn::operator()): Give the __pred lambda an explicit
5539 (__partition_fn::operator()): Don't std::move __first twice
5540 when returning an empty subrange.
5541 (__min_fn::operator()): Don't std::move __comp.
5542 (__max_fn::operator()): Likewise.
5543 (__minmax_fn::operator()): Likewise.
5545 2021-04-27 Patrick Palka <ppalka@redhat.com>
5548 * include/std/ranges (join_view::_Iterator::operator++): Correct
5549 the return type of the lambda to avoid returning a copy of
5550 _M_parent->_M_inner.
5551 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
5553 2021-04-27 Jakub Jelinek <jakub@redhat.com>
5556 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5559 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5561 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5564 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5566 * include/experimental/internet (address_v6::bytes_type): Adjust
5568 (basic_endpoint): Define _M_is_v6() to put all checks for
5569 AF_INET6 in one place.
5570 (basic_endpoint::resize): Simplify.
5571 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
5572 (operator!=(const tcp&, const tcp&)): Likewise.
5573 (operator==(const udp&, const udp&)): Likewise.
5574 (operator!=(const udp&, const udp&)): Likewise.
5575 * testsuite/experimental/net/internet/tcp.cc: New test.
5576 * testsuite/experimental/net/internet/udp.cc: New test.
5578 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5581 * include/experimental/internet (resolver_errc, resolver_category())
5582 (make_error_code, make_error_condition): Define unconditionally,
5583 only make enumerators and use of gai_strerror depend on the
5584 availability of <netdb.h>.
5585 (address_v4::to_string): Use correct constant for string length.
5586 (address_v4::to_string, address_v6::to_string): Define
5587 unconditionally, throw if unsupported.
5588 (make_address_v4, make_address_v6): Define unconditionally.
5589 Return an error if unsupported.
5590 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
5592 * testsuite/experimental/net/internet/socket/opt.cc: Check for
5593 <netinet/in.h> and <netinet/tcp.h> before using types from
5596 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5599 * include/experimental/internet (resolver_base::flags):
5600 Define overloaded operators as hidden friends.
5601 * include/experimental/socket (socket_base::message_flags):
5604 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5606 * include/experimental/internet (tcp::no_delay, v6_only)
5607 (unicast::hops, multicast::hops, multicast::enable_loopback):
5608 Change access of base class and static data members. Add
5609 using-declaration for __socket_crtp::operator=(_Tp).
5610 (multicast::__mcastopt): New type.
5611 (multicast::join_group, multicast::leave_group): Derive from
5612 __mcastopt for common implementation.
5613 * include/experimental/socket: Add comment.
5614 * testsuite/experimental/net/internet/socket/opt.cc: New test.
5615 * testsuite/experimental/net/socket/socket_base.cc: Check for
5616 protected constructor/destructor of socket_base. Check for
5617 explicit constructors of socket option classes.
5619 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5621 * include/experimental/bits/net.h (__socket_base): Add
5622 bool template parameter to allow BooleanSocketOption and
5623 IntegerSocketOption to have different __socket_base<int>
5625 (__socket_base<bool>): Adjust base class.
5626 (__socket_base<int>): Add partial specialization.
5627 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
5628 * include/experimental/socket (socket_base::broadcast)
5629 (socket_base::debug, socket_base::do_not_route)
5630 (socket_base::keep_alive, socket_base::linger)
5631 (socket_base::out_of_band_inline)
5632 (socket_base::receive_buffer_size)
5633 (socket_base::receive_low_watermark)
5634 (socket_base::reuse_address, socket_base::send_buffer_size)
5635 (socket_base::send_low_watermark): Add using-declaration for
5636 __socket_crtp::operator=(_Tp).
5637 * testsuite/experimental/net/socket/socket_base.cc: Check
5638 properties of socket option types.
5640 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5642 * include/experimental/internet (resolver_base::flags): Remove
5643 enumerators. Initialize constants directly with desired values.
5644 Make all operators constexpr and noexcept.
5645 * testsuite/experimental/net/internet/resolver/base.cc: Use
5646 __gnu_test::test_bitmask_values for bitmask type. Check
5647 construction and destruction is protected.
5649 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5651 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
5653 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5656 * include/experimental/internet (net::ip::make_error_code)
5657 (net::ip::make_error_condition, net::ip::make_network_v4)
5658 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
5660 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
5662 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
5663 (add_options_for_libatomic): Use atomic_link_flags.
5665 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5668 * include/experimental/io_context (io_context): Define
5669 dummy_pollfd type so that most member functions still compile
5670 without <poll.h> and struct pollfd.
5672 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5674 * include/experimental/io_context (io_context::async_wait): Add
5676 * include/experimental/socket (basic_socket::async_connect):
5677 Cast wait_type constant to int.
5678 (basic_datagram_socket::async_receive): Likewise.
5679 (basic_datagram_socket::async_receive_from): Likewise.
5680 (basic_datagram_socket::async_send): Likewise.
5681 (basic_datagram_socket::async_send_to): Likewise.
5682 (basic_stream_socket::async_receive): Likewise.
5683 (basic_stream_socket::async_send): Likewise. Use io_context
5684 parameter directly, instead of via an executor.
5685 (basic_socket_acceptor::async_accept): Likewise.
5687 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5689 * include/experimental/socket (socket_base::shutdown_type):
5690 (socket_base::wait_type, socket_base::message_flags):
5691 Remove enumerators. Initialize constants directly with desired
5693 (socket_base::message_flags): Make all operators constexpr and
5695 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
5697 * testsuite/experimental/net/socket/socket_base.cc: New test.
5699 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
5701 * config/os/aix/atomicity.h: Delete.
5703 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5705 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
5706 Handle system_clock as well as steady_clock.
5707 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
5708 * testsuite/30_threads/semaphore/try_acquire_until.cc:
5711 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5713 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
5714 options for libatomic.
5716 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5718 * config/os/gnu-linux/os_defines.h: Fix type in comment.
5720 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5723 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
5724 is not an array type.
5725 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
5726 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
5728 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
5730 * include/bits/atomic_wait.h: Always notify waiters in the
5731 case of 'bare' address notification.
5733 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5736 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5738 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5741 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5744 * include/bits/semaphore_base.h: Remove #error.
5745 * include/std/semaphore: Do not define anything unless one of
5746 the implementations is available.
5748 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5750 * include/bits/semaphore_base.h: Always reload __old in
5751 __atomic_semaphore::_S_do_try_acquire().
5752 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5755 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
5756 Jonathan Wakely <jwakely@redhat.com>
5759 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
5760 * python/Makefile.in: Regenerate.
5762 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5764 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
5765 member to __platform_wait.
5767 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
5769 * include/std/latch: Replace tab characters in license text.
5770 * include/std/semaphore: Likewise.
5772 2021-04-21 Jakub Jelinek <jakub@redhat.com>
5775 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
5776 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
5777 * configure: Regenerated.
5778 * config.h.in: Regenerated.
5780 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5782 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
5783 test for targets not using futexes for semaphores.
5784 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5785 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5786 Disable for all targets.
5788 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
5790 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
5791 * include/Makefile.in: Regenerate.
5792 * include/bits/this_thread_sleep.h: New file.
5793 * include/bits/atomic_base.h: Adjust all calls
5794 to __atomic_wait/__atomic_notify for new call signatures.
5795 * include/bits/atomic_timed_wait.h: Extensive rewrite.
5796 * include/bits/atomic_wait.h: Likewise.
5797 * include/bits/semaphore_base.h: Adjust all calls
5798 to __atomic_wait/__atomic_notify for new call signatures.
5799 * include/std/atomic: Likewise.
5800 * include/std/barrier: Likewise.
5801 * include/std/latch: Likewise.
5802 * include/std/semaphore: Likewise.
5803 * include/std/thread (this_thread::sleep_for)
5804 (this_thread::sleep_until): Move to new header.
5805 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
5807 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5808 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5809 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5810 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
5811 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
5812 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
5814 2021-04-20 Patrick Palka <ppalka@redhat.com>
5817 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
5819 (move_iterator): Derive from the above in C++20 in order to
5820 conditionally define iterator_category as per P2259.
5821 (move_iterator::__base_cat): No longer used, so remove.
5822 (move_iterator::iterator_category): Remove in C++20.
5823 (__detail::__common_iter_use_postfix_proxy): Define.
5824 (common_iterator::_Proxy): Rename to ...
5825 (common_iterator:__arrow_proxy): ... this.
5826 (common_iterator::__postfix_proxy): Define as per P2259.
5827 (common_iterator::operator->): Adjust.
5828 (common_iterator::operator++): Adjust as per P2259.
5829 (iterator_traits<common_iterator>::_S_iter_cat): Define.
5830 (iterator_traits<common_iterator>::iterator_category): Change as
5832 (__detail::__counted_iter_value_type): Define.
5833 (__detail::__counted_iter_concept): Define.
5834 (__detail::__counted_iter_cat): Define.
5835 (counted_iterator): Derive from the above three classes in order
5836 to conditionally define value_type, iterator_concept and
5837 iterator category respectively as per P2259.
5838 (counted_iterator::operator->): Define as per P2259.
5839 (incrementable_traits<counted_iterator>): Remove as per P2259.
5840 (iterator_traits<counted_iterator>): Adjust as per P2259.
5841 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
5842 (iota_view::_Iterator): Derive from the above in order to
5843 conditionally define iterator_category as per P2259.
5844 (iota_view::_S_iter_cat): Rename to ...
5845 (iota_view::_S_iter_concept): ... this.
5846 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
5847 (iota_view::iterator_category): Remove.
5848 (__detail::__filter_view_iter_cat): Define.
5849 (filter_view::_Iterator): Derive from the above in order to
5850 conditionally define iterator_category as per P2259.
5851 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
5852 (filter_view::_Iterator::iterator_category): Remove.
5853 (transform_view::_Base): Define.
5854 (transform_view::__iter_cat): Define.
5855 (transform_view::_Iterator): Derive from the above in order to
5856 conditionally define iterator_category as per P2259.
5857 (transform_view::_Iterator::_Base): Just alias
5858 transform_view::_Base.
5859 (transform_view::_Iterator::_S_iter_cat): Move to struct
5860 transform_view::__iter_cat.
5861 (transform_view::_Iterator::iterator_category): Remove.
5862 (transform_view::_Sentinel::_Base): Just alias
5863 transform_view::_Base.
5864 (join_view::_Base): Define.
5865 (join_view::_Outer_iter): Define.
5866 (join_view::_Inner_iter): Define.
5867 (join_view::_S_ref_is_glvalue): Define.
5868 (join_view::__iter_cat): Define.
5869 (join_view::_Iterator): Derive from it in order to conditionally
5870 define iterator_category as per P2259.
5871 (join_view::_Iterator::_Base): Just alias join_view::_Base.
5872 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
5873 join_view::_S_ref_is_glvalue.
5874 (join_view::_Iterator::_S_iter_cat): Move to struct
5875 transform_view::__iter_cat.
5876 (join_view::_Iterator::_Outer_iter): Just alias
5877 join_view::_Outer_iter.
5878 (join_view::_Iterator::_Inner_iter): Just alias
5879 join_view::_Inner_iter.
5880 (join_view::_Iterator::iterator_category): Remove.
5881 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
5882 (__detail::__split_view_outer_iter_cat): Define.
5883 (__detail::__split_view_inner_iter_cat): Define.
5884 (split_view::_Base): Define.
5885 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
5886 in order to conditionally define iterator_category as per P2259.
5887 (split_view::_Outer_iter::iterator_category): Remove.
5888 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
5889 in order to conditionally define iterator_category as per P2259.
5890 (split_view::_Inner_iter::_S_iter_cat): Move to
5891 __split_view_inner_iter_cat.
5892 (split_view::_Inner_iter::iterator_category): Remove.
5893 (elements_view::_Base): Define.
5894 (elements_view::__iter_cat): Define.
5895 (elements_view::_Iterator): Derive from the above in order to
5896 conditionall define iterator_category as per P2259.
5897 (elements_view::_Iterator::_Base): Just alias
5898 elements_view::_Base.
5899 (elements_view::_Iterator::_S_iter_concept)
5900 (elements_view::_Iterator::iterator_concept): Define as per
5902 (elements_view::_Iterator::iterator_category): Remove.
5903 (elements_view::_Sentinel::_Base): Just alias
5904 elements_view::_Base.
5905 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5906 Adjust constraints on iterator_traits<counted_iterator>.
5907 * testsuite/std/ranges/p2259.cc: New test.
5909 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5912 * include/std/charconv (__cpp_lib_to_chars): Define
5914 * include/std/version (__cpp_lib_to_chars): Likewise..
5915 * testsuite/20_util/from_chars/4.cc: Only check feature test
5916 macro, not _GLIBCXX_HAVE_USELOCALE.
5917 * testsuite/20_util/from_chars/5.cc: Likewise.
5918 * testsuite/20_util/from_chars/6.cc: Likewise.
5919 * testsuite/20_util/to_chars/long_double.cc: Likewise.
5921 2021-04-20 Jakub Jelinek <jakub@redhat.com>
5923 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
5924 versions with _IEEE128_ substring are found, set ieee_version_found
5925 to true. Ignore missing symbols with _IEEE128_ in version name if
5926 !ieee_version_found. Use i->first as version_name instead of
5927 i->second.version_name if the latter is empty.
5928 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5930 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
5932 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
5935 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5937 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5938 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5940 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5942 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5943 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5944 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
5945 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5946 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5947 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5949 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5951 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
5952 add libatomic options for 32-bit sparc*-*-linux-gnu.
5954 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5957 * libsupc++/Makefile.am: Add atomicity.cc here.
5958 * src/c++98/Makefile.am: Remove it from here.
5959 * libsupc++/Makefile.in: Regenerate.
5960 * src/c++98/Makefile.in: Regenerate.
5961 * testsuite/18_support/exception_ptr/96657.cc: New test.
5963 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5966 * include/std/bit: Only include <ext/numeric_traits.h> for
5967 hosted build, use <limits> otherwise.
5969 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5971 * doc/xml/manual/backwards_compatibility.xml: Remove porting
5972 notes for libg++ and libstdc++-v2, and bibliography.
5973 * doc/html/*: Regenerated.
5975 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5978 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
5979 Remove helper concept.
5980 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
5981 deduction guides, as per LWG 3404.
5982 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
5983 template argument deduction fails.
5985 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5987 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
5988 Adjust expected error for C++20 mode.
5989 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
5992 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5995 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
5996 standard headers and XFAIL for effective-target c++20.
5998 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
6001 * include/debug/helper_functions.h (__can_advance(_InputIterator,
6002 const std::pair<_Diff, _Distance_precision>&, int)): New.
6003 (__can_advance(const _Safe_iterator<>&,
6004 const std::pair<_Diff, _Distance_precision>&, int)): New.
6005 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
6007 (__glibcxx_check_can_increment_range): Adapt to use latter.
6008 (__glibcxx_check_can_decrement_range): Likewise.
6009 * include/debug/safe_iterator.h
6010 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6012 (__can_advance(const _Safe_iterator<>&,
6013 const std::pair<_Diff, _Distance_precision>&, int)): New.
6014 * include/debug/safe_iterator.tcc
6015 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6017 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
6018 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
6020 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
6021 (__copy_move_backward_a): Likewise.
6022 (__equal_aux): Likewise.
6023 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
6024 const std::pair<_Diff, _Distance_precision>&, int)): New.
6025 (__can_advance(const std::move_iterator<>&,
6026 const std::pair<_Diff, _Distance_precision>&, int)): New.
6027 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
6029 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6032 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
6033 to be a valid constexpr function in C++11.
6034 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
6036 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6038 * include/bits/fs_fwd.h: Fix doxygen group command.
6039 * include/bits/streambuf_iterator.h: Likewise.
6040 * include/bits/uses_allocator_args.h: Likewise.
6041 * include/std/memory: Likewise.
6042 * include/tr1/complex: Likewise.
6044 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6046 * include/bits/basic_string.h: Tweak doxygen comment.
6048 2021-04-08 Patrick Palka <ppalka@redhat.com>
6050 * include/std/ranges (__detail::find): Define.
6051 (split_view::_OuterIter::operator++): Apply proposed resolution
6053 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
6055 2021-04-08 Patrick Palka <ppalka@redhat.com>
6057 * include/std/ranges (__detail::find_if): Simplify.
6058 (__detail::find_if_not): Likewise.
6059 (__detail::min): Remove.
6060 (__detail::mismatch): Simplify.
6061 (take_view::size): Use std::min instead of __detail::min.
6063 2021-04-08 Patrick Palka <ppalka@redhat.com>
6065 * include/std/ranges (__detail::__returnable_element): New
6067 (elements_view): Use this concept in its constraints. Add
6068 missing private access specifier.
6069 (elements_view::_S_get_element): Define as per LWG 3502.
6070 (elements_view::operator*, elements_view::operator[]): Use
6072 (elements_view::operator++): Remove unnecessary constraint
6074 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
6076 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6078 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
6079 out-of-memory error in log file.
6080 * doc/Makefile.in: Regenerate.
6082 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6084 * configure: Regenerate.
6086 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6088 * include/bits/random.h: Fix doxygen group commands.
6089 * include/bits/regex_constants.h: Likewise.
6090 * include/tr1/random.h: Likewise.
6092 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6094 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
6095 New function to determine noexcept-specifier for move
6097 (_Hashtable): Use _S_nothrow_move() on move constructors.
6098 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
6099 Correct static assertion message.
6100 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
6102 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
6104 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
6107 2021-04-08 Patrick Palka <ppalka@redhat.com>
6110 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
6111 on targets without a large long double. XFAIL the execution on
6112 targets with a non-conforming printf.
6114 2021-04-08 Patrick Palka <ppalka@redhat.com>
6117 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
6118 (__adaptor::__adaptor_invocable): New concept.
6119 (__adaptor::__adaptor_partial_app_viable): New concept.
6120 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
6121 non-template base class.
6122 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
6124 (__adaptor::_Partial): New class template that represents
6125 partial application of a range adaptor non-closure.
6126 (__adaptor::__pipe_invocable): New concept.
6127 (__adaptor::_Pipe): New class template.
6128 (__detail::__can_ref_view): New concept.
6129 (__detail::__can_subrange): New concept.
6130 (all): Replace the lambda here with ...
6131 (_All): ... this functor. Add appropriate constraints.
6132 (__detail::__can_filter_view): New concept.
6133 (filter, _Filter): As in all/_All.
6134 (__detail::__can_transform): New concept.
6135 (transform, _Transform): As in all/_All.
6136 (__detail::__can_take_view): New concept.
6137 (take, _Take): As in all/_All.
6138 (__detail::__can_take_while_view): New concept.
6139 (take_while, _TakeWhile): As in all/_All.
6140 (__detail::__can_drop_view): New concept.
6141 (drop, _Drop): As in all/_All.
6142 (__detail::__can_drop_while_view): New concept.
6143 (drop_while, _DropWhile): As in all/_All.
6144 (__detail::__can_join_view): New concept.
6145 (join, _Join): As in all/_All.
6146 (__detail::__can_split_view): New concept.
6147 (split, _Split): As in all/_All. Rename template parameter
6149 (__detail::__already_common): New concept.
6150 (__detail::__can_common_view): New concept.
6151 (common, _Common): As in all/_All.
6152 (__detail::__can_reverse_view): New concept.
6153 (reverse, _Reverse): As in all/_All.
6154 (__detail::__can_elements_view): New concept.
6155 (elements, _Elements): As in all/_All.
6156 (keys, values): Adjust.
6157 * testsuite/std/ranges/adaptors/99433.cc: New test.
6158 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
6159 adding empty range adaptor closure objects to a pipeline doesn't
6160 increase the size of the pipeline.
6162 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
6163 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
6164 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
6165 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
6166 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
6167 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
6168 * testsuite/std/ranges/adaptors/p2281.cc: New test.
6169 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
6170 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
6173 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
6174 expected error message.
6175 (test02): Likewise. Extend test.
6176 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
6177 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
6178 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
6181 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6183 * include/std/string_view: Adjust Doxygen @file comment.
6185 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6187 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
6188 specialization to not match incomplete enum types. Use a
6189 requires-expression instead of instantiating is_convertible.
6190 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
6191 * testsuite/20_util/is_scoped_enum/value.cc: Check with
6192 incomplete types and opaque-enum-declarations.
6194 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
6197 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
6198 non-const member on _M_pathname, to avoid copy-on-write.
6199 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6200 Check construction from strings that might be shared.
6202 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6204 * include/bits/move.h (forward, move, move_if_noexcept)
6205 (addressof): Add _GLIBCXX_NODISCARD.
6206 * include/bits/ranges_cmp.h (identity::operator()): Add
6207 nodiscard attribute.
6208 * include/c_global/cstddef (to_integer): Likewise.
6209 * include/std/bit (bit_cast): Likewise.
6210 * include/std/utility (as_const, to_underlying): Likewise.
6212 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6214 * include/bits/move.h (forward): Change static_assert message
6215 to be unambiguous about what must be true.
6216 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
6217 * testsuite/20_util/forward/f_neg.cc: Likewise.
6219 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6221 * include/bits/alloc_traits.h: Use markdown for code font.
6222 * include/bits/basic_string.h: Fix @param names.
6223 * include/bits/max_size_type.h: Remove period after @file.
6224 * include/bits/regex.h: Fix duplicate @retval names, and rename.
6225 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
6226 group open to match existing group close.
6227 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
6230 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6232 * include/bits/atomic_base.h: Fix doxygen group close.
6233 * include/bits/basic_ios.h: Likewise.
6234 * include/bits/forward_list.h: Likewise.
6235 * include/bits/fs_dir.h: Likewise.
6236 * include/bits/fs_ops.h: Likewise.
6237 * include/bits/fs_path.h: Likewise.
6238 * include/bits/functional_hash.h: Likewise.
6239 * include/bits/gslice.h: Likewise.
6240 * include/bits/gslice_array.h: Likewise.
6241 * include/bits/hashtable_policy.h: Likewise.
6242 * include/bits/indirect_array.h: Likewise.
6243 * include/bits/locale_classes.h: Likewise.
6244 * include/bits/locale_facets.h: Likewise.
6245 * include/bits/locale_facets_nonio.h: Likewise.
6246 * include/bits/mask_array.h: Likewise.
6247 * include/bits/refwrap.h: Likewise.
6248 * include/bits/regex.h: Likewise.
6249 * include/bits/regex_automaton.h: Likewise.
6250 * include/bits/regex_compiler.h: Likewise.
6251 * include/bits/regex_constants.h: Likewise.
6252 * include/bits/regex_error.h: Likewise.
6253 * include/bits/regex_executor.h: Likewise.
6254 * include/bits/regex_scanner.h: Likewise.
6255 * include/bits/shared_ptr.h: Likewise.
6256 * include/bits/shared_ptr_atomic.h: Likewise.
6257 * include/bits/shared_ptr_base.h: Likewise.
6258 * include/bits/slice_array.h: Likewise.
6259 * include/bits/specfun.h: Likewise.
6260 * include/bits/std_function.h: Likewise.
6261 * include/bits/std_mutex.h: Likewise.
6262 * include/bits/stl_deque.h: Likewise.
6263 * include/bits/stl_iterator.h: Likewise.
6264 * include/bits/stl_iterator_base_types.h: Likewise.
6265 * include/bits/stl_map.h: Likewise.
6266 * include/bits/stl_multimap.h: Likewise.
6267 * include/bits/stl_multiset.h: Likewise.
6268 * include/bits/stl_numeric.h: Likewise.
6269 * include/bits/stl_pair.h: Likewise.
6270 * include/bits/stl_set.h: Likewise.
6271 * include/bits/stl_uninitialized.h: Likewise.
6272 * include/bits/stream_iterator.h: Likewise.
6273 * include/bits/streambuf_iterator.h: Likewise.
6274 * include/bits/unique_ptr.h: Likewise.
6275 * include/bits/unordered_map.h: Likewise.
6276 * include/bits/unordered_set.h: Likewise.
6277 * include/decimal/decimal: Likewise.
6278 * include/experimental/any: Likewise.
6279 * include/experimental/array: Likewise.
6280 * include/experimental/bits/fs_dir.h: Likewise.
6281 * include/experimental/bits/fs_fwd.h: Likewise.
6282 * include/experimental/bits/fs_ops.h: Likewise.
6283 * include/experimental/bits/fs_path.h: Likewise.
6284 * include/experimental/buffer: Likewise.
6285 * include/experimental/internet: Likewise.
6286 * include/experimental/optional: Likewise.
6287 * include/experimental/propagate_const: Likewise.
6288 * include/experimental/socket: Likewise.
6289 * include/ext/pb_ds/assoc_container.hpp: Likewise.
6290 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
6292 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
6293 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
6294 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
6295 * include/ext/pb_ds/exception.hpp: Likewise.
6296 * include/ext/pb_ds/priority_queue.hpp: Likewise.
6297 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
6298 * include/ext/random: Likewise.
6299 * include/std/any: Likewise.
6300 * include/std/atomic: Likewise.
6301 * include/std/bitset: Likewise.
6302 * include/std/chrono: Likewise.
6303 * include/std/complex: Likewise.
6304 * include/std/condition_variable: Likewise.
6305 * include/std/fstream: Likewise.
6306 * include/std/future: Likewise.
6307 * include/std/iostream: Likewise.
6308 * include/std/istream: Likewise.
6309 * include/std/mutex: Likewise.
6310 * include/std/numeric: Likewise.
6311 * include/std/ostream: Likewise.
6312 * include/std/ratio: Likewise.
6313 * include/std/shared_mutex: Likewise.
6314 * include/std/stdexcept: Likewise.
6315 * include/std/streambuf: Likewise.
6316 * include/std/system_error: Likewise.
6317 * include/std/thread: Likewise.
6318 * include/std/valarray: Likewise.
6319 * include/std/variant: Likewise.
6320 * include/tr1/cmath: Likewise.
6321 * include/tr1/regex: Likewise.
6322 * include/tr2/dynamic_bitset: Likewise.
6323 * libsupc++/atomic_lockfree_defines.h: Likewise.
6324 * libsupc++/exception: Likewise.
6325 * libsupc++/exception.h: Likewise.
6326 * libsupc++/exception_ptr.h: Likewise.
6327 * libsupc++/nested_exception.h: Likewise.
6329 2021-03-31 Alexandre Oliva <oliva@adacore.com>
6331 * testsuite/30_threads/future/members/poll.cc: Use faster
6332 after-ready call in the calibration loop.
6334 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
6336 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
6337 * doc/html/manual/status.html: Regenerate.
6339 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
6341 * include/debug/forward_list
6342 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
6343 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
6344 call to safe container allocator aware move constructor.
6345 * include/debug/vector (vector(vector&&, const allocator_type&)):
6346 Fix noexcept qualification.
6347 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
6348 Add allocator-extended move constructor noexceot qualification check.
6349 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
6351 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
6353 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
6355 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
6356 New helper functions and callback.
6357 (random_device::_M_init): Add 'prng' and 'all' enumerators.
6358 Replace switch with fallthrough with a series of 'if' statements.
6359 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
6361 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
6363 (random_device::_M_getval): Check for callback unconditionally
6364 and always pass _M_file pointer.
6365 * testsuite/26_numerics/random/random_device/85494.cc: Remove
6366 effective-target check. Use new random_device_available helper.
6367 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
6368 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
6369 Remove effective-target check.
6370 * testsuite/26_numerics/random/random_device/cons/default.cc:
6372 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
6373 new random_device_available helper. Test "prng" token.
6374 * testsuite/util/testsuite_random.h (random_device_available):
6375 New helper function.
6377 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
6379 * include/debug/string
6380 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
6381 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
6382 (basic_string<>::erase): Adapt to take __const_iterator.
6383 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
6384 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
6385 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
6386 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
6387 (__gnu_debug::u16string, __gnu_debug::u32string): New.
6388 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
6389 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
6390 * testsuite/util/exception/safety.h
6391 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
6392 (insert_base<__gnu_debug::basic_string<>>): Likewise.
6393 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
6394 New partial specialization.
6395 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
6396 * testsuite/21_strings/basic_string/requirements/citerators.cc:
6397 Add test on __gnu_debug::string.
6398 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
6399 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
6400 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
6402 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
6404 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
6406 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
6408 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
6410 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
6412 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
6414 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
6416 2021-03-25 Jakub Jelinek <jakub@redhat.com>
6419 * testsuite/18_support/source_location/consteval.cc (main): Adjust
6420 expected column numbers.
6421 * testsuite/18_support/source_location/1.cc (main): Likewise.
6423 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6425 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
6427 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6429 * testsuite/util/exception/safety.h (setup_base::generate):
6430 Support seeding random engine.
6431 (erase_point, erase_range): Adjust range of random numbers to
6432 ensure dereferenceable iterators are used where required.
6433 (generation_prohibited::run): Do not try to erase from empty
6435 * testsuite/util/testsuite_containergen.h (test_containers):
6436 Support seeding random engine.
6438 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6440 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6441 line with a check that uses the const being/end overloads.
6443 2021-03-23 Moritz Sichert <sichert@in.tum.de>
6445 * include/std/ranges (reverse_view::begin, reverse_view::end):
6446 Qualify make_reverse_iterator calls to avoid ADL.
6447 * testsuite/std/ranges/adaptors/reverse.cc: Test that
6448 views::reverse works when make_reverse_iterator is defined
6449 in an associated namespace.
6451 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6453 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6454 Do not define when compiling with Clang.
6456 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6458 * include/std/string_view (basic_string_view(Range&&)): Define new
6459 constructor and deduction guide.
6460 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6461 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6463 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6465 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6466 Add missing 'noexcept' as per LWG 2280.
6467 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6468 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6469 * testsuite/24_iterators/range_access/range_access.cc: Check for
6470 expected noexcept specifiers. Check result types of generic
6471 std::begin and std::end overloads.
6472 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6473 Check for expected noexcept specifiers.
6474 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6477 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
6479 * include/std/type_traits (is_scoped_enum): Define.
6480 * include/std/version (__cpp_lib_is_scoped_enum): Define.
6481 * testsuite/20_util/is_scoped_enum/value.cc: New test.
6482 * testsuite/20_util/is_scoped_enum/version.cc: New test.
6484 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6487 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6488 std::once_flag symbols.
6489 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6490 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6491 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6493 * config/abi/pre/gnu.ver: Likewise.
6494 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6495 (struct __once_flag_compat): Remove.
6496 (_ZNSt9once_flag11_M_activateEv): Remove.
6497 (_ZNSt9once_flag9_M_finishEb): Remove.
6499 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6502 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
6503 Revert to pthread_once_t implementation.
6504 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
6505 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6506 (struct __once_flag_compat): New type matching the reverted
6507 implementation of once_flag using futexes.
6508 (once_flag::_M_activate): Remove, replace with ...
6509 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
6510 (once_flag::_M_finish): Remove, replace with ...
6511 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
6512 * testsuite/30_threads/call_once/66146.cc: Removed.
6514 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6516 * testsuite/17_intro/names.cc: Exclude j from the list
6517 of test symbols for Darwin.
6519 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6521 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
6522 to_chars and from_chars for long double.
6524 2021-03-15 Patrick Palka <ppalka@redhat.com>
6526 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
6528 (__max_size_type::operator++): Define.
6529 (__max_size_type::operator--): Likewise.
6530 (__max_size_type::operator<=>): Conditionally define (in place
6531 of the other comparison operators).
6532 (__max_diff_type::operator _Tp): Fix formatting.
6533 (__max_diff_type::operator++): Define.
6534 (__max_diff_type::operator--): Likewise.
6535 (__max_diff_type::operator<=>): Conditionally define (in place
6536 of the other comparison operators).
6537 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
6538 these operator overloads.
6540 2021-03-15 Caroline Tice <cmtice@google.com>
6543 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
6544 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
6545 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
6547 * src/Makefile.in: Regenerate.
6549 2021-03-11 Patrick Palka <ppalka@redhat.com>
6551 * src/c++17/floating_to_chars.cc: Simplify the file as if
6552 __SIZEOF_INT128__ is always defined.
6553 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
6554 a base-10 to_chars overload for the uint128_t class type.
6555 * src/c++17/uint128_t.h: New file.
6556 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
6557 execution FAIL on targets that have a large long double type
6560 2021-03-11 Patrick Palka <ppalka@redhat.com>
6562 * src/c++17/ryu/LOCAL_PATCHES: Update.
6563 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
6564 * src/c++17/ryu/generic_128.h: Likewise.
6565 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
6566 Use uint128_t instead of __uint128_t.
6567 (generic_binary_to_decimal): Likewise.
6569 2021-03-11 Patrick Palka <ppalka@redhat.com>
6571 * src/c++17/ryu/LOCAL_PATCHES: New file.
6573 2021-03-11 Patrick Palka <ppalka@redhat.com>
6575 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
6576 defined alias of unsigned __int128.
6577 (floating_type_traits_binary128::mantissa_t): Use uint128_t
6578 instead of unsigned __int128.
6579 (floating_type_traits<long double>::mantissa_t)
6580 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
6581 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
6582 and uint32_t explicit. Simplify the extraction of mantissa,
6583 exponent and sign bit.
6585 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6587 * include/std/barrier (barrier::arrival_token): New move-only
6588 class that encapsulates the underlying token value.
6590 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6592 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
6593 instead of unqualified() method.
6595 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6598 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
6599 Use acq_rel memory ordering.
6601 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6604 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
6605 helper function to check for permission denied errors.
6606 * src/filesystem/dir.cc (recursive_directory_iterator):
6608 * src/filesystem/dir-common.h (is_permission_denied_error): New
6611 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6614 * include/bits/random.h (normal_distribution): Use
6615 default-initializer for _M_saved and _M_saved_available.
6617 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
6619 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
6620 link with libatomic.
6621 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6622 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6623 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6624 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6625 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6626 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6627 * testsuite/30_threads/barrier/completion.cc: Likewise.
6628 * testsuite/30_threads/latch/3.cc: Likewise.
6629 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
6630 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
6631 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6633 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6636 * include/bits/align.h: Include debug/assertions.h.
6637 * include/bits/codecvt.h: Include bits/c++config.h.
6638 * include/bits/enable_special_members.h: Likewise.
6639 * include/bits/erase_if.h: Likewise.
6640 * include/bits/functional_hash.h: Include <type_traits>.
6641 * include/bits/invoke.h: Include bits/move.h.
6642 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
6643 * include/bits/parse_numbers.h: Include <type_traits>.
6644 * include/bits/predefined_ops.h: Include bits/c++config.h.
6645 * include/bits/range_access.h: Include bits/stl_iterator.h.
6646 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
6647 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
6648 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
6649 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
6650 * include/bits/unique_lock.h: Include bits/std_mutex.h.
6651 * include/debug/assertions.h: Include bits/c++config.h.
6653 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6655 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
6656 (ranges::equal_to, ranges::not_equal_to): Do not constrain
6657 with __eq_builtin_ptr_cmp.
6658 (ranges::less, ranges::greater, ranges::less_equal)
6659 (ranges::greater_equal): Do not constrain with
6660 __less_builtin_ptr_cmp.
6661 * libsupc++/compare (compare_three_way): Do not constrain with
6662 __3way_builtin_ptr_cmp.
6663 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
6664 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
6665 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
6667 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6669 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
6670 C++20 calendar types.
6672 2021-03-06 Jakub Jelinek <jakub@redhat.com>
6675 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
6676 two _Nd which the compiler can pattern match the rotates.
6678 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
6681 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
6682 Make storage larger than required. Verify no write to the last
6684 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
6687 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6689 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6690 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6692 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6693 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6696 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6698 * include/experimental/bits/simd.h: Replace reserved _X, _B by
6700 * include/experimental/bits/simd_builtin.h: Likewise.
6701 * include/experimental/bits/simd_x86.h: Likewise.
6703 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
6706 * include/std/chrono (year_month_day::_M_days_since_epoch()):
6707 Convert chrono::month and chrono::day to unsigned before
6708 converting to uint32_t.
6710 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6712 * include/std/chrono (year_month_day::_S_from_days): Perform
6713 all calculations with type uint32_t.
6715 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6717 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
6718 * doc/html/manual/abi.html: Regenerate.
6720 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6723 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
6724 FILE instead of FILE.
6726 2021-02-25 Andreas Schwab <schwab@suse.de>
6728 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6729 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
6730 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6731 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6733 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6736 * include/std/chrono (year_month_day::_S_from_days): Cast long
6739 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6741 * include/std/utility (to_underlying): Define.
6742 * include/std/version (__cpp_lib_to_underlying): Define.
6743 * testsuite/20_util/to_underlying/1.cc: New test.
6744 * testsuite/20_util/to_underlying/version.cc: New test.
6746 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6749 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
6750 before value to be printed.
6752 2021-02-24 Patrick Palka <ppalka@redhat.com>
6754 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
6755 Relax the condition that guards the printf code path to accept
6756 F128_type as well as long double.
6758 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6760 * include/std/chrono (year_month_day_last:day): New
6763 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6765 * include/std/chrono (year::is_leap): New implementation.
6766 * testsuite/std/time/year/2.cc: New test.
6768 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6770 * include/std/chrono (year_month_day::_M_days_since_epoch):
6772 * testsuite/std/time/year_month_day/4.cc: New test.
6774 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6776 * include/std/chrono (year_month_day::_S_from_days): New
6778 * testsuite/std/time/year_month_day/3.cc: New test.
6780 2021-02-24 Patrick Palka <ppalka@redhat.com>
6783 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
6784 (test01): Simplify verifying the nearby values by using a
6785 2-iteration loop and a dedicated output buffer to check that the
6786 nearby values are different. Factor out the printf-based
6787 verification into a local function, and check that the leading
6788 hex digits agree before comparing to the output of printf. Also
6789 verify the output by round-tripping it through from_chars.
6791 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6794 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
6795 symbols for long double arguments mangled as 'g'.
6796 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
6797 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
6798 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
6799 Use -mabi=ibmlongdouble for floating_to_chars.cc.
6800 * src/c++17/Makefile.in: Regenerate.
6801 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
6802 New type defining type traits of IEEE binary128 format.
6803 (floating_type_traits<__float128>): Define specialization.
6804 (floating_type_traits<long double>): Define in terms of
6805 floating_type_traits_binary128 when appropriate.
6806 (floating_to_shortest_scientific): Handle __float128.
6807 (sprintf_ld): New function template for printing a long double
6808 or __ieee128 value using sprintf.
6809 (__floating_to_chars_shortest, __floating_to_chars_precision):
6811 (to_chars): Define overloads for __float128.
6813 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6815 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
6817 2021-02-23 Martin Sebor <msebor@redhat.com>
6820 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
6821 first argument is null.
6823 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6826 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
6829 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6832 * include/bits/char_traits.h (char_traits<char>::compare): For
6833 constexpr evaluation don't call
6834 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
6837 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6840 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
6842 2021-02-23 Patrick Palka <ppalka@redhat.com>
6845 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
6846 the high- and low-order parts from an IBM long double value
6847 in an endian-agnostic way.
6849 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
6851 * include/bits/atomic_wait.h (__thread_relax()): Call
6852 __thread_yield() not __gthread_yield().
6854 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6856 * include/bits/atomic_wait.h (__thread_yield()): Check
6857 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
6858 (__thread_relax()): Use __thread_yield() instead of repeating
6859 the preprocessor checks for __gthread_yield.
6861 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6863 * include/std/mutex (once_flag::_M_activate()): Add explicit
6864 return statement for passive case.
6865 (once_flag::_M_finish(bool)): Use reserved name for parameter.
6867 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
6870 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
6872 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6875 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
6877 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6879 * doc/xml/manual/status_cxx2014.xml: Document implementation
6880 specific properties of std::experimental::filesystem::rename.
6881 * doc/xml/manual/status_cxx2017.xml: Document implementation
6882 specific properties of std::filesystem::rename.
6883 * doc/html/*: Regenerate.
6884 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
6885 for directories on Windows.
6886 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
6887 MoveFileExW on Windows.
6888 * testsuite/27_io/filesystem/operations/rename.cc: New test.
6889 * testsuite/experimental/filesystem/operations/rename.cc: New test.
6891 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6893 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
6894 random number to the path.
6896 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6898 * include/experimental/internet (address_v6::to_string): Include
6900 * testsuite/experimental/net/internet/address/v6/members.cc:
6901 Test to_string() results.
6903 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6905 * include/experimental/internet (address_v6::any): Avoid using
6906 memcpy in constexpr function.
6907 (address_v6::loopback): Likewise.
6908 (make_address_v6): Fix missing return statements on error paths.
6909 * include/experimental/io_context: Avoid -Wdangling-else
6911 * testsuite/experimental/net/internet/address/v4/members.cc:
6912 Remove unused variables.
6913 * testsuite/experimental/net/internet/address/v6/members.cc:
6916 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6918 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
6919 Add unused attribute to parameter.
6920 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
6923 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6925 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
6926 if -fno-rtti is used.
6927 * testsuite/30_threads/async/forced_unwind.cc: Expect test
6928 to abort if -fno-rtti is used.
6930 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6932 * testsuite/util/testsuite_allocator.h (memory_resource):
6933 Remove requirement for RTTI and exceptions to be enabled.
6935 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6937 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
6938 static_cast when RTTI is disabled.
6939 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
6941 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
6943 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
6945 * testsuite/27_io/basic_stringstream/str/char/2.cc:
6947 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
6950 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6952 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
6953 as unused and only use dynamic_cast when RTTI is enabled.
6955 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6958 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
6959 Change int parameter to error_code, to match std::ios_failure.
6960 (__throw_ios_failure(const char*, int)): Construct error_code
6963 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6965 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
6967 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
6968 macro instead of _GLIBCXX_EH_PTR_COMPAT.
6969 (operator==): Likewise.
6971 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6974 * doc/xml/manual/status_cxx2011.xml: Document when support
6976 * doc/xml/manual/status_cxx2014.xml: Likewise.
6977 * doc/xml/manual/status_cxx2017.xml: Likewise.
6978 * doc/html/manual/status.html: Regenerate.
6980 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6983 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
6985 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6987 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
6988 (fs::remove): Use std::system_category() for error codes from
6990 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
6993 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6995 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
6996 in __MINGW32__ macro name.
6997 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6998 * testsuite/27_io/filesystem/path/generation/proximate.cc:
7000 * testsuite/27_io/filesystem/path/generation/relative.cc:
7002 * testsuite/util/testsuite_fs.h: Likewise.
7004 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7006 * include/bits/stl_tree.h
7007 (__has_is_transparent, __has_is_transparent_t): Move...
7008 * include/bits/stl_function.h: ...here.
7009 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
7010 (_Hashtable_base<>::_M_equals_tr): New.
7011 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
7012 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
7013 heterogeneous lookup.
7014 (_Hashtable<>::_M_find_before_node_tr): New.
7015 (_Hashtable<>::_M_find_node_tr): New.
7016 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
7017 unordered_map::contains<>, unordered_map::equal_range<>): New member function
7018 templates to perform heterogeneous lookup.
7019 (unordered_multimap::find<>, unordered_multimap::count<>,
7020 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
7021 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
7022 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
7023 (unordered_multiset::find<>, unordered_multiset::count<>,
7024 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
7025 * include/debug/unordered_map
7026 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
7027 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
7028 * include/debug/unordered_set
7029 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
7030 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
7031 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
7032 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
7033 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
7034 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
7036 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7038 * include/bits/stl_deque.h
7039 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
7040 a null pointer test.
7042 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7044 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
7045 test directory after making it writable again.
7046 * testsuite/experimental/filesystem/operations/remove_all.cc:
7049 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7052 * include/std/coroutine (coroutine_handle<P>::from_address): Add
7055 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
7057 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
7058 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
7060 2021-02-09 Jakub Jelinek <jakub@redhat.com>
7063 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
7064 points to the characters moved by earlier _S_move, compute the source
7065 address using expression based on the __p pointer rather than __s
7068 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
7070 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
7071 Add comparison with same category and different values.
7072 * testsuite/19_diagnostics/error_code/operators/less.cc:
7073 Likewise. Fix comparison involving different categories.
7074 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
7076 * testsuite/19_diagnostics/error_condition/operators/less.cc:
7078 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
7081 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
7083 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
7084 calls with a single vaddv for aarch64.
7086 2021-02-03 Matthias Kretz <kretz@kde.org>
7088 * testsuite/Makefile.am: Warn about the workaround. Add
7089 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
7090 Improve initial user feedback from make check-simd.
7091 * testsuite/Makefile.in: Regenerated.
7093 2021-02-03 Matthias Kretz <kretz@kde.org>
7095 * include/experimental/bits/simd.h: Add __detail::_Minimum and
7096 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
7097 Add hmin and hmax overloads for simd and const_where_expression.
7098 * include/experimental/bits/simd_scalar.h
7099 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
7100 parameter const-ref to allow calling _S_reduce with an rvalue.
7101 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
7102 hmin and hmax. Since the compiler statically determined that all
7103 tests pass, repeat the test after a call to make_value_unknown.
7105 2021-02-03 Matthias Kretz <kretz@kde.org>
7107 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
7108 instruction pointer data member. Ensure that the `if (m_failed)`
7109 branch is always inlined into the calling code. The body of the
7110 conditional can still be a function call. Move the get_ip call
7111 into the verify ctor to simplify the ctor calls.
7112 (COMPARE): Don't mention the use of all_of for reduction of a
7113 simd_mask. It only distracts from the real issue.
7115 2021-02-03 Matthias Kretz <kretz@kde.org>
7117 * testsuite/experimental/simd/driver.sh: Abstract reading test
7118 options into read_src_option function. Read skip, only,
7119 expensive, and xfail via read_src_option. Add timeout and
7120 timeout-factor options and adjust timeout variable accordingly.
7121 * testsuite/experimental/simd/tests/loadstore.cc: Set
7124 2021-02-03 Matthias Kretz <kretz@kde.org>
7126 * testsuite/experimental/simd/driver.sh: When handling the pipe
7127 to log (and on verbose to stdout) count the lines. If it exceeds
7128 1000 log the issue and exit 125, which is then handled as a
7131 2021-02-03 Matthias Kretz <kretz@kde.org>
7133 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
7134 markup for long double on powerpc64*.
7136 2021-02-03 Matthias Kretz <kretz@kde.org>
7138 * include/experimental/bits/simd.h: Add __have_power10vec
7139 conditional on _ARCH_PWR10.
7140 * include/experimental/bits/simd_builtin.h: Forward declare
7141 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
7143 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
7144 _SuperImpl for optimizations and correctness.
7145 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
7146 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
7147 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
7148 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
7150 2021-02-03 Matthias Kretz <kretz@kde.org>
7152 * testsuite/experimental/simd/driver.sh: Remove executable on
7153 SIGINT. Process compiler and test executable output: In verbose
7154 mode print messages immediately, limited to 1000 lines and
7155 breaking long lines to below $COLUMNS (or 1024 if not set).
7156 Communicating the exit status of the compiler / test with the
7157 necessary pipe is done via a message through stdout/-in.
7159 2021-02-03 Matthias Kretz <kretz@kde.org>
7161 * testsuite/Makefile.am: Ensure .simd.summary is empty before
7162 collecting a new summary.
7163 * testsuite/Makefile.in: Regenerate.
7165 2021-02-03 Matthias Kretz <kretz@kde.org>
7167 * testsuite/experimental/simd/generate_makefile.sh: Use
7168 different variables internally than documented for user
7169 overrides. This makes internal append/prepend work as intended.
7171 2021-02-03 Matthias Kretz <kretz@kde.org>
7173 * testsuite/experimental/simd/driver.sh (verify_test): Print
7174 test output on run xfail. Do not repeat lines from the log that
7175 were already printed on stdout.
7176 (test_selector): Make the compiler flags pattern usable as a
7178 (toplevel): Trap on SIGINT and remove the log and sum files.
7179 Call timout with --foreground to quickly terminate on SIGINT.
7180 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
7181 targets via target patterns. Default DRIVEROPTS to -v for run
7182 targets. Remove log and sum files after completion of the run
7183 target (so that it's always recompiled).
7184 Place help text into text file for reasonable 'make help'
7187 2021-02-03 Matthias Kretz <kretz@kde.org>
7189 * include/experimental/bits/simd.h: Remove unnecessary static
7190 assertion. Allow sizeof(8) integer __intrinsic_type to enable
7191 the necessary mask type.
7193 2021-02-03 Matthias Kretz <kretz@kde.org>
7195 * include/experimental/bits/simd.h: Let __intrinsic_type<long
7196 double, N> be valid if sizeof(long double) == sizeof(double) and
7197 use a __vector double as member type.
7199 2021-02-03 Matthias Kretz <kretz@kde.org>
7201 * include/experimental/bits/simd.h (__is_intrinsic_type): New
7202 internal type trait. Alias for __is_vector_type on x86.
7203 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
7205 (__intrin_bitcast): Allow casting to & from vector & intrinsic
7207 (__intrinsic_type): Explicitly specialize for NEON intrinsic
7210 2021-02-03 Matthias Kretz <kretz@kde.org>
7212 * testsuite/experimental/simd/driver.sh: Implement skip, only,
7213 expensive, and xfail markers. They can select on type, ABI tag
7214 subset number, target-triplet, and compiler flags.
7215 * testsuite/experimental/simd/generate_makefile.sh: The summary
7216 now includes lines for unexpected passes and expected failures.
7217 If the skip or only markers are only conditional on the type, do
7218 not generate rules for those types.
7219 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
7220 for ABI tag subsets 1-9.
7221 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7222 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7223 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7224 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7225 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7226 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7227 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7228 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7229 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7230 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
7231 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7232 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7233 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7234 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7235 * testsuite/experimental/simd/tests/operators.cc: Ditto.
7236 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7237 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7238 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7239 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7240 * testsuite/experimental/simd/tests/where.cc: Ditto.
7241 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
7242 addition replace "test only floattypes" marker by unconditional
7243 "float|double|ldouble" only marker.
7244 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7245 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7246 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7248 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7249 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7250 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7251 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7252 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7253 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7254 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
7255 addition, xfail on run because the reference data is missing.
7257 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
7259 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
7260 * doc/xml/manual/status_cxx2014.xml: Likewise.
7261 * doc/xml/manual/status_cxx2017.xml: Likewise.
7262 * doc/html/manual/status.html: Regenerate.
7264 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
7267 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
7268 Return 0 if both iterators are value-initialized.
7269 * testsuite/23_containers/deque/70303.cc: New test.
7270 * testsuite/23_containers/vector/70303.cc: New test.
7272 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
7274 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
7276 * doc/xml/manual/status_cxx2014.xml: Likewise.
7277 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
7278 std::from_chars and std::to_chars status. Fix formatting.
7279 * doc/html/manual/status.html: Regenerate.
7281 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
7283 * include/experimental/bits/numeric_traits.h: Update copyright
7285 * include/experimental/bits/simd.h: Likewise.
7286 * include/experimental/bits/simd_builtin.h: Likewise.
7287 * include/experimental/bits/simd_converter.h: Likewise.
7288 * include/experimental/bits/simd_detail.h: Likewise.
7289 * include/experimental/bits/simd_fixed_size.h: Likewise.
7290 * include/experimental/bits/simd_math.h: Likewise.
7291 * include/experimental/bits/simd_neon.h: Likewise.
7292 * include/experimental/bits/simd_ppc.h: Likewise.
7293 * include/experimental/bits/simd_scalar.h: Likewise.
7294 * include/experimental/bits/simd_x86.h: Likewise.
7295 * include/experimental/bits/simd_x86_conversions.h: Likewise.
7296 * include/experimental/simd: Likewise.
7297 * testsuite/experimental/simd/*: Likewise.
7299 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7301 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
7302 * doc/html/*: Regenerate.
7304 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7306 * testsuite/experimental/simd/generate_makefile.sh: Use printf
7307 instead of echo when printing escape characters.
7309 2021-01-27 Matthias Kretz <kretz@kde.org>
7311 * scripts/check_simd: New file. This script is called from the
7312 the check-simd target. It determines a set of compiler flags and
7313 simulator setups for calling generate_makefile.sh and passes the
7314 information back to the check-simd target, which recurses to the
7315 generated Makefiles.
7316 * scripts/create_testsuite_files: Remove files below simd/tests/
7317 from testsuite_files and place them in testsuite_files_simd.
7318 * testsuite/Makefile.am: Add testsuite_files_simd. Add
7320 * testsuite/Makefile.in: Regenerate.
7321 * testsuite/experimental/simd/driver.sh: New file. This script
7322 compiles and runs a given simd test, logging its output and
7323 status. It uses the timeout command to implement compile and
7325 * testsuite/experimental/simd/generate_makefile.sh: New file.
7326 This script generates a Makefile which uses driver.sh to compile
7327 and run the tests and collect the logs into a single log file.
7328 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
7330 * testsuite/experimental/simd/tests/algorithms.cc: New file.
7331 Tests min/max(simd, simd).
7332 * testsuite/experimental/simd/tests/bits/conversions.h: New
7333 file. Contains functions to support tests involving conversions.
7334 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
7335 Support functions make_mask and make_vec.
7336 * testsuite/experimental/simd/tests/bits/mathreference.h: New
7337 file. Support functions to supply precomputed math function
7339 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
7340 file. Support code for SFINAE testing.
7341 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
7342 * testsuite/experimental/simd/tests/bits/test_values.h: New
7343 file. Test functions to easily drive a test with simd objects
7344 initialized from a given list of values and a range of random
7346 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
7347 Support code to determine the ULP distance of simd objects.
7348 * testsuite/experimental/simd/tests/bits/verify.h: New file.
7349 Test framework for COMPARE'ing simd objects and instantiating
7350 the test templates with value_type and ABI tag.
7351 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
7353 * testsuite/experimental/simd/tests/casts.cc: New file. Test
7355 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
7356 Test floating-point classification functions.
7357 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
7359 * testsuite/experimental/simd/tests/generator.cc: New file. Test
7360 simd generator constructor.
7361 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
7362 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
7363 * testsuite/experimental/simd/tests/integer_operators.cc: New
7364 file. Test integer operators.
7365 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7366 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
7368 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
7369 (converting) simd loads and stores.
7370 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
7372 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
7373 Test simd_mask broadcasts.
7374 * testsuite/experimental/simd/tests/mask_conversions.cc: New
7375 file. Test simd_mask conversions.
7376 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
7377 file. Test simd_mask implicit conversions.
7378 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
7379 Test simd_mask loads and stores.
7380 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
7381 file. Test simd_mask operators convert as specified.
7382 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
7383 Test simd_mask compares, subscripts, and negation.
7384 * testsuite/experimental/simd/tests/mask_reductions.cc: New
7385 file. Test simd_mask reductions.
7386 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
7387 1-arg math functions on simd.
7388 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
7389 2-arg math functions on simd.
7390 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
7391 Test implicit conversions on simd binary operators behave as
7393 * testsuite/experimental/simd/tests/operators.cc: New file. Test
7394 simd compares, subscripts, not, unary minus, plus, minus,
7395 multiplies, divides, increment, and decrement.
7396 * testsuite/experimental/simd/tests/reductions.cc: New file.
7398 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
7400 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
7401 sanity checks of simd types.
7402 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
7403 sin(simd) and cos(simd).
7404 * testsuite/experimental/simd/tests/split_concat.cc: New file.
7405 Test split(simd) and concat(simd, simd).
7406 * testsuite/experimental/simd/tests/splits.cc: New file. Test
7408 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
7409 Test remaining trigonometric functions on simd.
7410 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
7411 file. Test trunc(simd), ceil(simd), and floor(simd).
7412 * testsuite/experimental/simd/tests/where.cc: New file. Test
7413 masked operations using where.
7415 2021-01-27 Matthias Kretz <kretz@kde.org>
7417 * doc/xml/manual/status_cxx2017.xml: Add implementation status
7418 of the Parallelism TS 2. Document implementation-defined types
7420 * include/Makefile.am: Add new headers.
7421 * include/Makefile.in: Regenerate.
7422 * include/experimental/simd: New file. New header for
7424 * include/experimental/bits/numeric_traits.h: New file.
7425 Implementation of P1841R1 using internal naming. Addition of
7426 missing IEC559 functionality query.
7427 * include/experimental/bits/simd.h: New file. Definition of the
7428 public simd interfaces and general implementation helpers.
7429 * include/experimental/bits/simd_builtin.h: New file.
7430 Implementation of the _VecBuiltin simd_abi.
7431 * include/experimental/bits/simd_converter.h: New file. Generic
7433 * include/experimental/bits/simd_detail.h: New file. Internal
7434 macros for the simd implementation.
7435 * include/experimental/bits/simd_fixed_size.h: New file. Simd
7436 fixed_size ABI specific implementations.
7437 * include/experimental/bits/simd_math.h: New file. Math
7439 * include/experimental/bits/simd_neon.h: New file. Simd NEON
7440 specific implementations.
7441 * include/experimental/bits/simd_ppc.h: New file. Implement bit
7442 shifts to avoid invalid results for integral types smaller than
7444 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7445 ABI specific implementations.
7446 * include/experimental/bits/simd_x86.h: New file. Simd x86
7447 specific implementations.
7448 * include/experimental/bits/simd_x86_conversions.h: New file.
7449 x86 specific conversion optimizations. The conversion patterns
7450 work around missing conversion patterns in the compiler and
7451 should be removed as soon as PR85048 is resolved.
7452 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7453 Test that all (not all fixed_size<N>, though) standard simd and
7454 simd_mask types are usable.
7455 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7456 file. As above but with -ffast-math.
7457 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7458 from the standard test loop. Instead use
7459 check_vect_support_and_set_flags to build simd tests with the
7460 relevant machine flags.
7462 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7465 * include/bits/string_view.tcc
7466 (basic_string_view::find(const CharT*, size_type, size_type)):
7469 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
7471 * include/bits/basic_string.h (basic_string::contains): New
7473 * include/std/string_view (basic_string_view::contains):
7475 * include/std/version (__cpp_lib_string_contains): Define.
7476 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7477 Remove trailing whitespace.
7478 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7480 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7481 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7482 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7483 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7484 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7486 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
7488 * src/c++17/Makefile.in: Regenerate.
7490 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
7492 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7493 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7495 (const char* ctype<char>:: is): Same.
7497 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7500 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
7501 write to a wide character stream if wide character support is
7502 disabled in the library.
7504 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7506 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
7507 stringbuf not wstringbuf.
7509 2021-01-18 Jakub Jelinek <jakub@redhat.com>
7512 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
7513 Compile with -gno-as-loc-support.
7514 * src/c++11/Makefile.in: Regenerated.
7516 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
7518 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
7519 Add -fcf-protection=none to -march=i486.
7521 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7523 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
7526 2021-01-14 Alexandre Oliva <oliva@adacore.com>
7528 * testsuite/30_threads/future/members/poll.cc: Calibrate
7531 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7534 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
7535 (_Node_iterator()): Make default.
7536 (_Node_const_iterator()): Make default.
7537 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
7539 * include/debug/safe_iterator.h
7540 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
7541 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
7543 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
7544 _M_singular checks on input iterators.
7545 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
7547 * testsuite/23_containers/deque/debug/98466.cc: New test.
7548 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
7550 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7553 * include/bits/fs_path.h (__throw_conversion_error): New
7554 function to throw or abort on character conversion errors.
7555 (__wstr_from_utf8): Move definition after filesystem_error has
7556 been defined. Use __throw_conversion_error.
7557 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
7558 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
7559 (path::u8string): Likewise.
7561 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7563 * include/std/barrier: Update copyright years. Fix whitespace.
7564 * include/std/version: Fix whitespace.
7565 * testsuite/30_threads/barrier/1.cc: Update copyright years.
7566 * testsuite/30_threads/barrier/2.cc: Likewise.
7567 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7568 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7569 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7570 * testsuite/30_threads/barrier/completion.cc: Likewise.
7572 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
7574 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
7576 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
7579 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
7581 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
7583 2021-01-08 Olivier Hainque <hainque@adacore.com>
7585 * testsuite/20_util/bind/ref_neg.cc: Tweak the
7586 dg-prune-output regex for out-of-build-tree contexts.
7588 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
7590 * doc/doxygen/user.cfg.in: Add new header.
7591 * include/Makefile.am (std_headers): likewise.
7592 * include/Makefile.in: Regenerate.
7593 * include/precompiled/stdc++.h: Add new header.
7594 * include/std/barrier: New file.
7595 * include/std/version: Add __cpp_lib_barrier feature test macro.
7596 * testsuite/30_threads/barrier/1.cc: New test.
7597 * testsuite/30_threads/barrier/2.cc: Likewise.
7598 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7599 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7600 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7601 * testsuite/30_threads/barrier/completion.cc: Likewise.
7603 2021-01-07 Patrick Palka <ppalka@redhat.com>
7606 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
7607 instead of the non-standard nextupl and nextdownl.
7609 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
7611 * configure: Re-generate.
7613 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
7615 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
7617 2021-01-01 Jakub Jelinek <jakub@redhat.com>
7619 * ChangeLog-2020: Rotate ChangeLog. New file.
7622 Copyright (C) 2021 Free Software Foundation, Inc.
7624 Copying and distribution of this file, with or without modification,
7625 are permitted in any medium without royalty provided the copyright
7626 notice and this notice are preserved.