c++: CTAD and trait built-ins
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob7bb879b78aba2117dead6c7ab8bf7a39d0416cd6
1 2024-06-28  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/115585
4         * src/c++11/assert_fail.cc (__glibcxx_assert_fail): Add
5         definition for non-verbose builds.
7 2024-06-28  Jonathan Wakely  <jwakely@redhat.com>
9         PR libstdc++/101485
10         * include/bits/stl_algobase.h (__equal_aux1): Check for
11         std::byte as well.
12         * testsuite/25_algorithms/equal/101485.cc: New test.
14 2024-06-28  Jonathan Wakely  <jwakely@redhat.com>
16         PR libstdc++/104395
17         * include/bits/new_allocator.h: Disable extended alignment
18         support in C++98 mode.
19         * include/bits/stl_tempbuf.h: Likewise.
20         * include/ext/bitmap_allocator.h: Likewise.
21         * include/ext/malloc_allocator.h: Likewise.
22         * include/ext/mt_allocator.h: Likewise.
23         * include/ext/pool_allocator.h: Likewise.
24         * testsuite/ext/104395.cc: New test.
26 2024-06-28  Jonathan Wakely  <jwakely@redhat.com>
28         * include/ext/aligned_buffer.h (__aligned_membuf): Use
29         alignas(T) directly instead of defining a struct and using 9its
30         alignment.
31         (__aligned_buffer): Remove use of std::aligned_storage.
32         * testsuite/abi/aligned_buffers.cc: New test.
34 2024-06-27  Jonathan Wakely  <jwakely@redhat.com>
36         PR libstdc++/37475
37         * config/locale/gnu/codecvt_members.cc (Guard): New RAII type.
38         (do_out, do_in): Return partial if the destination is empty but
39         the source is not. Use Guard to restore locale on scope exit.
40         Return immediately on any conversion error.
41         (do_encoding, do_max_length, do_length): Use Guard.
42         * testsuite/22_locale/codecvt/in/char/37475.cc: New test.
43         * testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test.
44         * testsuite/22_locale/codecvt/out/char/37475.cc: New test.
45         * testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test.
47 2024-06-27  Alexandre Oliva  <oliva@adacore.com>
49         PR libstdc++/115454
50         * testsuite/experimental/simd/pr115454_find_last_set.cc: Defer
51         to check_vect_support_and_set_flags's default dg-do action.
53 2024-06-27  Jonathan Wakely  <jwakely@redhat.com>
55         PR libstdc++/115668
56         * include/bits/chrono_io.h (formatter<duration<R,P, C>::format):
57         Do not use chrono::abs.
58         * testsuite/20_util/duration/io.cc: Check formatting a duration
59         with unsigned rep.
61 2024-06-27  Jonathan Wakely  <jwakely@redhat.com>
63         PR libstdc++/103191
64         * include/bits/stl_bvector.h (vector<bool>::operator[])
65         (vector<bool>::front, vector<bool>::back): Add debug assertions.
66         * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
67         Remove dg-error that no longer triggers.
69 2024-06-27  Jonathan Wakely  <jwakely@redhat.com>
71         PR libstdc++/111250
72         * include/debug/assertions.h (__glibcxx_requires_non_empty_range)
73         (__glibcxx_requires_nonempty, __glibcxx_requires_subscript):
74         Define to __glibcxx_assert expressions or to debug mode
75         __glibcxx_check_xxx expressions.
76         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
77         Add checks for out-of-bounds accesses in constant expressions.
78         * testsuite/23_containers/vector/element_access/constexpr.cc:
79         Likewise.
81 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
83         * scripts/update_release_branch.sh: New file.
85 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
87         * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc:
88         Copy defaulted assignment operator from 808590-cxx11.cc to
89         suppress a warning.
90         * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc:
91         Removed.
93 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
95         PR libstdc++/90276
96         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
97         Increase timeout for debug mode.
98         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
99         Likewise.
100         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
101         Likewise.
102         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
103         Likewise.
104         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
105         Likewise.
106         * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
107         Likewise.
109 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
111         PR libstdc++/90276
112         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
113         [_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode.
114         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
115         [_GLIBCXX_DEBUG]: Reduce size of test data.
116         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
117         Likewise.
118         * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
119         Likewise.
121 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
123         * src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
124         (years_from_to): New class replacing minmax_year and
125         minmax_year2.
126         (format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
127         the file. Handle "-" for letters.
128         (ZoneInfo::to): Use format_abbrev_str to expand %z.
129         (ZoneInfo::set_abbrev): Remove exception. Change parameter from
130         reference to value.
131         (operator>>(istream&, Rule&)): Do not clear letters when it
132         contains "-".
133         (time_zone::_M_get_sys_info): Add missing logic to find the Rule
134         in effect before the time point.
135         * testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
136         "GMT" as the Zone name, not as a Link to "Etc/GMT".
137         * testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
139 2024-06-26  Alexandre Oliva  <oliva@adacore.com>
140             Marc Poulhiès  <poulhies@adacore.com>
142         * testsuite/lib/dg-options.exp (add_options_for_libatomic):
143         None for *-*-vxworks*.
145 2024-06-25  Jonathan Wakely  <jwakely@redhat.com>
147         * include/bits/valarray_array.h (_Array_default_ctor): Remove.
148         (__valarray_default_construct): Inline it into here.
149         (_Array_init_ctor): Remove.
150         (__valarray_fill_construct): Inline it into here.
151         (_Array_copy_ctor): Remove.
152         (__valarray_copy_construct(const T*, const T*, T*)): Inline it
153         into here.
154         (__valarray_copy_construct(const T*, size_t, size_t, T*)):
155         Use _GLIBCXX17_CONSTEXPR for constant condition.
157 2024-06-25  Jonathan Wakely  <jwakely@redhat.com>
159         * doc/xml/faq.xml: Replace viewcvs links with cgit links.
160         * doc/xml/manual/allocator.xml: Likewise.
161         * doc/xml/manual/mt_allocator.xml: Likewise.
162         * doc/html/*: Regenerate.
164 2024-06-22  Gerald Pfeifer  <gerald@pfeifer.com>
166         * doc/xml/manual/debug.xml: Move gcc.gnu.org link to https.
167         Ditto for sourceware.org links.
168         * doc/html/manual/debug.html: Regenerate.
170 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
172         PR libstdc++/115497
173         * include/bits/cpp_type_traits.h (__is_pointer, __is_scalar):
174         Remove.
175         (__is_arithmetic): Do not use __is_pointer in the primary
176         template. Add partial specialization for pointers.
178 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
180         PR libstdc++/115497
181         * include/bits/cpp_type_traits.h (__is_void): Remove.
182         * include/debug/helper_functions.h (_Distance_traits):
183         Adjust partial specialization to match void directly, instead of
184         using __is_void<T>::__type and matching __true_type.
186 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
188         PR libstdc++/115497
189         * include/bits/deque.tcc (__lex_cmp_dit): Replace __is_pointer
190         class template with __is_pointer(T) built-in.
191         (__lexicographical_compare_aux1): Likewise.
192         * include/bits/stl_algobase.h (__equal_aux1): Likewise.
193         (__lexicographical_compare_aux1): Likewise.
195 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
197         PR libstdc++/115497
198         * include/bits/valarray_array.h (__valarray_default_construct):
199         Use __is_trivial(_Tp). instead of __is_scalar<_Tp>.
201 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
203         PR libstdc++/109150
204         * include/bits/stl_algobase.h (__fill_a1): Combine the
205         !__is_scalar and __is_scalar overloads into one and rewrite the
206         condition used to decide whether to perform the load outside the
207         loop.
208         * testsuite/25_algorithms/fill/109150.cc: New test.
209         * testsuite/25_algorithms/fill_n/109150.cc: New test.
211 2024-06-21  Matthias Kretz  <m.kretz@gsi.de>
213         PR libstdc++/115575
214         * testsuite/experimental/simd/pr115454_find_last_set.cc: Require
215         avx512f_runtime. Don't memcpy fixed_size masks.
217 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
219         * include/bits/stl_uninitialized.h (uninitialized_default_construct)
220         (uninitialized_default_construct_n, uninitialized_value_construct)
221         (uninitialized_value_construct_n): Qualify calls to prevent ADL.
223 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
225         * include/std/any (any_cast(any*), any_cast(const any*)): Add
226         static assertion to reject void types, as per LWG 3305.
227         * testsuite/20_util/any/misc/lwg3305.cc: New test.
229 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
231         * include/bits/memory_resource.h (polymorphic_allocator::destroy):
232         Remove deprecated attribute.
234 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
236         * include/backward/backward_warning.h: Adjust comments to
237         suggest <spanstream> as another alternative to <strstream>.
238         * include/backward/strstream (strstreambuf, istrstream)
239         (ostrstream, strstream): Add deprecated attribute.
241 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
243         * include/bits/locale_conv.h (wstring_convert): Add deprecated
244         attribute for C++17 and later.
245         (wbuffer_convert): Likewise.
246         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: Disable
247         deprecated warnings.
248         * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Likewise.
249         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc:
250         Likewise.
251         * testsuite/22_locale/conversions/buffer/1.cc: Add dg-warning.
252         * testsuite/22_locale/conversions/buffer/2.cc: Likewise.
253         * testsuite/22_locale/conversions/buffer/3.cc: Likewise.
254         * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
255         Likewise.
256         * testsuite/22_locale/conversions/string/1.cc: Likewise.
257         * testsuite/22_locale/conversions/string/2.cc: Likewise.
258         * testsuite/22_locale/conversions/string/3.cc: Likewise.
259         * testsuite/22_locale/conversions/string/66441.cc: Likewise.
260         * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
261         Likewise.
262         * testsuite/22_locale/conversions/string/requirements/typedefs.cc:
263         Likewise.
265 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
267         * include/bits/version.def (chrono): Add cxx11abi = yes.
268         * include/bits/version.h: Regenerate.
269         * testsuite/std/time/syn_c++20.cc: Adjust expected value for
270         the feature test macro.
272 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
274         PR libstdc++/115522
275         * include/std/array (to_array): Workaround the fact that
276         std::is_trivial is not sufficient to check that a type is
277         trivially default constructible and assignable.
278         * testsuite/23_containers/array/creation/115522.cc: New test.
280 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
282         * testsuite/util/testsuite_allocator.h (tracker_allocator):
283         Initialize base class in copy constructor.
285 2024-06-20  Matthias Kretz  <m.kretz@gsi.de>
287         PR libstdc++/115454
288         * include/experimental/bits/simd_x86.h (_S_not_equal_to): Use
289         neq comparison instead of bitwise negation after eq.
290         (_S_find_last_set): Clear unused high bits before computing
291         bit_width.
292         * testsuite/experimental/simd/pr115454_find_last_set.cc: New
293         test.
295 2024-06-19  Jonathan Wakely  <jwakely@redhat.com>
297         * include/std/future: Adjust whitespace to use tabs for
298         indentation.
300 2024-06-19  Jonathan Wakely  <jwakely@redhat.com>
302         * include/std/future (_State_baseV2::_Setter<R, void>): Add
303         noexcept to call operator.
304         (_State_baseV2::_Setter<R, __exception_ptr_tag>): Likewise.
306 2024-06-19  Jonathan Wakely  <jwakely@redhat.com>
308         * include/bits/stl_pair.h [__cpp_lib_concepts] (pair()): Add
309         conditional noexcept.
311 2024-06-19  Jonathan Wakely  <jwakely@redhat.com>
313         * include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast
314         argument to size_t to handle negative values and suppress
315         -Wsign-compare warning.
316         (_Temporary_buffer): Move diagnostic pragmas to new location of
317         call to std::get_temporary_buffer.
319 2024-06-18  Jonathan Wakely  <jwakely@redhat.com>
321         * include/bits/cpp_type_traits.h: Fix outdated comment about the
322         number of standard integer types.
324 2024-06-14  Jonathan Wakely  <jwakely@redhat.com>
326         PR libstdc++/110572
327         * libsupc++/typeinfo (type_info::operator==): Add always_inline
328         attribute for targets where the ABI requries equality to be
329         non-inline.
330         * testsuite/18_support/type_info/110572.cc: New test.
332 2024-06-14  Jonathan Wakely  <jwakely@redhat.com>
334         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
335         posix_memalign.
337 2024-06-13  Alexandre Oliva  <oliva@adacore.com>
339         PR libstdc++/114359
340         * testsuite/26_numerics/random/binomial_distribution/114359.cc:
341         Require cmath.
343 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
345         * include/std/type_traits (__add_rval_ref_t): Use
346         __add_rvalue_reference built-in trait.
348 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
350         * include/std/type_traits (__add_lval_ref_t): Use
351         __add_lvalue_reference built-in trait.
353 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
354             Jonathan Wakely  <jwakely@redhat.com>
356         * include/bits/cpp_type_traits.h (__is_pointer): Use
357         __is_pointer built-in trait.
358         * include/std/type_traits (is_pointer): Likewise.  Optimize its
359         implementation.
360         (is_pointer_v): Likewise.
362 2024-06-13  Jonathan Wakely  <jwakely@redhat.com>
364         * include/bits/ranges_base.h (range_common_reference_t): New
365         alias template, as per LWG 3860.
366         * testsuite/std/ranges/range.cc: Check it.
368 2024-06-13  Jonathan Wakely  <jwakely@redhat.com>
370         * include/bits/ranges_base.h (const_iterator_t): Change
371         preprocessor condition to use __glibcxx_ranges_as_const.
372         (const_sentinel_t, range_const_reference_t): Likewise.
373         (__access::__possibly_const_range, cbegin, cend, crbegin)
374         (crend, cdata): Likewise.
375         * include/bits/stl_iterator.h (iter_const_reference_t)
376         (basic_const_iterator, const_iterator, const_sentinel)
377         (make_const_iterator): Likewise.
379 2024-06-13  Jonathan Wakely  <jwakely@redhat.com>
381         PR libstdc++/115420
382         * include/bits/hashtable.h (_Hashtable): Add static_assert to
383         check that hash function is copy constructible.
384         * testsuite/23_containers/unordered_map/115420.cc: New test.
386 2024-06-13  Jonathan Wakely  <jwakely@redhat.com>
388         PR libstdc++/113376
389         * include/pstl/pstl_config.h: Use #if instead of #ifdef to test
390         the _PSTL_USAGE_WARNINGS macro.
392 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
394         * include/std/type_traits (is_nothrow_invocable): Use
395         __is_nothrow_invocable built-in trait.
396         * testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc:
397         Handle the new error from __is_nothrow_invocable.
398         * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc:
399         Likewise.
401 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
403         * include/std/type_traits (is_invocable): Use __is_invocable
404         built-in trait.
405         * testsuite/20_util/is_invocable/incomplete_args_neg.cc: Handle
406         the new error from __is_invocable.
407         * testsuite/20_util/is_invocable/incomplete_neg.cc: Likewise.
409 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
411         * include/std/type_traits (rank): Use __array_rank built-in
412         trait.
413         (rank_v): Likewise.
415 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
417         * include/std/type_traits (decay): Use __decay built-in trait.
419 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
421         * include/std/type_traits (remove_all_extents): Use
422         __remove_all_extents built-in trait.
424 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
426         * include/std/type_traits (remove_extent): Use __remove_extent
427         built-in trait.
429 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
431         * include/std/type_traits (add_pointer): Use __add_pointer
432         built-in trait.
434 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
436         * include/std/type_traits (is_unbounded_array_v): Use
437         __is_unbounded_array built-in trait.
439 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
441         * include/std/type_traits (is_volatile): Use __is_volatile
442         built-in trait.
443         (is_volatile_v): Likewise.
445 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
447         * include/std/type_traits (is_const): Use __is_const built-in
448         trait.
449         (is_const_v): Likewise.
451 2024-06-12  Alexandre Oliva  <oliva@adacore.com>
453         * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
454         Require cmath.
455         * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
456         Likewise.
457         * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
458         Likewise.
460 2024-06-12  Alexandre Oliva  <oliva@adacore.com>
462         * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
463         on aarch64-rtems*.
464         * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
465         aarch64-rtems*.
467 2024-06-12  Jonathan Wakely  <jwakely@redhat.com>
469         PR libstdc++/115399
470         * include/tr2/dynamic_bitset (operator>>=): Remove redundant
471         call to _M_do_sanitize.
472         * include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out
473         low bits in words that should no longer be populated.
474         (_M_do_right_shift): Likewise for high bits.
475         * testsuite/tr2/dynamic_bitset/pr115399.cc: New test.
477 2024-06-12  Jonathan Wakely  <jwakely@redhat.com>
479         * include/bits/hashtable.h (_Hashtable::clear): Do not use
480         memset to zero out bucket pointers.
481         (_Hashtable::_M_assign_elements): Likewise.
483 2024-06-11  Jonathan Wakely  <jwakely@redhat.com>
485         * include/std/chrono (leap_seconds): Add comment.
486         * testsuite/std/time/leap_seconds/io.cc: New test.
488 2024-06-10  François Dumont  <fdumont@gcc.gnu.org>
490         * include/bits/hashtable.h (~_Hashtable()): Replace clear call with
491         a _M_deallocate_nodes call.
493 2024-06-08  Deev Patel  <dkp10000@gmail.com>
494             Jonathan Wakely  <jwakely@redhat.com>
496         * include/bits/atomic_base.h (__atomic_impl::__clear_padding):
497         Add missing constexpr specifier.
498         * testsuite/29_atomics/atomic_float/constinit.cc: New test.
500 2024-06-08  Michael Levine  <mlevine55@bloomberg.net>
502         PR libstdc++/108760
503         * include/bits/ranges_algo.h (ranges::out_value_result):
504         Move to <bits/ranges_algobase.h>.
505         (ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to
506         <numeric>.
507         * include/bits/ranges_algobase.h (ranges::out_value_result):
508         Move to here.
509         * include/std/numeric (ranges::iota_result, ranges::__iota_fn)
510         (ranges::iota): Move to here.
511         * testsuite/25_algorithms/iota/1.cc: Renamed to ...
512         * testsuite/26_numerics/iota/2.cc: ... here.
514 2024-06-08  Jonathan Wakely  <jwakely@redhat.com>
516         * include/std/algorithm: Define __glibcxx_want_ranges.
517         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check
518         feature test macro in C++20 mode.
520 2024-06-07  Jonathan Wakely  <jwakely@redhat.com>
522         * include/bits/ranges_algobase.h: Include <bits/stl_algobase.h>.
524 2024-06-07  Alexandre Oliva  <oliva@adacore.com>
526         * include/std/variant: Drop obsolete workaround.
528 2024-06-07  Jonathan Wakely  <jwakely@redhat.com>
530         * include/bits/ptr_traits.h (to_address): Optimize.
531         * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error text.
533 2024-06-06  Alexandre Oliva  <oliva@adacore.com>
535         * include/bits/c++config (_GLIBCXX_CLANG): Define or undefine.
536         * include/bits/locale_facets_nonio.tcc: Test for it.
537         * include/bits/stl_bvector.h: Likewise.
538         * include/c_compatibility/stdatomic.h: Likewise.
539         * include/experimental/bits/simd.h: Likewise.
540         * include/experimental/bits/simd_builtin.h: Likewise.
541         * include/experimental/bits/simd_detail.h: Likewise.
542         * include/experimental/bits/simd_x86.h: Likewise.
543         * include/experimental/simd: Likewise.
544         * include/std/complex: Likewise.
545         * include/std/ranges: Likewise.
546         * include/std/variant: Likewise.
547         * include/pstl/pstl_config.h: Likewise.
549 2024-06-05  Gerald Pfeifer  <gerald@pfeifer.com>
551         * doc/xml/faq.xml: Move gcc.gnu.org to https.
552         * doc/html/faq.html: Regenerate.
554 2024-06-04  Jonathan Wakely  <jwakely@redhat.com>
556         PR libstdc++/115335
557         * include/std/span (span::at): Guard with feature test macro.
559 2024-06-04  Matthias Kretz  <m.kretz@gsi.de>
561         PR libstdc++/115308
562         * include/experimental/bits/simd.h (__int_for_sizeof): Remove
563         special cases for __clang__.
564         (_SimdWrapper): Change constructor overload set to allow
565         conversion from vector types with integral conversions via bit
566         reinterpretation.
568 2024-06-03  Jonathan Wakely  <jwakely@redhat.com>
570         * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
571         Use __detail::__get_temporary_buffer.
572         (basic_stacktrace::_Impl::_M_deallocate): Use
573         __detail::__return_temporary_buffer.
575 2024-06-03  Jonathan Wakely  <jwakely@redhat.com>
577         PR libstdc++/105258
578         * include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
579         New function to do allocation for get_temporary_buffer, with
580         extended alignment support.
581         (__detail::__return_temporary_buffer): Support extended
582         alignment.
583         (get_temporary_buffer): Use __get_temporary_buffer.
584         (return_temporary_buffer): Support extended alignment. Add
585         deprecated attribute.
586         (_Temporary_buffer): Move allocation and deallocation into a
587         subobject and remove try-catch block in constructor.
588         (__uninitialized_construct_buf): Use argument deduction for
589         value type.
590         * testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
591         deprecated warning.
592         * testsuite/25_algorithms/stable_sort/overaligned.cc: New test.
594 2024-06-03  François Dumont  <frs.dumont@gmail.com>
596         PR libstdc++/109849
597         * include/bits/vector.tcc
598         (std::vector<>::_M_range_insert(iterator, _FwdIt, _FwdIt,
599         forward_iterator_tag))[__cplusplus < 201103L]: Add __builtin_unreachable
600         expression to tell the compiler that the allocated buffer is large enough to
601         receive current elements plus the elements of the range to insert.
603 2024-06-03  Jonathan Wakely  <jwakely@redhat.com>
605         * include/std/string_view (starts_with(basic_string_view)):
606         Compare lengths first and then call traits_type::compare
607         directly.
609 2024-06-02  Gerald Pfeifer  <gerald@pfeifer.com>
611         * doc/xml/api.xml: Move gcc.gnu.org links to https.
612         * doc/html/api.html: Regenerate.
614 2024-06-01  Jonathan Wakely  <jwakely@redhat.com>
616         PR libstdc++/115269
617         * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
618         Replace list of -std=... options with a single entry for -std.
619         * doc/html/manual/using.html: Regenerate.
621 2024-05-30  Alexandre Oliva  <oliva@adacore.com>
623         * configure.ac [*-*-rtems*]: Set chdir, chmod and mkdir as
624         available.
625         * configure: Rebuilt.
627 2024-05-29  François Dumont  <fdumont@gcc.gnu.org>
629         * include/bits/vector.tcc (_Guard): Move all the nested duplicated class...
630         * include/bits/stl_vector.h (_Guard_alloc): ...here and rename.
631         (_M_allocate_and_copy): Use latter.
632         (_M_initialize_dispatch): Small code simplification.
633         (_M_range_initialize): Likewise and set _M_finish first from the result
634         of __uninitialize_fill_n_a that can throw.
636 2024-05-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
638         PR libstdc++/111641
639         * src/libbacktrace/Makefile.am (AM_CFLAGS): Add -funwind-tables.
640         * src/libbacktrace/Makefile.in: Regenerate.
641         * testsuite/19_diagnostics/stacktrace/current.cc (dg-options): Add
642         -funwind-tables.
643         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
644         * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
645         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
646         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
648 2024-05-29  Matthias Kretz  <m.kretz@gsi.de>
650         PR libstdc++/115247
651         * include/experimental/bits/simd.h (__as_vector): Don't use
652         vector_size(8) on __i386__.
653         (__vec_shuffle): Never return MMX vectors, widen to 16 bytes
654         instead.
655         (concat): Fix padding calculation to pick up widening logic from
656         __as_vector.
658 2024-05-23  Patrick Palka  <ppalka@redhat.com>
660         * include/bits/version.def (ranges_concat): Define.
661         * include/bits/version.h: Regenerate.
662         * include/std/ranges (__detail::__concat_reference_t): Define
663         for C++26.
664         (__detail::__concat_value_t): Likewise.
665         (__detail::__concat_rvalue_reference_t): Likewise.
666         (__detail::__concat_indirectly_readable_impl): Likewise.
667         (__detail::__concat_indirectly_readable): Likewise.
668         (__detail::__concatable): Likewise.
669         (__detail::__all_but_last_common): Likewise.
670         (__detail::__concat_is_random_access): Likewise.
671         (__detail::__concat_is_bidirectional): Likewise.
672         (__detail::__last_is_common): Likewise.
673         (concat_view): Likewise.
674         (__detail::__concat_view_iter_cat): Likewise.
675         (concat_view::iterator): Likewise.
676         (views::__detail::__can_concat_view): Likewise.
677         (views::_Concat, views::concat): Likewise.
678         * testsuite/std/ranges/concat/1.cc: New test.
680 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
682         * include/bits/locale_classes.h (locale::combine)
683         (locale::name, locale::operator==, locale::operator!=)
684         (locale::operator(), locale::classic): Add nodiscard
685         attribute.
686         * include/bits/locale_classes.tcc (has_facet, use_facet):
687         Likewise.
688         * testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
689         nodiscard diagnostic.
690         * testsuite/22_locale/locale/cons/2.cc: Cast use_facet
691         expression to void, to suppress diagnostic.
692         * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
693         * testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
695 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
697         PR libstdc++/108323
698         * include/bits/locale_classes.tcc (locale(const locale&, Facet*)):
699         Return a copy of the first argument when the facet pointer is
700         null, as per LWG 2295.
701         (locale::combine): Ensure the result is unnamed.
702         * src/c++11/localename.cc (_M_replace_categories): Ignore
703         whether the second locale has a name when cat == none, as per
704         LWG 3676.
705         * src/c++98/locale.cc (_M_install_facet): Use __builtin_expect
706         to predict that the facet pointer is non-null.
707         * testsuite/22_locale/locale/cons/names.cc: New test.
709 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
711         PR libstdc++/114940
712         * include/bits/version.def (generator): Depend on
713         __cpp_sized_deallocation.
714         * include/bits/version.h: Regenerate.
715         * include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro.
716         (basic_stacktrace::_Impl::_M_deallocate): Use it.
718 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
720         PR libstdc++/115099
721         * include/bits/std_thread.h: Declare formatter as friend of
722         thread::id.
723         * include/std/thread (operator<<): Convert non-void pointers to
724         void pointers for output.
725         (formatter): Add constraint that thread::native_handle_type is a
726         pointer or integer.
727         (formatter::format): Reimplement without basic_ostringstream.
728         * testsuite/30_threads/thread/id/output.cc: Check output
729         compiles before <sstream> has been included.
731 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
733         PR libstdc++/115145
734         * include/std/variant (operator==, operator!=, operator<)
735         (operator<=, operator>, operator>=): Add trailing-return-type to
736         lambda expressions to trigger conversion to bool.
737         * testsuite/20_util/variant/relops/115145.cc: New test.
739 2024-05-17  Björn Schäpers  <bjoern@hazardy.de>
741         * acinclude.m4 (GLIBCXX_ENABLE_BACKTACE): Add check for
742         tlhelp32.h, matching libbacktrace.
743         * config.h.in: Regenerate.
744         * configure: Regenerate.
746 2024-05-17  Jonathan Wakely  <jwakely@redhat.com>
748         PR libstdc++/115119
749         * include/bits/unicode.h (_Iterator::operator++(int)): Fix typo
750         in increment expression.
751         * testsuite/ext/unicode/grapheme_view.cc: Check post-increment
752         on view's iterator.
754 2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
756         PR libstdc++/77704
757         * include/bits/basic_ios.h (basic_ios::fill()): Do not modify
758         _M_fill and _M_fill_init in a const member function.
759         (basic_ios::fill(char_type)): Use _M_fill directly instead of
760         calling fill(). Set _M_fill_init to true.
761         * include/bits/basic_ios.tcc (basic_ios::init): Set _M_fill and
762         _M_fill_init here instead.
763         * testsuite/27_io/basic_ios/fill/char/1.cc: New test.
764         * testsuite/27_io/basic_ios/fill/wchar_t/1.cc: New test.
766 2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
768         * include/std/variant (__detail::__variant::__compare): New
769         function template.
770         (operator==, operator!=, operator<, operator>, operator<=)
771         (operator>=): Replace macro definition with handwritten function
772         calling __detail::__variant::__compare.
773         (operator<=>): Call __detail::__variant::__compare.
775 2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
777         PR libstdc++/89624
778         * include/bits/atomic_base.h (memory_order): Use int as
779         underlying type.
780         * testsuite/29_atomics/atomic/89624.cc: New test.
782 2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
784         PR libstdc++/115015
785         * src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]:
786         Do not use dynamic_cast.
788 2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
790         * doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
791         std::string::shrink_to_fit.
792         * doc/html/manual/strings.html: Regenerate.
794 2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
796         PR libstdc++/115063
797         * include/std/stacktrace (basic_stacktrace::max_size): Fix typo
798         in reference to _M_alloc member.
799         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check
800         max_size() compiles.
802 2024-05-13  Matthias Kretz  <m.kretz@gsi.de>
804         PR libstdc++/114958
805         * include/experimental/bits/simd.h (__as_vector): Return scalar
806         simd as one-element vector. Return vector from single-vector
807         fixed_size simd.
808         (__vec_shuffle): New.
809         (__extract_part): Adjust return type signature.
810         (split): Use __extract_part for any split into non-fixed_size
811         simds.
812         (concat): If the return type stores a single vector, use
813         __vec_shuffle (which calls __builtin_shufflevector) to produce
814         the return value.
815         * include/experimental/bits/simd_builtin.h
816         (__shift_elements_right): Removed.
817         (__extract_part): Return single elements directly. Use
818         __vec_shuffle (which calls __builtin_shufflevector) to for all
819         non-trivial cases.
820         * include/experimental/bits/simd_fixed_size.h (__extract_part):
821         Return single elements directly.
822         * testsuite/experimental/simd/pr114958.cc: New test.
824 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
826         * include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure
827         count of characters consumed is correct when the end of the
828         input is reached unexpectedly.
829         * testsuite/ext/unicode/view.cc: Test incomplete UTF-8
830         sequences.
832 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
834         PR libstdc++/114866
835         * include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to
836         shared_ptr, __shared_ptr or __is_shred_ptr.
837         * testsuite/20_util/headers/memory/114866.cc: New test.
839 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
841         * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE):
842         Simplify.
844 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
846         * include/bits/stl_pair.h (operator==): Add constraint.
847         * include/bits/version.def (constrained_equality): Define.
848         * include/bits/version.h: Regenerate.
849         * include/std/optional: Define feature test macro.
850         (__optional_rep_op_t): Use is_convertible_v instead of
851         is_convertible.
852         * include/std/tuple: Define feature test macro.
853         (operator==, __tuple_cmp, operator<=>): Reimplement C++20
854         comparisons using lambdas. Add constraints.
855         * include/std/utility: Define feature test macro.
856         * include/std/variant: Define feature test macro.
857         (_VARIANT_RELATION_FUNCTION_TEMPLATE): Add constraints.
858         (variant): Remove unnecessary friend declarations for comparison
859         operators.
860         * testsuite/20_util/optional/relops/constrained.cc: New test.
861         * testsuite/20_util/pair/comparison_operators/constrained.cc:
862         New test.
863         * testsuite/20_util/tuple/comparison_operators/constrained.cc:
864         New test.
865         * testsuite/20_util/variant/relops/constrained.cc: New test.
866         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
867         Disable for C++20 and later.
868         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
869         Remove dg-error line for target c++20.
871 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
873         * include/backward/auto_ptr.h: Use https for URL in comment.
874         * include/bits/basic_ios.h: Likewise.
875         * include/std/iostream: Likewise.
877 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
879         * testsuite/util/testsuite_abi.cc: Update latest versions to
880         new versions that should be used in future.
882 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
884         * src/Makefile.am [ENABLE_SYMVERS_SUN]
885         (libstdc++-symbols.ver-sun): Pass $(libstdc___la_OBJECTS),
886         $(libstdc___la_LIBADD) to make_sunver.pl unmodified.
887         * src/Makefile.in: Regenerate.
889 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
891         * testsuite/lib/dg-options.exp (add_options_for_net_ts)
892         <*-*-solaris2*>: Don't link with -lsocket -lnsl.
894 2024-05-03  Andreas Schwab  <schwab@linux-m68k.org>
896         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
897         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
899 2024-05-01  Jonathan Wakely  <jwakely@redhat.com>
901         PR libstdc++/114891
902         * include/std/generator: Check feature test macro before using
903         is_pointer_interconvertible_v.
905 2024-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
907         * testsuite/lib/gdb-test.exp (gdb-test): Fix regexp.  Quote
908         newlines in logs.
910 2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
912         Backported from master:
913         2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
915         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
916         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
917         Likewise.
918         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
919         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
920         Likewise.
922 2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
924         Backported from master:
925         2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
927         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
928         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
929         Likewise.
930         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
931         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
932         Likewise.
934 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
936         PR libstdc++/114863
937         * include/std/format (__formatter_fp::format): Only use
938         _M_localized for finite values.
939         * testsuite/std/format/functions/format.cc: Check localized
940         formatting of NaN and initiny.
942 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
944         * doc/html/manual/status.html: Regenerate.
945         * doc/xml/manual/status_cxx1998.xml: Adjust whitespace.
946         * doc/xml/manual/status_cxx2011.xml: Likewise.
947         * doc/xml/manual/status_cxx2014.xml: Likewise.
948         * doc/xml/manual/status_cxx2017.xml: Likewise.
949         * doc/xml/manual/status_cxx2020.xml: Likewise.
950         * doc/xml/manual/status_cxx2023.xml: Likewise.
951         * doc/xml/manual/status_cxxtr1.xml: Likewise.
952         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
954 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
956         * scripts/run_doxygen: Rename man pages for nested types.
958 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
960         * include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
962 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
964         * scripts/run_doxygen: Adjust sed pattern to match '\fR' for
965         new man output that Doxygen 1.10 generates.
967 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
969         * doc/doxygen/stdheader.cc (init_map): Add missing headers.
970         * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
971         std::format and std::text_encoding.
973 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
975         * include/std/variant: Add comment to #include.
977 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
979         PR libstdc++/114803
980         * include/experimental/bits/simd_builtin.h
981         (_SimdBase2::operator __vector_type_t): There is no __builtin()
982         function in _SimdWrapper, instead use its conversion operator.
983         * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
984         test.
986 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
988         * include/experimental/bits/simd.h: Ignore -Wnarrowing for
989         arm_neon.h.
990         (__int_for_sizeof): Replace tautological compare with checking
991         for invalid template parameter value.
992         * include/experimental/bits/simd_builtin.h (__extract_part):
993         Remove tautological compare by combining two static_assert.
995 2024-04-22  Jakub Jelinek  <jakub@redhat.com>
997         * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
998         * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
999         define on s390.
1000         * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
1001         Likewise.
1002         * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
1003         Likewise.
1004         * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
1005         Likewise.
1006         * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
1007         Likewise.
1009 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
1011         * include/bits/refwrap.h (operator<=>): Simplify constraints.
1013 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
1015         PR libstdc++/114770
1016         * src/c++20/tzdb.cc (do_locate_zone): Support links that have
1017         another link as their target.
1018         * testsuite/std/time/tzdb/1.cc: Check that all zones and links
1019         can be found by locate_zone.
1020         * testsuite/std/time/tzdb/links.cc: New test.
1022 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
1024         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
1025         Disable SRA.
1027 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
1029         * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
1030         on aarch64-vxworks.
1031         * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
1032         aarch64-vxworks.
1034 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
1036         * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
1037         on VxWorks non-RTP.
1039 2024-04-17  Jonathan Wakely  <jwakely@redhat.com>
1041         * include/std/ostream (println(ostream&)): Define new overload.
1042         * include/std/print (println(FILE*), println()): Likewise.
1043         * testsuite/27_io/basic_ostream/print/2.cc: New test.
1044         * testsuite/27_io/print/1.cc: Remove unused header.
1045         * testsuite/27_io/print/3.cc: New test.
1047 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
1049         * include/experimental/bits/numeric_traits.h: Add include guard.
1051 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
1053         PR libstdc++/114750
1054         * include/experimental/bits/simd_builtin.h
1055         (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
1056         scalars if the memory type cannot be vectorized for the target.
1058 2024-04-16  Jonathan Wakely  <jwakely@redhat.com>
1060         * config/locale/dragonfly/numeric_members.cc: Fix typos in
1061         comments.
1062         * config/locale/gnu/numeric_members.cc: Likewise.
1064 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
1066         * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
1067         * doc/html/manual/abi.html: Regenerate.
1069 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
1071         * include/bits/refwrap.h (reference_wrapper): Add comparison
1072         operators as proposed by P2944R3.
1073         * include/bits/version.def (reference_wrapper): Define.
1074         * include/bits/version.h: Regenerate.
1075         * include/std/functional: Enable feature test macro.
1076         * testsuite/20_util/reference_wrapper/compare.cc: New test.
1078 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
1080         PR libstdc++/113386
1081         * include/bits/stl_pair.h (operator==, operator<=>): Support
1082         heterogeneous comparisons, as per LWG 3865.
1083         * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
1084         test.
1086 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
1088         PR libstdc++/93672
1089         * src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
1090         Treat all negative delimiter values as eof().
1091         * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
1092         * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
1093         test.
1095 2024-04-15  Andreas Schwab  <schwab@suse.de>
1097         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1099 2024-04-13  H.J. Lu  <hjl.tools@gmail.com>
1101         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
1102         Updated.
1104 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
1106         * doc/xml/manual/abi.xml: Add latest library versions.
1107         * doc/html/manual/abi.html: Regenerate.
1109 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
1111         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1112         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1113         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1114         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1115         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1116         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1117         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1118         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
1119         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1121 2024-04-11  Jonathan Wakely  <jwakely@redhat.com>
1123         PR libstdc++/114692
1124         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
1125         __basic_file::native_handle to ...
1126         (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
1127         specialization, which isn't used.
1128         * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
1129         latest version check.
1131 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
1133         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1134         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1135         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1136         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1137         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1138         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1139         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1140         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
1141         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1143 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
1145         * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
1146         Adjust input string so that it matches %a with or without a
1147         trailing period.
1148         * testsuite/std/time/year_month_day/io.cc: Adjust expected
1149         format for %x in the fr_FR locale.
1151 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
1153         * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
1154         Check for EMLINK as well as ELOOP.
1155         [__NetBSD__]: Check for EFTYPE as well as ELOOP.
1157 2024-04-09  Jonathan Wakely  <jwakely@redhat.com>
1159         PR libstdc++/114633
1160         * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
1161         stream extraction if std::from_chars is not available.
1163 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
1165         PR libstdc++/114519
1166         * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
1167         using char instead of char8_t.
1168         * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
1169         string views, instead of std::u8string_view.
1171 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
1173         * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
1174         no-opts selector for errors that depend on -fchar8_t.
1175         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
1176         Likewise.
1177         * testsuite/20_util/integer_comparisons/greater_neg.cc:
1178         Likewise.
1179         * testsuite/20_util/integer_comparisons/in_range_neg.cc:
1180         Likewise.
1181         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
1182         Likewise.
1183         * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
1184         * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
1185         Likewise.
1186         * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
1187         if -fno-char8_t is used.
1188         * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
1189         Likewise.
1190         * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
1191         Likewise.
1192         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
1193         Likewise.
1194         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
1195         char for u8 literal if char8_t is not available.
1196         * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
1197         __cpp_char8_t.
1198         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
1199         * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
1200         Remove check for _GLIBCXX_USE_CHAR8_T.
1202 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
1204         * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
1205         using a struct of that name if -fno-char8_t is active.
1206         * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
1208 2024-04-03  Jonathan Wakely  <jwakely@redhat.com>
1210         PR libstdc++/104606
1211         * include/std/optional (operator<=>(const optional<T>&, const U&)):
1212         Reverse order of three_way_comparable_with template arguments.
1213         * testsuite/20_util/optional/relops/104606.cc: New test.
1215 2024-04-02  Jonathan Wakely  <jwakely@redhat.com>
1217         PR libstdc++/114519
1218         * include/bits/unicode.h (_Utf8_view): Guard with check for
1219         char8_t being enabled.
1220         (__literal_encoding_is_unicode): Guard use of char8_t with check
1221         for it being enabled.
1222         * testsuite/std/format/functions/114519.cc: New test.
1224 2024-04-02  Patrick Palka  <ppalka@redhat.com>
1226         * include/std/ranges (ranges::__detail::_Empty): Rename to ...
1227         (ranges::__detail::_Absent): ... this.  Turn into a template
1228         parameterized by the absent type _Tp and discriminator _Disc.
1229         (ranges::__detail::__maybe_present_t): Add an optional
1230         discriminator parameter.
1231         (slide_view::_M_cached_begin): Pass a discriminator argument to
1232         __maybe_present_t.
1233         (slide_view::_M_cached_end): Likewise.
1234         * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
1235         slide_view<V> is 3 instead 4 pointers.
1237 2024-04-02  Jakub Jelinek  <jakub@redhat.com>
1239         * acinclude.m4: Fix duplicated words; file file -> file can.
1240         * configure.host: Fix duplicated words; the the -> the.
1242 2024-03-29  Arsen Arsenović  <arsen@aarsen.me>
1244         * testsuite/24_iterators/range_generators/01.cc: Drop GCC
1245         Runtime Library Exception.
1246         * testsuite/24_iterators/range_generators/02.cc: Drop GCC
1247         Runtime Library Exception.
1248         * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
1249         Runtime Library Exception.
1250         * testsuite/24_iterators/range_generators/except.cc: Drop GCC
1251         Runtime Library Exception.
1252         * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
1253         Runtime Library Exception.
1254         * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
1255         Runtime Library Exception.
1256         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
1257         Drop GCC Runtime Library Exception from the "You should have
1258         received a copy" paragraph.
1260 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
1262         * include/experimental/bits/simd_x86.h (_S_masked_unary):
1263         Cast inputs < 16 bytes to 16 byte vectors before calling the
1264         right subtraction builtin. Before returning, truncate to the
1265         return vector type.
1267 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
1269         * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
1270         the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
1271         rounding direction argument.
1273 2024-03-27  Srinivas Yadav Singanaboina  <vasu.srinivasvasu.14@gmail.com>
1275         * include/Makefile.am: Add simd_sve.h.
1276         * include/Makefile.in: Add simd_sve.h.
1277         * include/experimental/bits/simd.h: Add new SveAbi.
1278         * include/experimental/bits/simd_builtin.h: Use
1279         __no_sve_deduce_t to support existing Neon Abi.
1280         * include/experimental/bits/simd_converter.h: Convert
1281         sequentially when sve is available.
1282         * include/experimental/bits/simd_detail.h: Define sve
1283         specific macro.
1284         * include/experimental/bits/simd_math.h: Fallback frexp
1285         to execute sequntially when sve is available, to handle
1286         fixed_size_simd return type that always uses sve.
1287         * include/experimental/simd: Include bits/simd_sve.h.
1288         * testsuite/experimental/simd/tests/bits/main.h: Enable
1289         testing for sve128, sve256, sve512.
1290         * include/experimental/bits/simd_sve.h: New file.
1292 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
1294         * include/std/generator (generator::_Iterator::operator*): Fix
1295         return type.
1296         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
1297         New test.
1299 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
1301         * include/std/generator: Fix _V badname.
1303 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
1305         * testsuite/19_diagnostics/stacktrace/current.cc: Check for
1306         __cpp_lib_stacktrace instead of check for stacktrace ET.
1307         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
1308         * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
1309         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1310         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
1311         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
1312         * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
1313         * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
1314         Likewise.
1315         * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
1316         Remove.
1318 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
1320         * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
1321         New proc.
1322         * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
1323         New proc.
1324         * testsuite/std/text_encoding/cons.cc: Use new directive to skip
1325         the test if the __cpp_lib_text_encoding feature test macro is
1326         not defined.
1327         * testsuite/std/text_encoding/requirements.cc: Likewise.
1329 2024-03-25  Jonathan Wakely  <jwakely@redhat.com>
1331         * testsuite/std/text_encoding/requirements.cc: #undef the
1332         correct macro.
1334 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
1336         * include/std/format (formatter): Disable specializations that
1337         would allow sequences of narrow characters to be formatted as
1338         wchar_t without conversion, as per LWG 3944.
1339         * testsuite/std/format/formatter/lwg3944.cc: New test.
1341 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
1343         * include/bits/utility.h (__is_in_place_index_v): New variable
1344         template.
1345         * include/std/variant (__not_in_place_tag): Define in terms of
1346         variable templates not a class template.
1348 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
1350         PR libstdc++/114400
1351         * include/std/string_view (operator==): Use std::type_identity_t
1352         in C++20 instead of our own __type_identity_t.
1354 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
1356         PR libstdc++/114401
1357         * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
1358         release() on node handle instead of just zeroing its pointer.
1359         (_Hashtable::_M_reinsert_node_multi): Likewise.
1360         (_Hashtable::_M_merge_unique): Likewise.
1361         (_Hashtable::_M_merge_multi): Likewise.
1362         * include/bits/node_handle.h (_Node_handle_common::release()):
1363         New member function.
1364         (_Node_handle_common::_Optional_alloc::_M_empty): Remove
1365         unnecessary union member.
1366         (_Node_handle_common): Declare _Hashtable as a friend.
1367         * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
1368         Call release() on node handle instead of just zeroing its
1369         pointer.
1370         (_Rb_tree::_M_reinsert_node_equal): Likewise.
1371         (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
1372         (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
1373         * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
1374         * testsuite/23_containers/set/modifiers/114401.cc: New test.
1375         * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
1376         * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
1378 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
1380         PR libstdc++/113841
1381         * include/bits/allocator.h (allocator<cv T>): Add default
1382         constructor to partial specializations for cv-qualified types.
1383         * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
1384         Constrain so that it's only present if the allocator is default
1385         constructible.
1386         * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
1387         Likewise.
1388         * testsuite/23_containers/vector/cons/113841.cc: New test.
1390 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
1392         * include/bits/stl_construct.h (destroy_at, construct_at): Guard
1393         with feature test macros instead of just __cplusplus.
1395 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
1397         * include/bits/version.def (generator, tuple_like): Move earlier
1398         in the file.
1399         * include/bits/version.h: Regenerate.
1401 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
1403         PR libstdc++/114394
1404         * include/std/functional (bind): Use __invoke_result_t instead
1405         of result_of::type.
1406         * include/std/type_traits (__invoke_result_t): New alias
1407         template.
1408         * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
1410 2024-03-20  François Dumont  <fdumont@gcc.gnu.org>
1412         * include/bits/version.def (null_iterators): Remove extra_cond.
1413         * include/bits/version.h: Regenerate.
1415 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
1417         PR libstdc++/114359
1418         * include/bits/random.tcc (binomial_distribution::param_type):
1419         Ensure arithmetic is done as type double.
1420         * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
1422 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
1424         PR libstdc++/101228
1425         * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
1426         Define before including <tbb/task.h> then undef afterwards.
1428 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
1430         * include/Makefile.am [MAINTAINER_MODE]: Add target to
1431         automatically update <bits/version.h>.
1432         * include/Makefile.in: Regenerate.
1434 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
1436         * doc/xml/manual/build_hacking.xml: Document generated files.
1437         Update list of convenience libraries and sub-directories under
1438         the src directory.
1439         * doc/html/*: Regenerate.
1441 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
1443         * include/bits/text_encoding-data.h: Regenerate.
1444         * include/bits/unicode-data.h: Regenerate.
1445         * scripts/gen_text_encoding_data.py: Fix header of generated
1446         file to name the correct script.
1448 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
1450         * testsuite/util/pstl/test_utils.h: Fix typos in comments.
1452 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
1454         PR libstdc++/114367
1455         * include/bits/stl_bvector.h (_M_allocate): Use allocator's
1456         construct function to begin lifetime of words.
1458 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
1460         * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
1461         option for the path to the uninstalled libatomic.
1463 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
1465         * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
1466         /dev/null, use a temporary file for test executables on Darwin.
1468 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
1470         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
1471         Accept 0 offset advance on value-initialized iterator.
1472         * testsuite/23_containers/vector/debug/n3644.cc: New test case.
1474 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
1476         * include/debug/safe_local_iterator.tcc
1477         (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
1478         _M_singular checks.
1479         * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
1481 2024-03-17  François Dumont  <fdumont@gcc.gnu.org>
1483         PR libstdc++/114316
1484         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
1485         First check if both iterators are value-initialized before checking if
1486         singular.
1487         * testsuite/23_containers/set/debug/114316.cc: New test case.
1488         * testsuite/23_containers/vector/debug/114316.cc: New test case.
1490 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
1492         PR libstdc++/114325
1493         * include/std/format (_Scanner::_M_scan): Pass correct length to
1494         __to_chars_10_impl.
1495         * testsuite/std/format/functions/format.cc: Check negative
1496         integers with empty format-spec.
1498 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
1500         * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
1501         (find_if_not, is_partitioned, partition_point, remove)
1502         (remove_if, unique, lower_bound, upper_bound, equal_range)
1503         (binary_search, includes, is_sorted, is_sorted_until, minmax)
1504         (minmax_element, is_permutation, clamp, find_if, find_first_of)
1505         (adjacent_find, count, count_if, search, search_n, min_element)
1506         (max_element): Add nodiscard attribute.
1507         * include/bits/stl_algobase.h (min, max, lower_bound, equal)
1508         (lexicographical_compare, lexicographical_compare_three_way)
1509         (mismatch): Likewise.
1510         * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
1511         * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
1512         * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
1513         * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
1514         * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
1515         Likewise.
1516         * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
1517         * testsuite/25_algorithms/lexicographical_compare/71545.cc:
1518         Likewise.
1519         * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
1520         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
1521         Likewise.
1522         * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
1523         Likewise.
1524         * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
1525         Likewise.
1526         * testsuite/25_algorithms/minmax/3.cc: Likewise.
1527         * testsuite/25_algorithms/search/78346.cc: Likewise.
1528         * testsuite/25_algorithms/search_n/58358.cc: Likewise.
1529         * testsuite/25_algorithms/unique/1.cc: Likewise.
1530         * testsuite/25_algorithms/unique/11480.cc: Likewise.
1531         * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
1532         * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
1533         Likewise.
1534         * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
1535         Likewise.
1536         * testsuite/ext/concept_checks.cc: Likewise.
1537         * testsuite/ext/is_heap/47709.cc: Likewise.
1538         * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
1540 2024-03-14  xndcn  <xndchn@gmail.com>
1542         * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
1543         Clear padding.
1544         * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
1545         New test.
1547 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
1549         PR libstdc++/66146
1550         * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
1551         note about std::call_once.
1552         * doc/xml/manual/status_cxx2014.xml: Likewise.
1553         * doc/xml/manual/status_cxx2017.xml: Likewise.
1554         * doc/html/manual/status.html: Regenerate.
1556 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
1558         * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
1559         * doc/html/manual/status.html: Regenerate.
1560         * include/bits/version.def: Fix typo in comment.
1562 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
1564         * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
1565         to namespace scope.
1567 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
1569         * doc/xml/manual/debug.xml: Improve docs on debug builds and
1570         using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
1571         the most relevant ones first.
1572         * doc/xml/manual/using.xml: Add comma.
1573         * doc/html/*: Regenerate.
1575 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
1577         * doc/xml/manual/debug.xml: Document that concept checking might
1578         be removed in future.
1579         * doc/xml/manual/extensions.xml: Likewise.
1581 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
1583         PR libstdc++/114240
1584         * include/bits/chrono_io.h (_Parser::operator()): Assume
1585         hours(0) for a time_point, so that a time is not required
1586         to be present.
1587         * testsuite/std/time/parse/114240.cc: New test.
1589 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
1591         PR libstdc++/114279
1592         * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
1593         data member.
1594         (_Parser::_M_reserved): Reserve padding bits for future use.
1595         (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
1596         (from_stream): Only allow _M_is_leap_second for utc_time and
1597         local_time. Adjust arithmetic for utc_time so that leap seconds
1598         are preserved. Use time_point_cast to convert to a possibly
1599         lower-precision result type.
1600         * testsuite/std/time/parse.cc: Move to ...
1601         * testsuite/std/time/parse/parse.cc: ... here.
1602         * testsuite/std/time/parse/114279.cc: New test.
1604 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
1606         * include/bits/chrono_io.h (_Parser::operator()): Use
1607         std::from_chars to parse fractional seconds.
1609 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
1611         PR libstdc++/114244
1612         * include/bits/chrono_io.h (_Parser::operator()): Remove
1613         redundant uses of duration_cast. Use chrono::round to convert
1614         long double value to durations with integer representations.
1615         Check represenation type when deciding whether to skip parsing
1616         fractional seconds.
1617         * testsuite/20_util/duration/114244.cc: New test.
1618         * testsuite/20_util/duration/io.cc: Check that a floating-point
1619         duration with ratio<1> precision can be parsed.
1621 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
1623         PR libstdc++/114103
1624         * include/bits/version.def (atomic_lock_free_type_aliases): Add
1625         extra_cond to check for at least one always-lock-free type.
1626         * include/bits/version.h: Regenerate.
1627         * include/std/atomic (atomic_signed_lock_free)
1628         (atomic_unsigned_lock_free): Only use always-lock-free types.
1629         * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
1630         atomic counter if lock-free aliases aren't available.
1631         * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
1632         targets without lock-free word-size compare_exchange.
1634 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
1636         * include/std/chrono (__get_leap_second_info): Update expiry
1637         time for hardcoded list of leap seconds.
1638         * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
1640 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
1642         * testsuite/23_containers/deque/allocator/default_init.cc: Use
1643         std::memset instead of __builtin_memset.
1644         * testsuite/23_containers/forward_list/allocator/default_init.cc:
1645         Likewise.
1646         * testsuite/23_containers/list/allocator/default_init.cc:
1647         Likewise.
1648         * testsuite/23_containers/map/allocator/default_init.cc:
1649         Likewise.
1650         * testsuite/23_containers/set/allocator/default_init.cc:
1651         Likewise.
1652         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
1653         Likewise.
1654         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
1655         Likewise.
1656         * testsuite/23_containers/vector/allocator/default_init.cc:
1657         Likewise.
1658         * testsuite/23_containers/vector/bool/allocator/default_init.cc:
1659         Likewise.
1660         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
1661         Likewise.
1662         * testsuite/util/atomic/wait_notify_util.h: Likewise.
1664 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
1666         * include/std/format (_Arg_store::_S_make_elt): Add two
1667         static_assert checks to give more user-friendly error messages.
1668         * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
1669         form of "in requirements with" note.
1670         * testsuite/std/format/arguments/args_neg.cc: Check for
1671         user-friendly diagnostics for non-formattable types.
1672         * testsuite/std/format/string_neg.cc: Likewise.
1674 2024-03-04  Jonathan Wakely  <jwakely@redhat.com>
1676         PR libstdc++/114147
1677         * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
1678         Add missing overload of allocator-extended default constructor.
1679         (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
1680         * testsuite/20_util/tuple/cons/114147.cc: New test.
1682 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
1684         * include/std/format (basic_format_arg::handle::__maybe_const_t):
1685         Fix condition to check if const type is formattable.
1686         (basic_format_arg::handle::handle(T&)): Remove redundant
1687         static_assert.
1688         * testsuite/std/format/formatter/basic.cc: New test.
1690 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
1692         PR libstdc++/113960
1693         * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
1694         (__memcmp_ordered_with): New concept.
1695         (lexicographical_compare_three_way): Use __memcmp_ordered_with
1696         instead of __is_byte_iter. Use correct length for memcmp.
1697         * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
1698         New test.
1700 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1702         PR libstdc++/114152
1703         * include/experimental/scope (scope_exit scope_fail): Make
1704         destructor unconditionally noexcept.
1705         (scope_sucess): Fix noexcept-specifier.
1706         * testsuite/experimental/scopeguard/114152.cc: New test.
1708 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1710         * doc/xml/manual/appendix_contributing.xml: Change URLs to use
1711         https.
1712         * doc/html/manual/*: Regenerate.
1714 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1716         * doc/xml/manual/appendix_contributing.xml: Replace outdated
1717         info on ChangeLog entries.
1718         * doc/html/manual/appendix_contributing.html: Regenerate.
1720 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1722         * include/bits/stl_bvector.h (vector<bool, A>::at): Add
1723         nodiscard.
1724         * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
1725         (operator==, operator<=>, operator<, operator!=, operator>)
1726         (operator<=, operator>=): Likewise.
1727         * include/debug/vector (operator==, operator<=>, operator<)
1728         (operator!=, operator>, operator<=, operator>=): Likewise.
1729         * testsuite/23_containers/vector/nodiscard.cc: New test.
1731 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1733         * include/bits/atomic_base.h (operator|, operator&): Add
1734         noexcept.
1735         * include/bits/fs_fwd.h (operator&, operator|, operator^)
1736         (operator~): Add nodiscard to overloads for copy_options, perms,
1737         perm_options, and directory_options.
1738         * include/bits/ios_base.h (operator&, operator|, operator^)
1739         (operator~): Add nodiscard and noexcept to overloads for
1740         _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
1741         (operator|=, operator&=, operator^=): Add constexpr for C++14.
1742         * include/bits/regex_constants.h (operator&, operator|, operator^)
1743         (operator~): Add nodiscard and noexcept to overloads for
1744         syntax_option_type and match_flag_type.
1745         (operator|=, operator&=, operator^=): Add noexcept.
1746         * include/std/charconv (operator&, operator|, operator^)
1747         (operator~): Add nodiscard to overloads for chars_format.
1748         * include/std/future (operator&, operator|, operator^)
1749         (operator~): Add nodiscard for overloads for launch.
1750         (operator&=, operator|=, operator^=): Add constexpr for C++14.
1751         * include/experimental/bits/fs_fwd.h  (operator&, operator|)
1752         (operator^, operator~): Add nodiscard to overloads for
1753         copy_options, perms, and directory_options.
1754         * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
1755         Add dg-warning for nodiscard warnings.
1756         * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
1757         Likewise.
1758         * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
1759         Likewise.
1760         * testsuite/27_io/filesystem/operations/bitmask_types.cc:
1761         New test.
1763 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1765         * testsuite/27_io/basic_ostream/print/1.cc: Check error
1766         handling.
1767         * testsuite/27_io/print/1.cc: Likewise.
1769 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1771         * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
1772         code path for Cygwin instead of Windows.
1773         * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
1774         * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
1775         for *-*-mingw* targets.
1776         * testsuite/27_io/print/1.cc: Likewise.
1778 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1780         * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
1781         __make_move_if_noexcept_iterator.
1783 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1785         * include/std/stacktrace: Add nodiscard attribute to all
1786         functions without side effects.
1788 2024-02-20  François Dumont  <fdumont@gcc.gnu.org>
1790         * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
1791         std::__niter_base on res iterator.
1793 2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
1794             Jonathan Wakely  <jwakely@redhat.com>
1796         PR target/112397
1797         * configure: Regenerate.
1798         * configure.ac: Detect if we are building for Darwin.
1799         * libsupc++/Makefile.am: If we are building for Darwin, then
1800         suppress hot/cold partitioning for the array allocators.
1801         * libsupc++/Makefile.in: Regenerated.
1803 2024-02-17  François Dumont  <fdumont@gcc.gnu.org>
1805         * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
1806         definitions for __gnu_debug::_Safe_iterator.
1807         * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
1809 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
1811         PR libstdc++/87744
1812         PR libstdc++/113961
1813         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1814         line number.
1816 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
1818         PR libstdc++/87744
1819         PR libstdc++/113931
1820         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1821         line number.
1823 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
1825         * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
1826         * doc/html/manual/debug_mode_using.html: Regenerate.
1828 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
1830         * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
1831         * doc/html/manual/test.html: Regenerate.
1833 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1835         PR libstdc++/113806
1836         * include/std/bitset (bitset::operator>>=): Remove redundant
1837         call to _M_do_sanitize.
1839 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1841         PR libstdc++/113807
1842         * include/std/bitset (bitset::set()): Use memset instead of a
1843         loop over the individual words.
1845 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1847         PR libstdc++/113811
1848         * include/bits/stl_algo.h (__rotate): Use unsigned values for
1849         division.
1851 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1853         PR libstdc++/99117
1854         * include/std/valarray (valarray::operator=(const _Expr&)):
1855         Use loop to copy instead of __valarray_copy with _Array.
1856         * testsuite/26_numerics/valarray/99117.cc: New test.
1858 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1860         * src/c++20/tzdata.zi: Import new file from 2024a release.
1861         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
1862         Update expiry date for leap seconds list.
1864 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1866         PR libstdc++/87744
1867         * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
1868         Define specialization for 64-bit generators with
1869         non-power-of-two modulus and large constants.
1870         (__mod): Use if constexpr unconditionally.
1871         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1872         line number.
1873         * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
1874         New test.
1876 2024-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
1878         * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
1879         version 1.
1880         * doc/html/manual/status.html: Regenerate.
1882 2024-02-12  Paul Keir  <paul.keir@uws.ac.uk>
1884         PR libstdc++/113294
1885         * include/bits/basic_string.h (basic_string::operator=): Use
1886         _M_use_local_data() instead of _M_local_buf on the moved-from
1887         string.
1888         * testsuite/21_strings/basic_string/modifiers/constexpr.cc
1889         (test_move): New test.
1891 2024-02-09  Ken Matsui  <kmatsui@gcc.gnu.org>
1893         * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
1894         Removed.
1895         * include/std/type_traits (is_same): Use
1896         _GLIBCXX_USE_BUILTIN_TRAIT instead of
1897         _GLIBCXX_HAVE_BUILTIN_IS_SAME.
1898         (is_same_v): Likewise.
1900 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1902         * include/bits/shared_ptr_atomic.h: Fix typo in comment.
1904 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1906         PR libstdc++/100147
1907         * include/bits/gslice.h (operator=): Add comment about lack of
1908         self-assignment check.
1910 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1912         * include/tr2/type_traits (bases, direct_bases): Use
1913         __has_builtin to check if required built-ins are supported.
1915 2024-02-07  Patrick Palka  <ppalka@redhat.com>
1917         PR testsuite/113710
1918         PR c++/113814
1919         * include/bits/stl_pair.h (tuple_element): Add forward
1920         declaration of the partial specialization for tuple.
1922 2024-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
1924         * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
1925         for other environments.
1927 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1929         * include/std/format (__format::_Spec::_M_reserved): Define new
1930         bit-field members to reserve padding bits for future extensions.
1932 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1934         * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
1935         instead of libstdc++fs.a.
1936         * src/experimental/Makefile.in: Regenerate.
1937         * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
1938         well.
1939         * src/filesystem/Makefile.in: Regenerate.
1941 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1943         * include/bits/text_encoding-data.h: Regenerate.
1944         * include/bits/unicode-data.h: Regenerate.
1945         * scripts/gen_text_encoding_data.py: Add copyright and license
1946         text to the output.
1948 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1950         PR libstdc++/113335
1951         * include/bits/std_function.h (__function_guide_helper): Add
1952         partial specialization for explicit object member functions, as
1953         per LWG 3617.
1954         * testsuite/20_util/function/cons/deduction_c++23.cc: Check
1955         explicit object member functions.
1956         * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
1957         Likewise.
1959 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1961         * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
1963 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1965         * include/experimental/internet (network_v6::network): Define.
1966         (network_v6::hosts): Finish implementing.
1967         (network_v6::to_string): Do not concatenate std::string to
1968         arbitrary std::basic_string specialization.
1969         * testsuite/experimental/net/internet/network/v6/cons.cc: New
1970         test.
1972 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1974         PR libstdc++/90276
1975         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
1976         comparison function to use less-than instead of equality.
1978 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1980         PR libstdc++/90276
1981         * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
1982         perfect forwarding for iterator arguments.
1984 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1986         * include/std/string_view (basic_string_view(R&&)): Remove
1987         constraint that traits_type must be the same, as per LWG 3857.
1988         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
1989         Explicit conversion between different specializations should be
1990         allowed.
1991         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
1992         Likewise.
1994 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1996         * include/std/syncstream (basic_osyncstream::operator=): Remove
1997         noexcept, as per LWG 3867.
1999 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
2001         * include/std/generator (promise_type::yield_value): Remove
2002         noexcept from fourth overload, as per LWG 3894.
2004 2024-02-01  Patrick Palka  <ppalka@redhat.com>
2006         PR libstdc++/113309
2007         PR libstdc++/109203
2008         * include/bits/ranges_util.h (__detail::__pair_like): Don't
2009         define in C++23 mode.
2010         (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
2011         (__detail::__is_subrange<subrange>): Moved from <ranges>.
2012         (__detail::__is_tuple_like_v<subrange>): Likewise.
2013         * include/bits/stl_iterator.h: Include <bits/utility.h> for
2014         C++23.
2015         (__different_from): Move to <concepts>.
2016         (__iter_key_t): Adjust for C++23 as per P2165R4.
2017         (__iter_val_t): Likewise.
2018         * include/bits/stl_pair.h (pair, array): Forward declare.
2019         (get): Forward declare all overloads relevant to P2165R4
2020         tuple-like constructors.
2021         (__is_tuple_v): Define for C++23.
2022         (__is_tuple_like_v): Define for C++23.
2023         (__tuple_like): Define for C++23 as per P2165R4.
2024         (__pair_like): Define for C++23 as per P2165R4.
2025         (__eligibile_tuple_like): Define for C++23.
2026         (__eligibile_pair_like): Define for C++23.
2027         (pair::_S_constructible_from_pair_like): Define for C++23.
2028         (pair::_S_convertible_from_pair_like): Define for C++23.
2029         (pair::_S_dangles_from_pair_like): Define for C++23.
2030         (pair::pair): Define overloads taking a tuple-like type for
2031         C++23 as per P2165R4.
2032         (pair::_S_assignable_from_tuple_like): Define for C++23.
2033         (pair::_S_const_assignable_from_tuple_like): Define for C++23.
2034         (pair::operator=): Define overloads taking a tuple-like type for
2035         C++23 as per P2165R4.
2036         * include/bits/utility.h (ranges::__detail::__is_subrange):
2037         Moved from <ranges>.
2038         * include/bits/version.def (tuple_like): Define for C++23.
2039         * include/bits/version.h: Regenerate.
2040         * include/std/concepts (__different_from): Moved from
2041         <bits/stl_iterator.h>.
2042         (ranges::__swap::__adl_swap): Clarify which __detail namespace.
2043         * include/std/map (__cpp_lib_tuple_like): Define C++23.
2044         * include/std/ranges (__detail::__is_subrange): Moved to
2045         <bits/utility.h>.
2046         (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
2047         (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
2048         (__detail::__tuple_or_pair): Remove as per P2165R4.  Replace all
2049         uses with plain tuple as per P2165R4.
2050         * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
2051         (__tuple_like_tag_t): Define for C++23.
2052         (__tuple_cmp): Forward declare for C++23.
2053         (_Tuple_impl::_Tuple_impl): Define overloads taking
2054         __tuple_like_tag_t and a tuple-like type for C++23.
2055         (_Tuple_impl::_M_assign): Likewise.
2056         (tuple::__constructible_from_tuple_like): Define for C++23.
2057         (tuple::__convertible_from_tuple_like): Define for C++23.
2058         (tuple::__dangles_from_tuple_like): Define for C++23.
2059         (tuple::tuple): Define overloads taking a tuple-like type for
2060         C++23 as per P2165R4.
2061         (tuple::__assignable_from_tuple_like): Define for C++23.
2062         (tuple::__const_assignable_from_tuple_like): Define for C++23.
2063         (tuple::operator=): Define overloads taking a tuple-like type
2064         for C++23 as per P2165R4.
2065         (tuple::__tuple_like_common_comparison_category): Define for C++23.
2066         (tuple::operator<=>): Define overload taking a tuple-like type
2067         for C++23 as per P2165R4.
2068         (array, get): Forward declarations moved to <bits/stl_pair.h>.
2069         (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
2070         (apply): Likewise.
2071         (make_from_tuple): Likewise.
2072         (__tuple_like_common_reference): Define for C++23.
2073         (basic_common_reference): Adjust as per P2165R4.
2074         (__tuple_like_common_type): Define for C++23.
2075         (common_type): Adjust as per P2165R4.
2076         * include/std/unordered_map (__cpp_lib_tuple_like): Define for
2077         C++23.
2078         * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
2079         * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
2080         and 2-tuple interchangeably.
2081         (test05): New test.
2082         * testsuite/20_util/pair/p2165r4.cc: New test.
2083         * testsuite/20_util/tuple/p2165r4.cc: New test.
2085 2024-02-01  Patrick Palka  <ppalka@redhat.com>
2087         * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
2088         factored out from ...
2089         (pair::operator=): ... the constraints of the const overloads.
2091 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
2093         * include/bits/version.tpl: Do not use def-file-line for each
2094         macro being defined.
2095         * include/bits/version.h: Regenerate.
2097 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
2099         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
2100         dg-error pattern.
2101         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
2102         Likewise.
2103         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
2104         Likewise.
2105         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
2106         Likewise.
2107         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
2108         Likewise.
2109         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
2110         Likewise.
2111         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
2112         Likewise.
2113         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
2114         Likewise.
2115         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
2116         Likewise.
2118 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
2120         * include/experimental/internet (network_v4::to_string()):
2121         Remove lambda and use of resize_and_overwrite.
2123 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
2125         * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
2126         needed for newlocale.
2127         * configure: Regenerate.
2128         * src/c++26/text_encoding.cc: Use <xlocale.h>.
2130 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
2131             Ewan Higgs  <ewan.higgs@gmail.com>
2133         * include/bits/text_encoding-data.h: Regenerate.
2134         * scripts/gen_text_encoding_data.py: Add extra_aliases dict
2135         containing "ASCII".
2136         * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
2138 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
2140         * doc/xml/manual/using.xml: Update tables of supported headers.
2141         * doc/html/*: Regenerate.
2143 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
2145         * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
2146         -Wshift-count-overflow warning.
2148 2024-01-30  Jonathan Wakely  <jwakely@redhat.com>
2150         * testsuite/std/time/clock/gps/io.cc: Fix expected result in
2151         assertion and call test_format() from main.
2153 2024-01-29  François Dumont  <fdumont@gcc.gnu.org>
2155         * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
2156         _GLIBCXX_DEBUG_BACKTRACE macro.
2158 2024-01-24  Huanghui Nie  <nnnjkk@gmail.com>
2159             Théo Papadopoulo   <papadopoulo@gmail.com>
2161         * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
2162         _M_before_begin check and cleanup implementation.
2164 2024-01-22  Jonathan Wakely  <jwakely@redhat.com>
2166         * testsuite/std/time/clock/file/io.cc: Fix expected result in
2167         assertion and call test_format() from main.
2169 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
2171         PR libstdc++/113500
2172         * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
2173         printing of subseconds with floating-point rep.
2174         (__formatter_chrono::_M_format_to_ostream): Do not write
2175         time_point specializations directly to the ostream.
2176         (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
2177         empty chrono-spec if the type fails to meet the constraints for
2178         writing to an ostream with operator<<.
2179         * testsuite/std/time/clock/file/io.cc: Check formatting
2180         non-integral times with empty chrono-specs.
2181         * testsuite/std/time/clock/gps/io.cc: Likewise.
2182         * testsuite/std/time/clock/utc/io.cc: Likewise.
2183         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
2185 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
2187         * include/bits/chrono.h (__file_clock::from_sys)
2188         (__file_clock::to_sys, __file_clock::_S_from_sys)
2189         (__file_clock::_S_to_sys): Use common_type for return type.
2190         * testsuite/std/time/clock/file/members.cc: Check round trip
2191         conversion for time with lower precision that seconds.
2193 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
2195         PR libstdc++/113512
2196         * include/std/format (__formatter_fp::format): Fix logic for
2197         alternate forms.
2198         * testsuite/std/format/functions/format.cc: Check buggy cases of
2199         alternate forms with g presentation type.
2201 2024-01-20  Marek Polacek  <polacek@redhat.com>
2203         PR c++/111410
2204         * include/std/ranges: Add #pragma to disable -Wdangling-reference with
2205         std::ranges::views::__adaptor::operator|.
2207 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
2209         * include/std/format (_Spec::_M_parse_fill_and_align): Do not
2210         use CTAD for _Utf32_view.
2212 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
2214         PR libstdc++/108822
2215         * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
2216         wrong fold-operator.
2217         * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
2218         element and three elements. Check allocator-extended
2219         constructors.
2221 2024-01-19  Patrick Palka  <ppalka@redhat.com>
2223         * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
2224         <print> and <text_encoding> for C++23 and C++26 respectively.
2226 2024-01-18  Patrick Palka  <ppalka@redhat.com>
2228         * include/bits/stl_pair.h [__cplusplus > 202002L]:
2229         Guard P2321R2 changes with __glibcxx_ranges_zip instead.
2231 2024-01-18  Patrick Palka  <ppalka@redhat.com>
2233         * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
2234         changes with __cpp_lib_ranges_zip instead.
2236 2024-01-18  Patrick Palka  <ppalka@redhat.com>
2238         PR libstdc++/109536
2239         * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
2240         Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
2241         * include/debug/safe_iterator.h
2242         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
2243         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
2244         (_Safe_iterator::operator=): Use them around the code path that
2245         defines a variable of type __gnu_cxx::__scoped_lock.
2246         (_Safe_iterator::operator++): Likewise.
2247         (_Safe_iterator::operator--): Likewise.
2248         (_Safe_iterator::operator+=): Likewise.
2249         (_Safe_iterator::operator-=): Likewise.
2250         * testsuite/23_containers/vector/element_access/constexpr.cc
2251         (test_iterators): Test more iterator operations.
2252         * testsuite/23_containers/vector/bool/element_access/constexpr.cc
2253         (test_iterators): Likewise.
2254         * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
2255         Remove.
2257 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
2259         * include/bits/unicode.h (__charset_alias_match): Initialize
2260         __var_a and __var_b.
2262 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
2264         PR libstdc++/113450
2265         * testsuite/std/format/functions/format.cc: Use signed char
2266         instead of int8_t.
2268 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
2270         PR libstdc++/113318
2271         * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
2272         (GLIBCXX_CHECK_TEXT_ENCODING): Define.
2273         * config.h.in: Regenerate.
2274         * configure: Regenerate.
2275         * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
2276         * include/Makefile.am: Add new headers.
2277         * include/Makefile.in: Regenerate.
2278         * include/bits/locale_classes.h (locale::encoding): Declare new
2279         member function.
2280         * include/bits/unicode.h (__charset_alias_match): New function.
2281         * include/bits/text_encoding-data.h: New file.
2282         * include/bits/version.def (text_encoding): Define.
2283         * include/bits/version.h: Regenerate.
2284         * include/std/text_encoding: New file.
2285         * src/Makefile.am: Add new subdirectory.
2286         * src/Makefile.in: Regenerate.
2287         * src/c++26/Makefile.am: New file.
2288         * src/c++26/Makefile.in: New file.
2289         * src/c++26/text_encoding.cc: New file.
2290         * src/experimental/Makefile.am: Include c++26 convenience
2291         library.
2292         * src/experimental/Makefile.in: Regenerate.
2293         * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
2294         printer.
2295         * scripts/gen_text_encoding_data.py: New file.
2296         * testsuite/22_locale/locale/encoding.cc: New test.
2297         * testsuite/ext/unicode/charset_alias_match.cc: New test.
2298         * testsuite/std/text_encoding/cons.cc: New test.
2299         * testsuite/std/text_encoding/members.cc: New test.
2300         * testsuite/std/text_encoding/requirements.cc: New test.
2302 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
2304         * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
2305         Do not use CTAD for _Utf32_view.
2306         (__format_width, __truncate): Do not use CTAD.
2307         (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
2308         (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
2310 2024-01-17  Patrick Palka  <ppalka@redhat.com>
2312         * include/std/ranges (views::_CartesianProduct::operator()):
2313         Adjust identity case as per P2540R1.
2314         * testsuite/std/ranges/cartesian_product/1.cc (test01):
2315         Adjust expected result of the identity case.
2317 2024-01-15  Patrick Palka  <ppalka@redhat.com>
2319         * include/std/variant (__detail::__variant::_Variadic_union):
2320         Add bool __trivially_destructible template parameter.
2321         (__detail::__variant::_Variadic_union::~_Variadic_union):
2322         Use __trivially_destructible in constraints instead.
2323         (__detail::__variant::_Variant_storage): Pass
2324         __trivially_destructible value to _Variadic_union.
2326 2024-01-15  Patrick Palka  <ppalka@redhat.com>
2328         * include/bits/stl_iterator.h (const_iterator): Define conversion
2329         operators as per P2836R1.
2330         * include/bits/version.def (ranges_as_const): Update value.
2331         * include/bits/version.h: Regenerate.
2332         * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
2333         * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
2334         value of __cpp_lib_ranges_as_const.
2335         * testsuite/std/ranges/version_c++23.cc: Likewise.
2337 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
2339         PR libstdc++/108822
2340         * include/std/tuple (__assignable, __is_nothrow_assignable):
2341         Move pre-C++20 definitions adjacent to their use.
2343 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
2345         PR testsuite/113366
2346         * include/std/format (basic_format_arg): Use __formattable
2347         variable template instead of __format::__formattable_with
2348         concept.
2350 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
2352         * src/c++20/tzdata.zi: Import new file from 2023d release.
2353         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
2354         Update expiry date for leap seconds list.
2356 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
2358         PR libstdc++/108822
2359         * include/std/tuple (tuple): Add checks for dangling references.
2360         Reimplement constraints and constant expressions using C++20
2361         features.
2362         * include/std/type_traits [C++20]
2363         (__is_implicitly_default_constructible_v): Define.
2364         (__is_implicitly_default_constructible): Use variable template.
2365         * testsuite/20_util/tuple/dangling_ref.cc: New test.
2367 2024-01-13  Patrick Palka  <ppalka@redhat.com>
2369         PR libstdc++/108827
2370         PR libstdc++/111327
2371         * include/bits/version.def (bind_back): Define.
2372         * include/bits/version.h: Regenerate.
2373         * include/std/functional (_Bind_back): Define for C++23.
2374         (bind_back): Likewise.
2375         * testsuite/20_util/function_objects/bind_back/1.cc: New test
2376         (adapted from corresponding bind_front test).
2377         * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
2379 2024-01-13  Patrick Palka  <ppalka@redhat.com>
2381         * include/std/functional (_Bind_front): Remove =default special
2382         member function declarations.
2383         (_Bind_front::operator()): Implement using C++23 deducing this
2384         when available.
2385         * testsuite/20_util/function_objects/bind_front/111327.cc:
2386         Adjust testcase to expect better errors in C++23 mode.
2388 2024-01-13  Patrick Palka  <ppalka@redhat.com>
2390         * include/std/ranges (views::__adaptor::operator|): Perform
2391         perfect forwarding of arguments.
2392         (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
2393         first argument to _Partial.
2394         (views::__adaptor::_Partial::_Partial): Likewise.  Add dummy
2395         first parameter.
2396         (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
2397         of arguments.
2398         (to): Pass dummy first argument to _Partial.
2400 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
2402         PR libstdc++/107466
2403         * include/bits/random.tcc (subtract_with_carry_engine::seed):
2404         Implement proposed resolution of LWG 4014.
2405         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2406         line number.
2407         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
2408         Check for expected result of 64-bit engine with seed that
2409         doesn't fit in 32-bits.
2411 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
2413         PR libstdc++/113320
2414         * include/std/format (__format::_Runtime_format_string): Add
2415         constructor and disable copy operations.
2416         (basic_format_string(_Runtime_format_string)): Add noexcept and
2417         take parameter by value not rvalue reference.
2418         (runtime_format): Add noexcept.
2419         * testsuite/std/format/runtime_format.cc: Check noexcept. Check
2420         that construction is only possible from prvalues, not xvalues.
2422 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
2424         PR libstdc++/105505
2425         * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
2426         default template arguments, as per P1951R1.
2427         * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
2429 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
2431         * include/std/format (__format::_Arg_store): Fix PR number in
2432         comment. Simplify preprocessor code.
2434 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
2436         * doc/xml/manual/evolution.xml: Fix spelling.
2437         * doc/html/manual/api.html: Regenerate.
2439 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
2441         * doc/xml/manual/evolution.xml: Document addition of
2442         libstdc++exp.a.
2443         * doc/html/*: Regenerate.
2445 2024-01-11  Marcus Haehnel  <marcus.haehnel@kernkonzept.com>
2447         * libsupc++/eh_unex_handler.cc: Adjust definition type to
2448         declaration.
2450 2024-01-11  Michael Levine  <mlevine55@bloomberg.net>
2452         * include/std/ranges (__glibcxx_want_ranges_iota): Remove
2453         duplicate definition.
2455 2024-01-11  François Dumont  <fdumont@gcc.gnu.org>
2457         PR libstdc++/112477
2458         * src/c++11/debug.cc
2459         (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
2460         sequence.
2461         (_Safe_iterator_base::_M_attach_single): Likewise.
2462         (_Safe_local_iterator_base::_M_attach): Likewise.
2463         (_Safe_local_iterator_base::_M_attach_single): Likewise.
2464         * testsuite/23_containers/map/debug/112477.cc: New test case.
2466 2024-01-11  Patrick Palka  <ppalka@redhat.com>
2468         * include/bits/move.h (__like_t): Define in C++23 mode.
2469         * include/std/ranges (views::__adaptor::Partial::operator()):
2470         Implement using C++23 deducing this when available.
2471         (views::__adaptor::_Pipe::operator()): Likewise.
2472         * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
2473         accept new "no match for call" errors issued in C++23 mode.
2474         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
2476 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
2478         * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
2479         Add printer for std::integral_constant.
2480         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
2482 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
2484         PR libstdc++/113258
2485         * libsupc++/new_opa.cc: Prefer to use posix_memalign if
2486         available.
2488 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
2490         * src/filesystem/ops-common.h (stat_type): Use using.
2492 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
2494         PR libstdc++/113250
2495         * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
2496         * src/filesystem/ops.cc (fs::equivalent): Likewise.
2497         * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
2498         error codes.
2499         * testsuite/experimental/filesystem/operations/equivalent.cc:
2500         Likewise.
2502 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
2504         * include/std/type_traits (is_compound): Do not use __not_.
2505         (is_compound_v): Use is_fundamental_v instead.
2507 2024-01-11  Patrick Palka  <ppalka@redhat.com>
2509         * include/bits/utility.h (_Nth_type): Use
2510         _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
2512 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
2514         * include/bits/unicode-data.h: Regenerate.
2515         * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
2516         by one error.
2517         (__incb_property): Add missing check for values before the
2518         first edge.
2519         (__is_extended_pictographic): Invert return values to fix
2520         copy&pasted logic.
2521         (_Grapheme_cluster_view::_Iterator): Remove second iterator
2522         member and find end of cluster lazily.
2523         * testsuite/ext/unicode/grapheme_view.cc: New test.
2524         * testsuite/ext/unicode/properties.cc: New test.
2525         * testsuite/ext/unicode/view.cc: New test.
2527 2024-01-09  Andreas Schwab  <schwab@linux-m68k.org>
2529         * scripts/extract_symvers.in: Require final colon to only match
2530         .dsynsym in the header of the dynamic symtab.
2532 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
2534         * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
2535         handling of string returned from std::format.
2536         (__formatter_chrono::_M_R_T): Likewise.
2538 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
2540         * include/bits/unicode.h (__null_sentinel): Remove.
2541         * testsuite/17_intro/names.cc: Add __null_sentinel.
2543 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
2545         * include/std/format (__format::_Runtime_format_string): Define
2546         new class template.
2547         (basic_format_string): Add non-consteval constructor for runtime
2548         format strings.
2549         (runtime_format): Define new function for C++26.
2550         * testsuite/std/format/runtime_format.cc: New test.
2552 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
2554         * include/bits/chrono_io.h (__formatter_chrono): Always use
2555         lvalue arguments to make_format_args.
2556         * include/std/format (make_format_args): Change parameter pack
2557         from forwarding references to lvalue references. Remove use of
2558         remove_reference_t which is now unnecessary.
2559         (format_to, formatted_size): Remove incorrect forwarding of
2560         arguments.
2561         * include/std/ostream (print): Remove forwarding of arguments.
2562         * include/std/print (print): Likewise.
2563         * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
2564         make_format_args.
2565         * testsuite/std/format/arguments/args.cc: Likewise.
2566         * testsuite/std/format/arguments/lwg3810.cc: Likewise.
2567         * testsuite/std/format/functions/format.cc: Likewise.
2568         * testsuite/std/format/functions/vformat_to.cc: Likewise.
2569         * testsuite/std/format/string.cc: Likewise.
2570         * testsuite/std/time/day/io.cc: Likewise.
2571         * testsuite/std/time/month/io.cc: Likewise.
2572         * testsuite/std/time/weekday/io.cc: Likewise.
2573         * testsuite/std/time/year/io.cc: Likewise.
2574         * testsuite/std/time/year_month_day/io.cc: Likewise.
2575         * testsuite/std/format/arguments/args_neg.cc: New test.
2577 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
2579         * include/Makefile.am: Add new headers.
2580         * include/Makefile.in: Regenerate.
2581         * include/bits/unicode.h: New file.
2582         * include/bits/unicode-data.h: New file.
2583         * include/std/format: Include <bits/unicode.h>.
2584         (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
2585         (_Spec::_M_fill): Change type to char32_t.
2586         (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
2587         instead of a single character.
2588         (__write_padded): Change __fill_char parameter to char32_t and
2589         encode it into the output.
2590         (__formatter_str::format): Use new __unicode::__field_width and
2591         __unicode::__truncate functions.
2592         * include/std/ostream: Adjust namespace qualification for
2593         __literal_encoding_is_utf8.
2594         * include/std/print: Likewise.
2595         * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
2596         * testsuite/ext/unicode/view.cc: New test.
2597         * testsuite/std/format/functions/format.cc: Add missing examples
2598         from the standard demonstrating alignment with non-ASCII
2599         characters. Add examples checking correct handling of extended
2600         grapheme clusters.
2602 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
2604         * include/bits/version.def (format_uchar): Define.
2605         * include/bits/version.h: Regenerate.
2606         * include/std/format (formatter<C, C>::format): Check for
2607         _Pres_c and call _M_format_character directly. Cast C to its
2608         unsigned equivalent for formatting as an integer.
2609         (formatter<char, wchar_t>::format): Likewise.
2610         (basic_format_arg(T&)): Store char arguments as unsigned char
2611         for formatting to a wide string.
2612         * testsuite/std/format/functions/format.cc: Adjust test. Check
2613         formatting of
2615 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
2617         PR libstdc++/112997
2618         * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
2619         parameter to void*.
2621 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
2623         * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
2625 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
2627         * include/std/type_traits (is_trivially_destructible_v): Use
2628         built-in directly when concepts are supported.
2629         * testsuite/20_util/is_trivially_destructible/value_v.cc: New
2630         test.
2632 2024-01-06  Gwenole Beauchesne  <gb.devel@gmail.com>
2634         * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
2635         nonnull arguments to strtoimax() and wcstoimax() functions.
2637 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
2639         * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
2640         size and check for overflows in arithmetic.
2641         (path::operator/=(const path&)): Remove redundant exponential
2642         growth calculation.
2644 2024-01-05  Martin Küttler  <martin.kuettler@kernkonzept.com>
2646         * src/c++17/fs_path.cc (path::_List::reserve): Avoid
2647         floating-point arithmetic.
2649 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
2651         PR libstdc++/113241
2652         * include/std/type_traits (is_convertible_v): Guard use of
2653         built-in with preprocessor check.
2655 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
2657         PR libstdc++/113200
2658         * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
2659         __builtin_constant_p to check for unrelated pointers that cannot
2660         be compared during constant evaluation.
2661         * testsuite/21_strings/char_traits/requirements/113200.cc: New
2662         test.
2664 2024-01-05  Cassio Neri  <cassio.neri@gmail.com>
2666         * include/std/chrono: Fix + and - for months and weekdays.
2667         * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
2668         * testsuite/std/time/month/2.cc: New test for extreme values.
2669         * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
2670         * testsuite/std/time/weekday/2.cc: New test for extreme values.
2672 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
2674         PR libstdc++/113099
2675         * include/bits/locale_classes.tcc (__try_use_facet): Use
2676         if-constexpr for C++11 and up.
2678 2024-01-05  Ken Matsui  <kmatsui@gcc.gnu.org>
2680         * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
2682 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
2684         * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
2685         reported by Will Hawkins <hawkinsw@obs.cr>.
2687 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
2689         * include/std/generator (_Stateless_alloc): Rename typename _A
2690         to _All.
2692 2024-01-03  Patrick Palka  <ppalka@redhat.com>
2694         PR testsuite/113175
2695         * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
2696         'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
2697         (test03): Likewise.
2700 Copyright (C) 2024 Free Software Foundation, Inc.
2702 Copying and distribution of this file, with or without modification,
2703 are permitted in any medium without royalty provided the copyright
2704 notice and this notice are preserved.