Adjust alternative *k to ?k for avx512 mask in zero_extend patterns
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob3564a2dd5d45428868f5c7693fc091cb3cd8b444
1 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/114863
4         * include/std/format (__formatter_fp::format): Only use
5         _M_localized for finite values.
6         * testsuite/std/format/functions/format.cc: Check localized
7         formatting of NaN and initiny.
9 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
11         * doc/html/manual/status.html: Regenerate.
12         * doc/xml/manual/status_cxx1998.xml: Adjust whitespace.
13         * doc/xml/manual/status_cxx2011.xml: Likewise.
14         * doc/xml/manual/status_cxx2014.xml: Likewise.
15         * doc/xml/manual/status_cxx2017.xml: Likewise.
16         * doc/xml/manual/status_cxx2020.xml: Likewise.
17         * doc/xml/manual/status_cxx2023.xml: Likewise.
18         * doc/xml/manual/status_cxxtr1.xml: Likewise.
19         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
21 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
23         * scripts/run_doxygen: Rename man pages for nested types.
25 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
27         * include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
29 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
31         * scripts/run_doxygen: Adjust sed pattern to match '\fR' for
32         new man output that Doxygen 1.10 generates.
34 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
36         * doc/doxygen/stdheader.cc (init_map): Add missing headers.
37         * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
38         std::format and std::text_encoding.
40 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
42         * include/std/variant: Add comment to #include.
44 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
46         PR libstdc++/114803
47         * include/experimental/bits/simd_builtin.h
48         (_SimdBase2::operator __vector_type_t): There is no __builtin()
49         function in _SimdWrapper, instead use its conversion operator.
50         * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
51         test.
53 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
55         * include/experimental/bits/simd.h: Ignore -Wnarrowing for
56         arm_neon.h.
57         (__int_for_sizeof): Replace tautological compare with checking
58         for invalid template parameter value.
59         * include/experimental/bits/simd_builtin.h (__extract_part):
60         Remove tautological compare by combining two static_assert.
62 2024-04-22  Jakub Jelinek  <jakub@redhat.com>
64         * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
65         * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
66         define on s390.
67         * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
68         Likewise.
69         * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
70         Likewise.
71         * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
72         Likewise.
73         * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
74         Likewise.
76 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
78         * include/bits/refwrap.h (operator<=>): Simplify constraints.
80 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
82         PR libstdc++/114770
83         * src/c++20/tzdb.cc (do_locate_zone): Support links that have
84         another link as their target.
85         * testsuite/std/time/tzdb/1.cc: Check that all zones and links
86         can be found by locate_zone.
87         * testsuite/std/time/tzdb/links.cc: New test.
89 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
91         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
92         Disable SRA.
94 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
96         * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
97         on aarch64-vxworks.
98         * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
99         aarch64-vxworks.
101 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
103         * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
104         on VxWorks non-RTP.
106 2024-04-17  Jonathan Wakely  <jwakely@redhat.com>
108         * include/std/ostream (println(ostream&)): Define new overload.
109         * include/std/print (println(FILE*), println()): Likewise.
110         * testsuite/27_io/basic_ostream/print/2.cc: New test.
111         * testsuite/27_io/print/1.cc: Remove unused header.
112         * testsuite/27_io/print/3.cc: New test.
114 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
116         * include/experimental/bits/numeric_traits.h: Add include guard.
118 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
120         PR libstdc++/114750
121         * include/experimental/bits/simd_builtin.h
122         (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
123         scalars if the memory type cannot be vectorized for the target.
125 2024-04-16  Jonathan Wakely  <jwakely@redhat.com>
127         * config/locale/dragonfly/numeric_members.cc: Fix typos in
128         comments.
129         * config/locale/gnu/numeric_members.cc: Likewise.
131 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
133         * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
134         * doc/html/manual/abi.html: Regenerate.
136 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
138         * include/bits/refwrap.h (reference_wrapper): Add comparison
139         operators as proposed by P2944R3.
140         * include/bits/version.def (reference_wrapper): Define.
141         * include/bits/version.h: Regenerate.
142         * include/std/functional: Enable feature test macro.
143         * testsuite/20_util/reference_wrapper/compare.cc: New test.
145 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
147         PR libstdc++/113386
148         * include/bits/stl_pair.h (operator==, operator<=>): Support
149         heterogeneous comparisons, as per LWG 3865.
150         * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
151         test.
153 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
155         PR libstdc++/93672
156         * src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
157         Treat all negative delimiter values as eof().
158         * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
159         * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
160         test.
162 2024-04-15  Andreas Schwab  <schwab@suse.de>
164         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
166 2024-04-13  H.J. Lu  <hjl.tools@gmail.com>
168         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
169         Updated.
171 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
173         * doc/xml/manual/abi.xml: Add latest library versions.
174         * doc/html/manual/abi.html: Regenerate.
176 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
178         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
179         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
180         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
181         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
182         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
183         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
184         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
185         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
186         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
188 2024-04-11  Jonathan Wakely  <jwakely@redhat.com>
190         PR libstdc++/114692
191         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
192         __basic_file::native_handle to ...
193         (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
194         specialization, which isn't used.
195         * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
196         latest version check.
198 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
200         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
201         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
202         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
203         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
204         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
205         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
206         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
207         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
208         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
210 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
212         * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
213         Adjust input string so that it matches %a with or without a
214         trailing period.
215         * testsuite/std/time/year_month_day/io.cc: Adjust expected
216         format for %x in the fr_FR locale.
218 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
220         * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
221         Check for EMLINK as well as ELOOP.
222         [__NetBSD__]: Check for EFTYPE as well as ELOOP.
224 2024-04-09  Jonathan Wakely  <jwakely@redhat.com>
226         PR libstdc++/114633
227         * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
228         stream extraction if std::from_chars is not available.
230 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
232         PR libstdc++/114519
233         * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
234         using char instead of char8_t.
235         * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
236         string views, instead of std::u8string_view.
238 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
240         * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
241         no-opts selector for errors that depend on -fchar8_t.
242         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
243         Likewise.
244         * testsuite/20_util/integer_comparisons/greater_neg.cc:
245         Likewise.
246         * testsuite/20_util/integer_comparisons/in_range_neg.cc:
247         Likewise.
248         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
249         Likewise.
250         * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
251         * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
252         Likewise.
253         * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
254         if -fno-char8_t is used.
255         * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
256         Likewise.
257         * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
258         Likewise.
259         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
260         Likewise.
261         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
262         char for u8 literal if char8_t is not available.
263         * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
264         __cpp_char8_t.
265         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
266         * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
267         Remove check for _GLIBCXX_USE_CHAR8_T.
269 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
271         * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
272         using a struct of that name if -fno-char8_t is active.
273         * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
275 2024-04-03  Jonathan Wakely  <jwakely@redhat.com>
277         PR libstdc++/104606
278         * include/std/optional (operator<=>(const optional<T>&, const U&)):
279         Reverse order of three_way_comparable_with template arguments.
280         * testsuite/20_util/optional/relops/104606.cc: New test.
282 2024-04-02  Jonathan Wakely  <jwakely@redhat.com>
284         PR libstdc++/114519
285         * include/bits/unicode.h (_Utf8_view): Guard with check for
286         char8_t being enabled.
287         (__literal_encoding_is_unicode): Guard use of char8_t with check
288         for it being enabled.
289         * testsuite/std/format/functions/114519.cc: New test.
291 2024-04-02  Patrick Palka  <ppalka@redhat.com>
293         * include/std/ranges (ranges::__detail::_Empty): Rename to ...
294         (ranges::__detail::_Absent): ... this.  Turn into a template
295         parameterized by the absent type _Tp and discriminator _Disc.
296         (ranges::__detail::__maybe_present_t): Add an optional
297         discriminator parameter.
298         (slide_view::_M_cached_begin): Pass a discriminator argument to
299         __maybe_present_t.
300         (slide_view::_M_cached_end): Likewise.
301         * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
302         slide_view<V> is 3 instead 4 pointers.
304 2024-04-02  Jakub Jelinek  <jakub@redhat.com>
306         * acinclude.m4: Fix duplicated words; file file -> file can.
307         * configure.host: Fix duplicated words; the the -> the.
309 2024-03-29  Arsen Arsenović  <arsen@aarsen.me>
311         * testsuite/24_iterators/range_generators/01.cc: Drop GCC
312         Runtime Library Exception.
313         * testsuite/24_iterators/range_generators/02.cc: Drop GCC
314         Runtime Library Exception.
315         * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
316         Runtime Library Exception.
317         * testsuite/24_iterators/range_generators/except.cc: Drop GCC
318         Runtime Library Exception.
319         * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
320         Runtime Library Exception.
321         * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
322         Runtime Library Exception.
323         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
324         Drop GCC Runtime Library Exception from the "You should have
325         received a copy" paragraph.
327 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
329         * include/experimental/bits/simd_x86.h (_S_masked_unary):
330         Cast inputs < 16 bytes to 16 byte vectors before calling the
331         right subtraction builtin. Before returning, truncate to the
332         return vector type.
334 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
336         * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
337         the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
338         rounding direction argument.
340 2024-03-27  Srinivas Yadav Singanaboina  <vasu.srinivasvasu.14@gmail.com>
342         * include/Makefile.am: Add simd_sve.h.
343         * include/Makefile.in: Add simd_sve.h.
344         * include/experimental/bits/simd.h: Add new SveAbi.
345         * include/experimental/bits/simd_builtin.h: Use
346         __no_sve_deduce_t to support existing Neon Abi.
347         * include/experimental/bits/simd_converter.h: Convert
348         sequentially when sve is available.
349         * include/experimental/bits/simd_detail.h: Define sve
350         specific macro.
351         * include/experimental/bits/simd_math.h: Fallback frexp
352         to execute sequntially when sve is available, to handle
353         fixed_size_simd return type that always uses sve.
354         * include/experimental/simd: Include bits/simd_sve.h.
355         * testsuite/experimental/simd/tests/bits/main.h: Enable
356         testing for sve128, sve256, sve512.
357         * include/experimental/bits/simd_sve.h: New file.
359 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
361         * include/std/generator (generator::_Iterator::operator*): Fix
362         return type.
363         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
364         New test.
366 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
368         * include/std/generator: Fix _V badname.
370 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
372         * testsuite/19_diagnostics/stacktrace/current.cc: Check for
373         __cpp_lib_stacktrace instead of check for stacktrace ET.
374         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
375         * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
376         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
377         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
378         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
379         * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
380         * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
381         Likewise.
382         * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
383         Remove.
385 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
387         * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
388         New proc.
389         * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
390         New proc.
391         * testsuite/std/text_encoding/cons.cc: Use new directive to skip
392         the test if the __cpp_lib_text_encoding feature test macro is
393         not defined.
394         * testsuite/std/text_encoding/requirements.cc: Likewise.
396 2024-03-25  Jonathan Wakely  <jwakely@redhat.com>
398         * testsuite/std/text_encoding/requirements.cc: #undef the
399         correct macro.
401 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
403         * include/std/format (formatter): Disable specializations that
404         would allow sequences of narrow characters to be formatted as
405         wchar_t without conversion, as per LWG 3944.
406         * testsuite/std/format/formatter/lwg3944.cc: New test.
408 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
410         * include/bits/utility.h (__is_in_place_index_v): New variable
411         template.
412         * include/std/variant (__not_in_place_tag): Define in terms of
413         variable templates not a class template.
415 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
417         PR libstdc++/114400
418         * include/std/string_view (operator==): Use std::type_identity_t
419         in C++20 instead of our own __type_identity_t.
421 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
423         PR libstdc++/114401
424         * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
425         release() on node handle instead of just zeroing its pointer.
426         (_Hashtable::_M_reinsert_node_multi): Likewise.
427         (_Hashtable::_M_merge_unique): Likewise.
428         (_Hashtable::_M_merge_multi): Likewise.
429         * include/bits/node_handle.h (_Node_handle_common::release()):
430         New member function.
431         (_Node_handle_common::_Optional_alloc::_M_empty): Remove
432         unnecessary union member.
433         (_Node_handle_common): Declare _Hashtable as a friend.
434         * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
435         Call release() on node handle instead of just zeroing its
436         pointer.
437         (_Rb_tree::_M_reinsert_node_equal): Likewise.
438         (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
439         (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
440         * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
441         * testsuite/23_containers/set/modifiers/114401.cc: New test.
442         * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
443         * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
445 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
447         PR libstdc++/113841
448         * include/bits/allocator.h (allocator<cv T>): Add default
449         constructor to partial specializations for cv-qualified types.
450         * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
451         Constrain so that it's only present if the allocator is default
452         constructible.
453         * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
454         Likewise.
455         * testsuite/23_containers/vector/cons/113841.cc: New test.
457 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
459         * include/bits/stl_construct.h (destroy_at, construct_at): Guard
460         with feature test macros instead of just __cplusplus.
462 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
464         * include/bits/version.def (generator, tuple_like): Move earlier
465         in the file.
466         * include/bits/version.h: Regenerate.
468 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
470         PR libstdc++/114394
471         * include/std/functional (bind): Use __invoke_result_t instead
472         of result_of::type.
473         * include/std/type_traits (__invoke_result_t): New alias
474         template.
475         * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
477 2024-03-20  François Dumont  <fdumont@gcc.gnu.org>
479         * include/bits/version.def (null_iterators): Remove extra_cond.
480         * include/bits/version.h: Regenerate.
482 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
484         PR libstdc++/114359
485         * include/bits/random.tcc (binomial_distribution::param_type):
486         Ensure arithmetic is done as type double.
487         * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
489 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
491         PR libstdc++/101228
492         * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
493         Define before including <tbb/task.h> then undef afterwards.
495 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
497         * include/Makefile.am [MAINTAINER_MODE]: Add target to
498         automatically update <bits/version.h>.
499         * include/Makefile.in: Regenerate.
501 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
503         * doc/xml/manual/build_hacking.xml: Document generated files.
504         Update list of convenience libraries and sub-directories under
505         the src directory.
506         * doc/html/*: Regenerate.
508 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
510         * include/bits/text_encoding-data.h: Regenerate.
511         * include/bits/unicode-data.h: Regenerate.
512         * scripts/gen_text_encoding_data.py: Fix header of generated
513         file to name the correct script.
515 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
517         * testsuite/util/pstl/test_utils.h: Fix typos in comments.
519 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
521         PR libstdc++/114367
522         * include/bits/stl_bvector.h (_M_allocate): Use allocator's
523         construct function to begin lifetime of words.
525 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
527         * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
528         option for the path to the uninstalled libatomic.
530 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
532         * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
533         /dev/null, use a temporary file for test executables on Darwin.
535 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
537         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
538         Accept 0 offset advance on value-initialized iterator.
539         * testsuite/23_containers/vector/debug/n3644.cc: New test case.
541 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
543         * include/debug/safe_local_iterator.tcc
544         (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
545         _M_singular checks.
546         * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
548 2024-03-17  François Dumont  <fdumont@gcc.gnu.org>
550         PR libstdc++/114316
551         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
552         First check if both iterators are value-initialized before checking if
553         singular.
554         * testsuite/23_containers/set/debug/114316.cc: New test case.
555         * testsuite/23_containers/vector/debug/114316.cc: New test case.
557 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
559         PR libstdc++/114325
560         * include/std/format (_Scanner::_M_scan): Pass correct length to
561         __to_chars_10_impl.
562         * testsuite/std/format/functions/format.cc: Check negative
563         integers with empty format-spec.
565 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
567         * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
568         (find_if_not, is_partitioned, partition_point, remove)
569         (remove_if, unique, lower_bound, upper_bound, equal_range)
570         (binary_search, includes, is_sorted, is_sorted_until, minmax)
571         (minmax_element, is_permutation, clamp, find_if, find_first_of)
572         (adjacent_find, count, count_if, search, search_n, min_element)
573         (max_element): Add nodiscard attribute.
574         * include/bits/stl_algobase.h (min, max, lower_bound, equal)
575         (lexicographical_compare, lexicographical_compare_three_way)
576         (mismatch): Likewise.
577         * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
578         * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
579         * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
580         * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
581         * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
582         Likewise.
583         * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
584         * testsuite/25_algorithms/lexicographical_compare/71545.cc:
585         Likewise.
586         * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
587         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
588         Likewise.
589         * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
590         Likewise.
591         * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
592         Likewise.
593         * testsuite/25_algorithms/minmax/3.cc: Likewise.
594         * testsuite/25_algorithms/search/78346.cc: Likewise.
595         * testsuite/25_algorithms/search_n/58358.cc: Likewise.
596         * testsuite/25_algorithms/unique/1.cc: Likewise.
597         * testsuite/25_algorithms/unique/11480.cc: Likewise.
598         * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
599         * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
600         Likewise.
601         * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
602         Likewise.
603         * testsuite/ext/concept_checks.cc: Likewise.
604         * testsuite/ext/is_heap/47709.cc: Likewise.
605         * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
607 2024-03-14  xndcn  <xndchn@gmail.com>
609         * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
610         Clear padding.
611         * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
612         New test.
614 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
616         PR libstdc++/66146
617         * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
618         note about std::call_once.
619         * doc/xml/manual/status_cxx2014.xml: Likewise.
620         * doc/xml/manual/status_cxx2017.xml: Likewise.
621         * doc/html/manual/status.html: Regenerate.
623 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
625         * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
626         * doc/html/manual/status.html: Regenerate.
627         * include/bits/version.def: Fix typo in comment.
629 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
631         * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
632         to namespace scope.
634 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
636         * doc/xml/manual/debug.xml: Improve docs on debug builds and
637         using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
638         the most relevant ones first.
639         * doc/xml/manual/using.xml: Add comma.
640         * doc/html/*: Regenerate.
642 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
644         * doc/xml/manual/debug.xml: Document that concept checking might
645         be removed in future.
646         * doc/xml/manual/extensions.xml: Likewise.
648 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
650         PR libstdc++/114240
651         * include/bits/chrono_io.h (_Parser::operator()): Assume
652         hours(0) for a time_point, so that a time is not required
653         to be present.
654         * testsuite/std/time/parse/114240.cc: New test.
656 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
658         PR libstdc++/114279
659         * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
660         data member.
661         (_Parser::_M_reserved): Reserve padding bits for future use.
662         (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
663         (from_stream): Only allow _M_is_leap_second for utc_time and
664         local_time. Adjust arithmetic for utc_time so that leap seconds
665         are preserved. Use time_point_cast to convert to a possibly
666         lower-precision result type.
667         * testsuite/std/time/parse.cc: Move to ...
668         * testsuite/std/time/parse/parse.cc: ... here.
669         * testsuite/std/time/parse/114279.cc: New test.
671 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
673         * include/bits/chrono_io.h (_Parser::operator()): Use
674         std::from_chars to parse fractional seconds.
676 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
678         PR libstdc++/114244
679         * include/bits/chrono_io.h (_Parser::operator()): Remove
680         redundant uses of duration_cast. Use chrono::round to convert
681         long double value to durations with integer representations.
682         Check represenation type when deciding whether to skip parsing
683         fractional seconds.
684         * testsuite/20_util/duration/114244.cc: New test.
685         * testsuite/20_util/duration/io.cc: Check that a floating-point
686         duration with ratio<1> precision can be parsed.
688 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
690         PR libstdc++/114103
691         * include/bits/version.def (atomic_lock_free_type_aliases): Add
692         extra_cond to check for at least one always-lock-free type.
693         * include/bits/version.h: Regenerate.
694         * include/std/atomic (atomic_signed_lock_free)
695         (atomic_unsigned_lock_free): Only use always-lock-free types.
696         * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
697         atomic counter if lock-free aliases aren't available.
698         * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
699         targets without lock-free word-size compare_exchange.
701 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
703         * include/std/chrono (__get_leap_second_info): Update expiry
704         time for hardcoded list of leap seconds.
705         * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
707 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
709         * testsuite/23_containers/deque/allocator/default_init.cc: Use
710         std::memset instead of __builtin_memset.
711         * testsuite/23_containers/forward_list/allocator/default_init.cc:
712         Likewise.
713         * testsuite/23_containers/list/allocator/default_init.cc:
714         Likewise.
715         * testsuite/23_containers/map/allocator/default_init.cc:
716         Likewise.
717         * testsuite/23_containers/set/allocator/default_init.cc:
718         Likewise.
719         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
720         Likewise.
721         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
722         Likewise.
723         * testsuite/23_containers/vector/allocator/default_init.cc:
724         Likewise.
725         * testsuite/23_containers/vector/bool/allocator/default_init.cc:
726         Likewise.
727         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
728         Likewise.
729         * testsuite/util/atomic/wait_notify_util.h: Likewise.
731 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
733         * include/std/format (_Arg_store::_S_make_elt): Add two
734         static_assert checks to give more user-friendly error messages.
735         * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
736         form of "in requirements with" note.
737         * testsuite/std/format/arguments/args_neg.cc: Check for
738         user-friendly diagnostics for non-formattable types.
739         * testsuite/std/format/string_neg.cc: Likewise.
741 2024-03-04  Jonathan Wakely  <jwakely@redhat.com>
743         PR libstdc++/114147
744         * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
745         Add missing overload of allocator-extended default constructor.
746         (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
747         * testsuite/20_util/tuple/cons/114147.cc: New test.
749 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
751         * include/std/format (basic_format_arg::handle::__maybe_const_t):
752         Fix condition to check if const type is formattable.
753         (basic_format_arg::handle::handle(T&)): Remove redundant
754         static_assert.
755         * testsuite/std/format/formatter/basic.cc: New test.
757 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
759         PR libstdc++/113960
760         * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
761         (__memcmp_ordered_with): New concept.
762         (lexicographical_compare_three_way): Use __memcmp_ordered_with
763         instead of __is_byte_iter. Use correct length for memcmp.
764         * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
765         New test.
767 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
769         PR libstdc++/114152
770         * include/experimental/scope (scope_exit scope_fail): Make
771         destructor unconditionally noexcept.
772         (scope_sucess): Fix noexcept-specifier.
773         * testsuite/experimental/scopeguard/114152.cc: New test.
775 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
777         * doc/xml/manual/appendix_contributing.xml: Change URLs to use
778         https.
779         * doc/html/manual/*: Regenerate.
781 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
783         * doc/xml/manual/appendix_contributing.xml: Replace outdated
784         info on ChangeLog entries.
785         * doc/html/manual/appendix_contributing.html: Regenerate.
787 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
789         * include/bits/stl_bvector.h (vector<bool, A>::at): Add
790         nodiscard.
791         * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
792         (operator==, operator<=>, operator<, operator!=, operator>)
793         (operator<=, operator>=): Likewise.
794         * include/debug/vector (operator==, operator<=>, operator<)
795         (operator!=, operator>, operator<=, operator>=): Likewise.
796         * testsuite/23_containers/vector/nodiscard.cc: New test.
798 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
800         * include/bits/atomic_base.h (operator|, operator&): Add
801         noexcept.
802         * include/bits/fs_fwd.h (operator&, operator|, operator^)
803         (operator~): Add nodiscard to overloads for copy_options, perms,
804         perm_options, and directory_options.
805         * include/bits/ios_base.h (operator&, operator|, operator^)
806         (operator~): Add nodiscard and noexcept to overloads for
807         _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
808         (operator|=, operator&=, operator^=): Add constexpr for C++14.
809         * include/bits/regex_constants.h (operator&, operator|, operator^)
810         (operator~): Add nodiscard and noexcept to overloads for
811         syntax_option_type and match_flag_type.
812         (operator|=, operator&=, operator^=): Add noexcept.
813         * include/std/charconv (operator&, operator|, operator^)
814         (operator~): Add nodiscard to overloads for chars_format.
815         * include/std/future (operator&, operator|, operator^)
816         (operator~): Add nodiscard for overloads for launch.
817         (operator&=, operator|=, operator^=): Add constexpr for C++14.
818         * include/experimental/bits/fs_fwd.h  (operator&, operator|)
819         (operator^, operator~): Add nodiscard to overloads for
820         copy_options, perms, and directory_options.
821         * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
822         Add dg-warning for nodiscard warnings.
823         * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
824         Likewise.
825         * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
826         Likewise.
827         * testsuite/27_io/filesystem/operations/bitmask_types.cc:
828         New test.
830 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
832         * testsuite/27_io/basic_ostream/print/1.cc: Check error
833         handling.
834         * testsuite/27_io/print/1.cc: Likewise.
836 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
838         * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
839         code path for Cygwin instead of Windows.
840         * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
841         * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
842         for *-*-mingw* targets.
843         * testsuite/27_io/print/1.cc: Likewise.
845 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
847         * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
848         __make_move_if_noexcept_iterator.
850 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
852         * include/std/stacktrace: Add nodiscard attribute to all
853         functions without side effects.
855 2024-02-20  François Dumont  <fdumont@gcc.gnu.org>
857         * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
858         std::__niter_base on res iterator.
860 2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
861             Jonathan Wakely  <jwakely@redhat.com>
863         PR target/112397
864         * configure: Regenerate.
865         * configure.ac: Detect if we are building for Darwin.
866         * libsupc++/Makefile.am: If we are building for Darwin, then
867         suppress hot/cold partitioning for the array allocators.
868         * libsupc++/Makefile.in: Regenerated.
870 2024-02-17  François Dumont  <fdumont@gcc.gnu.org>
872         * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
873         definitions for __gnu_debug::_Safe_iterator.
874         * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
876 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
878         PR libstdc++/87744
879         PR libstdc++/113961
880         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
881         line number.
883 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
885         PR libstdc++/87744
886         PR libstdc++/113931
887         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
888         line number.
890 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
892         * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
893         * doc/html/manual/debug_mode_using.html: Regenerate.
895 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
897         * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
898         * doc/html/manual/test.html: Regenerate.
900 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
902         PR libstdc++/113806
903         * include/std/bitset (bitset::operator>>=): Remove redundant
904         call to _M_do_sanitize.
906 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
908         PR libstdc++/113807
909         * include/std/bitset (bitset::set()): Use memset instead of a
910         loop over the individual words.
912 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
914         PR libstdc++/113811
915         * include/bits/stl_algo.h (__rotate): Use unsigned values for
916         division.
918 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
920         PR libstdc++/99117
921         * include/std/valarray (valarray::operator=(const _Expr&)):
922         Use loop to copy instead of __valarray_copy with _Array.
923         * testsuite/26_numerics/valarray/99117.cc: New test.
925 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
927         * src/c++20/tzdata.zi: Import new file from 2024a release.
928         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
929         Update expiry date for leap seconds list.
931 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
933         PR libstdc++/87744
934         * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
935         Define specialization for 64-bit generators with
936         non-power-of-two modulus and large constants.
937         (__mod): Use if constexpr unconditionally.
938         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
939         line number.
940         * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
941         New test.
943 2024-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
945         * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
946         version 1.
947         * doc/html/manual/status.html: Regenerate.
949 2024-02-12  Paul Keir  <paul.keir@uws.ac.uk>
951         PR libstdc++/113294
952         * include/bits/basic_string.h (basic_string::operator=): Use
953         _M_use_local_data() instead of _M_local_buf on the moved-from
954         string.
955         * testsuite/21_strings/basic_string/modifiers/constexpr.cc
956         (test_move): New test.
958 2024-02-09  Ken Matsui  <kmatsui@gcc.gnu.org>
960         * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
961         Removed.
962         * include/std/type_traits (is_same): Use
963         _GLIBCXX_USE_BUILTIN_TRAIT instead of
964         _GLIBCXX_HAVE_BUILTIN_IS_SAME.
965         (is_same_v): Likewise.
967 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
969         * include/bits/shared_ptr_atomic.h: Fix typo in comment.
971 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
973         PR libstdc++/100147
974         * include/bits/gslice.h (operator=): Add comment about lack of
975         self-assignment check.
977 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
979         * include/tr2/type_traits (bases, direct_bases): Use
980         __has_builtin to check if required built-ins are supported.
982 2024-02-07  Patrick Palka  <ppalka@redhat.com>
984         PR testsuite/113710
985         PR c++/113814
986         * include/bits/stl_pair.h (tuple_element): Add forward
987         declaration of the partial specialization for tuple.
989 2024-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
991         * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
992         for other environments.
994 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
996         * include/std/format (__format::_Spec::_M_reserved): Define new
997         bit-field members to reserve padding bits for future extensions.
999 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1001         * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
1002         instead of libstdc++fs.a.
1003         * src/experimental/Makefile.in: Regenerate.
1004         * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
1005         well.
1006         * src/filesystem/Makefile.in: Regenerate.
1008 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1010         * include/bits/text_encoding-data.h: Regenerate.
1011         * include/bits/unicode-data.h: Regenerate.
1012         * scripts/gen_text_encoding_data.py: Add copyright and license
1013         text to the output.
1015 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1017         PR libstdc++/113335
1018         * include/bits/std_function.h (__function_guide_helper): Add
1019         partial specialization for explicit object member functions, as
1020         per LWG 3617.
1021         * testsuite/20_util/function/cons/deduction_c++23.cc: Check
1022         explicit object member functions.
1023         * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
1024         Likewise.
1026 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1028         * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
1030 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1032         * include/experimental/internet (network_v6::network): Define.
1033         (network_v6::hosts): Finish implementing.
1034         (network_v6::to_string): Do not concatenate std::string to
1035         arbitrary std::basic_string specialization.
1036         * testsuite/experimental/net/internet/network/v6/cons.cc: New
1037         test.
1039 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1041         PR libstdc++/90276
1042         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
1043         comparison function to use less-than instead of equality.
1045 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1047         PR libstdc++/90276
1048         * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
1049         perfect forwarding for iterator arguments.
1051 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1053         * include/std/string_view (basic_string_view(R&&)): Remove
1054         constraint that traits_type must be the same, as per LWG 3857.
1055         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
1056         Explicit conversion between different specializations should be
1057         allowed.
1058         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
1059         Likewise.
1061 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1063         * include/std/syncstream (basic_osyncstream::operator=): Remove
1064         noexcept, as per LWG 3867.
1066 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1068         * include/std/generator (promise_type::yield_value): Remove
1069         noexcept from fourth overload, as per LWG 3894.
1071 2024-02-01  Patrick Palka  <ppalka@redhat.com>
1073         PR libstdc++/113309
1074         PR libstdc++/109203
1075         * include/bits/ranges_util.h (__detail::__pair_like): Don't
1076         define in C++23 mode.
1077         (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
1078         (__detail::__is_subrange<subrange>): Moved from <ranges>.
1079         (__detail::__is_tuple_like_v<subrange>): Likewise.
1080         * include/bits/stl_iterator.h: Include <bits/utility.h> for
1081         C++23.
1082         (__different_from): Move to <concepts>.
1083         (__iter_key_t): Adjust for C++23 as per P2165R4.
1084         (__iter_val_t): Likewise.
1085         * include/bits/stl_pair.h (pair, array): Forward declare.
1086         (get): Forward declare all overloads relevant to P2165R4
1087         tuple-like constructors.
1088         (__is_tuple_v): Define for C++23.
1089         (__is_tuple_like_v): Define for C++23.
1090         (__tuple_like): Define for C++23 as per P2165R4.
1091         (__pair_like): Define for C++23 as per P2165R4.
1092         (__eligibile_tuple_like): Define for C++23.
1093         (__eligibile_pair_like): Define for C++23.
1094         (pair::_S_constructible_from_pair_like): Define for C++23.
1095         (pair::_S_convertible_from_pair_like): Define for C++23.
1096         (pair::_S_dangles_from_pair_like): Define for C++23.
1097         (pair::pair): Define overloads taking a tuple-like type for
1098         C++23 as per P2165R4.
1099         (pair::_S_assignable_from_tuple_like): Define for C++23.
1100         (pair::_S_const_assignable_from_tuple_like): Define for C++23.
1101         (pair::operator=): Define overloads taking a tuple-like type for
1102         C++23 as per P2165R4.
1103         * include/bits/utility.h (ranges::__detail::__is_subrange):
1104         Moved from <ranges>.
1105         * include/bits/version.def (tuple_like): Define for C++23.
1106         * include/bits/version.h: Regenerate.
1107         * include/std/concepts (__different_from): Moved from
1108         <bits/stl_iterator.h>.
1109         (ranges::__swap::__adl_swap): Clarify which __detail namespace.
1110         * include/std/map (__cpp_lib_tuple_like): Define C++23.
1111         * include/std/ranges (__detail::__is_subrange): Moved to
1112         <bits/utility.h>.
1113         (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
1114         (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
1115         (__detail::__tuple_or_pair): Remove as per P2165R4.  Replace all
1116         uses with plain tuple as per P2165R4.
1117         * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
1118         (__tuple_like_tag_t): Define for C++23.
1119         (__tuple_cmp): Forward declare for C++23.
1120         (_Tuple_impl::_Tuple_impl): Define overloads taking
1121         __tuple_like_tag_t and a tuple-like type for C++23.
1122         (_Tuple_impl::_M_assign): Likewise.
1123         (tuple::__constructible_from_tuple_like): Define for C++23.
1124         (tuple::__convertible_from_tuple_like): Define for C++23.
1125         (tuple::__dangles_from_tuple_like): Define for C++23.
1126         (tuple::tuple): Define overloads taking a tuple-like type for
1127         C++23 as per P2165R4.
1128         (tuple::__assignable_from_tuple_like): Define for C++23.
1129         (tuple::__const_assignable_from_tuple_like): Define for C++23.
1130         (tuple::operator=): Define overloads taking a tuple-like type
1131         for C++23 as per P2165R4.
1132         (tuple::__tuple_like_common_comparison_category): Define for C++23.
1133         (tuple::operator<=>): Define overload taking a tuple-like type
1134         for C++23 as per P2165R4.
1135         (array, get): Forward declarations moved to <bits/stl_pair.h>.
1136         (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
1137         (apply): Likewise.
1138         (make_from_tuple): Likewise.
1139         (__tuple_like_common_reference): Define for C++23.
1140         (basic_common_reference): Adjust as per P2165R4.
1141         (__tuple_like_common_type): Define for C++23.
1142         (common_type): Adjust as per P2165R4.
1143         * include/std/unordered_map (__cpp_lib_tuple_like): Define for
1144         C++23.
1145         * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
1146         * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
1147         and 2-tuple interchangeably.
1148         (test05): New test.
1149         * testsuite/20_util/pair/p2165r4.cc: New test.
1150         * testsuite/20_util/tuple/p2165r4.cc: New test.
1152 2024-02-01  Patrick Palka  <ppalka@redhat.com>
1154         * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
1155         factored out from ...
1156         (pair::operator=): ... the constraints of the const overloads.
1158 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
1160         * include/bits/version.tpl: Do not use def-file-line for each
1161         macro being defined.
1162         * include/bits/version.h: Regenerate.
1164 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
1166         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
1167         dg-error pattern.
1168         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
1169         Likewise.
1170         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
1171         Likewise.
1172         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
1173         Likewise.
1174         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
1175         Likewise.
1176         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
1177         Likewise.
1178         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
1179         Likewise.
1180         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
1181         Likewise.
1182         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
1183         Likewise.
1185 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
1187         * include/experimental/internet (network_v4::to_string()):
1188         Remove lambda and use of resize_and_overwrite.
1190 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1192         * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
1193         needed for newlocale.
1194         * configure: Regenerate.
1195         * src/c++26/text_encoding.cc: Use <xlocale.h>.
1197 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1198             Ewan Higgs  <ewan.higgs@gmail.com>
1200         * include/bits/text_encoding-data.h: Regenerate.
1201         * scripts/gen_text_encoding_data.py: Add extra_aliases dict
1202         containing "ASCII".
1203         * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
1205 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1207         * doc/xml/manual/using.xml: Update tables of supported headers.
1208         * doc/html/*: Regenerate.
1210 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1212         * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
1213         -Wshift-count-overflow warning.
1215 2024-01-30  Jonathan Wakely  <jwakely@redhat.com>
1217         * testsuite/std/time/clock/gps/io.cc: Fix expected result in
1218         assertion and call test_format() from main.
1220 2024-01-29  François Dumont  <fdumont@gcc.gnu.org>
1222         * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
1223         _GLIBCXX_DEBUG_BACKTRACE macro.
1225 2024-01-24  Huanghui Nie  <nnnjkk@gmail.com>
1226             Théo Papadopoulo   <papadopoulo@gmail.com>
1228         * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
1229         _M_before_begin check and cleanup implementation.
1231 2024-01-22  Jonathan Wakely  <jwakely@redhat.com>
1233         * testsuite/std/time/clock/file/io.cc: Fix expected result in
1234         assertion and call test_format() from main.
1236 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
1238         PR libstdc++/113500
1239         * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
1240         printing of subseconds with floating-point rep.
1241         (__formatter_chrono::_M_format_to_ostream): Do not write
1242         time_point specializations directly to the ostream.
1243         (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
1244         empty chrono-spec if the type fails to meet the constraints for
1245         writing to an ostream with operator<<.
1246         * testsuite/std/time/clock/file/io.cc: Check formatting
1247         non-integral times with empty chrono-specs.
1248         * testsuite/std/time/clock/gps/io.cc: Likewise.
1249         * testsuite/std/time/clock/utc/io.cc: Likewise.
1250         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1252 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
1254         * include/bits/chrono.h (__file_clock::from_sys)
1255         (__file_clock::to_sys, __file_clock::_S_from_sys)
1256         (__file_clock::_S_to_sys): Use common_type for return type.
1257         * testsuite/std/time/clock/file/members.cc: Check round trip
1258         conversion for time with lower precision that seconds.
1260 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
1262         PR libstdc++/113512
1263         * include/std/format (__formatter_fp::format): Fix logic for
1264         alternate forms.
1265         * testsuite/std/format/functions/format.cc: Check buggy cases of
1266         alternate forms with g presentation type.
1268 2024-01-20  Marek Polacek  <polacek@redhat.com>
1270         PR c++/111410
1271         * include/std/ranges: Add #pragma to disable -Wdangling-reference with
1272         std::ranges::views::__adaptor::operator|.
1274 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
1276         * include/std/format (_Spec::_M_parse_fill_and_align): Do not
1277         use CTAD for _Utf32_view.
1279 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
1281         PR libstdc++/108822
1282         * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
1283         wrong fold-operator.
1284         * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
1285         element and three elements. Check allocator-extended
1286         constructors.
1288 2024-01-19  Patrick Palka  <ppalka@redhat.com>
1290         * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
1291         <print> and <text_encoding> for C++23 and C++26 respectively.
1293 2024-01-18  Patrick Palka  <ppalka@redhat.com>
1295         * include/bits/stl_pair.h [__cplusplus > 202002L]:
1296         Guard P2321R2 changes with __glibcxx_ranges_zip instead.
1298 2024-01-18  Patrick Palka  <ppalka@redhat.com>
1300         * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
1301         changes with __cpp_lib_ranges_zip instead.
1303 2024-01-18  Patrick Palka  <ppalka@redhat.com>
1305         PR libstdc++/109536
1306         * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
1307         Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
1308         * include/debug/safe_iterator.h
1309         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
1310         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
1311         (_Safe_iterator::operator=): Use them around the code path that
1312         defines a variable of type __gnu_cxx::__scoped_lock.
1313         (_Safe_iterator::operator++): Likewise.
1314         (_Safe_iterator::operator--): Likewise.
1315         (_Safe_iterator::operator+=): Likewise.
1316         (_Safe_iterator::operator-=): Likewise.
1317         * testsuite/23_containers/vector/element_access/constexpr.cc
1318         (test_iterators): Test more iterator operations.
1319         * testsuite/23_containers/vector/bool/element_access/constexpr.cc
1320         (test_iterators): Likewise.
1321         * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
1322         Remove.
1324 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
1326         * include/bits/unicode.h (__charset_alias_match): Initialize
1327         __var_a and __var_b.
1329 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
1331         PR libstdc++/113450
1332         * testsuite/std/format/functions/format.cc: Use signed char
1333         instead of int8_t.
1335 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
1337         PR libstdc++/113318
1338         * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
1339         (GLIBCXX_CHECK_TEXT_ENCODING): Define.
1340         * config.h.in: Regenerate.
1341         * configure: Regenerate.
1342         * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
1343         * include/Makefile.am: Add new headers.
1344         * include/Makefile.in: Regenerate.
1345         * include/bits/locale_classes.h (locale::encoding): Declare new
1346         member function.
1347         * include/bits/unicode.h (__charset_alias_match): New function.
1348         * include/bits/text_encoding-data.h: New file.
1349         * include/bits/version.def (text_encoding): Define.
1350         * include/bits/version.h: Regenerate.
1351         * include/std/text_encoding: New file.
1352         * src/Makefile.am: Add new subdirectory.
1353         * src/Makefile.in: Regenerate.
1354         * src/c++26/Makefile.am: New file.
1355         * src/c++26/Makefile.in: New file.
1356         * src/c++26/text_encoding.cc: New file.
1357         * src/experimental/Makefile.am: Include c++26 convenience
1358         library.
1359         * src/experimental/Makefile.in: Regenerate.
1360         * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
1361         printer.
1362         * scripts/gen_text_encoding_data.py: New file.
1363         * testsuite/22_locale/locale/encoding.cc: New test.
1364         * testsuite/ext/unicode/charset_alias_match.cc: New test.
1365         * testsuite/std/text_encoding/cons.cc: New test.
1366         * testsuite/std/text_encoding/members.cc: New test.
1367         * testsuite/std/text_encoding/requirements.cc: New test.
1369 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
1371         * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
1372         Do not use CTAD for _Utf32_view.
1373         (__format_width, __truncate): Do not use CTAD.
1374         (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
1375         (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
1377 2024-01-17  Patrick Palka  <ppalka@redhat.com>
1379         * include/std/ranges (views::_CartesianProduct::operator()):
1380         Adjust identity case as per P2540R1.
1381         * testsuite/std/ranges/cartesian_product/1.cc (test01):
1382         Adjust expected result of the identity case.
1384 2024-01-15  Patrick Palka  <ppalka@redhat.com>
1386         * include/std/variant (__detail::__variant::_Variadic_union):
1387         Add bool __trivially_destructible template parameter.
1388         (__detail::__variant::_Variadic_union::~_Variadic_union):
1389         Use __trivially_destructible in constraints instead.
1390         (__detail::__variant::_Variant_storage): Pass
1391         __trivially_destructible value to _Variadic_union.
1393 2024-01-15  Patrick Palka  <ppalka@redhat.com>
1395         * include/bits/stl_iterator.h (const_iterator): Define conversion
1396         operators as per P2836R1.
1397         * include/bits/version.def (ranges_as_const): Update value.
1398         * include/bits/version.h: Regenerate.
1399         * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
1400         * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
1401         value of __cpp_lib_ranges_as_const.
1402         * testsuite/std/ranges/version_c++23.cc: Likewise.
1404 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
1406         PR libstdc++/108822
1407         * include/std/tuple (__assignable, __is_nothrow_assignable):
1408         Move pre-C++20 definitions adjacent to their use.
1410 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
1412         PR testsuite/113366
1413         * include/std/format (basic_format_arg): Use __formattable
1414         variable template instead of __format::__formattable_with
1415         concept.
1417 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
1419         * src/c++20/tzdata.zi: Import new file from 2023d release.
1420         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
1421         Update expiry date for leap seconds list.
1423 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
1425         PR libstdc++/108822
1426         * include/std/tuple (tuple): Add checks for dangling references.
1427         Reimplement constraints and constant expressions using C++20
1428         features.
1429         * include/std/type_traits [C++20]
1430         (__is_implicitly_default_constructible_v): Define.
1431         (__is_implicitly_default_constructible): Use variable template.
1432         * testsuite/20_util/tuple/dangling_ref.cc: New test.
1434 2024-01-13  Patrick Palka  <ppalka@redhat.com>
1436         PR libstdc++/108827
1437         PR libstdc++/111327
1438         * include/bits/version.def (bind_back): Define.
1439         * include/bits/version.h: Regenerate.
1440         * include/std/functional (_Bind_back): Define for C++23.
1441         (bind_back): Likewise.
1442         * testsuite/20_util/function_objects/bind_back/1.cc: New test
1443         (adapted from corresponding bind_front test).
1444         * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
1446 2024-01-13  Patrick Palka  <ppalka@redhat.com>
1448         * include/std/functional (_Bind_front): Remove =default special
1449         member function declarations.
1450         (_Bind_front::operator()): Implement using C++23 deducing this
1451         when available.
1452         * testsuite/20_util/function_objects/bind_front/111327.cc:
1453         Adjust testcase to expect better errors in C++23 mode.
1455 2024-01-13  Patrick Palka  <ppalka@redhat.com>
1457         * include/std/ranges (views::__adaptor::operator|): Perform
1458         perfect forwarding of arguments.
1459         (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
1460         first argument to _Partial.
1461         (views::__adaptor::_Partial::_Partial): Likewise.  Add dummy
1462         first parameter.
1463         (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
1464         of arguments.
1465         (to): Pass dummy first argument to _Partial.
1467 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
1469         PR libstdc++/107466
1470         * include/bits/random.tcc (subtract_with_carry_engine::seed):
1471         Implement proposed resolution of LWG 4014.
1472         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1473         line number.
1474         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1475         Check for expected result of 64-bit engine with seed that
1476         doesn't fit in 32-bits.
1478 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
1480         PR libstdc++/113320
1481         * include/std/format (__format::_Runtime_format_string): Add
1482         constructor and disable copy operations.
1483         (basic_format_string(_Runtime_format_string)): Add noexcept and
1484         take parameter by value not rvalue reference.
1485         (runtime_format): Add noexcept.
1486         * testsuite/std/format/runtime_format.cc: Check noexcept. Check
1487         that construction is only possible from prvalues, not xvalues.
1489 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
1491         PR libstdc++/105505
1492         * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
1493         default template arguments, as per P1951R1.
1494         * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
1496 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
1498         * include/std/format (__format::_Arg_store): Fix PR number in
1499         comment. Simplify preprocessor code.
1501 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1503         * doc/xml/manual/evolution.xml: Fix spelling.
1504         * doc/html/manual/api.html: Regenerate.
1506 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1508         * doc/xml/manual/evolution.xml: Document addition of
1509         libstdc++exp.a.
1510         * doc/html/*: Regenerate.
1512 2024-01-11  Marcus Haehnel  <marcus.haehnel@kernkonzept.com>
1514         * libsupc++/eh_unex_handler.cc: Adjust definition type to
1515         declaration.
1517 2024-01-11  Michael Levine  <mlevine55@bloomberg.net>
1519         * include/std/ranges (__glibcxx_want_ranges_iota): Remove
1520         duplicate definition.
1522 2024-01-11  François Dumont  <fdumont@gcc.gnu.org>
1524         PR libstdc++/112477
1525         * src/c++11/debug.cc
1526         (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
1527         sequence.
1528         (_Safe_iterator_base::_M_attach_single): Likewise.
1529         (_Safe_local_iterator_base::_M_attach): Likewise.
1530         (_Safe_local_iterator_base::_M_attach_single): Likewise.
1531         * testsuite/23_containers/map/debug/112477.cc: New test case.
1533 2024-01-11  Patrick Palka  <ppalka@redhat.com>
1535         * include/bits/move.h (__like_t): Define in C++23 mode.
1536         * include/std/ranges (views::__adaptor::Partial::operator()):
1537         Implement using C++23 deducing this when available.
1538         (views::__adaptor::_Pipe::operator()): Likewise.
1539         * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
1540         accept new "no match for call" errors issued in C++23 mode.
1541         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
1543 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1545         * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
1546         Add printer for std::integral_constant.
1547         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1549 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1551         PR libstdc++/113258
1552         * libsupc++/new_opa.cc: Prefer to use posix_memalign if
1553         available.
1555 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1557         * src/filesystem/ops-common.h (stat_type): Use using.
1559 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1561         PR libstdc++/113250
1562         * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
1563         * src/filesystem/ops.cc (fs::equivalent): Likewise.
1564         * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
1565         error codes.
1566         * testsuite/experimental/filesystem/operations/equivalent.cc:
1567         Likewise.
1569 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1571         * include/std/type_traits (is_compound): Do not use __not_.
1572         (is_compound_v): Use is_fundamental_v instead.
1574 2024-01-11  Patrick Palka  <ppalka@redhat.com>
1576         * include/bits/utility.h (_Nth_type): Use
1577         _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
1579 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
1581         * include/bits/unicode-data.h: Regenerate.
1582         * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
1583         by one error.
1584         (__incb_property): Add missing check for values before the
1585         first edge.
1586         (__is_extended_pictographic): Invert return values to fix
1587         copy&pasted logic.
1588         (_Grapheme_cluster_view::_Iterator): Remove second iterator
1589         member and find end of cluster lazily.
1590         * testsuite/ext/unicode/grapheme_view.cc: New test.
1591         * testsuite/ext/unicode/properties.cc: New test.
1592         * testsuite/ext/unicode/view.cc: New test.
1594 2024-01-09  Andreas Schwab  <schwab@linux-m68k.org>
1596         * scripts/extract_symvers.in: Require final colon to only match
1597         .dsynsym in the header of the dynamic symtab.
1599 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
1601         * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
1602         handling of string returned from std::format.
1603         (__formatter_chrono::_M_R_T): Likewise.
1605 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1607         * include/bits/unicode.h (__null_sentinel): Remove.
1608         * testsuite/17_intro/names.cc: Add __null_sentinel.
1610 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1612         * include/std/format (__format::_Runtime_format_string): Define
1613         new class template.
1614         (basic_format_string): Add non-consteval constructor for runtime
1615         format strings.
1616         (runtime_format): Define new function for C++26.
1617         * testsuite/std/format/runtime_format.cc: New test.
1619 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1621         * include/bits/chrono_io.h (__formatter_chrono): Always use
1622         lvalue arguments to make_format_args.
1623         * include/std/format (make_format_args): Change parameter pack
1624         from forwarding references to lvalue references. Remove use of
1625         remove_reference_t which is now unnecessary.
1626         (format_to, formatted_size): Remove incorrect forwarding of
1627         arguments.
1628         * include/std/ostream (print): Remove forwarding of arguments.
1629         * include/std/print (print): Likewise.
1630         * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
1631         make_format_args.
1632         * testsuite/std/format/arguments/args.cc: Likewise.
1633         * testsuite/std/format/arguments/lwg3810.cc: Likewise.
1634         * testsuite/std/format/functions/format.cc: Likewise.
1635         * testsuite/std/format/functions/vformat_to.cc: Likewise.
1636         * testsuite/std/format/string.cc: Likewise.
1637         * testsuite/std/time/day/io.cc: Likewise.
1638         * testsuite/std/time/month/io.cc: Likewise.
1639         * testsuite/std/time/weekday/io.cc: Likewise.
1640         * testsuite/std/time/year/io.cc: Likewise.
1641         * testsuite/std/time/year_month_day/io.cc: Likewise.
1642         * testsuite/std/format/arguments/args_neg.cc: New test.
1644 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1646         * include/Makefile.am: Add new headers.
1647         * include/Makefile.in: Regenerate.
1648         * include/bits/unicode.h: New file.
1649         * include/bits/unicode-data.h: New file.
1650         * include/std/format: Include <bits/unicode.h>.
1651         (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
1652         (_Spec::_M_fill): Change type to char32_t.
1653         (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
1654         instead of a single character.
1655         (__write_padded): Change __fill_char parameter to char32_t and
1656         encode it into the output.
1657         (__formatter_str::format): Use new __unicode::__field_width and
1658         __unicode::__truncate functions.
1659         * include/std/ostream: Adjust namespace qualification for
1660         __literal_encoding_is_utf8.
1661         * include/std/print: Likewise.
1662         * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
1663         * testsuite/ext/unicode/view.cc: New test.
1664         * testsuite/std/format/functions/format.cc: Add missing examples
1665         from the standard demonstrating alignment with non-ASCII
1666         characters. Add examples checking correct handling of extended
1667         grapheme clusters.
1669 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1671         * include/bits/version.def (format_uchar): Define.
1672         * include/bits/version.h: Regenerate.
1673         * include/std/format (formatter<C, C>::format): Check for
1674         _Pres_c and call _M_format_character directly. Cast C to its
1675         unsigned equivalent for formatting as an integer.
1676         (formatter<char, wchar_t>::format): Likewise.
1677         (basic_format_arg(T&)): Store char arguments as unsigned char
1678         for formatting to a wide string.
1679         * testsuite/std/format/functions/format.cc: Adjust test. Check
1680         formatting of
1682 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
1684         PR libstdc++/112997
1685         * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
1686         parameter to void*.
1688 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
1690         * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
1692 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
1694         * include/std/type_traits (is_trivially_destructible_v): Use
1695         built-in directly when concepts are supported.
1696         * testsuite/20_util/is_trivially_destructible/value_v.cc: New
1697         test.
1699 2024-01-06  Gwenole Beauchesne  <gb.devel@gmail.com>
1701         * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
1702         nonnull arguments to strtoimax() and wcstoimax() functions.
1704 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1706         * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
1707         size and check for overflows in arithmetic.
1708         (path::operator/=(const path&)): Remove redundant exponential
1709         growth calculation.
1711 2024-01-05  Martin Küttler  <martin.kuettler@kernkonzept.com>
1713         * src/c++17/fs_path.cc (path::_List::reserve): Avoid
1714         floating-point arithmetic.
1716 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1718         PR libstdc++/113241
1719         * include/std/type_traits (is_convertible_v): Guard use of
1720         built-in with preprocessor check.
1722 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1724         PR libstdc++/113200
1725         * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
1726         __builtin_constant_p to check for unrelated pointers that cannot
1727         be compared during constant evaluation.
1728         * testsuite/21_strings/char_traits/requirements/113200.cc: New
1729         test.
1731 2024-01-05  Cassio Neri  <cassio.neri@gmail.com>
1733         * include/std/chrono: Fix + and - for months and weekdays.
1734         * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
1735         * testsuite/std/time/month/2.cc: New test for extreme values.
1736         * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
1737         * testsuite/std/time/weekday/2.cc: New test for extreme values.
1739 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1741         PR libstdc++/113099
1742         * include/bits/locale_classes.tcc (__try_use_facet): Use
1743         if-constexpr for C++11 and up.
1745 2024-01-05  Ken Matsui  <kmatsui@gcc.gnu.org>
1747         * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
1749 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
1751         * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
1752         reported by Will Hawkins <hawkinsw@obs.cr>.
1754 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
1756         * include/std/generator (_Stateless_alloc): Rename typename _A
1757         to _All.
1759 2024-01-03  Patrick Palka  <ppalka@redhat.com>
1761         PR testsuite/113175
1762         * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
1763         'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
1764         (test03): Likewise.
1767 Copyright (C) 2024 Free Software Foundation, Inc.
1769 Copying and distribution of this file, with or without modification,
1770 are permitted in any medium without royalty provided the copyright
1771 notice and this notice are preserved.