doc: Describe limitations re Ada, D, and Go on FreeBSD
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob6051dd3f1ab266726431a6224a12311a7d476654
1 2024-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
3         * testsuite/lib/gdb-test.exp (gdb-test): Fix regexp.  Quote
4         newlines in logs.
6 2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8         Backported from master:
9         2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
12         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
13         Likewise.
14         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
15         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
16         Likewise.
18 2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20         Backported from master:
21         2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
24         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
25         Likewise.
26         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
27         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
28         Likewise.
30 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
32         PR libstdc++/114863
33         * include/std/format (__formatter_fp::format): Only use
34         _M_localized for finite values.
35         * testsuite/std/format/functions/format.cc: Check localized
36         formatting of NaN and initiny.
38 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
40         * doc/html/manual/status.html: Regenerate.
41         * doc/xml/manual/status_cxx1998.xml: Adjust whitespace.
42         * doc/xml/manual/status_cxx2011.xml: Likewise.
43         * doc/xml/manual/status_cxx2014.xml: Likewise.
44         * doc/xml/manual/status_cxx2017.xml: Likewise.
45         * doc/xml/manual/status_cxx2020.xml: Likewise.
46         * doc/xml/manual/status_cxx2023.xml: Likewise.
47         * doc/xml/manual/status_cxxtr1.xml: Likewise.
48         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
50 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
52         * scripts/run_doxygen: Rename man pages for nested types.
54 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
56         * include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
58 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
60         * scripts/run_doxygen: Adjust sed pattern to match '\fR' for
61         new man output that Doxygen 1.10 generates.
63 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
65         * doc/doxygen/stdheader.cc (init_map): Add missing headers.
66         * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
67         std::format and std::text_encoding.
69 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
71         * include/std/variant: Add comment to #include.
73 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
75         PR libstdc++/114803
76         * include/experimental/bits/simd_builtin.h
77         (_SimdBase2::operator __vector_type_t): There is no __builtin()
78         function in _SimdWrapper, instead use its conversion operator.
79         * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
80         test.
82 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
84         * include/experimental/bits/simd.h: Ignore -Wnarrowing for
85         arm_neon.h.
86         (__int_for_sizeof): Replace tautological compare with checking
87         for invalid template parameter value.
88         * include/experimental/bits/simd_builtin.h (__extract_part):
89         Remove tautological compare by combining two static_assert.
91 2024-04-22  Jakub Jelinek  <jakub@redhat.com>
93         * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
94         * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
95         define on s390.
96         * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
97         Likewise.
98         * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
99         Likewise.
100         * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
101         Likewise.
102         * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
103         Likewise.
105 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
107         * include/bits/refwrap.h (operator<=>): Simplify constraints.
109 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
111         PR libstdc++/114770
112         * src/c++20/tzdb.cc (do_locate_zone): Support links that have
113         another link as their target.
114         * testsuite/std/time/tzdb/1.cc: Check that all zones and links
115         can be found by locate_zone.
116         * testsuite/std/time/tzdb/links.cc: New test.
118 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
120         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
121         Disable SRA.
123 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
125         * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
126         on aarch64-vxworks.
127         * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
128         aarch64-vxworks.
130 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
132         * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
133         on VxWorks non-RTP.
135 2024-04-17  Jonathan Wakely  <jwakely@redhat.com>
137         * include/std/ostream (println(ostream&)): Define new overload.
138         * include/std/print (println(FILE*), println()): Likewise.
139         * testsuite/27_io/basic_ostream/print/2.cc: New test.
140         * testsuite/27_io/print/1.cc: Remove unused header.
141         * testsuite/27_io/print/3.cc: New test.
143 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
145         * include/experimental/bits/numeric_traits.h: Add include guard.
147 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
149         PR libstdc++/114750
150         * include/experimental/bits/simd_builtin.h
151         (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
152         scalars if the memory type cannot be vectorized for the target.
154 2024-04-16  Jonathan Wakely  <jwakely@redhat.com>
156         * config/locale/dragonfly/numeric_members.cc: Fix typos in
157         comments.
158         * config/locale/gnu/numeric_members.cc: Likewise.
160 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
162         * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
163         * doc/html/manual/abi.html: Regenerate.
165 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
167         * include/bits/refwrap.h (reference_wrapper): Add comparison
168         operators as proposed by P2944R3.
169         * include/bits/version.def (reference_wrapper): Define.
170         * include/bits/version.h: Regenerate.
171         * include/std/functional: Enable feature test macro.
172         * testsuite/20_util/reference_wrapper/compare.cc: New test.
174 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
176         PR libstdc++/113386
177         * include/bits/stl_pair.h (operator==, operator<=>): Support
178         heterogeneous comparisons, as per LWG 3865.
179         * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
180         test.
182 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
184         PR libstdc++/93672
185         * src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
186         Treat all negative delimiter values as eof().
187         * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
188         * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
189         test.
191 2024-04-15  Andreas Schwab  <schwab@suse.de>
193         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
195 2024-04-13  H.J. Lu  <hjl.tools@gmail.com>
197         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
198         Updated.
200 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
202         * doc/xml/manual/abi.xml: Add latest library versions.
203         * doc/html/manual/abi.html: Regenerate.
205 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
207         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
208         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
209         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
210         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
211         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
212         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
213         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
214         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
215         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
217 2024-04-11  Jonathan Wakely  <jwakely@redhat.com>
219         PR libstdc++/114692
220         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
221         __basic_file::native_handle to ...
222         (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
223         specialization, which isn't used.
224         * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
225         latest version check.
227 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
229         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
230         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
231         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
232         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
233         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
234         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
235         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
236         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
237         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
239 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
241         * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
242         Adjust input string so that it matches %a with or without a
243         trailing period.
244         * testsuite/std/time/year_month_day/io.cc: Adjust expected
245         format for %x in the fr_FR locale.
247 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
249         * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
250         Check for EMLINK as well as ELOOP.
251         [__NetBSD__]: Check for EFTYPE as well as ELOOP.
253 2024-04-09  Jonathan Wakely  <jwakely@redhat.com>
255         PR libstdc++/114633
256         * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
257         stream extraction if std::from_chars is not available.
259 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
261         PR libstdc++/114519
262         * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
263         using char instead of char8_t.
264         * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
265         string views, instead of std::u8string_view.
267 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
269         * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
270         no-opts selector for errors that depend on -fchar8_t.
271         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
272         Likewise.
273         * testsuite/20_util/integer_comparisons/greater_neg.cc:
274         Likewise.
275         * testsuite/20_util/integer_comparisons/in_range_neg.cc:
276         Likewise.
277         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
278         Likewise.
279         * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
280         * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
281         Likewise.
282         * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
283         if -fno-char8_t is used.
284         * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
285         Likewise.
286         * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
287         Likewise.
288         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
289         Likewise.
290         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
291         char for u8 literal if char8_t is not available.
292         * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
293         __cpp_char8_t.
294         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
295         * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
296         Remove check for _GLIBCXX_USE_CHAR8_T.
298 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
300         * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
301         using a struct of that name if -fno-char8_t is active.
302         * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
304 2024-04-03  Jonathan Wakely  <jwakely@redhat.com>
306         PR libstdc++/104606
307         * include/std/optional (operator<=>(const optional<T>&, const U&)):
308         Reverse order of three_way_comparable_with template arguments.
309         * testsuite/20_util/optional/relops/104606.cc: New test.
311 2024-04-02  Jonathan Wakely  <jwakely@redhat.com>
313         PR libstdc++/114519
314         * include/bits/unicode.h (_Utf8_view): Guard with check for
315         char8_t being enabled.
316         (__literal_encoding_is_unicode): Guard use of char8_t with check
317         for it being enabled.
318         * testsuite/std/format/functions/114519.cc: New test.
320 2024-04-02  Patrick Palka  <ppalka@redhat.com>
322         * include/std/ranges (ranges::__detail::_Empty): Rename to ...
323         (ranges::__detail::_Absent): ... this.  Turn into a template
324         parameterized by the absent type _Tp and discriminator _Disc.
325         (ranges::__detail::__maybe_present_t): Add an optional
326         discriminator parameter.
327         (slide_view::_M_cached_begin): Pass a discriminator argument to
328         __maybe_present_t.
329         (slide_view::_M_cached_end): Likewise.
330         * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
331         slide_view<V> is 3 instead 4 pointers.
333 2024-04-02  Jakub Jelinek  <jakub@redhat.com>
335         * acinclude.m4: Fix duplicated words; file file -> file can.
336         * configure.host: Fix duplicated words; the the -> the.
338 2024-03-29  Arsen Arsenović  <arsen@aarsen.me>
340         * testsuite/24_iterators/range_generators/01.cc: Drop GCC
341         Runtime Library Exception.
342         * testsuite/24_iterators/range_generators/02.cc: Drop GCC
343         Runtime Library Exception.
344         * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
345         Runtime Library Exception.
346         * testsuite/24_iterators/range_generators/except.cc: Drop GCC
347         Runtime Library Exception.
348         * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
349         Runtime Library Exception.
350         * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
351         Runtime Library Exception.
352         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
353         Drop GCC Runtime Library Exception from the "You should have
354         received a copy" paragraph.
356 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
358         * include/experimental/bits/simd_x86.h (_S_masked_unary):
359         Cast inputs < 16 bytes to 16 byte vectors before calling the
360         right subtraction builtin. Before returning, truncate to the
361         return vector type.
363 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
365         * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
366         the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
367         rounding direction argument.
369 2024-03-27  Srinivas Yadav Singanaboina  <vasu.srinivasvasu.14@gmail.com>
371         * include/Makefile.am: Add simd_sve.h.
372         * include/Makefile.in: Add simd_sve.h.
373         * include/experimental/bits/simd.h: Add new SveAbi.
374         * include/experimental/bits/simd_builtin.h: Use
375         __no_sve_deduce_t to support existing Neon Abi.
376         * include/experimental/bits/simd_converter.h: Convert
377         sequentially when sve is available.
378         * include/experimental/bits/simd_detail.h: Define sve
379         specific macro.
380         * include/experimental/bits/simd_math.h: Fallback frexp
381         to execute sequntially when sve is available, to handle
382         fixed_size_simd return type that always uses sve.
383         * include/experimental/simd: Include bits/simd_sve.h.
384         * testsuite/experimental/simd/tests/bits/main.h: Enable
385         testing for sve128, sve256, sve512.
386         * include/experimental/bits/simd_sve.h: New file.
388 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
390         * include/std/generator (generator::_Iterator::operator*): Fix
391         return type.
392         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
393         New test.
395 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
397         * include/std/generator: Fix _V badname.
399 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
401         * testsuite/19_diagnostics/stacktrace/current.cc: Check for
402         __cpp_lib_stacktrace instead of check for stacktrace ET.
403         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
404         * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
405         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
406         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
407         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
408         * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
409         * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
410         Likewise.
411         * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
412         Remove.
414 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
416         * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
417         New proc.
418         * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
419         New proc.
420         * testsuite/std/text_encoding/cons.cc: Use new directive to skip
421         the test if the __cpp_lib_text_encoding feature test macro is
422         not defined.
423         * testsuite/std/text_encoding/requirements.cc: Likewise.
425 2024-03-25  Jonathan Wakely  <jwakely@redhat.com>
427         * testsuite/std/text_encoding/requirements.cc: #undef the
428         correct macro.
430 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
432         * include/std/format (formatter): Disable specializations that
433         would allow sequences of narrow characters to be formatted as
434         wchar_t without conversion, as per LWG 3944.
435         * testsuite/std/format/formatter/lwg3944.cc: New test.
437 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
439         * include/bits/utility.h (__is_in_place_index_v): New variable
440         template.
441         * include/std/variant (__not_in_place_tag): Define in terms of
442         variable templates not a class template.
444 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
446         PR libstdc++/114400
447         * include/std/string_view (operator==): Use std::type_identity_t
448         in C++20 instead of our own __type_identity_t.
450 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
452         PR libstdc++/114401
453         * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
454         release() on node handle instead of just zeroing its pointer.
455         (_Hashtable::_M_reinsert_node_multi): Likewise.
456         (_Hashtable::_M_merge_unique): Likewise.
457         (_Hashtable::_M_merge_multi): Likewise.
458         * include/bits/node_handle.h (_Node_handle_common::release()):
459         New member function.
460         (_Node_handle_common::_Optional_alloc::_M_empty): Remove
461         unnecessary union member.
462         (_Node_handle_common): Declare _Hashtable as a friend.
463         * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
464         Call release() on node handle instead of just zeroing its
465         pointer.
466         (_Rb_tree::_M_reinsert_node_equal): Likewise.
467         (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
468         (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
469         * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
470         * testsuite/23_containers/set/modifiers/114401.cc: New test.
471         * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
472         * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
474 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
476         PR libstdc++/113841
477         * include/bits/allocator.h (allocator<cv T>): Add default
478         constructor to partial specializations for cv-qualified types.
479         * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
480         Constrain so that it's only present if the allocator is default
481         constructible.
482         * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
483         Likewise.
484         * testsuite/23_containers/vector/cons/113841.cc: New test.
486 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
488         * include/bits/stl_construct.h (destroy_at, construct_at): Guard
489         with feature test macros instead of just __cplusplus.
491 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
493         * include/bits/version.def (generator, tuple_like): Move earlier
494         in the file.
495         * include/bits/version.h: Regenerate.
497 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
499         PR libstdc++/114394
500         * include/std/functional (bind): Use __invoke_result_t instead
501         of result_of::type.
502         * include/std/type_traits (__invoke_result_t): New alias
503         template.
504         * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
506 2024-03-20  François Dumont  <fdumont@gcc.gnu.org>
508         * include/bits/version.def (null_iterators): Remove extra_cond.
509         * include/bits/version.h: Regenerate.
511 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
513         PR libstdc++/114359
514         * include/bits/random.tcc (binomial_distribution::param_type):
515         Ensure arithmetic is done as type double.
516         * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
518 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
520         PR libstdc++/101228
521         * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
522         Define before including <tbb/task.h> then undef afterwards.
524 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
526         * include/Makefile.am [MAINTAINER_MODE]: Add target to
527         automatically update <bits/version.h>.
528         * include/Makefile.in: Regenerate.
530 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
532         * doc/xml/manual/build_hacking.xml: Document generated files.
533         Update list of convenience libraries and sub-directories under
534         the src directory.
535         * doc/html/*: Regenerate.
537 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
539         * include/bits/text_encoding-data.h: Regenerate.
540         * include/bits/unicode-data.h: Regenerate.
541         * scripts/gen_text_encoding_data.py: Fix header of generated
542         file to name the correct script.
544 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
546         * testsuite/util/pstl/test_utils.h: Fix typos in comments.
548 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
550         PR libstdc++/114367
551         * include/bits/stl_bvector.h (_M_allocate): Use allocator's
552         construct function to begin lifetime of words.
554 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
556         * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
557         option for the path to the uninstalled libatomic.
559 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
561         * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
562         /dev/null, use a temporary file for test executables on Darwin.
564 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
566         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
567         Accept 0 offset advance on value-initialized iterator.
568         * testsuite/23_containers/vector/debug/n3644.cc: New test case.
570 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
572         * include/debug/safe_local_iterator.tcc
573         (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
574         _M_singular checks.
575         * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
577 2024-03-17  François Dumont  <fdumont@gcc.gnu.org>
579         PR libstdc++/114316
580         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
581         First check if both iterators are value-initialized before checking if
582         singular.
583         * testsuite/23_containers/set/debug/114316.cc: New test case.
584         * testsuite/23_containers/vector/debug/114316.cc: New test case.
586 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
588         PR libstdc++/114325
589         * include/std/format (_Scanner::_M_scan): Pass correct length to
590         __to_chars_10_impl.
591         * testsuite/std/format/functions/format.cc: Check negative
592         integers with empty format-spec.
594 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
596         * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
597         (find_if_not, is_partitioned, partition_point, remove)
598         (remove_if, unique, lower_bound, upper_bound, equal_range)
599         (binary_search, includes, is_sorted, is_sorted_until, minmax)
600         (minmax_element, is_permutation, clamp, find_if, find_first_of)
601         (adjacent_find, count, count_if, search, search_n, min_element)
602         (max_element): Add nodiscard attribute.
603         * include/bits/stl_algobase.h (min, max, lower_bound, equal)
604         (lexicographical_compare, lexicographical_compare_three_way)
605         (mismatch): Likewise.
606         * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
607         * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
608         * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
609         * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
610         * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
611         Likewise.
612         * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
613         * testsuite/25_algorithms/lexicographical_compare/71545.cc:
614         Likewise.
615         * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
616         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
617         Likewise.
618         * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
619         Likewise.
620         * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
621         Likewise.
622         * testsuite/25_algorithms/minmax/3.cc: Likewise.
623         * testsuite/25_algorithms/search/78346.cc: Likewise.
624         * testsuite/25_algorithms/search_n/58358.cc: Likewise.
625         * testsuite/25_algorithms/unique/1.cc: Likewise.
626         * testsuite/25_algorithms/unique/11480.cc: Likewise.
627         * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
628         * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
629         Likewise.
630         * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
631         Likewise.
632         * testsuite/ext/concept_checks.cc: Likewise.
633         * testsuite/ext/is_heap/47709.cc: Likewise.
634         * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
636 2024-03-14  xndcn  <xndchn@gmail.com>
638         * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
639         Clear padding.
640         * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
641         New test.
643 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
645         PR libstdc++/66146
646         * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
647         note about std::call_once.
648         * doc/xml/manual/status_cxx2014.xml: Likewise.
649         * doc/xml/manual/status_cxx2017.xml: Likewise.
650         * doc/html/manual/status.html: Regenerate.
652 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
654         * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
655         * doc/html/manual/status.html: Regenerate.
656         * include/bits/version.def: Fix typo in comment.
658 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
660         * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
661         to namespace scope.
663 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
665         * doc/xml/manual/debug.xml: Improve docs on debug builds and
666         using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
667         the most relevant ones first.
668         * doc/xml/manual/using.xml: Add comma.
669         * doc/html/*: Regenerate.
671 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
673         * doc/xml/manual/debug.xml: Document that concept checking might
674         be removed in future.
675         * doc/xml/manual/extensions.xml: Likewise.
677 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
679         PR libstdc++/114240
680         * include/bits/chrono_io.h (_Parser::operator()): Assume
681         hours(0) for a time_point, so that a time is not required
682         to be present.
683         * testsuite/std/time/parse/114240.cc: New test.
685 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
687         PR libstdc++/114279
688         * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
689         data member.
690         (_Parser::_M_reserved): Reserve padding bits for future use.
691         (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
692         (from_stream): Only allow _M_is_leap_second for utc_time and
693         local_time. Adjust arithmetic for utc_time so that leap seconds
694         are preserved. Use time_point_cast to convert to a possibly
695         lower-precision result type.
696         * testsuite/std/time/parse.cc: Move to ...
697         * testsuite/std/time/parse/parse.cc: ... here.
698         * testsuite/std/time/parse/114279.cc: New test.
700 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
702         * include/bits/chrono_io.h (_Parser::operator()): Use
703         std::from_chars to parse fractional seconds.
705 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
707         PR libstdc++/114244
708         * include/bits/chrono_io.h (_Parser::operator()): Remove
709         redundant uses of duration_cast. Use chrono::round to convert
710         long double value to durations with integer representations.
711         Check represenation type when deciding whether to skip parsing
712         fractional seconds.
713         * testsuite/20_util/duration/114244.cc: New test.
714         * testsuite/20_util/duration/io.cc: Check that a floating-point
715         duration with ratio<1> precision can be parsed.
717 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
719         PR libstdc++/114103
720         * include/bits/version.def (atomic_lock_free_type_aliases): Add
721         extra_cond to check for at least one always-lock-free type.
722         * include/bits/version.h: Regenerate.
723         * include/std/atomic (atomic_signed_lock_free)
724         (atomic_unsigned_lock_free): Only use always-lock-free types.
725         * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
726         atomic counter if lock-free aliases aren't available.
727         * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
728         targets without lock-free word-size compare_exchange.
730 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
732         * include/std/chrono (__get_leap_second_info): Update expiry
733         time for hardcoded list of leap seconds.
734         * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
736 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
738         * testsuite/23_containers/deque/allocator/default_init.cc: Use
739         std::memset instead of __builtin_memset.
740         * testsuite/23_containers/forward_list/allocator/default_init.cc:
741         Likewise.
742         * testsuite/23_containers/list/allocator/default_init.cc:
743         Likewise.
744         * testsuite/23_containers/map/allocator/default_init.cc:
745         Likewise.
746         * testsuite/23_containers/set/allocator/default_init.cc:
747         Likewise.
748         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
749         Likewise.
750         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
751         Likewise.
752         * testsuite/23_containers/vector/allocator/default_init.cc:
753         Likewise.
754         * testsuite/23_containers/vector/bool/allocator/default_init.cc:
755         Likewise.
756         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
757         Likewise.
758         * testsuite/util/atomic/wait_notify_util.h: Likewise.
760 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
762         * include/std/format (_Arg_store::_S_make_elt): Add two
763         static_assert checks to give more user-friendly error messages.
764         * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
765         form of "in requirements with" note.
766         * testsuite/std/format/arguments/args_neg.cc: Check for
767         user-friendly diagnostics for non-formattable types.
768         * testsuite/std/format/string_neg.cc: Likewise.
770 2024-03-04  Jonathan Wakely  <jwakely@redhat.com>
772         PR libstdc++/114147
773         * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
774         Add missing overload of allocator-extended default constructor.
775         (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
776         * testsuite/20_util/tuple/cons/114147.cc: New test.
778 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
780         * include/std/format (basic_format_arg::handle::__maybe_const_t):
781         Fix condition to check if const type is formattable.
782         (basic_format_arg::handle::handle(T&)): Remove redundant
783         static_assert.
784         * testsuite/std/format/formatter/basic.cc: New test.
786 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
788         PR libstdc++/113960
789         * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
790         (__memcmp_ordered_with): New concept.
791         (lexicographical_compare_three_way): Use __memcmp_ordered_with
792         instead of __is_byte_iter. Use correct length for memcmp.
793         * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
794         New test.
796 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
798         PR libstdc++/114152
799         * include/experimental/scope (scope_exit scope_fail): Make
800         destructor unconditionally noexcept.
801         (scope_sucess): Fix noexcept-specifier.
802         * testsuite/experimental/scopeguard/114152.cc: New test.
804 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
806         * doc/xml/manual/appendix_contributing.xml: Change URLs to use
807         https.
808         * doc/html/manual/*: Regenerate.
810 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
812         * doc/xml/manual/appendix_contributing.xml: Replace outdated
813         info on ChangeLog entries.
814         * doc/html/manual/appendix_contributing.html: Regenerate.
816 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
818         * include/bits/stl_bvector.h (vector<bool, A>::at): Add
819         nodiscard.
820         * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
821         (operator==, operator<=>, operator<, operator!=, operator>)
822         (operator<=, operator>=): Likewise.
823         * include/debug/vector (operator==, operator<=>, operator<)
824         (operator!=, operator>, operator<=, operator>=): Likewise.
825         * testsuite/23_containers/vector/nodiscard.cc: New test.
827 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
829         * include/bits/atomic_base.h (operator|, operator&): Add
830         noexcept.
831         * include/bits/fs_fwd.h (operator&, operator|, operator^)
832         (operator~): Add nodiscard to overloads for copy_options, perms,
833         perm_options, and directory_options.
834         * include/bits/ios_base.h (operator&, operator|, operator^)
835         (operator~): Add nodiscard and noexcept to overloads for
836         _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
837         (operator|=, operator&=, operator^=): Add constexpr for C++14.
838         * include/bits/regex_constants.h (operator&, operator|, operator^)
839         (operator~): Add nodiscard and noexcept to overloads for
840         syntax_option_type and match_flag_type.
841         (operator|=, operator&=, operator^=): Add noexcept.
842         * include/std/charconv (operator&, operator|, operator^)
843         (operator~): Add nodiscard to overloads for chars_format.
844         * include/std/future (operator&, operator|, operator^)
845         (operator~): Add nodiscard for overloads for launch.
846         (operator&=, operator|=, operator^=): Add constexpr for C++14.
847         * include/experimental/bits/fs_fwd.h  (operator&, operator|)
848         (operator^, operator~): Add nodiscard to overloads for
849         copy_options, perms, and directory_options.
850         * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
851         Add dg-warning for nodiscard warnings.
852         * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
853         Likewise.
854         * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
855         Likewise.
856         * testsuite/27_io/filesystem/operations/bitmask_types.cc:
857         New test.
859 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
861         * testsuite/27_io/basic_ostream/print/1.cc: Check error
862         handling.
863         * testsuite/27_io/print/1.cc: Likewise.
865 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
867         * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
868         code path for Cygwin instead of Windows.
869         * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
870         * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
871         for *-*-mingw* targets.
872         * testsuite/27_io/print/1.cc: Likewise.
874 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
876         * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
877         __make_move_if_noexcept_iterator.
879 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
881         * include/std/stacktrace: Add nodiscard attribute to all
882         functions without side effects.
884 2024-02-20  François Dumont  <fdumont@gcc.gnu.org>
886         * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
887         std::__niter_base on res iterator.
889 2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
890             Jonathan Wakely  <jwakely@redhat.com>
892         PR target/112397
893         * configure: Regenerate.
894         * configure.ac: Detect if we are building for Darwin.
895         * libsupc++/Makefile.am: If we are building for Darwin, then
896         suppress hot/cold partitioning for the array allocators.
897         * libsupc++/Makefile.in: Regenerated.
899 2024-02-17  François Dumont  <fdumont@gcc.gnu.org>
901         * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
902         definitions for __gnu_debug::_Safe_iterator.
903         * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
905 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
907         PR libstdc++/87744
908         PR libstdc++/113961
909         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
910         line number.
912 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
914         PR libstdc++/87744
915         PR libstdc++/113931
916         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
917         line number.
919 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
921         * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
922         * doc/html/manual/debug_mode_using.html: Regenerate.
924 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
926         * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
927         * doc/html/manual/test.html: Regenerate.
929 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
931         PR libstdc++/113806
932         * include/std/bitset (bitset::operator>>=): Remove redundant
933         call to _M_do_sanitize.
935 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
937         PR libstdc++/113807
938         * include/std/bitset (bitset::set()): Use memset instead of a
939         loop over the individual words.
941 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
943         PR libstdc++/113811
944         * include/bits/stl_algo.h (__rotate): Use unsigned values for
945         division.
947 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
949         PR libstdc++/99117
950         * include/std/valarray (valarray::operator=(const _Expr&)):
951         Use loop to copy instead of __valarray_copy with _Array.
952         * testsuite/26_numerics/valarray/99117.cc: New test.
954 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
956         * src/c++20/tzdata.zi: Import new file from 2024a release.
957         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
958         Update expiry date for leap seconds list.
960 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
962         PR libstdc++/87744
963         * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
964         Define specialization for 64-bit generators with
965         non-power-of-two modulus and large constants.
966         (__mod): Use if constexpr unconditionally.
967         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
968         line number.
969         * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
970         New test.
972 2024-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
974         * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
975         version 1.
976         * doc/html/manual/status.html: Regenerate.
978 2024-02-12  Paul Keir  <paul.keir@uws.ac.uk>
980         PR libstdc++/113294
981         * include/bits/basic_string.h (basic_string::operator=): Use
982         _M_use_local_data() instead of _M_local_buf on the moved-from
983         string.
984         * testsuite/21_strings/basic_string/modifiers/constexpr.cc
985         (test_move): New test.
987 2024-02-09  Ken Matsui  <kmatsui@gcc.gnu.org>
989         * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
990         Removed.
991         * include/std/type_traits (is_same): Use
992         _GLIBCXX_USE_BUILTIN_TRAIT instead of
993         _GLIBCXX_HAVE_BUILTIN_IS_SAME.
994         (is_same_v): Likewise.
996 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
998         * include/bits/shared_ptr_atomic.h: Fix typo in comment.
1000 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1002         PR libstdc++/100147
1003         * include/bits/gslice.h (operator=): Add comment about lack of
1004         self-assignment check.
1006 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1008         * include/tr2/type_traits (bases, direct_bases): Use
1009         __has_builtin to check if required built-ins are supported.
1011 2024-02-07  Patrick Palka  <ppalka@redhat.com>
1013         PR testsuite/113710
1014         PR c++/113814
1015         * include/bits/stl_pair.h (tuple_element): Add forward
1016         declaration of the partial specialization for tuple.
1018 2024-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
1020         * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
1021         for other environments.
1023 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1025         * include/std/format (__format::_Spec::_M_reserved): Define new
1026         bit-field members to reserve padding bits for future extensions.
1028 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1030         * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
1031         instead of libstdc++fs.a.
1032         * src/experimental/Makefile.in: Regenerate.
1033         * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
1034         well.
1035         * src/filesystem/Makefile.in: Regenerate.
1037 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1039         * include/bits/text_encoding-data.h: Regenerate.
1040         * include/bits/unicode-data.h: Regenerate.
1041         * scripts/gen_text_encoding_data.py: Add copyright and license
1042         text to the output.
1044 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1046         PR libstdc++/113335
1047         * include/bits/std_function.h (__function_guide_helper): Add
1048         partial specialization for explicit object member functions, as
1049         per LWG 3617.
1050         * testsuite/20_util/function/cons/deduction_c++23.cc: Check
1051         explicit object member functions.
1052         * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
1053         Likewise.
1055 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1057         * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
1059 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1061         * include/experimental/internet (network_v6::network): Define.
1062         (network_v6::hosts): Finish implementing.
1063         (network_v6::to_string): Do not concatenate std::string to
1064         arbitrary std::basic_string specialization.
1065         * testsuite/experimental/net/internet/network/v6/cons.cc: New
1066         test.
1068 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1070         PR libstdc++/90276
1071         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
1072         comparison function to use less-than instead of equality.
1074 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1076         PR libstdc++/90276
1077         * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
1078         perfect forwarding for iterator arguments.
1080 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1082         * include/std/string_view (basic_string_view(R&&)): Remove
1083         constraint that traits_type must be the same, as per LWG 3857.
1084         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
1085         Explicit conversion between different specializations should be
1086         allowed.
1087         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
1088         Likewise.
1090 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1092         * include/std/syncstream (basic_osyncstream::operator=): Remove
1093         noexcept, as per LWG 3867.
1095 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1097         * include/std/generator (promise_type::yield_value): Remove
1098         noexcept from fourth overload, as per LWG 3894.
1100 2024-02-01  Patrick Palka  <ppalka@redhat.com>
1102         PR libstdc++/113309
1103         PR libstdc++/109203
1104         * include/bits/ranges_util.h (__detail::__pair_like): Don't
1105         define in C++23 mode.
1106         (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
1107         (__detail::__is_subrange<subrange>): Moved from <ranges>.
1108         (__detail::__is_tuple_like_v<subrange>): Likewise.
1109         * include/bits/stl_iterator.h: Include <bits/utility.h> for
1110         C++23.
1111         (__different_from): Move to <concepts>.
1112         (__iter_key_t): Adjust for C++23 as per P2165R4.
1113         (__iter_val_t): Likewise.
1114         * include/bits/stl_pair.h (pair, array): Forward declare.
1115         (get): Forward declare all overloads relevant to P2165R4
1116         tuple-like constructors.
1117         (__is_tuple_v): Define for C++23.
1118         (__is_tuple_like_v): Define for C++23.
1119         (__tuple_like): Define for C++23 as per P2165R4.
1120         (__pair_like): Define for C++23 as per P2165R4.
1121         (__eligibile_tuple_like): Define for C++23.
1122         (__eligibile_pair_like): Define for C++23.
1123         (pair::_S_constructible_from_pair_like): Define for C++23.
1124         (pair::_S_convertible_from_pair_like): Define for C++23.
1125         (pair::_S_dangles_from_pair_like): Define for C++23.
1126         (pair::pair): Define overloads taking a tuple-like type for
1127         C++23 as per P2165R4.
1128         (pair::_S_assignable_from_tuple_like): Define for C++23.
1129         (pair::_S_const_assignable_from_tuple_like): Define for C++23.
1130         (pair::operator=): Define overloads taking a tuple-like type for
1131         C++23 as per P2165R4.
1132         * include/bits/utility.h (ranges::__detail::__is_subrange):
1133         Moved from <ranges>.
1134         * include/bits/version.def (tuple_like): Define for C++23.
1135         * include/bits/version.h: Regenerate.
1136         * include/std/concepts (__different_from): Moved from
1137         <bits/stl_iterator.h>.
1138         (ranges::__swap::__adl_swap): Clarify which __detail namespace.
1139         * include/std/map (__cpp_lib_tuple_like): Define C++23.
1140         * include/std/ranges (__detail::__is_subrange): Moved to
1141         <bits/utility.h>.
1142         (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
1143         (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
1144         (__detail::__tuple_or_pair): Remove as per P2165R4.  Replace all
1145         uses with plain tuple as per P2165R4.
1146         * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
1147         (__tuple_like_tag_t): Define for C++23.
1148         (__tuple_cmp): Forward declare for C++23.
1149         (_Tuple_impl::_Tuple_impl): Define overloads taking
1150         __tuple_like_tag_t and a tuple-like type for C++23.
1151         (_Tuple_impl::_M_assign): Likewise.
1152         (tuple::__constructible_from_tuple_like): Define for C++23.
1153         (tuple::__convertible_from_tuple_like): Define for C++23.
1154         (tuple::__dangles_from_tuple_like): Define for C++23.
1155         (tuple::tuple): Define overloads taking a tuple-like type for
1156         C++23 as per P2165R4.
1157         (tuple::__assignable_from_tuple_like): Define for C++23.
1158         (tuple::__const_assignable_from_tuple_like): Define for C++23.
1159         (tuple::operator=): Define overloads taking a tuple-like type
1160         for C++23 as per P2165R4.
1161         (tuple::__tuple_like_common_comparison_category): Define for C++23.
1162         (tuple::operator<=>): Define overload taking a tuple-like type
1163         for C++23 as per P2165R4.
1164         (array, get): Forward declarations moved to <bits/stl_pair.h>.
1165         (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
1166         (apply): Likewise.
1167         (make_from_tuple): Likewise.
1168         (__tuple_like_common_reference): Define for C++23.
1169         (basic_common_reference): Adjust as per P2165R4.
1170         (__tuple_like_common_type): Define for C++23.
1171         (common_type): Adjust as per P2165R4.
1172         * include/std/unordered_map (__cpp_lib_tuple_like): Define for
1173         C++23.
1174         * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
1175         * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
1176         and 2-tuple interchangeably.
1177         (test05): New test.
1178         * testsuite/20_util/pair/p2165r4.cc: New test.
1179         * testsuite/20_util/tuple/p2165r4.cc: New test.
1181 2024-02-01  Patrick Palka  <ppalka@redhat.com>
1183         * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
1184         factored out from ...
1185         (pair::operator=): ... the constraints of the const overloads.
1187 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
1189         * include/bits/version.tpl: Do not use def-file-line for each
1190         macro being defined.
1191         * include/bits/version.h: Regenerate.
1193 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
1195         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
1196         dg-error pattern.
1197         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
1198         Likewise.
1199         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
1200         Likewise.
1201         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
1202         Likewise.
1203         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
1204         Likewise.
1205         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
1206         Likewise.
1207         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
1208         Likewise.
1209         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
1210         Likewise.
1211         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
1212         Likewise.
1214 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
1216         * include/experimental/internet (network_v4::to_string()):
1217         Remove lambda and use of resize_and_overwrite.
1219 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1221         * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
1222         needed for newlocale.
1223         * configure: Regenerate.
1224         * src/c++26/text_encoding.cc: Use <xlocale.h>.
1226 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1227             Ewan Higgs  <ewan.higgs@gmail.com>
1229         * include/bits/text_encoding-data.h: Regenerate.
1230         * scripts/gen_text_encoding_data.py: Add extra_aliases dict
1231         containing "ASCII".
1232         * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
1234 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1236         * doc/xml/manual/using.xml: Update tables of supported headers.
1237         * doc/html/*: Regenerate.
1239 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1241         * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
1242         -Wshift-count-overflow warning.
1244 2024-01-30  Jonathan Wakely  <jwakely@redhat.com>
1246         * testsuite/std/time/clock/gps/io.cc: Fix expected result in
1247         assertion and call test_format() from main.
1249 2024-01-29  François Dumont  <fdumont@gcc.gnu.org>
1251         * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
1252         _GLIBCXX_DEBUG_BACKTRACE macro.
1254 2024-01-24  Huanghui Nie  <nnnjkk@gmail.com>
1255             Théo Papadopoulo   <papadopoulo@gmail.com>
1257         * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
1258         _M_before_begin check and cleanup implementation.
1260 2024-01-22  Jonathan Wakely  <jwakely@redhat.com>
1262         * testsuite/std/time/clock/file/io.cc: Fix expected result in
1263         assertion and call test_format() from main.
1265 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
1267         PR libstdc++/113500
1268         * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
1269         printing of subseconds with floating-point rep.
1270         (__formatter_chrono::_M_format_to_ostream): Do not write
1271         time_point specializations directly to the ostream.
1272         (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
1273         empty chrono-spec if the type fails to meet the constraints for
1274         writing to an ostream with operator<<.
1275         * testsuite/std/time/clock/file/io.cc: Check formatting
1276         non-integral times with empty chrono-specs.
1277         * testsuite/std/time/clock/gps/io.cc: Likewise.
1278         * testsuite/std/time/clock/utc/io.cc: Likewise.
1279         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1281 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
1283         * include/bits/chrono.h (__file_clock::from_sys)
1284         (__file_clock::to_sys, __file_clock::_S_from_sys)
1285         (__file_clock::_S_to_sys): Use common_type for return type.
1286         * testsuite/std/time/clock/file/members.cc: Check round trip
1287         conversion for time with lower precision that seconds.
1289 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
1291         PR libstdc++/113512
1292         * include/std/format (__formatter_fp::format): Fix logic for
1293         alternate forms.
1294         * testsuite/std/format/functions/format.cc: Check buggy cases of
1295         alternate forms with g presentation type.
1297 2024-01-20  Marek Polacek  <polacek@redhat.com>
1299         PR c++/111410
1300         * include/std/ranges: Add #pragma to disable -Wdangling-reference with
1301         std::ranges::views::__adaptor::operator|.
1303 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
1305         * include/std/format (_Spec::_M_parse_fill_and_align): Do not
1306         use CTAD for _Utf32_view.
1308 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
1310         PR libstdc++/108822
1311         * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
1312         wrong fold-operator.
1313         * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
1314         element and three elements. Check allocator-extended
1315         constructors.
1317 2024-01-19  Patrick Palka  <ppalka@redhat.com>
1319         * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
1320         <print> and <text_encoding> for C++23 and C++26 respectively.
1322 2024-01-18  Patrick Palka  <ppalka@redhat.com>
1324         * include/bits/stl_pair.h [__cplusplus > 202002L]:
1325         Guard P2321R2 changes with __glibcxx_ranges_zip instead.
1327 2024-01-18  Patrick Palka  <ppalka@redhat.com>
1329         * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
1330         changes with __cpp_lib_ranges_zip instead.
1332 2024-01-18  Patrick Palka  <ppalka@redhat.com>
1334         PR libstdc++/109536
1335         * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
1336         Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
1337         * include/debug/safe_iterator.h
1338         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
1339         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
1340         (_Safe_iterator::operator=): Use them around the code path that
1341         defines a variable of type __gnu_cxx::__scoped_lock.
1342         (_Safe_iterator::operator++): Likewise.
1343         (_Safe_iterator::operator--): Likewise.
1344         (_Safe_iterator::operator+=): Likewise.
1345         (_Safe_iterator::operator-=): Likewise.
1346         * testsuite/23_containers/vector/element_access/constexpr.cc
1347         (test_iterators): Test more iterator operations.
1348         * testsuite/23_containers/vector/bool/element_access/constexpr.cc
1349         (test_iterators): Likewise.
1350         * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
1351         Remove.
1353 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
1355         * include/bits/unicode.h (__charset_alias_match): Initialize
1356         __var_a and __var_b.
1358 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
1360         PR libstdc++/113450
1361         * testsuite/std/format/functions/format.cc: Use signed char
1362         instead of int8_t.
1364 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
1366         PR libstdc++/113318
1367         * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
1368         (GLIBCXX_CHECK_TEXT_ENCODING): Define.
1369         * config.h.in: Regenerate.
1370         * configure: Regenerate.
1371         * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
1372         * include/Makefile.am: Add new headers.
1373         * include/Makefile.in: Regenerate.
1374         * include/bits/locale_classes.h (locale::encoding): Declare new
1375         member function.
1376         * include/bits/unicode.h (__charset_alias_match): New function.
1377         * include/bits/text_encoding-data.h: New file.
1378         * include/bits/version.def (text_encoding): Define.
1379         * include/bits/version.h: Regenerate.
1380         * include/std/text_encoding: New file.
1381         * src/Makefile.am: Add new subdirectory.
1382         * src/Makefile.in: Regenerate.
1383         * src/c++26/Makefile.am: New file.
1384         * src/c++26/Makefile.in: New file.
1385         * src/c++26/text_encoding.cc: New file.
1386         * src/experimental/Makefile.am: Include c++26 convenience
1387         library.
1388         * src/experimental/Makefile.in: Regenerate.
1389         * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
1390         printer.
1391         * scripts/gen_text_encoding_data.py: New file.
1392         * testsuite/22_locale/locale/encoding.cc: New test.
1393         * testsuite/ext/unicode/charset_alias_match.cc: New test.
1394         * testsuite/std/text_encoding/cons.cc: New test.
1395         * testsuite/std/text_encoding/members.cc: New test.
1396         * testsuite/std/text_encoding/requirements.cc: New test.
1398 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
1400         * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
1401         Do not use CTAD for _Utf32_view.
1402         (__format_width, __truncate): Do not use CTAD.
1403         (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
1404         (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
1406 2024-01-17  Patrick Palka  <ppalka@redhat.com>
1408         * include/std/ranges (views::_CartesianProduct::operator()):
1409         Adjust identity case as per P2540R1.
1410         * testsuite/std/ranges/cartesian_product/1.cc (test01):
1411         Adjust expected result of the identity case.
1413 2024-01-15  Patrick Palka  <ppalka@redhat.com>
1415         * include/std/variant (__detail::__variant::_Variadic_union):
1416         Add bool __trivially_destructible template parameter.
1417         (__detail::__variant::_Variadic_union::~_Variadic_union):
1418         Use __trivially_destructible in constraints instead.
1419         (__detail::__variant::_Variant_storage): Pass
1420         __trivially_destructible value to _Variadic_union.
1422 2024-01-15  Patrick Palka  <ppalka@redhat.com>
1424         * include/bits/stl_iterator.h (const_iterator): Define conversion
1425         operators as per P2836R1.
1426         * include/bits/version.def (ranges_as_const): Update value.
1427         * include/bits/version.h: Regenerate.
1428         * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
1429         * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
1430         value of __cpp_lib_ranges_as_const.
1431         * testsuite/std/ranges/version_c++23.cc: Likewise.
1433 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
1435         PR libstdc++/108822
1436         * include/std/tuple (__assignable, __is_nothrow_assignable):
1437         Move pre-C++20 definitions adjacent to their use.
1439 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
1441         PR testsuite/113366
1442         * include/std/format (basic_format_arg): Use __formattable
1443         variable template instead of __format::__formattable_with
1444         concept.
1446 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
1448         * src/c++20/tzdata.zi: Import new file from 2023d release.
1449         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
1450         Update expiry date for leap seconds list.
1452 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
1454         PR libstdc++/108822
1455         * include/std/tuple (tuple): Add checks for dangling references.
1456         Reimplement constraints and constant expressions using C++20
1457         features.
1458         * include/std/type_traits [C++20]
1459         (__is_implicitly_default_constructible_v): Define.
1460         (__is_implicitly_default_constructible): Use variable template.
1461         * testsuite/20_util/tuple/dangling_ref.cc: New test.
1463 2024-01-13  Patrick Palka  <ppalka@redhat.com>
1465         PR libstdc++/108827
1466         PR libstdc++/111327
1467         * include/bits/version.def (bind_back): Define.
1468         * include/bits/version.h: Regenerate.
1469         * include/std/functional (_Bind_back): Define for C++23.
1470         (bind_back): Likewise.
1471         * testsuite/20_util/function_objects/bind_back/1.cc: New test
1472         (adapted from corresponding bind_front test).
1473         * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
1475 2024-01-13  Patrick Palka  <ppalka@redhat.com>
1477         * include/std/functional (_Bind_front): Remove =default special
1478         member function declarations.
1479         (_Bind_front::operator()): Implement using C++23 deducing this
1480         when available.
1481         * testsuite/20_util/function_objects/bind_front/111327.cc:
1482         Adjust testcase to expect better errors in C++23 mode.
1484 2024-01-13  Patrick Palka  <ppalka@redhat.com>
1486         * include/std/ranges (views::__adaptor::operator|): Perform
1487         perfect forwarding of arguments.
1488         (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
1489         first argument to _Partial.
1490         (views::__adaptor::_Partial::_Partial): Likewise.  Add dummy
1491         first parameter.
1492         (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
1493         of arguments.
1494         (to): Pass dummy first argument to _Partial.
1496 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
1498         PR libstdc++/107466
1499         * include/bits/random.tcc (subtract_with_carry_engine::seed):
1500         Implement proposed resolution of LWG 4014.
1501         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1502         line number.
1503         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1504         Check for expected result of 64-bit engine with seed that
1505         doesn't fit in 32-bits.
1507 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
1509         PR libstdc++/113320
1510         * include/std/format (__format::_Runtime_format_string): Add
1511         constructor and disable copy operations.
1512         (basic_format_string(_Runtime_format_string)): Add noexcept and
1513         take parameter by value not rvalue reference.
1514         (runtime_format): Add noexcept.
1515         * testsuite/std/format/runtime_format.cc: Check noexcept. Check
1516         that construction is only possible from prvalues, not xvalues.
1518 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
1520         PR libstdc++/105505
1521         * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
1522         default template arguments, as per P1951R1.
1523         * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
1525 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
1527         * include/std/format (__format::_Arg_store): Fix PR number in
1528         comment. Simplify preprocessor code.
1530 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1532         * doc/xml/manual/evolution.xml: Fix spelling.
1533         * doc/html/manual/api.html: Regenerate.
1535 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1537         * doc/xml/manual/evolution.xml: Document addition of
1538         libstdc++exp.a.
1539         * doc/html/*: Regenerate.
1541 2024-01-11  Marcus Haehnel  <marcus.haehnel@kernkonzept.com>
1543         * libsupc++/eh_unex_handler.cc: Adjust definition type to
1544         declaration.
1546 2024-01-11  Michael Levine  <mlevine55@bloomberg.net>
1548         * include/std/ranges (__glibcxx_want_ranges_iota): Remove
1549         duplicate definition.
1551 2024-01-11  François Dumont  <fdumont@gcc.gnu.org>
1553         PR libstdc++/112477
1554         * src/c++11/debug.cc
1555         (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
1556         sequence.
1557         (_Safe_iterator_base::_M_attach_single): Likewise.
1558         (_Safe_local_iterator_base::_M_attach): Likewise.
1559         (_Safe_local_iterator_base::_M_attach_single): Likewise.
1560         * testsuite/23_containers/map/debug/112477.cc: New test case.
1562 2024-01-11  Patrick Palka  <ppalka@redhat.com>
1564         * include/bits/move.h (__like_t): Define in C++23 mode.
1565         * include/std/ranges (views::__adaptor::Partial::operator()):
1566         Implement using C++23 deducing this when available.
1567         (views::__adaptor::_Pipe::operator()): Likewise.
1568         * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
1569         accept new "no match for call" errors issued in C++23 mode.
1570         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
1572 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1574         * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
1575         Add printer for std::integral_constant.
1576         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1578 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1580         PR libstdc++/113258
1581         * libsupc++/new_opa.cc: Prefer to use posix_memalign if
1582         available.
1584 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1586         * src/filesystem/ops-common.h (stat_type): Use using.
1588 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1590         PR libstdc++/113250
1591         * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
1592         * src/filesystem/ops.cc (fs::equivalent): Likewise.
1593         * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
1594         error codes.
1595         * testsuite/experimental/filesystem/operations/equivalent.cc:
1596         Likewise.
1598 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1600         * include/std/type_traits (is_compound): Do not use __not_.
1601         (is_compound_v): Use is_fundamental_v instead.
1603 2024-01-11  Patrick Palka  <ppalka@redhat.com>
1605         * include/bits/utility.h (_Nth_type): Use
1606         _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
1608 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
1610         * include/bits/unicode-data.h: Regenerate.
1611         * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
1612         by one error.
1613         (__incb_property): Add missing check for values before the
1614         first edge.
1615         (__is_extended_pictographic): Invert return values to fix
1616         copy&pasted logic.
1617         (_Grapheme_cluster_view::_Iterator): Remove second iterator
1618         member and find end of cluster lazily.
1619         * testsuite/ext/unicode/grapheme_view.cc: New test.
1620         * testsuite/ext/unicode/properties.cc: New test.
1621         * testsuite/ext/unicode/view.cc: New test.
1623 2024-01-09  Andreas Schwab  <schwab@linux-m68k.org>
1625         * scripts/extract_symvers.in: Require final colon to only match
1626         .dsynsym in the header of the dynamic symtab.
1628 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
1630         * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
1631         handling of string returned from std::format.
1632         (__formatter_chrono::_M_R_T): Likewise.
1634 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1636         * include/bits/unicode.h (__null_sentinel): Remove.
1637         * testsuite/17_intro/names.cc: Add __null_sentinel.
1639 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1641         * include/std/format (__format::_Runtime_format_string): Define
1642         new class template.
1643         (basic_format_string): Add non-consteval constructor for runtime
1644         format strings.
1645         (runtime_format): Define new function for C++26.
1646         * testsuite/std/format/runtime_format.cc: New test.
1648 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1650         * include/bits/chrono_io.h (__formatter_chrono): Always use
1651         lvalue arguments to make_format_args.
1652         * include/std/format (make_format_args): Change parameter pack
1653         from forwarding references to lvalue references. Remove use of
1654         remove_reference_t which is now unnecessary.
1655         (format_to, formatted_size): Remove incorrect forwarding of
1656         arguments.
1657         * include/std/ostream (print): Remove forwarding of arguments.
1658         * include/std/print (print): Likewise.
1659         * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
1660         make_format_args.
1661         * testsuite/std/format/arguments/args.cc: Likewise.
1662         * testsuite/std/format/arguments/lwg3810.cc: Likewise.
1663         * testsuite/std/format/functions/format.cc: Likewise.
1664         * testsuite/std/format/functions/vformat_to.cc: Likewise.
1665         * testsuite/std/format/string.cc: Likewise.
1666         * testsuite/std/time/day/io.cc: Likewise.
1667         * testsuite/std/time/month/io.cc: Likewise.
1668         * testsuite/std/time/weekday/io.cc: Likewise.
1669         * testsuite/std/time/year/io.cc: Likewise.
1670         * testsuite/std/time/year_month_day/io.cc: Likewise.
1671         * testsuite/std/format/arguments/args_neg.cc: New test.
1673 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1675         * include/Makefile.am: Add new headers.
1676         * include/Makefile.in: Regenerate.
1677         * include/bits/unicode.h: New file.
1678         * include/bits/unicode-data.h: New file.
1679         * include/std/format: Include <bits/unicode.h>.
1680         (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
1681         (_Spec::_M_fill): Change type to char32_t.
1682         (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
1683         instead of a single character.
1684         (__write_padded): Change __fill_char parameter to char32_t and
1685         encode it into the output.
1686         (__formatter_str::format): Use new __unicode::__field_width and
1687         __unicode::__truncate functions.
1688         * include/std/ostream: Adjust namespace qualification for
1689         __literal_encoding_is_utf8.
1690         * include/std/print: Likewise.
1691         * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
1692         * testsuite/ext/unicode/view.cc: New test.
1693         * testsuite/std/format/functions/format.cc: Add missing examples
1694         from the standard demonstrating alignment with non-ASCII
1695         characters. Add examples checking correct handling of extended
1696         grapheme clusters.
1698 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1700         * include/bits/version.def (format_uchar): Define.
1701         * include/bits/version.h: Regenerate.
1702         * include/std/format (formatter<C, C>::format): Check for
1703         _Pres_c and call _M_format_character directly. Cast C to its
1704         unsigned equivalent for formatting as an integer.
1705         (formatter<char, wchar_t>::format): Likewise.
1706         (basic_format_arg(T&)): Store char arguments as unsigned char
1707         for formatting to a wide string.
1708         * testsuite/std/format/functions/format.cc: Adjust test. Check
1709         formatting of
1711 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
1713         PR libstdc++/112997
1714         * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
1715         parameter to void*.
1717 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
1719         * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
1721 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
1723         * include/std/type_traits (is_trivially_destructible_v): Use
1724         built-in directly when concepts are supported.
1725         * testsuite/20_util/is_trivially_destructible/value_v.cc: New
1726         test.
1728 2024-01-06  Gwenole Beauchesne  <gb.devel@gmail.com>
1730         * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
1731         nonnull arguments to strtoimax() and wcstoimax() functions.
1733 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1735         * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
1736         size and check for overflows in arithmetic.
1737         (path::operator/=(const path&)): Remove redundant exponential
1738         growth calculation.
1740 2024-01-05  Martin Küttler  <martin.kuettler@kernkonzept.com>
1742         * src/c++17/fs_path.cc (path::_List::reserve): Avoid
1743         floating-point arithmetic.
1745 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1747         PR libstdc++/113241
1748         * include/std/type_traits (is_convertible_v): Guard use of
1749         built-in with preprocessor check.
1751 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1753         PR libstdc++/113200
1754         * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
1755         __builtin_constant_p to check for unrelated pointers that cannot
1756         be compared during constant evaluation.
1757         * testsuite/21_strings/char_traits/requirements/113200.cc: New
1758         test.
1760 2024-01-05  Cassio Neri  <cassio.neri@gmail.com>
1762         * include/std/chrono: Fix + and - for months and weekdays.
1763         * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
1764         * testsuite/std/time/month/2.cc: New test for extreme values.
1765         * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
1766         * testsuite/std/time/weekday/2.cc: New test for extreme values.
1768 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1770         PR libstdc++/113099
1771         * include/bits/locale_classes.tcc (__try_use_facet): Use
1772         if-constexpr for C++11 and up.
1774 2024-01-05  Ken Matsui  <kmatsui@gcc.gnu.org>
1776         * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
1778 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
1780         * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
1781         reported by Will Hawkins <hawkinsw@obs.cr>.
1783 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
1785         * include/std/generator (_Stateless_alloc): Rename typename _A
1786         to _All.
1788 2024-01-03  Patrick Palka  <ppalka@redhat.com>
1790         PR testsuite/113175
1791         * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
1792         'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
1793         (test03): Likewise.
1796 Copyright (C) 2024 Free Software Foundation, Inc.
1798 Copying and distribution of this file, with or without modification,
1799 are permitted in any medium without royalty provided the copyright
1800 notice and this notice are preserved.