1 2024-04-30 Christophe Lyon <christophe.lyon@linaro.org>
3 * testsuite/lib/gdb-test.exp (gdb-test): Fix regexp. Quote
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:
14 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
15 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
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:
26 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
27 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
30 2024-04-26 Jonathan Wakely <jwakely@redhat.com>
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>
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
82 2024-04-22 Matthias Kretz <m.kretz@gsi.de>
84 * include/experimental/bits/simd.h: Ignore -Wnarrowing for
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
96 * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
98 * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
100 * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
102 * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
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>
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:
123 2024-04-18 Alexandre Oliva <oliva@adacore.com>
125 * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
127 * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
130 2024-04-18 Alexandre Oliva <oliva@adacore.com>
132 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
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>
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
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>
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
182 2024-04-15 Jonathan Wakely <jwakely@redhat.com>
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
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:
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>
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
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>
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>
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:
273 * testsuite/20_util/integer_comparisons/greater_neg.cc:
275 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
277 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
279 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
280 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
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:
286 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
288 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
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
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>
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>
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
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
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
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
392 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
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:
411 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
414 2024-03-26 Jonathan Wakely <jwakely@redhat.com>
416 * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
418 * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
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
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
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
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>
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>
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()):
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
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>
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
482 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
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
495 * include/bits/version.h: Regenerate.
497 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
500 * include/std/functional (bind): Use __invoke_result_t instead
502 * include/std/type_traits (__invoke_result_t): New alias
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>
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>
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
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>
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
575 * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
577 2024-03-17 François Dumont <fdumont@gcc.gnu.org>
580 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
581 First check if both iterators are value-initialized before checking if
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>
589 * include/std/format (_Scanner::_M_scan): Pass correct length to
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:
612 * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
613 * testsuite/25_algorithms/lexicographical_compare/71545.cc:
615 * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
616 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
618 * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
620 * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
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:
630 * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
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)):
640 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
643 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
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
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>
680 * include/bits/chrono_io.h (_Parser::operator()): Assume
681 hours(0) for a time_point, so that a time is not required
683 * testsuite/std/time/parse/114240.cc: New test.
685 2024-03-09 Jonathan Wakely <jwakely@redhat.com>
688 * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
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>
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
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>
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:
742 * testsuite/23_containers/list/allocator/default_init.cc:
744 * testsuite/23_containers/map/allocator/default_init.cc:
746 * testsuite/23_containers/set/allocator/default_init.cc:
748 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
750 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
752 * testsuite/23_containers/vector/allocator/default_init.cc:
754 * testsuite/23_containers/vector/bool/allocator/default_init.cc:
756 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
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>
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
784 * testsuite/std/format/formatter/basic.cc: New test.
786 2024-02-29 Jonathan Wakely <jwakely@redhat.com>
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:
796 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
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
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
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
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:
854 * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
856 * testsuite/27_io/filesystem/operations/bitmask_types.cc:
859 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
861 * testsuite/27_io/basic_ostream/print/1.cc: Check error
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>
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>
909 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
912 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
916 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
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>
932 * include/std/bitset (bitset::operator>>=): Remove redundant
933 call to _M_do_sanitize.
935 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
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>
944 * include/bits/stl_algo.h (__rotate): Use unsigned values for
947 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
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>
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
969 * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
972 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
974 * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
976 * doc/html/manual/status.html: Regenerate.
978 2024-02-12 Paul Keir <paul.keir@uws.ac.uk>
981 * include/bits/basic_string.h (basic_string::operator=): Use
982 _M_use_local_data() instead of _M_local_buf on the moved-from
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):
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>
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>
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
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
1044 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
1047 * include/bits/std_function.h (__function_guide_helper): Add
1048 partial specialization for explicit object member functions, as
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:
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
1068 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
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>
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
1087 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
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>
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
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
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.
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
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.
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
1197 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
1199 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
1201 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
1203 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
1205 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
1207 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
1209 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
1211 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
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
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>
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>
1292 * include/std/format (__formatter_fp::format): Fix logic for
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>
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>
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
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>
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]:
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>
1361 * testsuite/std/format/functions/format.cc: Use signed char
1364 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
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
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
1388 * src/experimental/Makefile.in: Regenerate.
1389 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
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>
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>
1442 * include/std/format (basic_format_arg): Use __formattable
1443 variable template instead of __format::__formattable_with
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>
1455 * include/std/tuple (tuple): Add checks for dangling references.
1456 Reimplement constraints and constant expressions using C++20
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>
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
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
1492 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
1494 (to): Pass dummy first argument to _Partial.
1496 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
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
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>
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>
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
1539 * doc/html/*: Regenerate.
1541 2024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
1543 * libsupc++/eh_unex_handler.cc: Adjust definition type to
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>
1554 * src/c++11/debug.cc
1555 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
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>
1581 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
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>
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
1595 * testsuite/experimental/filesystem/operations/equivalent.cc:
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
1613 (__incb_property): Add missing check for values before the
1615 (__is_extended_pictographic): Invert return values to fix
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
1643 (basic_format_string): Add non-consteval constructor for runtime
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
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
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
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
1711 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
1714 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
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
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
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>
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>
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
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>
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
1788 2024-01-03 Patrick Palka <ppalka@redhat.com>
1791 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
1792 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
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.