1 2024-03-29 Arsen Arsenović <arsen@aarsen.me>
3 * testsuite/24_iterators/range_generators/01.cc: Drop GCC
4 Runtime Library Exception.
5 * testsuite/24_iterators/range_generators/02.cc: Drop GCC
6 Runtime Library Exception.
7 * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
8 Runtime Library Exception.
9 * testsuite/24_iterators/range_generators/except.cc: Drop GCC
10 Runtime Library Exception.
11 * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
12 Runtime Library Exception.
13 * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
14 Runtime Library Exception.
15 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
16 Drop GCC Runtime Library Exception from the "You should have
17 received a copy" paragraph.
19 2024-03-27 Matthias Kretz <m.kretz@gsi.de>
21 * include/experimental/bits/simd_x86.h (_S_masked_unary):
22 Cast inputs < 16 bytes to 16 byte vectors before calling the
23 right subtraction builtin. Before returning, truncate to the
26 2024-03-27 Matthias Kretz <m.kretz@gsi.de>
28 * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
29 the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
30 rounding direction argument.
32 2024-03-27 Srinivas Yadav Singanaboina <vasu.srinivasvasu.14@gmail.com>
34 * include/Makefile.am: Add simd_sve.h.
35 * include/Makefile.in: Add simd_sve.h.
36 * include/experimental/bits/simd.h: Add new SveAbi.
37 * include/experimental/bits/simd_builtin.h: Use
38 __no_sve_deduce_t to support existing Neon Abi.
39 * include/experimental/bits/simd_converter.h: Convert
40 sequentially when sve is available.
41 * include/experimental/bits/simd_detail.h: Define sve
43 * include/experimental/bits/simd_math.h: Fallback frexp
44 to execute sequntially when sve is available, to handle
45 fixed_size_simd return type that always uses sve.
46 * include/experimental/simd: Include bits/simd_sve.h.
47 * testsuite/experimental/simd/tests/bits/main.h: Enable
48 testing for sve128, sve256, sve512.
49 * include/experimental/bits/simd_sve.h: New file.
51 2024-03-26 Arsen Arsenović <arsen@aarsen.me>
53 * include/std/generator (generator::_Iterator::operator*): Fix
55 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
58 2024-03-26 Arsen Arsenović <arsen@aarsen.me>
60 * include/std/generator: Fix _V badname.
62 2024-03-26 Jonathan Wakely <jwakely@redhat.com>
64 * testsuite/19_diagnostics/stacktrace/current.cc: Check for
65 __cpp_lib_stacktrace instead of check for stacktrace ET.
66 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
67 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
68 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
69 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
70 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
71 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
72 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
74 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
77 2024-03-26 Jonathan Wakely <jwakely@redhat.com>
79 * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
81 * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
83 * testsuite/std/text_encoding/cons.cc: Use new directive to skip
84 the test if the __cpp_lib_text_encoding feature test macro is
86 * testsuite/std/text_encoding/requirements.cc: Likewise.
88 2024-03-25 Jonathan Wakely <jwakely@redhat.com>
90 * testsuite/std/text_encoding/requirements.cc: #undef the
93 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
95 * include/std/format (formatter): Disable specializations that
96 would allow sequences of narrow characters to be formatted as
97 wchar_t without conversion, as per LWG 3944.
98 * testsuite/std/format/formatter/lwg3944.cc: New test.
100 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
102 * include/bits/utility.h (__is_in_place_index_v): New variable
104 * include/std/variant (__not_in_place_tag): Define in terms of
105 variable templates not a class template.
107 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
110 * include/std/string_view (operator==): Use std::type_identity_t
111 in C++20 instead of our own __type_identity_t.
113 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
116 * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
117 release() on node handle instead of just zeroing its pointer.
118 (_Hashtable::_M_reinsert_node_multi): Likewise.
119 (_Hashtable::_M_merge_unique): Likewise.
120 (_Hashtable::_M_merge_multi): Likewise.
121 * include/bits/node_handle.h (_Node_handle_common::release()):
123 (_Node_handle_common::_Optional_alloc::_M_empty): Remove
124 unnecessary union member.
125 (_Node_handle_common): Declare _Hashtable as a friend.
126 * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
127 Call release() on node handle instead of just zeroing its
129 (_Rb_tree::_M_reinsert_node_equal): Likewise.
130 (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
131 (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
132 * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
133 * testsuite/23_containers/set/modifiers/114401.cc: New test.
134 * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
135 * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
137 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
140 * include/bits/allocator.h (allocator<cv T>): Add default
141 constructor to partial specializations for cv-qualified types.
142 * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
143 Constrain so that it's only present if the allocator is default
145 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
147 * testsuite/23_containers/vector/cons/113841.cc: New test.
149 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
151 * include/bits/stl_construct.h (destroy_at, construct_at): Guard
152 with feature test macros instead of just __cplusplus.
154 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
156 * include/bits/version.def (generator, tuple_like): Move earlier
158 * include/bits/version.h: Regenerate.
160 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
163 * include/std/functional (bind): Use __invoke_result_t instead
165 * include/std/type_traits (__invoke_result_t): New alias
167 * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
169 2024-03-20 François Dumont <fdumont@gcc.gnu.org>
171 * include/bits/version.def (null_iterators): Remove extra_cond.
172 * include/bits/version.h: Regenerate.
174 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
177 * include/bits/random.tcc (binomial_distribution::param_type):
178 Ensure arithmetic is done as type double.
179 * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
181 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
184 * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
185 Define before including <tbb/task.h> then undef afterwards.
187 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
189 * include/Makefile.am [MAINTAINER_MODE]: Add target to
190 automatically update <bits/version.h>.
191 * include/Makefile.in: Regenerate.
193 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
195 * doc/xml/manual/build_hacking.xml: Document generated files.
196 Update list of convenience libraries and sub-directories under
198 * doc/html/*: Regenerate.
200 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
202 * include/bits/text_encoding-data.h: Regenerate.
203 * include/bits/unicode-data.h: Regenerate.
204 * scripts/gen_text_encoding_data.py: Fix header of generated
205 file to name the correct script.
207 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
209 * testsuite/util/pstl/test_utils.h: Fix typos in comments.
211 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
214 * include/bits/stl_bvector.h (_M_allocate): Use allocator's
215 construct function to begin lifetime of words.
217 2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
219 * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
220 option for the path to the uninstalled libatomic.
222 2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
224 * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
225 /dev/null, use a temporary file for test executables on Darwin.
227 2024-03-18 François Dumont <fdumont@gcc.gnu.org>
229 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
230 Accept 0 offset advance on value-initialized iterator.
231 * testsuite/23_containers/vector/debug/n3644.cc: New test case.
233 2024-03-18 François Dumont <fdumont@gcc.gnu.org>
235 * include/debug/safe_local_iterator.tcc
236 (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
238 * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
240 2024-03-17 François Dumont <fdumont@gcc.gnu.org>
243 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
244 First check if both iterators are value-initialized before checking if
246 * testsuite/23_containers/set/debug/114316.cc: New test case.
247 * testsuite/23_containers/vector/debug/114316.cc: New test case.
249 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
252 * include/std/format (_Scanner::_M_scan): Pass correct length to
254 * testsuite/std/format/functions/format.cc: Check negative
255 integers with empty format-spec.
257 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
259 * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
260 (find_if_not, is_partitioned, partition_point, remove)
261 (remove_if, unique, lower_bound, upper_bound, equal_range)
262 (binary_search, includes, is_sorted, is_sorted_until, minmax)
263 (minmax_element, is_permutation, clamp, find_if, find_first_of)
264 (adjacent_find, count, count_if, search, search_n, min_element)
265 (max_element): Add nodiscard attribute.
266 * include/bits/stl_algobase.h (min, max, lower_bound, equal)
267 (lexicographical_compare, lexicographical_compare_three_way)
268 (mismatch): Likewise.
269 * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
270 * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
271 * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
272 * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
273 * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
275 * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
276 * testsuite/25_algorithms/lexicographical_compare/71545.cc:
278 * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
279 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
281 * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
283 * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
285 * testsuite/25_algorithms/minmax/3.cc: Likewise.
286 * testsuite/25_algorithms/search/78346.cc: Likewise.
287 * testsuite/25_algorithms/search_n/58358.cc: Likewise.
288 * testsuite/25_algorithms/unique/1.cc: Likewise.
289 * testsuite/25_algorithms/unique/11480.cc: Likewise.
290 * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
291 * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
293 * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
295 * testsuite/ext/concept_checks.cc: Likewise.
296 * testsuite/ext/is_heap/47709.cc: Likewise.
297 * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
299 2024-03-14 xndcn <xndchn@gmail.com>
301 * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
303 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
306 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
309 * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
310 note about std::call_once.
311 * doc/xml/manual/status_cxx2014.xml: Likewise.
312 * doc/xml/manual/status_cxx2017.xml: Likewise.
313 * doc/html/manual/status.html: Regenerate.
315 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
317 * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
318 * doc/html/manual/status.html: Regenerate.
319 * include/bits/version.def: Fix typo in comment.
321 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
323 * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
326 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
328 * doc/xml/manual/debug.xml: Improve docs on debug builds and
329 using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
330 the most relevant ones first.
331 * doc/xml/manual/using.xml: Add comma.
332 * doc/html/*: Regenerate.
334 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
336 * doc/xml/manual/debug.xml: Document that concept checking might
337 be removed in future.
338 * doc/xml/manual/extensions.xml: Likewise.
340 2024-03-09 Jonathan Wakely <jwakely@redhat.com>
343 * include/bits/chrono_io.h (_Parser::operator()): Assume
344 hours(0) for a time_point, so that a time is not required
346 * testsuite/std/time/parse/114240.cc: New test.
348 2024-03-09 Jonathan Wakely <jwakely@redhat.com>
351 * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
353 (_Parser::_M_reserved): Reserve padding bits for future use.
354 (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
355 (from_stream): Only allow _M_is_leap_second for utc_time and
356 local_time. Adjust arithmetic for utc_time so that leap seconds
357 are preserved. Use time_point_cast to convert to a possibly
358 lower-precision result type.
359 * testsuite/std/time/parse.cc: Move to ...
360 * testsuite/std/time/parse/parse.cc: ... here.
361 * testsuite/std/time/parse/114279.cc: New test.
363 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
365 * include/bits/chrono_io.h (_Parser::operator()): Use
366 std::from_chars to parse fractional seconds.
368 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
371 * include/bits/chrono_io.h (_Parser::operator()): Remove
372 redundant uses of duration_cast. Use chrono::round to convert
373 long double value to durations with integer representations.
374 Check represenation type when deciding whether to skip parsing
376 * testsuite/20_util/duration/114244.cc: New test.
377 * testsuite/20_util/duration/io.cc: Check that a floating-point
378 duration with ratio<1> precision can be parsed.
380 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
383 * include/bits/version.def (atomic_lock_free_type_aliases): Add
384 extra_cond to check for at least one always-lock-free type.
385 * include/bits/version.h: Regenerate.
386 * include/std/atomic (atomic_signed_lock_free)
387 (atomic_unsigned_lock_free): Only use always-lock-free types.
388 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
389 atomic counter if lock-free aliases aren't available.
390 * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
391 targets without lock-free word-size compare_exchange.
393 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
395 * include/std/chrono (__get_leap_second_info): Update expiry
396 time for hardcoded list of leap seconds.
397 * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
399 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
401 * testsuite/23_containers/deque/allocator/default_init.cc: Use
402 std::memset instead of __builtin_memset.
403 * testsuite/23_containers/forward_list/allocator/default_init.cc:
405 * testsuite/23_containers/list/allocator/default_init.cc:
407 * testsuite/23_containers/map/allocator/default_init.cc:
409 * testsuite/23_containers/set/allocator/default_init.cc:
411 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
413 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
415 * testsuite/23_containers/vector/allocator/default_init.cc:
417 * testsuite/23_containers/vector/bool/allocator/default_init.cc:
419 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
421 * testsuite/util/atomic/wait_notify_util.h: Likewise.
423 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
425 * include/std/format (_Arg_store::_S_make_elt): Add two
426 static_assert checks to give more user-friendly error messages.
427 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
428 form of "in requirements with" note.
429 * testsuite/std/format/arguments/args_neg.cc: Check for
430 user-friendly diagnostics for non-formattable types.
431 * testsuite/std/format/string_neg.cc: Likewise.
433 2024-03-04 Jonathan Wakely <jwakely@redhat.com>
436 * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
437 Add missing overload of allocator-extended default constructor.
438 (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
439 * testsuite/20_util/tuple/cons/114147.cc: New test.
441 2024-02-29 Jonathan Wakely <jwakely@redhat.com>
443 * include/std/format (basic_format_arg::handle::__maybe_const_t):
444 Fix condition to check if const type is formattable.
445 (basic_format_arg::handle::handle(T&)): Remove redundant
447 * testsuite/std/format/formatter/basic.cc: New test.
449 2024-02-29 Jonathan Wakely <jwakely@redhat.com>
452 * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
453 (__memcmp_ordered_with): New concept.
454 (lexicographical_compare_three_way): Use __memcmp_ordered_with
455 instead of __is_byte_iter. Use correct length for memcmp.
456 * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
459 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
462 * include/experimental/scope (scope_exit scope_fail): Make
463 destructor unconditionally noexcept.
464 (scope_sucess): Fix noexcept-specifier.
465 * testsuite/experimental/scopeguard/114152.cc: New test.
467 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
469 * doc/xml/manual/appendix_contributing.xml: Change URLs to use
471 * doc/html/manual/*: Regenerate.
473 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
475 * doc/xml/manual/appendix_contributing.xml: Replace outdated
476 info on ChangeLog entries.
477 * doc/html/manual/appendix_contributing.html: Regenerate.
479 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
481 * include/bits/stl_bvector.h (vector<bool, A>::at): Add
483 * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
484 (operator==, operator<=>, operator<, operator!=, operator>)
485 (operator<=, operator>=): Likewise.
486 * include/debug/vector (operator==, operator<=>, operator<)
487 (operator!=, operator>, operator<=, operator>=): Likewise.
488 * testsuite/23_containers/vector/nodiscard.cc: New test.
490 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
492 * include/bits/atomic_base.h (operator|, operator&): Add
494 * include/bits/fs_fwd.h (operator&, operator|, operator^)
495 (operator~): Add nodiscard to overloads for copy_options, perms,
496 perm_options, and directory_options.
497 * include/bits/ios_base.h (operator&, operator|, operator^)
498 (operator~): Add nodiscard and noexcept to overloads for
499 _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
500 (operator|=, operator&=, operator^=): Add constexpr for C++14.
501 * include/bits/regex_constants.h (operator&, operator|, operator^)
502 (operator~): Add nodiscard and noexcept to overloads for
503 syntax_option_type and match_flag_type.
504 (operator|=, operator&=, operator^=): Add noexcept.
505 * include/std/charconv (operator&, operator|, operator^)
506 (operator~): Add nodiscard to overloads for chars_format.
507 * include/std/future (operator&, operator|, operator^)
508 (operator~): Add nodiscard for overloads for launch.
509 (operator&=, operator|=, operator^=): Add constexpr for C++14.
510 * include/experimental/bits/fs_fwd.h (operator&, operator|)
511 (operator^, operator~): Add nodiscard to overloads for
512 copy_options, perms, and directory_options.
513 * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
514 Add dg-warning for nodiscard warnings.
515 * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
517 * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
519 * testsuite/27_io/filesystem/operations/bitmask_types.cc:
522 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
524 * testsuite/27_io/basic_ostream/print/1.cc: Check error
526 * testsuite/27_io/print/1.cc: Likewise.
528 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
530 * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
531 code path for Cygwin instead of Windows.
532 * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
533 * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
534 for *-*-mingw* targets.
535 * testsuite/27_io/print/1.cc: Likewise.
537 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
539 * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
540 __make_move_if_noexcept_iterator.
542 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
544 * include/std/stacktrace: Add nodiscard attribute to all
545 functions without side effects.
547 2024-02-20 François Dumont <fdumont@gcc.gnu.org>
549 * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
550 std::__niter_base on res iterator.
552 2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
553 Jonathan Wakely <jwakely@redhat.com>
556 * configure: Regenerate.
557 * configure.ac: Detect if we are building for Darwin.
558 * libsupc++/Makefile.am: If we are building for Darwin, then
559 suppress hot/cold partitioning for the array allocators.
560 * libsupc++/Makefile.in: Regenerated.
562 2024-02-17 François Dumont <fdumont@gcc.gnu.org>
564 * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
565 definitions for __gnu_debug::_Safe_iterator.
566 * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
568 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
572 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
575 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
579 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
582 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
584 * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
585 * doc/html/manual/debug_mode_using.html: Regenerate.
587 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
589 * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
590 * doc/html/manual/test.html: Regenerate.
592 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
595 * include/std/bitset (bitset::operator>>=): Remove redundant
596 call to _M_do_sanitize.
598 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
601 * include/std/bitset (bitset::set()): Use memset instead of a
602 loop over the individual words.
604 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
607 * include/bits/stl_algo.h (__rotate): Use unsigned values for
610 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
613 * include/std/valarray (valarray::operator=(const _Expr&)):
614 Use loop to copy instead of __valarray_copy with _Array.
615 * testsuite/26_numerics/valarray/99117.cc: New test.
617 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
619 * src/c++20/tzdata.zi: Import new file from 2024a release.
620 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
621 Update expiry date for leap seconds list.
623 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
626 * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
627 Define specialization for 64-bit generators with
628 non-power-of-two modulus and large constants.
629 (__mod): Use if constexpr unconditionally.
630 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
632 * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
635 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
637 * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
639 * doc/html/manual/status.html: Regenerate.
641 2024-02-12 Paul Keir <paul.keir@uws.ac.uk>
644 * include/bits/basic_string.h (basic_string::operator=): Use
645 _M_use_local_data() instead of _M_local_buf on the moved-from
647 * testsuite/21_strings/basic_string/modifiers/constexpr.cc
648 (test_move): New test.
650 2024-02-09 Ken Matsui <kmatsui@gcc.gnu.org>
652 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
654 * include/std/type_traits (is_same): Use
655 _GLIBCXX_USE_BUILTIN_TRAIT instead of
656 _GLIBCXX_HAVE_BUILTIN_IS_SAME.
657 (is_same_v): Likewise.
659 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
661 * include/bits/shared_ptr_atomic.h: Fix typo in comment.
663 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
666 * include/bits/gslice.h (operator=): Add comment about lack of
667 self-assignment check.
669 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
671 * include/tr2/type_traits (bases, direct_bases): Use
672 __has_builtin to check if required built-ins are supported.
674 2024-02-07 Patrick Palka <ppalka@redhat.com>
678 * include/bits/stl_pair.h (tuple_element): Add forward
679 declaration of the partial specialization for tuple.
681 2024-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
683 * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
684 for other environments.
686 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
688 * include/std/format (__format::_Spec::_M_reserved): Define new
689 bit-field members to reserve padding bits for future extensions.
691 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
693 * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
694 instead of libstdc++fs.a.
695 * src/experimental/Makefile.in: Regenerate.
696 * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
698 * src/filesystem/Makefile.in: Regenerate.
700 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
702 * include/bits/text_encoding-data.h: Regenerate.
703 * include/bits/unicode-data.h: Regenerate.
704 * scripts/gen_text_encoding_data.py: Add copyright and license
707 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
710 * include/bits/std_function.h (__function_guide_helper): Add
711 partial specialization for explicit object member functions, as
713 * testsuite/20_util/function/cons/deduction_c++23.cc: Check
714 explicit object member functions.
715 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
718 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
720 * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
722 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
724 * include/experimental/internet (network_v6::network): Define.
725 (network_v6::hosts): Finish implementing.
726 (network_v6::to_string): Do not concatenate std::string to
727 arbitrary std::basic_string specialization.
728 * testsuite/experimental/net/internet/network/v6/cons.cc: New
731 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
734 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
735 comparison function to use less-than instead of equality.
737 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
740 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
741 perfect forwarding for iterator arguments.
743 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
745 * include/std/string_view (basic_string_view(R&&)): Remove
746 constraint that traits_type must be the same, as per LWG 3857.
747 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
748 Explicit conversion between different specializations should be
750 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
753 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
755 * include/std/syncstream (basic_osyncstream::operator=): Remove
756 noexcept, as per LWG 3867.
758 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
760 * include/std/generator (promise_type::yield_value): Remove
761 noexcept from fourth overload, as per LWG 3894.
763 2024-02-01 Patrick Palka <ppalka@redhat.com>
767 * include/bits/ranges_util.h (__detail::__pair_like): Don't
768 define in C++23 mode.
769 (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
770 (__detail::__is_subrange<subrange>): Moved from <ranges>.
771 (__detail::__is_tuple_like_v<subrange>): Likewise.
772 * include/bits/stl_iterator.h: Include <bits/utility.h> for
774 (__different_from): Move to <concepts>.
775 (__iter_key_t): Adjust for C++23 as per P2165R4.
776 (__iter_val_t): Likewise.
777 * include/bits/stl_pair.h (pair, array): Forward declare.
778 (get): Forward declare all overloads relevant to P2165R4
779 tuple-like constructors.
780 (__is_tuple_v): Define for C++23.
781 (__is_tuple_like_v): Define for C++23.
782 (__tuple_like): Define for C++23 as per P2165R4.
783 (__pair_like): Define for C++23 as per P2165R4.
784 (__eligibile_tuple_like): Define for C++23.
785 (__eligibile_pair_like): Define for C++23.
786 (pair::_S_constructible_from_pair_like): Define for C++23.
787 (pair::_S_convertible_from_pair_like): Define for C++23.
788 (pair::_S_dangles_from_pair_like): Define for C++23.
789 (pair::pair): Define overloads taking a tuple-like type for
790 C++23 as per P2165R4.
791 (pair::_S_assignable_from_tuple_like): Define for C++23.
792 (pair::_S_const_assignable_from_tuple_like): Define for C++23.
793 (pair::operator=): Define overloads taking a tuple-like type for
794 C++23 as per P2165R4.
795 * include/bits/utility.h (ranges::__detail::__is_subrange):
797 * include/bits/version.def (tuple_like): Define for C++23.
798 * include/bits/version.h: Regenerate.
799 * include/std/concepts (__different_from): Moved from
800 <bits/stl_iterator.h>.
801 (ranges::__swap::__adl_swap): Clarify which __detail namespace.
802 * include/std/map (__cpp_lib_tuple_like): Define C++23.
803 * include/std/ranges (__detail::__is_subrange): Moved to
805 (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
806 (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
807 (__detail::__tuple_or_pair): Remove as per P2165R4. Replace all
808 uses with plain tuple as per P2165R4.
809 * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
810 (__tuple_like_tag_t): Define for C++23.
811 (__tuple_cmp): Forward declare for C++23.
812 (_Tuple_impl::_Tuple_impl): Define overloads taking
813 __tuple_like_tag_t and a tuple-like type for C++23.
814 (_Tuple_impl::_M_assign): Likewise.
815 (tuple::__constructible_from_tuple_like): Define for C++23.
816 (tuple::__convertible_from_tuple_like): Define for C++23.
817 (tuple::__dangles_from_tuple_like): Define for C++23.
818 (tuple::tuple): Define overloads taking a tuple-like type for
819 C++23 as per P2165R4.
820 (tuple::__assignable_from_tuple_like): Define for C++23.
821 (tuple::__const_assignable_from_tuple_like): Define for C++23.
822 (tuple::operator=): Define overloads taking a tuple-like type
823 for C++23 as per P2165R4.
824 (tuple::__tuple_like_common_comparison_category): Define for C++23.
825 (tuple::operator<=>): Define overload taking a tuple-like type
826 for C++23 as per P2165R4.
827 (array, get): Forward declarations moved to <bits/stl_pair.h>.
828 (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
830 (make_from_tuple): Likewise.
831 (__tuple_like_common_reference): Define for C++23.
832 (basic_common_reference): Adjust as per P2165R4.
833 (__tuple_like_common_type): Define for C++23.
834 (common_type): Adjust as per P2165R4.
835 * include/std/unordered_map (__cpp_lib_tuple_like): Define for
837 * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
838 * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
839 and 2-tuple interchangeably.
841 * testsuite/20_util/pair/p2165r4.cc: New test.
842 * testsuite/20_util/tuple/p2165r4.cc: New test.
844 2024-02-01 Patrick Palka <ppalka@redhat.com>
846 * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
847 factored out from ...
848 (pair::operator=): ... the constraints of the const overloads.
850 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
852 * include/bits/version.tpl: Do not use def-file-line for each
854 * include/bits/version.h: Regenerate.
856 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
858 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
860 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
862 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
864 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
866 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
868 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
870 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
872 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
874 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
877 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
879 * include/experimental/internet (network_v4::to_string()):
880 Remove lambda and use of resize_and_overwrite.
882 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
884 * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
885 needed for newlocale.
886 * configure: Regenerate.
887 * src/c++26/text_encoding.cc: Use <xlocale.h>.
889 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
890 Ewan Higgs <ewan.higgs@gmail.com>
892 * include/bits/text_encoding-data.h: Regenerate.
893 * scripts/gen_text_encoding_data.py: Add extra_aliases dict
895 * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
897 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
899 * doc/xml/manual/using.xml: Update tables of supported headers.
900 * doc/html/*: Regenerate.
902 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
904 * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
905 -Wshift-count-overflow warning.
907 2024-01-30 Jonathan Wakely <jwakely@redhat.com>
909 * testsuite/std/time/clock/gps/io.cc: Fix expected result in
910 assertion and call test_format() from main.
912 2024-01-29 François Dumont <fdumont@gcc.gnu.org>
914 * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
915 _GLIBCXX_DEBUG_BACKTRACE macro.
917 2024-01-24 Huanghui Nie <nnnjkk@gmail.com>
918 Théo Papadopoulo <papadopoulo@gmail.com>
920 * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
921 _M_before_begin check and cleanup implementation.
923 2024-01-22 Jonathan Wakely <jwakely@redhat.com>
925 * testsuite/std/time/clock/file/io.cc: Fix expected result in
926 assertion and call test_format() from main.
928 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
931 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
932 printing of subseconds with floating-point rep.
933 (__formatter_chrono::_M_format_to_ostream): Do not write
934 time_point specializations directly to the ostream.
935 (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
936 empty chrono-spec if the type fails to meet the constraints for
937 writing to an ostream with operator<<.
938 * testsuite/std/time/clock/file/io.cc: Check formatting
939 non-integral times with empty chrono-specs.
940 * testsuite/std/time/clock/gps/io.cc: Likewise.
941 * testsuite/std/time/clock/utc/io.cc: Likewise.
942 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
944 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
946 * include/bits/chrono.h (__file_clock::from_sys)
947 (__file_clock::to_sys, __file_clock::_S_from_sys)
948 (__file_clock::_S_to_sys): Use common_type for return type.
949 * testsuite/std/time/clock/file/members.cc: Check round trip
950 conversion for time with lower precision that seconds.
952 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
955 * include/std/format (__formatter_fp::format): Fix logic for
957 * testsuite/std/format/functions/format.cc: Check buggy cases of
958 alternate forms with g presentation type.
960 2024-01-20 Marek Polacek <polacek@redhat.com>
963 * include/std/ranges: Add #pragma to disable -Wdangling-reference with
964 std::ranges::views::__adaptor::operator|.
966 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
968 * include/std/format (_Spec::_M_parse_fill_and_align): Do not
969 use CTAD for _Utf32_view.
971 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
974 * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
976 * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
977 element and three elements. Check allocator-extended
980 2024-01-19 Patrick Palka <ppalka@redhat.com>
982 * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
983 <print> and <text_encoding> for C++23 and C++26 respectively.
985 2024-01-18 Patrick Palka <ppalka@redhat.com>
987 * include/bits/stl_pair.h [__cplusplus > 202002L]:
988 Guard P2321R2 changes with __glibcxx_ranges_zip instead.
990 2024-01-18 Patrick Palka <ppalka@redhat.com>
992 * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
993 changes with __cpp_lib_ranges_zip instead.
995 2024-01-18 Patrick Palka <ppalka@redhat.com>
998 * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
999 Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
1000 * include/debug/safe_iterator.h
1001 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
1002 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
1003 (_Safe_iterator::operator=): Use them around the code path that
1004 defines a variable of type __gnu_cxx::__scoped_lock.
1005 (_Safe_iterator::operator++): Likewise.
1006 (_Safe_iterator::operator--): Likewise.
1007 (_Safe_iterator::operator+=): Likewise.
1008 (_Safe_iterator::operator-=): Likewise.
1009 * testsuite/23_containers/vector/element_access/constexpr.cc
1010 (test_iterators): Test more iterator operations.
1011 * testsuite/23_containers/vector/bool/element_access/constexpr.cc
1012 (test_iterators): Likewise.
1013 * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
1016 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
1018 * include/bits/unicode.h (__charset_alias_match): Initialize
1019 __var_a and __var_b.
1021 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
1024 * testsuite/std/format/functions/format.cc: Use signed char
1027 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
1030 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
1031 (GLIBCXX_CHECK_TEXT_ENCODING): Define.
1032 * config.h.in: Regenerate.
1033 * configure: Regenerate.
1034 * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
1035 * include/Makefile.am: Add new headers.
1036 * include/Makefile.in: Regenerate.
1037 * include/bits/locale_classes.h (locale::encoding): Declare new
1039 * include/bits/unicode.h (__charset_alias_match): New function.
1040 * include/bits/text_encoding-data.h: New file.
1041 * include/bits/version.def (text_encoding): Define.
1042 * include/bits/version.h: Regenerate.
1043 * include/std/text_encoding: New file.
1044 * src/Makefile.am: Add new subdirectory.
1045 * src/Makefile.in: Regenerate.
1046 * src/c++26/Makefile.am: New file.
1047 * src/c++26/Makefile.in: New file.
1048 * src/c++26/text_encoding.cc: New file.
1049 * src/experimental/Makefile.am: Include c++26 convenience
1051 * src/experimental/Makefile.in: Regenerate.
1052 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
1054 * scripts/gen_text_encoding_data.py: New file.
1055 * testsuite/22_locale/locale/encoding.cc: New test.
1056 * testsuite/ext/unicode/charset_alias_match.cc: New test.
1057 * testsuite/std/text_encoding/cons.cc: New test.
1058 * testsuite/std/text_encoding/members.cc: New test.
1059 * testsuite/std/text_encoding/requirements.cc: New test.
1061 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
1063 * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
1064 Do not use CTAD for _Utf32_view.
1065 (__format_width, __truncate): Do not use CTAD.
1066 (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
1067 (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
1069 2024-01-17 Patrick Palka <ppalka@redhat.com>
1071 * include/std/ranges (views::_CartesianProduct::operator()):
1072 Adjust identity case as per P2540R1.
1073 * testsuite/std/ranges/cartesian_product/1.cc (test01):
1074 Adjust expected result of the identity case.
1076 2024-01-15 Patrick Palka <ppalka@redhat.com>
1078 * include/std/variant (__detail::__variant::_Variadic_union):
1079 Add bool __trivially_destructible template parameter.
1080 (__detail::__variant::_Variadic_union::~_Variadic_union):
1081 Use __trivially_destructible in constraints instead.
1082 (__detail::__variant::_Variant_storage): Pass
1083 __trivially_destructible value to _Variadic_union.
1085 2024-01-15 Patrick Palka <ppalka@redhat.com>
1087 * include/bits/stl_iterator.h (const_iterator): Define conversion
1088 operators as per P2836R1.
1089 * include/bits/version.def (ranges_as_const): Update value.
1090 * include/bits/version.h: Regenerate.
1091 * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
1092 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
1093 value of __cpp_lib_ranges_as_const.
1094 * testsuite/std/ranges/version_c++23.cc: Likewise.
1096 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
1099 * include/std/tuple (__assignable, __is_nothrow_assignable):
1100 Move pre-C++20 definitions adjacent to their use.
1102 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
1105 * include/std/format (basic_format_arg): Use __formattable
1106 variable template instead of __format::__formattable_with
1109 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
1111 * src/c++20/tzdata.zi: Import new file from 2023d release.
1112 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
1113 Update expiry date for leap seconds list.
1115 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
1118 * include/std/tuple (tuple): Add checks for dangling references.
1119 Reimplement constraints and constant expressions using C++20
1121 * include/std/type_traits [C++20]
1122 (__is_implicitly_default_constructible_v): Define.
1123 (__is_implicitly_default_constructible): Use variable template.
1124 * testsuite/20_util/tuple/dangling_ref.cc: New test.
1126 2024-01-13 Patrick Palka <ppalka@redhat.com>
1130 * include/bits/version.def (bind_back): Define.
1131 * include/bits/version.h: Regenerate.
1132 * include/std/functional (_Bind_back): Define for C++23.
1133 (bind_back): Likewise.
1134 * testsuite/20_util/function_objects/bind_back/1.cc: New test
1135 (adapted from corresponding bind_front test).
1136 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
1138 2024-01-13 Patrick Palka <ppalka@redhat.com>
1140 * include/std/functional (_Bind_front): Remove =default special
1141 member function declarations.
1142 (_Bind_front::operator()): Implement using C++23 deducing this
1144 * testsuite/20_util/function_objects/bind_front/111327.cc:
1145 Adjust testcase to expect better errors in C++23 mode.
1147 2024-01-13 Patrick Palka <ppalka@redhat.com>
1149 * include/std/ranges (views::__adaptor::operator|): Perform
1150 perfect forwarding of arguments.
1151 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
1152 first argument to _Partial.
1153 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy
1155 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
1157 (to): Pass dummy first argument to _Partial.
1159 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
1162 * include/bits/random.tcc (subtract_with_carry_engine::seed):
1163 Implement proposed resolution of LWG 4014.
1164 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1166 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1167 Check for expected result of 64-bit engine with seed that
1168 doesn't fit in 32-bits.
1170 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
1173 * include/std/format (__format::_Runtime_format_string): Add
1174 constructor and disable copy operations.
1175 (basic_format_string(_Runtime_format_string)): Add noexcept and
1176 take parameter by value not rvalue reference.
1177 (runtime_format): Add noexcept.
1178 * testsuite/std/format/runtime_format.cc: Check noexcept. Check
1179 that construction is only possible from prvalues, not xvalues.
1181 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
1184 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
1185 default template arguments, as per P1951R1.
1186 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
1188 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
1190 * include/std/format (__format::_Arg_store): Fix PR number in
1191 comment. Simplify preprocessor code.
1193 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
1195 * doc/xml/manual/evolution.xml: Fix spelling.
1196 * doc/html/manual/api.html: Regenerate.
1198 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
1200 * doc/xml/manual/evolution.xml: Document addition of
1202 * doc/html/*: Regenerate.
1204 2024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
1206 * libsupc++/eh_unex_handler.cc: Adjust definition type to
1209 2024-01-11 Michael Levine <mlevine55@bloomberg.net>
1211 * include/std/ranges (__glibcxx_want_ranges_iota): Remove
1212 duplicate definition.
1214 2024-01-11 François Dumont <fdumont@gcc.gnu.org>
1217 * src/c++11/debug.cc
1218 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
1220 (_Safe_iterator_base::_M_attach_single): Likewise.
1221 (_Safe_local_iterator_base::_M_attach): Likewise.
1222 (_Safe_local_iterator_base::_M_attach_single): Likewise.
1223 * testsuite/23_containers/map/debug/112477.cc: New test case.
1225 2024-01-11 Patrick Palka <ppalka@redhat.com>
1227 * include/bits/move.h (__like_t): Define in C++23 mode.
1228 * include/std/ranges (views::__adaptor::Partial::operator()):
1229 Implement using C++23 deducing this when available.
1230 (views::__adaptor::_Pipe::operator()): Likewise.
1231 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
1232 accept new "no match for call" errors issued in C++23 mode.
1233 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
1235 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
1237 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
1238 Add printer for std::integral_constant.
1239 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1241 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
1244 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
1247 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
1249 * src/filesystem/ops-common.h (stat_type): Use using.
1251 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
1254 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
1255 * src/filesystem/ops.cc (fs::equivalent): Likewise.
1256 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
1258 * testsuite/experimental/filesystem/operations/equivalent.cc:
1261 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
1263 * include/std/type_traits (is_compound): Do not use __not_.
1264 (is_compound_v): Use is_fundamental_v instead.
1266 2024-01-11 Patrick Palka <ppalka@redhat.com>
1268 * include/bits/utility.h (_Nth_type): Use
1269 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
1271 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
1273 * include/bits/unicode-data.h: Regenerate.
1274 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
1276 (__incb_property): Add missing check for values before the
1278 (__is_extended_pictographic): Invert return values to fix
1280 (_Grapheme_cluster_view::_Iterator): Remove second iterator
1281 member and find end of cluster lazily.
1282 * testsuite/ext/unicode/grapheme_view.cc: New test.
1283 * testsuite/ext/unicode/properties.cc: New test.
1284 * testsuite/ext/unicode/view.cc: New test.
1286 2024-01-09 Andreas Schwab <schwab@linux-m68k.org>
1288 * scripts/extract_symvers.in: Require final colon to only match
1289 .dsynsym in the header of the dynamic symtab.
1291 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
1293 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
1294 handling of string returned from std::format.
1295 (__formatter_chrono::_M_R_T): Likewise.
1297 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1299 * include/bits/unicode.h (__null_sentinel): Remove.
1300 * testsuite/17_intro/names.cc: Add __null_sentinel.
1302 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1304 * include/std/format (__format::_Runtime_format_string): Define
1306 (basic_format_string): Add non-consteval constructor for runtime
1308 (runtime_format): Define new function for C++26.
1309 * testsuite/std/format/runtime_format.cc: New test.
1311 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1313 * include/bits/chrono_io.h (__formatter_chrono): Always use
1314 lvalue arguments to make_format_args.
1315 * include/std/format (make_format_args): Change parameter pack
1316 from forwarding references to lvalue references. Remove use of
1317 remove_reference_t which is now unnecessary.
1318 (format_to, formatted_size): Remove incorrect forwarding of
1320 * include/std/ostream (print): Remove forwarding of arguments.
1321 * include/std/print (print): Likewise.
1322 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
1324 * testsuite/std/format/arguments/args.cc: Likewise.
1325 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
1326 * testsuite/std/format/functions/format.cc: Likewise.
1327 * testsuite/std/format/functions/vformat_to.cc: Likewise.
1328 * testsuite/std/format/string.cc: Likewise.
1329 * testsuite/std/time/day/io.cc: Likewise.
1330 * testsuite/std/time/month/io.cc: Likewise.
1331 * testsuite/std/time/weekday/io.cc: Likewise.
1332 * testsuite/std/time/year/io.cc: Likewise.
1333 * testsuite/std/time/year_month_day/io.cc: Likewise.
1334 * testsuite/std/format/arguments/args_neg.cc: New test.
1336 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1338 * include/Makefile.am: Add new headers.
1339 * include/Makefile.in: Regenerate.
1340 * include/bits/unicode.h: New file.
1341 * include/bits/unicode-data.h: New file.
1342 * include/std/format: Include <bits/unicode.h>.
1343 (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
1344 (_Spec::_M_fill): Change type to char32_t.
1345 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
1346 instead of a single character.
1347 (__write_padded): Change __fill_char parameter to char32_t and
1348 encode it into the output.
1349 (__formatter_str::format): Use new __unicode::__field_width and
1350 __unicode::__truncate functions.
1351 * include/std/ostream: Adjust namespace qualification for
1352 __literal_encoding_is_utf8.
1353 * include/std/print: Likewise.
1354 * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
1355 * testsuite/ext/unicode/view.cc: New test.
1356 * testsuite/std/format/functions/format.cc: Add missing examples
1357 from the standard demonstrating alignment with non-ASCII
1358 characters. Add examples checking correct handling of extended
1361 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
1363 * include/bits/version.def (format_uchar): Define.
1364 * include/bits/version.h: Regenerate.
1365 * include/std/format (formatter<C, C>::format): Check for
1366 _Pres_c and call _M_format_character directly. Cast C to its
1367 unsigned equivalent for formatting as an integer.
1368 (formatter<char, wchar_t>::format): Likewise.
1369 (basic_format_arg(T&)): Store char arguments as unsigned char
1370 for formatting to a wide string.
1371 * testsuite/std/format/functions/format.cc: Adjust test. Check
1374 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
1377 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
1380 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
1382 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
1384 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
1386 * include/std/type_traits (is_trivially_destructible_v): Use
1387 built-in directly when concepts are supported.
1388 * testsuite/20_util/is_trivially_destructible/value_v.cc: New
1391 2024-01-06 Gwenole Beauchesne <gb.devel@gmail.com>
1393 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
1394 nonnull arguments to strtoimax() and wcstoimax() functions.
1396 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
1398 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
1399 size and check for overflows in arithmetic.
1400 (path::operator/=(const path&)): Remove redundant exponential
1403 2024-01-05 Martin Küttler <martin.kuettler@kernkonzept.com>
1405 * src/c++17/fs_path.cc (path::_List::reserve): Avoid
1406 floating-point arithmetic.
1408 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
1411 * include/std/type_traits (is_convertible_v): Guard use of
1412 built-in with preprocessor check.
1414 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
1417 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
1418 __builtin_constant_p to check for unrelated pointers that cannot
1419 be compared during constant evaluation.
1420 * testsuite/21_strings/char_traits/requirements/113200.cc: New
1423 2024-01-05 Cassio Neri <cassio.neri@gmail.com>
1425 * include/std/chrono: Fix + and - for months and weekdays.
1426 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
1427 * testsuite/std/time/month/2.cc: New test for extreme values.
1428 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
1429 * testsuite/std/time/weekday/2.cc: New test for extreme values.
1431 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
1434 * include/bits/locale_classes.tcc (__try_use_facet): Use
1435 if-constexpr for C++11 and up.
1437 2024-01-05 Ken Matsui <kmatsui@gcc.gnu.org>
1439 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
1441 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
1443 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
1444 reported by Will Hawkins <hawkinsw@obs.cr>.
1446 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
1448 * include/std/generator (_Stateless_alloc): Rename typename _A
1451 2024-01-03 Patrick Palka <ppalka@redhat.com>
1454 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
1455 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
1459 Copyright (C) 2024 Free Software Foundation, Inc.
1461 Copying and distribution of this file, with or without modification,
1462 are permitted in any medium without royalty provided the copyright
1463 notice and this notice are preserved.