1 2023-09-06 Jonathan Wakely <jwakely@redhat.com>
3 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
5 * configure: Regenerate.
7 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
10 * configure: Regenerate.
11 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
14 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
16 * testsuite/26_numerics/complex/literals/types.cc: Remove
17 dg-options and add target selector instead.
19 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
21 * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
22 and qualify ambiguous calls to get.
23 * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
24 expected result for std::pow(float, int) as per DR 550.
26 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
28 * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
29 and add dg-warning for deprecation warnings.
30 * testsuite/20_util/auto_ptr/2.cc: Likewise.
31 * testsuite/20_util/auto_ptr/3.cc: Likewise.
32 * testsuite/20_util/auto_ptr/3946.cc: Likewise.
33 * testsuite/20_util/auto_ptr/4.cc: Likewise.
34 * testsuite/20_util/auto_ptr/5.cc: Likewise.
35 * testsuite/20_util/auto_ptr/6.cc: Likewise.
36 * testsuite/20_util/auto_ptr/7.cc: Likewise.
37 * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
38 * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
40 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
42 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
44 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
46 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
48 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
50 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
53 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
56 * testsuite/23_containers/vector/26412-1.cc: Moved to...
57 * testsuite/23_containers/vector/26142-1.cc: ...here.
58 * testsuite/23_containers/vector/26412-2.cc: Moved to...
59 * testsuite/23_containers/vector/26142-2.cc: ...here.
61 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
63 * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
64 * testsuite/26_numerics/complex/56111.cc: Likewise.
66 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
68 * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
69 Add dg-options to restrict the test to C++98 mode.
70 * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
73 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
75 * testsuite/20_util/expected/bad.cc: Add missing target
78 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
80 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
82 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
85 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
87 * testsuite/27_io/filesystem/iterators/91067.cc: Add
88 -Wno-self-move to options.
89 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
91 2023-09-01 Vladimir Palevich <palevichva@gmail.com>
94 * include/bits/vector.tcc (_M_realloc_insert): End guard
95 lifetime just before assignment to class members.
96 (_M_default_append): Likewise.
98 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
100 * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
101 Use __resize_and_overwrite to fill buffer.
102 (fs::read_symlink) [HAVE_READLINK]: Likewise.
103 * src/filesystem/ops-common.h (get_temp_directory_from_env)
104 [FILESYSTEM_IS_WINDOWS]: Likewise.
106 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
109 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
110 Add _AtomicRef non-type template parameter and use a loop if it
112 (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
113 (__atomic_impl::compare_exchange_strong): Likewise.
114 (atomic_ref::compare_exchange_weak): Use true for NTTP.
115 (atomic_ref::compare_exchange_strong): Use true for NTTP.
116 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
117 Fix test to not rely on atomic_ref::load() to return an object
118 with padding preserved.
120 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
122 * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
125 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
127 * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
128 for POSIX readlink before using filesystem::read_symlink.
130 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
132 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
133 * configure: Regenerate.
135 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
137 * include/bits/chrono_io.h (_Parser::operator()): Set failbit
138 early if invalid values are read when _M_need & _TimeOfDay is
140 * testsuite/std/time/parse.cc: Check that "25:59" cannot be
143 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
146 * include/bits/chrono_io.h (_Parser::Operator()): Check %C
147 values are in range of year::min() to year::max().
148 * testsuite/std/time/parse.cc: Check out of range centuries.
150 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
152 * include/std/format (__format::_Sink::_M_reset): Change second
153 argument from iterator to offset.
155 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
158 * testsuite/std/format/string.cc: Check wide character format
159 strings with out-of-range widths.
161 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
164 * include/std/format (__format::__parse_integer): Check for
167 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
169 * testsuite/std/format/functions/format_to.cc: Avoid warning for
172 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
174 * include/std/atomic: Add comment to #ifdef and fix indentation.
175 * include/std/ostream: Check __glibcxx_syncbuf instead of
176 __cplusplus and _GLIBCXX_HOSTED.
177 * include/std/thread: Add comment to #ifdef.
179 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
181 * include/bits/version.def (__cpp_lib_ratio): Define.
182 * include/bits/version.h: Regenerate.
183 * include/std/ratio (quecto, ronto, yocto, zepto)
184 (zetta, yotta, ronna, quetta): Define.
185 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
186 dg-error line numbers.
188 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
190 * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
192 * testsuite/libstdc++-prettyprinters/locale.cc: New test.
194 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
197 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
198 not show template arguments.
199 (StdVariantPrinter): Likewise.
200 * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
202 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
203 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
205 2023-08-23 François Dumont <fdumont@gcc.gnu.org>
207 * testsuite/util/replacement_memory_operators.h
208 (counter::scope): New, capture and reset counter count at construction and
209 restore it at destruction.
210 (counter::check_new): Add scope instantiation.
211 * testsuite/23_containers/unordered_map/96088.cc (main):
212 Add counter::scope instantiation.
213 * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
214 * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
215 * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
216 * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
217 * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
218 * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
219 * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
220 (operator new(size_t)): Check started.
221 (main): Set/Unset started.
222 * testsuite/17_intro/no_library_allocation.cc: New test case.
224 2023-08-21 Jonathan Wakely <jwakely@redhat.com>
226 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
227 Call std::set_terminate before throwing the nested exception.
229 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
232 * include/std/format (formatter): Only define specializations
233 for 16-bit floating-point types for C++23.
234 * include/std/limits (numeric_limits): Likewise.
236 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
238 * include/bits/chrono_io.h (operator<<): Make uses of wide
239 strings with streams and std::format type-dependent on _CharT.
240 * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
241 __to_wstring_numeric.
243 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
245 * include/bits/chrono_io.h (operator<<): Use __format_context.
246 * include/std/format (__format::__format_context): New alias
248 [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
251 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
254 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
256 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
257 double overload for long double if possible.
259 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
261 * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
264 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
266 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
267 double overload for long double if possible.
269 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
271 * src/c++98/localename.cc (is_C_locale): New function.
272 (locale::locale(const char*)): Use is_C_locale.
274 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
277 * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
278 Dispatch to _M_replace or move assignment from a temporary,
279 based on the iterator type.
281 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
283 * include/std/format (formatter): Add partial specializations
284 for extended floating-point types.
285 * testsuite/std/format/functions/format.cc: Move test_float128()
287 * testsuite/std/format/formatter/ext_float.cc: New test.
289 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
291 * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
292 whenever __BFLT16_DIG__ is defined, not only for C++23.
293 * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
294 (numeric_limits<_Float16>, numeric_limits<_Float32>)
295 (numeric_limits<_Float64>): Likewise for other extended
296 floating-point types.
298 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
300 * include/experimental/internet (address_v4::to_string): Remove
301 unused parameter name.
303 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
305 * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
306 * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
307 excess errors caused by invalid consteval calls.
309 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
311 * include/bits/chrono_io.h (__units_suffix_misc): Remove.
312 (__units_suffix): Return a known suffix as string view, do not
313 write unknown suffixes to a buffer.
314 (__fmt_units_suffix): New function that formats the suffix using
316 (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
317 (__chrono_formatter::_M_Z): Correct lifetime of wstring.
319 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
321 * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
322 string formatters with this macro.
323 (__formatter_int::_M_format_int, __formatter_fp::format)
324 (formatter<const void*, C>::format): Use __to_wstring_numeric
325 instead of std::ctype::widen.
326 (__formatter_fp::_M_localize): Use hardcoded wchar_t values
327 instead of std::ctype::widen.
328 * testsuite/std/format/functions/format.cc: Add more checks for
329 wstring formatting of arithmetic types.
331 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
333 * include/bits/basic_string.h (to_string(floating-point-type)):
334 Implement using std::to_chars for C++26.
335 * include/bits/version.def (__cpp_lib_to_string): Define.
336 * include/bits/version.h: Regenerate.
337 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
338 Adjust expected result in C++26 mode.
339 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
341 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
343 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
345 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
347 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
349 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
352 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
354 * include/bits/basic_string.h (to_string(integral-type)): Use
355 resize_and_overwrite when available.
356 (__to_wstring_numeric): New helper functions.
357 (to_wstring): Use std::to_string then __to_wstring_numeric.
358 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
359 Remove check for no excess capacity.
361 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
363 * include/bits/basic_string.h (__resize_and_overwrite): New
365 * include/bits/basic_string.tcc (__resize_and_overwrite): New
367 (resize_and_overwrite): Simplify by using reserve instead of
368 growing the string manually. Adjust for C++11 compatibility.
369 * include/bits/cow_string.h (resize_and_overwrite): New
371 (__resize_and_overwrite): New function.
372 * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
373 Do not depend on cxx11abi.
374 * include/bits/version.h: Regenerate.
375 * include/std/format (__formatter_fp::_S_resize_and_overwrite):
377 (__formatter_fp::format, __formatter_fp::_M_localize): Use
378 __resize_and_overwrite instead of _S_resize_and_overwrite.
379 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
380 Adjust for C++11 compatibility when included by ...
381 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
384 2023-08-17 Patrick Palka <ppalka@redhat.com>
386 * include/bits/regex.h (regex_iterator::iterator_concept):
387 Define for C++20 as per P2770R0.
388 (regex_token_iterator::iterator_concept): Likewise.
389 * include/std/ranges (__detail::__as_lvalue): Define.
390 (join_view::_Iterator): Befriend join_view.
391 (join_view::_Iterator::_M_satisfy): Use _M_get_outer
393 (join_view::_Iterator::_M_get_outer): Define.
394 (join_view::_Iterator::_Iterator): Split constructor taking
395 _Parent argument into two as per P2770R0. Remove constraint on
397 (join_view::_Iterator::_M_outer): Make this data member present
398 only when the underlying range is forward.
399 (join_view::_Iterator::operator++): Use _M_get_outer instead of
401 (join_view::_Iterator::operator--): Use __as_lvalue helper.
402 (join_view::_Iterator::operator==): Adjust constraints as per
404 (join_view::_Sentinel::__equal): Use _M_get_outer instead of
406 (join_view::_M_outer): New data member when the underlying range
408 (join_view::begin): Adjust definition as per P2770R0.
409 (join_view::end): Likewise.
410 (join_with_view::_M_outer_it): New data member when the
411 underlying range is non-forward.
412 (join_with_view::begin): Adjust definition as per P2770R0.
413 (join_with_view::end): Likewise.
414 (join_with_view::_Iterator::_M_outer_it): Make this data member
415 present only when the underlying range is forward.
416 (join_with_view::_Iterator::_M_get_outer): Define.
417 (join_with_view::_Iterator::_Iterator): Split constructor
418 taking _Parent argument into two as per P2770R0. Remove
419 constraint on default constructor.
420 (join_with_view::_Iterator::_M_update_inner): Adjust definition
422 (join_with_view::_Iterator::_M_get_inner): Likewise.
423 (join_with_view::_Iterator::_M_satisfy): Adjust calls to
424 _M_get_inner. Use _M_get_outer instead of _M_outer_it.
425 (join_with_view::_Iterator::operator==): Adjust constraints
427 (join_with_view::_Sentinel::operator==): Use _M_get_outer
428 instead of _M_outer_it.
429 * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
431 2023-08-17 Patrick Palka <ppalka@redhat.com>
434 * include/std/ranges (__adaptor::_RangeAdaptorClosure):
435 Convert into a CRTP class template. Move hidden operator|
436 friends into namespace scope and adjust their constraints.
437 (__closure::__is_range_adaptor_closure_fn): Define.
438 (__closure::__is_range_adaptor_closure): Define.
439 (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
440 (__adaptor::_Pipe): Likewise.
441 (views::_All): Likewise.
442 (views::_Join): Likewise.
443 (views::_Common): Likewise.
444 (views::_Reverse): Likewise.
445 (views::_Elements): Likewise.
446 (views::_Adjacent): Likewise.
447 (views::_AsRvalue): Likewise.
448 (views::_Enumerate): Likewise.
449 (views::_AsConst): Likewise.
450 * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
451 expecting that adding empty range adaptor closure objects to a
452 pipeline doesn't increase the size of a pipeline.
454 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
456 * include/std/format (__format::_Pres_type): Add _Pres_F.
457 (__formatter_fp::parse): Use _Pres_F for 'F'.
458 (__formatter_fp::format): Set __upper for _Pres_F.
459 * testsuite/std/format/functions/format.cc: Check formatting of
460 infinity and NaN for each presentation type.
462 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
464 * include/Makefile.in: Regenerate.
466 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
468 * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
469 * testsuite/std/format/functions/format.cc: Likewise.
470 * testsuite/std/format/functions/format_c++23.cc: Likewise.
472 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
474 * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
475 any "-include bits/stdc++.h" from options and add the macro to
476 the existing options instead of replacing them.
478 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
480 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
481 the callable with the same size as resize_and_overwrite was
483 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
484 Check with small values for the new size.
485 * testsuite/std/format/functions/format.cc: Check wide
486 formatting of double values that produce small strings.
487 * testsuite/std/format/functions/format_c++23.cc: New test.
489 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
491 * include/bits/version.def (stds): Update value for C++23.
492 * include/bits/version.h: Regenerate.
494 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
496 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
497 Fix name of upstream file this was derived from.
498 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
500 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
502 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
504 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
506 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
508 * libsupc++/typeinfo: Switch to bits/version.h for
509 __cpp_lib_constexpr_typeinfo.
510 * libsupc++/new: Switch to bits/version.h for
511 __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
512 (launder): Guard behind __cpp_lib_launder.
513 (hardware_destructive_interference_size)
514 (hardware_constructive_interference_size): Guard behind
515 __cpp_lib_hardware_interference_size.
516 * libsupc++/exception: Switch to bits/version.h for
517 __cpp_lib_uncaught_exceptions.
518 (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
519 * libsupc++/compare: Switch to bits/version.h for
520 __cpp_lib_three_way_comparison.
521 (three_way_comparable, three_way_comparable_with)
522 (compare_three_way, weak_order, strong_order, partial_order):
523 Guard behind __cpp_lib_three_way_comparison >= 201907L.
524 * include/std/chrono: Drop __cpp_lib_chrono definition.
525 * include/std/vector: Switch to bits/version.h for
527 (erase, erase_if): Guard behind __cpp_lib_erase_if.
528 * include/std/variant: Switch to bits/version.h for
529 __cpp_lib_variant. Guard whole header behind that FTM.
530 * include/std/utility: Switch to bits/version.h for
531 __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
532 __cpp_lib_{integer_comparison_functions,to_underlying}, and
533 __cpp_lib_unreachable.
534 (exchange): Guard behind __cpp_lib_exchange_function.
535 (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
536 (cmp_greater_equal, in_range): Guard behind
537 __cpp_lib_integer_comparison_functions.
538 (to_underlying): Guard behind __cpp_lib_to_underlying.
539 (unreachable): Guard behind __cpp_lib_unreachable.
540 * include/std/type_traits: Switch to bits/version.h for
541 __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
542 __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
543 __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
544 __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
545 __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
546 __cpp_lib_{type_identity,type_trait_variable_templates},
547 __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
548 __cpp_lib_{bool_constant,bounded_array_traits}, and
549 __cpp_lib_has_unique_object_representations.
550 (integral_constant::operator()): Guard behind
551 __cpp_lib_integral_constant_callable.
552 (bool_constant): Guard behind __cpp_lib_bool_constant.
553 (conjunction, disjunction, negation, conjunction_v, disjunction_v)
554 (negation_v): Guard behind __cpp_lib_logical_traits.
555 (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
556 (is_final): Guard behind __cpp_lib_is_final.
557 (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
558 __cpp_lib_is_nothrow_convertible.
559 (remove_const_t, remove_volatile_t, remove_cv_t)
560 (add_const_t, add_volatile_t, add_cv_t): Guard behind
561 __cpp_lib_transformation_trait_aliases.
562 (void_t): Guard behind __cpp_lib_void_t.
563 (is_swappable_with_v, is_nothrow_swappable_with_v)
564 (is_swappable_with, is_nothrow_swappable_with): Guard behind
565 __cpp_lib_is_swappable.
566 (is_nothrow_invocable_r, is_invocable_r, invoke_result)
567 (is_invocable, invoke_result_t): Guard behind
568 __cpp_lib_is_invocable.
569 (alignment_of_v, extent_v, has_virtual_destructor_v)
570 (is_abstract_v, is_arithmetic_v, is_array_v)
571 (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
572 (is_constructible_v, is_const_v, is_convertible_v)
573 (is_copy_assignable_v, is_copy_constructible_v)
574 (is_default_constructible_v, is_destructible_v)
575 (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
576 (is_function_v, is_fundamental_v, is_integral_v)
577 (is_invocable_r_v, is_invocable_v, is_literal_type_v)
578 (is_lvalue_reference_v, is_member_function_pointer_v)
579 (is_member_object_pointer_v, is_member_pointer_v)
580 (is_move_assignable_v, is_move_constructible_v)
581 (is_nothrow_assignable_v, is_nothrow_constructible_v)
582 (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
583 (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
584 (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
585 (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
586 (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
587 (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
588 (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
589 (is_trivially_assignable_v, is_trivially_constructible_v)
590 (is_trivially_copyable_v, is_trivially_copy_assignable_v)
591 (is_trivially_copy_constructible_v)
592 (is_trivially_default_constructible_v)
593 (is_trivially_destructible_v, is_trivially_move_assignable_v)
594 (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
595 (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
596 Guard behind __cpp_lib_type_trait_variable_templates.
597 (has_unique_object_representations)
598 (has_unique_object_representations_v): Guard behind
599 __cpp_lib_has_unique_object_representation.
600 (is_aggregate): Guard behind __cpp_lib_is_aggregate.
601 (remove_cvref, remove_cvref_t): Guard behind
602 __cpp_lib_remove_cvref.
603 (type_identity, type_identity_t): Guard behind
604 __cpp_lib_type_identity.
605 (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
606 (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
607 (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
608 (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
609 (is_scoped_enum, is_scoped_enum_v): Guard behind
610 __cpp_lib_is_scoped_enum.
611 (reference_constructs_from_temporary)
612 (reference_constructs_from_temporary_v): Guard behind
613 __cpp_lib_reference_from_temporary.
614 * include/std/tuple: Switch to bits/version.h for
615 __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
616 (get<T>): Guard behind __cpp_lib_tuple_by_type.
617 (apply): Guard behind __cpp_lib_apply.
618 (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
619 * include/std/syncstream: Switch to bits/version.h for
620 __cpp_lib_syncbuf. Guard header behind that FTM.
621 * include/std/string_view: Switch to bits/version.h for
622 __cpp_lib_{string_{view,contains},constexpr_string_view} and
623 __cpp_lib_starts_ends_with.
624 (basic_string_view::starts_with, basic_string_view::ends_with):
625 Guard behind __cpp_lib_starts_ends_with.
626 [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
627 Assert as impossible ithout a bug in C++23.
628 * include/std/string: Switch to bits/version.h for
630 (erase, erase_if): Guard behind __cpp_lib_erase_if.
631 * include/std/thread: Switch to bits/version.h for
633 * include/std/stop_token: Switch to bits/version.h for
635 * include/std/spanstream: Switch to bits/version.h for
636 __cpp_lib_spanstream. Guard header behind that FTM.
637 * include/std/span: Switch to bits/version.h for __cpp_lib_span.
638 Guard header behind that FTM.
639 * include/std/source_location: Switch to bits/version.h for
640 __cpp_lib_source_location. Guard header with that FTM.
641 * include/std/shared_mutex: Switch to bits/version.h for
642 __cpp_lib_shared{,_timed}_mutex.
643 (shared_mutex): Guard behind __cpp_lib_shared_mutex.
644 * include/std/semaphore: Switch to bits/version.h for
645 __cpp_lib_semaphore. Guard header behind that FTM.
646 * include/std/ranges: Switch to bits/version.h for
647 __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
648 __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
649 and __cpp_lib_ranges_{as_const,enumerate,iota}.
650 (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
651 (ranges::chunk_by et al, ranges::join_with et al)
652 (ranges::stride et al, ranges::cartesian_product et al)
653 (ranges::as_rvalue et al, ranges::as_const et al)
654 (ranges::enumerate et al): Guard behind appropriate FTM.
655 * include/std/optional: Switch to bits/version.h for
656 __cpp_lib_optional. Guard header behind that FTM.
657 * include/std/numeric: Switch to bits/version.h for
658 __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
659 and __cpp_lib_parallel_algorithm.
660 (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
661 (midpoint): Guard behind __cpp_lib_interpolate.
662 * include/std/numbers: Switch to bits/version.h for
663 __cpp_lib_math_constants. Guard header behind that FTM.
664 * include/std/mutex: Switch to bits/version.h for
665 __cpp_lib_scoped_lock.
666 (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
667 * include/std/memory_resource: Switch to bits/version.h for
668 __cpp_lib_{polymorphic_allocator,memory_resource}.
669 (synchronized_pool_resource): Guard behind
670 __cpp_lib_memory_resource >= 201603L.
671 (polymorphic_allocator): Guard behind
672 __cpp_lib_polymorphic_allocator.
673 * include/std/memory: Switch to bits/version.h for
674 __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
675 * include/std/list: Switch to bits/version.h for
677 (erase, erase_if): Guard behind __cpp_lib_erase_if.
678 * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
679 Guard header behind that FTM.
680 * include/std/iterator: Switch to bits/version.h for
681 __cpp_lib_null_iterators.
682 * include/std/iomanip: Switch to bits/version.h for
683 __cpp_lib_quoted_string_io.
684 (quoted): Guard behind __cpp_lib_quoted_string_io.
685 * include/std/functional: Switch to bits/version.h for
686 __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
687 __cpp_lib_{not_fn,booyer_moore_searcher}.
688 (invoke): Guard behind __cpp_lib_invoke.
689 (invoke_r): Guard behind __cpp_lib_invoke_r.
690 (bind_front): Guard behind __cpp_lib_bind_front.
691 (not_fn): Guard behind __cpp_lib_not_fn.
692 (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
693 definition behind __cpp_lib_boyer_moore_searcher.
694 * include/std/forward_list: Switch to bits/version.h for
696 (erase, erase_if): Guard behind __cpp_lib_erase_if.
697 * include/std/format: Switch to bits/version.h for
698 __cpp_lib_format. Guard header behind that FTM.
699 * include/std/filesystem: Switch to bits/version.h for
700 __cpp_lib_filesystem. Guard header behind that FTM.
701 * include/std/expected: Switch to bits/version.h for
702 __cpp_lib_expected. Guard header behind it.
703 * include/std/execution: Switch to bits/version.h for
704 __cpp_lib_{execution,parallel_algorithm}. Guard header behind
706 * include/std/deque: Switch to bits/version.h for
708 (erase, erase_if): Guard behind __cpp_lib_erase_if.
709 * include/std/coroutine: Switch to bits/version.h for
710 __cpp_lib_coroutine. Guard header behind that FTM.
711 * include/std/concepts: Switch to bits/version.h for
712 __cpp_lib_concepts. Guard header behind that FTM.
713 * include/std/complex: Switch to bits/version.h for
714 __cpp_lib_{complex_udls,constexpr_complex}.
715 (operator""if, operator""i, operator""il): Guard behind
716 __cpp_lib_complex_udls.
717 * include/std/charconv: Swtich to bits/version.h for
718 __cpp_lib_{to_chars,constexpr_charconv}.
719 * include/std/bitset: Switch to bits/version.h for
720 __cpp_lib_constexpr_bitset.
721 * include/std/bit: Switch to bits/version.h for
722 __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
723 (bit_cast): Guard behind __cpp_lib_bit_cast.
724 (byteswap): Guard behind __cpp_lib_byteswap.
725 (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
726 (popcount): Guard behind __cpp_lib_bitops.
727 (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
729 (endian): Guard behind __cpp_lib_endian.
730 * include/std/barrier: Switch to bits/version.h for
731 __cpp_lib_barrier. Guard header behind that FTM.
732 * include/std/atomic: Switch to bits/version.h for
733 __cpp_lib_atomic_{is_always_lock_free,float,ref}
734 and __cpp_lib_lock_free_type_aliases.
735 (*::is_always_lock_free): Guard behind
736 __cpp_lib_atomic_is_always_lock_free.
737 (atomic<float>): Guard behind __cpp_lib_atomic_float.
738 (atomic_ref): Guard behind __cpp_lib_atomic_ref.
739 (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
740 __cpp_lib_atomic_lock_free_type_aliases.
741 * include/std/array: Switch to bits/version.h for
743 (to_array): Guard behind __cpp_lib_to_array.
744 * include/std/any: Switch to bits/version.h for __cpp_lib_any.
745 Guard header behind that FTM.
746 * include/std/algorithm: Switch to bits/version.h for
747 __cpp_lib_parallel_algorithm.
748 * include/c_global/cstddef: Switch to bits/version.h for
750 (byte): Guard behind __cpp_lib_byte.
751 * include/c_global/cmath: Switch to bits/version.h for
752 __cpp_lib_{hypot,interpolate}.
753 (hypot3): Guard behind __cpp_lib_hypot.
754 (lerp): Guard behind __cpp_lib_interpolate.
755 * include/c_compatibility/stdatomic.h: Switch to
756 bits/stl_version.h for __cpp_lib_atomic. Guard header behind that
758 * include/bits/utility.h: Switch to bits/version.h for
759 __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
760 (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
761 (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
762 * include/bits/uses_allocator_args.h: Switch to bits/version.h for
763 __cpp_lib_make_obj_using_allocator. Guard header behind that FTM.
764 * include/bits/unordered_map.h: Switch to bits/version.h for
765 __cpp_lib_unordered_map_try_emplace.
766 (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
767 * include/bits/unique_ptr.h: Switch to bits/version.h for
768 __cpp_lib_{constexpr_memory,make_unique}.
769 (make_unique): Guard behind __cpp_lib_make_unique.
770 * include/bits/stl_vector.h: Switch to bits/version.h for
771 __cpp_lib_constexpr_vector.
772 * include/bits/stl_uninitialized.h: Switch to bits/version.h for
773 __cpp_lib_raw_memory_algorithms.
774 (uninitialized_default_construct)
775 (uninitialized_default_construct_n, uninitialized_move)
776 (uninitialized_move_n, uninitialized_value_construct)
777 (uninitialized_value_construct_n): Guard behind
778 __cpp_lib_raw_memory_algorithms.
779 * include/bits/stl_tree.h: Switch to bits/version.h for
780 __cpp_lib_generic_associative_lookup.
781 * include/bits/stl_stack.h: Switch to bits/version.h for
782 __cpp_lib_adaptor_iterator_pair_constructor.
783 (stack): Guard iterator-pair constructor behind
784 __cpp_lib_adaptor_iterator_pair_constructor.
785 * include/bits/stl_queue.h: Switch to bits/version.h for
786 __cpp_lib_adaptor_iterator_pair_constructor.
787 (queue): Guard iterator-pair constructor behind
788 __cpp_lib_adaptor_iterator_pair_constructor.
789 * include/bits/stl_pair.h: Switch to bits/version.h for
790 __cpp_lib_{concepts,tuples_by_type}.
791 (get): Guard type-getting overloads behind
792 __cpp_lib_tuples_by_type.
793 * include/bits/stl_map.h: Switch to bits/version.h for
794 __cpp_lib_map_try_emplace.
795 (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
796 * include/bits/stl_list.h: Switch to bits/version.h for
797 __cpp_lib_list_remove_return_type.
798 (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
799 [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
800 * include/bits/stl_iterator.h: Switch to bits/version.h for
801 __cpp_lib_{constexpr_iterator,array_constexpr} and
802 __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
803 (make_reverse_iterator): Guard behind
804 __cpp_lib_make_reverse_iterator.
805 (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
806 changes behind that FTM.
807 * include/bits/stl_function.h: Switch to bits/version.h for
808 __cpp_lib_transparent_operators.
809 (equal_to, not_equal_to, greater, less, greater_equal)
810 (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
811 (logical_or, logical_not, plus, minus, multiplies, divides)
812 (modulus, negate): Guard '= void' fwdecls behind
813 __cpp_lib_transparent_operators.
814 (plus<void>, minus<void>, multiplies<void>, divides<void>)
815 (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
816 (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
817 (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
818 (greater_equal<void>, less_equal<void>, bit_not<void>)
819 (__has_is_transparent): Guard behind
820 __cpp_lib_transparent_operators.
821 * include/bits/stl_algobase.h: Switch to bits/version.h for
822 __cpp_lib_robust_nonmodifying_seq_ops.
823 (robust equal, mismatch): Guard behind
824 __cpp_lib_nonmember_container_access.
825 * include/bits/stl_algo.h: Swtich to bits/version.h for
826 __cpp_lib_{clamp,sample}.
827 (clamp): Guard behind __cpp_lib_clamp.
828 (sample): Guard behind __cpp_lib_sample.
829 * include/bits/specfun.h: Switch to bits/version.h for
830 __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
831 * include/bits/shared_ptr_base.h: Switch to bits/version.h for
832 __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
833 (_Sp_overwrite_tag): Guard behind
834 __cpp_lib_smart_ptr_for_overwrite.
835 * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
836 __cpp_lib_atomic_shared_ptr.
837 * include/bits/shared_ptr.h: Switch to bits/version.h for
838 __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
839 (shared_ptr<T>::weak_type): Guard behind
840 __cpp_lib_shared_ptr_weak_type.
841 (enable_shared_from_this<T>::weak_from_this): Guard behind
842 __cpp_lib_enable_shared_from_this.
843 * include/bits/ranges_cmp.h: Switch to bits/version.h for
845 * include/bits/ranges_algo.h: Switch to bits/version.h for
846 __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
847 * include/bits/range_access.h: Switch to bits/version.h for
848 __cpp_lib_nonmember_container_access
849 (size, empty, data): Guard behind
850 __cpp_lib_nonmember_container_access.
851 (ssize): Guard behind __cpp_lib_ssize.
852 * include/bits/ptr_traits.h: Switch to bits/version.h. for
853 __cpp_lib_{constexpr_memory,to_address}.
854 (to_address): Guard behind __cpp_lib_to_address.
855 * include/bits/node_handle.h: Switch to bits/version.h for
856 __cpp_lib_node_extract. Guard header behind that FTM.
857 * include/bits/move_only_function.h: Switch to bits/version.h for
858 __cpp_lib_move_only_function. Guard header behind that FTM.
859 * include/bits/move.h: Switch to bits/version.h for
860 __cpp_lib_addressof_constexpr.
861 * include/bits/ios_base.h: Switch to bits/version.h for
862 __cpp_lib_ios_noreplace.
863 (noreplace): Guard with __cpp_lib_ios_noreplace.
864 * include/bits/hashtable.h: Switch to bits/version.h for
865 __cpp_lib_generic_unordered_lookup.
866 (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
867 __cpp_lib_generic_unordered_lookup.
868 * include/bits/forward_list.h: Switch to bits/version.h for
869 __cpp_lib_list_remove_return_type.
870 (__remove_return_type): Guard behind
871 __cpp_lib_list_remove_return_type.
872 * include/bits/erase_if.h: Switch to bits/version.h for
874 * include/bits/cow_string.h: Switch to bits/version.h for
875 __cpp_lib_constexpr_string.
876 * include/bits/chrono.h: Swtich to bits/version.h for
877 __cpp_lib_chrono{,_udls}.
878 (ceil): Guard behind __cpp_lib_chrono.
879 (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
880 * include/bits/char_traits.h: Switch to bits/version.h for
881 __cpp_lib_constexpr_char_traits.
882 * include/bits/basic_string.h: Switch to bits/version.h for
883 __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
884 (resize_and_overwrite): Guard behind
885 __cpp_lib_string_resize_and_overwrite.
886 (operator""s): Guard behind __cpp_lib_string_udls.
887 * include/bits/atomic_wait.h: Switch to bits/version.h for
888 __cpp_lib_atomic_wait. Guard header behind that FTM.
889 * include/bits/atomic_base.h: Switch to bits/version.h for
890 __cpp_lib_atomic_value_initialization and
891 __cpp_lib_atomic_flag_test.
892 (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
894 * include/bits/allocator.h: Switch to bits/version.h for
895 __cpp_lib_incomplete_container_elements.
896 * include/bits/alloc_traits.h: Switch to using bits/version.h for
897 __cpp_lib_constexpr_dynamic_alloc and
898 __cpp_lib_allocator_traits_is_always_equal.
899 * include/bits/align.h: Switch to bits/version.h for defining
900 __cpp_lib_assume_aligned.
901 (assume_aligned): Guard with __cpp_lib_assume_aligned.
902 * include/bits/algorithmfwd.h: Switch to bits/version.h for
903 defining __cpp_lib_constexpr_algorithms.
904 * include/std/stacktrace: Switch to bits/version.h for
905 __cpp_lib_stacktrace. Guard header behind that FTM.
906 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
909 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
911 * include/Makefile.am (bits_freestanding): Add version.h.
912 (allcreated): Add version.h.
913 (${bits_srcdir}/version.h): New rule. Regenerates
914 version.h out of version.{def,tpl}.
915 * include/Makefile.in: Regenerate.
916 * include/bits/version.def: New file. Declares a list of
917 all feature test macros, their values and their preconditions.
918 * include/bits/version.tpl: New file. Turns version.def
919 into a sequence of #if blocks.
920 * include/bits/version.h: New file. Generated from
922 * include/std/version: Replace with a __glibcxx_want_all define
923 and bits/version.h include.
925 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
928 * include/std/format (__formatter_fp::format): Use frexp instead
931 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
933 * include/std/type_traits (true_type): Use __bool_constant
935 (false_type): Likewise.
936 (bool_constant): Likewise.
938 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
941 * include/std/format (_Seq_sink::get): Only call _M_overflow if
942 its precondition is met.
943 (_Iter_sink::_M_finish): Likewise.
944 (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
945 internal buffer after running out of space.
946 (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
947 (_Counting_sink::count): Likewise.
948 * testsuite/std/format/functions/format_to_n.cc: Check cases
949 where the output fits into the buffer.
951 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
954 * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
955 to _ChronoParts operators.
956 (from_stream, parse): Define new functions.
957 (__detail::_Parse, __detail::_Parser): New class templates.
958 * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
960 * include/std/version (__cpp_lib_chrono): Likewise.
961 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
962 Adjust expected value of feature test macro.
963 * testsuite/20_util/duration/io.cc: Test parsing.
964 * testsuite/std/time/clock/file/io.cc: Likewise.
965 * testsuite/std/time/clock/gps/io.cc: Likewise.
966 * testsuite/std/time/clock/system/io.cc: Likewise.
967 * testsuite/std/time/clock/tai/io.cc: Likewise.
968 * testsuite/std/time/clock/utc/io.cc: Likewise.
969 * testsuite/std/time/day/io.cc: Likewise.
970 * testsuite/std/time/month/io.cc: Likewise.
971 * testsuite/std/time/month_day/io.cc: Likewise.
972 * testsuite/std/time/weekday/io.cc: Likewise.
973 * testsuite/std/time/year/io.cc: Likewise.
974 * testsuite/std/time/year_month/io.cc: Likewise.
975 * testsuite/std/time/year_month_day/io.cc: Likewise.
976 * testsuite/std/time/syn_c++20.cc: Check value of macro and for
977 the existence of parse and from_stream in namespace chrono.
978 * testsuite/std/time/clock/local/io.cc: New test.
979 * testsuite/std/time/parse.cc: New test.
981 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
984 * include/std/format (__formatter_fp::format): Do not call log10
987 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
989 * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
990 Check for out-of-range month an weekday indices.
991 * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
992 month and weekday values.
994 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
996 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
998 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
1001 * include/std/format (_Spec::_S_parse_width_or_precision): Check
1002 for empty range before dereferencing iterator.
1003 * testsuite/std/format/string.cc: Check for expected exception.
1004 Fix expected exception message in test_pr110862() and actually
1007 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
1010 * include/std/format (__formatter_fp::format): Check return
1011 value of _M_localize.
1012 * testsuite/std/format/functions/format.cc: Check classic
1015 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
1018 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
1020 (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
1021 (__detail::__basic_const_iterator_iter_cat): Likewise.
1022 * include/bits/stl_iterator_base_types.h (__iterator_category_t):
1023 Rename to __iter_category_t.
1025 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1027 * include/bits/chrono.h (duration_cast): Do not use braces
1028 around statements for C++11 constexpr rules.
1029 * include/bits/stl_algobase.h (__lg): Rewrite as a single
1030 statement for C++11 constexpr rules.
1031 * include/experimental/bits/fs_path.h (path::string): Use
1032 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
1033 * include/std/charconv (__to_chars_8): Initialize variable for
1034 C++17 constexpr rules.
1036 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1038 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
1039 warning for loop condition.
1041 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1043 * include/std/complex: Add diagnostic pragma for clang.
1045 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1047 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
1049 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
1050 class-head to struct in friend declaration.
1051 * include/std/chrono (tzdb_list::_Node): Likewise.
1052 * include/std/future (_Task_state_base, _Task_state): Likewise.
1053 * include/std/scoped_allocator (__inner_type_impl): Likewise.
1054 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
1055 (_ValFunClos, _RefFunClos): Change class-head to struct.
1057 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1059 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
1061 * include/bits/regex_executor.tcc: Remove name of unused
1063 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
1065 * include/bits/stl_uninitialized.h: Likewise.
1066 * include/bits/streambuf_iterator.h (operator==): Likewise.
1067 * include/bits/uses_allocator.h: Likewise.
1068 * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
1069 * include/std/chrono (zoned_time): Likewise.
1070 * include/std/future (__future_base::_S_allocate_result):
1072 (packaged_task): Likewise.
1073 * include/std/optional (_Optional_payload_base): Likewise.
1074 * include/std/scoped_allocator (__inner_type_impl): Likewise.
1075 * include/std/tuple (_Tuple_impl): Likewise.
1077 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1079 * include/bits/new_allocator.h (__new_allocator): Define copy
1080 assignment operator as defaulted.
1081 * include/std/complex (complex<float>, complex<double>)
1082 (complex<long double>): Define copy constructor as defaulted.
1084 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1086 * include/std/format: Fix some warnings.
1087 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
1088 unused function template.
1090 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
1093 * include/std/format (__formatter_fp::format): Do not use
1094 __builtin_abs and __builtin_log10 with arbitrary floating-point
1097 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
1100 * include/std/format (__format::_Iter_sink<CharT, OutIter>):
1101 Constrain partial specialization for contiguous iterators to
1102 require the value type to be CharT.
1103 * testsuite/std/format/functions/format_to.cc: New test.
1105 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
1108 * include/std/format (_Scanner::_M_on_replacement_field):
1109 Check for expected '}' before incrementing iterator.
1110 * testsuite/std/format/string.cc: Check "{0:{0}" format string.
1112 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
1114 * configure: Regenerate.
1116 2023-08-07 Alan Modra <amodra@gmail.com>
1118 * configure: Regenerate.
1120 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
1122 * configure: Regenerate.
1124 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
1126 * configure: Regenerate.
1128 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
1130 * configure: Regenerate.
1132 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
1134 * configure: Regenerate.
1136 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
1138 * configure: Regenerate.
1140 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
1142 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
1145 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
1147 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
1149 * src/c++11/locale-inst-monetary.h: Likewise.
1150 * src/c++11/locale-inst-numeric.h: Likewise.
1152 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
1155 * include/std/format (__formatter_fp::format): Ensure __expc is
1156 always set for all presentation types. Set __z correctly for
1158 * testsuite/std/format/functions/format.cc: Check problem cases.
1160 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
1163 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
1165 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
1168 * include/bits/stl_bvector.h (vector(const vector&)): Access
1169 iterators before allocating.
1170 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
1172 * testsuite/23_containers/vector/bool/110807.cc: New test.
1174 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
1176 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
1178 * include/bits/stl_algo.h (random_shuffle): Correct comments.
1179 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
1180 deprecated warnings.
1181 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1182 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1183 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
1186 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
1188 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
1190 * testsuite/26_numerics/gcd/105844.cc: Likewise.
1191 * testsuite/26_numerics/lcm/105844.cc: Likewise.
1193 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
1195 * include/std/format (_Formatting_scanner::_M_on_chars): Add
1196 missing constexpr specifier.
1197 (_Formatting_scanner::_M_format_arg): Likewise.
1199 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
1202 * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
1203 throw an exception for zero result.
1204 [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
1206 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1209 * src/c++17/floating_from_chars.cc (from_chars): Only define
1210 _Float128 overload when using __strfromf128.
1212 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1215 * include/bits/chrono.h (duration): Improve static assert
1217 (__is_ratio): Move to ...
1218 * include/std/ratio (__is_ratio): ... here.
1219 (__is_ratio_v): New variable template and partial
1221 (__are_both_ratios): New function template.
1222 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
1223 Add static assertion.
1224 * testsuite/20_util/ratio/requirements/type_constraints.cc:
1226 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
1227 Adjust expected error.
1228 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
1231 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1233 * include/bits/chrono_io.h (__formatter_chrono::_M_format):
1234 Do not set __is_neg for hh_mm_ss before calling
1235 _M_format_to_ostream. Change __print_sign lambda to only check
1236 __is_neg for durations and hh_mm_ss types.
1237 (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
1239 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
1241 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1244 * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
1245 Handle duration and hh_mm_ss.
1246 * testsuite/20_util/duration/io.cc: Check locale-specific
1248 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1250 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1252 * include/std/format (__write_padded): Initialize first element
1253 of array to avoid a -Wmaybe-uninitialized warning.
1255 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1258 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
1259 allowed modifiers for %z and %Z. Fix -Wparentheses and
1260 -Wnarrowing warnings.
1261 (__formatter_chrono::_M_format): Call new functions for %d, %e,
1263 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
1264 subsecond precision.
1265 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
1267 (__formatter_chrono::_M_e): Replace with _M_d_e and use
1269 (__formatter_chrono::_M_I): Replace with _M_H_I and use
1271 (__formatter_chrono::_M_m): New function.
1272 (__formatter_chrono::_M_M): New function.
1273 (__formatter_chrono::_M_r): Use _M_locale_fmt.
1274 (__formatter_chrono::_M_S): Likewise.
1275 (__formatter_chrono::_M_u_w): Likewise.
1276 (__formatter_chrono::_M_U_V_W): Likewise.
1277 (__formatter_chrono::_M_X): Use _S_floor_seconds.
1278 (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
1279 (__formatter_chrono::_S_altnum): Remove function.
1280 (__formatter_chrono::_S_dd_zero_fill): Remove function.
1281 (__formatter_chrono::_S_floor_seconds): New function.
1282 (__formatter_chrono::_M_locale_fmt): New function.
1283 * testsuite/std/time/clock/system/io.cc: Adjust expected output
1284 for locale-specific formats and check modified formats.
1285 * testsuite/std/time/clock/utc/io.cc: Likewise.
1286 * testsuite/std/time/zoned_time/io.cc: New test.
1288 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1291 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
1292 allow a single modifier.
1293 * testsuite/std/time/format.cc: Check multiple modifiers.
1295 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1298 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
1299 Remove dg-require-string-conversions.
1300 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
1302 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
1304 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
1306 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
1309 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1312 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
1313 Define in terms of std::stod.
1315 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1318 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
1320 [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
1321 * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
1322 Declare in namespace std.
1323 [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
1325 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
1328 * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
1329 depend on _GLIBCXX_USE_C99_STDLIB.
1330 [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
1331 in terms of stol and stoul respectively.
1332 [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
1335 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
1338 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
1339 conversions to wide strings.
1340 * testsuite/experimental/filesystem/path/construct/95048.cc:
1343 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
1345 * config/io/basic_file_stdio.cc: Define LFS macros.
1346 (__basic_file<char>::open): Use fopen unconditionally.
1347 (get_file_offset): Use lseek unconditionally.
1348 (__basic_file<char>::seekoff): Likewise.
1349 (__basic_file<char>::showmanyc): Use fstat unconditionally.
1351 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
1354 * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
1355 and define _GLIBCXX_USE_FSEEKO_FTELLO.
1356 * config.h.in: Regenerate.
1357 * configure: Regenerate.
1358 * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
1359 Check for fwrite error correctly.
1360 (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
1361 fread error correctly.
1362 (get_file_offset): New function.
1363 (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
1364 fseeko if available. Use get_file_offset instead of return value
1366 (__basic_file<char>::showmanyc): Use get_file_offset.
1368 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
1370 * include/std/type_traits (__make_unsigned_selector): Use
1371 __is_enum built-in trait.
1372 (__make_signed_selector): Likewise.
1373 (__underlying_type_impl): Likewise.
1375 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
1377 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
1380 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
1383 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
1385 * doc/html/manual/configure.html: Regenerate.
1387 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
1389 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
1391 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
1393 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
1395 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
1397 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
1399 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
1402 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1404 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
1405 Skip as UNSUPPORTED for C++98 mode.
1406 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
1409 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1412 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
1413 Do not use std::fill_n during constant evaluation.
1415 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1417 * include/bits/vector.tcc (_M_default_append): Replace try-block
1420 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1422 * include/bits/iterator_concepts.h (projected): Add typename.
1424 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
1426 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
1427 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
1429 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
1431 * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
1432 _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
1433 Define to OpenMP 5.0 pragmas even for GCC 10.0+.
1434 (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
1436 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
1438 * include/bits/alloc_traits.h (_Destroy): Qualify call.
1439 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
1440 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
1442 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
1444 * testsuite/lib/libstdc++.exp: Remove additional flag handled
1447 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
1450 * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
1451 * config.h.in: Regenerate.
1452 * configure: Regenerate.
1453 * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
1454 * include/std/iostream: Use new autoconf macro as well as
1456 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
1459 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
1461 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
1464 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
1467 * src/c++11/random.cc (random_device::_M_init): Throw
1468 std::system_error when the requested device is a valid token but
1469 not available at runtime.
1471 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
1474 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
1475 __INT32_TYPE__ instead of int32_t.
1477 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1479 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
1480 with USE_ATOMIC_LIST_HEAD.
1481 (list_mutex): Replace global object with function. Use local
1482 static object when std::mutex constructor isn't constexpr.
1484 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1487 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
1488 copy_file_range can be called with loff_t* arguments.
1489 * configure: Regenerate.
1490 * src/filesystem/ops-common.h (copy_file_copy_file_range):
1491 Use loff_t for offsets.
1493 2023-06-29 Tom Tromey <tromey@adacore.com>
1495 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
1498 2023-06-28 Jan Hubicka <jh@suse.cz>
1500 PR middle-end/109849
1501 * include/bits/c++config (std::__terminate): Mark cold.
1502 * include/bits/functexcept.h: Mark everything as cold.
1503 * libsupc++/exception: Mark terminate and unexpected as cold.
1505 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
1507 * include/pstl/algorithm_fwd.h: Synchronize with upstream.
1508 * include/pstl/algorithm_impl.h: Likewise.
1509 * include/pstl/execution_defs.h: Likewise.
1510 * include/pstl/execution_impl.h: Likewise.
1511 * include/pstl/glue_algorithm_impl.h: Likewise.
1512 * include/pstl/glue_execution_defs.h: Likewise.
1513 * include/pstl/glue_memory_impl.h: Likewise.
1514 * include/pstl/glue_numeric_impl.h: Likewise.
1515 * include/pstl/memory_impl.h: Likewise.
1516 * include/pstl/numeric_fwd.h: Likewise.
1517 * include/pstl/numeric_impl.h: Likewise.
1518 * include/pstl/parallel_backend.h: Likewise.
1519 * include/pstl/parallel_backend_serial.h: Likewise.
1520 * include/pstl/parallel_backend_tbb.h: Likewise.
1521 * include/pstl/parallel_impl.h: Likewise.
1522 * include/pstl/pstl_config.h: Likewise.
1523 * include/pstl/unseq_backend_simd.h: Likewise.
1524 * include/pstl/utils.h: Likewise.
1525 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
1527 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
1529 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
1531 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
1533 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
1534 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
1536 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
1538 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
1540 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
1542 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
1544 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
1546 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
1548 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
1550 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
1552 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
1554 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
1556 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
1558 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1560 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
1562 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1564 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
1566 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
1568 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
1570 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
1572 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
1574 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
1576 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
1578 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
1580 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
1582 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1584 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
1586 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
1588 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
1590 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1592 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
1594 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
1596 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
1598 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
1600 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1602 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1604 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
1606 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
1608 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1610 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1612 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
1614 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
1616 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
1618 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
1620 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
1622 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
1624 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
1626 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1628 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
1630 * testsuite/util/pstl/test_utils.h:
1633 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1636 * include/std/format (__format::__parse_integer): Fix buffer
1637 overflow for wide chars.
1638 (formatter<const void*, C>::format): Cast to uintptr_t instead
1640 * testsuite/std/format/string.cc: Test too-large widths.
1642 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1644 * include/bits/iterator_concepts.h (projected): Replace class
1645 template with alias template denoting an ADL-proofed helper.
1646 (incremental_traits<projected<Iter, Proj>>): Remove.
1647 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1650 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1652 * include/debug/helper_functions.h (__get_distance)
1653 (__check_singular, __valid_range_aux, __valid_range): Qualify
1654 calls to disable ADL.
1655 (__check_singular_aux(const _Safe_iterator_base*)): Declare
1656 overload that was previously found via ADL.
1658 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
1660 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
1663 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
1665 * include/std/array (to_array(T(&)[N])): Remove redundant
1667 (to_array(T(&&)[N])): Remove redundant std::move.
1669 2023-06-16 Alexandre Oliva <oliva@adacore.com>
1671 * testsuite/20_util/from_chars/4.cc: Skip long double on
1674 2023-06-16 Joel Brobecker <brobecker@adacore.com>
1676 * configure.ac ["x${with_newlib}" = "xyes"]: Define
1677 HAVE_HYPOTF. Add compile-checks for various long double
1678 math functions as well.
1679 * configure: Regenerate.
1681 2023-06-14 Jonny Grant <jg@jguk.org>
1683 * doc/xml/manual/extensions.xml: Remove demangle exception
1684 description and include.
1685 * doc/html/manual/ext_demangling.html: Regenerate.
1687 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
1689 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
1690 [! SIMULATOR_TEST]: Also exclude running test05.
1691 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
1693 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
1695 * include/std/type_traits: Use using instead of typedef
1697 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1700 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
1701 Only define if _Float128 and long double have different
1704 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1707 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
1708 (basic_endpoint, basic_resolver_entry, resolver_base)
1709 (basic_resolver_results, basic_resolver): Only define if the tcp
1710 or udp protocols will be defined.
1712 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1714 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
1715 * configure: Regenerate.
1716 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
1717 * doc/html/manual/abi.html: Regenerate.
1719 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1722 * include/std/format (formatter<const void*, charT>::parse):
1723 Only alow 0 and P for C++26 and non-strict modes.
1724 (formatter<const void*, charT>::format): Use toupper for P
1725 type, and insert zero-fill characters for 0 option.
1726 * testsuite/std/format/functions/format.cc: Check pointer
1727 formatting. Only check P2510R3 extensions conditionally.
1728 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
1729 extensions conditionally.
1731 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1734 * include/std/array (to_array): Initialize arrays of trivial
1735 types using memcpy. For non-trivial types, use lambda
1736 expressions instead of a separate helper function.
1737 (__to_array): Remove.
1738 * testsuite/23_containers/array/creation/110167.cc: New test.
1740 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1742 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
1744 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
1746 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
1748 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
1750 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
1752 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
1754 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
1756 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
1758 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
1761 2023-06-07 Jakub Jelinek <jakub@redhat.com>
1764 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
1765 (double_to_chars_test_cases,
1766 double_scientific_precision_to_chars_test_cases_2,
1767 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
1768 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
1769 Add unconditional tests with corresponding double constants
1770 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
1771 0x1.7440bbff418b9p-18.
1773 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1775 * testsuite/util/testsuite_abi.cc (check_version): Re-add
1778 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1780 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
1781 Require effective target exceptions_enabled instead of using
1783 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
1784 shrink_to_fit() to be a no-op without exceptions enabled.
1785 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
1787 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
1788 Require effective target exceptions_enabled.
1789 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
1791 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
1793 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
1795 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
1797 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
1800 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1802 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
1803 affected by rounding.
1804 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
1805 double before comparing for equality.
1806 * testsuite/20_util/from_chars/6.cc: Likewise.
1807 * testsuite/20_util/variant/86874.cc: Use values that aren't
1808 affected by rounding.
1809 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
1810 original value instead of to floating-point-literal.
1811 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
1812 Cast arithmetic result to double before comparing for equality.
1813 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
1815 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
1817 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
1818 the absolute difference is less than 0.01 instead of comparing
1819 to two decimal places.
1820 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
1821 Cast arithmetic result to double before comparing for equality.
1822 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
1824 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
1826 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
1828 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
1830 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
1832 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
1834 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1837 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1839 * configure.ac: Use AS_IF.
1840 * configure: Regenerate.
1842 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
1844 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
1845 'UNSUPPORTED: [...]: exception handling disabled'.
1847 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1849 * testsuite/util/testsuite_abi.cc (check_version): Add
1850 CXXABI_1.3.15 symver and make it the latestp. Remove
1851 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
1853 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1854 Jakub Jelinek <jakub@redhat.com>
1857 * include/std/limits: (numeric_limits<__float128>): Define
1858 for __STRICT_ANSI__ as well.
1859 * testsuite/18_support/numeric_limits/128bit.cc: Remove
1860 check for __STRICT_ANSI__.
1862 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1864 * configure.ac: Use AS_IF.
1865 * configure: Regenerate.
1867 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1870 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
1871 to avoid casts to other vector types. Implement store as
1872 succession of power-of-2 sized memcpy to avoid PR90424.
1874 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1877 * include/experimental/bits/simd_builtin.h (_S_masked_store):
1878 Call into deduced ABI's SimdImpl after conversion.
1879 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
1880 Don't use _mm_maskmoveu_si128. Use the generic fall-back
1881 implementation. Also fix masked stores without SSE2, which
1882 were not doing anything before.
1884 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1886 * include/experimental/bits/simd.h (__bit_cast): Use
1887 __gnu__::__vector_size__ instead of gnu::vector_size.
1889 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1892 * include/std/array (__array_traits<T, 0>::operator T*()): Make
1893 conversion operator explicit.
1894 (array::front): Use size_type as subscript operand.
1895 (array::data): Use static_cast to make conversion explicit.
1896 * testsuite/23_containers/array/element_access/110139.cc: New
1899 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
1901 * include/bits/locale_classes.tcc: Remove check for
1902 codecvt<char8_t, char, mbstate_t> facet.
1904 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1906 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
1907 close-on-exec flag on file descriptors.
1909 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1912 * src/filesystem/ops-common.h (do_copy_file): Check for empty
1913 files by trying to read a character.
1914 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
1917 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1919 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
1920 * config.h.in: Regenerate.
1921 * configure: Regenerate.
1922 * src/filesystem/ops-common.h (copy_file_copy_file_range):
1923 Define new function.
1924 (do_copy_file): Use it.
1926 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1928 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
1929 * config.h.in: Regenerate.
1930 * configure: Regenerate.
1931 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
1932 function for sendfile logic. Loop to support large files. Skip
1934 (do_copy_file): Use it.
1936 2023-06-04 Jason Merrill <jason@redhat.com>
1939 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
1940 * config/abi/pre/gnu.ver: Add it.
1942 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
1944 * include/parallel/algobase.h: Include <parallel/search.h>.
1946 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1948 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1949 Add const to equality operator.
1951 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1953 * include/std/expected (expected::and_then, expected::or_else)
1954 (expected::transform_error): Use _M_val and _M_unex instead of
1955 calling value() and error(), as per LWG 3938.
1956 (expected::transform): Likewise. Remove incorrect std::move
1957 calls from lvalue overloads.
1958 (expected<void, E>::and_then, expected<void, E>::or_else)
1959 (expected<void, E>::transform): Use _M_unex instead of calling
1961 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
1962 and transform, and for std::expected<void, E>.
1963 * testsuite/20_util/expected/lwg3938.cc: New test.
1965 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1968 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
1970 (vector::size, vector::capacity): Remove calls to _M_invariant.
1971 * include/bits/vector.tcc (vector::_M_fill_assign): Add
1972 optimization hint to reallocating path.
1973 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
1975 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
1977 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
1978 ...here. Check assign(FwdIter, FwdIter) too.
1979 * testsuite/23_containers/vector/types/1.cc: Revert addition
1980 of -Wno-stringop-overread option.
1982 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1984 * doc/xml/manual/evolution.xml: Document removal of implicit
1985 allocator rebinding extensions in strict mode and for C++20.
1986 * doc/html/*: Regenerate.
1988 2023-06-01 Jason Merrill <jason@redhat.com>
1990 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
1991 handlers in the cleanup phase.
1993 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
1996 * include/experimental/bits/simd.h (__vectorized_sizeof): With
1997 __have_neon_a32 only single-precision float works (in addition
2000 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
2002 * include/bits/stl_algo.h
2003 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
2004 * include/bits/stl_algobase.h: ...here.
2005 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
2006 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
2007 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
2009 * include/parallel/algobase.h: ...here.
2010 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
2011 includes. Include <bits/stl_algobase.h>.
2013 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2016 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
2017 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
2018 * config.h.in: Regenerate.
2019 * configure: Regenerate.
2020 * include/c_global/cmath (float_t, double_t): Guard using new
2021 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
2023 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2025 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
2026 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
2027 for C99 rounding functions to here.
2028 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
2029 functions from here.
2030 * config.h.in: Regenerate.
2031 * configure: Regenerate.
2032 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
2033 of _GLIBCXX_USE_C99_MATH_TR1.
2034 * include/bits/random.tcc: Likewise.
2035 * include/c_compatibility/math.h: Likewise.
2036 * include/c_global/cmath: Likewise.
2037 * include/ext/random: Likewise.
2038 * include/ext/random.tcc: Likewise.
2039 * include/std/complex: Likewise.
2040 * testsuite/20_util/from_chars/4.cc: Likewise.
2041 * testsuite/20_util/from_chars/8.cc: Likewise.
2042 * testsuite/26_numerics/complex/proj.cc: Likewise.
2043 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
2044 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
2046 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
2048 * testsuite/util/testsuite_random.h: Likewise.
2050 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2052 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
2054 (vector::size(), vector::capacity()): Call _M_invariant().
2055 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
2056 * testsuite/23_containers/vector/types/1.cc: Add suppression for
2057 false positive warning (PR110060).
2059 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2062 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
2063 defined before trying to use _Float128.
2065 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2067 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
2068 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
2069 * configure: Regenerate.
2071 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2073 * include/bits/unique_lock.h: Include <bits/error_constants.h>
2074 here for std::errc constants.
2075 * include/std/mutex: Do not include <bits/error_constants.h> and
2078 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2080 * configure.ac: Replace use of -o operator for test.
2081 * configure: Regenerate.
2083 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2085 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
2086 noexcept to all constructors except the default constructor.
2087 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
2088 (scoped_allocator_adaptor::outer_allocator): Likewise.
2089 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
2091 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2094 * include/std/limits (numeric_limits<__float128>): Define.
2095 * testsuite/18_support/numeric_limits/128bit.cc: New test.
2097 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2099 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
2100 msp430 to all 16-bit targets.
2101 * configure: Regenerate.
2103 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2106 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
2107 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
2108 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
2110 (from_chars(const char*, const char*, double&, chars_format)):
2111 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
2112 (from_chars(const char*, const char*, _Float128&, chars_format))
2113 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
2114 defined, otherwise parse a long double and convert to _Float128.
2116 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2119 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
2120 Add deprecated attribute to non-standard overload.
2121 * doc/xml/manual/evolution.xml: Document deprecation.
2122 * doc/html/*: Regenerate.
2123 * testsuite/27_io/manipulators/standard/char/1.cc: Add
2124 dg-warning for expected deprecated warning.
2125 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
2126 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
2127 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
2129 2023-05-30 Alexandre Oliva <oliva@adacore.com>
2131 * testsuite/20_util/from_chars/4.cc: Skip long double test06
2133 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
2136 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
2139 * include/experimental/bits/simd.h (to_native): Use int NTTP
2140 as specified in PTS2.
2141 (to_compatible): Likewise. Add missing tag to call mask
2143 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
2146 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
2148 * testsuite/experimental/simd/tests/integer_operators.cc:
2149 Compute expected value differently to avoid getting turned into
2152 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
2154 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
2155 double <-> (u)long conversion tests conditional on sizeof(long
2156 double) and sizeof(long).
2158 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
2160 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
2161 Negative __y is UB, so prefer signed compare.
2163 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
2165 * testsuite/util/testsuite_allocator.h (PointerBase): Add
2166 relational operators.
2168 2023-05-25 Alexandre Oliva <oliva@adacore.com>
2170 * testsuite/20_util/to_chars/long_double.cc: Expect execution
2171 fail on x86-vxworks.
2173 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
2176 * include/experimental/bits/simd.h (__intrinsic_type): If
2177 __ALTIVEC__ is defined, map gnu::vector_size types to their
2178 corresponding __vector T types without losing unsignedness of
2179 integer types. Also prefer long long over long.
2180 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
2181 object to the expected unsigned vector type.
2183 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
2186 * include/experimental/bits/simd.h (__intrinsic_type):
2187 Specialize __intrinsic_type<double, 8> and
2188 __intrinsic_type<double, 16> in any case, but provide the member
2189 type only with __aarch64__.
2191 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
2194 * include/experimental/bits/simd_neon.h (_S_reduce): Add
2195 constexpr and make NEON implementation conditional on
2196 not __builtin_is_constant_evaluated.
2198 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
2201 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
2202 Avoid vector builtin subscripting in constant expressions.
2203 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
2204 (const_where_expression, where_expression, where)
2205 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
2206 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
2208 * include/experimental/bits/simd_builtin.h (__vector_permute)
2209 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
2210 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
2211 (_MaskImplBuiltin::_S_store): Add constexpr.
2212 (_CommonImplBuiltin::_S_store_bool_array)
2213 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
2214 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
2215 constant_evaluated case.
2216 * include/experimental/bits/simd_fixed_size.h
2217 (_S_masked_load): Reword comment.
2218 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
2219 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
2220 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
2221 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
2222 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
2224 (_SimdTuple::operator[], _M_set): Add constexpr and add
2225 constant_evaluated case.
2226 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
2227 * include/experimental/bits/simd_scalar.h: Add constexpr.
2228 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
2229 constexpr and add constant_evaluated case.
2230 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
2231 (_S_less_equal): Value-initialize to satisfy constexpr
2233 (_MaskImplX86::_S_load): Add constant_evaluated case.
2234 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
2235 case. Value-initialize local variables.
2236 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
2237 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
2239 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
2242 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
2244 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
2245 __infn into #ifdef'ed block.
2246 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
2247 constants only when used.
2248 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
2249 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
2250 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
2252 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2253 Move totest and expect1 into #ifdef'ed block.
2255 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
2257 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
2258 * doc/html/manual/strings.html: Regenerate.
2260 2023-05-17 Jakub Jelinek <jakub@redhat.com>
2263 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
2265 2023-05-17 Jakub Jelinek <jakub@redhat.com>
2268 * include/c_global/cmath (atan2, fmod, pow): Move
2269 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
2270 __gnu_cxx::__bfloat16_t overloads.
2271 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
2273 (fma): Move __gnu_cxx::__promote_3 using template after
2274 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
2276 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2278 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
2279 checks for float_round_style and float_denorm_style.
2281 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2283 * include/bits/c++config: Add system_header pragma.
2285 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2287 * include/std/expected (expected::and_then, expected::or_else)
2288 (expected::transform, expected::transform_error): Fix exception
2289 specifications as per LWG 3877.
2290 (expected<void, E>::and_then, expected<void, E>::transform):
2292 * testsuite/20_util/expected/lwg3877.cc: New test.
2294 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
2296 * include/std/type_traits: Use __bool_constant instead of
2299 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2301 * configure: Regenerate.
2303 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2306 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
2307 * config.h.in: Regenerate.
2308 * configure: Regenerate.
2309 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
2310 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
2311 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
2312 instead of hardcoded 64.
2314 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2316 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
2317 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
2318 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
2319 * config.h.in: Regenerate.
2320 * configure: Regenerate.
2321 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
2322 instead of _GLIBCXX_USE_C99_FENV_TR1.
2323 * include/c_global/cfenv: Likewise.
2324 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
2325 of _GLIBCXX_USE_C99_CTYPE_TR1.
2327 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2329 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
2330 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
2331 <inttypes.h> features in C++11 mode and define
2332 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
2333 * config.h.in: Regenerate.
2334 * configure: Regenerate.
2335 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
2336 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
2337 of _GLIBCXX_USE_C99_STDINT_TR1.
2338 * include/c_compatibility/inttypes.h: Check
2339 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
2340 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
2341 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
2342 * include/c_compatibility/stdatomic.h: Check
2343 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
2344 * include/c_compatibility/stdint.h: Likewise.
2345 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
2346 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
2347 _GLIBCXX_USE_C99_INTTYPES_TR1 and
2348 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
2349 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
2350 instead of _GLIBCXX_USE_C99_STDINT_TR1.
2351 * include/std/atomic: Likewise.
2352 * src/c++11/cow-stdexcept.cc: Likewise.
2353 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
2355 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
2358 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2360 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
2361 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
2362 * config.h.in: Regenerate.
2363 * configure: Regenerate.
2364 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
2365 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
2366 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
2368 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2370 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
2371 assertion to ensure expected exception is throw.
2373 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2375 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
2376 printer for chrono::zoned_time for cx11 ABI and tzdb effective
2379 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2381 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
2382 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
2383 * configure: Regenerate.
2385 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2387 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
2388 to check for nan, nanf, and nanl.
2389 * configure: Regenerate.
2391 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2393 * include/bits/char_traits.h (char_traits<char16_t>): Do not
2394 depend on _GLIBCXX_USE_C99_STDINT_TR1.
2395 (char_traits<char32_t>): Likewise.
2396 * include/experimental/source_location: Likewise.
2398 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2400 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
2401 (atomic_int_least16_t, atomic_uint_least16_t)
2402 (atomic_int_least32_t, atomic_uint_least32_t)
2403 (atomic_int_least64_t, atomic_uint_least64_t)
2404 (atomic_int_fast16_t, atomic_uint_fast16_t)
2405 (atomic_int_fast32_t, atomic_uint_fast32_t)
2406 (atomic_int_fast64_t, atomic_uint_fast64_t)
2407 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
2408 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
2410 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2412 * include/bits/algorithmfwd.h (shuffle): Do not depend on
2413 _GLIBCXX_USE_C99_STDINT_TR1.
2414 * include/bits/ranges_algo.h (shuffle): Likewise.
2415 * include/bits/stl_algo.h (shuffle): Likewise.
2416 * include/ext/random: Likewise.
2417 * include/ext/throw_allocator.h (random_condition): Likewise.
2418 * include/std/random: Likewise.
2419 * src/c++11/cow-string-inst.cc: Likewise.
2420 * src/c++11/random.cc: Likewise.
2422 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2424 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
2425 _GLIBCXX_USE_C99_STDINT_TR1.
2427 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2429 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
2430 on _GLIBCXX_USE_C99_STDINT_TR1.
2432 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2434 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
2435 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
2436 * testsuite/experimental/string_view/typedefs.cc: Likewise.
2438 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2440 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
2441 (auto_locale, auto_ferounding): New class types.
2442 (from_chars_impl): Use auto_locale and auto_ferounding.
2444 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2447 * include/std/chrono (hh_mm_ss::__fits): Remove variable
2449 (hh_mm_ss::__subseconds): Remove __fits from constraints.
2450 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
2451 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
2452 hh_mm_ss<duration<int, std::pico>>.
2454 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2456 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
2457 * include/bits/basic_ios.h: Add static assertion checking
2458 traits_type::value_type.
2459 * include/bits/basic_string.h: Likewise. Do not rebind
2460 allocator, and add static assertion checking its value_type.
2461 (basic_string::_Alloc_traits_impl): Remove class template.
2462 (basic_string::_S_allocate): New static member function.
2463 (basic_string::assign): Use _S_allocate.
2464 * include/bits/basic_string.tcc (basic_string::_M_create)
2465 (basic_string::reserve, basic_string::_M_replace): Likewise.
2466 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
2467 Disable for C++20 and later.
2468 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
2471 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2474 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
2475 and negative zero correctly.
2476 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
2478 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
2480 * include/bits/hashtable_policy.h
2481 (_NodeBuilder<>::_S_build): Use __node_ptr.
2482 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
2483 (_AllocNode<>): Likewise.
2484 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
2485 to call std::is_permutation in the non-unique key implementation.
2486 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
2488 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
2489 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
2490 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
2491 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
2493 (_Hashtable<>::find): Likewise.
2494 (_Hashtable<>::_M_emplace): Likewise.
2495 (_Hashtable<>::_M_insert_unique): Likewise.
2497 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
2499 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
2500 Print floating-point durations correctly.
2501 (StdChronoTimePointPrinter): Support printing only the value,
2502 not the type name. Uncomment handling for known clocks.
2503 (StdChronoZonedTimePrinter): Remove type names from output.
2504 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
2505 (StdChronoTimeZonePrinter): Add equals sign to output.
2506 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
2508 2023-05-05 Alexandre Oliva <oliva@adacore.com>
2510 * testsuite/20_util/from_chars/4.cc: Skip long double test06
2512 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
2515 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
2517 * doc/xml/manual/abi.xml (abi.versioning.history): Document
2518 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
2519 * doc/html/manual/abi.html: Regenerate.
2521 2023-05-04 Florian Weimer <fweimer@redhat.com>
2523 * doc/xml/manual/abi.xml (abi.versioning.history): Add
2524 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
2527 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2529 * src/c++17/floating_from_chars.cc
2530 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
2531 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
2532 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
2533 _ZSt8to_charsPcS_u9__ieee128.
2534 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
2535 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
2536 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
2537 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
2538 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
2540 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2542 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
2543 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
2544 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
2545 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
2546 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
2548 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
2551 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
2552 Jonathan Wakely <jwakely@redhat.com>
2555 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
2556 Initialize _M_string_length.
2558 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2560 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2561 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2562 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2563 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2564 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2565 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2566 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2567 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2569 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2572 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
2575 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2577 * include/bits/random.h (gamma_distribution): Add to the right
2579 (discrete_distribution, piecewise_constant_distribution)
2580 (piecewise_linear_distribution): Create a new doxygen group and
2581 fix the incomplete doxygen comments.
2582 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2583 Add to doxygen group.
2585 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2587 * include/bits/uses_allocator.h: Add missing @file comment.
2588 * include/bits/regex.tcc: Remove stray doxygen comments.
2589 * include/experimental/memory_resource: Likewise.
2590 * include/std/bit: Tweak doxygen @cond comments.
2591 * include/std/expected: Likewise.
2592 * include/std/numbers: Likewise.
2594 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2596 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
2599 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2601 * include/bits/move.h: Simplify opening/closing namespace std.
2603 2023-04-28 Jakub Jelinek <jakub@redhat.com>
2606 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
2607 _ZSt21ios_base_library_initv.
2608 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
2609 symver and make it the latestp.
2610 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
2611 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
2612 * include/std/iostream: If init_priority attribute is supported
2613 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
2614 symbol into the object.
2615 * configure: Regenerated.
2617 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2619 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
2620 * include/std/format: Likewise.
2622 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2624 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
2625 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
2627 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2629 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
2631 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
2633 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
2635 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
2637 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
2639 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
2640 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
2641 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
2642 (_DEFINE_BINARY_OPERATOR): Likewise.
2644 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2646 * include/bits/memory_resource.h: Improve doxygen comments.
2647 * include/std/memory_resource: Likewise.
2649 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2652 * include/bits/basic_string.h: Improve doxygen comments.
2653 * include/bits/cow_string.h: Likewise.
2654 * include/bits/forward_list.h: Likewise.
2655 * include/bits/fs_dir.h: Likewise.
2656 * include/bits/fs_path.h: Likewise.
2657 * include/bits/quoted_string.h: Likewise.
2658 * include/bits/stl_bvector.h: Likewise.
2659 * include/bits/stl_map.h: Likewise.
2660 * include/bits/stl_multimap.h: Likewise.
2661 * include/bits/stl_multiset.h: Likewise.
2662 * include/bits/stl_set.h: Likewise.
2663 * include/bits/stl_vector.h: Likewise.
2664 * include/bits/unordered_map.h: Likewise.
2665 * include/bits/unordered_set.h: Likewise.
2666 * include/std/filesystem: Likewise.
2667 * include/std/iomanip: Likewise.
2669 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2672 * src/c++11/random.cc (__throw_syserr): New function.
2673 (random_device::_M_init, random_device::_M_init_pretr1): Use new
2674 function for bad tokens.
2675 (random_device::_M_getval): Use new function for read errors.
2676 * testsuite/util/testsuite_random.h (random_device_available):
2677 Change catch handler to use std::system_error.
2679 2023-04-24 Patrick Palka <ppalka@redhat.com>
2681 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
2682 Fix propagation of sign bit.
2683 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
2684 non-standard 'signed typedef-name'. Add some compile-time tests
2685 for right-shifting a negative __max_diff_type value by more than
2688 2023-04-19 Patrick Palka <ppalka@redhat.com>
2689 Jonathan Wakely <jwakely@redhat.com>
2692 * include/bits/utility.h (_Nth_type): Conditionally define in
2693 terms of __type_pack_element if available.
2694 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
2695 additional errors from the new built-in.
2697 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2700 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2703 * src/Makefile.am: Move globals_io.cc to here.
2704 * src/Makefile.in: Regenerate.
2705 * src/c++98/Makefile.am: Remove globals_io.cc from here.
2706 * src/c++98/Makefile.in: Regenerate.
2707 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
2708 symbol name and then export with GLIBCXX_3.4.31 symver.
2709 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
2710 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
2712 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2714 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2716 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2718 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2720 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2722 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2724 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2726 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2728 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2731 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2734 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2736 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2738 * doc/xml/manual/extensions.xml: Fix example to declare and
2739 qualify std::free, and use NULL instead of 0.
2740 * doc/html/manual/ext_demangling.html: Regenerate.
2741 * libsupc++/cxxabi.h: Adjust doxygen comments.
2743 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2746 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2748 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2751 * src/Makefile.am: Move globals_io.cc to here.
2752 * src/Makefile.in: Regenerate.
2753 * src/c++98/Makefile.am: Remove globals_io.cc from here.
2754 * src/c++98/Makefile.in: Regenerate.
2755 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
2756 symbol name and then export with GLIBCXX_3.4.31 symver.
2757 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
2758 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
2760 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2762 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2764 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2766 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2768 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2770 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2772 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2774 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2776 2023-04-18 Patrick Palka <ppalka@redhat.com>
2779 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
2781 * include/std/ranges (range_adaptor_closure): Define for C++23.
2782 * include/std/version (__cpp_lib_ranges): Bump value for
2784 * testsuite/std/ranges/version_c++23.cc: Bump expected value
2785 of __cpp_lib_ranges.
2786 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
2788 2023-04-18 Patrick Palka <ppalka@redhat.com>
2790 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
2792 (__cpp_lib_ranges_iota): Likewise.
2793 (__cpp_lib_ranges_find_last): Likewise.
2794 (__cpp_lib_fold): Rename to ...
2795 (__cpp_lib_ranges_fold): ... this.
2796 * include/std/version: As above.
2797 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
2798 renaming __cpp_lib_fold.
2799 * testsuite/std/ranges/version_c++23.cc: Verify values
2800 of the above feature-test macros.
2802 2023-04-18 Patrick Palka <ppalka@redhat.com>
2805 * include/std/ranges (views::_AsConst::operator()): Add
2806 missing const to constant_range test.
2807 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
2808 Improve formatting. Adjust expected type of v2.
2811 2023-04-14 Patrick Palka <ppalka@redhat.com>
2813 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
2814 (const_sentinel_t): Likewise.
2815 (range_const_reference_t): Likewise.
2816 (constant_range): Likewise.
2817 (__cust_access::__possibly_const_range): Likewise, replacing ...
2818 (__cust_access::__as_const): ... this.
2819 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
2820 (__cust_access::_CEnd::operator()): Likewise.
2821 (__cust_access::_CRBegin::operator()): Likewise.
2822 (__cust_access::_CREnd::operator()): Likewise.
2823 (__cust_access::_CData::operator()): Likewise.
2824 * include/bits/ranges_util.h (ranges::__detail::__different_from):
2825 Make it an alias of std::__detail::__different_from.
2826 (view_interface::cbegin): Define for C++23.
2827 (view_interface::cend): Likewise.
2828 * include/bits/stl_iterator.h (__detail::__different_from): Define.
2829 (iter_const_reference_t): Define for C++23.
2830 (__detail::__constant_iterator): Likewise.
2831 (__detail::__is_const_iterator): Likewise.
2832 (__detail::__not_a_const_iterator): Likewise.
2833 (__detail::__iter_const_rvalue_reference_t): Likewise.
2834 (__detail::__basic_const_iter_cat):: Likewise.
2835 (const_iterator): Likewise.
2836 (__detail::__const_sentinel): Likewise.
2837 (const_sentinel): Likewise.
2838 (basic_const_iterator): Likewise.
2839 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
2840 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
2841 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
2843 (make_const_iterator): Define for C++23.
2844 (make_const_sentinel): Likewise.
2845 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
2846 (as_const_view): Likewise.
2847 (enable_borrowed_range<as_const_view>): Likewise.
2848 (views::__detail::__is_ref_view): Likewise.
2849 (views::__detail::__can_is_const_view): Likewise.
2850 (views::_AsConst, views::as_const): Likewise.
2851 * include/std/span (span::const_iterator): Likewise.
2852 (span::const_reverse_iterator): Likewise.
2853 (span::cbegin): Likewise.
2854 (span::cend): Likewise.
2855 (span::crbegin): Likewise.
2856 (span::crend): Likewise.
2857 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
2858 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
2859 behave independently of C++20 vs C++23.
2860 * testsuite/std/ranges/version_c++23.cc: Verify value of
2861 __cpp_lib_ranges_as_const macro.
2862 * testsuite/24_iterators/const_iterator/1.cc: New test.
2863 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
2865 2023-04-14 Patrick Palka <ppalka@redhat.com>
2867 * include/bits/ranges_base.h (__cust_access::__as_const)
2868 (__cust_access::_CBegin, __cust::cbegin)
2869 (__cust_access::_CEnd, __cust::cend)
2870 (__cust_access::_CRBegin, __cust::crbegin)
2871 (__cust_access::_CREnd, __cust::crend)
2872 (__cust_access::_CData, __cust::cdata): Move down definitions to
2873 shortly after the definition of input_range.
2875 2023-04-14 Patrick Palka <ppalka@redhat.com>
2877 * include/bits/ranges_algo.h: Include <optional> for C++23.
2878 (__cpp_lib_fold): Define for C++23.
2879 (in_value_result): Likewise.
2880 (__detail::__flipped): Likewise.
2881 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
2882 (__detail::__indirectly_binary_left_foldable): Likewise.
2883 (___detail:__indirectly_binary_right_foldable): Likewise.
2884 (fold_left_with_iter_result): Likewise.
2885 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
2886 (__fold_left_fn, fold_left): Likewise.
2887 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
2889 (__fold_left_first_fn, fold_left_first): Likewise.
2890 (__fold_right_fn, fold_right): Likewise.
2891 (__fold_right_last_fn, fold_right_last): Likewise.
2892 * include/std/version (__cpp_lib_fold): Likewise.
2893 * testsuite/25_algorithms/fold_left/1.cc: New test.
2894 * testsuite/25_algorithms/fold_right/1.cc: New test.
2896 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
2898 * include/std/format (formatter): Add comment to deleted default
2899 constructor of primary template.
2900 (_Checking_scanner): Add static_assert.
2902 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2904 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
2905 * doc/html/*: Regenerate.
2907 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2909 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
2910 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
2911 namespace to avoid clashing with libc struct.
2912 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
2914 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
2915 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
2916 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
2917 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2918 * testsuite/experimental/synchronized_value.cc: Require gthreads
2919 and add missing option for pthreads targets.
2921 2023-04-12 Patrick Palka <ppalka@redhat.com>
2923 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
2925 (__detail::__range_with_movable_reference): Likewise.
2926 (enumerate_view): Likewise.
2927 (enumerate_view::_Iterator): Likewise.
2928 (enumerate_view::_Sentinel): Likewise.
2929 (views::__detail::__can_enumerate_view): Likewise.
2930 (views::_Enumerate, views::enumerate): Likewise.
2931 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
2932 * testsuite/std/ranges/version_c++23.cc: Verify value of
2933 __cpp_lib_ranges_enumerate.
2934 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
2936 2023-04-12 Patrick Palka <ppalka@redhat.com>
2938 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
2939 Propagate _M_trailing_empty in the const-converting constructor
2941 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
2943 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
2945 2023-04-12 Patrick Palka <ppalka@redhat.com>
2947 * src/c++17/floating_from_chars.cc: Include <algorithm>,
2948 <iterator>, <limits> and <cstdint>.
2950 2023-04-12 Patrick Palka <ppalka@redhat.com>
2953 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
2954 parameter types of the lambda wrapper passed to adjacent_find.
2955 (chunk_by_view::_M_find_prev): Likewise.
2956 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
2959 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2962 * include/experimental/internet (basic_endpoint::basic_endpoint()):
2963 Ensure that the required union members are active. Only define
2964 as constexpr for C++20 and later.
2965 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
2967 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
2968 check constexpr default constructor for C++20 and later.
2969 * testsuite/experimental/net/internet/endpoint/extensible.cc:
2972 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2974 * src/c++20/tzdata.zi: Import new file from 2023c release.
2976 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2978 * include/precompiled/stdc++.h (C++17): Don't double-include
2979 <charconv>, once with wrong conditions.
2980 * testsuite/18_support/96817.cc: Require hosted.
2981 * testsuite/18_support/bad_exception/59392.cc: Ditto.
2982 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
2983 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
2984 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
2987 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2989 * include/bits/c++config: When __STDC_HOSTED__ is zero,
2990 disable _GLIBCXX_DEBUG and, if it was set, enable
2991 _GLIBCXX_ASSERTIONS.
2992 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
2993 Include <bits/c++config.h> when determining whether debug is
2994 set, in order to inherit the logic from above
2996 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2998 * testsuite/17_intro/versionconflict.cc: New test.
2999 * include/std/version: Allow disabling the system_header pragma
3000 via _GLIBCXX_TESTING_SYSHDR.
3002 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
3004 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3005 Synchronize the definition block with...
3006 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
3007 ... this one here. Also define the 202202L value, rather than
3008 leaving it up to purely unique_ptr.h, so that the value is
3009 synchronized across all headers.
3010 (__gnu_debug::_Safe_iterator_base): Move into new conditional
3012 * include/std/memory (__cpp_lib_atomic_value_initialization):
3013 Define on freestanding under the same conditions as in
3015 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
3016 Also define on freestanding.
3017 (__cpp_lib_to_chars): Ditto.
3018 (__cpp_lib_gcd): Ditto.
3019 (__cpp_lib_gcd_lcm): Ditto.
3020 (__cpp_lib_raw_memory_algorithms): Ditto.
3021 (__cpp_lib_array_constexpr): Ditto.
3022 (__cpp_lib_nonmember_container_access): Ditto.
3023 (__cpp_lib_clamp): Ditto.
3024 (__cpp_lib_constexpr_char_traits): Ditto.
3025 (__cpp_lib_constexpr_string): Ditto.
3026 (__cpp_lib_sample): Ditto.
3027 (__cpp_lib_lcm): Ditto.
3028 (__cpp_lib_constexpr_iterator): Ditto.
3029 (__cpp_lib_constexpr_char_traits): Ditto.
3030 (__cpp_lib_interpolate): Ditto.
3031 (__cpp_lib_constexpr_utility): Ditto.
3032 (__cpp_lib_shift): Ditto.
3033 (__cpp_lib_ranges): Ditto.
3034 (__cpp_lib_move_iterator_concept): Ditto.
3035 (__cpp_lib_constexpr_numeric): Ditto.
3036 (__cpp_lib_constexpr_functional): Ditto.
3037 (__cpp_lib_constexpr_algorithms): Ditto.
3038 (__cpp_lib_constexpr_tuple): Ditto.
3039 (__cpp_lib_constexpr_memory): Ditto.
3041 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
3043 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
3044 timeout factor on hppa*-*-*.
3046 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
3048 * include/bits/regex.h (sub_match::swap): New function.
3049 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
3051 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
3053 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
3055 * doc/html/manual/ext_demangling.html: Regenerate.
3057 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
3059 PR tree-optimization/107087
3060 * include/bits/cow_string.h (basic_string::size()): Add
3061 optimizer hint that _S_empty_rep()._M_length is always zero.
3062 (basic_string::length()): Call size().
3064 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
3067 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
3068 Add attribute access with access-mode 'none'.
3069 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
3071 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
3073 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
3074 Revert change from member function to data member. Fix for
3075 constant evaluation by detecting which union member is active.
3076 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
3079 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3082 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
3083 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
3085 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3087 * include/experimental/internet (ip::make_address): Implement
3089 (ip::address_v4::broadcast()): Avoid undefined shift.
3090 (ip::basic_endpoint): Fix member functions for constexpr.
3091 (ip::basic_endpoint::_M_is_v6): Replace member function with
3092 data member, adjust member functions using it.
3093 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
3095 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
3096 constexpr checks to work in C++14.
3097 * testsuite/experimental/net/internet/address/v4/creation.cc:
3099 * testsuite/experimental/net/internet/endpoint/cons.cc:
3101 * testsuite/experimental/net/internet/network/v4/cons.cc:
3103 * testsuite/experimental/net/internet/network/v4/members.cc:
3105 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
3107 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3109 * include/std/expected (expected::value() &): Use const lvalue
3110 for unex member passed to bad_expected_access constructor, as
3113 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3116 * include/std/expected (expected::transform): Use
3117 std::remove_cv_t instead of std::remove_cvref_t.
3118 (expected::transform_error): Likewise.
3119 (expected<cv void, E>::transform): Likewise.
3120 (expected<cv void, E>::transform_error): Likewise.
3121 * include/std/optional (transform): Use std::remove_cv_t.
3122 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
3124 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3126 * include/std/optional (optional): Adjust static assertion to
3127 reject arrays and functions as well as references.
3128 * testsuite/20_util/optional/requirements_neg.cc: New test.
3130 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
3133 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
3134 std::use_facet instead of cached _M_num_get facet.
3135 (istream::operator>>(short&)): Likewise.
3136 (istream::operator>>(int&)): Likewise.
3137 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
3138 std::use_facet instead of cached _M_num_put facet.
3140 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
3142 * include/bits/char_traits.h (char_traits::copy): Return without
3143 using memcpy if n==0.
3144 (char_traits::assign): Likewise for memset.
3146 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
3149 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
3150 hint for compiler that local strings fit in the local buffer.
3152 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
3155 * include/std/chrono (__detail::__get_leap_second_info): Update
3156 expiry date of hardcoded leapseconds list.
3157 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
3159 * src/c++20/tzdata.zi: Import new file from 2023a release.
3160 * testsuite/std/time/time_zone/get_info_local.cc: Only check
3161 transitions for Egypt up to 2014.
3163 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
3165 * include/experimental/bits/simd.h (is_simd_flag_type): New.
3166 (_IsSimdFlagType): New.
3167 (copy_from, copy_to, load ctors): Constrain _Flags using
3170 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
3172 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
3173 _Base::_S_divides if the optimized _S_divides function is hidden
3174 via the preprocessor.
3176 2023-03-27 Jakub Jelinek <jakub@redhat.com>
3178 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
3179 warning if size_t is not unsigned long.
3181 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3183 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
3184 Add overload, as per LWG 3893.
3185 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3186 Check assignment from nullptr.
3188 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3190 * include/std/format (formatter<const charT[N], charT>): Do not
3191 define partial speclialization, as per LWG 3833.
3192 * testsuite/std/format/formatter/requirements.cc: Check it.
3194 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3196 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
3198 * testsuite/20_util/exchange/constexpr.cc: Check for it.
3200 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3202 * include/std/version (__cpp_lib_format): Define.
3203 * testsuite/std/format/functions/format.cc: Check it.
3205 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3207 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
3208 Pass rvalues to the callback, as now allowed by LWG 3645.
3209 Enforce preconditions on the return value.
3210 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3213 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3215 * include/std/format: Add a comment noting that the resolution
3216 of LWG 3720 has been applied..
3218 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3220 * include/bits/regex.h (match_results): Add allocator-extended
3221 copy and move constructors, as per LWG 2195.
3222 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
3224 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3226 * include/bits/stream_iterator.h (istream_iterator): Add
3227 constexpr to copy constructor, as per LWG 3600.
3228 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
3229 Check copy construction.
3231 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3233 * include/experimental/bits/simd_x86.h
3234 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
3235 with __RECIPROCAL_MATH__.
3237 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3239 * include/experimental/bits/simd_detail.h: Don't define
3240 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
3241 * include/experimental/bits/simd_x86.h (_S_divides): Remove
3242 check for __clang__.
3244 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3246 * include/experimental/bits/simd_detail.h: Don't declare the
3247 simd API as constexpr with Clang.
3248 * include/experimental/bits/simd_x86.h (__movm): New.
3249 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
3251 (_SimdImplX86::_S_masked_unary): Clang does not implement the
3252 same builtins. Implement the function using __movm, ?:, and -
3253 operators on vector_size types instead.
3255 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3257 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
3258 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
3260 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
3262 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
3265 2023-03-20 Marek Polacek <polacek@redhat.com>
3268 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
3269 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
3270 * testsuite/23_containers/span/explicit.cc: Likewise.
3272 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
3275 * include/std/expected (expected<void>::expected(in_place_t)):
3276 Remove template-head.
3278 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
3281 * testsuite/18_support/coroutines/hash.cc: Use const object
3284 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
3287 * include/std/coroutine (hash<>::operator()): Add const.
3288 * testsuite/18_support/coroutines/hash.cc: New test.
3290 2023-03-14 Patrick Palka <ppalka@redhat.com>
3293 * include/std/ranges (repeat_view): Remove redundant parentheses
3295 (repeat_view::_Iterator): Correct the requires-clause.
3297 2023-03-14 Patrick Palka <ppalka@redhat.com>
3299 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
3301 (__cpp_lib_move_iterator_concept): Define for C++20.
3302 (move_iterator::iterator_concept): Strengthen as per P2520R0.
3303 * include/std/version (__cpp_lib_move_iterator_concept): Define
3305 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
3307 2023-03-14 Patrick Palka <ppalka@redhat.com>
3309 * include/bits/ranges_util.h (view_interface::empty): Add
3310 preferred overloads that use ranges::size when the range is
3311 sized as per LWG 3715.
3312 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
3314 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
3316 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
3317 Only define for C++17 and later.
3319 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
3321 * src/Makefile.am: Add comment about linker script fragments.
3322 * src/Makefile.in: Regenerate.
3324 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
3327 * include/bits/mask_array.h (mask_array): Add assertions to
3328 assignment operators.
3329 * include/std/valarray (valarray::operator[](valarray<bool>)):
3331 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
3332 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
3333 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
3334 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
3335 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
3336 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
3337 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
3338 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
3339 * testsuite/26_numerics/valarray/mask.cc: New test.
3341 2023-03-13 Jakub Jelinek <jakub@redhat.com>
3343 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3344 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3346 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
3348 * doc/Makefile.am: Add comment referring to documentation.
3349 * doc/Makefile.in: Regenerate.
3351 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
3353 * doc/html/*: Regenerate.
3355 2023-03-13 Jonny Grant <jg@jguk.org>
3357 * doc/xml/faq.xml: Update copyright year.
3359 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
3361 * include/bits/allocator.h: Fix typo in comment.
3363 2023-03-12 Jakub Jelinek <jakub@redhat.com>
3365 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
3366 if it isn't mangled as DF16b but u6__bf16.
3368 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
3370 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
3372 * doc/html/manual/documentation_hacking.html: Regenerate.
3374 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
3377 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
3378 Remove self-recursion in __init__. Add missing _supports.
3379 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
3382 2023-03-09 Patrick Palka <ppalka@redhat.com>
3384 * include/std/ranges
3385 (cartesian_product_view::_Iterator::_Iterator): Remove
3386 constraint on default constructor as per LWG 3849.
3387 (cartesian_product_view::_Iterator::_M_prev): Adjust position
3388 of _Nm > 0 test as per LWG 3820.
3389 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
3390 checking only on sized cartesian products.
3391 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
3393 2023-03-09 Patrick Palka <ppalka@redhat.com>
3396 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
3398 (repeat_view::_M_pred): Likewise.
3399 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
3400 * testsuite/std/ranges/repeat/1.cc (test05): New test.
3402 2023-03-09 Patrick Palka <ppalka@redhat.com>
3405 * include/std/ranges (__detail::__can_single_view): New concept.
3406 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
3407 end of the function declarator.
3408 (__detail::__can_iota_view): New concept.
3409 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
3410 end of the function declarator.
3411 (__detail::__can_istream_view): New concept.
3412 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
3413 end of the function declarator.
3414 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
3415 * testsuite/std/ranges/istream_view.cc (test08): New test.
3416 * testsuite/std/ranges/single_view.cc (test07): New test.
3418 2023-03-09 Patrick Palka <ppalka@redhat.com>
3421 * include/std/ranges (cartesian_product_view::end): When
3422 building the tuple of iterators, avoid calling ranges::begin on
3423 the first range if __empty_tail is false.
3424 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
3426 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
3429 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
3432 2023-03-07 Jakub Jelinek <jakub@redhat.com>
3434 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3435 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3436 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3437 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3438 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3440 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
3443 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
3444 not match symbols in namespace std::__gnu_cxx11_ieee128.
3445 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
3446 std::__gnu_cxx11_ieee128::money_{get,put}.
3448 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
3450 * libsupc++/eh_personality.cc: Fix spelling in comment.
3452 2023-03-03 Alexandre Oliva <oliva@adacore.com>
3454 * testsuite/30_threads/async/async.cc (test04): Initialize
3455 steady_start, renamed from steady_begin, next to slow_start.
3456 Increase tolerance for final wait.
3458 2023-03-03 Alexandre Oliva <oliva@adacore.com>
3460 * testsuite/libstdc++-prettyprinters/80276.cc: Add
3461 std::string to debug info.
3462 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3464 2023-03-03 Alexandre Oliva <oliva@adacore.com>
3469 * include/bits/std_thread.h (thread::_M_thread_deps): New
3470 static implicitly-inline member function.
3471 (std::thread template ctor): Pass it to _M_start_thread.
3472 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
3473 parameter, force it live on entry.
3475 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3477 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3478 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3480 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3481 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3484 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3486 * include/bits/cow_string.h: Fix typo in comment.
3488 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3490 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
3491 current time zone cannot be determined.
3492 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
3493 HAVE_TZDB macro and test all members unconditionally.
3495 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3498 * include/bits/uses_allocator_args.h
3499 (uses_allocator_construction_args): Implement LWG 3527.
3500 * testsuite/20_util/pair/astuple/get-2.cc: New test.
3501 * testsuite/20_util/scoped_allocator/108952.cc: New test.
3502 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
3504 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3507 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
3508 Add __assign_one static member function.
3509 (__copy_move<true, false, RA>): Likewise.
3510 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
3512 (__copy_move_backward<IsMove, true, RA>): Likewise.
3513 * testsuite/25_algorithms/copy/108846.cc: New test.
3514 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
3515 * testsuite/25_algorithms/copy_n/108846.cc: New test.
3516 * testsuite/25_algorithms/move/108846.cc: New test.
3517 * testsuite/25_algorithms/move_backward/108846.cc: New test.
3519 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3521 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
3524 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
3526 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
3528 * include/bits/basic_string.h (resize_and_overwrite): Add
3531 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3533 * include/experimental/bits/simd.h: Line breaks and indenting
3534 fixed to follow the libstdc++ standard.
3535 * include/experimental/bits/simd_builtin.h: Likewise.
3536 * include/experimental/bits/simd_fixed_size.h: Likewise.
3537 * include/experimental/bits/simd_neon.h: Likewise.
3538 * include/experimental/bits/simd_ppc.h: Likewise.
3539 * include/experimental/bits/simd_scalar.h: Likewise.
3540 * include/experimental/bits/simd_x86.h: Likewise.
3542 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3545 * include/experimental/bits/simd_fixed_size.h
3546 (_SimdImplFixedSize::_S_broadcast): Replace inline with
3547 _GLIBCXX_SIMD_INTRINSIC.
3548 (_SimdImplFixedSize::_S_generate): Likewise.
3549 (_SimdImplFixedSize::_S_load): Likewise.
3550 (_SimdImplFixedSize::_S_masked_load): Likewise.
3551 (_SimdImplFixedSize::_S_store): Likewise.
3552 (_SimdImplFixedSize::_S_masked_store): Likewise.
3553 (_SimdImplFixedSize::_S_min): Likewise.
3554 (_SimdImplFixedSize::_S_max): Likewise.
3555 (_SimdImplFixedSize::_S_complement): Likewise.
3556 (_SimdImplFixedSize::_S_unary_minus): Likewise.
3557 (_SimdImplFixedSize::_S_plus): Likewise.
3558 (_SimdImplFixedSize::_S_minus): Likewise.
3559 (_SimdImplFixedSize::_S_multiplies): Likewise.
3560 (_SimdImplFixedSize::_S_divides): Likewise.
3561 (_SimdImplFixedSize::_S_modulus): Likewise.
3562 (_SimdImplFixedSize::_S_bit_and): Likewise.
3563 (_SimdImplFixedSize::_S_bit_or): Likewise.
3564 (_SimdImplFixedSize::_S_bit_xor): Likewise.
3565 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
3566 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
3567 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
3568 explicit about not always-inline, yet).
3569 (_SimdImplFixedSize::_S_isinf): Likewise.
3570 (_SimdImplFixedSize::_S_isfinite): Likewise.
3571 (_SimdImplFixedSize::_S_isnan): Likewise.
3572 (_SimdImplFixedSize::_S_isnormal): Likewise.
3573 (_SimdImplFixedSize::_S_signbit): Likewise.
3575 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3578 * include/experimental/bits/simd_builtin.h
3579 (_SimdImplBuiltin::_S_masked_unary): More efficient
3580 implementation of masked inc-/decrement for integers and floats
3582 * include/experimental/bits/simd_x86.h
3583 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
3584 builtins for masked inc-/decrement.
3586 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3588 * include/experimental/executor (executor): Constrain template
3591 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3593 * include/experimental/internet (basic_endpoint): Add missing
3594 constexpr to comparison operators.
3595 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
3597 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3599 * include/experimental/internet (network_v4::netmask()): Avoid
3601 (network_v4::broadcast()): Optimize and fix for targets with
3602 uint_least32_t wider than 32 bits.
3603 (network_v4::to_string(const Allocator&)): Fix for custom
3604 allocators and optimize using to_chars.
3605 (operator==(const network_v4&, const network_v4&)): Add missing
3607 (operator==(const network_v6&, const network_v6&)): Likewise.
3608 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
3609 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
3611 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3613 * include/experimental/internet (address_4(const bytes_type&)):
3614 Use __builtin_bit_cast if available, otherwise convert to
3616 (address_v4::to_bytes()): Likewise, but convert from network
3618 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
3619 incorrect tests. Check for constexpr too.
3620 * testsuite/experimental/net/internet/address/v4/creation.cc:
3622 * testsuite/experimental/net/internet/address/v4/members.cc:
3623 Check that bytes_type is a standard-layout type.
3625 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3627 * include/experimental/internet (address_v4::to_string):
3629 * testsuite/experimental/net/internet/address/v4/members.cc:
3630 Check more addresses.
3632 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3634 * include/ext/aligned_buffer.h (__aligned_buffer): Add
3637 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3639 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
3642 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3644 * testsuite/experimental/simd/tests/reductions.cc: Introduce
3645 max_distance as the type-dependent max error.
3647 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3649 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
3650 int. The actual range of these indexes is very small.
3652 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3654 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
3655 (_S_bit_shift_right): Declare constexpr. The implementation was
3656 already expecting constexpr evaluation.
3658 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3661 * include/experimental/bits/simd_detail.h
3662 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
3665 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3668 * include/experimental/bits/simd.h (__vector_broadcast):
3669 Implement via __vector_broadcast_impl instead of
3670 __call_with_n_evaluations + 2 lambdas.
3671 (__vector_broadcast_impl): New.
3673 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3675 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
3676 Avoid destruction of the mutex pool.
3678 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3680 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
3682 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3685 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3687 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
3690 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
3692 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3694 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
3696 * include/experimental/bits/simd.h (__extract_part, split):
3697 Use reserved name for template parameter.
3699 2023-02-20 Andreas Schwab <schwab@suse.de>
3701 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3703 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3705 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
3706 * doc/html/faq.html: Regenerate.
3708 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3710 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
3711 between scalars requires the __bit_cast helper function instead
3714 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3716 * include/experimental/bits/simd_x86.h
3717 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
3718 (_SimdImplX86::_S_less_equal): Do not call
3719 __builtin_is_constant_evaluated in constexpr-if.
3721 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3723 * testsuite/experimental/simd/tests/bits/verify.h
3724 (verify::verify): Use %zx for size_t in format string.
3726 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3728 * testsuite/experimental/simd/generate_makefile.sh: Generate and
3729 pre-compile pch.h, which includes all headers that do not depend
3730 on command-line macros.
3731 * testsuite/experimental/simd/tests/bits/main.h: New file.
3732 (iterate_abis, main): Moved from verify.h.
3733 * testsuite/experimental/simd/tests/bits/verify.h
3734 (iterate_abis, main): Moved to main.h.
3735 * testsuite/experimental/simd/tests/bits/conversions.h: Add
3737 (genHalfBits): Simplify.
3738 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
3740 (make_alternating_mask): Moved from mask_loadstore.
3741 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
3743 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
3744 * testsuite/experimental/simd/tests/mask_loadstore.cc
3745 (make_mask, make_alternating_mask): Removed.
3746 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
3747 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
3749 * testsuite/experimental/simd/tests/abs.cc: Only include
3752 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
3753 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
3754 * testsuite/experimental/simd/tests/casts.cc: Ditto.
3755 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
3756 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
3757 * testsuite/experimental/simd/tests/generator.cc: Ditto.
3758 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
3759 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
3760 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
3761 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
3762 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
3763 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
3764 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
3765 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
3766 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
3767 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
3768 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
3769 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
3770 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
3771 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
3772 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
3773 * testsuite/experimental/simd/tests/simd.cc: Ditto.
3774 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
3775 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
3776 * testsuite/experimental/simd/tests/splits.cc: Ditto.
3777 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
3778 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
3779 * testsuite/experimental/simd/tests/where.cc: Ditto.
3781 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3783 * testsuite/experimental/simd/README.md: Document the timeout
3784 and timeout-factor directives. Minor typo fixed.
3786 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3789 * include/experimental/bits/simd_detail.h: Define
3790 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
3791 * include/experimental/bits/simd.h: Annotate lambdas with
3792 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
3793 * include/experimental/bits/simd_builtin.h: Ditto.
3794 * include/experimental/bits/simd_converter.h: Ditto.
3795 * include/experimental/bits/simd_fixed_size.h: Ditto.
3796 * include/experimental/bits/simd_math.h: Ditto.
3797 * include/experimental/bits/simd_neon.h: Ditto.
3798 * include/experimental/bits/simd_x86.h: Ditto.
3800 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3802 * include/experimental/bits/simd.h
3803 (_SimdWrapper::_M_is_constprop_none_of)
3804 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
3805 computed result still satisfies __builtin_constant_p.
3807 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3809 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
3812 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3814 * include/Makefile.am: Add new header.
3815 * include/Makefile.in: Regenerate.
3816 * include/experimental/synchronized_value: New file.
3817 * testsuite/experimental/synchronized_value.cc: New test.
3819 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3821 * include/experimental/optional: Fix header name in comment.
3823 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3825 * include/std/format (__format::_Arg_store): New class template.
3826 (basic_format_args): Remove nested type _Store and add deduction
3827 guide from _Arg_store.
3828 (basic_format_arg, make_format_args): Adjust.
3829 * testsuite/std/format/arguments/lwg3810.cc: New test.
3831 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3833 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
3834 constraints to constructors and add deleted overloads for the
3835 dangling cases, as per P2255R2.
3836 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
3837 make dangling cases ill-formed.
3838 * testsuite/20_util/pair/dangling_ref.cc: New test.
3840 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3842 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
3844 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3846 * include/ext/throw_allocator.h: Use reserved names for
3849 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3851 * testsuite/17_intro/names_pstl.cc: Add space after effective
3854 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3856 * include/pstl/algorithm_fwd.h (__pattern_search_n)
3857 (__brick_unique_copy, __brick_adjacent_find)
3858 (__brick_generate_n, __pattern_generate_n): Use reserved names
3860 * include/pstl/algorithm_impl.h (__brick_unique_copy)
3861 (__pattern_reverse, __brick_generate_n): Likewise.
3862 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
3863 (__prefer_parallel_tag): Likewise.
3864 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
3865 * include/pstl/glue_numeric_defs.h (adjacent_difference):
3867 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
3869 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
3870 * include/pstl/unseq_backend_simd.h (_Combiner)
3871 (__simd_min_element, __simd_minmax_element): Likewise.
3872 * testsuite/17_intro/names_pstl.cc: New test.
3874 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3876 * include/bits/fs_ops.h (create_directory): Use reserved name
3878 * include/bits/ranges_algo.h (__contains_subrange_fn):
3880 * include/bits/regex_automaton.h (_State_base::_M_print):
3882 * include/bits/regex_automaton.tcc(_State_base::_M_print):
3884 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
3885 * include/experimental/bits/fs_ops.h (create_directory):
3887 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
3888 (recursive_timed_mutex:_M_clocklock): Likewise.
3889 * include/std/tuple (basic_common_reference): Likewise.
3890 * libsupc++/cxxabi_init_exception.h
3891 (__cxa_init_primary_exception): Likewise.
3892 * testsuite/17_intro/names.cc: Add checks.
3894 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
3896 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
3897 to www.open-std.org and https.
3898 * doc/html/manual/status.html: Regenerate.
3900 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3903 * include/std/atomic (atomic_flag_wait): Add.
3904 (atomic_flag_wait_explicit): Add.
3905 (atomic_flag_notify): Add.
3906 (atomic_flag_notify_explicit): Add.
3907 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
3908 Add test case to cover missing atomic_flag free functions.
3910 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3913 * include/std/atomic (atomic_flag_test): Add.
3914 (atomic_flag_test_explicit): Add.
3915 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
3916 test case to cover missing atomic_flag free functions.
3917 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
3920 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
3922 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
3923 "The Component Object Model" reference.
3924 * doc/html/manual/policy_data_structures.html: Regenerate.
3926 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3928 * doc/xml/manual/containers.xml: Tweak a link to N1780
3930 * doc/html/manual/associative.html: Regenerate.
3932 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3934 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
3935 * doc/html/manual/facets.html: Regenerate.
3937 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
3939 * doc/xml/manual/policy_data_structures_biblio.xml: Update
3940 link to "Worst-case efficient priority queues".
3941 * doc/html/manual/policy_data_structures.html: Regenerate.
3943 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3945 * doc/xml/manual/using.xml: Document newly-freestanding
3946 headers and the effect of the -ffreestanding flag.
3947 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
3949 * doc/xml/manual/configure.xml: Document that hosted installs
3950 respect __STDC_HOSTED__.
3951 * doc/xml/manual/test.xml: Document how to run tests in
3953 * doc/html/*: Regenerate.
3955 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3957 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
3958 (__find_last_if_fn): Likewise.
3960 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3962 * include/std/type_traits: Add diagnostic pragmas around
3963 references to deprecated std::aligned_storage and
3964 std::aligned_union traits.
3965 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
3966 Add dg-warning for et c++23.
3967 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
3969 * testsuite/20_util/aligned_storage/value.cc: Likewise.
3970 * testsuite/20_util/aligned_union/1.cc: Likewise.
3971 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
3974 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3976 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
3977 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
3978 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
3979 * include/std/type_traits (aligned_storage, aligned_union)
3980 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
3981 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
3982 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
3984 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3986 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
3987 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
3988 consistent with other 'deprecated' macros.
3989 * include/std/type_traits (is_pod, is_pod_v): Use
3990 _GLIBCXX20_DEPRECATED_SUGGEST instead.
3992 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3994 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
3995 * Makefile.in: Regenerate.
3996 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
3997 There's no history to be compatible with.
3998 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
3999 source files from the build.
4000 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
4001 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
4002 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
4003 * src/Makefile.in: Regenerate.
4004 * src/c++11/Makefile.in: Regenerate.
4005 * src/c++17/Makefile.in: Regenerate.
4006 * src/c++20/Makefile.in: Regenerate.
4007 * src/c++98/Makefile.in: Regenerate.
4009 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
4011 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
4012 filesystem, libbacktrace and experimental.
4013 * src/Makefile.in: Regenerate.
4015 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
4018 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
4021 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
4023 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
4024 * doc/html/manual/documentation_hacking.html: Regenerate.
4026 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
4028 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
4029 storage to the move-from instance when allocators are equal.
4030 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
4033 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
4035 * config/os/gnu-linux/os_defines.h [!__linux__]
4036 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
4038 2023-02-03 Patrick Palka <ppalka@redhat.com>
4040 * include/bits/ranges_algo.h (__find_last_fn, find_last):
4042 (__find_last_if_fn, find_last_if): Define.
4043 (__find_last_if_not_fn, find_last_if_not): Define.
4044 * testsuite/25_algorithms/find_last/1.cc: New test.
4045 * testsuite/25_algorithms/find_last_if/1.cc: New test.
4046 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
4048 2023-02-03 Patrick Palka <ppalka@redhat.com>
4050 * include/bits/ranges_algo.h (out_value_result): Define.
4051 (iota_result): Define.
4052 (__iota_fn, iota): Define.
4053 * testsuite/25_algorithms/iota/1.cc: New test.
4055 2023-02-03 Patrick Palka <ppalka@redhat.com>
4057 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
4058 (__contains_subrange_fn, contains_subrange): Define.
4059 * testsuite/25_algorithms/contains/1.cc: New test.
4060 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
4062 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
4064 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
4065 * doc/html/manual/abi.html: Regenerate.
4067 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
4069 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
4070 errc::function_not_supported instead of errc::not_supported.
4072 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
4074 * include/std/sstream (basic_stringbuf::view): Define for old
4076 (basic_istringstream::view, basic_0stringstream::view)
4077 (basic_stringstream::view): Likewise.
4078 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
4079 { dg-require-effective-target cxx11_abi }.
4080 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
4082 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
4083 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
4085 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
4086 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
4087 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
4088 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
4091 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
4094 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
4095 conversion operators for directory iterator comparisons with
4096 std::default_sentinel_t.
4097 * include/bits/fs_path.h (path::path(string_view, _Type))
4098 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
4100 * src/c++17/fs_path.cc: ... here.
4101 * testsuite/27_io/filesystem/path/108636.cc: New test.
4103 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
4105 * include/std/variant (variant::operator=): Implement resolution
4107 * testsuite/20_util/variant/lwg3585.cc: New test.
4109 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
4111 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
4113 * doc/html/manual/using_exceptions.html: Regenerate.
4115 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
4117 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
4118 * doc/html/manual/debug.html: Regenerate.
4120 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
4122 * src/c++11/random.cc (random_device::_M_fini): Do not try to
4123 close the file handle if the target doesn't support the
4124 /dev/random and /dev/urandom files.
4126 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
4128 * config/os/generic/error_constants.h (errc::value_too_large)
4130 * src/c++11/system_error.cc
4131 (system_category::default_error_condition) [__AVR__]: Only match
4132 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
4133 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
4134 for ENOENT etc. in switch.
4135 (fs::remove_all) [__AVR__]: Likewise.
4136 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
4139 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
4141 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
4143 * configure: Regenerate.
4145 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
4148 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
4149 struct at end of S0.
4151 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
4153 * doc/xml/manual/shared_ptr.xml: Move links from both
4154 http://open-std.org and http://www.open-std.org to
4155 https://www.open-std.org.
4156 * doc/html/manual/memory.html: Regenerate.
4158 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4160 * doc/xml/manual/appendix_contributing.xml: Adjust link to
4161 ISO C++ standard at ANSI.
4162 Move link to www.open-std.org to https.
4163 * doc/html/manual/appendix_contributing.html: Regenerate.
4165 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4167 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
4169 * doc/html/manual/documentation_hacking.html: Regenerate.
4171 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4173 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
4174 * doc/html/manual/abi.html: Regenerate.
4176 2023-01-27 Jakub Jelinek <jakub@redhat.com>
4179 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
4180 include features.h if present and then check __GLIBC__ and
4181 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
4182 __GLIBC_PREREQ which isn't defined yet.
4184 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
4186 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
4189 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
4192 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
4194 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
4196 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
4197 rules named "+" for compatibility with older tzdata.zi files.
4199 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
4202 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
4204 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
4206 * testsuite/23_containers/map/modifiers/108554.cc: New test.
4208 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
4211 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
4212 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
4214 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
4216 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
4218 * doc/html/manual/bugs.html: Regenerate.
4220 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
4223 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
4224 /etc/sysconfig/clock.
4226 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
4229 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
4230 std::make_reverse_iterator.
4231 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
4232 (make_from_tuple): Add static assertion from P2255 to diagnose
4233 dangling references.
4234 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
4235 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
4237 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
4239 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
4240 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
4241 (_Safe_iterator::operator++(int)): Use latter.
4242 (_Safe_iterator::operator--(int)): Likewise.
4243 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
4245 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
4247 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
4248 (_Safe_local_iterator::operator++(int)): Use latter.
4249 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
4250 entry associated to the array entry.
4252 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
4254 * include/bits/fs_path.h (u8path): Add deprecated attribute.
4255 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
4256 -Wno-deprecated-declarations for C++20 and later.
4257 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4259 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4260 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4261 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
4263 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
4265 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
4266 Always call _M_fini and _M_getentropy.
4268 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
4270 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
4271 to www.open-std.org to use https.
4272 (COM: Component Model Object Technologies): Rename from...
4273 (The Component Object Model): ...to.
4274 * doc/html/manual/policy_data_structures.html: Regenerate.
4276 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
4278 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
4279 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
4280 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
4282 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
4284 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
4285 of $host. Fix check for file being present during native build.
4286 * configure: Regenerate.
4288 2023-01-17 Martin Liska <mliska@suse.cz>
4290 * src/libbacktrace/Makefile.in: Regenerate.
4292 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
4294 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
4296 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
4299 * include/c_compatibility/stdatomic.h: Change copyright line to
4300 be consistent with other headers contributed under DCO terms.
4301 * include/std/expected: Add full stop to copyright line.
4302 * src/c++20/tzdb.cc: Likewise.
4304 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
4306 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
4308 * doc/xml/manual/status_cxx2017.xml: Ditto.
4309 * doc/xml/manual/status_cxx2020.xml: Ditto.
4310 * doc/xml/manual/status_cxx2023.xml: Ditto.
4311 * doc/html/manual/status.html: Regenerate.
4313 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
4315 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
4316 and fail gracefully if defining the weak symbol doesn't work.
4318 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
4321 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
4322 fix to other iterator category.
4323 (_Safe_iterator<>::operator--(int)): Likewise.
4324 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
4326 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
4327 (invalid_local_iterator_post_increment): New.
4328 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
4330 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
4333 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
4335 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
4338 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
4340 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
4342 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
4344 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
4345 windows.h. Add pecoff as FORMAT_FILE.
4346 * config.h.in: Regenerate.
4347 * configure: Regenerate.
4348 * src/libbacktrace/Makefile.am: Regenerate.
4349 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
4351 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
4353 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
4354 raw __name if __cxa_demangle could not demangle it.
4356 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4359 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
4362 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4364 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
4366 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
4368 * testsuite/std/time/tzdb_list/1.cc: Likewise.
4370 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4372 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
4373 --with-libstdcxx-zoneinfo-dir configure option with
4374 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
4376 * config.h.in: Regenerate.
4377 * configure: Regenerate.
4378 * doc/xml/manual/configure.xml: Document configure option.
4379 * doc/html/manual/configure.html: Regenerate.
4380 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
4381 * src/c++20/Makefile.in: Regenerate.
4382 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
4383 null pointer if no directory is configured.
4384 (zoneinfo_dir): Replace with ...
4385 (zoneinfo_file): New function.
4386 (tzdata_stream): New istream class.
4387 (remote_version, reload_tzdb): Use tzdata_stream.
4388 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
4389 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
4390 tzdata.zi file in default location.
4391 * src/c++20/tzdata.zi: New file.
4393 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4395 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
4396 * testsuite/std/time/month_day/io.cc: New test.
4397 * testsuite/std/time/month_day_last/io.cc: New test.
4398 * testsuite/std/time/month_weekday/io.cc: New test.
4399 * testsuite/std/time/month_weekday_last/io.cc: New test.
4400 * testsuite/std/time/weekday_indexed/io.cc: New test.
4401 * testsuite/std/time/weekday_last/io.cc: New test.
4402 * testsuite/std/time/year_month/io.cc: New test.
4403 * testsuite/std/time/year_month_day_last/io.cc: New test.
4404 * testsuite/std/time/year_month_weekday/io.cc: New test.
4405 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
4407 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
4409 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
4411 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
4414 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4416 * include/bits/std_mutex.h: Include <errno.h>.
4418 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
4420 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
4421 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
4422 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
4423 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
4424 std::make_unique with a freestanding-compatible wrapper around
4426 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
4427 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
4428 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
4430 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
4431 of __cpp_lib_ranges in !HOSTED.
4433 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
4435 * include/Makefile.am: Install bits/char_traits.h,
4437 * include/Makefile.in: Regenerate.
4438 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
4439 mbstate-only bits behind appropriate #ifs.
4440 * include/std/string_view: Gate <iostream> functionality behind
4442 * include/std/version: Enable __cpp_lib_constexpr_string_view
4443 and __cpp_lib_starts_ends_with in !HOSTED.
4444 * include/std/ranges: Re-enable __is_basic_string_view on
4445 freestanding, include <string_view> directly.
4446 * include/precompiled/stdc++.h: Include <string_view> when
4448 * testsuite/20_util/function_objects/searchers.cc: Skip testing
4449 boyer_moore searchers on freestanding
4450 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
4451 <string>-related tests behind __STDC_HOSTED__.
4452 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
4453 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
4454 unused <stdexcept> include.
4455 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
4456 unused <vector> include.
4457 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
4458 Guard <string> related testing behind __STDC_HOSTED__.
4459 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4460 Guard <stdexcept> related tests behind __STDC_HOSTED__.
4461 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4463 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4464 Guard <stdexcept> tests behind __STDC_HOSTED__.
4465 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
4466 Enable test on freestanding, guard <stdexcept> bits behind
4468 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
4469 Guard <stdexcept> bits behind __STDC_HOSTED__.
4470 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
4473 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
4476 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
4477 errors in incomplete multibyte sequences.
4478 (utf16_in): Remove surrogates parameter. Fix conditions for
4480 (utf16_out): Fix condition for returning partial.
4481 (ucs2_in): Do not pass surrogates argument to utf16_in.
4482 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
4483 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
4485 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
4488 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4491 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
4492 __GTHREAD_LEGACY_MUTEX_T if defined.
4494 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4497 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
4498 Export __try_use_facet specializations for facets in namespace
4500 * config/os/gnu-linux/ldbl-ieee128-extra.ver
4501 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
4503 * testsuite/util/testsuite_abi.cc: Add to lists of known and
4506 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4508 * include/bits/std_mutex.h: Remove <system_error> include.
4509 * include/std/condition_variable: Add <bits/error_constants.h>
4511 * include/std/mutex: Likewise.
4512 * include/std/shared_mutex: Likewise.
4514 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4517 * include/experimental/memory_resource
4518 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
4519 (do_allocate, do_deallocate): Check it.
4520 * testsuite/experimental/memory_resource/new_delete_resource.cc:
4521 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
4523 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4525 * doc/xml/manual/abi.xml: Add latest library versions.
4526 * doc/html/manual/abi.html: Regenerate.
4528 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
4531 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
4532 unused _Alloc_node instance.
4534 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4536 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
4537 Define as unsigned long if always lock-free, and unsigned int
4540 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4542 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
4543 __catch macros for exception handling.
4545 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4548 * include/bits/stl_algobase.h (__lg): Replace six overloads with
4549 a single function template for all integer types.
4550 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
4551 arithmetic results back to _Distance.
4553 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4556 * include/std/span (span::span()): Un-simplify constraint to
4557 work for size_t of lesser rank than int.
4559 2023-01-07 LIU Hao <lh_mouse@126.com>
4561 PR middle-end/108300
4562 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
4564 * src/c++11/thread.cc: Likewise.
4565 * src/c++17/fs_ops.cc: Likewise.
4566 * src/filesystem/ops.cc: Likewise.
4568 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4571 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
4573 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4576 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
4577 template and partial specialization for synchronizing access to
4578 time_zone::_Impl::infos.
4579 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
4582 2023-01-06 Patrick Palka <ppalka@redhat.com>
4585 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
4586 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
4587 (__cpp_lib_ranges_chunk): Likewise.
4588 (__cpp_lib_ranges_slide): Likewise.
4589 (__cpp_lib_ranges_chunk_by): Likewise.
4590 (__cpp_lib_ranges_join_with): Likewise.
4591 (__cpp_lib_ranges_repeat): Likewise.
4592 (__cpp_lib_ranges_stride): Likewise.
4593 (__cpp_lib_ranges_cartesian_product): Likewise.
4594 (__cpp_lib_ranges_as_rvalue): Likewise.
4595 * include/std/version: Ditto.
4596 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
4598 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
4599 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
4600 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
4601 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
4602 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
4603 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
4604 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
4605 * testsuite/std/ranges/repeat/1.cc: Likewise.
4606 * testsuite/std/ranges/zip/1.cc: Likewise.
4607 * testsuite/std/ranges/version_c++23.cc: New test.
4609 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4612 * include/std/bitset (operator>>): Use alloca in the right
4613 scope, not in a constructor.
4614 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
4616 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4619 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
4620 Disable visiting floating-point types.
4622 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4625 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
4626 (_Safe_iterator::operator--(int)): Do not hold lock around
4627 construction of return value.
4629 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
4631 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
4632 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
4633 lock release. Revise loop.
4634 (__atomic_add): Likewise.
4636 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4639 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
4641 (StdChronoTimePointPrinter::to_string): Use it.
4643 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4646 * include/std/functional (_Bind_front): Add no_unique_address
4647 attribute to data members.
4648 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
4649 size of call wrappers with empty types for targets and bound
4652 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4655 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
4656 using only last component of the name.
4658 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4662 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
4663 the latest symbol version.
4664 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
4665 atomic<_Node*> is not always lock free.
4666 (USE_ATOMIC_LIST_HEAD): New macro.
4667 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
4668 definition of weak symbol.
4669 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
4670 (tzdb_list::_Node::_S_list_head): New function for accessing
4671 list head efficiently.
4672 (tzdb_list::_Node::_S_cache_list_head): New function for
4673 updating _S_list_head.
4675 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4678 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
4679 duration rep is unsigned.
4680 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
4682 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
4685 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
4686 Add __gnu_cxx::zoneinfo_dir_override().
4688 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
4691 * include/std/array (__array_traits<T, 0>::operator T*()): Add
4693 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
4694 std::array<T, 0>::data().
4697 Copyright (C) 2023 Free Software Foundation, Inc.
4699 Copying and distribution of this file, with or without modification,
4700 are permitted in any medium without royalty provided the copyright
4701 notice and this notice are preserved.