libstdc++: Make std::vector<bool>::reference constructor private [PR115098]
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob851827d014f42c564dd85cf188eca103ff944440
1 2024-08-22  Patrick Palka  <ppalka@redhat.com>
3         * testsuite/25_algorithms/contains/1.cc: Verify value of
4         __cpp_lib_ranges_contains.
5         * testsuite/25_algorithms/find_last/1.cc: Verify value of
6         __cpp_lib_ranges_find_last.
7         * testsuite/26_numerics/iota/2.cc: Verify value of
8         __cpp_lib_ranges_iota.
10 2024-08-22  Patrick Palka  <ppalka@redhat.com>
12         * include/bits/iterator_concepts.h (__detail::__projected): Define
13         an optimized partial specialization for when the projection is
14         std::identity.
15         * testsuite/24_iterators/indirect_callable/projected.cc: Verify the
16         optimization.
18 2024-08-22  Patrick Palka  <ppalka@redhat.com>
20         * include/bits/iterator_concepts.h (indirectly_unary_invocable):
21         Relax as per P2997R1.
22         (indirectly_regular_unary_invocable): Likewise.
23         (indirect_unary_predicate): Likewise.
24         (indirect_binary_predicate): Likewise.
25         (indirect_equivalence_relation): Likewise.
26         (indirect_strict_weak_order): Likewise.
27         * include/bits/version.def (ranges): Update value for C++26.
28         * include/bits/version.h: Regenerate.
29         * testsuite/24_iterators/indirect_callable/p2997r1.cc: New test.
30         * testsuite/std/ranges/version_c++23.cc: Remove.
31         * testsuite/std/ranges/headers/ranges/synopsis.cc: Refine the
32         __cpp_lib_ranges checks.
34 2024-08-22  Patrick Palka  <ppalka@redhat.com>
36         * include/bits/iterator_concepts.h (__detail::__indirect_value):
37         Define.
38         (__indirect_value_t): Define as per P2609R3.
39         (iter_common_reference_t): Adjust as per P2609R3.
40         (indirectly_unary_invocable): Likewise.
41         (indirectly_regular_unary_invocable): Likewise.
42         (indirect_unary_predicate): Likewise.
43         (indirect_binary_predicate): Likewise.
44         (indirect_equivalence_relation): Likewise.
45         (indirect_strict_weak_order): Likewise.
46         (__detail::__projected::__type): Define member aliases
47         __projected_Iter and __projected_Proj providing the
48         template arguments of the current specialization.
49         * include/bits/version.def (ranges): Update value.
50         * include/bits/version.h: Regenerate.
51         * testsuite/24_iterators/indirect_callable/p2609r3.cc: New test.
52         * testsuite/std/ranges/version_c++23.cc: Update expected value
53         of __cpp_lib_ranges macro.
55 2024-08-21  Jonathan Wakely  <jwakely@redhat.com>
57         PR tree-optimization/102958
58         * include/bits/char_traits.h (char_traits<char8_t>::length): Use
59         strlen.
61 2024-08-21  Jonathan Wakely  <jwakely@redhat.com>
63         PR libstdc++/114862
64         * src/c++98/locale_facets.cc (__num_base::_S_format_float):
65         Check uppercase flag for fixed format.
66         * testsuite/22_locale/num_put/put/char/lwg4084.cc: New test.
68 2024-08-21  Jonathan Wakely  <jwakely@redhat.com>
70         PR libstdc++/116381
71         * include/std/variant (variant): Fix conditions for
72         static_assert to match the spec.
73         * testsuite/20_util/variant/types_neg.cc: New test.
75 2024-08-20  Jonathan Wakely  <jwakely@redhat.com>
77         * include/std/optional: Remove redundant redeclaration.
79 2024-08-20  Jonathan Wakely  <jwakely@redhat.com>
81         * include/std/text_encoding: Fix indentation.
83 2024-08-20  Jonathan Wakely  <jwakely@redhat.com>
85         PR libstdc++/115744
86         * testsuite/18_support/headers/new/synopsis.cc [C++26]: Add
87         constexpr to placement operator new and operator new[].
89 2024-08-18  Gerald Pfeifer  <gerald@pfeifer.com>
91         * doc/xml/manual/prerequisites.xml: Remove note from the
92         GCC 4.0.1 days.
93         * doc/html/manual/setup.html: Regenerate.
95 2024-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
97         * doc/xml/manual/abi.xml: Update reference to
98         gcc.gnu.org/onlinedocs.
99         * doc/xml/manual/concurrency_extensions.xml (interface): Ditto.
100         * doc/xml/manual/extensions.xml: Ditto.
101         * doc/xml/manual/parallel_mode.xml: Ditto.
102         * doc/xml/manual/shared_ptr.xml: Ditto.
103         * doc/xml/manual/using_exceptions.xml: Ditto. And change GNU GCC
104         to GCC.
105         * doc/html/manual/abi.html: Regenerate.
106         * doc/html/manual/ext_concurrency_impl.html: Ditto.
107         * doc/html/manual/ext_demangling.html: Ditto.
108         * doc/html/manual/memory.html: Ditto.
109         * doc/html/manual/parallel_mode_design.html: Ditto.
110         * doc/html/manual/parallel_mode_using.html: Ditto.
111         * doc/html/manual/using_exceptions.html: Ditto.
113 2024-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
115         * doc/xml/manual/prerequisites.xml: Tweak two links to
116         installation docs. Fix grammar.
117         * doc/html/manual/setup.html: Regenerate.
119 2024-08-16  Hans-Peter Nilsson  <hp@axis.com>
121         PR libstdc++/116362
122         * configure.ac: Check newlib configuration whether iconv is enabled.
123         * configure: Regenerate.
125 2024-08-16  Hans-Peter Nilsson  <hp@axis.com>
127         * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune
128         uncapitalized "in function" warning from linker.
130 2024-08-08  Jakub Jelinek  <jakub@redhat.com>
132         PR c++/115744
133         * libsupc++/new (__glibcxx_want_constexpr_new): Define before
134         including bits/version.h.
135         (_GLIBCXX_PLACEMENT_CONSTEXPR): Define.
136         (operator new, operator new[]): Use it for placement new instead
137         of inline.
138         * include/bits/version.def (constexpr_new): New FTM.
139         * include/bits/version.h: Regenerate.
141 2024-08-06  Jonathan Wakely  <jwakely@redhat.com>
143         PR libstdc++/116247
144         * include/bits/fs_path.h: Use __UINTPTR_TYPE__ instead of
145         uintptr_t.
146         * include/bits/shared_ptr_atomic.h: Likewise.
147         * include/ext/pointer.h: Include <stdint.h>.
149 2024-08-03  Patrick Palka  <ppalka@redhat.com>
151         * include/bits/move.h (__like_impl): New metafunction.
152         (__like_t): Redefine in terms of __like_impl.
153         (forward_like): Redefine in terms of __like_t.
154         * testsuite/20_util/forward_like/2_neg.cc: Don't expect
155         error outside the immediate context anymore.
157 2024-08-02  Jonathan Wakely  <jwakely@redhat.com>
159         * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Include
160         <cstdint>.
162 2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
164         * include/bits/utility.h (__is_in_place_type): Remove.
165         * include/std/variant (__is_in_place_tag): Remove.
167 2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
169         * include/bits/align.h (align, assume_aligned): Use
170         __UINTPTR_TYPE__ instead of uintptr_t. Do not include
171         <stdint.h>.
172         * include/bits/atomic_base.h (__atomic_ref): Likewise.
173         * include/bits/atomic_wait.h (__waiter_pool_base::_S_for):
174         Likewise.
175         * include/std/atomic: Include <cstdint>.
177 2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
179         * include/bits/atomic_base.h (__atomic_impl::compare_exchange_weak):
180         Remove unused parameter.
181         (__atomic_impl::compare_exchange_strong): Likewise.
183 2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
185         PR libstdc++/113807
186         * include/std/bitset (bitset::_M_is_equal()): Use memcmp to
187         optimize operator==.
189 2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
191         * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
192         Use ARGS to limit number of iterations for simulators.
194 2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
196         PR libstdc++/113841
197         * include/bits/basic_string.h (basic_string::basic_string()):
198         Constrain so that it's only present if the allocator is default
199         constructible.
200         * include/bits/cow_string.h (basic_string::basic_string()):
201         Likewise.
202         * testsuite/21_strings/basic_string/cons/113841.cc: New test.
204 2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
206         PR libstdc++/99942
207         * include/bits/cow_string.h (data()): Change to noexcept(false).
209 2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
211         * testsuite/23_containers/map/operators/1_neg.cc (test01): Remove test variable
212         and use 'no match' dg-error patter.
213         * testsuite/23_containers/set/operators/1_neg.cc (test01): Likewise.
215 2024-07-31  François Dumont  <frs.dumont@gmail.com>
217         * testsuite/23_containers/map/operators/1_neg.cc (test01): Add test variable
218         declaration.
219         * testsuite/23_containers/set/operators/1_neg.cc (test01): Likewise.
221 2024-07-31  Jonathan Wakely  <jwakely@redhat.com>
223         * src/c++20/format.cc [!_GLIBCXX_HAS_GTHREADS] (mutex): Define
224         dummy mutex type.
225         * testsuite/std/time/format_localized.cc: Use loop variable
226         instead of creating the same locale on every iteration.
228 2024-07-31  Sam James  <sam@gentoo.org>
230         * testsuite/28_regex/traits/char/translate.cc: Drop bogus 'dg_do run'.
232 2024-07-31  Jonathan Wakely  <jwakely@redhat.com>
234         * src/c++11/system_error.cc (strerror_string): Handle
235         non-conforming NULL return from strerror.
237 2024-07-31  Jonathan Wakely  <jwakely@redhat.com>
239         * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
240         Only append "@euro" to ".ISO8859-15" locales for Glibc.
242 2024-07-31  Jonathan Wakely  <jwakely@redhat.com>
244         * include/bits/version.def (format): Update value for C++26.
245         * include/bits/version.h: Regenerate.
246         * include/std/format (runtime_format, wruntime_format): Check
247         __cpp_lib_format instead of __cplusplus.
248         * testsuite/std/format/functions/format.cc: Update expected
249         value of macro for C++26 mode.
251 2024-07-31  Jonathan Wakely  <jwakely@redhat.com>
253         PR libstdc++/110356
254         * include/bits/c++config (_GLIBCXX26_DEPRECATED): Define.
255         (_GLIBCXX26_DEPRECATED_SUGGEST): Define.
256         * include/bits/version.def (format): Update for C++26.
257         * include/bits/version.h: Regenerate.
258         * include/std/format (basic_format_arg::visit): New member
259         functions.
260         (visit_format_arg): Add deprecated attribute.
261         * testsuite/std/format/arguments/args.cc: Expect deprecated
262         warnings. Check member visit.
263         * testsuite/std/format/functions/format.cc: Update expected
264         value for __cpp_lib_format macro.
265         * testsuite/std/format/parse_ctx.cc: Add dg-warning for
266         deprecation.
268 2024-07-31  Jonathan Wakely  <jwakely@redhat.com>
270         PR libstdc++/110356
271         * include/bits/version.def (variant): Update for C++26.
272         * include/bits/version.h: Regenerate.
273         * include/std/variant (variant::visit): New member functions.
274         * testsuite/20_util/variant/visit.cc: Check second alternative.
275         * testsuite/20_util/variant/visit_member.cc: New test.
277 2024-07-31  Jonathan Wakely  <jwakely@redhat.com>
279         PR libstdc++/115776
280         * include/bits/version.def (format): Update for C++26.
281         * include/bits/version.h: Regenerate.
282         * include/std/format (basic_format_parse_context): Remove
283         default argument from constructor and split into two
284         constructors. Make the constructor taking size_t private for
285         C++26 and later.
286         (basic_format_parse_context::check_dynamic_spec): New member
287         function template.
288         (basic_format_parse_context::check_dynamic_spec_integral): New
289         member function.
290         (basic_format_parse_context::check_dynamic_spec_string):
291         Likewise.
292         (__format::_Spec::_S_parse_width_or_precision): Use
293         check_dynamic_spec_integral.
294         (__format::__to_arg_t_enum): New helper function.
295         (basic_format_arg):  Declare __to_arg_t_enum as friend.
296         (__format::_Scanner): Define and use a derived parse context
297         type.
298         (__format::_Checking_scanner): Make arg types available to parse
299         context.
300         * testsuite/std/format/functions/format.cc: Check for new values
301         of __cpp_lib_format macro.
302         * testsuite/std/format/parse_ctx.cc: Check all members of
303         basic_format_parse_context.
304         * testsuite/std/format/parse_ctx_neg.cc: New test.
305         * testsuite/std/format/string.cc: Add more checks for dynamic
306         width and precision args.
308 2024-07-31  Jonathan Wakely  <jwakely@redhat.com>
310         * include/bits/version.def (format): Update value for P2510R3.
311         * include/bits/version.h: Regenerate.
312         * include/std/format (_GLIBCXX_P2518R3): Remove misspelled macro
313         and check __glibcxx_format instead.
314         * testsuite/std/format/functions/format.cc: Check value of the
315         __cpp_lib_format macro for formatting pointers support.
316         * testsuite/std/format/parse_ctx.cc: Likewise.
318 2024-07-31  Jonathan Wakely  <jwakely@redhat.com>
320         PR libstdc++/109162
321         * acinclude.m4 (libtool_VERSION): Update to 6:34:0.
322         * config/abi/pre/gnu.ver: Disambiguate old patters. Add new
323         GLIBCXX_3.4.34 symbol version and new exports.
324         * configure: Regenerate.
325         * include/bits/chrono_io.h (_ChronoSpec::_M_locale_specific):
326         Add new accessor functions to use a reserved bit in _Spec.
327         (__formatter_chrono::_M_parse): Use _M_locale_specific(true)
328         when chrono-specs contains locale-dependent conversion
329         specifiers.
330         (__formatter_chrono::_M_format): Open iconv descriptor if
331         conversion to UTF-8 will be needed.
332         (__formatter_chrono::_M_write): New function to write a
333         localized string with possible character conversion.
334         (__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B)
335         (__formatter_chrono::_M_p, __formatter_chrono::_M_r)
336         (__formatter_chrono::_M_x, __formatter_chrono::_M_X)
337         (__formatter_chrono::_M_locale_fmt): Use _M_write.
338         * include/bits/version.def (format): Update value.
339         * include/bits/version.h: Regenerate.
340         * include/std/format (_GLIBCXX_P2518R3): Check feature test
341         macro instead of __cplusplus.
342         (basic_format_context): Declare __formatter_chrono as friend.
343         * src/c++20/Makefile.am: Add new file.
344         * src/c++20/Makefile.in: Regenerate.
345         * src/c++20/format.cc: New file.
346         * testsuite/std/time/format_localized.cc: New test.
347         * testsuite/util/testsuite_abi.cc: Add new symbol version.
349 2024-07-30  Jonathan Wakely  <jwakely@redhat.com>
351         * include/bits/chrono_io.h (__local_time_fmt_for): New alias
352         template.
353         (formatter<zoned_time<D, P>>): Use __local_time_fmt_for.
354         * testsuite/std/time/zoned_time/io.cc: Check zoned_time<minutes>
355         can be formatted.
357 2024-07-30  Jonathan Wakely  <jwakely@redhat.com>
359         * include/bits/chrono_io.h (__local_fmt_t): Remove unused
360         declaration.
361         (__formatter_chrono::_M_format_to_ostream): Add explicit
362         handling for specializations of __local_time_fmt, including the
363         time zone abbreviation in the output if __is_neg is true.
364         (formatter<chrono::tai_time<D>>::format): Add comment.
365         (formatter<chrono::gps_time<D>>::format): Likewise.
366         (formatter<chrono::__detail::__local_time_fmt::format): Call
367         _M_format with true for the __is_neg flag.
368         * testsuite/std/time/clock/gps/io.cc: Remove unused variable.
369         * testsuite/std/time/clock/local/io.cc: Fix test error that
370         checked tai_time instead of local_time. Add tests for
371         local-time-format-t formatting.
372         * testsuite/std/time/clock/system/io.cc: Check empty
373         chrono-specs.
374         * testsuite/std/time/clock/tai/io.cc: Likewise.
375         * testsuite/std/time/zoned_time/io.cc: Likewise.
377 2024-07-30  Jonathan Wakely  <jwakely@redhat.com>
379         * include/std/expected (expected(U&&), operator=(U&&))
380         (value_or): Use remove_cv_t on default template argument, as per
381         LWG 3886.
382         * include/std/optional (optional(U&&), operator=(U&&))
383         (value_or): Likewise.
384         * testsuite/20_util/expected/lwg3886.cc: New test.
385         * testsuite/20_util/optional/cons/lwg3886.cc: New test.
387 2024-07-30  Jonathan Wakely  <jwakely@redhat.com>
389         * src/c++17/fs_ops.cc: Fix file name in comment.
391 2024-07-30  Jonathan Wakely  <jwakely@redhat.com>
393         * src/c++17/fs_ops.cc (auto_win_file_handle): Change constructor
394         parameter from const path& to const wchar_t*.
395         (fs::equiv_files): New function.
396         (fs::equivalent): Use equiv_files.
397         * src/filesystem/ops-common.h (fs::equiv_files): Declare.
398         (do_copy_file): Use equiv_files.
399         * src/filesystem/ops.cc (fs::equiv_files): Define.
400         (fs::copy, fs::equivalent): Use equiv_files.
401         * testsuite/27_io/filesystem/operations/copy.cc: Test
402         overwriting directory contents recursively.
403         * testsuite/27_io/filesystem/operations/copy_file.cc: Test
404         overwriting existing files.
406 2024-07-30  Lennox Shou Hao Ho  <lennoxhoe@gmail.com>
408         PR libstdc++/113663
409         * src/c++17/fs_ops.cc (fs::equivalent): Moved helper class
410         auto_handle to anonymous namespace as auto_win_file_handle.
411         (fs::hard_link_count): Changed Windows implementation to use
412         information provided by GetFileInformationByHandle which is more
413         reliable.
414         * testsuite/27_io/filesystem/operations/hard_link_count.cc: New
415         test.
417 2024-07-29  Thomas Schwinge  <tschwinge@baylibre.com>
419         * testsuite/lib/libstdc++.exp (file-io-diff): Polish.
421 2024-07-28  Sam James  <sam@gentoo.org>
423         PR libstdc++/110572
424         * testsuite/18_support/type_info/110572.cc: Fix dg-do directive order.
426 2024-07-27  Jonathan Wakely  <jwakely@redhat.com>
428         * include/std/charconv (__to_chars_16, __to_chars_10)
429         (__to_chars_8, __to_chars_2, __to_chars): Cast ptrdiff_t to
430         size_t for comparison.
431         (__to_chars_i): Check for first >= last instead of first == last
432         for initial sanity check.
434 2024-07-27  Jonathan Wakely  <jwakely@redhat.com>
436         * include/bits/std_function.h: Add comment about LWG 3617 being
437         supported.
439 2024-07-27  Jonathan Wakely  <jwakely@redhat.com>
441         * include/bits/stl_algobase.h (__find_if): Remove overloads for
442         dispatching on iterator_category. Do not unroll loop manually.
443         * include/bits/stl_algo.h (__find_if_not): Remove
444         iterator_category argument from __find_if call.
446 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
448         * include/std/expected (expected::value): Add assertions for LWG
449         3843 requirements.
450         (expected<cv void, E>::value): Add assertions for LWG 3940
451         requirements.
453 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
455         * include/std/format (basic_format_args): Remove default
456         constructor, as per LWG 4106.
457         * testsuite/std/format/arguments/args.cc: Check it isn't default
458         constructible.
460 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
462         * include/bits/utility.h (_Swallow_assign): Make assignment
463         constexpr for C++11 as well, and add noexcept.
464         * include/std/tuple (_Swallow_assign, ignore): Move to
465         bits/utility.h.
466         * testsuite/20_util/headers/utility/ignore.cc: New test.
468 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
470         * include/std/optional: Reorder parameters in comparison
471         operators as per LWG 2945.
473 2024-07-25  Patrick Palka  <ppalka@redhat.com>
475         PR libstdc++/116038
476         * include/std/functional (_Bind_front::operator()): Use __like_t
477         instead of std::forward when forwarding __self.
478         (_Bind_back::operator()): Likewise.
479         * include/std/ranges (_Partial::operator()): Likewise.
480         (_Pipe::operator()): Likewise.
481         * testsuite/20_util/function_objects/bind_back/116038.cc: New test.
482         * testsuite/20_util/function_objects/bind_front/116038.cc: New test.
483         * testsuite/std/ranges/adaptors/116038.cc: New test.
485 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
487         * include/std/expected (bad_expected_access<void>): Add noexcept
488         to special member functions, as per LWG 4031.
489         * testsuite/20_util/expected/bad.cc: Check for nothrow copy and
490         move members.
492 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
494         * include/std/optional (optional): Use C++20 features to
495         simplify overload sets for constructors and assignment
496         operators.
498 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
500         * include/std/optional (optional): Constrain constructors to
501         prevent problematic bool conversions, as per LWG 3836.
502         * testsuite/20_util/optional/cons/lwg3836.cc: New test.
504 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
506         * include/std/expected (expected): Constrain constructors to
507         prevent problematic bool conversions, as per LWG 3836.
508         * testsuite/20_util/expected/lwg3836.cc: New test.
510 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
512         * include/std/optional (_Optional_payload_base::_Storage)
513         [C++20]: Define constrained non-trivial destructor.
514         (_Optional_payload_base::_Storage<U, false>) [C++20]: Do not
515         define partial specialization when primary template has
516         constrained destructor.
517         (_Optional_base) [C++20]: Define constrained trivial copy and
518         move cons and move constructors. Define payload accessors here
519         instead of inheriting them from _Optional_base_impl.
520         (_Optional_base_impl, _Optional_base<T, false, true>)
521         (_Optional_base<T, true, false>, _Optional_base<T, true, true>)
522         [C++20]: Do not define.
524 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
526         * include/std/optional (optional): Add using-declaraction for
527         _Base::_M_get and declare optional<U> as friend.
528         (optional(const optional<U>&)): Use
529         _M_get instead of operator*.
530         (optional(optional<U>&&)): Likewise.
531         (operator=(const optional<U>&)): Likewise.
532         (operator=(optional<U>&&)): Likewise.
533         (and_then, tansform): Likewise.
535 2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
537         * include/std/optional (_Optional_base_impl::_M_get()): Move
538         assertions to ...
539         (optional::operator->, optional::operator*): ... here.
541 2024-07-25  Andrew Pinski  <quic_apinski@quicinc.com>
543         * testsuite/lib/libstdc++.exp (v3_target_compile): Call
544         string trim on v3_target_compile before calling split.
546 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
548         PR libstdc++/116070
549         * include/std/istream: Check feature test macro before using
550         is_class_v and is_same_v.
551         * include/std/ostream: Likewise.
553 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
555         PR libstdc++/116070
556         * include/bits/stl_bvector.h: Check feature test macro before
557         using is_default_constructible_v.
559 2024-07-24  Michael Levine  <mlevine55@bloomberg.net>
561         * include/bits/ranges_algobase.h: Remove duplicate include of
562         <bits/stl_algobase.h>.
564 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
566         PR libstdc++/12048
567         * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc: Move to...
568         * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-1.cc: ...here.
569         * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc: Move to...
570         * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-2.cc: ...here.
571         * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc: Move to...
572         * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-3.cc: ...here.
573         * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc: Move to...
574         * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-4.cc: ...here.
576 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
578         * testsuite/lib/libstdc++.exp (libstdc++_init): Do not copy all
579         data files into test directory.
581 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
583         * testsuite/20_util/hash/chi2_q_document_words.cc: Use
584         dg-additional-files for input text.
585         * testsuite/performance/ext/pb_ds/all_text_find.cc: Likewise.
586         * testsuite/performance/ext/pb_ds/multimap_text_find.hpp:
587         Likewise.
588         * testsuite/performance/ext/pb_ds/multimap_text_insert.hpp:
589         Likewise.
590         * testsuite/performance/ext/pb_ds/multimap_text_insert_mem.hpp:
591         Likewise.
592         * testsuite/performance/ext/pb_ds/priority_queue_text_join.cc:
593         Likewise.
594         * testsuite/performance/ext/pb_ds/priority_queue_text_modify.hpp: Likewise.
595         * testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem.cc: Likewise.
596         * testsuite/performance/ext/pb_ds/priority_queue_text_push.cc:
597         Likewise.
598         * testsuite/performance/ext/pb_ds/priority_queue_text_push_pop.cc: Likewise.
599         * testsuite/performance/ext/pb_ds/tree_text_insert.cc: Likewise.
600         * testsuite/performance/ext/pb_ds/tree_text_lor_find.cc:
601         Likewise.
603 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
605         * testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc:
606         Use dg-additional-files.
607         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
608         Likewise.
609         * testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc:
610         Likewise.
611         * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
612         Likewise.
613         * testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc:
614         Likewise.
615         * testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc:
616         Likewise.
617         * testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc:
618         Likewise.
619         * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
620         Likewise.
622 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
624         * testsuite/27_io/basic_filebuf/close/char/1.cc: Remove
625         @require@ and @diff@. Use dg-final file-io-diff action.
626         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
627         Likewise.
628         * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
629         Likewise.
630         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
631         * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
632         * testsuite/27_io/basic_istream/ignore/char/3.cc: Likewise.
633         * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
634         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
635         * testsuite/27_io/basic_istream/peek/wchar_t/6414.cc: Likewise.
636         * testsuite/27_io/basic_istream/seekg/char/fstream.cc: Likewise.
637         * testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc:
638         Likewise.
639         * testsuite/27_io/basic_istream/tellg/char/fstream.cc: Likewise.
640         * testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc:
641         Likewise.
642         * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
643         * testsuite/27_io/basic_ostream/inserters_other/char/1.cc:
644         Likewise.
645         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
646         Likewise.
647         * testsuite/27_io/ios_base/sync_with_stdio/1.cc: Likewise.
648         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc:
649         Likewise. Check file positions.
650         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc:
651         Likewise.
652         * testsuite/lib/libstdc++.exp (file-io-diff): New proc.
654 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
656         * testsuite/27_io/basic_filebuf/imbue/char/2.cc: Use
657         dg-additional-files.
658         * testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise.
659         * testsuite/27_io/basic_filebuf/open/char/path.cc: Likewise.
660         * testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc:
661         Likewise.
662         * testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc: Likewise.
663         * testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc: Likewise.
664         * testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc: Likewise.
665         * testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc: Likewise.
666         * testsuite/27_io/basic_filebuf/setbuf/char/1.cc: Likewise.
667         * testsuite/27_io/basic_filebuf/sgetn/char/3.cc: Likewise.
668         * testsuite/27_io/basic_filebuf/underflow/10096.cc: Likewise.
669         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
670         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
671         * testsuite/27_io/basic_ifstream/assign/1.cc: Likewise.
672         * testsuite/27_io/basic_ifstream/cons/move.cc: Likewise.
673         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
674         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
675         * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
676         * testsuite/27_io/objects/char/10.cc: Likewise.
677         * testsuite/27_io/objects/char/12048-1.cc: Likewise.
678         * testsuite/27_io/objects/char/12048-2.cc: Likewise.
679         * testsuite/27_io/objects/char/12048-3.cc: Likewise.
680         * testsuite/27_io/objects/char/12048-4.cc: Likewise.
681         * testsuite/27_io/objects/char/12048-5.cc: Likewise.
682         * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
683         * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
684         * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
685         * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
686         * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
687         * testsuite/ext/stdio_sync_filebuf/char/12048-1.cc: Likewise.
688         * testsuite/ext/stdio_sync_filebuf/char/12048-2.cc: Likewise.
689         * testsuite/ext/stdio_sync_filebuf/char/12048-3.cc: Likewise.
690         * testsuite/ext/stdio_sync_filebuf/char/12048-4.cc: Likewise.
691         * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc: Likewise.
692         * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc: Likewise.
693         * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc: Likewise.
694         * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc: Likewise.
696 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
698         * testsuite/27_io/basic_filebuf/close/char/2.cc: Remove
699         @require@ and @diff@ markup. Use dg-additional-files. Remove
700         unused variable.
701         * testsuite/27_io/basic_filebuf/close/char/3.cc: Remove
702         @require@ and @diff@ markup. Use dg-additional-files.
703         * testsuite/27_io/basic_filebuf/close/char/4.cc: Likewise.
704         * testsuite/27_io/basic_filebuf/close/char/5.cc: Likewise.
705         * testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Likewise.
706         * testsuite/27_io/basic_filebuf/is_open/char/1.cc: Likewise.
707         * testsuite/27_io/basic_filebuf/open/char/1.cc: Likewise.
708         * testsuite/27_io/basic_filebuf/open/char/2.cc: Likewise.
709         * testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: Likewise.
710         * testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Likewise.
711         * testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: Likewise.
712         * testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: Likewise.
713         * testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Likewise.
714         * testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Likewise.
715         * testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Likewise.
716         * testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Likewise.
717         * testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Likewise.
718         * testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Likewise.
719         * testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Likewise.
720         * testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Likewise.
721         * testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: Likewise.
722         * testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Likewise.
723         * testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: Likewise.
724         * testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: Likewise.
725         * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: Likewise.
726         * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Likewise.
727         * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Likewise.
728         * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Likewise.
729         * testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: Likewise.
730         * testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Likewise.
731         * testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: Likewise.
732         * testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: Likewise.
733         * testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: Likewise.
734         * testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc:
735         Likewise.
736         * testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc:
737         Likewise.
738         * testsuite/27_io/basic_filebuf/sputc/char/1-in.cc: Likewise.
739         * testsuite/27_io/basic_filebuf/sputc/char/2-in.cc: Likewise.
740         * testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: Likewise.
741         * testsuite/27_io/basic_filebuf/sputn/char/1-in.cc: Likewise.
742         * testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Likewise.
743         Remove unused variable.
744         * testsuite/27_io/basic_filebuf/sputn/char/2-in.cc: Remove
745         @require@ and @diff@ markup. Use dg-additional-files.
746         * testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc: Likewise.
747         * testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc: Likewise.
748         * testsuite/27_io/basic_ifstream/cons/char/1.cc: Likewise.
749         * testsuite/27_io/basic_ifstream/open/char/1.cc: Likewise.
750         * testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc: Likewise.
751         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
752         Likewise.
753         * testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc:
754         Likewise.
755         * testsuite/27_io/basic_istream/seekg/char/sstream.cc: Likewise.
756         * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc:
757         Likewise.
758         * testsuite/27_io/basic_istream/tellg/char/1.cc: Likewise.
759         * testsuite/27_io/basic_istream/tellg/char/sstream.cc: Likewise.
760         * testsuite/27_io/basic_istream/tellg/wchar_t/1.cc: Likewise.
761         * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc:
762         Likewise.
763         * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
764         * testsuite/lib/dg-options.exp (dg-additional-files): Append to
765         v3_additional_files instead of replacing.
766         * testsuite/lib/libstdc++.exp (v3_target_compile): Reset
767         v3_additional_files after copying files.
769 2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
771         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Remove
772         @require@ and @diff@ comments.
773         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
774         * testsuite/27_io/basic_filebuf/open/char/3.cc: Likewise.
775         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
776         * testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc: Likewise.
777         * testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc: Likewise.
778         * testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: Likewise.
779         * testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc: Likewise.
780         * testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc: Likewise.
781         * testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc: Likewise.
782         * testsuite/27_io/basic_filebuf/snextc/char/2-out.cc: Likewise.
783         * testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc:
784         Likewise.
785         * testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc:
786         Likewise.
787         * testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc:
788         Likewise.
789         * testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc:
790         Likewise.
791         * testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: Likewise.
792         * testsuite/27_io/basic_filebuf/sputc/char/2-out.cc: Likewise.
793         * testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: Likewise.
794         * testsuite/27_io/basic_filebuf/sputn/char/2-out.cc: Likewise.
795         * testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc: Likewise.
796         * testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc: Likewise.
797         * testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc: Likewise.
798         * testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc: Likewise.
799         * testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: Likewise.
800         Remove unused variable.
801         * testsuite/27_io/basic_filebuf/sputn/char/2-io.cc: Likewise.
802         * testsuite/27_io/basic_ofstream/cons/char/1.cc: Remove
803         @require@ and @diff@ comments. Remove unused variables.
804         * testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc: Remove
805         * testsuite/27_io/ios_base/sync_with_stdio/2.cc: Likewise.
807 2024-07-23  Jonathan Wakely  <jwakely@redhat.com>
809         * src/c++23/print.cc (__open_terminal): Use [[maybe_unused]] on
810         parameter.
812 2024-07-23  Detlef Vollmann  <dv@vollmann.ch>
814         PR libstdc++/115482
815         * src/c++23/print.cc (__open_terminal) [__AVR__]: Do not use
816         isatty.
818 2024-07-18  Patrick Palka  <ppalka@redhat.com>
820         * include/experimental/socket
821         (basic_socket_iostream::basic_socket_iostream): Fix typo.
822         * include/tr2/dynamic_bitset
823         (__dynamic_bitset_base::_M_is_proper_subset_of): Likewise.
825 2024-07-12  Alexandre Oliva  <oliva@adacore.com>
827         * testsuite/decimal/binary-arith.cc: Require dfprt.
828         * testsuite/decimal/comparison.cc: Likewise.
829         * testsuite/decimal/compound-assignment.cc: Likewise.
830         * testsuite/decimal/compound-assignment-memfunc.cc: Likewise.
831         * testsuite/decimal/make-decimal.cc: Likewise.
832         * testsuite/decimal/pr54036-1.cc: Likewise.
833         * testsuite/decimal/pr54036-2.cc: Likewise.
834         * testsuite/decimal/pr54036-3.cc: Likewise.
835         * testsuite/decimal/unary-arith.cc: Likewise.
837 2024-07-11  Jonathan Wakely  <jwakely@redhat.com>
839         * testsuite/29_atomics/atomic_ref/bool.cc: New test.
841 2024-07-11  Damien Lebrun-Grandie  <dalg24@gmail.com>
843         * include/bits/atomic_base.h (__atomic_ref): Do not use integral
844         specialization for bool.
846 2024-07-11  Gerald Pfeifer  <gerald@pfeifer.com>
848         * doc/xml/manual/using.xml: Switch gcc.gnu.org links to https.
849         * doc/html/manual/using_concurrency.html: Regenerate.
850         * doc/html/manual/using_dynamic_or_shared.html: Ditto.
851         * doc/html/manual/using_headers.html: Ditto.
852         * doc/html/manual/using_namespaces.html: Ditto.
854 2024-07-11  Jonathan Wakely  <jwakely@redhat.com>
856         PR libstdc++/108636
857         * testsuite/27_io/filesystem/path/108636.cc: Require normal
858         mode.
860 2024-07-10  Jonathan Wakely  <jwakely@redhat.com>
862         PR libstdc++/114387
863         * include/std/format (basic_format_context): Define copy
864         operations as deleted, as per LWG 4061.
865         * testsuite/std/format/context.cc: New test.
867 2024-07-10  Jonathan Wakely  <jwakely@redhat.com>
869         * src/c++26/text_encoding.cc (__locale_encoding): Add to unnamed
870         namespace.
871         (std::locale::encoding): Optimize for "C" and "*" names.
873 2024-07-10  Jonathan Wakely  <jwakely@redhat.com>
875         PR libstdc++/115854
876         * include/bits/stl_bvector.h (_Bvector_base): Convert allocator
877         to rebound type explicitly.
878         * testsuite/23_containers/vector/allocator/115854.cc: New test.
879         * testsuite/23_containers/vector/bool/allocator/115854.cc: New test.
881 2024-07-10  Jonathan Wakely  <jwakely@redhat.com>
883         PR libstdc++/115799
884         * include/bits/ranges_util.h (__find_fn): Make conversion
885         from difference type ti size_t explicit.
886         * testsuite/25_algorithms/find/bytes.cc: Check ranges::find with
887         __gnu_test::test_contiguous_range.
888         * testsuite/std/ranges/range.cc: Adjust expected difference_type
889         for __gnu_test::test_contiguous_range.
890         * testsuite/util/testsuite_iterators.h (contiguous_iterator_wrapper):
891         Use __max_diff_type as difference type.
892         (test_range::sentinel, test_sized_range_sized_sent::sentinel):
893         Ensure that operator- returns difference_type.
895 2024-07-10  Marek Polacek  <polacek@redhat.com>
897         * testsuite/std/ranges/access/101782.cc: Don't compile with
898         -fconcepts-ts.
900 2024-07-08  Jonathan Wakely  <jwakely@redhat.com>
902         PR libstdc++/115807
903         * include/c_compatibility/stdatomic.h (_Atomic): Ensure it
904         refers to std::atomic in the global namespace.
905         * testsuite/29_atomics/headers/stdatomic.h/115807.cc: New test.
907 2024-07-07  Gerald Pfeifer  <gerald@pfeifer.com>
909         * doc/xml/manual/configure.xml: Update Autobook 14 link.
910         Update GCC installation instructions link.
911         * doc/html/manual/configure.html: Regenerate.
913 2024-07-07  Jonathan Wakely  <jwakely@redhat.com>
915         PR libstdc++/115799
916         * include/bits/stl_algo.h (find): Use 'if constexpr' so that
917         memchr optimization is a discarded statement for non-contiguous
918         iterators.
919         * testsuite/25_algorithms/find/bytes.cc: Check with input
920         iterators.
922 2024-07-07  Jonathan Wakely  <jwakely@redhat.com>
924         PR libstdc++/115799
925         * include/bits/ranges_util.h (__find_fn): Return iterator
926         instead of sentinel.
927         * testsuite/25_algorithms/find/constrained.cc: Check non-common
928         contiguous sized range of char.
930 2024-07-06  Jonathan Wakely  <jwakely@redhat.com>
932         * testsuite/17_intro/headers/c++1998/all_attributes.cc: Add
933         attribute names from later standards and remove dg-options.
934         * testsuite/17_intro/headers/c++1998/stdc++.cc: Add c++98_only
935         target selector.
936         * testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc:
937         Remove content and include stdc++.cc twice instead.
938         * testsuite/17_intro/headers/c++2011/stdc++.cc: Replace
939         dg-options with c++11 target selector.
940         * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
941         Remove content and include stdc++.cc twice instead.
942         * testsuite/17_intro/headers/c++2011/all_attributes.cc: Removed.
943         * testsuite/17_intro/headers/c++2011/all_no_exceptions.cc: Removed.
944         * testsuite/17_intro/headers/c++2011/all_no_rtti.cc: Removed.
945         * testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc: Removed.
946         * testsuite/17_intro/headers/c++2011/charset.cc: Removed.
947         * testsuite/17_intro/headers/c++2011/operator_names.cc: Removed.
948         * testsuite/17_intro/headers/c++2014/all_attributes.cc: Removed.
949         * testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: Removed.
950         * testsuite/17_intro/headers/c++2014/all_no_rtti.cc: Removed.
951         * testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: Removed.
952         * testsuite/17_intro/headers/c++2014/charset.cc: Removed.
953         * testsuite/17_intro/headers/c++2014/operator_names.cc: Removed.
954         * testsuite/17_intro/headers/c++2014/stdc++.cc: Removed.
955         * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc: Removed.
956         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Removed.
957         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: Removed.
958         * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: Removed.
959         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: Removed.
960         * testsuite/17_intro/headers/c++2017/charset.cc: Removed.
961         * testsuite/17_intro/headers/c++2017/operator_names.cc: Removed.
962         * testsuite/17_intro/headers/c++2017/stdc++.cc: Removed.
963         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: Removed.
964         * testsuite/17_intro/headers/c++2020/all_attributes.cc: Removed.
965         * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: Removed.
966         * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: Removed.
967         * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: Removed.
968         * testsuite/17_intro/headers/c++2020/charset.cc: Removed.
969         * testsuite/17_intro/headers/c++2020/operator_names.cc: Removed.
970         * testsuite/17_intro/headers/c++2020/stdc++.cc: Removed.
971         * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc: Removed.
973 2024-07-06  Jonathan Wakely  <jwakely@redhat.com>
975         * include/std/variant (_Variant_storage::_M_reset): Use
976         __unlikely__ form of attribute instead of unlikely.
978 2024-07-06  Jonathan Wakely  <jwakely@redhat.com>
980         PR libstdc++/115797
981         * include/std/type_traits: Ensure "C++" language linkage.
982         * testsuite/17_intro/headers/c++2011/linkage.cc: Replace
983         dg-options with c++11 target selector.
985 2024-07-05  Jonathan Wakely  <jwakely@redhat.com>
987         PR c++/115747
988         * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
989         Add dg-error for new C++26 diagnostics.
991 2024-07-05  Jonathan Wakely  <jwakely@redhat.com>
993         * include/bits/stl_uninitialized.h (_UninitDestroyGuard): New
994         class template and partial specialization.
995         (__do_uninit_copy, __do_uninit_fill, __do_uninit_fill_n)
996         (__uninitialized_copy_a, __uninitialized_fill_a)
997         (__uninitialized_fill_n_a, __uninitialized_copy_move)
998         (__uninitialized_move_copy, __uninitialized_fill_move)
999         (__uninitialized_move_fill, __uninitialized_default_1)
1000         (__uninitialized_default_n_a, __uninitialized_default_novalue_1)
1001         (__uninitialized_default_novalue_n_1, __uninitialized_copy_n)
1002         (__uninitialized_copy_n_pair): Use it.
1004 2024-07-05  Jonathan Wakely  <jwakely@redhat.com>
1006         PR libstdc++/88545
1007         PR libstdc++/115040
1008         * include/bits/cpp_type_traits.h (__can_use_memchr_for_find):
1009         New variable template.
1010         * include/bits/ranges_util.h (__find_fn): Use memchr when
1011         possible.
1012         * include/bits/stl_algo.h (find): Likewise.
1013         * testsuite/25_algorithms/find/bytes.cc: New test.
1015 2024-07-04  John David Anglin  <danglin@gcc.gnu.org>
1017         PR libstdc++/98678
1018         * testsuite/30_threads/future/members/poll.cc: Skip on hppa*-*-linux*.
1020 2024-06-28  Jonathan Wakely  <jwakely@redhat.com>
1022         PR libstdc++/115585
1023         * src/c++11/assert_fail.cc (__glibcxx_assert_fail): Add
1024         definition for non-verbose builds.
1026 2024-06-28  Jonathan Wakely  <jwakely@redhat.com>
1028         PR libstdc++/101485
1029         * include/bits/stl_algobase.h (__equal_aux1): Check for
1030         std::byte as well.
1031         * testsuite/25_algorithms/equal/101485.cc: New test.
1033 2024-06-28  Jonathan Wakely  <jwakely@redhat.com>
1035         PR libstdc++/104395
1036         * include/bits/new_allocator.h: Disable extended alignment
1037         support in C++98 mode.
1038         * include/bits/stl_tempbuf.h: Likewise.
1039         * include/ext/bitmap_allocator.h: Likewise.
1040         * include/ext/malloc_allocator.h: Likewise.
1041         * include/ext/mt_allocator.h: Likewise.
1042         * include/ext/pool_allocator.h: Likewise.
1043         * testsuite/ext/104395.cc: New test.
1045 2024-06-28  Jonathan Wakely  <jwakely@redhat.com>
1047         * include/ext/aligned_buffer.h (__aligned_membuf): Use
1048         alignas(T) directly instead of defining a struct and using 9its
1049         alignment.
1050         (__aligned_buffer): Remove use of std::aligned_storage.
1051         * testsuite/abi/aligned_buffers.cc: New test.
1053 2024-06-27  Jonathan Wakely  <jwakely@redhat.com>
1055         PR libstdc++/37475
1056         * config/locale/gnu/codecvt_members.cc (Guard): New RAII type.
1057         (do_out, do_in): Return partial if the destination is empty but
1058         the source is not. Use Guard to restore locale on scope exit.
1059         Return immediately on any conversion error.
1060         (do_encoding, do_max_length, do_length): Use Guard.
1061         * testsuite/22_locale/codecvt/in/char/37475.cc: New test.
1062         * testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test.
1063         * testsuite/22_locale/codecvt/out/char/37475.cc: New test.
1064         * testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test.
1066 2024-06-27  Alexandre Oliva  <oliva@adacore.com>
1068         PR libstdc++/115454
1069         * testsuite/experimental/simd/pr115454_find_last_set.cc: Defer
1070         to check_vect_support_and_set_flags's default dg-do action.
1072 2024-06-27  Jonathan Wakely  <jwakely@redhat.com>
1074         PR libstdc++/115668
1075         * include/bits/chrono_io.h (formatter<duration<R,P, C>::format):
1076         Do not use chrono::abs.
1077         * testsuite/20_util/duration/io.cc: Check formatting a duration
1078         with unsigned rep.
1080 2024-06-27  Jonathan Wakely  <jwakely@redhat.com>
1082         PR libstdc++/103191
1083         * include/bits/stl_bvector.h (vector<bool>::operator[])
1084         (vector<bool>::front, vector<bool>::back): Add debug assertions.
1085         * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
1086         Remove dg-error that no longer triggers.
1088 2024-06-27  Jonathan Wakely  <jwakely@redhat.com>
1090         PR libstdc++/111250
1091         * include/debug/assertions.h (__glibcxx_requires_non_empty_range)
1092         (__glibcxx_requires_nonempty, __glibcxx_requires_subscript):
1093         Define to __glibcxx_assert expressions or to debug mode
1094         __glibcxx_check_xxx expressions.
1095         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
1096         Add checks for out-of-bounds accesses in constant expressions.
1097         * testsuite/23_containers/vector/element_access/constexpr.cc:
1098         Likewise.
1100 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
1102         * scripts/update_release_branch.sh: New file.
1104 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
1106         * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc:
1107         Copy defaulted assignment operator from 808590-cxx11.cc to
1108         suppress a warning.
1109         * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc:
1110         Removed.
1112 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
1114         PR libstdc++/90276
1115         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1116         Increase timeout for debug mode.
1117         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1118         Likewise.
1119         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1120         Likewise.
1121         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1122         Likewise.
1123         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1124         Likewise.
1125         * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
1126         Likewise.
1128 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
1130         PR libstdc++/90276
1131         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
1132         [_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode.
1133         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
1134         [_GLIBCXX_DEBUG]: Reduce size of test data.
1135         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1136         Likewise.
1137         * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
1138         Likewise.
1140 2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
1142         * src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
1143         (years_from_to): New class replacing minmax_year and
1144         minmax_year2.
1145         (format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
1146         the file. Handle "-" for letters.
1147         (ZoneInfo::to): Use format_abbrev_str to expand %z.
1148         (ZoneInfo::set_abbrev): Remove exception. Change parameter from
1149         reference to value.
1150         (operator>>(istream&, Rule&)): Do not clear letters when it
1151         contains "-".
1152         (time_zone::_M_get_sys_info): Add missing logic to find the Rule
1153         in effect before the time point.
1154         * testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
1155         "GMT" as the Zone name, not as a Link to "Etc/GMT".
1156         * testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
1158 2024-06-26  Alexandre Oliva  <oliva@adacore.com>
1159             Marc Poulhiès  <poulhies@adacore.com>
1161         * testsuite/lib/dg-options.exp (add_options_for_libatomic):
1162         None for *-*-vxworks*.
1164 2024-06-25  Jonathan Wakely  <jwakely@redhat.com>
1166         * include/bits/valarray_array.h (_Array_default_ctor): Remove.
1167         (__valarray_default_construct): Inline it into here.
1168         (_Array_init_ctor): Remove.
1169         (__valarray_fill_construct): Inline it into here.
1170         (_Array_copy_ctor): Remove.
1171         (__valarray_copy_construct(const T*, const T*, T*)): Inline it
1172         into here.
1173         (__valarray_copy_construct(const T*, size_t, size_t, T*)):
1174         Use _GLIBCXX17_CONSTEXPR for constant condition.
1176 2024-06-25  Jonathan Wakely  <jwakely@redhat.com>
1178         * doc/xml/faq.xml: Replace viewcvs links with cgit links.
1179         * doc/xml/manual/allocator.xml: Likewise.
1180         * doc/xml/manual/mt_allocator.xml: Likewise.
1181         * doc/html/*: Regenerate.
1183 2024-06-22  Gerald Pfeifer  <gerald@pfeifer.com>
1185         * doc/xml/manual/debug.xml: Move gcc.gnu.org link to https.
1186         Ditto for sourceware.org links.
1187         * doc/html/manual/debug.html: Regenerate.
1189 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1191         PR libstdc++/115497
1192         * include/bits/cpp_type_traits.h (__is_pointer, __is_scalar):
1193         Remove.
1194         (__is_arithmetic): Do not use __is_pointer in the primary
1195         template. Add partial specialization for pointers.
1197 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1199         PR libstdc++/115497
1200         * include/bits/cpp_type_traits.h (__is_void): Remove.
1201         * include/debug/helper_functions.h (_Distance_traits):
1202         Adjust partial specialization to match void directly, instead of
1203         using __is_void<T>::__type and matching __true_type.
1205 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1207         PR libstdc++/115497
1208         * include/bits/deque.tcc (__lex_cmp_dit): Replace __is_pointer
1209         class template with __is_pointer(T) built-in.
1210         (__lexicographical_compare_aux1): Likewise.
1211         * include/bits/stl_algobase.h (__equal_aux1): Likewise.
1212         (__lexicographical_compare_aux1): Likewise.
1214 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1216         PR libstdc++/115497
1217         * include/bits/valarray_array.h (__valarray_default_construct):
1218         Use __is_trivial(_Tp). instead of __is_scalar<_Tp>.
1220 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1222         PR libstdc++/109150
1223         * include/bits/stl_algobase.h (__fill_a1): Combine the
1224         !__is_scalar and __is_scalar overloads into one and rewrite the
1225         condition used to decide whether to perform the load outside the
1226         loop.
1227         * testsuite/25_algorithms/fill/109150.cc: New test.
1228         * testsuite/25_algorithms/fill_n/109150.cc: New test.
1230 2024-06-21  Matthias Kretz  <m.kretz@gsi.de>
1232         PR libstdc++/115575
1233         * testsuite/experimental/simd/pr115454_find_last_set.cc: Require
1234         avx512f_runtime. Don't memcpy fixed_size masks.
1236 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1238         * include/bits/stl_uninitialized.h (uninitialized_default_construct)
1239         (uninitialized_default_construct_n, uninitialized_value_construct)
1240         (uninitialized_value_construct_n): Qualify calls to prevent ADL.
1242 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1244         * include/std/any (any_cast(any*), any_cast(const any*)): Add
1245         static assertion to reject void types, as per LWG 3305.
1246         * testsuite/20_util/any/misc/lwg3305.cc: New test.
1248 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1250         * include/bits/memory_resource.h (polymorphic_allocator::destroy):
1251         Remove deprecated attribute.
1253 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1255         * include/backward/backward_warning.h: Adjust comments to
1256         suggest <spanstream> as another alternative to <strstream>.
1257         * include/backward/strstream (strstreambuf, istrstream)
1258         (ostrstream, strstream): Add deprecated attribute.
1260 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1262         * include/bits/locale_conv.h (wstring_convert): Add deprecated
1263         attribute for C++17 and later.
1264         (wbuffer_convert): Likewise.
1265         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: Disable
1266         deprecated warnings.
1267         * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Likewise.
1268         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc:
1269         Likewise.
1270         * testsuite/22_locale/conversions/buffer/1.cc: Add dg-warning.
1271         * testsuite/22_locale/conversions/buffer/2.cc: Likewise.
1272         * testsuite/22_locale/conversions/buffer/3.cc: Likewise.
1273         * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
1274         Likewise.
1275         * testsuite/22_locale/conversions/string/1.cc: Likewise.
1276         * testsuite/22_locale/conversions/string/2.cc: Likewise.
1277         * testsuite/22_locale/conversions/string/3.cc: Likewise.
1278         * testsuite/22_locale/conversions/string/66441.cc: Likewise.
1279         * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
1280         Likewise.
1281         * testsuite/22_locale/conversions/string/requirements/typedefs.cc:
1282         Likewise.
1284 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1286         * include/bits/version.def (chrono): Add cxx11abi = yes.
1287         * include/bits/version.h: Regenerate.
1288         * testsuite/std/time/syn_c++20.cc: Adjust expected value for
1289         the feature test macro.
1291 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1293         PR libstdc++/115522
1294         * include/std/array (to_array): Workaround the fact that
1295         std::is_trivial is not sufficient to check that a type is
1296         trivially default constructible and assignable.
1297         * testsuite/23_containers/array/creation/115522.cc: New test.
1299 2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
1301         * testsuite/util/testsuite_allocator.h (tracker_allocator):
1302         Initialize base class in copy constructor.
1304 2024-06-20  Matthias Kretz  <m.kretz@gsi.de>
1306         PR libstdc++/115454
1307         * include/experimental/bits/simd_x86.h (_S_not_equal_to): Use
1308         neq comparison instead of bitwise negation after eq.
1309         (_S_find_last_set): Clear unused high bits before computing
1310         bit_width.
1311         * testsuite/experimental/simd/pr115454_find_last_set.cc: New
1312         test.
1314 2024-06-19  Jonathan Wakely  <jwakely@redhat.com>
1316         * include/std/future: Adjust whitespace to use tabs for
1317         indentation.
1319 2024-06-19  Jonathan Wakely  <jwakely@redhat.com>
1321         * include/std/future (_State_baseV2::_Setter<R, void>): Add
1322         noexcept to call operator.
1323         (_State_baseV2::_Setter<R, __exception_ptr_tag>): Likewise.
1325 2024-06-19  Jonathan Wakely  <jwakely@redhat.com>
1327         * include/bits/stl_pair.h [__cpp_lib_concepts] (pair()): Add
1328         conditional noexcept.
1330 2024-06-19  Jonathan Wakely  <jwakely@redhat.com>
1332         * include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast
1333         argument to size_t to handle negative values and suppress
1334         -Wsign-compare warning.
1335         (_Temporary_buffer): Move diagnostic pragmas to new location of
1336         call to std::get_temporary_buffer.
1338 2024-06-18  Jonathan Wakely  <jwakely@redhat.com>
1340         * include/bits/cpp_type_traits.h: Fix outdated comment about the
1341         number of standard integer types.
1343 2024-06-14  Jonathan Wakely  <jwakely@redhat.com>
1345         PR libstdc++/110572
1346         * libsupc++/typeinfo (type_info::operator==): Add always_inline
1347         attribute for targets where the ABI requries equality to be
1348         non-inline.
1349         * testsuite/18_support/type_info/110572.cc: New test.
1351 2024-06-14  Jonathan Wakely  <jwakely@redhat.com>
1353         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
1354         posix_memalign.
1356 2024-06-13  Alexandre Oliva  <oliva@adacore.com>
1358         PR libstdc++/114359
1359         * testsuite/26_numerics/random/binomial_distribution/114359.cc:
1360         Require cmath.
1362 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1364         * include/std/type_traits (__add_rval_ref_t): Use
1365         __add_rvalue_reference built-in trait.
1367 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1369         * include/std/type_traits (__add_lval_ref_t): Use
1370         __add_lvalue_reference built-in trait.
1372 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1373             Jonathan Wakely  <jwakely@redhat.com>
1375         * include/bits/cpp_type_traits.h (__is_pointer): Use
1376         __is_pointer built-in trait.
1377         * include/std/type_traits (is_pointer): Likewise.  Optimize its
1378         implementation.
1379         (is_pointer_v): Likewise.
1381 2024-06-13  Jonathan Wakely  <jwakely@redhat.com>
1383         * include/bits/ranges_base.h (range_common_reference_t): New
1384         alias template, as per LWG 3860.
1385         * testsuite/std/ranges/range.cc: Check it.
1387 2024-06-13  Jonathan Wakely  <jwakely@redhat.com>
1389         * include/bits/ranges_base.h (const_iterator_t): Change
1390         preprocessor condition to use __glibcxx_ranges_as_const.
1391         (const_sentinel_t, range_const_reference_t): Likewise.
1392         (__access::__possibly_const_range, cbegin, cend, crbegin)
1393         (crend, cdata): Likewise.
1394         * include/bits/stl_iterator.h (iter_const_reference_t)
1395         (basic_const_iterator, const_iterator, const_sentinel)
1396         (make_const_iterator): Likewise.
1398 2024-06-13  Jonathan Wakely  <jwakely@redhat.com>
1400         PR libstdc++/115420
1401         * include/bits/hashtable.h (_Hashtable): Add static_assert to
1402         check that hash function is copy constructible.
1403         * testsuite/23_containers/unordered_map/115420.cc: New test.
1405 2024-06-13  Jonathan Wakely  <jwakely@redhat.com>
1407         PR libstdc++/113376
1408         * include/pstl/pstl_config.h: Use #if instead of #ifdef to test
1409         the _PSTL_USAGE_WARNINGS macro.
1411 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1413         * include/std/type_traits (is_nothrow_invocable): Use
1414         __is_nothrow_invocable built-in trait.
1415         * testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc:
1416         Handle the new error from __is_nothrow_invocable.
1417         * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc:
1418         Likewise.
1420 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1422         * include/std/type_traits (is_invocable): Use __is_invocable
1423         built-in trait.
1424         * testsuite/20_util/is_invocable/incomplete_args_neg.cc: Handle
1425         the new error from __is_invocable.
1426         * testsuite/20_util/is_invocable/incomplete_neg.cc: Likewise.
1428 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1430         * include/std/type_traits (rank): Use __array_rank built-in
1431         trait.
1432         (rank_v): Likewise.
1434 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1436         * include/std/type_traits (decay): Use __decay built-in trait.
1438 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1440         * include/std/type_traits (remove_all_extents): Use
1441         __remove_all_extents built-in trait.
1443 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1445         * include/std/type_traits (remove_extent): Use __remove_extent
1446         built-in trait.
1448 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1450         * include/std/type_traits (add_pointer): Use __add_pointer
1451         built-in trait.
1453 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1455         * include/std/type_traits (is_unbounded_array_v): Use
1456         __is_unbounded_array built-in trait.
1458 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1460         * include/std/type_traits (is_volatile): Use __is_volatile
1461         built-in trait.
1462         (is_volatile_v): Likewise.
1464 2024-06-13  Ken Matsui  <kmatsui@gcc.gnu.org>
1466         * include/std/type_traits (is_const): Use __is_const built-in
1467         trait.
1468         (is_const_v): Likewise.
1470 2024-06-12  Alexandre Oliva  <oliva@adacore.com>
1472         * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
1473         Require cmath.
1474         * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
1475         Likewise.
1476         * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
1477         Likewise.
1479 2024-06-12  Alexandre Oliva  <oliva@adacore.com>
1481         * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
1482         on aarch64-rtems*.
1483         * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
1484         aarch64-rtems*.
1486 2024-06-12  Jonathan Wakely  <jwakely@redhat.com>
1488         PR libstdc++/115399
1489         * include/tr2/dynamic_bitset (operator>>=): Remove redundant
1490         call to _M_do_sanitize.
1491         * include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out
1492         low bits in words that should no longer be populated.
1493         (_M_do_right_shift): Likewise for high bits.
1494         * testsuite/tr2/dynamic_bitset/pr115399.cc: New test.
1496 2024-06-12  Jonathan Wakely  <jwakely@redhat.com>
1498         * include/bits/hashtable.h (_Hashtable::clear): Do not use
1499         memset to zero out bucket pointers.
1500         (_Hashtable::_M_assign_elements): Likewise.
1502 2024-06-11  Jonathan Wakely  <jwakely@redhat.com>
1504         * include/std/chrono (leap_seconds): Add comment.
1505         * testsuite/std/time/leap_seconds/io.cc: New test.
1507 2024-06-10  François Dumont  <fdumont@gcc.gnu.org>
1509         * include/bits/hashtable.h (~_Hashtable()): Replace clear call with
1510         a _M_deallocate_nodes call.
1512 2024-06-08  Deev Patel  <dkp10000@gmail.com>
1513             Jonathan Wakely  <jwakely@redhat.com>
1515         * include/bits/atomic_base.h (__atomic_impl::__clear_padding):
1516         Add missing constexpr specifier.
1517         * testsuite/29_atomics/atomic_float/constinit.cc: New test.
1519 2024-06-08  Michael Levine  <mlevine55@bloomberg.net>
1521         PR libstdc++/108760
1522         * include/bits/ranges_algo.h (ranges::out_value_result):
1523         Move to <bits/ranges_algobase.h>.
1524         (ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to
1525         <numeric>.
1526         * include/bits/ranges_algobase.h (ranges::out_value_result):
1527         Move to here.
1528         * include/std/numeric (ranges::iota_result, ranges::__iota_fn)
1529         (ranges::iota): Move to here.
1530         * testsuite/25_algorithms/iota/1.cc: Renamed to ...
1531         * testsuite/26_numerics/iota/2.cc: ... here.
1533 2024-06-08  Jonathan Wakely  <jwakely@redhat.com>
1535         * include/std/algorithm: Define __glibcxx_want_ranges.
1536         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check
1537         feature test macro in C++20 mode.
1539 2024-06-07  Jonathan Wakely  <jwakely@redhat.com>
1541         * include/bits/ranges_algobase.h: Include <bits/stl_algobase.h>.
1543 2024-06-07  Alexandre Oliva  <oliva@adacore.com>
1545         * include/std/variant: Drop obsolete workaround.
1547 2024-06-07  Jonathan Wakely  <jwakely@redhat.com>
1549         * include/bits/ptr_traits.h (to_address): Optimize.
1550         * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error text.
1552 2024-06-06  Alexandre Oliva  <oliva@adacore.com>
1554         * include/bits/c++config (_GLIBCXX_CLANG): Define or undefine.
1555         * include/bits/locale_facets_nonio.tcc: Test for it.
1556         * include/bits/stl_bvector.h: Likewise.
1557         * include/c_compatibility/stdatomic.h: Likewise.
1558         * include/experimental/bits/simd.h: Likewise.
1559         * include/experimental/bits/simd_builtin.h: Likewise.
1560         * include/experimental/bits/simd_detail.h: Likewise.
1561         * include/experimental/bits/simd_x86.h: Likewise.
1562         * include/experimental/simd: Likewise.
1563         * include/std/complex: Likewise.
1564         * include/std/ranges: Likewise.
1565         * include/std/variant: Likewise.
1566         * include/pstl/pstl_config.h: Likewise.
1568 2024-06-05  Gerald Pfeifer  <gerald@pfeifer.com>
1570         * doc/xml/faq.xml: Move gcc.gnu.org to https.
1571         * doc/html/faq.html: Regenerate.
1573 2024-06-04  Jonathan Wakely  <jwakely@redhat.com>
1575         PR libstdc++/115335
1576         * include/std/span (span::at): Guard with feature test macro.
1578 2024-06-04  Matthias Kretz  <m.kretz@gsi.de>
1580         PR libstdc++/115308
1581         * include/experimental/bits/simd.h (__int_for_sizeof): Remove
1582         special cases for __clang__.
1583         (_SimdWrapper): Change constructor overload set to allow
1584         conversion from vector types with integral conversions via bit
1585         reinterpretation.
1587 2024-06-03  Jonathan Wakely  <jwakely@redhat.com>
1589         * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1590         Use __detail::__get_temporary_buffer.
1591         (basic_stacktrace::_Impl::_M_deallocate): Use
1592         __detail::__return_temporary_buffer.
1594 2024-06-03  Jonathan Wakely  <jwakely@redhat.com>
1596         PR libstdc++/105258
1597         * include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
1598         New function to do allocation for get_temporary_buffer, with
1599         extended alignment support.
1600         (__detail::__return_temporary_buffer): Support extended
1601         alignment.
1602         (get_temporary_buffer): Use __get_temporary_buffer.
1603         (return_temporary_buffer): Support extended alignment. Add
1604         deprecated attribute.
1605         (_Temporary_buffer): Move allocation and deallocation into a
1606         subobject and remove try-catch block in constructor.
1607         (__uninitialized_construct_buf): Use argument deduction for
1608         value type.
1609         * testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
1610         deprecated warning.
1611         * testsuite/25_algorithms/stable_sort/overaligned.cc: New test.
1613 2024-06-03  François Dumont  <frs.dumont@gmail.com>
1615         PR libstdc++/109849
1616         * include/bits/vector.tcc
1617         (std::vector<>::_M_range_insert(iterator, _FwdIt, _FwdIt,
1618         forward_iterator_tag))[__cplusplus < 201103L]: Add __builtin_unreachable
1619         expression to tell the compiler that the allocated buffer is large enough to
1620         receive current elements plus the elements of the range to insert.
1622 2024-06-03  Jonathan Wakely  <jwakely@redhat.com>
1624         * include/std/string_view (starts_with(basic_string_view)):
1625         Compare lengths first and then call traits_type::compare
1626         directly.
1628 2024-06-02  Gerald Pfeifer  <gerald@pfeifer.com>
1630         * doc/xml/api.xml: Move gcc.gnu.org links to https.
1631         * doc/html/api.html: Regenerate.
1633 2024-06-01  Jonathan Wakely  <jwakely@redhat.com>
1635         PR libstdc++/115269
1636         * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
1637         Replace list of -std=... options with a single entry for -std.
1638         * doc/html/manual/using.html: Regenerate.
1640 2024-05-30  Alexandre Oliva  <oliva@adacore.com>
1642         * configure.ac [*-*-rtems*]: Set chdir, chmod and mkdir as
1643         available.
1644         * configure: Rebuilt.
1646 2024-05-29  François Dumont  <fdumont@gcc.gnu.org>
1648         * include/bits/vector.tcc (_Guard): Move all the nested duplicated class...
1649         * include/bits/stl_vector.h (_Guard_alloc): ...here and rename.
1650         (_M_allocate_and_copy): Use latter.
1651         (_M_initialize_dispatch): Small code simplification.
1652         (_M_range_initialize): Likewise and set _M_finish first from the result
1653         of __uninitialize_fill_n_a that can throw.
1655 2024-05-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1657         PR libstdc++/111641
1658         * src/libbacktrace/Makefile.am (AM_CFLAGS): Add -funwind-tables.
1659         * src/libbacktrace/Makefile.in: Regenerate.
1660         * testsuite/19_diagnostics/stacktrace/current.cc (dg-options): Add
1661         -funwind-tables.
1662         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
1663         * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
1664         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1665         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
1667 2024-05-29  Matthias Kretz  <m.kretz@gsi.de>
1669         PR libstdc++/115247
1670         * include/experimental/bits/simd.h (__as_vector): Don't use
1671         vector_size(8) on __i386__.
1672         (__vec_shuffle): Never return MMX vectors, widen to 16 bytes
1673         instead.
1674         (concat): Fix padding calculation to pick up widening logic from
1675         __as_vector.
1677 2024-05-23  Patrick Palka  <ppalka@redhat.com>
1679         * include/bits/version.def (ranges_concat): Define.
1680         * include/bits/version.h: Regenerate.
1681         * include/std/ranges (__detail::__concat_reference_t): Define
1682         for C++26.
1683         (__detail::__concat_value_t): Likewise.
1684         (__detail::__concat_rvalue_reference_t): Likewise.
1685         (__detail::__concat_indirectly_readable_impl): Likewise.
1686         (__detail::__concat_indirectly_readable): Likewise.
1687         (__detail::__concatable): Likewise.
1688         (__detail::__all_but_last_common): Likewise.
1689         (__detail::__concat_is_random_access): Likewise.
1690         (__detail::__concat_is_bidirectional): Likewise.
1691         (__detail::__last_is_common): Likewise.
1692         (concat_view): Likewise.
1693         (__detail::__concat_view_iter_cat): Likewise.
1694         (concat_view::iterator): Likewise.
1695         (views::__detail::__can_concat_view): Likewise.
1696         (views::_Concat, views::concat): Likewise.
1697         * testsuite/std/ranges/concat/1.cc: New test.
1699 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
1701         * include/bits/locale_classes.h (locale::combine)
1702         (locale::name, locale::operator==, locale::operator!=)
1703         (locale::operator(), locale::classic): Add nodiscard
1704         attribute.
1705         * include/bits/locale_classes.tcc (has_facet, use_facet):
1706         Likewise.
1707         * testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
1708         nodiscard diagnostic.
1709         * testsuite/22_locale/locale/cons/2.cc: Cast use_facet
1710         expression to void, to suppress diagnostic.
1711         * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
1712         * testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
1714 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
1716         PR libstdc++/108323
1717         * include/bits/locale_classes.tcc (locale(const locale&, Facet*)):
1718         Return a copy of the first argument when the facet pointer is
1719         null, as per LWG 2295.
1720         (locale::combine): Ensure the result is unnamed.
1721         * src/c++11/localename.cc (_M_replace_categories): Ignore
1722         whether the second locale has a name when cat == none, as per
1723         LWG 3676.
1724         * src/c++98/locale.cc (_M_install_facet): Use __builtin_expect
1725         to predict that the facet pointer is non-null.
1726         * testsuite/22_locale/locale/cons/names.cc: New test.
1728 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
1730         PR libstdc++/114940
1731         * include/bits/version.def (generator): Depend on
1732         __cpp_sized_deallocation.
1733         * include/bits/version.h: Regenerate.
1734         * include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro.
1735         (basic_stacktrace::_Impl::_M_deallocate): Use it.
1737 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
1739         PR libstdc++/115099
1740         * include/bits/std_thread.h: Declare formatter as friend of
1741         thread::id.
1742         * include/std/thread (operator<<): Convert non-void pointers to
1743         void pointers for output.
1744         (formatter): Add constraint that thread::native_handle_type is a
1745         pointer or integer.
1746         (formatter::format): Reimplement without basic_ostringstream.
1747         * testsuite/30_threads/thread/id/output.cc: Check output
1748         compiles before <sstream> has been included.
1750 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
1752         PR libstdc++/115145
1753         * include/std/variant (operator==, operator!=, operator<)
1754         (operator<=, operator>, operator>=): Add trailing-return-type to
1755         lambda expressions to trigger conversion to bool.
1756         * testsuite/20_util/variant/relops/115145.cc: New test.
1758 2024-05-17  Björn Schäpers  <bjoern@hazardy.de>
1760         * acinclude.m4 (GLIBCXX_ENABLE_BACKTACE): Add check for
1761         tlhelp32.h, matching libbacktrace.
1762         * config.h.in: Regenerate.
1763         * configure: Regenerate.
1765 2024-05-17  Jonathan Wakely  <jwakely@redhat.com>
1767         PR libstdc++/115119
1768         * include/bits/unicode.h (_Iterator::operator++(int)): Fix typo
1769         in increment expression.
1770         * testsuite/ext/unicode/grapheme_view.cc: Check post-increment
1771         on view's iterator.
1773 2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
1775         PR libstdc++/77704
1776         * include/bits/basic_ios.h (basic_ios::fill()): Do not modify
1777         _M_fill and _M_fill_init in a const member function.
1778         (basic_ios::fill(char_type)): Use _M_fill directly instead of
1779         calling fill(). Set _M_fill_init to true.
1780         * include/bits/basic_ios.tcc (basic_ios::init): Set _M_fill and
1781         _M_fill_init here instead.
1782         * testsuite/27_io/basic_ios/fill/char/1.cc: New test.
1783         * testsuite/27_io/basic_ios/fill/wchar_t/1.cc: New test.
1785 2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
1787         * include/std/variant (__detail::__variant::__compare): New
1788         function template.
1789         (operator==, operator!=, operator<, operator>, operator<=)
1790         (operator>=): Replace macro definition with handwritten function
1791         calling __detail::__variant::__compare.
1792         (operator<=>): Call __detail::__variant::__compare.
1794 2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
1796         PR libstdc++/89624
1797         * include/bits/atomic_base.h (memory_order): Use int as
1798         underlying type.
1799         * testsuite/29_atomics/atomic/89624.cc: New test.
1801 2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
1803         PR libstdc++/115015
1804         * src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]:
1805         Do not use dynamic_cast.
1807 2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
1809         * doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
1810         std::string::shrink_to_fit.
1811         * doc/html/manual/strings.html: Regenerate.
1813 2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
1815         PR libstdc++/115063
1816         * include/std/stacktrace (basic_stacktrace::max_size): Fix typo
1817         in reference to _M_alloc member.
1818         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check
1819         max_size() compiles.
1821 2024-05-13  Matthias Kretz  <m.kretz@gsi.de>
1823         PR libstdc++/114958
1824         * include/experimental/bits/simd.h (__as_vector): Return scalar
1825         simd as one-element vector. Return vector from single-vector
1826         fixed_size simd.
1827         (__vec_shuffle): New.
1828         (__extract_part): Adjust return type signature.
1829         (split): Use __extract_part for any split into non-fixed_size
1830         simds.
1831         (concat): If the return type stores a single vector, use
1832         __vec_shuffle (which calls __builtin_shufflevector) to produce
1833         the return value.
1834         * include/experimental/bits/simd_builtin.h
1835         (__shift_elements_right): Removed.
1836         (__extract_part): Return single elements directly. Use
1837         __vec_shuffle (which calls __builtin_shufflevector) to for all
1838         non-trivial cases.
1839         * include/experimental/bits/simd_fixed_size.h (__extract_part):
1840         Return single elements directly.
1841         * testsuite/experimental/simd/pr114958.cc: New test.
1843 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
1845         * include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure
1846         count of characters consumed is correct when the end of the
1847         input is reached unexpectedly.
1848         * testsuite/ext/unicode/view.cc: Test incomplete UTF-8
1849         sequences.
1851 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
1853         PR libstdc++/114866
1854         * include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to
1855         shared_ptr, __shared_ptr or __is_shred_ptr.
1856         * testsuite/20_util/headers/memory/114866.cc: New test.
1858 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
1860         * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE):
1861         Simplify.
1863 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
1865         * include/bits/stl_pair.h (operator==): Add constraint.
1866         * include/bits/version.def (constrained_equality): Define.
1867         * include/bits/version.h: Regenerate.
1868         * include/std/optional: Define feature test macro.
1869         (__optional_rep_op_t): Use is_convertible_v instead of
1870         is_convertible.
1871         * include/std/tuple: Define feature test macro.
1872         (operator==, __tuple_cmp, operator<=>): Reimplement C++20
1873         comparisons using lambdas. Add constraints.
1874         * include/std/utility: Define feature test macro.
1875         * include/std/variant: Define feature test macro.
1876         (_VARIANT_RELATION_FUNCTION_TEMPLATE): Add constraints.
1877         (variant): Remove unnecessary friend declarations for comparison
1878         operators.
1879         * testsuite/20_util/optional/relops/constrained.cc: New test.
1880         * testsuite/20_util/pair/comparison_operators/constrained.cc:
1881         New test.
1882         * testsuite/20_util/tuple/comparison_operators/constrained.cc:
1883         New test.
1884         * testsuite/20_util/variant/relops/constrained.cc: New test.
1885         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1886         Disable for C++20 and later.
1887         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1888         Remove dg-error line for target c++20.
1890 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
1892         * include/backward/auto_ptr.h: Use https for URL in comment.
1893         * include/bits/basic_ios.h: Likewise.
1894         * include/std/iostream: Likewise.
1896 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
1898         * testsuite/util/testsuite_abi.cc: Update latest versions to
1899         new versions that should be used in future.
1901 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1903         * src/Makefile.am [ENABLE_SYMVERS_SUN]
1904         (libstdc++-symbols.ver-sun): Pass $(libstdc___la_OBJECTS),
1905         $(libstdc___la_LIBADD) to make_sunver.pl unmodified.
1906         * src/Makefile.in: Regenerate.
1908 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1910         * testsuite/lib/dg-options.exp (add_options_for_net_ts)
1911         <*-*-solaris2*>: Don't link with -lsocket -lnsl.
1913 2024-05-03  Andreas Schwab  <schwab@linux-m68k.org>
1915         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1916         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1918 2024-05-01  Jonathan Wakely  <jwakely@redhat.com>
1920         PR libstdc++/114891
1921         * include/std/generator: Check feature test macro before using
1922         is_pointer_interconvertible_v.
1924 2024-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
1926         * testsuite/lib/gdb-test.exp (gdb-test): Fix regexp.  Quote
1927         newlines in logs.
1929 2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1931         Backported from master:
1932         2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1934         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1935         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1936         Likewise.
1937         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1938         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1939         Likewise.
1941 2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1943         Backported from master:
1944         2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1946         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1947         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1948         Likewise.
1949         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1950         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1951         Likewise.
1953 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
1955         PR libstdc++/114863
1956         * include/std/format (__formatter_fp::format): Only use
1957         _M_localized for finite values.
1958         * testsuite/std/format/functions/format.cc: Check localized
1959         formatting of NaN and initiny.
1961 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
1963         * doc/html/manual/status.html: Regenerate.
1964         * doc/xml/manual/status_cxx1998.xml: Adjust whitespace.
1965         * doc/xml/manual/status_cxx2011.xml: Likewise.
1966         * doc/xml/manual/status_cxx2014.xml: Likewise.
1967         * doc/xml/manual/status_cxx2017.xml: Likewise.
1968         * doc/xml/manual/status_cxx2020.xml: Likewise.
1969         * doc/xml/manual/status_cxx2023.xml: Likewise.
1970         * doc/xml/manual/status_cxxtr1.xml: Likewise.
1971         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
1973 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
1975         * scripts/run_doxygen: Rename man pages for nested types.
1977 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
1979         * include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
1981 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
1983         * scripts/run_doxygen: Adjust sed pattern to match '\fR' for
1984         new man output that Doxygen 1.10 generates.
1986 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
1988         * doc/doxygen/stdheader.cc (init_map): Add missing headers.
1989         * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
1990         std::format and std::text_encoding.
1992 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
1994         * include/std/variant: Add comment to #include.
1996 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
1998         PR libstdc++/114803
1999         * include/experimental/bits/simd_builtin.h
2000         (_SimdBase2::operator __vector_type_t): There is no __builtin()
2001         function in _SimdWrapper, instead use its conversion operator.
2002         * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
2003         test.
2005 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
2007         * include/experimental/bits/simd.h: Ignore -Wnarrowing for
2008         arm_neon.h.
2009         (__int_for_sizeof): Replace tautological compare with checking
2010         for invalid template parameter value.
2011         * include/experimental/bits/simd_builtin.h (__extract_part):
2012         Remove tautological compare by combining two static_assert.
2014 2024-04-22  Jakub Jelinek  <jakub@redhat.com>
2016         * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
2017         * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
2018         define on s390.
2019         * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
2020         Likewise.
2021         * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
2022         Likewise.
2023         * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
2024         Likewise.
2025         * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
2026         Likewise.
2028 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
2030         * include/bits/refwrap.h (operator<=>): Simplify constraints.
2032 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
2034         PR libstdc++/114770
2035         * src/c++20/tzdb.cc (do_locate_zone): Support links that have
2036         another link as their target.
2037         * testsuite/std/time/tzdb/1.cc: Check that all zones and links
2038         can be found by locate_zone.
2039         * testsuite/std/time/tzdb/links.cc: New test.
2041 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
2043         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
2044         Disable SRA.
2046 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
2048         * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
2049         on aarch64-vxworks.
2050         * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
2051         aarch64-vxworks.
2053 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
2055         * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
2056         on VxWorks non-RTP.
2058 2024-04-17  Jonathan Wakely  <jwakely@redhat.com>
2060         * include/std/ostream (println(ostream&)): Define new overload.
2061         * include/std/print (println(FILE*), println()): Likewise.
2062         * testsuite/27_io/basic_ostream/print/2.cc: New test.
2063         * testsuite/27_io/print/1.cc: Remove unused header.
2064         * testsuite/27_io/print/3.cc: New test.
2066 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
2068         * include/experimental/bits/numeric_traits.h: Add include guard.
2070 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
2072         PR libstdc++/114750
2073         * include/experimental/bits/simd_builtin.h
2074         (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
2075         scalars if the memory type cannot be vectorized for the target.
2077 2024-04-16  Jonathan Wakely  <jwakely@redhat.com>
2079         * config/locale/dragonfly/numeric_members.cc: Fix typos in
2080         comments.
2081         * config/locale/gnu/numeric_members.cc: Likewise.
2083 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
2085         * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
2086         * doc/html/manual/abi.html: Regenerate.
2088 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
2090         * include/bits/refwrap.h (reference_wrapper): Add comparison
2091         operators as proposed by P2944R3.
2092         * include/bits/version.def (reference_wrapper): Define.
2093         * include/bits/version.h: Regenerate.
2094         * include/std/functional: Enable feature test macro.
2095         * testsuite/20_util/reference_wrapper/compare.cc: New test.
2097 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
2099         PR libstdc++/113386
2100         * include/bits/stl_pair.h (operator==, operator<=>): Support
2101         heterogeneous comparisons, as per LWG 3865.
2102         * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
2103         test.
2105 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
2107         PR libstdc++/93672
2108         * src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
2109         Treat all negative delimiter values as eof().
2110         * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
2111         * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
2112         test.
2114 2024-04-15  Andreas Schwab  <schwab@suse.de>
2116         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2118 2024-04-13  H.J. Lu  <hjl.tools@gmail.com>
2120         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
2121         Updated.
2123 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
2125         * doc/xml/manual/abi.xml: Add latest library versions.
2126         * doc/html/manual/abi.html: Regenerate.
2128 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
2130         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2131         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2132         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2133         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2134         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2135         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2136         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2137         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
2138         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2140 2024-04-11  Jonathan Wakely  <jwakely@redhat.com>
2142         PR libstdc++/114692
2143         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
2144         __basic_file::native_handle to ...
2145         (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
2146         specialization, which isn't used.
2147         * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
2148         latest version check.
2150 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
2152         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2153         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2154         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2155         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2156         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2157         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2158         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2159         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
2160         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2162 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
2164         * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
2165         Adjust input string so that it matches %a with or without a
2166         trailing period.
2167         * testsuite/std/time/year_month_day/io.cc: Adjust expected
2168         format for %x in the fr_FR locale.
2170 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
2172         * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
2173         Check for EMLINK as well as ELOOP.
2174         [__NetBSD__]: Check for EFTYPE as well as ELOOP.
2176 2024-04-09  Jonathan Wakely  <jwakely@redhat.com>
2178         PR libstdc++/114633
2179         * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
2180         stream extraction if std::from_chars is not available.
2182 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
2184         PR libstdc++/114519
2185         * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
2186         using char instead of char8_t.
2187         * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
2188         string views, instead of std::u8string_view.
2190 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
2192         * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
2193         no-opts selector for errors that depend on -fchar8_t.
2194         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
2195         Likewise.
2196         * testsuite/20_util/integer_comparisons/greater_neg.cc:
2197         Likewise.
2198         * testsuite/20_util/integer_comparisons/in_range_neg.cc:
2199         Likewise.
2200         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
2201         Likewise.
2202         * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
2203         * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
2204         Likewise.
2205         * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
2206         if -fno-char8_t is used.
2207         * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2208         Likewise.
2209         * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
2210         Likewise.
2211         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
2212         Likewise.
2213         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
2214         char for u8 literal if char8_t is not available.
2215         * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
2216         __cpp_char8_t.
2217         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2218         * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
2219         Remove check for _GLIBCXX_USE_CHAR8_T.
2221 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
2223         * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
2224         using a struct of that name if -fno-char8_t is active.
2225         * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
2227 2024-04-03  Jonathan Wakely  <jwakely@redhat.com>
2229         PR libstdc++/104606
2230         * include/std/optional (operator<=>(const optional<T>&, const U&)):
2231         Reverse order of three_way_comparable_with template arguments.
2232         * testsuite/20_util/optional/relops/104606.cc: New test.
2234 2024-04-02  Jonathan Wakely  <jwakely@redhat.com>
2236         PR libstdc++/114519
2237         * include/bits/unicode.h (_Utf8_view): Guard with check for
2238         char8_t being enabled.
2239         (__literal_encoding_is_unicode): Guard use of char8_t with check
2240         for it being enabled.
2241         * testsuite/std/format/functions/114519.cc: New test.
2243 2024-04-02  Patrick Palka  <ppalka@redhat.com>
2245         * include/std/ranges (ranges::__detail::_Empty): Rename to ...
2246         (ranges::__detail::_Absent): ... this.  Turn into a template
2247         parameterized by the absent type _Tp and discriminator _Disc.
2248         (ranges::__detail::__maybe_present_t): Add an optional
2249         discriminator parameter.
2250         (slide_view::_M_cached_begin): Pass a discriminator argument to
2251         __maybe_present_t.
2252         (slide_view::_M_cached_end): Likewise.
2253         * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
2254         slide_view<V> is 3 instead 4 pointers.
2256 2024-04-02  Jakub Jelinek  <jakub@redhat.com>
2258         * acinclude.m4: Fix duplicated words; file file -> file can.
2259         * configure.host: Fix duplicated words; the the -> the.
2261 2024-03-29  Arsen Arsenović  <arsen@aarsen.me>
2263         * testsuite/24_iterators/range_generators/01.cc: Drop GCC
2264         Runtime Library Exception.
2265         * testsuite/24_iterators/range_generators/02.cc: Drop GCC
2266         Runtime Library Exception.
2267         * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
2268         Runtime Library Exception.
2269         * testsuite/24_iterators/range_generators/except.cc: Drop GCC
2270         Runtime Library Exception.
2271         * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
2272         Runtime Library Exception.
2273         * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
2274         Runtime Library Exception.
2275         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
2276         Drop GCC Runtime Library Exception from the "You should have
2277         received a copy" paragraph.
2279 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
2281         * include/experimental/bits/simd_x86.h (_S_masked_unary):
2282         Cast inputs < 16 bytes to 16 byte vectors before calling the
2283         right subtraction builtin. Before returning, truncate to the
2284         return vector type.
2286 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
2288         * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
2289         the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
2290         rounding direction argument.
2292 2024-03-27  Srinivas Yadav Singanaboina  <vasu.srinivasvasu.14@gmail.com>
2294         * include/Makefile.am: Add simd_sve.h.
2295         * include/Makefile.in: Add simd_sve.h.
2296         * include/experimental/bits/simd.h: Add new SveAbi.
2297         * include/experimental/bits/simd_builtin.h: Use
2298         __no_sve_deduce_t to support existing Neon Abi.
2299         * include/experimental/bits/simd_converter.h: Convert
2300         sequentially when sve is available.
2301         * include/experimental/bits/simd_detail.h: Define sve
2302         specific macro.
2303         * include/experimental/bits/simd_math.h: Fallback frexp
2304         to execute sequntially when sve is available, to handle
2305         fixed_size_simd return type that always uses sve.
2306         * include/experimental/simd: Include bits/simd_sve.h.
2307         * testsuite/experimental/simd/tests/bits/main.h: Enable
2308         testing for sve128, sve256, sve512.
2309         * include/experimental/bits/simd_sve.h: New file.
2311 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
2313         * include/std/generator (generator::_Iterator::operator*): Fix
2314         return type.
2315         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
2316         New test.
2318 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
2320         * include/std/generator: Fix _V badname.
2322 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
2324         * testsuite/19_diagnostics/stacktrace/current.cc: Check for
2325         __cpp_lib_stacktrace instead of check for stacktrace ET.
2326         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2327         * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
2328         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
2329         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2330         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
2331         * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
2332         * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
2333         Likewise.
2334         * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2335         Remove.
2337 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
2339         * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
2340         New proc.
2341         * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
2342         New proc.
2343         * testsuite/std/text_encoding/cons.cc: Use new directive to skip
2344         the test if the __cpp_lib_text_encoding feature test macro is
2345         not defined.
2346         * testsuite/std/text_encoding/requirements.cc: Likewise.
2348 2024-03-25  Jonathan Wakely  <jwakely@redhat.com>
2350         * testsuite/std/text_encoding/requirements.cc: #undef the
2351         correct macro.
2353 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
2355         * include/std/format (formatter): Disable specializations that
2356         would allow sequences of narrow characters to be formatted as
2357         wchar_t without conversion, as per LWG 3944.
2358         * testsuite/std/format/formatter/lwg3944.cc: New test.
2360 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
2362         * include/bits/utility.h (__is_in_place_index_v): New variable
2363         template.
2364         * include/std/variant (__not_in_place_tag): Define in terms of
2365         variable templates not a class template.
2367 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
2369         PR libstdc++/114400
2370         * include/std/string_view (operator==): Use std::type_identity_t
2371         in C++20 instead of our own __type_identity_t.
2373 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
2375         PR libstdc++/114401
2376         * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
2377         release() on node handle instead of just zeroing its pointer.
2378         (_Hashtable::_M_reinsert_node_multi): Likewise.
2379         (_Hashtable::_M_merge_unique): Likewise.
2380         (_Hashtable::_M_merge_multi): Likewise.
2381         * include/bits/node_handle.h (_Node_handle_common::release()):
2382         New member function.
2383         (_Node_handle_common::_Optional_alloc::_M_empty): Remove
2384         unnecessary union member.
2385         (_Node_handle_common): Declare _Hashtable as a friend.
2386         * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
2387         Call release() on node handle instead of just zeroing its
2388         pointer.
2389         (_Rb_tree::_M_reinsert_node_equal): Likewise.
2390         (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
2391         (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
2392         * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
2393         * testsuite/23_containers/set/modifiers/114401.cc: New test.
2394         * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
2395         * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
2397 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
2399         PR libstdc++/113841
2400         * include/bits/allocator.h (allocator<cv T>): Add default
2401         constructor to partial specializations for cv-qualified types.
2402         * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
2403         Constrain so that it's only present if the allocator is default
2404         constructible.
2405         * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
2406         Likewise.
2407         * testsuite/23_containers/vector/cons/113841.cc: New test.
2409 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
2411         * include/bits/stl_construct.h (destroy_at, construct_at): Guard
2412         with feature test macros instead of just __cplusplus.
2414 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
2416         * include/bits/version.def (generator, tuple_like): Move earlier
2417         in the file.
2418         * include/bits/version.h: Regenerate.
2420 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
2422         PR libstdc++/114394
2423         * include/std/functional (bind): Use __invoke_result_t instead
2424         of result_of::type.
2425         * include/std/type_traits (__invoke_result_t): New alias
2426         template.
2427         * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
2429 2024-03-20  François Dumont  <fdumont@gcc.gnu.org>
2431         * include/bits/version.def (null_iterators): Remove extra_cond.
2432         * include/bits/version.h: Regenerate.
2434 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
2436         PR libstdc++/114359
2437         * include/bits/random.tcc (binomial_distribution::param_type):
2438         Ensure arithmetic is done as type double.
2439         * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
2441 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
2443         PR libstdc++/101228
2444         * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
2445         Define before including <tbb/task.h> then undef afterwards.
2447 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
2449         * include/Makefile.am [MAINTAINER_MODE]: Add target to
2450         automatically update <bits/version.h>.
2451         * include/Makefile.in: Regenerate.
2453 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
2455         * doc/xml/manual/build_hacking.xml: Document generated files.
2456         Update list of convenience libraries and sub-directories under
2457         the src directory.
2458         * doc/html/*: Regenerate.
2460 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
2462         * include/bits/text_encoding-data.h: Regenerate.
2463         * include/bits/unicode-data.h: Regenerate.
2464         * scripts/gen_text_encoding_data.py: Fix header of generated
2465         file to name the correct script.
2467 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
2469         * testsuite/util/pstl/test_utils.h: Fix typos in comments.
2471 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
2473         PR libstdc++/114367
2474         * include/bits/stl_bvector.h (_M_allocate): Use allocator's
2475         construct function to begin lifetime of words.
2477 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
2479         * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
2480         option for the path to the uninstalled libatomic.
2482 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
2484         * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
2485         /dev/null, use a temporary file for test executables on Darwin.
2487 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
2489         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
2490         Accept 0 offset advance on value-initialized iterator.
2491         * testsuite/23_containers/vector/debug/n3644.cc: New test case.
2493 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
2495         * include/debug/safe_local_iterator.tcc
2496         (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
2497         _M_singular checks.
2498         * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
2500 2024-03-17  François Dumont  <fdumont@gcc.gnu.org>
2502         PR libstdc++/114316
2503         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
2504         First check if both iterators are value-initialized before checking if
2505         singular.
2506         * testsuite/23_containers/set/debug/114316.cc: New test case.
2507         * testsuite/23_containers/vector/debug/114316.cc: New test case.
2509 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
2511         PR libstdc++/114325
2512         * include/std/format (_Scanner::_M_scan): Pass correct length to
2513         __to_chars_10_impl.
2514         * testsuite/std/format/functions/format.cc: Check negative
2515         integers with empty format-spec.
2517 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
2519         * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
2520         (find_if_not, is_partitioned, partition_point, remove)
2521         (remove_if, unique, lower_bound, upper_bound, equal_range)
2522         (binary_search, includes, is_sorted, is_sorted_until, minmax)
2523         (minmax_element, is_permutation, clamp, find_if, find_first_of)
2524         (adjacent_find, count, count_if, search, search_n, min_element)
2525         (max_element): Add nodiscard attribute.
2526         * include/bits/stl_algobase.h (min, max, lower_bound, equal)
2527         (lexicographical_compare, lexicographical_compare_three_way)
2528         (mismatch): Likewise.
2529         * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
2530         * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
2531         * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
2532         * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
2533         * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
2534         Likewise.
2535         * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
2536         * testsuite/25_algorithms/lexicographical_compare/71545.cc:
2537         Likewise.
2538         * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
2539         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
2540         Likewise.
2541         * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
2542         Likewise.
2543         * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
2544         Likewise.
2545         * testsuite/25_algorithms/minmax/3.cc: Likewise.
2546         * testsuite/25_algorithms/search/78346.cc: Likewise.
2547         * testsuite/25_algorithms/search_n/58358.cc: Likewise.
2548         * testsuite/25_algorithms/unique/1.cc: Likewise.
2549         * testsuite/25_algorithms/unique/11480.cc: Likewise.
2550         * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
2551         * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
2552         Likewise.
2553         * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
2554         Likewise.
2555         * testsuite/ext/concept_checks.cc: Likewise.
2556         * testsuite/ext/is_heap/47709.cc: Likewise.
2557         * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
2559 2024-03-14  xndcn  <xndchn@gmail.com>
2561         * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
2562         Clear padding.
2563         * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
2564         New test.
2566 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
2568         PR libstdc++/66146
2569         * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
2570         note about std::call_once.
2571         * doc/xml/manual/status_cxx2014.xml: Likewise.
2572         * doc/xml/manual/status_cxx2017.xml: Likewise.
2573         * doc/html/manual/status.html: Regenerate.
2575 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
2577         * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
2578         * doc/html/manual/status.html: Regenerate.
2579         * include/bits/version.def: Fix typo in comment.
2581 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
2583         * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
2584         to namespace scope.
2586 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
2588         * doc/xml/manual/debug.xml: Improve docs on debug builds and
2589         using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
2590         the most relevant ones first.
2591         * doc/xml/manual/using.xml: Add comma.
2592         * doc/html/*: Regenerate.
2594 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
2596         * doc/xml/manual/debug.xml: Document that concept checking might
2597         be removed in future.
2598         * doc/xml/manual/extensions.xml: Likewise.
2600 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
2602         PR libstdc++/114240
2603         * include/bits/chrono_io.h (_Parser::operator()): Assume
2604         hours(0) for a time_point, so that a time is not required
2605         to be present.
2606         * testsuite/std/time/parse/114240.cc: New test.
2608 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
2610         PR libstdc++/114279
2611         * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
2612         data member.
2613         (_Parser::_M_reserved): Reserve padding bits for future use.
2614         (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
2615         (from_stream): Only allow _M_is_leap_second for utc_time and
2616         local_time. Adjust arithmetic for utc_time so that leap seconds
2617         are preserved. Use time_point_cast to convert to a possibly
2618         lower-precision result type.
2619         * testsuite/std/time/parse.cc: Move to ...
2620         * testsuite/std/time/parse/parse.cc: ... here.
2621         * testsuite/std/time/parse/114279.cc: New test.
2623 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
2625         * include/bits/chrono_io.h (_Parser::operator()): Use
2626         std::from_chars to parse fractional seconds.
2628 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
2630         PR libstdc++/114244
2631         * include/bits/chrono_io.h (_Parser::operator()): Remove
2632         redundant uses of duration_cast. Use chrono::round to convert
2633         long double value to durations with integer representations.
2634         Check represenation type when deciding whether to skip parsing
2635         fractional seconds.
2636         * testsuite/20_util/duration/114244.cc: New test.
2637         * testsuite/20_util/duration/io.cc: Check that a floating-point
2638         duration with ratio<1> precision can be parsed.
2640 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
2642         PR libstdc++/114103
2643         * include/bits/version.def (atomic_lock_free_type_aliases): Add
2644         extra_cond to check for at least one always-lock-free type.
2645         * include/bits/version.h: Regenerate.
2646         * include/std/atomic (atomic_signed_lock_free)
2647         (atomic_unsigned_lock_free): Only use always-lock-free types.
2648         * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
2649         atomic counter if lock-free aliases aren't available.
2650         * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
2651         targets without lock-free word-size compare_exchange.
2653 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
2655         * include/std/chrono (__get_leap_second_info): Update expiry
2656         time for hardcoded list of leap seconds.
2657         * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
2659 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
2661         * testsuite/23_containers/deque/allocator/default_init.cc: Use
2662         std::memset instead of __builtin_memset.
2663         * testsuite/23_containers/forward_list/allocator/default_init.cc:
2664         Likewise.
2665         * testsuite/23_containers/list/allocator/default_init.cc:
2666         Likewise.
2667         * testsuite/23_containers/map/allocator/default_init.cc:
2668         Likewise.
2669         * testsuite/23_containers/set/allocator/default_init.cc:
2670         Likewise.
2671         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2672         Likewise.
2673         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2674         Likewise.
2675         * testsuite/23_containers/vector/allocator/default_init.cc:
2676         Likewise.
2677         * testsuite/23_containers/vector/bool/allocator/default_init.cc:
2678         Likewise.
2679         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
2680         Likewise.
2681         * testsuite/util/atomic/wait_notify_util.h: Likewise.
2683 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
2685         * include/std/format (_Arg_store::_S_make_elt): Add two
2686         static_assert checks to give more user-friendly error messages.
2687         * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
2688         form of "in requirements with" note.
2689         * testsuite/std/format/arguments/args_neg.cc: Check for
2690         user-friendly diagnostics for non-formattable types.
2691         * testsuite/std/format/string_neg.cc: Likewise.
2693 2024-03-04  Jonathan Wakely  <jwakely@redhat.com>
2695         PR libstdc++/114147
2696         * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
2697         Add missing overload of allocator-extended default constructor.
2698         (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
2699         * testsuite/20_util/tuple/cons/114147.cc: New test.
2701 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
2703         * include/std/format (basic_format_arg::handle::__maybe_const_t):
2704         Fix condition to check if const type is formattable.
2705         (basic_format_arg::handle::handle(T&)): Remove redundant
2706         static_assert.
2707         * testsuite/std/format/formatter/basic.cc: New test.
2709 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
2711         PR libstdc++/113960
2712         * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
2713         (__memcmp_ordered_with): New concept.
2714         (lexicographical_compare_three_way): Use __memcmp_ordered_with
2715         instead of __is_byte_iter. Use correct length for memcmp.
2716         * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
2717         New test.
2719 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
2721         PR libstdc++/114152
2722         * include/experimental/scope (scope_exit scope_fail): Make
2723         destructor unconditionally noexcept.
2724         (scope_sucess): Fix noexcept-specifier.
2725         * testsuite/experimental/scopeguard/114152.cc: New test.
2727 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
2729         * doc/xml/manual/appendix_contributing.xml: Change URLs to use
2730         https.
2731         * doc/html/manual/*: Regenerate.
2733 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
2735         * doc/xml/manual/appendix_contributing.xml: Replace outdated
2736         info on ChangeLog entries.
2737         * doc/html/manual/appendix_contributing.html: Regenerate.
2739 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
2741         * include/bits/stl_bvector.h (vector<bool, A>::at): Add
2742         nodiscard.
2743         * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
2744         (operator==, operator<=>, operator<, operator!=, operator>)
2745         (operator<=, operator>=): Likewise.
2746         * include/debug/vector (operator==, operator<=>, operator<)
2747         (operator!=, operator>, operator<=, operator>=): Likewise.
2748         * testsuite/23_containers/vector/nodiscard.cc: New test.
2750 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
2752         * include/bits/atomic_base.h (operator|, operator&): Add
2753         noexcept.
2754         * include/bits/fs_fwd.h (operator&, operator|, operator^)
2755         (operator~): Add nodiscard to overloads for copy_options, perms,
2756         perm_options, and directory_options.
2757         * include/bits/ios_base.h (operator&, operator|, operator^)
2758         (operator~): Add nodiscard and noexcept to overloads for
2759         _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
2760         (operator|=, operator&=, operator^=): Add constexpr for C++14.
2761         * include/bits/regex_constants.h (operator&, operator|, operator^)
2762         (operator~): Add nodiscard and noexcept to overloads for
2763         syntax_option_type and match_flag_type.
2764         (operator|=, operator&=, operator^=): Add noexcept.
2765         * include/std/charconv (operator&, operator|, operator^)
2766         (operator~): Add nodiscard to overloads for chars_format.
2767         * include/std/future (operator&, operator|, operator^)
2768         (operator~): Add nodiscard for overloads for launch.
2769         (operator&=, operator|=, operator^=): Add constexpr for C++14.
2770         * include/experimental/bits/fs_fwd.h  (operator&, operator|)
2771         (operator^, operator~): Add nodiscard to overloads for
2772         copy_options, perms, and directory_options.
2773         * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
2774         Add dg-warning for nodiscard warnings.
2775         * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
2776         Likewise.
2777         * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
2778         Likewise.
2779         * testsuite/27_io/filesystem/operations/bitmask_types.cc:
2780         New test.
2782 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
2784         * testsuite/27_io/basic_ostream/print/1.cc: Check error
2785         handling.
2786         * testsuite/27_io/print/1.cc: Likewise.
2788 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
2790         * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
2791         code path for Cygwin instead of Windows.
2792         * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
2793         * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
2794         for *-*-mingw* targets.
2795         * testsuite/27_io/print/1.cc: Likewise.
2797 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
2799         * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
2800         __make_move_if_noexcept_iterator.
2802 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
2804         * include/std/stacktrace: Add nodiscard attribute to all
2805         functions without side effects.
2807 2024-02-20  François Dumont  <fdumont@gcc.gnu.org>
2809         * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
2810         std::__niter_base on res iterator.
2812 2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
2813             Jonathan Wakely  <jwakely@redhat.com>
2815         PR target/112397
2816         * configure: Regenerate.
2817         * configure.ac: Detect if we are building for Darwin.
2818         * libsupc++/Makefile.am: If we are building for Darwin, then
2819         suppress hot/cold partitioning for the array allocators.
2820         * libsupc++/Makefile.in: Regenerated.
2822 2024-02-17  François Dumont  <fdumont@gcc.gnu.org>
2824         * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
2825         definitions for __gnu_debug::_Safe_iterator.
2826         * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
2828 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
2830         PR libstdc++/87744
2831         PR libstdc++/113961
2832         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2833         line number.
2835 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
2837         PR libstdc++/87744
2838         PR libstdc++/113931
2839         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2840         line number.
2842 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
2844         * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
2845         * doc/html/manual/debug_mode_using.html: Regenerate.
2847 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
2849         * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
2850         * doc/html/manual/test.html: Regenerate.
2852 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
2854         PR libstdc++/113806
2855         * include/std/bitset (bitset::operator>>=): Remove redundant
2856         call to _M_do_sanitize.
2858 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
2860         PR libstdc++/113807
2861         * include/std/bitset (bitset::set()): Use memset instead of a
2862         loop over the individual words.
2864 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
2866         PR libstdc++/113811
2867         * include/bits/stl_algo.h (__rotate): Use unsigned values for
2868         division.
2870 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
2872         PR libstdc++/99117
2873         * include/std/valarray (valarray::operator=(const _Expr&)):
2874         Use loop to copy instead of __valarray_copy with _Array.
2875         * testsuite/26_numerics/valarray/99117.cc: New test.
2877 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
2879         * src/c++20/tzdata.zi: Import new file from 2024a release.
2880         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
2881         Update expiry date for leap seconds list.
2883 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
2885         PR libstdc++/87744
2886         * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
2887         Define specialization for 64-bit generators with
2888         non-power-of-two modulus and large constants.
2889         (__mod): Use if constexpr unconditionally.
2890         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2891         line number.
2892         * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
2893         New test.
2895 2024-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
2897         * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
2898         version 1.
2899         * doc/html/manual/status.html: Regenerate.
2901 2024-02-12  Paul Keir  <paul.keir@uws.ac.uk>
2903         PR libstdc++/113294
2904         * include/bits/basic_string.h (basic_string::operator=): Use
2905         _M_use_local_data() instead of _M_local_buf on the moved-from
2906         string.
2907         * testsuite/21_strings/basic_string/modifiers/constexpr.cc
2908         (test_move): New test.
2910 2024-02-09  Ken Matsui  <kmatsui@gcc.gnu.org>
2912         * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
2913         Removed.
2914         * include/std/type_traits (is_same): Use
2915         _GLIBCXX_USE_BUILTIN_TRAIT instead of
2916         _GLIBCXX_HAVE_BUILTIN_IS_SAME.
2917         (is_same_v): Likewise.
2919 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
2921         * include/bits/shared_ptr_atomic.h: Fix typo in comment.
2923 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
2925         PR libstdc++/100147
2926         * include/bits/gslice.h (operator=): Add comment about lack of
2927         self-assignment check.
2929 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
2931         * include/tr2/type_traits (bases, direct_bases): Use
2932         __has_builtin to check if required built-ins are supported.
2934 2024-02-07  Patrick Palka  <ppalka@redhat.com>
2936         PR testsuite/113710
2937         PR c++/113814
2938         * include/bits/stl_pair.h (tuple_element): Add forward
2939         declaration of the partial specialization for tuple.
2941 2024-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
2943         * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
2944         for other environments.
2946 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
2948         * include/std/format (__format::_Spec::_M_reserved): Define new
2949         bit-field members to reserve padding bits for future extensions.
2951 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
2953         * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
2954         instead of libstdc++fs.a.
2955         * src/experimental/Makefile.in: Regenerate.
2956         * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
2957         well.
2958         * src/filesystem/Makefile.in: Regenerate.
2960 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
2962         * include/bits/text_encoding-data.h: Regenerate.
2963         * include/bits/unicode-data.h: Regenerate.
2964         * scripts/gen_text_encoding_data.py: Add copyright and license
2965         text to the output.
2967 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
2969         PR libstdc++/113335
2970         * include/bits/std_function.h (__function_guide_helper): Add
2971         partial specialization for explicit object member functions, as
2972         per LWG 3617.
2973         * testsuite/20_util/function/cons/deduction_c++23.cc: Check
2974         explicit object member functions.
2975         * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2976         Likewise.
2978 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
2980         * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
2982 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
2984         * include/experimental/internet (network_v6::network): Define.
2985         (network_v6::hosts): Finish implementing.
2986         (network_v6::to_string): Do not concatenate std::string to
2987         arbitrary std::basic_string specialization.
2988         * testsuite/experimental/net/internet/network/v6/cons.cc: New
2989         test.
2991 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
2993         PR libstdc++/90276
2994         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
2995         comparison function to use less-than instead of equality.
2997 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
2999         PR libstdc++/90276
3000         * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
3001         perfect forwarding for iterator arguments.
3003 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
3005         * include/std/string_view (basic_string_view(R&&)): Remove
3006         constraint that traits_type must be the same, as per LWG 3857.
3007         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
3008         Explicit conversion between different specializations should be
3009         allowed.
3010         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
3011         Likewise.
3013 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
3015         * include/std/syncstream (basic_osyncstream::operator=): Remove
3016         noexcept, as per LWG 3867.
3018 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
3020         * include/std/generator (promise_type::yield_value): Remove
3021         noexcept from fourth overload, as per LWG 3894.
3023 2024-02-01  Patrick Palka  <ppalka@redhat.com>
3025         PR libstdc++/113309
3026         PR libstdc++/109203
3027         * include/bits/ranges_util.h (__detail::__pair_like): Don't
3028         define in C++23 mode.
3029         (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
3030         (__detail::__is_subrange<subrange>): Moved from <ranges>.
3031         (__detail::__is_tuple_like_v<subrange>): Likewise.
3032         * include/bits/stl_iterator.h: Include <bits/utility.h> for
3033         C++23.
3034         (__different_from): Move to <concepts>.
3035         (__iter_key_t): Adjust for C++23 as per P2165R4.
3036         (__iter_val_t): Likewise.
3037         * include/bits/stl_pair.h (pair, array): Forward declare.
3038         (get): Forward declare all overloads relevant to P2165R4
3039         tuple-like constructors.
3040         (__is_tuple_v): Define for C++23.
3041         (__is_tuple_like_v): Define for C++23.
3042         (__tuple_like): Define for C++23 as per P2165R4.
3043         (__pair_like): Define for C++23 as per P2165R4.
3044         (__eligibile_tuple_like): Define for C++23.
3045         (__eligibile_pair_like): Define for C++23.
3046         (pair::_S_constructible_from_pair_like): Define for C++23.
3047         (pair::_S_convertible_from_pair_like): Define for C++23.
3048         (pair::_S_dangles_from_pair_like): Define for C++23.
3049         (pair::pair): Define overloads taking a tuple-like type for
3050         C++23 as per P2165R4.
3051         (pair::_S_assignable_from_tuple_like): Define for C++23.
3052         (pair::_S_const_assignable_from_tuple_like): Define for C++23.
3053         (pair::operator=): Define overloads taking a tuple-like type for
3054         C++23 as per P2165R4.
3055         * include/bits/utility.h (ranges::__detail::__is_subrange):
3056         Moved from <ranges>.
3057         * include/bits/version.def (tuple_like): Define for C++23.
3058         * include/bits/version.h: Regenerate.
3059         * include/std/concepts (__different_from): Moved from
3060         <bits/stl_iterator.h>.
3061         (ranges::__swap::__adl_swap): Clarify which __detail namespace.
3062         * include/std/map (__cpp_lib_tuple_like): Define C++23.
3063         * include/std/ranges (__detail::__is_subrange): Moved to
3064         <bits/utility.h>.
3065         (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
3066         (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
3067         (__detail::__tuple_or_pair): Remove as per P2165R4.  Replace all
3068         uses with plain tuple as per P2165R4.
3069         * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
3070         (__tuple_like_tag_t): Define for C++23.
3071         (__tuple_cmp): Forward declare for C++23.
3072         (_Tuple_impl::_Tuple_impl): Define overloads taking
3073         __tuple_like_tag_t and a tuple-like type for C++23.
3074         (_Tuple_impl::_M_assign): Likewise.
3075         (tuple::__constructible_from_tuple_like): Define for C++23.
3076         (tuple::__convertible_from_tuple_like): Define for C++23.
3077         (tuple::__dangles_from_tuple_like): Define for C++23.
3078         (tuple::tuple): Define overloads taking a tuple-like type for
3079         C++23 as per P2165R4.
3080         (tuple::__assignable_from_tuple_like): Define for C++23.
3081         (tuple::__const_assignable_from_tuple_like): Define for C++23.
3082         (tuple::operator=): Define overloads taking a tuple-like type
3083         for C++23 as per P2165R4.
3084         (tuple::__tuple_like_common_comparison_category): Define for C++23.
3085         (tuple::operator<=>): Define overload taking a tuple-like type
3086         for C++23 as per P2165R4.
3087         (array, get): Forward declarations moved to <bits/stl_pair.h>.
3088         (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
3089         (apply): Likewise.
3090         (make_from_tuple): Likewise.
3091         (__tuple_like_common_reference): Define for C++23.
3092         (basic_common_reference): Adjust as per P2165R4.
3093         (__tuple_like_common_type): Define for C++23.
3094         (common_type): Adjust as per P2165R4.
3095         * include/std/unordered_map (__cpp_lib_tuple_like): Define for
3096         C++23.
3097         * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
3098         * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
3099         and 2-tuple interchangeably.
3100         (test05): New test.
3101         * testsuite/20_util/pair/p2165r4.cc: New test.
3102         * testsuite/20_util/tuple/p2165r4.cc: New test.
3104 2024-02-01  Patrick Palka  <ppalka@redhat.com>
3106         * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
3107         factored out from ...
3108         (pair::operator=): ... the constraints of the const overloads.
3110 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
3112         * include/bits/version.tpl: Do not use def-file-line for each
3113         macro being defined.
3114         * include/bits/version.h: Regenerate.
3116 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
3118         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
3119         dg-error pattern.
3120         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
3121         Likewise.
3122         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
3123         Likewise.
3124         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
3125         Likewise.
3126         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
3127         Likewise.
3128         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
3129         Likewise.
3130         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
3131         Likewise.
3132         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
3133         Likewise.
3134         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
3135         Likewise.
3137 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
3139         * include/experimental/internet (network_v4::to_string()):
3140         Remove lambda and use of resize_and_overwrite.
3142 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
3144         * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
3145         needed for newlocale.
3146         * configure: Regenerate.
3147         * src/c++26/text_encoding.cc: Use <xlocale.h>.
3149 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
3150             Ewan Higgs  <ewan.higgs@gmail.com>
3152         * include/bits/text_encoding-data.h: Regenerate.
3153         * scripts/gen_text_encoding_data.py: Add extra_aliases dict
3154         containing "ASCII".
3155         * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
3157 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
3159         * doc/xml/manual/using.xml: Update tables of supported headers.
3160         * doc/html/*: Regenerate.
3162 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
3164         * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
3165         -Wshift-count-overflow warning.
3167 2024-01-30  Jonathan Wakely  <jwakely@redhat.com>
3169         * testsuite/std/time/clock/gps/io.cc: Fix expected result in
3170         assertion and call test_format() from main.
3172 2024-01-29  François Dumont  <fdumont@gcc.gnu.org>
3174         * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
3175         _GLIBCXX_DEBUG_BACKTRACE macro.
3177 2024-01-24  Huanghui Nie  <nnnjkk@gmail.com>
3178             Théo Papadopoulo   <papadopoulo@gmail.com>
3180         * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
3181         _M_before_begin check and cleanup implementation.
3183 2024-01-22  Jonathan Wakely  <jwakely@redhat.com>
3185         * testsuite/std/time/clock/file/io.cc: Fix expected result in
3186         assertion and call test_format() from main.
3188 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
3190         PR libstdc++/113500
3191         * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
3192         printing of subseconds with floating-point rep.
3193         (__formatter_chrono::_M_format_to_ostream): Do not write
3194         time_point specializations directly to the ostream.
3195         (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
3196         empty chrono-spec if the type fails to meet the constraints for
3197         writing to an ostream with operator<<.
3198         * testsuite/std/time/clock/file/io.cc: Check formatting
3199         non-integral times with empty chrono-specs.
3200         * testsuite/std/time/clock/gps/io.cc: Likewise.
3201         * testsuite/std/time/clock/utc/io.cc: Likewise.
3202         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
3204 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
3206         * include/bits/chrono.h (__file_clock::from_sys)
3207         (__file_clock::to_sys, __file_clock::_S_from_sys)
3208         (__file_clock::_S_to_sys): Use common_type for return type.
3209         * testsuite/std/time/clock/file/members.cc: Check round trip
3210         conversion for time with lower precision that seconds.
3212 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
3214         PR libstdc++/113512
3215         * include/std/format (__formatter_fp::format): Fix logic for
3216         alternate forms.
3217         * testsuite/std/format/functions/format.cc: Check buggy cases of
3218         alternate forms with g presentation type.
3220 2024-01-20  Marek Polacek  <polacek@redhat.com>
3222         PR c++/111410
3223         * include/std/ranges: Add #pragma to disable -Wdangling-reference with
3224         std::ranges::views::__adaptor::operator|.
3226 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
3228         * include/std/format (_Spec::_M_parse_fill_and_align): Do not
3229         use CTAD for _Utf32_view.
3231 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
3233         PR libstdc++/108822
3234         * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
3235         wrong fold-operator.
3236         * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
3237         element and three elements. Check allocator-extended
3238         constructors.
3240 2024-01-19  Patrick Palka  <ppalka@redhat.com>
3242         * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
3243         <print> and <text_encoding> for C++23 and C++26 respectively.
3245 2024-01-18  Patrick Palka  <ppalka@redhat.com>
3247         * include/bits/stl_pair.h [__cplusplus > 202002L]:
3248         Guard P2321R2 changes with __glibcxx_ranges_zip instead.
3250 2024-01-18  Patrick Palka  <ppalka@redhat.com>
3252         * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
3253         changes with __cpp_lib_ranges_zip instead.
3255 2024-01-18  Patrick Palka  <ppalka@redhat.com>
3257         PR libstdc++/109536
3258         * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
3259         Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
3260         * include/debug/safe_iterator.h
3261         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
3262         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
3263         (_Safe_iterator::operator=): Use them around the code path that
3264         defines a variable of type __gnu_cxx::__scoped_lock.
3265         (_Safe_iterator::operator++): Likewise.
3266         (_Safe_iterator::operator--): Likewise.
3267         (_Safe_iterator::operator+=): Likewise.
3268         (_Safe_iterator::operator-=): Likewise.
3269         * testsuite/23_containers/vector/element_access/constexpr.cc
3270         (test_iterators): Test more iterator operations.
3271         * testsuite/23_containers/vector/bool/element_access/constexpr.cc
3272         (test_iterators): Likewise.
3273         * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
3274         Remove.
3276 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
3278         * include/bits/unicode.h (__charset_alias_match): Initialize
3279         __var_a and __var_b.
3281 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
3283         PR libstdc++/113450
3284         * testsuite/std/format/functions/format.cc: Use signed char
3285         instead of int8_t.
3287 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
3289         PR libstdc++/113318
3290         * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
3291         (GLIBCXX_CHECK_TEXT_ENCODING): Define.
3292         * config.h.in: Regenerate.
3293         * configure: Regenerate.
3294         * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
3295         * include/Makefile.am: Add new headers.
3296         * include/Makefile.in: Regenerate.
3297         * include/bits/locale_classes.h (locale::encoding): Declare new
3298         member function.
3299         * include/bits/unicode.h (__charset_alias_match): New function.
3300         * include/bits/text_encoding-data.h: New file.
3301         * include/bits/version.def (text_encoding): Define.
3302         * include/bits/version.h: Regenerate.
3303         * include/std/text_encoding: New file.
3304         * src/Makefile.am: Add new subdirectory.
3305         * src/Makefile.in: Regenerate.
3306         * src/c++26/Makefile.am: New file.
3307         * src/c++26/Makefile.in: New file.
3308         * src/c++26/text_encoding.cc: New file.
3309         * src/experimental/Makefile.am: Include c++26 convenience
3310         library.
3311         * src/experimental/Makefile.in: Regenerate.
3312         * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
3313         printer.
3314         * scripts/gen_text_encoding_data.py: New file.
3315         * testsuite/22_locale/locale/encoding.cc: New test.
3316         * testsuite/ext/unicode/charset_alias_match.cc: New test.
3317         * testsuite/std/text_encoding/cons.cc: New test.
3318         * testsuite/std/text_encoding/members.cc: New test.
3319         * testsuite/std/text_encoding/requirements.cc: New test.
3321 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
3323         * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
3324         Do not use CTAD for _Utf32_view.
3325         (__format_width, __truncate): Do not use CTAD.
3326         (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
3327         (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
3329 2024-01-17  Patrick Palka  <ppalka@redhat.com>
3331         * include/std/ranges (views::_CartesianProduct::operator()):
3332         Adjust identity case as per P2540R1.
3333         * testsuite/std/ranges/cartesian_product/1.cc (test01):
3334         Adjust expected result of the identity case.
3336 2024-01-15  Patrick Palka  <ppalka@redhat.com>
3338         * include/std/variant (__detail::__variant::_Variadic_union):
3339         Add bool __trivially_destructible template parameter.
3340         (__detail::__variant::_Variadic_union::~_Variadic_union):
3341         Use __trivially_destructible in constraints instead.
3342         (__detail::__variant::_Variant_storage): Pass
3343         __trivially_destructible value to _Variadic_union.
3345 2024-01-15  Patrick Palka  <ppalka@redhat.com>
3347         * include/bits/stl_iterator.h (const_iterator): Define conversion
3348         operators as per P2836R1.
3349         * include/bits/version.def (ranges_as_const): Update value.
3350         * include/bits/version.h: Regenerate.
3351         * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
3352         * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
3353         value of __cpp_lib_ranges_as_const.
3354         * testsuite/std/ranges/version_c++23.cc: Likewise.
3356 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
3358         PR libstdc++/108822
3359         * include/std/tuple (__assignable, __is_nothrow_assignable):
3360         Move pre-C++20 definitions adjacent to their use.
3362 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
3364         PR testsuite/113366
3365         * include/std/format (basic_format_arg): Use __formattable
3366         variable template instead of __format::__formattable_with
3367         concept.
3369 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
3371         * src/c++20/tzdata.zi: Import new file from 2023d release.
3372         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
3373         Update expiry date for leap seconds list.
3375 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
3377         PR libstdc++/108822
3378         * include/std/tuple (tuple): Add checks for dangling references.
3379         Reimplement constraints and constant expressions using C++20
3380         features.
3381         * include/std/type_traits [C++20]
3382         (__is_implicitly_default_constructible_v): Define.
3383         (__is_implicitly_default_constructible): Use variable template.
3384         * testsuite/20_util/tuple/dangling_ref.cc: New test.
3386 2024-01-13  Patrick Palka  <ppalka@redhat.com>
3388         PR libstdc++/108827
3389         PR libstdc++/111327
3390         * include/bits/version.def (bind_back): Define.
3391         * include/bits/version.h: Regenerate.
3392         * include/std/functional (_Bind_back): Define for C++23.
3393         (bind_back): Likewise.
3394         * testsuite/20_util/function_objects/bind_back/1.cc: New test
3395         (adapted from corresponding bind_front test).
3396         * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
3398 2024-01-13  Patrick Palka  <ppalka@redhat.com>
3400         * include/std/functional (_Bind_front): Remove =default special
3401         member function declarations.
3402         (_Bind_front::operator()): Implement using C++23 deducing this
3403         when available.
3404         * testsuite/20_util/function_objects/bind_front/111327.cc:
3405         Adjust testcase to expect better errors in C++23 mode.
3407 2024-01-13  Patrick Palka  <ppalka@redhat.com>
3409         * include/std/ranges (views::__adaptor::operator|): Perform
3410         perfect forwarding of arguments.
3411         (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
3412         first argument to _Partial.
3413         (views::__adaptor::_Partial::_Partial): Likewise.  Add dummy
3414         first parameter.
3415         (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
3416         of arguments.
3417         (to): Pass dummy first argument to _Partial.
3419 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
3421         PR libstdc++/107466
3422         * include/bits/random.tcc (subtract_with_carry_engine::seed):
3423         Implement proposed resolution of LWG 4014.
3424         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3425         line number.
3426         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
3427         Check for expected result of 64-bit engine with seed that
3428         doesn't fit in 32-bits.
3430 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
3432         PR libstdc++/113320
3433         * include/std/format (__format::_Runtime_format_string): Add
3434         constructor and disable copy operations.
3435         (basic_format_string(_Runtime_format_string)): Add noexcept and
3436         take parameter by value not rvalue reference.
3437         (runtime_format): Add noexcept.
3438         * testsuite/std/format/runtime_format.cc: Check noexcept. Check
3439         that construction is only possible from prvalues, not xvalues.
3441 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
3443         PR libstdc++/105505
3444         * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
3445         default template arguments, as per P1951R1.
3446         * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
3448 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
3450         * include/std/format (__format::_Arg_store): Fix PR number in
3451         comment. Simplify preprocessor code.
3453 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
3455         * doc/xml/manual/evolution.xml: Fix spelling.
3456         * doc/html/manual/api.html: Regenerate.
3458 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
3460         * doc/xml/manual/evolution.xml: Document addition of
3461         libstdc++exp.a.
3462         * doc/html/*: Regenerate.
3464 2024-01-11  Marcus Haehnel  <marcus.haehnel@kernkonzept.com>
3466         * libsupc++/eh_unex_handler.cc: Adjust definition type to
3467         declaration.
3469 2024-01-11  Michael Levine  <mlevine55@bloomberg.net>
3471         * include/std/ranges (__glibcxx_want_ranges_iota): Remove
3472         duplicate definition.
3474 2024-01-11  François Dumont  <fdumont@gcc.gnu.org>
3476         PR libstdc++/112477
3477         * src/c++11/debug.cc
3478         (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
3479         sequence.
3480         (_Safe_iterator_base::_M_attach_single): Likewise.
3481         (_Safe_local_iterator_base::_M_attach): Likewise.
3482         (_Safe_local_iterator_base::_M_attach_single): Likewise.
3483         * testsuite/23_containers/map/debug/112477.cc: New test case.
3485 2024-01-11  Patrick Palka  <ppalka@redhat.com>
3487         * include/bits/move.h (__like_t): Define in C++23 mode.
3488         * include/std/ranges (views::__adaptor::Partial::operator()):
3489         Implement using C++23 deducing this when available.
3490         (views::__adaptor::_Pipe::operator()): Likewise.
3491         * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
3492         accept new "no match for call" errors issued in C++23 mode.
3493         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
3495 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
3497         * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
3498         Add printer for std::integral_constant.
3499         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
3501 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
3503         PR libstdc++/113258
3504         * libsupc++/new_opa.cc: Prefer to use posix_memalign if
3505         available.
3507 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
3509         * src/filesystem/ops-common.h (stat_type): Use using.
3511 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
3513         PR libstdc++/113250
3514         * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
3515         * src/filesystem/ops.cc (fs::equivalent): Likewise.
3516         * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
3517         error codes.
3518         * testsuite/experimental/filesystem/operations/equivalent.cc:
3519         Likewise.
3521 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
3523         * include/std/type_traits (is_compound): Do not use __not_.
3524         (is_compound_v): Use is_fundamental_v instead.
3526 2024-01-11  Patrick Palka  <ppalka@redhat.com>
3528         * include/bits/utility.h (_Nth_type): Use
3529         _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
3531 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
3533         * include/bits/unicode-data.h: Regenerate.
3534         * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
3535         by one error.
3536         (__incb_property): Add missing check for values before the
3537         first edge.
3538         (__is_extended_pictographic): Invert return values to fix
3539         copy&pasted logic.
3540         (_Grapheme_cluster_view::_Iterator): Remove second iterator
3541         member and find end of cluster lazily.
3542         * testsuite/ext/unicode/grapheme_view.cc: New test.
3543         * testsuite/ext/unicode/properties.cc: New test.
3544         * testsuite/ext/unicode/view.cc: New test.
3546 2024-01-09  Andreas Schwab  <schwab@linux-m68k.org>
3548         * scripts/extract_symvers.in: Require final colon to only match
3549         .dsynsym in the header of the dynamic symtab.
3551 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
3553         * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
3554         handling of string returned from std::format.
3555         (__formatter_chrono::_M_R_T): Likewise.
3557 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
3559         * include/bits/unicode.h (__null_sentinel): Remove.
3560         * testsuite/17_intro/names.cc: Add __null_sentinel.
3562 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
3564         * include/std/format (__format::_Runtime_format_string): Define
3565         new class template.
3566         (basic_format_string): Add non-consteval constructor for runtime
3567         format strings.
3568         (runtime_format): Define new function for C++26.
3569         * testsuite/std/format/runtime_format.cc: New test.
3571 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
3573         * include/bits/chrono_io.h (__formatter_chrono): Always use
3574         lvalue arguments to make_format_args.
3575         * include/std/format (make_format_args): Change parameter pack
3576         from forwarding references to lvalue references. Remove use of
3577         remove_reference_t which is now unnecessary.
3578         (format_to, formatted_size): Remove incorrect forwarding of
3579         arguments.
3580         * include/std/ostream (print): Remove forwarding of arguments.
3581         * include/std/print (print): Likewise.
3582         * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
3583         make_format_args.
3584         * testsuite/std/format/arguments/args.cc: Likewise.
3585         * testsuite/std/format/arguments/lwg3810.cc: Likewise.
3586         * testsuite/std/format/functions/format.cc: Likewise.
3587         * testsuite/std/format/functions/vformat_to.cc: Likewise.
3588         * testsuite/std/format/string.cc: Likewise.
3589         * testsuite/std/time/day/io.cc: Likewise.
3590         * testsuite/std/time/month/io.cc: Likewise.
3591         * testsuite/std/time/weekday/io.cc: Likewise.
3592         * testsuite/std/time/year/io.cc: Likewise.
3593         * testsuite/std/time/year_month_day/io.cc: Likewise.
3594         * testsuite/std/format/arguments/args_neg.cc: New test.
3596 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
3598         * include/Makefile.am: Add new headers.
3599         * include/Makefile.in: Regenerate.
3600         * include/bits/unicode.h: New file.
3601         * include/bits/unicode-data.h: New file.
3602         * include/std/format: Include <bits/unicode.h>.
3603         (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
3604         (_Spec::_M_fill): Change type to char32_t.
3605         (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
3606         instead of a single character.
3607         (__write_padded): Change __fill_char parameter to char32_t and
3608         encode it into the output.
3609         (__formatter_str::format): Use new __unicode::__field_width and
3610         __unicode::__truncate functions.
3611         * include/std/ostream: Adjust namespace qualification for
3612         __literal_encoding_is_utf8.
3613         * include/std/print: Likewise.
3614         * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
3615         * testsuite/ext/unicode/view.cc: New test.
3616         * testsuite/std/format/functions/format.cc: Add missing examples
3617         from the standard demonstrating alignment with non-ASCII
3618         characters. Add examples checking correct handling of extended
3619         grapheme clusters.
3621 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
3623         * include/bits/version.def (format_uchar): Define.
3624         * include/bits/version.h: Regenerate.
3625         * include/std/format (formatter<C, C>::format): Check for
3626         _Pres_c and call _M_format_character directly. Cast C to its
3627         unsigned equivalent for formatting as an integer.
3628         (formatter<char, wchar_t>::format): Likewise.
3629         (basic_format_arg(T&)): Store char arguments as unsigned char
3630         for formatting to a wide string.
3631         * testsuite/std/format/functions/format.cc: Adjust test. Check
3632         formatting of
3634 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
3636         PR libstdc++/112997
3637         * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
3638         parameter to void*.
3640 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
3642         * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
3644 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
3646         * include/std/type_traits (is_trivially_destructible_v): Use
3647         built-in directly when concepts are supported.
3648         * testsuite/20_util/is_trivially_destructible/value_v.cc: New
3649         test.
3651 2024-01-06  Gwenole Beauchesne  <gb.devel@gmail.com>
3653         * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
3654         nonnull arguments to strtoimax() and wcstoimax() functions.
3656 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
3658         * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
3659         size and check for overflows in arithmetic.
3660         (path::operator/=(const path&)): Remove redundant exponential
3661         growth calculation.
3663 2024-01-05  Martin Küttler  <martin.kuettler@kernkonzept.com>
3665         * src/c++17/fs_path.cc (path::_List::reserve): Avoid
3666         floating-point arithmetic.
3668 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
3670         PR libstdc++/113241
3671         * include/std/type_traits (is_convertible_v): Guard use of
3672         built-in with preprocessor check.
3674 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
3676         PR libstdc++/113200
3677         * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
3678         __builtin_constant_p to check for unrelated pointers that cannot
3679         be compared during constant evaluation.
3680         * testsuite/21_strings/char_traits/requirements/113200.cc: New
3681         test.
3683 2024-01-05  Cassio Neri  <cassio.neri@gmail.com>
3685         * include/std/chrono: Fix + and - for months and weekdays.
3686         * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
3687         * testsuite/std/time/month/2.cc: New test for extreme values.
3688         * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
3689         * testsuite/std/time/weekday/2.cc: New test for extreme values.
3691 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
3693         PR libstdc++/113099
3694         * include/bits/locale_classes.tcc (__try_use_facet): Use
3695         if-constexpr for C++11 and up.
3697 2024-01-05  Ken Matsui  <kmatsui@gcc.gnu.org>
3699         * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
3701 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
3703         * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
3704         reported by Will Hawkins <hawkinsw@obs.cr>.
3706 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
3708         * include/std/generator (_Stateless_alloc): Rename typename _A
3709         to _All.
3711 2024-01-03  Patrick Palka  <ppalka@redhat.com>
3713         PR testsuite/113175
3714         * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
3715         'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
3716         (test03): Likewise.
3719 Copyright (C) 2024 Free Software Foundation, Inc.
3721 Copying and distribution of this file, with or without modification,
3722 are permitted in any medium without royalty provided the copyright
3723 notice and this notice are preserved.