1 2024-04-08 Jonathan Wakely <jwakely@redhat.com>
4 * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
5 using char instead of char8_t.
6 * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
7 string views, instead of std::u8string_view.
9 2024-04-08 Jonathan Wakely <jwakely@redhat.com>
11 * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
12 no-opts selector for errors that depend on -fchar8_t.
13 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
15 * testsuite/20_util/integer_comparisons/greater_neg.cc:
17 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
19 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
21 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
22 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
24 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
25 if -fno-char8_t is used.
26 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
28 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
30 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
32 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
33 char for u8 literal if char8_t is not available.
34 * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
36 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
37 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
38 Remove check for _GLIBCXX_USE_CHAR8_T.
40 2024-04-08 Jonathan Wakely <jwakely@redhat.com>
42 * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
43 using a struct of that name if -fno-char8_t is active.
44 * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
46 2024-04-03 Jonathan Wakely <jwakely@redhat.com>
49 * include/std/optional (operator<=>(const optional<T>&, const U&)):
50 Reverse order of three_way_comparable_with template arguments.
51 * testsuite/20_util/optional/relops/104606.cc: New test.
53 2024-04-02 Jonathan Wakely <jwakely@redhat.com>
56 * include/bits/unicode.h (_Utf8_view): Guard with check for
57 char8_t being enabled.
58 (__literal_encoding_is_unicode): Guard use of char8_t with check
60 * testsuite/std/format/functions/114519.cc: New test.
62 2024-04-02 Patrick Palka <ppalka@redhat.com>
64 * include/std/ranges (ranges::__detail::_Empty): Rename to ...
65 (ranges::__detail::_Absent): ... this. Turn into a template
66 parameterized by the absent type _Tp and discriminator _Disc.
67 (ranges::__detail::__maybe_present_t): Add an optional
68 discriminator parameter.
69 (slide_view::_M_cached_begin): Pass a discriminator argument to
71 (slide_view::_M_cached_end): Likewise.
72 * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
73 slide_view<V> is 3 instead 4 pointers.
75 2024-04-02 Jakub Jelinek <jakub@redhat.com>
77 * acinclude.m4: Fix duplicated words; file file -> file can.
78 * configure.host: Fix duplicated words; the the -> the.
80 2024-03-29 Arsen Arsenović <arsen@aarsen.me>
82 * testsuite/24_iterators/range_generators/01.cc: Drop GCC
83 Runtime Library Exception.
84 * testsuite/24_iterators/range_generators/02.cc: Drop GCC
85 Runtime Library Exception.
86 * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
87 Runtime Library Exception.
88 * testsuite/24_iterators/range_generators/except.cc: Drop GCC
89 Runtime Library Exception.
90 * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
91 Runtime Library Exception.
92 * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
93 Runtime Library Exception.
94 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
95 Drop GCC Runtime Library Exception from the "You should have
96 received a copy" paragraph.
98 2024-03-27 Matthias Kretz <m.kretz@gsi.de>
100 * include/experimental/bits/simd_x86.h (_S_masked_unary):
101 Cast inputs < 16 bytes to 16 byte vectors before calling the
102 right subtraction builtin. Before returning, truncate to the
105 2024-03-27 Matthias Kretz <m.kretz@gsi.de>
107 * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
108 the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
109 rounding direction argument.
111 2024-03-27 Srinivas Yadav Singanaboina <vasu.srinivasvasu.14@gmail.com>
113 * include/Makefile.am: Add simd_sve.h.
114 * include/Makefile.in: Add simd_sve.h.
115 * include/experimental/bits/simd.h: Add new SveAbi.
116 * include/experimental/bits/simd_builtin.h: Use
117 __no_sve_deduce_t to support existing Neon Abi.
118 * include/experimental/bits/simd_converter.h: Convert
119 sequentially when sve is available.
120 * include/experimental/bits/simd_detail.h: Define sve
122 * include/experimental/bits/simd_math.h: Fallback frexp
123 to execute sequntially when sve is available, to handle
124 fixed_size_simd return type that always uses sve.
125 * include/experimental/simd: Include bits/simd_sve.h.
126 * testsuite/experimental/simd/tests/bits/main.h: Enable
127 testing for sve128, sve256, sve512.
128 * include/experimental/bits/simd_sve.h: New file.
130 2024-03-26 Arsen Arsenović <arsen@aarsen.me>
132 * include/std/generator (generator::_Iterator::operator*): Fix
134 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
137 2024-03-26 Arsen Arsenović <arsen@aarsen.me>
139 * include/std/generator: Fix _V badname.
141 2024-03-26 Jonathan Wakely <jwakely@redhat.com>
143 * testsuite/19_diagnostics/stacktrace/current.cc: Check for
144 __cpp_lib_stacktrace instead of check for stacktrace ET.
145 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
146 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
147 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
148 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
149 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
150 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
151 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
153 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
156 2024-03-26 Jonathan Wakely <jwakely@redhat.com>
158 * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
160 * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
162 * testsuite/std/text_encoding/cons.cc: Use new directive to skip
163 the test if the __cpp_lib_text_encoding feature test macro is
165 * testsuite/std/text_encoding/requirements.cc: Likewise.
167 2024-03-25 Jonathan Wakely <jwakely@redhat.com>
169 * testsuite/std/text_encoding/requirements.cc: #undef the
172 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
174 * include/std/format (formatter): Disable specializations that
175 would allow sequences of narrow characters to be formatted as
176 wchar_t without conversion, as per LWG 3944.
177 * testsuite/std/format/formatter/lwg3944.cc: New test.
179 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
181 * include/bits/utility.h (__is_in_place_index_v): New variable
183 * include/std/variant (__not_in_place_tag): Define in terms of
184 variable templates not a class template.
186 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
189 * include/std/string_view (operator==): Use std::type_identity_t
190 in C++20 instead of our own __type_identity_t.
192 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
195 * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
196 release() on node handle instead of just zeroing its pointer.
197 (_Hashtable::_M_reinsert_node_multi): Likewise.
198 (_Hashtable::_M_merge_unique): Likewise.
199 (_Hashtable::_M_merge_multi): Likewise.
200 * include/bits/node_handle.h (_Node_handle_common::release()):
202 (_Node_handle_common::_Optional_alloc::_M_empty): Remove
203 unnecessary union member.
204 (_Node_handle_common): Declare _Hashtable as a friend.
205 * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
206 Call release() on node handle instead of just zeroing its
208 (_Rb_tree::_M_reinsert_node_equal): Likewise.
209 (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
210 (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
211 * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
212 * testsuite/23_containers/set/modifiers/114401.cc: New test.
213 * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
214 * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
216 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
219 * include/bits/allocator.h (allocator<cv T>): Add default
220 constructor to partial specializations for cv-qualified types.
221 * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
222 Constrain so that it's only present if the allocator is default
224 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
226 * testsuite/23_containers/vector/cons/113841.cc: New test.
228 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
230 * include/bits/stl_construct.h (destroy_at, construct_at): Guard
231 with feature test macros instead of just __cplusplus.
233 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
235 * include/bits/version.def (generator, tuple_like): Move earlier
237 * include/bits/version.h: Regenerate.
239 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
242 * include/std/functional (bind): Use __invoke_result_t instead
244 * include/std/type_traits (__invoke_result_t): New alias
246 * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
248 2024-03-20 François Dumont <fdumont@gcc.gnu.org>
250 * include/bits/version.def (null_iterators): Remove extra_cond.
251 * include/bits/version.h: Regenerate.
253 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
256 * include/bits/random.tcc (binomial_distribution::param_type):
257 Ensure arithmetic is done as type double.
258 * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
260 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
263 * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
264 Define before including <tbb/task.h> then undef afterwards.
266 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
268 * include/Makefile.am [MAINTAINER_MODE]: Add target to
269 automatically update <bits/version.h>.
270 * include/Makefile.in: Regenerate.
272 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
274 * doc/xml/manual/build_hacking.xml: Document generated files.
275 Update list of convenience libraries and sub-directories under
277 * doc/html/*: Regenerate.
279 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
281 * include/bits/text_encoding-data.h: Regenerate.
282 * include/bits/unicode-data.h: Regenerate.
283 * scripts/gen_text_encoding_data.py: Fix header of generated
284 file to name the correct script.
286 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
288 * testsuite/util/pstl/test_utils.h: Fix typos in comments.
290 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
293 * include/bits/stl_bvector.h (_M_allocate): Use allocator's
294 construct function to begin lifetime of words.
296 2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
298 * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
299 option for the path to the uninstalled libatomic.
301 2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
303 * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
304 /dev/null, use a temporary file for test executables on Darwin.
306 2024-03-18 François Dumont <fdumont@gcc.gnu.org>
308 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
309 Accept 0 offset advance on value-initialized iterator.
310 * testsuite/23_containers/vector/debug/n3644.cc: New test case.
312 2024-03-18 François Dumont <fdumont@gcc.gnu.org>
314 * include/debug/safe_local_iterator.tcc
315 (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
317 * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
319 2024-03-17 François Dumont <fdumont@gcc.gnu.org>
322 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
323 First check if both iterators are value-initialized before checking if
325 * testsuite/23_containers/set/debug/114316.cc: New test case.
326 * testsuite/23_containers/vector/debug/114316.cc: New test case.
328 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
331 * include/std/format (_Scanner::_M_scan): Pass correct length to
333 * testsuite/std/format/functions/format.cc: Check negative
334 integers with empty format-spec.
336 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
338 * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
339 (find_if_not, is_partitioned, partition_point, remove)
340 (remove_if, unique, lower_bound, upper_bound, equal_range)
341 (binary_search, includes, is_sorted, is_sorted_until, minmax)
342 (minmax_element, is_permutation, clamp, find_if, find_first_of)
343 (adjacent_find, count, count_if, search, search_n, min_element)
344 (max_element): Add nodiscard attribute.
345 * include/bits/stl_algobase.h (min, max, lower_bound, equal)
346 (lexicographical_compare, lexicographical_compare_three_way)
347 (mismatch): Likewise.
348 * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
349 * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
350 * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
351 * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
352 * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
354 * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
355 * testsuite/25_algorithms/lexicographical_compare/71545.cc:
357 * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
358 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
360 * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
362 * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
364 * testsuite/25_algorithms/minmax/3.cc: Likewise.
365 * testsuite/25_algorithms/search/78346.cc: Likewise.
366 * testsuite/25_algorithms/search_n/58358.cc: Likewise.
367 * testsuite/25_algorithms/unique/1.cc: Likewise.
368 * testsuite/25_algorithms/unique/11480.cc: Likewise.
369 * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
370 * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
372 * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
374 * testsuite/ext/concept_checks.cc: Likewise.
375 * testsuite/ext/is_heap/47709.cc: Likewise.
376 * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
378 2024-03-14 xndcn <xndchn@gmail.com>
380 * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
382 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
385 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
388 * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
389 note about std::call_once.
390 * doc/xml/manual/status_cxx2014.xml: Likewise.
391 * doc/xml/manual/status_cxx2017.xml: Likewise.
392 * doc/html/manual/status.html: Regenerate.
394 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
396 * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
397 * doc/html/manual/status.html: Regenerate.
398 * include/bits/version.def: Fix typo in comment.
400 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
402 * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
405 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
407 * doc/xml/manual/debug.xml: Improve docs on debug builds and
408 using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
409 the most relevant ones first.
410 * doc/xml/manual/using.xml: Add comma.
411 * doc/html/*: Regenerate.
413 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
415 * doc/xml/manual/debug.xml: Document that concept checking might
416 be removed in future.
417 * doc/xml/manual/extensions.xml: Likewise.
419 2024-03-09 Jonathan Wakely <jwakely@redhat.com>
422 * include/bits/chrono_io.h (_Parser::operator()): Assume
423 hours(0) for a time_point, so that a time is not required
425 * testsuite/std/time/parse/114240.cc: New test.
427 2024-03-09 Jonathan Wakely <jwakely@redhat.com>
430 * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
432 (_Parser::_M_reserved): Reserve padding bits for future use.
433 (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
434 (from_stream): Only allow _M_is_leap_second for utc_time and
435 local_time. Adjust arithmetic for utc_time so that leap seconds
436 are preserved. Use time_point_cast to convert to a possibly
437 lower-precision result type.
438 * testsuite/std/time/parse.cc: Move to ...
439 * testsuite/std/time/parse/parse.cc: ... here.
440 * testsuite/std/time/parse/114279.cc: New test.
442 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
444 * include/bits/chrono_io.h (_Parser::operator()): Use
445 std::from_chars to parse fractional seconds.
447 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
450 * include/bits/chrono_io.h (_Parser::operator()): Remove
451 redundant uses of duration_cast. Use chrono::round to convert
452 long double value to durations with integer representations.
453 Check represenation type when deciding whether to skip parsing
455 * testsuite/20_util/duration/114244.cc: New test.
456 * testsuite/20_util/duration/io.cc: Check that a floating-point
457 duration with ratio<1> precision can be parsed.
459 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
462 * include/bits/version.def (atomic_lock_free_type_aliases): Add
463 extra_cond to check for at least one always-lock-free type.
464 * include/bits/version.h: Regenerate.
465 * include/std/atomic (atomic_signed_lock_free)
466 (atomic_unsigned_lock_free): Only use always-lock-free types.
467 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
468 atomic counter if lock-free aliases aren't available.
469 * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
470 targets without lock-free word-size compare_exchange.
472 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
474 * include/std/chrono (__get_leap_second_info): Update expiry
475 time for hardcoded list of leap seconds.
476 * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
478 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
480 * testsuite/23_containers/deque/allocator/default_init.cc: Use
481 std::memset instead of __builtin_memset.
482 * testsuite/23_containers/forward_list/allocator/default_init.cc:
484 * testsuite/23_containers/list/allocator/default_init.cc:
486 * testsuite/23_containers/map/allocator/default_init.cc:
488 * testsuite/23_containers/set/allocator/default_init.cc:
490 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
492 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
494 * testsuite/23_containers/vector/allocator/default_init.cc:
496 * testsuite/23_containers/vector/bool/allocator/default_init.cc:
498 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
500 * testsuite/util/atomic/wait_notify_util.h: Likewise.
502 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
504 * include/std/format (_Arg_store::_S_make_elt): Add two
505 static_assert checks to give more user-friendly error messages.
506 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
507 form of "in requirements with" note.
508 * testsuite/std/format/arguments/args_neg.cc: Check for
509 user-friendly diagnostics for non-formattable types.
510 * testsuite/std/format/string_neg.cc: Likewise.
512 2024-03-04 Jonathan Wakely <jwakely@redhat.com>
515 * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
516 Add missing overload of allocator-extended default constructor.
517 (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
518 * testsuite/20_util/tuple/cons/114147.cc: New test.
520 2024-02-29 Jonathan Wakely <jwakely@redhat.com>
522 * include/std/format (basic_format_arg::handle::__maybe_const_t):
523 Fix condition to check if const type is formattable.
524 (basic_format_arg::handle::handle(T&)): Remove redundant
526 * testsuite/std/format/formatter/basic.cc: New test.
528 2024-02-29 Jonathan Wakely <jwakely@redhat.com>
531 * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
532 (__memcmp_ordered_with): New concept.
533 (lexicographical_compare_three_way): Use __memcmp_ordered_with
534 instead of __is_byte_iter. Use correct length for memcmp.
535 * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
538 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
541 * include/experimental/scope (scope_exit scope_fail): Make
542 destructor unconditionally noexcept.
543 (scope_sucess): Fix noexcept-specifier.
544 * testsuite/experimental/scopeguard/114152.cc: New test.
546 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
548 * doc/xml/manual/appendix_contributing.xml: Change URLs to use
550 * doc/html/manual/*: Regenerate.
552 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
554 * doc/xml/manual/appendix_contributing.xml: Replace outdated
555 info on ChangeLog entries.
556 * doc/html/manual/appendix_contributing.html: Regenerate.
558 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
560 * include/bits/stl_bvector.h (vector<bool, A>::at): Add
562 * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
563 (operator==, operator<=>, operator<, operator!=, operator>)
564 (operator<=, operator>=): Likewise.
565 * include/debug/vector (operator==, operator<=>, operator<)
566 (operator!=, operator>, operator<=, operator>=): Likewise.
567 * testsuite/23_containers/vector/nodiscard.cc: New test.
569 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
571 * include/bits/atomic_base.h (operator|, operator&): Add
573 * include/bits/fs_fwd.h (operator&, operator|, operator^)
574 (operator~): Add nodiscard to overloads for copy_options, perms,
575 perm_options, and directory_options.
576 * include/bits/ios_base.h (operator&, operator|, operator^)
577 (operator~): Add nodiscard and noexcept to overloads for
578 _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
579 (operator|=, operator&=, operator^=): Add constexpr for C++14.
580 * include/bits/regex_constants.h (operator&, operator|, operator^)
581 (operator~): Add nodiscard and noexcept to overloads for
582 syntax_option_type and match_flag_type.
583 (operator|=, operator&=, operator^=): Add noexcept.
584 * include/std/charconv (operator&, operator|, operator^)
585 (operator~): Add nodiscard to overloads for chars_format.
586 * include/std/future (operator&, operator|, operator^)
587 (operator~): Add nodiscard for overloads for launch.
588 (operator&=, operator|=, operator^=): Add constexpr for C++14.
589 * include/experimental/bits/fs_fwd.h (operator&, operator|)
590 (operator^, operator~): Add nodiscard to overloads for
591 copy_options, perms, and directory_options.
592 * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
593 Add dg-warning for nodiscard warnings.
594 * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
596 * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
598 * testsuite/27_io/filesystem/operations/bitmask_types.cc:
601 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
603 * testsuite/27_io/basic_ostream/print/1.cc: Check error
605 * testsuite/27_io/print/1.cc: Likewise.
607 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
609 * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
610 code path for Cygwin instead of Windows.
611 * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
612 * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
613 for *-*-mingw* targets.
614 * testsuite/27_io/print/1.cc: Likewise.
616 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
618 * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
619 __make_move_if_noexcept_iterator.
621 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
623 * include/std/stacktrace: Add nodiscard attribute to all
624 functions without side effects.
626 2024-02-20 François Dumont <fdumont@gcc.gnu.org>
628 * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
629 std::__niter_base on res iterator.
631 2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
632 Jonathan Wakely <jwakely@redhat.com>
635 * configure: Regenerate.
636 * configure.ac: Detect if we are building for Darwin.
637 * libsupc++/Makefile.am: If we are building for Darwin, then
638 suppress hot/cold partitioning for the array allocators.
639 * libsupc++/Makefile.in: Regenerated.
641 2024-02-17 François Dumont <fdumont@gcc.gnu.org>
643 * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
644 definitions for __gnu_debug::_Safe_iterator.
645 * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
647 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
651 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
654 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
658 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
661 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
663 * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
664 * doc/html/manual/debug_mode_using.html: Regenerate.
666 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
668 * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
669 * doc/html/manual/test.html: Regenerate.
671 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
674 * include/std/bitset (bitset::operator>>=): Remove redundant
675 call to _M_do_sanitize.
677 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
680 * include/std/bitset (bitset::set()): Use memset instead of a
681 loop over the individual words.
683 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
686 * include/bits/stl_algo.h (__rotate): Use unsigned values for
689 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
692 * include/std/valarray (valarray::operator=(const _Expr&)):
693 Use loop to copy instead of __valarray_copy with _Array.
694 * testsuite/26_numerics/valarray/99117.cc: New test.
696 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
698 * src/c++20/tzdata.zi: Import new file from 2024a release.
699 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
700 Update expiry date for leap seconds list.
702 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
705 * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
706 Define specialization for 64-bit generators with
707 non-power-of-two modulus and large constants.
708 (__mod): Use if constexpr unconditionally.
709 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
711 * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
714 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
716 * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
718 * doc/html/manual/status.html: Regenerate.
720 2024-02-12 Paul Keir <paul.keir@uws.ac.uk>
723 * include/bits/basic_string.h (basic_string::operator=): Use
724 _M_use_local_data() instead of _M_local_buf on the moved-from
726 * testsuite/21_strings/basic_string/modifiers/constexpr.cc
727 (test_move): New test.
729 2024-02-09 Ken Matsui <kmatsui@gcc.gnu.org>
731 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
733 * include/std/type_traits (is_same): Use
734 _GLIBCXX_USE_BUILTIN_TRAIT instead of
735 _GLIBCXX_HAVE_BUILTIN_IS_SAME.
736 (is_same_v): Likewise.
738 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
740 * include/bits/shared_ptr_atomic.h: Fix typo in comment.
742 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
745 * include/bits/gslice.h (operator=): Add comment about lack of
746 self-assignment check.
748 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
750 * include/tr2/type_traits (bases, direct_bases): Use
751 __has_builtin to check if required built-ins are supported.
753 2024-02-07 Patrick Palka <ppalka@redhat.com>
757 * include/bits/stl_pair.h (tuple_element): Add forward
758 declaration of the partial specialization for tuple.
760 2024-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
762 * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
763 for other environments.
765 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
767 * include/std/format (__format::_Spec::_M_reserved): Define new
768 bit-field members to reserve padding bits for future extensions.
770 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
772 * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
773 instead of libstdc++fs.a.
774 * src/experimental/Makefile.in: Regenerate.
775 * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
777 * src/filesystem/Makefile.in: Regenerate.
779 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
781 * include/bits/text_encoding-data.h: Regenerate.
782 * include/bits/unicode-data.h: Regenerate.
783 * scripts/gen_text_encoding_data.py: Add copyright and license
786 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
789 * include/bits/std_function.h (__function_guide_helper): Add
790 partial specialization for explicit object member functions, as
792 * testsuite/20_util/function/cons/deduction_c++23.cc: Check
793 explicit object member functions.
794 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
797 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
799 * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
801 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
803 * include/experimental/internet (network_v6::network): Define.
804 (network_v6::hosts): Finish implementing.
805 (network_v6::to_string): Do not concatenate std::string to
806 arbitrary std::basic_string specialization.
807 * testsuite/experimental/net/internet/network/v6/cons.cc: New
810 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
813 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
814 comparison function to use less-than instead of equality.
816 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
819 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
820 perfect forwarding for iterator arguments.
822 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
824 * include/std/string_view (basic_string_view(R&&)): Remove
825 constraint that traits_type must be the same, as per LWG 3857.
826 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
827 Explicit conversion between different specializations should be
829 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
832 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
834 * include/std/syncstream (basic_osyncstream::operator=): Remove
835 noexcept, as per LWG 3867.
837 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
839 * include/std/generator (promise_type::yield_value): Remove
840 noexcept from fourth overload, as per LWG 3894.
842 2024-02-01 Patrick Palka <ppalka@redhat.com>
846 * include/bits/ranges_util.h (__detail::__pair_like): Don't
847 define in C++23 mode.
848 (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
849 (__detail::__is_subrange<subrange>): Moved from <ranges>.
850 (__detail::__is_tuple_like_v<subrange>): Likewise.
851 * include/bits/stl_iterator.h: Include <bits/utility.h> for
853 (__different_from): Move to <concepts>.
854 (__iter_key_t): Adjust for C++23 as per P2165R4.
855 (__iter_val_t): Likewise.
856 * include/bits/stl_pair.h (pair, array): Forward declare.
857 (get): Forward declare all overloads relevant to P2165R4
858 tuple-like constructors.
859 (__is_tuple_v): Define for C++23.
860 (__is_tuple_like_v): Define for C++23.
861 (__tuple_like): Define for C++23 as per P2165R4.
862 (__pair_like): Define for C++23 as per P2165R4.
863 (__eligibile_tuple_like): Define for C++23.
864 (__eligibile_pair_like): Define for C++23.
865 (pair::_S_constructible_from_pair_like): Define for C++23.
866 (pair::_S_convertible_from_pair_like): Define for C++23.
867 (pair::_S_dangles_from_pair_like): Define for C++23.
868 (pair::pair): Define overloads taking a tuple-like type for
869 C++23 as per P2165R4.
870 (pair::_S_assignable_from_tuple_like): Define for C++23.
871 (pair::_S_const_assignable_from_tuple_like): Define for C++23.
872 (pair::operator=): Define overloads taking a tuple-like type for
873 C++23 as per P2165R4.
874 * include/bits/utility.h (ranges::__detail::__is_subrange):
876 * include/bits/version.def (tuple_like): Define for C++23.
877 * include/bits/version.h: Regenerate.
878 * include/std/concepts (__different_from): Moved from
879 <bits/stl_iterator.h>.
880 (ranges::__swap::__adl_swap): Clarify which __detail namespace.
881 * include/std/map (__cpp_lib_tuple_like): Define C++23.
882 * include/std/ranges (__detail::__is_subrange): Moved to
884 (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
885 (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
886 (__detail::__tuple_or_pair): Remove as per P2165R4. Replace all
887 uses with plain tuple as per P2165R4.
888 * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
889 (__tuple_like_tag_t): Define for C++23.
890 (__tuple_cmp): Forward declare for C++23.
891 (_Tuple_impl::_Tuple_impl): Define overloads taking
892 __tuple_like_tag_t and a tuple-like type for C++23.
893 (_Tuple_impl::_M_assign): Likewise.
894 (tuple::__constructible_from_tuple_like): Define for C++23.
895 (tuple::__convertible_from_tuple_like): Define for C++23.
896 (tuple::__dangles_from_tuple_like): Define for C++23.
897 (tuple::tuple): Define overloads taking a tuple-like type for
898 C++23 as per P2165R4.
899 (tuple::__assignable_from_tuple_like): Define for C++23.
900 (tuple::__const_assignable_from_tuple_like): Define for C++23.
901 (tuple::operator=): Define overloads taking a tuple-like type
902 for C++23 as per P2165R4.
903 (tuple::__tuple_like_common_comparison_category): Define for C++23.
904 (tuple::operator<=>): Define overload taking a tuple-like type
905 for C++23 as per P2165R4.
906 (array, get): Forward declarations moved to <bits/stl_pair.h>.
907 (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
909 (make_from_tuple): Likewise.
910 (__tuple_like_common_reference): Define for C++23.
911 (basic_common_reference): Adjust as per P2165R4.
912 (__tuple_like_common_type): Define for C++23.
913 (common_type): Adjust as per P2165R4.
914 * include/std/unordered_map (__cpp_lib_tuple_like): Define for
916 * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
917 * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
918 and 2-tuple interchangeably.
920 * testsuite/20_util/pair/p2165r4.cc: New test.
921 * testsuite/20_util/tuple/p2165r4.cc: New test.
923 2024-02-01 Patrick Palka <ppalka@redhat.com>
925 * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
926 factored out from ...
927 (pair::operator=): ... the constraints of the const overloads.
929 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
931 * include/bits/version.tpl: Do not use def-file-line for each
933 * include/bits/version.h: Regenerate.
935 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
937 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
939 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
941 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
943 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
945 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
947 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
949 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
951 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
953 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
956 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
958 * include/experimental/internet (network_v4::to_string()):
959 Remove lambda and use of resize_and_overwrite.
961 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
963 * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
964 needed for newlocale.
965 * configure: Regenerate.
966 * src/c++26/text_encoding.cc: Use <xlocale.h>.
968 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
969 Ewan Higgs <ewan.higgs@gmail.com>
971 * include/bits/text_encoding-data.h: Regenerate.
972 * scripts/gen_text_encoding_data.py: Add extra_aliases dict
974 * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
976 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
978 * doc/xml/manual/using.xml: Update tables of supported headers.
979 * doc/html/*: Regenerate.
981 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
983 * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
984 -Wshift-count-overflow warning.
986 2024-01-30 Jonathan Wakely <jwakely@redhat.com>
988 * testsuite/std/time/clock/gps/io.cc: Fix expected result in
989 assertion and call test_format() from main.
991 2024-01-29 François Dumont <fdumont@gcc.gnu.org>
993 * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
994 _GLIBCXX_DEBUG_BACKTRACE macro.
996 2024-01-24 Huanghui Nie <nnnjkk@gmail.com>
997 Théo Papadopoulo <papadopoulo@gmail.com>
999 * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
1000 _M_before_begin check and cleanup implementation.
1002 2024-01-22 Jonathan Wakely <jwakely@redhat.com>
1004 * testsuite/std/time/clock/file/io.cc: Fix expected result in
1005 assertion and call test_format() from main.
1007 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
1010 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
1011 printing of subseconds with floating-point rep.
1012 (__formatter_chrono::_M_format_to_ostream): Do not write
1013 time_point specializations directly to the ostream.
1014 (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
1015 empty chrono-spec if the type fails to meet the constraints for
1016 writing to an ostream with operator<<.
1017 * testsuite/std/time/clock/file/io.cc: Check formatting
1018 non-integral times with empty chrono-specs.
1019 * testsuite/std/time/clock/gps/io.cc: Likewise.
1020 * testsuite/std/time/clock/utc/io.cc: Likewise.
1021 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1023 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
1025 * include/bits/chrono.h (__file_clock::from_sys)
1026 (__file_clock::to_sys, __file_clock::_S_from_sys)
1027 (__file_clock::_S_to_sys): Use common_type for return type.
1028 * testsuite/std/time/clock/file/members.cc: Check round trip
1029 conversion for time with lower precision that seconds.
1031 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
1034 * include/std/format (__formatter_fp::format): Fix logic for
1036 * testsuite/std/format/functions/format.cc: Check buggy cases of
1037 alternate forms with g presentation type.
1039 2024-01-20 Marek Polacek <polacek@redhat.com>
1042 * include/std/ranges: Add #pragma to disable -Wdangling-reference with
1043 std::ranges::views::__adaptor::operator|.
1045 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
1047 * include/std/format (_Spec::_M_parse_fill_and_align): Do not
1048 use CTAD for _Utf32_view.
1050 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
1053 * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
1054 wrong fold-operator.
1055 * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
1056 element and three elements. Check allocator-extended
1059 2024-01-19 Patrick Palka <ppalka@redhat.com>
1061 * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
1062 <print> and <text_encoding> for C++23 and C++26 respectively.
1064 2024-01-18 Patrick Palka <ppalka@redhat.com>
1066 * include/bits/stl_pair.h [__cplusplus > 202002L]:
1067 Guard P2321R2 changes with __glibcxx_ranges_zip instead.
1069 2024-01-18 Patrick Palka <ppalka@redhat.com>
1071 * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
1072 changes with __cpp_lib_ranges_zip instead.
1074 2024-01-18 Patrick Palka <ppalka@redhat.com>
1077 * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
1078 Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
1079 * include/debug/safe_iterator.h
1080 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
1081 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
1082 (_Safe_iterator::operator=): Use them around the code path that
1083 defines a variable of type __gnu_cxx::__scoped_lock.
1084 (_Safe_iterator::operator++): Likewise.
1085 (_Safe_iterator::operator--): Likewise.
1086 (_Safe_iterator::operator+=): Likewise.
1087 (_Safe_iterator::operator-=): Likewise.
1088 * testsuite/23_containers/vector/element_access/constexpr.cc
1089 (test_iterators): Test more iterator operations.
1090 * testsuite/23_containers/vector/bool/element_access/constexpr.cc
1091 (test_iterators): Likewise.
1092 * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
1095 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
1097 * include/bits/unicode.h (__charset_alias_match): Initialize
1098 __var_a and __var_b.
1100 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
1103 * testsuite/std/format/functions/format.cc: Use signed char
1106 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
1109 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
1110 (GLIBCXX_CHECK_TEXT_ENCODING): Define.
1111 * config.h.in: Regenerate.
1112 * configure: Regenerate.
1113 * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
1114 * include/Makefile.am: Add new headers.
1115 * include/Makefile.in: Regenerate.
1116 * include/bits/locale_classes.h (locale::encoding): Declare new
1118 * include/bits/unicode.h (__charset_alias_match): New function.
1119 * include/bits/text_encoding-data.h: New file.
1120 * include/bits/version.def (text_encoding): Define.
1121 * include/bits/version.h: Regenerate.
1122 * include/std/text_encoding: New file.
1123 * src/Makefile.am: Add new subdirectory.
1124 * src/Makefile.in: Regenerate.
1125 * src/c++26/Makefile.am: New file.
1126 * src/c++26/Makefile.in: New file.
1127 * src/c++26/text_encoding.cc: New file.
1128 * src/experimental/Makefile.am: Include c++26 convenience
1130 * src/experimental/Makefile.in: Regenerate.
1131 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
1133 * scripts/gen_text_encoding_data.py: New file.
1134 * testsuite/22_locale/locale/encoding.cc: New test.
1135 * testsuite/ext/unicode/charset_alias_match.cc: New test.
1136 * testsuite/std/text_encoding/cons.cc: New test.
1137 * testsuite/std/text_encoding/members.cc: New test.
1138 * testsuite/std/text_encoding/requirements.cc: New test.
1140 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
1142 * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
1143 Do not use CTAD for _Utf32_view.
1144 (__format_width, __truncate): Do not use CTAD.
1145 (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
1146 (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
1148 2024-01-17 Patrick Palka <ppalka@redhat.com>
1150 * include/std/ranges (views::_CartesianProduct::operator()):
1151 Adjust identity case as per P2540R1.
1152 * testsuite/std/ranges/cartesian_product/1.cc (test01):
1153 Adjust expected result of the identity case.
1155 2024-01-15 Patrick Palka <ppalka@redhat.com>
1157 * include/std/variant (__detail::__variant::_Variadic_union):
1158 Add bool __trivially_destructible template parameter.
1159 (__detail::__variant::_Variadic_union::~_Variadic_union):
1160 Use __trivially_destructible in constraints instead.
1161 (__detail::__variant::_Variant_storage): Pass
1162 __trivially_destructible value to _Variadic_union.
1164 2024-01-15 Patrick Palka <ppalka@redhat.com>
1166 * include/bits/stl_iterator.h (const_iterator): Define conversion
1167 operators as per P2836R1.
1168 * include/bits/version.def (ranges_as_const): Update value.
1169 * include/bits/version.h: Regenerate.
1170 * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
1171 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
1172 value of __cpp_lib_ranges_as_const.
1173 * testsuite/std/ranges/version_c++23.cc: Likewise.
1175 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
1178 * include/std/tuple (__assignable, __is_nothrow_assignable):
1179 Move pre-C++20 definitions adjacent to their use.
1181 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
1184 * include/std/format (basic_format_arg): Use __formattable
1185 variable template instead of __format::__formattable_with
1188 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
1190 * src/c++20/tzdata.zi: Import new file from 2023d release.
1191 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
1192 Update expiry date for leap seconds list.
1194 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
1197 * include/std/tuple (tuple): Add checks for dangling references.
1198 Reimplement constraints and constant expressions using C++20
1200 * include/std/type_traits [C++20]
1201 (__is_implicitly_default_constructible_v): Define.
1202 (__is_implicitly_default_constructible): Use variable template.
1203 * testsuite/20_util/tuple/dangling_ref.cc: New test.
1205 2024-01-13 Patrick Palka <ppalka@redhat.com>
1209 * include/bits/version.def (bind_back): Define.
1210 * include/bits/version.h: Regenerate.
1211 * include/std/functional (_Bind_back): Define for C++23.
1212 (bind_back): Likewise.
1213 * testsuite/20_util/function_objects/bind_back/1.cc: New test
1214 (adapted from corresponding bind_front test).
1215 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
1217 2024-01-13 Patrick Palka <ppalka@redhat.com>
1219 * include/std/functional (_Bind_front): Remove =default special
1220 member function declarations.
1221 (_Bind_front::operator()): Implement using C++23 deducing this
1223 * testsuite/20_util/function_objects/bind_front/111327.cc:
1224 Adjust testcase to expect better errors in C++23 mode.
1226 2024-01-13 Patrick Palka <ppalka@redhat.com>
1228 * include/std/ranges (views::__adaptor::operator|): Perform
1229 perfect forwarding of arguments.
1230 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
1231 first argument to _Partial.
1232 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy
1234 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
1236 (to): Pass dummy first argument to _Partial.
1238 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
1241 * include/bits/random.tcc (subtract_with_carry_engine::seed):
1242 Implement proposed resolution of LWG 4014.
1243 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1245 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1246 Check for expected result of 64-bit engine with seed that
1247 doesn't fit in 32-bits.
1249 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
1252 * include/std/format (__format::_Runtime_format_string): Add
1253 constructor and disable copy operations.
1254 (basic_format_string(_Runtime_format_string)): Add noexcept and
1255 take parameter by value not rvalue reference.
1256 (runtime_format): Add noexcept.
1257 * testsuite/std/format/runtime_format.cc: Check noexcept. Check
1258 that construction is only possible from prvalues, not xvalues.
1260 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
1263 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
1264 default template arguments, as per P1951R1.
1265 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
1267 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
1269 * include/std/format (__format::_Arg_store): Fix PR number in
1270 comment. Simplify preprocessor code.
1272 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
1274 * doc/xml/manual/evolution.xml: Fix spelling.
1275 * doc/html/manual/api.html: Regenerate.
1277 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
1279 * doc/xml/manual/evolution.xml: Document addition of
1281 * doc/html/*: Regenerate.
1283 2024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
1285 * libsupc++/eh_unex_handler.cc: Adjust definition type to
1288 2024-01-11 Michael Levine <mlevine55@bloomberg.net>
1290 * include/std/ranges (__glibcxx_want_ranges_iota): Remove
1291 duplicate definition.
1293 2024-01-11 François Dumont <fdumont@gcc.gnu.org>
1296 * src/c++11/debug.cc
1297 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
1299 (_Safe_iterator_base::_M_attach_single): Likewise.
1300 (_Safe_local_iterator_base::_M_attach): Likewise.
1301 (_Safe_local_iterator_base::_M_attach_single): Likewise.
1302 * testsuite/23_containers/map/debug/112477.cc: New test case.
1304 2024-01-11 Patrick Palka <ppalka@redhat.com>
1306 * include/bits/move.h (__like_t): Define in C++23 mode.
1307 * include/std/ranges (views::__adaptor::Partial::operator()):
1308 Implement using C++23 deducing this when available.
1309 (views::__adaptor::_Pipe::operator()): Likewise.
1310 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
1311 accept new "no match for call" errors issued in C++23 mode.
1312 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
1314 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
1316 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
1317 Add printer for std::integral_constant.
1318 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1320 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
1323 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
1326 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
1328 * src/filesystem/ops-common.h (stat_type): Use using.
1330 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
1333 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
1334 * src/filesystem/ops.cc (fs::equivalent): Likewise.
1335 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
1337 * testsuite/experimental/filesystem/operations/equivalent.cc:
1340 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
1342 * include/std/type_traits (is_compound): Do not use __not_.
1343 (is_compound_v): Use is_fundamental_v instead.
1345 2024-01-11 Patrick Palka <ppalka@redhat.com>
1347 * include/bits/utility.h (_Nth_type): Use
1348 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
1350 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
1352 * include/bits/unicode-data.h: Regenerate.
1353 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
1355 (__incb_property): Add missing check for values before the
1357 (__is_extended_pictographic): Invert return values to fix
1359 (_Grapheme_cluster_view::_Iterator): Remove second iterator
1360 member and find end of cluster lazily.
1361 * testsuite/ext/unicode/grapheme_view.cc: New test.
1362 * testsuite/ext/unicode/properties.cc: New test.
1363 * testsuite/ext/unicode/view.cc: New test.
1365 2024-01-09 Andreas Schwab <schwab@linux-m68k.org>
1367 * scripts/extract_symvers.in: Require final colon to only match
1368 .dsynsym in the header of the dynamic symtab.
1370 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
1372 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
1373 handling of string returned from std::format.
1374 (__formatter_chrono::_M_R_T): Likewise.
1376 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1378 * include/bits/unicode.h (__null_sentinel): Remove.
1379 * testsuite/17_intro/names.cc: Add __null_sentinel.
1381 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1383 * include/std/format (__format::_Runtime_format_string): Define
1385 (basic_format_string): Add non-consteval constructor for runtime
1387 (runtime_format): Define new function for C++26.
1388 * testsuite/std/format/runtime_format.cc: New test.
1390 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1392 * include/bits/chrono_io.h (__formatter_chrono): Always use
1393 lvalue arguments to make_format_args.
1394 * include/std/format (make_format_args): Change parameter pack
1395 from forwarding references to lvalue references. Remove use of
1396 remove_reference_t which is now unnecessary.
1397 (format_to, formatted_size): Remove incorrect forwarding of
1399 * include/std/ostream (print): Remove forwarding of arguments.
1400 * include/std/print (print): Likewise.
1401 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
1403 * testsuite/std/format/arguments/args.cc: Likewise.
1404 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
1405 * testsuite/std/format/functions/format.cc: Likewise.
1406 * testsuite/std/format/functions/vformat_to.cc: Likewise.
1407 * testsuite/std/format/string.cc: Likewise.
1408 * testsuite/std/time/day/io.cc: Likewise.
1409 * testsuite/std/time/month/io.cc: Likewise.
1410 * testsuite/std/time/weekday/io.cc: Likewise.
1411 * testsuite/std/time/year/io.cc: Likewise.
1412 * testsuite/std/time/year_month_day/io.cc: Likewise.
1413 * testsuite/std/format/arguments/args_neg.cc: New test.
1415 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1417 * include/Makefile.am: Add new headers.
1418 * include/Makefile.in: Regenerate.
1419 * include/bits/unicode.h: New file.
1420 * include/bits/unicode-data.h: New file.
1421 * include/std/format: Include <bits/unicode.h>.
1422 (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
1423 (_Spec::_M_fill): Change type to char32_t.
1424 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
1425 instead of a single character.
1426 (__write_padded): Change __fill_char parameter to char32_t and
1427 encode it into the output.
1428 (__formatter_str::format): Use new __unicode::__field_width and
1429 __unicode::__truncate functions.
1430 * include/std/ostream: Adjust namespace qualification for
1431 __literal_encoding_is_utf8.
1432 * include/std/print: Likewise.
1433 * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
1434 * testsuite/ext/unicode/view.cc: New test.
1435 * testsuite/std/format/functions/format.cc: Add missing examples
1436 from the standard demonstrating alignment with non-ASCII
1437 characters. Add examples checking correct handling of extended
1440 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1442 * include/bits/version.def (format_uchar): Define.
1443 * include/bits/version.h: Regenerate.
1444 * include/std/format (formatter<C, C>::format): Check for
1445 _Pres_c and call _M_format_character directly. Cast C to its
1446 unsigned equivalent for formatting as an integer.
1447 (formatter<char, wchar_t>::format): Likewise.
1448 (basic_format_arg(T&)): Store char arguments as unsigned char
1449 for formatting to a wide string.
1450 * testsuite/std/format/functions/format.cc: Adjust test. Check
1453 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
1456 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
1459 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
1461 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
1463 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
1465 * include/std/type_traits (is_trivially_destructible_v): Use
1466 built-in directly when concepts are supported.
1467 * testsuite/20_util/is_trivially_destructible/value_v.cc: New
1470 2024-01-06 Gwenole Beauchesne <gb.devel@gmail.com>
1472 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
1473 nonnull arguments to strtoimax() and wcstoimax() functions.
1475 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
1477 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
1478 size and check for overflows in arithmetic.
1479 (path::operator/=(const path&)): Remove redundant exponential
1482 2024-01-05 Martin Küttler <martin.kuettler@kernkonzept.com>
1484 * src/c++17/fs_path.cc (path::_List::reserve): Avoid
1485 floating-point arithmetic.
1487 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
1490 * include/std/type_traits (is_convertible_v): Guard use of
1491 built-in with preprocessor check.
1493 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
1496 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
1497 __builtin_constant_p to check for unrelated pointers that cannot
1498 be compared during constant evaluation.
1499 * testsuite/21_strings/char_traits/requirements/113200.cc: New
1502 2024-01-05 Cassio Neri <cassio.neri@gmail.com>
1504 * include/std/chrono: Fix + and - for months and weekdays.
1505 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
1506 * testsuite/std/time/month/2.cc: New test for extreme values.
1507 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
1508 * testsuite/std/time/weekday/2.cc: New test for extreme values.
1510 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
1513 * include/bits/locale_classes.tcc (__try_use_facet): Use
1514 if-constexpr for C++11 and up.
1516 2024-01-05 Ken Matsui <kmatsui@gcc.gnu.org>
1518 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
1520 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
1522 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
1523 reported by Will Hawkins <hawkinsw@obs.cr>.
1525 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
1527 * include/std/generator (_Stateless_alloc): Rename typename _A
1530 2024-01-03 Patrick Palka <ppalka@redhat.com>
1533 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
1534 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
1538 Copyright (C) 2024 Free Software Foundation, Inc.
1540 Copying and distribution of this file, with or without modification,
1541 are permitted in any medium without royalty provided the copyright
1542 notice and this notice are preserved.