1 2024-08-22 Patrick Palka <ppalka@redhat.com>
3 * testsuite/25_algorithms/contains/1.cc: Verify value of
4 __cpp_lib_ranges_contains.
5 * testsuite/25_algorithms/find_last/1.cc: Verify value of
6 __cpp_lib_ranges_find_last.
7 * testsuite/26_numerics/iota/2.cc: Verify value of
10 2024-08-22 Patrick Palka <ppalka@redhat.com>
12 * include/bits/iterator_concepts.h (__detail::__projected): Define
13 an optimized partial specialization for when the projection is
15 * testsuite/24_iterators/indirect_callable/projected.cc: Verify the
18 2024-08-22 Patrick Palka <ppalka@redhat.com>
20 * include/bits/iterator_concepts.h (indirectly_unary_invocable):
22 (indirectly_regular_unary_invocable): Likewise.
23 (indirect_unary_predicate): Likewise.
24 (indirect_binary_predicate): Likewise.
25 (indirect_equivalence_relation): Likewise.
26 (indirect_strict_weak_order): Likewise.
27 * include/bits/version.def (ranges): Update value for C++26.
28 * include/bits/version.h: Regenerate.
29 * testsuite/24_iterators/indirect_callable/p2997r1.cc: New test.
30 * testsuite/std/ranges/version_c++23.cc: Remove.
31 * testsuite/std/ranges/headers/ranges/synopsis.cc: Refine the
32 __cpp_lib_ranges checks.
34 2024-08-22 Patrick Palka <ppalka@redhat.com>
36 * include/bits/iterator_concepts.h (__detail::__indirect_value):
38 (__indirect_value_t): Define as per P2609R3.
39 (iter_common_reference_t): Adjust as per P2609R3.
40 (indirectly_unary_invocable): Likewise.
41 (indirectly_regular_unary_invocable): Likewise.
42 (indirect_unary_predicate): Likewise.
43 (indirect_binary_predicate): Likewise.
44 (indirect_equivalence_relation): Likewise.
45 (indirect_strict_weak_order): Likewise.
46 (__detail::__projected::__type): Define member aliases
47 __projected_Iter and __projected_Proj providing the
48 template arguments of the current specialization.
49 * include/bits/version.def (ranges): Update value.
50 * include/bits/version.h: Regenerate.
51 * testsuite/24_iterators/indirect_callable/p2609r3.cc: New test.
52 * testsuite/std/ranges/version_c++23.cc: Update expected value
53 of __cpp_lib_ranges macro.
55 2024-08-21 Jonathan Wakely <jwakely@redhat.com>
57 PR tree-optimization/102958
58 * include/bits/char_traits.h (char_traits<char8_t>::length): Use
61 2024-08-21 Jonathan Wakely <jwakely@redhat.com>
64 * src/c++98/locale_facets.cc (__num_base::_S_format_float):
65 Check uppercase flag for fixed format.
66 * testsuite/22_locale/num_put/put/char/lwg4084.cc: New test.
68 2024-08-21 Jonathan Wakely <jwakely@redhat.com>
71 * include/std/variant (variant): Fix conditions for
72 static_assert to match the spec.
73 * testsuite/20_util/variant/types_neg.cc: New test.
75 2024-08-20 Jonathan Wakely <jwakely@redhat.com>
77 * include/std/optional: Remove redundant redeclaration.
79 2024-08-20 Jonathan Wakely <jwakely@redhat.com>
81 * include/std/text_encoding: Fix indentation.
83 2024-08-20 Jonathan Wakely <jwakely@redhat.com>
86 * testsuite/18_support/headers/new/synopsis.cc [C++26]: Add
87 constexpr to placement operator new and operator new[].
89 2024-08-18 Gerald Pfeifer <gerald@pfeifer.com>
91 * doc/xml/manual/prerequisites.xml: Remove note from the
93 * doc/html/manual/setup.html: Regenerate.
95 2024-08-17 Gerald Pfeifer <gerald@pfeifer.com>
97 * doc/xml/manual/abi.xml: Update reference to
98 gcc.gnu.org/onlinedocs.
99 * doc/xml/manual/concurrency_extensions.xml (interface): Ditto.
100 * doc/xml/manual/extensions.xml: Ditto.
101 * doc/xml/manual/parallel_mode.xml: Ditto.
102 * doc/xml/manual/shared_ptr.xml: Ditto.
103 * doc/xml/manual/using_exceptions.xml: Ditto. And change GNU GCC
105 * doc/html/manual/abi.html: Regenerate.
106 * doc/html/manual/ext_concurrency_impl.html: Ditto.
107 * doc/html/manual/ext_demangling.html: Ditto.
108 * doc/html/manual/memory.html: Ditto.
109 * doc/html/manual/parallel_mode_design.html: Ditto.
110 * doc/html/manual/parallel_mode_using.html: Ditto.
111 * doc/html/manual/using_exceptions.html: Ditto.
113 2024-08-17 Gerald Pfeifer <gerald@pfeifer.com>
115 * doc/xml/manual/prerequisites.xml: Tweak two links to
116 installation docs. Fix grammar.
117 * doc/html/manual/setup.html: Regenerate.
119 2024-08-16 Hans-Peter Nilsson <hp@axis.com>
122 * configure.ac: Check newlib configuration whether iconv is enabled.
123 * configure: Regenerate.
125 2024-08-16 Hans-Peter Nilsson <hp@axis.com>
127 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune
128 uncapitalized "in function" warning from linker.
130 2024-08-08 Jakub Jelinek <jakub@redhat.com>
133 * libsupc++/new (__glibcxx_want_constexpr_new): Define before
134 including bits/version.h.
135 (_GLIBCXX_PLACEMENT_CONSTEXPR): Define.
136 (operator new, operator new[]): Use it for placement new instead
138 * include/bits/version.def (constexpr_new): New FTM.
139 * include/bits/version.h: Regenerate.
141 2024-08-06 Jonathan Wakely <jwakely@redhat.com>
144 * include/bits/fs_path.h: Use __UINTPTR_TYPE__ instead of
146 * include/bits/shared_ptr_atomic.h: Likewise.
147 * include/ext/pointer.h: Include <stdint.h>.
149 2024-08-03 Patrick Palka <ppalka@redhat.com>
151 * include/bits/move.h (__like_impl): New metafunction.
152 (__like_t): Redefine in terms of __like_impl.
153 (forward_like): Redefine in terms of __like_t.
154 * testsuite/20_util/forward_like/2_neg.cc: Don't expect
155 error outside the immediate context anymore.
157 2024-08-02 Jonathan Wakely <jwakely@redhat.com>
159 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Include
162 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
164 * include/bits/utility.h (__is_in_place_type): Remove.
165 * include/std/variant (__is_in_place_tag): Remove.
167 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
169 * include/bits/align.h (align, assume_aligned): Use
170 __UINTPTR_TYPE__ instead of uintptr_t. Do not include
172 * include/bits/atomic_base.h (__atomic_ref): Likewise.
173 * include/bits/atomic_wait.h (__waiter_pool_base::_S_for):
175 * include/std/atomic: Include <cstdint>.
177 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
179 * include/bits/atomic_base.h (__atomic_impl::compare_exchange_weak):
180 Remove unused parameter.
181 (__atomic_impl::compare_exchange_strong): Likewise.
183 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
186 * include/std/bitset (bitset::_M_is_equal()): Use memcmp to
189 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
191 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
192 Use ARGS to limit number of iterations for simulators.
194 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
197 * include/bits/basic_string.h (basic_string::basic_string()):
198 Constrain so that it's only present if the allocator is default
200 * include/bits/cow_string.h (basic_string::basic_string()):
202 * testsuite/21_strings/basic_string/cons/113841.cc: New test.
204 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
207 * include/bits/cow_string.h (data()): Change to noexcept(false).
209 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
211 * testsuite/23_containers/map/operators/1_neg.cc (test01): Remove test variable
212 and use 'no match' dg-error patter.
213 * testsuite/23_containers/set/operators/1_neg.cc (test01): Likewise.
215 2024-07-31 François Dumont <frs.dumont@gmail.com>
217 * testsuite/23_containers/map/operators/1_neg.cc (test01): Add test variable
219 * testsuite/23_containers/set/operators/1_neg.cc (test01): Likewise.
221 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
223 * src/c++20/format.cc [!_GLIBCXX_HAS_GTHREADS] (mutex): Define
225 * testsuite/std/time/format_localized.cc: Use loop variable
226 instead of creating the same locale on every iteration.
228 2024-07-31 Sam James <sam@gentoo.org>
230 * testsuite/28_regex/traits/char/translate.cc: Drop bogus 'dg_do run'.
232 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
234 * src/c++11/system_error.cc (strerror_string): Handle
235 non-conforming NULL return from strerror.
237 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
239 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
240 Only append "@euro" to ".ISO8859-15" locales for Glibc.
242 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
244 * include/bits/version.def (format): Update value for C++26.
245 * include/bits/version.h: Regenerate.
246 * include/std/format (runtime_format, wruntime_format): Check
247 __cpp_lib_format instead of __cplusplus.
248 * testsuite/std/format/functions/format.cc: Update expected
249 value of macro for C++26 mode.
251 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
254 * include/bits/c++config (_GLIBCXX26_DEPRECATED): Define.
255 (_GLIBCXX26_DEPRECATED_SUGGEST): Define.
256 * include/bits/version.def (format): Update for C++26.
257 * include/bits/version.h: Regenerate.
258 * include/std/format (basic_format_arg::visit): New member
260 (visit_format_arg): Add deprecated attribute.
261 * testsuite/std/format/arguments/args.cc: Expect deprecated
262 warnings. Check member visit.
263 * testsuite/std/format/functions/format.cc: Update expected
264 value for __cpp_lib_format macro.
265 * testsuite/std/format/parse_ctx.cc: Add dg-warning for
268 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
271 * include/bits/version.def (variant): Update for C++26.
272 * include/bits/version.h: Regenerate.
273 * include/std/variant (variant::visit): New member functions.
274 * testsuite/20_util/variant/visit.cc: Check second alternative.
275 * testsuite/20_util/variant/visit_member.cc: New test.
277 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
280 * include/bits/version.def (format): Update for C++26.
281 * include/bits/version.h: Regenerate.
282 * include/std/format (basic_format_parse_context): Remove
283 default argument from constructor and split into two
284 constructors. Make the constructor taking size_t private for
286 (basic_format_parse_context::check_dynamic_spec): New member
288 (basic_format_parse_context::check_dynamic_spec_integral): New
290 (basic_format_parse_context::check_dynamic_spec_string):
292 (__format::_Spec::_S_parse_width_or_precision): Use
293 check_dynamic_spec_integral.
294 (__format::__to_arg_t_enum): New helper function.
295 (basic_format_arg): Declare __to_arg_t_enum as friend.
296 (__format::_Scanner): Define and use a derived parse context
298 (__format::_Checking_scanner): Make arg types available to parse
300 * testsuite/std/format/functions/format.cc: Check for new values
301 of __cpp_lib_format macro.
302 * testsuite/std/format/parse_ctx.cc: Check all members of
303 basic_format_parse_context.
304 * testsuite/std/format/parse_ctx_neg.cc: New test.
305 * testsuite/std/format/string.cc: Add more checks for dynamic
306 width and precision args.
308 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
310 * include/bits/version.def (format): Update value for P2510R3.
311 * include/bits/version.h: Regenerate.
312 * include/std/format (_GLIBCXX_P2518R3): Remove misspelled macro
313 and check __glibcxx_format instead.
314 * testsuite/std/format/functions/format.cc: Check value of the
315 __cpp_lib_format macro for formatting pointers support.
316 * testsuite/std/format/parse_ctx.cc: Likewise.
318 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
321 * acinclude.m4 (libtool_VERSION): Update to 6:34:0.
322 * config/abi/pre/gnu.ver: Disambiguate old patters. Add new
323 GLIBCXX_3.4.34 symbol version and new exports.
324 * configure: Regenerate.
325 * include/bits/chrono_io.h (_ChronoSpec::_M_locale_specific):
326 Add new accessor functions to use a reserved bit in _Spec.
327 (__formatter_chrono::_M_parse): Use _M_locale_specific(true)
328 when chrono-specs contains locale-dependent conversion
330 (__formatter_chrono::_M_format): Open iconv descriptor if
331 conversion to UTF-8 will be needed.
332 (__formatter_chrono::_M_write): New function to write a
333 localized string with possible character conversion.
334 (__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B)
335 (__formatter_chrono::_M_p, __formatter_chrono::_M_r)
336 (__formatter_chrono::_M_x, __formatter_chrono::_M_X)
337 (__formatter_chrono::_M_locale_fmt): Use _M_write.
338 * include/bits/version.def (format): Update value.
339 * include/bits/version.h: Regenerate.
340 * include/std/format (_GLIBCXX_P2518R3): Check feature test
341 macro instead of __cplusplus.
342 (basic_format_context): Declare __formatter_chrono as friend.
343 * src/c++20/Makefile.am: Add new file.
344 * src/c++20/Makefile.in: Regenerate.
345 * src/c++20/format.cc: New file.
346 * testsuite/std/time/format_localized.cc: New test.
347 * testsuite/util/testsuite_abi.cc: Add new symbol version.
349 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
351 * include/bits/chrono_io.h (__local_time_fmt_for): New alias
353 (formatter<zoned_time<D, P>>): Use __local_time_fmt_for.
354 * testsuite/std/time/zoned_time/io.cc: Check zoned_time<minutes>
357 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
359 * include/bits/chrono_io.h (__local_fmt_t): Remove unused
361 (__formatter_chrono::_M_format_to_ostream): Add explicit
362 handling for specializations of __local_time_fmt, including the
363 time zone abbreviation in the output if __is_neg is true.
364 (formatter<chrono::tai_time<D>>::format): Add comment.
365 (formatter<chrono::gps_time<D>>::format): Likewise.
366 (formatter<chrono::__detail::__local_time_fmt::format): Call
367 _M_format with true for the __is_neg flag.
368 * testsuite/std/time/clock/gps/io.cc: Remove unused variable.
369 * testsuite/std/time/clock/local/io.cc: Fix test error that
370 checked tai_time instead of local_time. Add tests for
371 local-time-format-t formatting.
372 * testsuite/std/time/clock/system/io.cc: Check empty
374 * testsuite/std/time/clock/tai/io.cc: Likewise.
375 * testsuite/std/time/zoned_time/io.cc: Likewise.
377 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
379 * include/std/expected (expected(U&&), operator=(U&&))
380 (value_or): Use remove_cv_t on default template argument, as per
382 * include/std/optional (optional(U&&), operator=(U&&))
383 (value_or): Likewise.
384 * testsuite/20_util/expected/lwg3886.cc: New test.
385 * testsuite/20_util/optional/cons/lwg3886.cc: New test.
387 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
389 * src/c++17/fs_ops.cc: Fix file name in comment.
391 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
393 * src/c++17/fs_ops.cc (auto_win_file_handle): Change constructor
394 parameter from const path& to const wchar_t*.
395 (fs::equiv_files): New function.
396 (fs::equivalent): Use equiv_files.
397 * src/filesystem/ops-common.h (fs::equiv_files): Declare.
398 (do_copy_file): Use equiv_files.
399 * src/filesystem/ops.cc (fs::equiv_files): Define.
400 (fs::copy, fs::equivalent): Use equiv_files.
401 * testsuite/27_io/filesystem/operations/copy.cc: Test
402 overwriting directory contents recursively.
403 * testsuite/27_io/filesystem/operations/copy_file.cc: Test
404 overwriting existing files.
406 2024-07-30 Lennox Shou Hao Ho <lennoxhoe@gmail.com>
409 * src/c++17/fs_ops.cc (fs::equivalent): Moved helper class
410 auto_handle to anonymous namespace as auto_win_file_handle.
411 (fs::hard_link_count): Changed Windows implementation to use
412 information provided by GetFileInformationByHandle which is more
414 * testsuite/27_io/filesystem/operations/hard_link_count.cc: New
417 2024-07-29 Thomas Schwinge <tschwinge@baylibre.com>
419 * testsuite/lib/libstdc++.exp (file-io-diff): Polish.
421 2024-07-28 Sam James <sam@gentoo.org>
424 * testsuite/18_support/type_info/110572.cc: Fix dg-do directive order.
426 2024-07-27 Jonathan Wakely <jwakely@redhat.com>
428 * include/std/charconv (__to_chars_16, __to_chars_10)
429 (__to_chars_8, __to_chars_2, __to_chars): Cast ptrdiff_t to
430 size_t for comparison.
431 (__to_chars_i): Check for first >= last instead of first == last
432 for initial sanity check.
434 2024-07-27 Jonathan Wakely <jwakely@redhat.com>
436 * include/bits/std_function.h: Add comment about LWG 3617 being
439 2024-07-27 Jonathan Wakely <jwakely@redhat.com>
441 * include/bits/stl_algobase.h (__find_if): Remove overloads for
442 dispatching on iterator_category. Do not unroll loop manually.
443 * include/bits/stl_algo.h (__find_if_not): Remove
444 iterator_category argument from __find_if call.
446 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
448 * include/std/expected (expected::value): Add assertions for LWG
450 (expected<cv void, E>::value): Add assertions for LWG 3940
453 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
455 * include/std/format (basic_format_args): Remove default
456 constructor, as per LWG 4106.
457 * testsuite/std/format/arguments/args.cc: Check it isn't default
460 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
462 * include/bits/utility.h (_Swallow_assign): Make assignment
463 constexpr for C++11 as well, and add noexcept.
464 * include/std/tuple (_Swallow_assign, ignore): Move to
466 * testsuite/20_util/headers/utility/ignore.cc: New test.
468 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
470 * include/std/optional: Reorder parameters in comparison
471 operators as per LWG 2945.
473 2024-07-25 Patrick Palka <ppalka@redhat.com>
476 * include/std/functional (_Bind_front::operator()): Use __like_t
477 instead of std::forward when forwarding __self.
478 (_Bind_back::operator()): Likewise.
479 * include/std/ranges (_Partial::operator()): Likewise.
480 (_Pipe::operator()): Likewise.
481 * testsuite/20_util/function_objects/bind_back/116038.cc: New test.
482 * testsuite/20_util/function_objects/bind_front/116038.cc: New test.
483 * testsuite/std/ranges/adaptors/116038.cc: New test.
485 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
487 * include/std/expected (bad_expected_access<void>): Add noexcept
488 to special member functions, as per LWG 4031.
489 * testsuite/20_util/expected/bad.cc: Check for nothrow copy and
492 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
494 * include/std/optional (optional): Use C++20 features to
495 simplify overload sets for constructors and assignment
498 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
500 * include/std/optional (optional): Constrain constructors to
501 prevent problematic bool conversions, as per LWG 3836.
502 * testsuite/20_util/optional/cons/lwg3836.cc: New test.
504 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
506 * include/std/expected (expected): Constrain constructors to
507 prevent problematic bool conversions, as per LWG 3836.
508 * testsuite/20_util/expected/lwg3836.cc: New test.
510 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
512 * include/std/optional (_Optional_payload_base::_Storage)
513 [C++20]: Define constrained non-trivial destructor.
514 (_Optional_payload_base::_Storage<U, false>) [C++20]: Do not
515 define partial specialization when primary template has
516 constrained destructor.
517 (_Optional_base) [C++20]: Define constrained trivial copy and
518 move cons and move constructors. Define payload accessors here
519 instead of inheriting them from _Optional_base_impl.
520 (_Optional_base_impl, _Optional_base<T, false, true>)
521 (_Optional_base<T, true, false>, _Optional_base<T, true, true>)
522 [C++20]: Do not define.
524 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
526 * include/std/optional (optional): Add using-declaraction for
527 _Base::_M_get and declare optional<U> as friend.
528 (optional(const optional<U>&)): Use
529 _M_get instead of operator*.
530 (optional(optional<U>&&)): Likewise.
531 (operator=(const optional<U>&)): Likewise.
532 (operator=(optional<U>&&)): Likewise.
533 (and_then, tansform): Likewise.
535 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
537 * include/std/optional (_Optional_base_impl::_M_get()): Move
539 (optional::operator->, optional::operator*): ... here.
541 2024-07-25 Andrew Pinski <quic_apinski@quicinc.com>
543 * testsuite/lib/libstdc++.exp (v3_target_compile): Call
544 string trim on v3_target_compile before calling split.
546 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
549 * include/std/istream: Check feature test macro before using
550 is_class_v and is_same_v.
551 * include/std/ostream: Likewise.
553 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
556 * include/bits/stl_bvector.h: Check feature test macro before
557 using is_default_constructible_v.
559 2024-07-24 Michael Levine <mlevine55@bloomberg.net>
561 * include/bits/ranges_algobase.h: Remove duplicate include of
562 <bits/stl_algobase.h>.
564 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
567 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc: Move to...
568 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-1.cc: ...here.
569 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc: Move to...
570 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-2.cc: ...here.
571 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc: Move to...
572 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-3.cc: ...here.
573 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc: Move to...
574 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-4.cc: ...here.
576 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
578 * testsuite/lib/libstdc++.exp (libstdc++_init): Do not copy all
579 data files into test directory.
581 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
583 * testsuite/20_util/hash/chi2_q_document_words.cc: Use
584 dg-additional-files for input text.
585 * testsuite/performance/ext/pb_ds/all_text_find.cc: Likewise.
586 * testsuite/performance/ext/pb_ds/multimap_text_find.hpp:
588 * testsuite/performance/ext/pb_ds/multimap_text_insert.hpp:
590 * testsuite/performance/ext/pb_ds/multimap_text_insert_mem.hpp:
592 * testsuite/performance/ext/pb_ds/priority_queue_text_join.cc:
594 * testsuite/performance/ext/pb_ds/priority_queue_text_modify.hpp: Likewise.
595 * testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem.cc: Likewise.
596 * testsuite/performance/ext/pb_ds/priority_queue_text_push.cc:
598 * testsuite/performance/ext/pb_ds/priority_queue_text_push_pop.cc: Likewise.
599 * testsuite/performance/ext/pb_ds/tree_text_insert.cc: Likewise.
600 * testsuite/performance/ext/pb_ds/tree_text_lor_find.cc:
603 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
605 * testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc:
606 Use dg-additional-files.
607 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
609 * testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc:
611 * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
613 * testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc:
615 * testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc:
617 * testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc:
619 * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
622 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
624 * testsuite/27_io/basic_filebuf/close/char/1.cc: Remove
625 @require@ and @diff@. Use dg-final file-io-diff action.
626 * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
628 * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
630 * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
631 * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
632 * testsuite/27_io/basic_istream/ignore/char/3.cc: Likewise.
633 * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
634 * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
635 * testsuite/27_io/basic_istream/peek/wchar_t/6414.cc: Likewise.
636 * testsuite/27_io/basic_istream/seekg/char/fstream.cc: Likewise.
637 * testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc:
639 * testsuite/27_io/basic_istream/tellg/char/fstream.cc: Likewise.
640 * testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc:
642 * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
643 * testsuite/27_io/basic_ostream/inserters_other/char/1.cc:
645 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
647 * testsuite/27_io/ios_base/sync_with_stdio/1.cc: Likewise.
648 * testsuite/27_io/basic_ostream/inserters_other/char/2.cc:
649 Likewise. Check file positions.
650 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc:
652 * testsuite/lib/libstdc++.exp (file-io-diff): New proc.
654 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
656 * testsuite/27_io/basic_filebuf/imbue/char/2.cc: Use
658 * testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise.
659 * testsuite/27_io/basic_filebuf/open/char/path.cc: Likewise.
660 * testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc:
662 * testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc: Likewise.
663 * testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc: Likewise.
664 * testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc: Likewise.
665 * testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc: Likewise.
666 * testsuite/27_io/basic_filebuf/setbuf/char/1.cc: Likewise.
667 * testsuite/27_io/basic_filebuf/sgetn/char/3.cc: Likewise.
668 * testsuite/27_io/basic_filebuf/underflow/10096.cc: Likewise.
669 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
670 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
671 * testsuite/27_io/basic_ifstream/assign/1.cc: Likewise.
672 * testsuite/27_io/basic_ifstream/cons/move.cc: Likewise.
673 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
674 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
675 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
676 * testsuite/27_io/objects/char/10.cc: Likewise.
677 * testsuite/27_io/objects/char/12048-1.cc: Likewise.
678 * testsuite/27_io/objects/char/12048-2.cc: Likewise.
679 * testsuite/27_io/objects/char/12048-3.cc: Likewise.
680 * testsuite/27_io/objects/char/12048-4.cc: Likewise.
681 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
682 * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
683 * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
684 * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
685 * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
686 * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
687 * testsuite/ext/stdio_sync_filebuf/char/12048-1.cc: Likewise.
688 * testsuite/ext/stdio_sync_filebuf/char/12048-2.cc: Likewise.
689 * testsuite/ext/stdio_sync_filebuf/char/12048-3.cc: Likewise.
690 * testsuite/ext/stdio_sync_filebuf/char/12048-4.cc: Likewise.
691 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc: Likewise.
692 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc: Likewise.
693 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc: Likewise.
694 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc: Likewise.
696 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
698 * testsuite/27_io/basic_filebuf/close/char/2.cc: Remove
699 @require@ and @diff@ markup. Use dg-additional-files. Remove
701 * testsuite/27_io/basic_filebuf/close/char/3.cc: Remove
702 @require@ and @diff@ markup. Use dg-additional-files.
703 * testsuite/27_io/basic_filebuf/close/char/4.cc: Likewise.
704 * testsuite/27_io/basic_filebuf/close/char/5.cc: Likewise.
705 * testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Likewise.
706 * testsuite/27_io/basic_filebuf/is_open/char/1.cc: Likewise.
707 * testsuite/27_io/basic_filebuf/open/char/1.cc: Likewise.
708 * testsuite/27_io/basic_filebuf/open/char/2.cc: Likewise.
709 * testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: Likewise.
710 * testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Likewise.
711 * testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: Likewise.
712 * testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: Likewise.
713 * testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Likewise.
714 * testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Likewise.
715 * testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Likewise.
716 * testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Likewise.
717 * testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Likewise.
718 * testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Likewise.
719 * testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Likewise.
720 * testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Likewise.
721 * testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: Likewise.
722 * testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Likewise.
723 * testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: Likewise.
724 * testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: Likewise.
725 * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: Likewise.
726 * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Likewise.
727 * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Likewise.
728 * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Likewise.
729 * testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: Likewise.
730 * testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Likewise.
731 * testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: Likewise.
732 * testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: Likewise.
733 * testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: Likewise.
734 * testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc:
736 * testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc:
738 * testsuite/27_io/basic_filebuf/sputc/char/1-in.cc: Likewise.
739 * testsuite/27_io/basic_filebuf/sputc/char/2-in.cc: Likewise.
740 * testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: Likewise.
741 * testsuite/27_io/basic_filebuf/sputn/char/1-in.cc: Likewise.
742 * testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Likewise.
743 Remove unused variable.
744 * testsuite/27_io/basic_filebuf/sputn/char/2-in.cc: Remove
745 @require@ and @diff@ markup. Use dg-additional-files.
746 * testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc: Likewise.
747 * testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc: Likewise.
748 * testsuite/27_io/basic_ifstream/cons/char/1.cc: Likewise.
749 * testsuite/27_io/basic_ifstream/open/char/1.cc: Likewise.
750 * testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc: Likewise.
751 * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
753 * testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc:
755 * testsuite/27_io/basic_istream/seekg/char/sstream.cc: Likewise.
756 * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc:
758 * testsuite/27_io/basic_istream/tellg/char/1.cc: Likewise.
759 * testsuite/27_io/basic_istream/tellg/char/sstream.cc: Likewise.
760 * testsuite/27_io/basic_istream/tellg/wchar_t/1.cc: Likewise.
761 * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc:
763 * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
764 * testsuite/lib/dg-options.exp (dg-additional-files): Append to
765 v3_additional_files instead of replacing.
766 * testsuite/lib/libstdc++.exp (v3_target_compile): Reset
767 v3_additional_files after copying files.
769 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
771 * testsuite/27_io/basic_filebuf/close/char/4879.cc: Remove
772 @require@ and @diff@ comments.
773 * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
774 * testsuite/27_io/basic_filebuf/open/char/3.cc: Likewise.
775 * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
776 * testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc: Likewise.
777 * testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc: Likewise.
778 * testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: Likewise.
779 * testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc: Likewise.
780 * testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc: Likewise.
781 * testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc: Likewise.
782 * testsuite/27_io/basic_filebuf/snextc/char/2-out.cc: Likewise.
783 * testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc:
785 * testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc:
787 * testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc:
789 * testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc:
791 * testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: Likewise.
792 * testsuite/27_io/basic_filebuf/sputc/char/2-out.cc: Likewise.
793 * testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: Likewise.
794 * testsuite/27_io/basic_filebuf/sputn/char/2-out.cc: Likewise.
795 * testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc: Likewise.
796 * testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc: Likewise.
797 * testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc: Likewise.
798 * testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc: Likewise.
799 * testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: Likewise.
800 Remove unused variable.
801 * testsuite/27_io/basic_filebuf/sputn/char/2-io.cc: Likewise.
802 * testsuite/27_io/basic_ofstream/cons/char/1.cc: Remove
803 @require@ and @diff@ comments. Remove unused variables.
804 * testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc: Remove
805 * testsuite/27_io/ios_base/sync_with_stdio/2.cc: Likewise.
807 2024-07-23 Jonathan Wakely <jwakely@redhat.com>
809 * src/c++23/print.cc (__open_terminal): Use [[maybe_unused]] on
812 2024-07-23 Detlef Vollmann <dv@vollmann.ch>
815 * src/c++23/print.cc (__open_terminal) [__AVR__]: Do not use
818 2024-07-18 Patrick Palka <ppalka@redhat.com>
820 * include/experimental/socket
821 (basic_socket_iostream::basic_socket_iostream): Fix typo.
822 * include/tr2/dynamic_bitset
823 (__dynamic_bitset_base::_M_is_proper_subset_of): Likewise.
825 2024-07-12 Alexandre Oliva <oliva@adacore.com>
827 * testsuite/decimal/binary-arith.cc: Require dfprt.
828 * testsuite/decimal/comparison.cc: Likewise.
829 * testsuite/decimal/compound-assignment.cc: Likewise.
830 * testsuite/decimal/compound-assignment-memfunc.cc: Likewise.
831 * testsuite/decimal/make-decimal.cc: Likewise.
832 * testsuite/decimal/pr54036-1.cc: Likewise.
833 * testsuite/decimal/pr54036-2.cc: Likewise.
834 * testsuite/decimal/pr54036-3.cc: Likewise.
835 * testsuite/decimal/unary-arith.cc: Likewise.
837 2024-07-11 Jonathan Wakely <jwakely@redhat.com>
839 * testsuite/29_atomics/atomic_ref/bool.cc: New test.
841 2024-07-11 Damien Lebrun-Grandie <dalg24@gmail.com>
843 * include/bits/atomic_base.h (__atomic_ref): Do not use integral
844 specialization for bool.
846 2024-07-11 Gerald Pfeifer <gerald@pfeifer.com>
848 * doc/xml/manual/using.xml: Switch gcc.gnu.org links to https.
849 * doc/html/manual/using_concurrency.html: Regenerate.
850 * doc/html/manual/using_dynamic_or_shared.html: Ditto.
851 * doc/html/manual/using_headers.html: Ditto.
852 * doc/html/manual/using_namespaces.html: Ditto.
854 2024-07-11 Jonathan Wakely <jwakely@redhat.com>
857 * testsuite/27_io/filesystem/path/108636.cc: Require normal
860 2024-07-10 Jonathan Wakely <jwakely@redhat.com>
863 * include/std/format (basic_format_context): Define copy
864 operations as deleted, as per LWG 4061.
865 * testsuite/std/format/context.cc: New test.
867 2024-07-10 Jonathan Wakely <jwakely@redhat.com>
869 * src/c++26/text_encoding.cc (__locale_encoding): Add to unnamed
871 (std::locale::encoding): Optimize for "C" and "*" names.
873 2024-07-10 Jonathan Wakely <jwakely@redhat.com>
876 * include/bits/stl_bvector.h (_Bvector_base): Convert allocator
877 to rebound type explicitly.
878 * testsuite/23_containers/vector/allocator/115854.cc: New test.
879 * testsuite/23_containers/vector/bool/allocator/115854.cc: New test.
881 2024-07-10 Jonathan Wakely <jwakely@redhat.com>
884 * include/bits/ranges_util.h (__find_fn): Make conversion
885 from difference type ti size_t explicit.
886 * testsuite/25_algorithms/find/bytes.cc: Check ranges::find with
887 __gnu_test::test_contiguous_range.
888 * testsuite/std/ranges/range.cc: Adjust expected difference_type
889 for __gnu_test::test_contiguous_range.
890 * testsuite/util/testsuite_iterators.h (contiguous_iterator_wrapper):
891 Use __max_diff_type as difference type.
892 (test_range::sentinel, test_sized_range_sized_sent::sentinel):
893 Ensure that operator- returns difference_type.
895 2024-07-10 Marek Polacek <polacek@redhat.com>
897 * testsuite/std/ranges/access/101782.cc: Don't compile with
900 2024-07-08 Jonathan Wakely <jwakely@redhat.com>
903 * include/c_compatibility/stdatomic.h (_Atomic): Ensure it
904 refers to std::atomic in the global namespace.
905 * testsuite/29_atomics/headers/stdatomic.h/115807.cc: New test.
907 2024-07-07 Gerald Pfeifer <gerald@pfeifer.com>
909 * doc/xml/manual/configure.xml: Update Autobook 14 link.
910 Update GCC installation instructions link.
911 * doc/html/manual/configure.html: Regenerate.
913 2024-07-07 Jonathan Wakely <jwakely@redhat.com>
916 * include/bits/stl_algo.h (find): Use 'if constexpr' so that
917 memchr optimization is a discarded statement for non-contiguous
919 * testsuite/25_algorithms/find/bytes.cc: Check with input
922 2024-07-07 Jonathan Wakely <jwakely@redhat.com>
925 * include/bits/ranges_util.h (__find_fn): Return iterator
927 * testsuite/25_algorithms/find/constrained.cc: Check non-common
928 contiguous sized range of char.
930 2024-07-06 Jonathan Wakely <jwakely@redhat.com>
932 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Add
933 attribute names from later standards and remove dg-options.
934 * testsuite/17_intro/headers/c++1998/stdc++.cc: Add c++98_only
936 * testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc:
937 Remove content and include stdc++.cc twice instead.
938 * testsuite/17_intro/headers/c++2011/stdc++.cc: Replace
939 dg-options with c++11 target selector.
940 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
941 Remove content and include stdc++.cc twice instead.
942 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Removed.
943 * testsuite/17_intro/headers/c++2011/all_no_exceptions.cc: Removed.
944 * testsuite/17_intro/headers/c++2011/all_no_rtti.cc: Removed.
945 * testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc: Removed.
946 * testsuite/17_intro/headers/c++2011/charset.cc: Removed.
947 * testsuite/17_intro/headers/c++2011/operator_names.cc: Removed.
948 * testsuite/17_intro/headers/c++2014/all_attributes.cc: Removed.
949 * testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: Removed.
950 * testsuite/17_intro/headers/c++2014/all_no_rtti.cc: Removed.
951 * testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: Removed.
952 * testsuite/17_intro/headers/c++2014/charset.cc: Removed.
953 * testsuite/17_intro/headers/c++2014/operator_names.cc: Removed.
954 * testsuite/17_intro/headers/c++2014/stdc++.cc: Removed.
955 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc: Removed.
956 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Removed.
957 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: Removed.
958 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: Removed.
959 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: Removed.
960 * testsuite/17_intro/headers/c++2017/charset.cc: Removed.
961 * testsuite/17_intro/headers/c++2017/operator_names.cc: Removed.
962 * testsuite/17_intro/headers/c++2017/stdc++.cc: Removed.
963 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: Removed.
964 * testsuite/17_intro/headers/c++2020/all_attributes.cc: Removed.
965 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: Removed.
966 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: Removed.
967 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: Removed.
968 * testsuite/17_intro/headers/c++2020/charset.cc: Removed.
969 * testsuite/17_intro/headers/c++2020/operator_names.cc: Removed.
970 * testsuite/17_intro/headers/c++2020/stdc++.cc: Removed.
971 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc: Removed.
973 2024-07-06 Jonathan Wakely <jwakely@redhat.com>
975 * include/std/variant (_Variant_storage::_M_reset): Use
976 __unlikely__ form of attribute instead of unlikely.
978 2024-07-06 Jonathan Wakely <jwakely@redhat.com>
981 * include/std/type_traits: Ensure "C++" language linkage.
982 * testsuite/17_intro/headers/c++2011/linkage.cc: Replace
983 dg-options with c++11 target selector.
985 2024-07-05 Jonathan Wakely <jwakely@redhat.com>
988 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
989 Add dg-error for new C++26 diagnostics.
991 2024-07-05 Jonathan Wakely <jwakely@redhat.com>
993 * include/bits/stl_uninitialized.h (_UninitDestroyGuard): New
994 class template and partial specialization.
995 (__do_uninit_copy, __do_uninit_fill, __do_uninit_fill_n)
996 (__uninitialized_copy_a, __uninitialized_fill_a)
997 (__uninitialized_fill_n_a, __uninitialized_copy_move)
998 (__uninitialized_move_copy, __uninitialized_fill_move)
999 (__uninitialized_move_fill, __uninitialized_default_1)
1000 (__uninitialized_default_n_a, __uninitialized_default_novalue_1)
1001 (__uninitialized_default_novalue_n_1, __uninitialized_copy_n)
1002 (__uninitialized_copy_n_pair): Use it.
1004 2024-07-05 Jonathan Wakely <jwakely@redhat.com>
1008 * include/bits/cpp_type_traits.h (__can_use_memchr_for_find):
1009 New variable template.
1010 * include/bits/ranges_util.h (__find_fn): Use memchr when
1012 * include/bits/stl_algo.h (find): Likewise.
1013 * testsuite/25_algorithms/find/bytes.cc: New test.
1015 2024-07-04 John David Anglin <danglin@gcc.gnu.org>
1018 * testsuite/30_threads/future/members/poll.cc: Skip on hppa*-*-linux*.
1020 2024-06-28 Jonathan Wakely <jwakely@redhat.com>
1023 * src/c++11/assert_fail.cc (__glibcxx_assert_fail): Add
1024 definition for non-verbose builds.
1026 2024-06-28 Jonathan Wakely <jwakely@redhat.com>
1029 * include/bits/stl_algobase.h (__equal_aux1): Check for
1031 * testsuite/25_algorithms/equal/101485.cc: New test.
1033 2024-06-28 Jonathan Wakely <jwakely@redhat.com>
1036 * include/bits/new_allocator.h: Disable extended alignment
1037 support in C++98 mode.
1038 * include/bits/stl_tempbuf.h: Likewise.
1039 * include/ext/bitmap_allocator.h: Likewise.
1040 * include/ext/malloc_allocator.h: Likewise.
1041 * include/ext/mt_allocator.h: Likewise.
1042 * include/ext/pool_allocator.h: Likewise.
1043 * testsuite/ext/104395.cc: New test.
1045 2024-06-28 Jonathan Wakely <jwakely@redhat.com>
1047 * include/ext/aligned_buffer.h (__aligned_membuf): Use
1048 alignas(T) directly instead of defining a struct and using 9its
1050 (__aligned_buffer): Remove use of std::aligned_storage.
1051 * testsuite/abi/aligned_buffers.cc: New test.
1053 2024-06-27 Jonathan Wakely <jwakely@redhat.com>
1056 * config/locale/gnu/codecvt_members.cc (Guard): New RAII type.
1057 (do_out, do_in): Return partial if the destination is empty but
1058 the source is not. Use Guard to restore locale on scope exit.
1059 Return immediately on any conversion error.
1060 (do_encoding, do_max_length, do_length): Use Guard.
1061 * testsuite/22_locale/codecvt/in/char/37475.cc: New test.
1062 * testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test.
1063 * testsuite/22_locale/codecvt/out/char/37475.cc: New test.
1064 * testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test.
1066 2024-06-27 Alexandre Oliva <oliva@adacore.com>
1069 * testsuite/experimental/simd/pr115454_find_last_set.cc: Defer
1070 to check_vect_support_and_set_flags's default dg-do action.
1072 2024-06-27 Jonathan Wakely <jwakely@redhat.com>
1075 * include/bits/chrono_io.h (formatter<duration<R,P, C>::format):
1076 Do not use chrono::abs.
1077 * testsuite/20_util/duration/io.cc: Check formatting a duration
1080 2024-06-27 Jonathan Wakely <jwakely@redhat.com>
1083 * include/bits/stl_bvector.h (vector<bool>::operator[])
1084 (vector<bool>::front, vector<bool>::back): Add debug assertions.
1085 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
1086 Remove dg-error that no longer triggers.
1088 2024-06-27 Jonathan Wakely <jwakely@redhat.com>
1091 * include/debug/assertions.h (__glibcxx_requires_non_empty_range)
1092 (__glibcxx_requires_nonempty, __glibcxx_requires_subscript):
1093 Define to __glibcxx_assert expressions or to debug mode
1094 __glibcxx_check_xxx expressions.
1095 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
1096 Add checks for out-of-bounds accesses in constant expressions.
1097 * testsuite/23_containers/vector/element_access/constexpr.cc:
1100 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
1102 * scripts/update_release_branch.sh: New file.
1104 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
1106 * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc:
1107 Copy defaulted assignment operator from 808590-cxx11.cc to
1109 * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc:
1112 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
1115 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1116 Increase timeout for debug mode.
1117 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1119 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1121 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1123 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1125 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
1128 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
1131 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
1132 [_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode.
1133 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
1134 [_GLIBCXX_DEBUG]: Reduce size of test data.
1135 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1137 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
1140 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
1142 * src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
1143 (years_from_to): New class replacing minmax_year and
1145 (format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
1146 the file. Handle "-" for letters.
1147 (ZoneInfo::to): Use format_abbrev_str to expand %z.
1148 (ZoneInfo::set_abbrev): Remove exception. Change parameter from
1150 (operator>>(istream&, Rule&)): Do not clear letters when it
1152 (time_zone::_M_get_sys_info): Add missing logic to find the Rule
1153 in effect before the time point.
1154 * testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
1155 "GMT" as the Zone name, not as a Link to "Etc/GMT".
1156 * testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
1158 2024-06-26 Alexandre Oliva <oliva@adacore.com>
1159 Marc Poulhiès <poulhies@adacore.com>
1161 * testsuite/lib/dg-options.exp (add_options_for_libatomic):
1162 None for *-*-vxworks*.
1164 2024-06-25 Jonathan Wakely <jwakely@redhat.com>
1166 * include/bits/valarray_array.h (_Array_default_ctor): Remove.
1167 (__valarray_default_construct): Inline it into here.
1168 (_Array_init_ctor): Remove.
1169 (__valarray_fill_construct): Inline it into here.
1170 (_Array_copy_ctor): Remove.
1171 (__valarray_copy_construct(const T*, const T*, T*)): Inline it
1173 (__valarray_copy_construct(const T*, size_t, size_t, T*)):
1174 Use _GLIBCXX17_CONSTEXPR for constant condition.
1176 2024-06-25 Jonathan Wakely <jwakely@redhat.com>
1178 * doc/xml/faq.xml: Replace viewcvs links with cgit links.
1179 * doc/xml/manual/allocator.xml: Likewise.
1180 * doc/xml/manual/mt_allocator.xml: Likewise.
1181 * doc/html/*: Regenerate.
1183 2024-06-22 Gerald Pfeifer <gerald@pfeifer.com>
1185 * doc/xml/manual/debug.xml: Move gcc.gnu.org link to https.
1186 Ditto for sourceware.org links.
1187 * doc/html/manual/debug.html: Regenerate.
1189 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1192 * include/bits/cpp_type_traits.h (__is_pointer, __is_scalar):
1194 (__is_arithmetic): Do not use __is_pointer in the primary
1195 template. Add partial specialization for pointers.
1197 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1200 * include/bits/cpp_type_traits.h (__is_void): Remove.
1201 * include/debug/helper_functions.h (_Distance_traits):
1202 Adjust partial specialization to match void directly, instead of
1203 using __is_void<T>::__type and matching __true_type.
1205 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1208 * include/bits/deque.tcc (__lex_cmp_dit): Replace __is_pointer
1209 class template with __is_pointer(T) built-in.
1210 (__lexicographical_compare_aux1): Likewise.
1211 * include/bits/stl_algobase.h (__equal_aux1): Likewise.
1212 (__lexicographical_compare_aux1): Likewise.
1214 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1217 * include/bits/valarray_array.h (__valarray_default_construct):
1218 Use __is_trivial(_Tp). instead of __is_scalar<_Tp>.
1220 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1223 * include/bits/stl_algobase.h (__fill_a1): Combine the
1224 !__is_scalar and __is_scalar overloads into one and rewrite the
1225 condition used to decide whether to perform the load outside the
1227 * testsuite/25_algorithms/fill/109150.cc: New test.
1228 * testsuite/25_algorithms/fill_n/109150.cc: New test.
1230 2024-06-21 Matthias Kretz <m.kretz@gsi.de>
1233 * testsuite/experimental/simd/pr115454_find_last_set.cc: Require
1234 avx512f_runtime. Don't memcpy fixed_size masks.
1236 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1238 * include/bits/stl_uninitialized.h (uninitialized_default_construct)
1239 (uninitialized_default_construct_n, uninitialized_value_construct)
1240 (uninitialized_value_construct_n): Qualify calls to prevent ADL.
1242 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1244 * include/std/any (any_cast(any*), any_cast(const any*)): Add
1245 static assertion to reject void types, as per LWG 3305.
1246 * testsuite/20_util/any/misc/lwg3305.cc: New test.
1248 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1250 * include/bits/memory_resource.h (polymorphic_allocator::destroy):
1251 Remove deprecated attribute.
1253 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1255 * include/backward/backward_warning.h: Adjust comments to
1256 suggest <spanstream> as another alternative to <strstream>.
1257 * include/backward/strstream (strstreambuf, istrstream)
1258 (ostrstream, strstream): Add deprecated attribute.
1260 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1262 * include/bits/locale_conv.h (wstring_convert): Add deprecated
1263 attribute for C++17 and later.
1264 (wbuffer_convert): Likewise.
1265 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: Disable
1266 deprecated warnings.
1267 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Likewise.
1268 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc:
1270 * testsuite/22_locale/conversions/buffer/1.cc: Add dg-warning.
1271 * testsuite/22_locale/conversions/buffer/2.cc: Likewise.
1272 * testsuite/22_locale/conversions/buffer/3.cc: Likewise.
1273 * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
1275 * testsuite/22_locale/conversions/string/1.cc: Likewise.
1276 * testsuite/22_locale/conversions/string/2.cc: Likewise.
1277 * testsuite/22_locale/conversions/string/3.cc: Likewise.
1278 * testsuite/22_locale/conversions/string/66441.cc: Likewise.
1279 * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
1281 * testsuite/22_locale/conversions/string/requirements/typedefs.cc:
1284 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1286 * include/bits/version.def (chrono): Add cxx11abi = yes.
1287 * include/bits/version.h: Regenerate.
1288 * testsuite/std/time/syn_c++20.cc: Adjust expected value for
1289 the feature test macro.
1291 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1294 * include/std/array (to_array): Workaround the fact that
1295 std::is_trivial is not sufficient to check that a type is
1296 trivially default constructible and assignable.
1297 * testsuite/23_containers/array/creation/115522.cc: New test.
1299 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
1301 * testsuite/util/testsuite_allocator.h (tracker_allocator):
1302 Initialize base class in copy constructor.
1304 2024-06-20 Matthias Kretz <m.kretz@gsi.de>
1307 * include/experimental/bits/simd_x86.h (_S_not_equal_to): Use
1308 neq comparison instead of bitwise negation after eq.
1309 (_S_find_last_set): Clear unused high bits before computing
1311 * testsuite/experimental/simd/pr115454_find_last_set.cc: New
1314 2024-06-19 Jonathan Wakely <jwakely@redhat.com>
1316 * include/std/future: Adjust whitespace to use tabs for
1319 2024-06-19 Jonathan Wakely <jwakely@redhat.com>
1321 * include/std/future (_State_baseV2::_Setter<R, void>): Add
1322 noexcept to call operator.
1323 (_State_baseV2::_Setter<R, __exception_ptr_tag>): Likewise.
1325 2024-06-19 Jonathan Wakely <jwakely@redhat.com>
1327 * include/bits/stl_pair.h [__cpp_lib_concepts] (pair()): Add
1328 conditional noexcept.
1330 2024-06-19 Jonathan Wakely <jwakely@redhat.com>
1332 * include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast
1333 argument to size_t to handle negative values and suppress
1334 -Wsign-compare warning.
1335 (_Temporary_buffer): Move diagnostic pragmas to new location of
1336 call to std::get_temporary_buffer.
1338 2024-06-18 Jonathan Wakely <jwakely@redhat.com>
1340 * include/bits/cpp_type_traits.h: Fix outdated comment about the
1341 number of standard integer types.
1343 2024-06-14 Jonathan Wakely <jwakely@redhat.com>
1346 * libsupc++/typeinfo (type_info::operator==): Add always_inline
1347 attribute for targets where the ABI requries equality to be
1349 * testsuite/18_support/type_info/110572.cc: New test.
1351 2024-06-14 Jonathan Wakely <jwakely@redhat.com>
1353 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
1356 2024-06-13 Alexandre Oliva <oliva@adacore.com>
1359 * testsuite/26_numerics/random/binomial_distribution/114359.cc:
1362 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1364 * include/std/type_traits (__add_rval_ref_t): Use
1365 __add_rvalue_reference built-in trait.
1367 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1369 * include/std/type_traits (__add_lval_ref_t): Use
1370 __add_lvalue_reference built-in trait.
1372 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1373 Jonathan Wakely <jwakely@redhat.com>
1375 * include/bits/cpp_type_traits.h (__is_pointer): Use
1376 __is_pointer built-in trait.
1377 * include/std/type_traits (is_pointer): Likewise. Optimize its
1379 (is_pointer_v): Likewise.
1381 2024-06-13 Jonathan Wakely <jwakely@redhat.com>
1383 * include/bits/ranges_base.h (range_common_reference_t): New
1384 alias template, as per LWG 3860.
1385 * testsuite/std/ranges/range.cc: Check it.
1387 2024-06-13 Jonathan Wakely <jwakely@redhat.com>
1389 * include/bits/ranges_base.h (const_iterator_t): Change
1390 preprocessor condition to use __glibcxx_ranges_as_const.
1391 (const_sentinel_t, range_const_reference_t): Likewise.
1392 (__access::__possibly_const_range, cbegin, cend, crbegin)
1393 (crend, cdata): Likewise.
1394 * include/bits/stl_iterator.h (iter_const_reference_t)
1395 (basic_const_iterator, const_iterator, const_sentinel)
1396 (make_const_iterator): Likewise.
1398 2024-06-13 Jonathan Wakely <jwakely@redhat.com>
1401 * include/bits/hashtable.h (_Hashtable): Add static_assert to
1402 check that hash function is copy constructible.
1403 * testsuite/23_containers/unordered_map/115420.cc: New test.
1405 2024-06-13 Jonathan Wakely <jwakely@redhat.com>
1408 * include/pstl/pstl_config.h: Use #if instead of #ifdef to test
1409 the _PSTL_USAGE_WARNINGS macro.
1411 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1413 * include/std/type_traits (is_nothrow_invocable): Use
1414 __is_nothrow_invocable built-in trait.
1415 * testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc:
1416 Handle the new error from __is_nothrow_invocable.
1417 * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc:
1420 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1422 * include/std/type_traits (is_invocable): Use __is_invocable
1424 * testsuite/20_util/is_invocable/incomplete_args_neg.cc: Handle
1425 the new error from __is_invocable.
1426 * testsuite/20_util/is_invocable/incomplete_neg.cc: Likewise.
1428 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1430 * include/std/type_traits (rank): Use __array_rank built-in
1434 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1436 * include/std/type_traits (decay): Use __decay built-in trait.
1438 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1440 * include/std/type_traits (remove_all_extents): Use
1441 __remove_all_extents built-in trait.
1443 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1445 * include/std/type_traits (remove_extent): Use __remove_extent
1448 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1450 * include/std/type_traits (add_pointer): Use __add_pointer
1453 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1455 * include/std/type_traits (is_unbounded_array_v): Use
1456 __is_unbounded_array built-in trait.
1458 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1460 * include/std/type_traits (is_volatile): Use __is_volatile
1462 (is_volatile_v): Likewise.
1464 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1466 * include/std/type_traits (is_const): Use __is_const built-in
1468 (is_const_v): Likewise.
1470 2024-06-12 Alexandre Oliva <oliva@adacore.com>
1472 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
1474 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
1476 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
1479 2024-06-12 Alexandre Oliva <oliva@adacore.com>
1481 * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
1483 * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
1486 2024-06-12 Jonathan Wakely <jwakely@redhat.com>
1489 * include/tr2/dynamic_bitset (operator>>=): Remove redundant
1490 call to _M_do_sanitize.
1491 * include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out
1492 low bits in words that should no longer be populated.
1493 (_M_do_right_shift): Likewise for high bits.
1494 * testsuite/tr2/dynamic_bitset/pr115399.cc: New test.
1496 2024-06-12 Jonathan Wakely <jwakely@redhat.com>
1498 * include/bits/hashtable.h (_Hashtable::clear): Do not use
1499 memset to zero out bucket pointers.
1500 (_Hashtable::_M_assign_elements): Likewise.
1502 2024-06-11 Jonathan Wakely <jwakely@redhat.com>
1504 * include/std/chrono (leap_seconds): Add comment.
1505 * testsuite/std/time/leap_seconds/io.cc: New test.
1507 2024-06-10 François Dumont <fdumont@gcc.gnu.org>
1509 * include/bits/hashtable.h (~_Hashtable()): Replace clear call with
1510 a _M_deallocate_nodes call.
1512 2024-06-08 Deev Patel <dkp10000@gmail.com>
1513 Jonathan Wakely <jwakely@redhat.com>
1515 * include/bits/atomic_base.h (__atomic_impl::__clear_padding):
1516 Add missing constexpr specifier.
1517 * testsuite/29_atomics/atomic_float/constinit.cc: New test.
1519 2024-06-08 Michael Levine <mlevine55@bloomberg.net>
1522 * include/bits/ranges_algo.h (ranges::out_value_result):
1523 Move to <bits/ranges_algobase.h>.
1524 (ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to
1526 * include/bits/ranges_algobase.h (ranges::out_value_result):
1528 * include/std/numeric (ranges::iota_result, ranges::__iota_fn)
1529 (ranges::iota): Move to here.
1530 * testsuite/25_algorithms/iota/1.cc: Renamed to ...
1531 * testsuite/26_numerics/iota/2.cc: ... here.
1533 2024-06-08 Jonathan Wakely <jwakely@redhat.com>
1535 * include/std/algorithm: Define __glibcxx_want_ranges.
1536 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check
1537 feature test macro in C++20 mode.
1539 2024-06-07 Jonathan Wakely <jwakely@redhat.com>
1541 * include/bits/ranges_algobase.h: Include <bits/stl_algobase.h>.
1543 2024-06-07 Alexandre Oliva <oliva@adacore.com>
1545 * include/std/variant: Drop obsolete workaround.
1547 2024-06-07 Jonathan Wakely <jwakely@redhat.com>
1549 * include/bits/ptr_traits.h (to_address): Optimize.
1550 * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error text.
1552 2024-06-06 Alexandre Oliva <oliva@adacore.com>
1554 * include/bits/c++config (_GLIBCXX_CLANG): Define or undefine.
1555 * include/bits/locale_facets_nonio.tcc: Test for it.
1556 * include/bits/stl_bvector.h: Likewise.
1557 * include/c_compatibility/stdatomic.h: Likewise.
1558 * include/experimental/bits/simd.h: Likewise.
1559 * include/experimental/bits/simd_builtin.h: Likewise.
1560 * include/experimental/bits/simd_detail.h: Likewise.
1561 * include/experimental/bits/simd_x86.h: Likewise.
1562 * include/experimental/simd: Likewise.
1563 * include/std/complex: Likewise.
1564 * include/std/ranges: Likewise.
1565 * include/std/variant: Likewise.
1566 * include/pstl/pstl_config.h: Likewise.
1568 2024-06-05 Gerald Pfeifer <gerald@pfeifer.com>
1570 * doc/xml/faq.xml: Move gcc.gnu.org to https.
1571 * doc/html/faq.html: Regenerate.
1573 2024-06-04 Jonathan Wakely <jwakely@redhat.com>
1576 * include/std/span (span::at): Guard with feature test macro.
1578 2024-06-04 Matthias Kretz <m.kretz@gsi.de>
1581 * include/experimental/bits/simd.h (__int_for_sizeof): Remove
1582 special cases for __clang__.
1583 (_SimdWrapper): Change constructor overload set to allow
1584 conversion from vector types with integral conversions via bit
1587 2024-06-03 Jonathan Wakely <jwakely@redhat.com>
1589 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1590 Use __detail::__get_temporary_buffer.
1591 (basic_stacktrace::_Impl::_M_deallocate): Use
1592 __detail::__return_temporary_buffer.
1594 2024-06-03 Jonathan Wakely <jwakely@redhat.com>
1597 * include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
1598 New function to do allocation for get_temporary_buffer, with
1599 extended alignment support.
1600 (__detail::__return_temporary_buffer): Support extended
1602 (get_temporary_buffer): Use __get_temporary_buffer.
1603 (return_temporary_buffer): Support extended alignment. Add
1604 deprecated attribute.
1605 (_Temporary_buffer): Move allocation and deallocation into a
1606 subobject and remove try-catch block in constructor.
1607 (__uninitialized_construct_buf): Use argument deduction for
1609 * testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
1611 * testsuite/25_algorithms/stable_sort/overaligned.cc: New test.
1613 2024-06-03 François Dumont <frs.dumont@gmail.com>
1616 * include/bits/vector.tcc
1617 (std::vector<>::_M_range_insert(iterator, _FwdIt, _FwdIt,
1618 forward_iterator_tag))[__cplusplus < 201103L]: Add __builtin_unreachable
1619 expression to tell the compiler that the allocated buffer is large enough to
1620 receive current elements plus the elements of the range to insert.
1622 2024-06-03 Jonathan Wakely <jwakely@redhat.com>
1624 * include/std/string_view (starts_with(basic_string_view)):
1625 Compare lengths first and then call traits_type::compare
1628 2024-06-02 Gerald Pfeifer <gerald@pfeifer.com>
1630 * doc/xml/api.xml: Move gcc.gnu.org links to https.
1631 * doc/html/api.html: Regenerate.
1633 2024-06-01 Jonathan Wakely <jwakely@redhat.com>
1636 * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
1637 Replace list of -std=... options with a single entry for -std.
1638 * doc/html/manual/using.html: Regenerate.
1640 2024-05-30 Alexandre Oliva <oliva@adacore.com>
1642 * configure.ac [*-*-rtems*]: Set chdir, chmod and mkdir as
1644 * configure: Rebuilt.
1646 2024-05-29 François Dumont <fdumont@gcc.gnu.org>
1648 * include/bits/vector.tcc (_Guard): Move all the nested duplicated class...
1649 * include/bits/stl_vector.h (_Guard_alloc): ...here and rename.
1650 (_M_allocate_and_copy): Use latter.
1651 (_M_initialize_dispatch): Small code simplification.
1652 (_M_range_initialize): Likewise and set _M_finish first from the result
1653 of __uninitialize_fill_n_a that can throw.
1655 2024-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1658 * src/libbacktrace/Makefile.am (AM_CFLAGS): Add -funwind-tables.
1659 * src/libbacktrace/Makefile.in: Regenerate.
1660 * testsuite/19_diagnostics/stacktrace/current.cc (dg-options): Add
1662 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
1663 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
1664 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1665 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
1667 2024-05-29 Matthias Kretz <m.kretz@gsi.de>
1670 * include/experimental/bits/simd.h (__as_vector): Don't use
1671 vector_size(8) on __i386__.
1672 (__vec_shuffle): Never return MMX vectors, widen to 16 bytes
1674 (concat): Fix padding calculation to pick up widening logic from
1677 2024-05-23 Patrick Palka <ppalka@redhat.com>
1679 * include/bits/version.def (ranges_concat): Define.
1680 * include/bits/version.h: Regenerate.
1681 * include/std/ranges (__detail::__concat_reference_t): Define
1683 (__detail::__concat_value_t): Likewise.
1684 (__detail::__concat_rvalue_reference_t): Likewise.
1685 (__detail::__concat_indirectly_readable_impl): Likewise.
1686 (__detail::__concat_indirectly_readable): Likewise.
1687 (__detail::__concatable): Likewise.
1688 (__detail::__all_but_last_common): Likewise.
1689 (__detail::__concat_is_random_access): Likewise.
1690 (__detail::__concat_is_bidirectional): Likewise.
1691 (__detail::__last_is_common): Likewise.
1692 (concat_view): Likewise.
1693 (__detail::__concat_view_iter_cat): Likewise.
1694 (concat_view::iterator): Likewise.
1695 (views::__detail::__can_concat_view): Likewise.
1696 (views::_Concat, views::concat): Likewise.
1697 * testsuite/std/ranges/concat/1.cc: New test.
1699 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
1701 * include/bits/locale_classes.h (locale::combine)
1702 (locale::name, locale::operator==, locale::operator!=)
1703 (locale::operator(), locale::classic): Add nodiscard
1705 * include/bits/locale_classes.tcc (has_facet, use_facet):
1707 * testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
1708 nodiscard diagnostic.
1709 * testsuite/22_locale/locale/cons/2.cc: Cast use_facet
1710 expression to void, to suppress diagnostic.
1711 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
1712 * testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
1714 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
1717 * include/bits/locale_classes.tcc (locale(const locale&, Facet*)):
1718 Return a copy of the first argument when the facet pointer is
1719 null, as per LWG 2295.
1720 (locale::combine): Ensure the result is unnamed.
1721 * src/c++11/localename.cc (_M_replace_categories): Ignore
1722 whether the second locale has a name when cat == none, as per
1724 * src/c++98/locale.cc (_M_install_facet): Use __builtin_expect
1725 to predict that the facet pointer is non-null.
1726 * testsuite/22_locale/locale/cons/names.cc: New test.
1728 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
1731 * include/bits/version.def (generator): Depend on
1732 __cpp_sized_deallocation.
1733 * include/bits/version.h: Regenerate.
1734 * include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro.
1735 (basic_stacktrace::_Impl::_M_deallocate): Use it.
1737 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
1740 * include/bits/std_thread.h: Declare formatter as friend of
1742 * include/std/thread (operator<<): Convert non-void pointers to
1743 void pointers for output.
1744 (formatter): Add constraint that thread::native_handle_type is a
1746 (formatter::format): Reimplement without basic_ostringstream.
1747 * testsuite/30_threads/thread/id/output.cc: Check output
1748 compiles before <sstream> has been included.
1750 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
1753 * include/std/variant (operator==, operator!=, operator<)
1754 (operator<=, operator>, operator>=): Add trailing-return-type to
1755 lambda expressions to trigger conversion to bool.
1756 * testsuite/20_util/variant/relops/115145.cc: New test.
1758 2024-05-17 Björn Schäpers <bjoern@hazardy.de>
1760 * acinclude.m4 (GLIBCXX_ENABLE_BACKTACE): Add check for
1761 tlhelp32.h, matching libbacktrace.
1762 * config.h.in: Regenerate.
1763 * configure: Regenerate.
1765 2024-05-17 Jonathan Wakely <jwakely@redhat.com>
1768 * include/bits/unicode.h (_Iterator::operator++(int)): Fix typo
1769 in increment expression.
1770 * testsuite/ext/unicode/grapheme_view.cc: Check post-increment
1773 2024-05-15 Jonathan Wakely <jwakely@redhat.com>
1776 * include/bits/basic_ios.h (basic_ios::fill()): Do not modify
1777 _M_fill and _M_fill_init in a const member function.
1778 (basic_ios::fill(char_type)): Use _M_fill directly instead of
1779 calling fill(). Set _M_fill_init to true.
1780 * include/bits/basic_ios.tcc (basic_ios::init): Set _M_fill and
1781 _M_fill_init here instead.
1782 * testsuite/27_io/basic_ios/fill/char/1.cc: New test.
1783 * testsuite/27_io/basic_ios/fill/wchar_t/1.cc: New test.
1785 2024-05-15 Jonathan Wakely <jwakely@redhat.com>
1787 * include/std/variant (__detail::__variant::__compare): New
1789 (operator==, operator!=, operator<, operator>, operator<=)
1790 (operator>=): Replace macro definition with handwritten function
1791 calling __detail::__variant::__compare.
1792 (operator<=>): Call __detail::__variant::__compare.
1794 2024-05-15 Jonathan Wakely <jwakely@redhat.com>
1797 * include/bits/atomic_base.h (memory_order): Use int as
1799 * testsuite/29_atomics/atomic/89624.cc: New test.
1801 2024-05-14 Jonathan Wakely <jwakely@redhat.com>
1804 * src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]:
1805 Do not use dynamic_cast.
1807 2024-05-14 Jonathan Wakely <jwakely@redhat.com>
1809 * doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
1810 std::string::shrink_to_fit.
1811 * doc/html/manual/strings.html: Regenerate.
1813 2024-05-14 Jonathan Wakely <jwakely@redhat.com>
1816 * include/std/stacktrace (basic_stacktrace::max_size): Fix typo
1817 in reference to _M_alloc member.
1818 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check
1819 max_size() compiles.
1821 2024-05-13 Matthias Kretz <m.kretz@gsi.de>
1824 * include/experimental/bits/simd.h (__as_vector): Return scalar
1825 simd as one-element vector. Return vector from single-vector
1827 (__vec_shuffle): New.
1828 (__extract_part): Adjust return type signature.
1829 (split): Use __extract_part for any split into non-fixed_size
1831 (concat): If the return type stores a single vector, use
1832 __vec_shuffle (which calls __builtin_shufflevector) to produce
1834 * include/experimental/bits/simd_builtin.h
1835 (__shift_elements_right): Removed.
1836 (__extract_part): Return single elements directly. Use
1837 __vec_shuffle (which calls __builtin_shufflevector) to for all
1839 * include/experimental/bits/simd_fixed_size.h (__extract_part):
1840 Return single elements directly.
1841 * testsuite/experimental/simd/pr114958.cc: New test.
1843 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
1845 * include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure
1846 count of characters consumed is correct when the end of the
1847 input is reached unexpectedly.
1848 * testsuite/ext/unicode/view.cc: Test incomplete UTF-8
1851 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
1854 * include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to
1855 shared_ptr, __shared_ptr or __is_shred_ptr.
1856 * testsuite/20_util/headers/memory/114866.cc: New test.
1858 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
1860 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE):
1863 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
1865 * include/bits/stl_pair.h (operator==): Add constraint.
1866 * include/bits/version.def (constrained_equality): Define.
1867 * include/bits/version.h: Regenerate.
1868 * include/std/optional: Define feature test macro.
1869 (__optional_rep_op_t): Use is_convertible_v instead of
1871 * include/std/tuple: Define feature test macro.
1872 (operator==, __tuple_cmp, operator<=>): Reimplement C++20
1873 comparisons using lambdas. Add constraints.
1874 * include/std/utility: Define feature test macro.
1875 * include/std/variant: Define feature test macro.
1876 (_VARIANT_RELATION_FUNCTION_TEMPLATE): Add constraints.
1877 (variant): Remove unnecessary friend declarations for comparison
1879 * testsuite/20_util/optional/relops/constrained.cc: New test.
1880 * testsuite/20_util/pair/comparison_operators/constrained.cc:
1882 * testsuite/20_util/tuple/comparison_operators/constrained.cc:
1884 * testsuite/20_util/variant/relops/constrained.cc: New test.
1885 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1886 Disable for C++20 and later.
1887 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1888 Remove dg-error line for target c++20.
1890 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
1892 * include/backward/auto_ptr.h: Use https for URL in comment.
1893 * include/bits/basic_ios.h: Likewise.
1894 * include/std/iostream: Likewise.
1896 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
1898 * testsuite/util/testsuite_abi.cc: Update latest versions to
1899 new versions that should be used in future.
1901 2024-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1903 * src/Makefile.am [ENABLE_SYMVERS_SUN]
1904 (libstdc++-symbols.ver-sun): Pass $(libstdc___la_OBJECTS),
1905 $(libstdc___la_LIBADD) to make_sunver.pl unmodified.
1906 * src/Makefile.in: Regenerate.
1908 2024-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1910 * testsuite/lib/dg-options.exp (add_options_for_net_ts)
1911 <*-*-solaris2*>: Don't link with -lsocket -lnsl.
1913 2024-05-03 Andreas Schwab <schwab@linux-m68k.org>
1915 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1916 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1918 2024-05-01 Jonathan Wakely <jwakely@redhat.com>
1921 * include/std/generator: Check feature test macro before using
1922 is_pointer_interconvertible_v.
1924 2024-04-30 Christophe Lyon <christophe.lyon@linaro.org>
1926 * testsuite/lib/gdb-test.exp (gdb-test): Fix regexp. Quote
1929 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1931 Backported from master:
1932 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1934 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1935 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1937 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1938 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1941 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1943 Backported from master:
1944 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1946 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1947 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1949 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1950 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1953 2024-04-26 Jonathan Wakely <jwakely@redhat.com>
1956 * include/std/format (__formatter_fp::format): Only use
1957 _M_localized for finite values.
1958 * testsuite/std/format/functions/format.cc: Check localized
1959 formatting of NaN and initiny.
1961 2024-04-26 Jonathan Wakely <jwakely@redhat.com>
1963 * doc/html/manual/status.html: Regenerate.
1964 * doc/xml/manual/status_cxx1998.xml: Adjust whitespace.
1965 * doc/xml/manual/status_cxx2011.xml: Likewise.
1966 * doc/xml/manual/status_cxx2014.xml: Likewise.
1967 * doc/xml/manual/status_cxx2017.xml: Likewise.
1968 * doc/xml/manual/status_cxx2020.xml: Likewise.
1969 * doc/xml/manual/status_cxx2023.xml: Likewise.
1970 * doc/xml/manual/status_cxxtr1.xml: Likewise.
1971 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
1973 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
1975 * scripts/run_doxygen: Rename man pages for nested types.
1977 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
1979 * include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
1981 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
1983 * scripts/run_doxygen: Adjust sed pattern to match '\fR' for
1984 new man output that Doxygen 1.10 generates.
1986 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
1988 * doc/doxygen/stdheader.cc (init_map): Add missing headers.
1989 * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
1990 std::format and std::text_encoding.
1992 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
1994 * include/std/variant: Add comment to #include.
1996 2024-04-22 Matthias Kretz <m.kretz@gsi.de>
1999 * include/experimental/bits/simd_builtin.h
2000 (_SimdBase2::operator __vector_type_t): There is no __builtin()
2001 function in _SimdWrapper, instead use its conversion operator.
2002 * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
2005 2024-04-22 Matthias Kretz <m.kretz@gsi.de>
2007 * include/experimental/bits/simd.h: Ignore -Wnarrowing for
2009 (__int_for_sizeof): Replace tautological compare with checking
2010 for invalid template parameter value.
2011 * include/experimental/bits/simd_builtin.h (__extract_part):
2012 Remove tautological compare by combining two static_assert.
2014 2024-04-22 Jakub Jelinek <jakub@redhat.com>
2016 * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
2017 * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
2019 * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
2021 * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
2023 * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
2025 * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
2028 2024-04-19 Jonathan Wakely <jwakely@redhat.com>
2030 * include/bits/refwrap.h (operator<=>): Simplify constraints.
2032 2024-04-19 Jonathan Wakely <jwakely@redhat.com>
2035 * src/c++20/tzdb.cc (do_locate_zone): Support links that have
2036 another link as their target.
2037 * testsuite/std/time/tzdb/1.cc: Check that all zones and links
2038 can be found by locate_zone.
2039 * testsuite/std/time/tzdb/links.cc: New test.
2041 2024-04-18 Alexandre Oliva <oliva@adacore.com>
2043 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
2046 2024-04-18 Alexandre Oliva <oliva@adacore.com>
2048 * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
2050 * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
2053 2024-04-18 Alexandre Oliva <oliva@adacore.com>
2055 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
2058 2024-04-17 Jonathan Wakely <jwakely@redhat.com>
2060 * include/std/ostream (println(ostream&)): Define new overload.
2061 * include/std/print (println(FILE*), println()): Likewise.
2062 * testsuite/27_io/basic_ostream/print/2.cc: New test.
2063 * testsuite/27_io/print/1.cc: Remove unused header.
2064 * testsuite/27_io/print/3.cc: New test.
2066 2024-04-17 Matthias Kretz <m.kretz@gsi.de>
2068 * include/experimental/bits/numeric_traits.h: Add include guard.
2070 2024-04-17 Matthias Kretz <m.kretz@gsi.de>
2073 * include/experimental/bits/simd_builtin.h
2074 (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
2075 scalars if the memory type cannot be vectorized for the target.
2077 2024-04-16 Jonathan Wakely <jwakely@redhat.com>
2079 * config/locale/dragonfly/numeric_members.cc: Fix typos in
2081 * config/locale/gnu/numeric_members.cc: Likewise.
2083 2024-04-15 Jonathan Wakely <jwakely@redhat.com>
2085 * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
2086 * doc/html/manual/abi.html: Regenerate.
2088 2024-04-15 Jonathan Wakely <jwakely@redhat.com>
2090 * include/bits/refwrap.h (reference_wrapper): Add comparison
2091 operators as proposed by P2944R3.
2092 * include/bits/version.def (reference_wrapper): Define.
2093 * include/bits/version.h: Regenerate.
2094 * include/std/functional: Enable feature test macro.
2095 * testsuite/20_util/reference_wrapper/compare.cc: New test.
2097 2024-04-15 Jonathan Wakely <jwakely@redhat.com>
2100 * include/bits/stl_pair.h (operator==, operator<=>): Support
2101 heterogeneous comparisons, as per LWG 3865.
2102 * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
2105 2024-04-15 Jonathan Wakely <jwakely@redhat.com>
2108 * src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
2109 Treat all negative delimiter values as eof().
2110 * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
2111 * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
2114 2024-04-15 Andreas Schwab <schwab@suse.de>
2116 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2118 2024-04-13 H.J. Lu <hjl.tools@gmail.com>
2120 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
2123 2024-04-11 Jakub Jelinek <jakub@redhat.com>
2125 * doc/xml/manual/abi.xml: Add latest library versions.
2126 * doc/html/manual/abi.html: Regenerate.
2128 2024-04-11 Jakub Jelinek <jakub@redhat.com>
2130 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2131 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2132 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2133 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2134 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2135 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2136 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2137 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
2138 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2140 2024-04-11 Jonathan Wakely <jwakely@redhat.com>
2143 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
2144 __basic_file::native_handle to ...
2145 (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
2146 specialization, which isn't used.
2147 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
2148 latest version check.
2150 2024-04-11 Jakub Jelinek <jakub@redhat.com>
2152 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2153 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2154 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2155 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2156 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2157 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2158 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2159 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
2160 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2162 2024-04-10 Jonathan Wakely <jwakely@redhat.com>
2164 * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
2165 Adjust input string so that it matches %a with or without a
2167 * testsuite/std/time/year_month_day/io.cc: Adjust expected
2168 format for %x in the fr_FR locale.
2170 2024-04-10 Jonathan Wakely <jwakely@redhat.com>
2172 * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
2173 Check for EMLINK as well as ELOOP.
2174 [__NetBSD__]: Check for EFTYPE as well as ELOOP.
2176 2024-04-09 Jonathan Wakely <jwakely@redhat.com>
2179 * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
2180 stream extraction if std::from_chars is not available.
2182 2024-04-08 Jonathan Wakely <jwakely@redhat.com>
2185 * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
2186 using char instead of char8_t.
2187 * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
2188 string views, instead of std::u8string_view.
2190 2024-04-08 Jonathan Wakely <jwakely@redhat.com>
2192 * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
2193 no-opts selector for errors that depend on -fchar8_t.
2194 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
2196 * testsuite/20_util/integer_comparisons/greater_neg.cc:
2198 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
2200 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
2202 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
2203 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
2205 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
2206 if -fno-char8_t is used.
2207 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2209 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
2211 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
2213 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
2214 char for u8 literal if char8_t is not available.
2215 * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
2217 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2218 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
2219 Remove check for _GLIBCXX_USE_CHAR8_T.
2221 2024-04-08 Jonathan Wakely <jwakely@redhat.com>
2223 * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
2224 using a struct of that name if -fno-char8_t is active.
2225 * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
2227 2024-04-03 Jonathan Wakely <jwakely@redhat.com>
2230 * include/std/optional (operator<=>(const optional<T>&, const U&)):
2231 Reverse order of three_way_comparable_with template arguments.
2232 * testsuite/20_util/optional/relops/104606.cc: New test.
2234 2024-04-02 Jonathan Wakely <jwakely@redhat.com>
2237 * include/bits/unicode.h (_Utf8_view): Guard with check for
2238 char8_t being enabled.
2239 (__literal_encoding_is_unicode): Guard use of char8_t with check
2240 for it being enabled.
2241 * testsuite/std/format/functions/114519.cc: New test.
2243 2024-04-02 Patrick Palka <ppalka@redhat.com>
2245 * include/std/ranges (ranges::__detail::_Empty): Rename to ...
2246 (ranges::__detail::_Absent): ... this. Turn into a template
2247 parameterized by the absent type _Tp and discriminator _Disc.
2248 (ranges::__detail::__maybe_present_t): Add an optional
2249 discriminator parameter.
2250 (slide_view::_M_cached_begin): Pass a discriminator argument to
2252 (slide_view::_M_cached_end): Likewise.
2253 * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
2254 slide_view<V> is 3 instead 4 pointers.
2256 2024-04-02 Jakub Jelinek <jakub@redhat.com>
2258 * acinclude.m4: Fix duplicated words; file file -> file can.
2259 * configure.host: Fix duplicated words; the the -> the.
2261 2024-03-29 Arsen Arsenović <arsen@aarsen.me>
2263 * testsuite/24_iterators/range_generators/01.cc: Drop GCC
2264 Runtime Library Exception.
2265 * testsuite/24_iterators/range_generators/02.cc: Drop GCC
2266 Runtime Library Exception.
2267 * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
2268 Runtime Library Exception.
2269 * testsuite/24_iterators/range_generators/except.cc: Drop GCC
2270 Runtime Library Exception.
2271 * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
2272 Runtime Library Exception.
2273 * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
2274 Runtime Library Exception.
2275 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
2276 Drop GCC Runtime Library Exception from the "You should have
2277 received a copy" paragraph.
2279 2024-03-27 Matthias Kretz <m.kretz@gsi.de>
2281 * include/experimental/bits/simd_x86.h (_S_masked_unary):
2282 Cast inputs < 16 bytes to 16 byte vectors before calling the
2283 right subtraction builtin. Before returning, truncate to the
2286 2024-03-27 Matthias Kretz <m.kretz@gsi.de>
2288 * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
2289 the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
2290 rounding direction argument.
2292 2024-03-27 Srinivas Yadav Singanaboina <vasu.srinivasvasu.14@gmail.com>
2294 * include/Makefile.am: Add simd_sve.h.
2295 * include/Makefile.in: Add simd_sve.h.
2296 * include/experimental/bits/simd.h: Add new SveAbi.
2297 * include/experimental/bits/simd_builtin.h: Use
2298 __no_sve_deduce_t to support existing Neon Abi.
2299 * include/experimental/bits/simd_converter.h: Convert
2300 sequentially when sve is available.
2301 * include/experimental/bits/simd_detail.h: Define sve
2303 * include/experimental/bits/simd_math.h: Fallback frexp
2304 to execute sequntially when sve is available, to handle
2305 fixed_size_simd return type that always uses sve.
2306 * include/experimental/simd: Include bits/simd_sve.h.
2307 * testsuite/experimental/simd/tests/bits/main.h: Enable
2308 testing for sve128, sve256, sve512.
2309 * include/experimental/bits/simd_sve.h: New file.
2311 2024-03-26 Arsen Arsenović <arsen@aarsen.me>
2313 * include/std/generator (generator::_Iterator::operator*): Fix
2315 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
2318 2024-03-26 Arsen Arsenović <arsen@aarsen.me>
2320 * include/std/generator: Fix _V badname.
2322 2024-03-26 Jonathan Wakely <jwakely@redhat.com>
2324 * testsuite/19_diagnostics/stacktrace/current.cc: Check for
2325 __cpp_lib_stacktrace instead of check for stacktrace ET.
2326 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2327 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
2328 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
2329 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2330 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
2331 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
2332 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
2334 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2337 2024-03-26 Jonathan Wakely <jwakely@redhat.com>
2339 * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
2341 * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
2343 * testsuite/std/text_encoding/cons.cc: Use new directive to skip
2344 the test if the __cpp_lib_text_encoding feature test macro is
2346 * testsuite/std/text_encoding/requirements.cc: Likewise.
2348 2024-03-25 Jonathan Wakely <jwakely@redhat.com>
2350 * testsuite/std/text_encoding/requirements.cc: #undef the
2353 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
2355 * include/std/format (formatter): Disable specializations that
2356 would allow sequences of narrow characters to be formatted as
2357 wchar_t without conversion, as per LWG 3944.
2358 * testsuite/std/format/formatter/lwg3944.cc: New test.
2360 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
2362 * include/bits/utility.h (__is_in_place_index_v): New variable
2364 * include/std/variant (__not_in_place_tag): Define in terms of
2365 variable templates not a class template.
2367 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
2370 * include/std/string_view (operator==): Use std::type_identity_t
2371 in C++20 instead of our own __type_identity_t.
2373 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
2376 * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
2377 release() on node handle instead of just zeroing its pointer.
2378 (_Hashtable::_M_reinsert_node_multi): Likewise.
2379 (_Hashtable::_M_merge_unique): Likewise.
2380 (_Hashtable::_M_merge_multi): Likewise.
2381 * include/bits/node_handle.h (_Node_handle_common::release()):
2382 New member function.
2383 (_Node_handle_common::_Optional_alloc::_M_empty): Remove
2384 unnecessary union member.
2385 (_Node_handle_common): Declare _Hashtable as a friend.
2386 * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
2387 Call release() on node handle instead of just zeroing its
2389 (_Rb_tree::_M_reinsert_node_equal): Likewise.
2390 (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
2391 (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
2392 * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
2393 * testsuite/23_containers/set/modifiers/114401.cc: New test.
2394 * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
2395 * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
2397 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
2400 * include/bits/allocator.h (allocator<cv T>): Add default
2401 constructor to partial specializations for cv-qualified types.
2402 * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
2403 Constrain so that it's only present if the allocator is default
2405 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
2407 * testsuite/23_containers/vector/cons/113841.cc: New test.
2409 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
2411 * include/bits/stl_construct.h (destroy_at, construct_at): Guard
2412 with feature test macros instead of just __cplusplus.
2414 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
2416 * include/bits/version.def (generator, tuple_like): Move earlier
2418 * include/bits/version.h: Regenerate.
2420 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
2423 * include/std/functional (bind): Use __invoke_result_t instead
2425 * include/std/type_traits (__invoke_result_t): New alias
2427 * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
2429 2024-03-20 François Dumont <fdumont@gcc.gnu.org>
2431 * include/bits/version.def (null_iterators): Remove extra_cond.
2432 * include/bits/version.h: Regenerate.
2434 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
2437 * include/bits/random.tcc (binomial_distribution::param_type):
2438 Ensure arithmetic is done as type double.
2439 * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
2441 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
2444 * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
2445 Define before including <tbb/task.h> then undef afterwards.
2447 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
2449 * include/Makefile.am [MAINTAINER_MODE]: Add target to
2450 automatically update <bits/version.h>.
2451 * include/Makefile.in: Regenerate.
2453 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
2455 * doc/xml/manual/build_hacking.xml: Document generated files.
2456 Update list of convenience libraries and sub-directories under
2458 * doc/html/*: Regenerate.
2460 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
2462 * include/bits/text_encoding-data.h: Regenerate.
2463 * include/bits/unicode-data.h: Regenerate.
2464 * scripts/gen_text_encoding_data.py: Fix header of generated
2465 file to name the correct script.
2467 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
2469 * testsuite/util/pstl/test_utils.h: Fix typos in comments.
2471 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
2474 * include/bits/stl_bvector.h (_M_allocate): Use allocator's
2475 construct function to begin lifetime of words.
2477 2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
2479 * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
2480 option for the path to the uninstalled libatomic.
2482 2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
2484 * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
2485 /dev/null, use a temporary file for test executables on Darwin.
2487 2024-03-18 François Dumont <fdumont@gcc.gnu.org>
2489 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
2490 Accept 0 offset advance on value-initialized iterator.
2491 * testsuite/23_containers/vector/debug/n3644.cc: New test case.
2493 2024-03-18 François Dumont <fdumont@gcc.gnu.org>
2495 * include/debug/safe_local_iterator.tcc
2496 (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
2498 * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
2500 2024-03-17 François Dumont <fdumont@gcc.gnu.org>
2503 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
2504 First check if both iterators are value-initialized before checking if
2506 * testsuite/23_containers/set/debug/114316.cc: New test case.
2507 * testsuite/23_containers/vector/debug/114316.cc: New test case.
2509 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
2512 * include/std/format (_Scanner::_M_scan): Pass correct length to
2514 * testsuite/std/format/functions/format.cc: Check negative
2515 integers with empty format-spec.
2517 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
2519 * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
2520 (find_if_not, is_partitioned, partition_point, remove)
2521 (remove_if, unique, lower_bound, upper_bound, equal_range)
2522 (binary_search, includes, is_sorted, is_sorted_until, minmax)
2523 (minmax_element, is_permutation, clamp, find_if, find_first_of)
2524 (adjacent_find, count, count_if, search, search_n, min_element)
2525 (max_element): Add nodiscard attribute.
2526 * include/bits/stl_algobase.h (min, max, lower_bound, equal)
2527 (lexicographical_compare, lexicographical_compare_three_way)
2528 (mismatch): Likewise.
2529 * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
2530 * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
2531 * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
2532 * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
2533 * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
2535 * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
2536 * testsuite/25_algorithms/lexicographical_compare/71545.cc:
2538 * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
2539 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
2541 * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
2543 * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
2545 * testsuite/25_algorithms/minmax/3.cc: Likewise.
2546 * testsuite/25_algorithms/search/78346.cc: Likewise.
2547 * testsuite/25_algorithms/search_n/58358.cc: Likewise.
2548 * testsuite/25_algorithms/unique/1.cc: Likewise.
2549 * testsuite/25_algorithms/unique/11480.cc: Likewise.
2550 * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
2551 * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
2553 * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
2555 * testsuite/ext/concept_checks.cc: Likewise.
2556 * testsuite/ext/is_heap/47709.cc: Likewise.
2557 * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
2559 2024-03-14 xndcn <xndchn@gmail.com>
2561 * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
2563 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
2566 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
2569 * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
2570 note about std::call_once.
2571 * doc/xml/manual/status_cxx2014.xml: Likewise.
2572 * doc/xml/manual/status_cxx2017.xml: Likewise.
2573 * doc/html/manual/status.html: Regenerate.
2575 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
2577 * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
2578 * doc/html/manual/status.html: Regenerate.
2579 * include/bits/version.def: Fix typo in comment.
2581 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
2583 * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
2586 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
2588 * doc/xml/manual/debug.xml: Improve docs on debug builds and
2589 using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
2590 the most relevant ones first.
2591 * doc/xml/manual/using.xml: Add comma.
2592 * doc/html/*: Regenerate.
2594 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
2596 * doc/xml/manual/debug.xml: Document that concept checking might
2597 be removed in future.
2598 * doc/xml/manual/extensions.xml: Likewise.
2600 2024-03-09 Jonathan Wakely <jwakely@redhat.com>
2603 * include/bits/chrono_io.h (_Parser::operator()): Assume
2604 hours(0) for a time_point, so that a time is not required
2606 * testsuite/std/time/parse/114240.cc: New test.
2608 2024-03-09 Jonathan Wakely <jwakely@redhat.com>
2611 * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
2613 (_Parser::_M_reserved): Reserve padding bits for future use.
2614 (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
2615 (from_stream): Only allow _M_is_leap_second for utc_time and
2616 local_time. Adjust arithmetic for utc_time so that leap seconds
2617 are preserved. Use time_point_cast to convert to a possibly
2618 lower-precision result type.
2619 * testsuite/std/time/parse.cc: Move to ...
2620 * testsuite/std/time/parse/parse.cc: ... here.
2621 * testsuite/std/time/parse/114279.cc: New test.
2623 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
2625 * include/bits/chrono_io.h (_Parser::operator()): Use
2626 std::from_chars to parse fractional seconds.
2628 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
2631 * include/bits/chrono_io.h (_Parser::operator()): Remove
2632 redundant uses of duration_cast. Use chrono::round to convert
2633 long double value to durations with integer representations.
2634 Check represenation type when deciding whether to skip parsing
2636 * testsuite/20_util/duration/114244.cc: New test.
2637 * testsuite/20_util/duration/io.cc: Check that a floating-point
2638 duration with ratio<1> precision can be parsed.
2640 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
2643 * include/bits/version.def (atomic_lock_free_type_aliases): Add
2644 extra_cond to check for at least one always-lock-free type.
2645 * include/bits/version.h: Regenerate.
2646 * include/std/atomic (atomic_signed_lock_free)
2647 (atomic_unsigned_lock_free): Only use always-lock-free types.
2648 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
2649 atomic counter if lock-free aliases aren't available.
2650 * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
2651 targets without lock-free word-size compare_exchange.
2653 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
2655 * include/std/chrono (__get_leap_second_info): Update expiry
2656 time for hardcoded list of leap seconds.
2657 * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
2659 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
2661 * testsuite/23_containers/deque/allocator/default_init.cc: Use
2662 std::memset instead of __builtin_memset.
2663 * testsuite/23_containers/forward_list/allocator/default_init.cc:
2665 * testsuite/23_containers/list/allocator/default_init.cc:
2667 * testsuite/23_containers/map/allocator/default_init.cc:
2669 * testsuite/23_containers/set/allocator/default_init.cc:
2671 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2673 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2675 * testsuite/23_containers/vector/allocator/default_init.cc:
2677 * testsuite/23_containers/vector/bool/allocator/default_init.cc:
2679 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
2681 * testsuite/util/atomic/wait_notify_util.h: Likewise.
2683 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
2685 * include/std/format (_Arg_store::_S_make_elt): Add two
2686 static_assert checks to give more user-friendly error messages.
2687 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
2688 form of "in requirements with" note.
2689 * testsuite/std/format/arguments/args_neg.cc: Check for
2690 user-friendly diagnostics for non-formattable types.
2691 * testsuite/std/format/string_neg.cc: Likewise.
2693 2024-03-04 Jonathan Wakely <jwakely@redhat.com>
2696 * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
2697 Add missing overload of allocator-extended default constructor.
2698 (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
2699 * testsuite/20_util/tuple/cons/114147.cc: New test.
2701 2024-02-29 Jonathan Wakely <jwakely@redhat.com>
2703 * include/std/format (basic_format_arg::handle::__maybe_const_t):
2704 Fix condition to check if const type is formattable.
2705 (basic_format_arg::handle::handle(T&)): Remove redundant
2707 * testsuite/std/format/formatter/basic.cc: New test.
2709 2024-02-29 Jonathan Wakely <jwakely@redhat.com>
2712 * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
2713 (__memcmp_ordered_with): New concept.
2714 (lexicographical_compare_three_way): Use __memcmp_ordered_with
2715 instead of __is_byte_iter. Use correct length for memcmp.
2716 * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
2719 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
2722 * include/experimental/scope (scope_exit scope_fail): Make
2723 destructor unconditionally noexcept.
2724 (scope_sucess): Fix noexcept-specifier.
2725 * testsuite/experimental/scopeguard/114152.cc: New test.
2727 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
2729 * doc/xml/manual/appendix_contributing.xml: Change URLs to use
2731 * doc/html/manual/*: Regenerate.
2733 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
2735 * doc/xml/manual/appendix_contributing.xml: Replace outdated
2736 info on ChangeLog entries.
2737 * doc/html/manual/appendix_contributing.html: Regenerate.
2739 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
2741 * include/bits/stl_bvector.h (vector<bool, A>::at): Add
2743 * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
2744 (operator==, operator<=>, operator<, operator!=, operator>)
2745 (operator<=, operator>=): Likewise.
2746 * include/debug/vector (operator==, operator<=>, operator<)
2747 (operator!=, operator>, operator<=, operator>=): Likewise.
2748 * testsuite/23_containers/vector/nodiscard.cc: New test.
2750 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
2752 * include/bits/atomic_base.h (operator|, operator&): Add
2754 * include/bits/fs_fwd.h (operator&, operator|, operator^)
2755 (operator~): Add nodiscard to overloads for copy_options, perms,
2756 perm_options, and directory_options.
2757 * include/bits/ios_base.h (operator&, operator|, operator^)
2758 (operator~): Add nodiscard and noexcept to overloads for
2759 _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
2760 (operator|=, operator&=, operator^=): Add constexpr for C++14.
2761 * include/bits/regex_constants.h (operator&, operator|, operator^)
2762 (operator~): Add nodiscard and noexcept to overloads for
2763 syntax_option_type and match_flag_type.
2764 (operator|=, operator&=, operator^=): Add noexcept.
2765 * include/std/charconv (operator&, operator|, operator^)
2766 (operator~): Add nodiscard to overloads for chars_format.
2767 * include/std/future (operator&, operator|, operator^)
2768 (operator~): Add nodiscard for overloads for launch.
2769 (operator&=, operator|=, operator^=): Add constexpr for C++14.
2770 * include/experimental/bits/fs_fwd.h (operator&, operator|)
2771 (operator^, operator~): Add nodiscard to overloads for
2772 copy_options, perms, and directory_options.
2773 * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
2774 Add dg-warning for nodiscard warnings.
2775 * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
2777 * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
2779 * testsuite/27_io/filesystem/operations/bitmask_types.cc:
2782 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
2784 * testsuite/27_io/basic_ostream/print/1.cc: Check error
2786 * testsuite/27_io/print/1.cc: Likewise.
2788 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
2790 * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
2791 code path for Cygwin instead of Windows.
2792 * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
2793 * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
2794 for *-*-mingw* targets.
2795 * testsuite/27_io/print/1.cc: Likewise.
2797 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
2799 * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
2800 __make_move_if_noexcept_iterator.
2802 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
2804 * include/std/stacktrace: Add nodiscard attribute to all
2805 functions without side effects.
2807 2024-02-20 François Dumont <fdumont@gcc.gnu.org>
2809 * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
2810 std::__niter_base on res iterator.
2812 2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
2813 Jonathan Wakely <jwakely@redhat.com>
2816 * configure: Regenerate.
2817 * configure.ac: Detect if we are building for Darwin.
2818 * libsupc++/Makefile.am: If we are building for Darwin, then
2819 suppress hot/cold partitioning for the array allocators.
2820 * libsupc++/Makefile.in: Regenerated.
2822 2024-02-17 François Dumont <fdumont@gcc.gnu.org>
2824 * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
2825 definitions for __gnu_debug::_Safe_iterator.
2826 * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
2828 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
2832 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2835 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
2839 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2842 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
2844 * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
2845 * doc/html/manual/debug_mode_using.html: Regenerate.
2847 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
2849 * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
2850 * doc/html/manual/test.html: Regenerate.
2852 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
2855 * include/std/bitset (bitset::operator>>=): Remove redundant
2856 call to _M_do_sanitize.
2858 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
2861 * include/std/bitset (bitset::set()): Use memset instead of a
2862 loop over the individual words.
2864 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
2867 * include/bits/stl_algo.h (__rotate): Use unsigned values for
2870 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
2873 * include/std/valarray (valarray::operator=(const _Expr&)):
2874 Use loop to copy instead of __valarray_copy with _Array.
2875 * testsuite/26_numerics/valarray/99117.cc: New test.
2877 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
2879 * src/c++20/tzdata.zi: Import new file from 2024a release.
2880 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
2881 Update expiry date for leap seconds list.
2883 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
2886 * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
2887 Define specialization for 64-bit generators with
2888 non-power-of-two modulus and large constants.
2889 (__mod): Use if constexpr unconditionally.
2890 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2892 * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
2895 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
2897 * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
2899 * doc/html/manual/status.html: Regenerate.
2901 2024-02-12 Paul Keir <paul.keir@uws.ac.uk>
2904 * include/bits/basic_string.h (basic_string::operator=): Use
2905 _M_use_local_data() instead of _M_local_buf on the moved-from
2907 * testsuite/21_strings/basic_string/modifiers/constexpr.cc
2908 (test_move): New test.
2910 2024-02-09 Ken Matsui <kmatsui@gcc.gnu.org>
2912 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
2914 * include/std/type_traits (is_same): Use
2915 _GLIBCXX_USE_BUILTIN_TRAIT instead of
2916 _GLIBCXX_HAVE_BUILTIN_IS_SAME.
2917 (is_same_v): Likewise.
2919 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
2921 * include/bits/shared_ptr_atomic.h: Fix typo in comment.
2923 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
2926 * include/bits/gslice.h (operator=): Add comment about lack of
2927 self-assignment check.
2929 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
2931 * include/tr2/type_traits (bases, direct_bases): Use
2932 __has_builtin to check if required built-ins are supported.
2934 2024-02-07 Patrick Palka <ppalka@redhat.com>
2938 * include/bits/stl_pair.h (tuple_element): Add forward
2939 declaration of the partial specialization for tuple.
2941 2024-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
2943 * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
2944 for other environments.
2946 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
2948 * include/std/format (__format::_Spec::_M_reserved): Define new
2949 bit-field members to reserve padding bits for future extensions.
2951 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
2953 * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
2954 instead of libstdc++fs.a.
2955 * src/experimental/Makefile.in: Regenerate.
2956 * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
2958 * src/filesystem/Makefile.in: Regenerate.
2960 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
2962 * include/bits/text_encoding-data.h: Regenerate.
2963 * include/bits/unicode-data.h: Regenerate.
2964 * scripts/gen_text_encoding_data.py: Add copyright and license
2967 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
2970 * include/bits/std_function.h (__function_guide_helper): Add
2971 partial specialization for explicit object member functions, as
2973 * testsuite/20_util/function/cons/deduction_c++23.cc: Check
2974 explicit object member functions.
2975 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2978 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
2980 * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
2982 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
2984 * include/experimental/internet (network_v6::network): Define.
2985 (network_v6::hosts): Finish implementing.
2986 (network_v6::to_string): Do not concatenate std::string to
2987 arbitrary std::basic_string specialization.
2988 * testsuite/experimental/net/internet/network/v6/cons.cc: New
2991 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
2994 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
2995 comparison function to use less-than instead of equality.
2997 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
3000 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
3001 perfect forwarding for iterator arguments.
3003 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
3005 * include/std/string_view (basic_string_view(R&&)): Remove
3006 constraint that traits_type must be the same, as per LWG 3857.
3007 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
3008 Explicit conversion between different specializations should be
3010 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
3013 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
3015 * include/std/syncstream (basic_osyncstream::operator=): Remove
3016 noexcept, as per LWG 3867.
3018 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
3020 * include/std/generator (promise_type::yield_value): Remove
3021 noexcept from fourth overload, as per LWG 3894.
3023 2024-02-01 Patrick Palka <ppalka@redhat.com>
3027 * include/bits/ranges_util.h (__detail::__pair_like): Don't
3028 define in C++23 mode.
3029 (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
3030 (__detail::__is_subrange<subrange>): Moved from <ranges>.
3031 (__detail::__is_tuple_like_v<subrange>): Likewise.
3032 * include/bits/stl_iterator.h: Include <bits/utility.h> for
3034 (__different_from): Move to <concepts>.
3035 (__iter_key_t): Adjust for C++23 as per P2165R4.
3036 (__iter_val_t): Likewise.
3037 * include/bits/stl_pair.h (pair, array): Forward declare.
3038 (get): Forward declare all overloads relevant to P2165R4
3039 tuple-like constructors.
3040 (__is_tuple_v): Define for C++23.
3041 (__is_tuple_like_v): Define for C++23.
3042 (__tuple_like): Define for C++23 as per P2165R4.
3043 (__pair_like): Define for C++23 as per P2165R4.
3044 (__eligibile_tuple_like): Define for C++23.
3045 (__eligibile_pair_like): Define for C++23.
3046 (pair::_S_constructible_from_pair_like): Define for C++23.
3047 (pair::_S_convertible_from_pair_like): Define for C++23.
3048 (pair::_S_dangles_from_pair_like): Define for C++23.
3049 (pair::pair): Define overloads taking a tuple-like type for
3050 C++23 as per P2165R4.
3051 (pair::_S_assignable_from_tuple_like): Define for C++23.
3052 (pair::_S_const_assignable_from_tuple_like): Define for C++23.
3053 (pair::operator=): Define overloads taking a tuple-like type for
3054 C++23 as per P2165R4.
3055 * include/bits/utility.h (ranges::__detail::__is_subrange):
3056 Moved from <ranges>.
3057 * include/bits/version.def (tuple_like): Define for C++23.
3058 * include/bits/version.h: Regenerate.
3059 * include/std/concepts (__different_from): Moved from
3060 <bits/stl_iterator.h>.
3061 (ranges::__swap::__adl_swap): Clarify which __detail namespace.
3062 * include/std/map (__cpp_lib_tuple_like): Define C++23.
3063 * include/std/ranges (__detail::__is_subrange): Moved to
3065 (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
3066 (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
3067 (__detail::__tuple_or_pair): Remove as per P2165R4. Replace all
3068 uses with plain tuple as per P2165R4.
3069 * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
3070 (__tuple_like_tag_t): Define for C++23.
3071 (__tuple_cmp): Forward declare for C++23.
3072 (_Tuple_impl::_Tuple_impl): Define overloads taking
3073 __tuple_like_tag_t and a tuple-like type for C++23.
3074 (_Tuple_impl::_M_assign): Likewise.
3075 (tuple::__constructible_from_tuple_like): Define for C++23.
3076 (tuple::__convertible_from_tuple_like): Define for C++23.
3077 (tuple::__dangles_from_tuple_like): Define for C++23.
3078 (tuple::tuple): Define overloads taking a tuple-like type for
3079 C++23 as per P2165R4.
3080 (tuple::__assignable_from_tuple_like): Define for C++23.
3081 (tuple::__const_assignable_from_tuple_like): Define for C++23.
3082 (tuple::operator=): Define overloads taking a tuple-like type
3083 for C++23 as per P2165R4.
3084 (tuple::__tuple_like_common_comparison_category): Define for C++23.
3085 (tuple::operator<=>): Define overload taking a tuple-like type
3086 for C++23 as per P2165R4.
3087 (array, get): Forward declarations moved to <bits/stl_pair.h>.
3088 (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
3090 (make_from_tuple): Likewise.
3091 (__tuple_like_common_reference): Define for C++23.
3092 (basic_common_reference): Adjust as per P2165R4.
3093 (__tuple_like_common_type): Define for C++23.
3094 (common_type): Adjust as per P2165R4.
3095 * include/std/unordered_map (__cpp_lib_tuple_like): Define for
3097 * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
3098 * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
3099 and 2-tuple interchangeably.
3101 * testsuite/20_util/pair/p2165r4.cc: New test.
3102 * testsuite/20_util/tuple/p2165r4.cc: New test.
3104 2024-02-01 Patrick Palka <ppalka@redhat.com>
3106 * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
3107 factored out from ...
3108 (pair::operator=): ... the constraints of the const overloads.
3110 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
3112 * include/bits/version.tpl: Do not use def-file-line for each
3113 macro being defined.
3114 * include/bits/version.h: Regenerate.
3116 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
3118 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
3120 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
3122 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
3124 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
3126 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
3128 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
3130 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
3132 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
3134 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
3137 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
3139 * include/experimental/internet (network_v4::to_string()):
3140 Remove lambda and use of resize_and_overwrite.
3142 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
3144 * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
3145 needed for newlocale.
3146 * configure: Regenerate.
3147 * src/c++26/text_encoding.cc: Use <xlocale.h>.
3149 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
3150 Ewan Higgs <ewan.higgs@gmail.com>
3152 * include/bits/text_encoding-data.h: Regenerate.
3153 * scripts/gen_text_encoding_data.py: Add extra_aliases dict
3155 * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
3157 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
3159 * doc/xml/manual/using.xml: Update tables of supported headers.
3160 * doc/html/*: Regenerate.
3162 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
3164 * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
3165 -Wshift-count-overflow warning.
3167 2024-01-30 Jonathan Wakely <jwakely@redhat.com>
3169 * testsuite/std/time/clock/gps/io.cc: Fix expected result in
3170 assertion and call test_format() from main.
3172 2024-01-29 François Dumont <fdumont@gcc.gnu.org>
3174 * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
3175 _GLIBCXX_DEBUG_BACKTRACE macro.
3177 2024-01-24 Huanghui Nie <nnnjkk@gmail.com>
3178 Théo Papadopoulo <papadopoulo@gmail.com>
3180 * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
3181 _M_before_begin check and cleanup implementation.
3183 2024-01-22 Jonathan Wakely <jwakely@redhat.com>
3185 * testsuite/std/time/clock/file/io.cc: Fix expected result in
3186 assertion and call test_format() from main.
3188 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
3191 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
3192 printing of subseconds with floating-point rep.
3193 (__formatter_chrono::_M_format_to_ostream): Do not write
3194 time_point specializations directly to the ostream.
3195 (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
3196 empty chrono-spec if the type fails to meet the constraints for
3197 writing to an ostream with operator<<.
3198 * testsuite/std/time/clock/file/io.cc: Check formatting
3199 non-integral times with empty chrono-specs.
3200 * testsuite/std/time/clock/gps/io.cc: Likewise.
3201 * testsuite/std/time/clock/utc/io.cc: Likewise.
3202 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
3204 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
3206 * include/bits/chrono.h (__file_clock::from_sys)
3207 (__file_clock::to_sys, __file_clock::_S_from_sys)
3208 (__file_clock::_S_to_sys): Use common_type for return type.
3209 * testsuite/std/time/clock/file/members.cc: Check round trip
3210 conversion for time with lower precision that seconds.
3212 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
3215 * include/std/format (__formatter_fp::format): Fix logic for
3217 * testsuite/std/format/functions/format.cc: Check buggy cases of
3218 alternate forms with g presentation type.
3220 2024-01-20 Marek Polacek <polacek@redhat.com>
3223 * include/std/ranges: Add #pragma to disable -Wdangling-reference with
3224 std::ranges::views::__adaptor::operator|.
3226 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
3228 * include/std/format (_Spec::_M_parse_fill_and_align): Do not
3229 use CTAD for _Utf32_view.
3231 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
3234 * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
3235 wrong fold-operator.
3236 * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
3237 element and three elements. Check allocator-extended
3240 2024-01-19 Patrick Palka <ppalka@redhat.com>
3242 * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
3243 <print> and <text_encoding> for C++23 and C++26 respectively.
3245 2024-01-18 Patrick Palka <ppalka@redhat.com>
3247 * include/bits/stl_pair.h [__cplusplus > 202002L]:
3248 Guard P2321R2 changes with __glibcxx_ranges_zip instead.
3250 2024-01-18 Patrick Palka <ppalka@redhat.com>
3252 * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
3253 changes with __cpp_lib_ranges_zip instead.
3255 2024-01-18 Patrick Palka <ppalka@redhat.com>
3258 * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
3259 Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
3260 * include/debug/safe_iterator.h
3261 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
3262 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
3263 (_Safe_iterator::operator=): Use them around the code path that
3264 defines a variable of type __gnu_cxx::__scoped_lock.
3265 (_Safe_iterator::operator++): Likewise.
3266 (_Safe_iterator::operator--): Likewise.
3267 (_Safe_iterator::operator+=): Likewise.
3268 (_Safe_iterator::operator-=): Likewise.
3269 * testsuite/23_containers/vector/element_access/constexpr.cc
3270 (test_iterators): Test more iterator operations.
3271 * testsuite/23_containers/vector/bool/element_access/constexpr.cc
3272 (test_iterators): Likewise.
3273 * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
3276 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
3278 * include/bits/unicode.h (__charset_alias_match): Initialize
3279 __var_a and __var_b.
3281 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
3284 * testsuite/std/format/functions/format.cc: Use signed char
3287 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
3290 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
3291 (GLIBCXX_CHECK_TEXT_ENCODING): Define.
3292 * config.h.in: Regenerate.
3293 * configure: Regenerate.
3294 * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
3295 * include/Makefile.am: Add new headers.
3296 * include/Makefile.in: Regenerate.
3297 * include/bits/locale_classes.h (locale::encoding): Declare new
3299 * include/bits/unicode.h (__charset_alias_match): New function.
3300 * include/bits/text_encoding-data.h: New file.
3301 * include/bits/version.def (text_encoding): Define.
3302 * include/bits/version.h: Regenerate.
3303 * include/std/text_encoding: New file.
3304 * src/Makefile.am: Add new subdirectory.
3305 * src/Makefile.in: Regenerate.
3306 * src/c++26/Makefile.am: New file.
3307 * src/c++26/Makefile.in: New file.
3308 * src/c++26/text_encoding.cc: New file.
3309 * src/experimental/Makefile.am: Include c++26 convenience
3311 * src/experimental/Makefile.in: Regenerate.
3312 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
3314 * scripts/gen_text_encoding_data.py: New file.
3315 * testsuite/22_locale/locale/encoding.cc: New test.
3316 * testsuite/ext/unicode/charset_alias_match.cc: New test.
3317 * testsuite/std/text_encoding/cons.cc: New test.
3318 * testsuite/std/text_encoding/members.cc: New test.
3319 * testsuite/std/text_encoding/requirements.cc: New test.
3321 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
3323 * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
3324 Do not use CTAD for _Utf32_view.
3325 (__format_width, __truncate): Do not use CTAD.
3326 (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
3327 (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
3329 2024-01-17 Patrick Palka <ppalka@redhat.com>
3331 * include/std/ranges (views::_CartesianProduct::operator()):
3332 Adjust identity case as per P2540R1.
3333 * testsuite/std/ranges/cartesian_product/1.cc (test01):
3334 Adjust expected result of the identity case.
3336 2024-01-15 Patrick Palka <ppalka@redhat.com>
3338 * include/std/variant (__detail::__variant::_Variadic_union):
3339 Add bool __trivially_destructible template parameter.
3340 (__detail::__variant::_Variadic_union::~_Variadic_union):
3341 Use __trivially_destructible in constraints instead.
3342 (__detail::__variant::_Variant_storage): Pass
3343 __trivially_destructible value to _Variadic_union.
3345 2024-01-15 Patrick Palka <ppalka@redhat.com>
3347 * include/bits/stl_iterator.h (const_iterator): Define conversion
3348 operators as per P2836R1.
3349 * include/bits/version.def (ranges_as_const): Update value.
3350 * include/bits/version.h: Regenerate.
3351 * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
3352 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
3353 value of __cpp_lib_ranges_as_const.
3354 * testsuite/std/ranges/version_c++23.cc: Likewise.
3356 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
3359 * include/std/tuple (__assignable, __is_nothrow_assignable):
3360 Move pre-C++20 definitions adjacent to their use.
3362 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
3365 * include/std/format (basic_format_arg): Use __formattable
3366 variable template instead of __format::__formattable_with
3369 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
3371 * src/c++20/tzdata.zi: Import new file from 2023d release.
3372 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
3373 Update expiry date for leap seconds list.
3375 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
3378 * include/std/tuple (tuple): Add checks for dangling references.
3379 Reimplement constraints and constant expressions using C++20
3381 * include/std/type_traits [C++20]
3382 (__is_implicitly_default_constructible_v): Define.
3383 (__is_implicitly_default_constructible): Use variable template.
3384 * testsuite/20_util/tuple/dangling_ref.cc: New test.
3386 2024-01-13 Patrick Palka <ppalka@redhat.com>
3390 * include/bits/version.def (bind_back): Define.
3391 * include/bits/version.h: Regenerate.
3392 * include/std/functional (_Bind_back): Define for C++23.
3393 (bind_back): Likewise.
3394 * testsuite/20_util/function_objects/bind_back/1.cc: New test
3395 (adapted from corresponding bind_front test).
3396 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
3398 2024-01-13 Patrick Palka <ppalka@redhat.com>
3400 * include/std/functional (_Bind_front): Remove =default special
3401 member function declarations.
3402 (_Bind_front::operator()): Implement using C++23 deducing this
3404 * testsuite/20_util/function_objects/bind_front/111327.cc:
3405 Adjust testcase to expect better errors in C++23 mode.
3407 2024-01-13 Patrick Palka <ppalka@redhat.com>
3409 * include/std/ranges (views::__adaptor::operator|): Perform
3410 perfect forwarding of arguments.
3411 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
3412 first argument to _Partial.
3413 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy
3415 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
3417 (to): Pass dummy first argument to _Partial.
3419 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
3422 * include/bits/random.tcc (subtract_with_carry_engine::seed):
3423 Implement proposed resolution of LWG 4014.
3424 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3426 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
3427 Check for expected result of 64-bit engine with seed that
3428 doesn't fit in 32-bits.
3430 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
3433 * include/std/format (__format::_Runtime_format_string): Add
3434 constructor and disable copy operations.
3435 (basic_format_string(_Runtime_format_string)): Add noexcept and
3436 take parameter by value not rvalue reference.
3437 (runtime_format): Add noexcept.
3438 * testsuite/std/format/runtime_format.cc: Check noexcept. Check
3439 that construction is only possible from prvalues, not xvalues.
3441 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
3444 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
3445 default template arguments, as per P1951R1.
3446 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
3448 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
3450 * include/std/format (__format::_Arg_store): Fix PR number in
3451 comment. Simplify preprocessor code.
3453 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
3455 * doc/xml/manual/evolution.xml: Fix spelling.
3456 * doc/html/manual/api.html: Regenerate.
3458 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
3460 * doc/xml/manual/evolution.xml: Document addition of
3462 * doc/html/*: Regenerate.
3464 2024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
3466 * libsupc++/eh_unex_handler.cc: Adjust definition type to
3469 2024-01-11 Michael Levine <mlevine55@bloomberg.net>
3471 * include/std/ranges (__glibcxx_want_ranges_iota): Remove
3472 duplicate definition.
3474 2024-01-11 François Dumont <fdumont@gcc.gnu.org>
3477 * src/c++11/debug.cc
3478 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
3480 (_Safe_iterator_base::_M_attach_single): Likewise.
3481 (_Safe_local_iterator_base::_M_attach): Likewise.
3482 (_Safe_local_iterator_base::_M_attach_single): Likewise.
3483 * testsuite/23_containers/map/debug/112477.cc: New test case.
3485 2024-01-11 Patrick Palka <ppalka@redhat.com>
3487 * include/bits/move.h (__like_t): Define in C++23 mode.
3488 * include/std/ranges (views::__adaptor::Partial::operator()):
3489 Implement using C++23 deducing this when available.
3490 (views::__adaptor::_Pipe::operator()): Likewise.
3491 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
3492 accept new "no match for call" errors issued in C++23 mode.
3493 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
3495 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
3497 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
3498 Add printer for std::integral_constant.
3499 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
3501 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
3504 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
3507 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
3509 * src/filesystem/ops-common.h (stat_type): Use using.
3511 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
3514 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
3515 * src/filesystem/ops.cc (fs::equivalent): Likewise.
3516 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
3518 * testsuite/experimental/filesystem/operations/equivalent.cc:
3521 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
3523 * include/std/type_traits (is_compound): Do not use __not_.
3524 (is_compound_v): Use is_fundamental_v instead.
3526 2024-01-11 Patrick Palka <ppalka@redhat.com>
3528 * include/bits/utility.h (_Nth_type): Use
3529 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
3531 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
3533 * include/bits/unicode-data.h: Regenerate.
3534 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
3536 (__incb_property): Add missing check for values before the
3538 (__is_extended_pictographic): Invert return values to fix
3540 (_Grapheme_cluster_view::_Iterator): Remove second iterator
3541 member and find end of cluster lazily.
3542 * testsuite/ext/unicode/grapheme_view.cc: New test.
3543 * testsuite/ext/unicode/properties.cc: New test.
3544 * testsuite/ext/unicode/view.cc: New test.
3546 2024-01-09 Andreas Schwab <schwab@linux-m68k.org>
3548 * scripts/extract_symvers.in: Require final colon to only match
3549 .dsynsym in the header of the dynamic symtab.
3551 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
3553 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
3554 handling of string returned from std::format.
3555 (__formatter_chrono::_M_R_T): Likewise.
3557 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
3559 * include/bits/unicode.h (__null_sentinel): Remove.
3560 * testsuite/17_intro/names.cc: Add __null_sentinel.
3562 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
3564 * include/std/format (__format::_Runtime_format_string): Define
3566 (basic_format_string): Add non-consteval constructor for runtime
3568 (runtime_format): Define new function for C++26.
3569 * testsuite/std/format/runtime_format.cc: New test.
3571 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
3573 * include/bits/chrono_io.h (__formatter_chrono): Always use
3574 lvalue arguments to make_format_args.
3575 * include/std/format (make_format_args): Change parameter pack
3576 from forwarding references to lvalue references. Remove use of
3577 remove_reference_t which is now unnecessary.
3578 (format_to, formatted_size): Remove incorrect forwarding of
3580 * include/std/ostream (print): Remove forwarding of arguments.
3581 * include/std/print (print): Likewise.
3582 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
3584 * testsuite/std/format/arguments/args.cc: Likewise.
3585 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
3586 * testsuite/std/format/functions/format.cc: Likewise.
3587 * testsuite/std/format/functions/vformat_to.cc: Likewise.
3588 * testsuite/std/format/string.cc: Likewise.
3589 * testsuite/std/time/day/io.cc: Likewise.
3590 * testsuite/std/time/month/io.cc: Likewise.
3591 * testsuite/std/time/weekday/io.cc: Likewise.
3592 * testsuite/std/time/year/io.cc: Likewise.
3593 * testsuite/std/time/year_month_day/io.cc: Likewise.
3594 * testsuite/std/format/arguments/args_neg.cc: New test.
3596 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
3598 * include/Makefile.am: Add new headers.
3599 * include/Makefile.in: Regenerate.
3600 * include/bits/unicode.h: New file.
3601 * include/bits/unicode-data.h: New file.
3602 * include/std/format: Include <bits/unicode.h>.
3603 (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
3604 (_Spec::_M_fill): Change type to char32_t.
3605 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
3606 instead of a single character.
3607 (__write_padded): Change __fill_char parameter to char32_t and
3608 encode it into the output.
3609 (__formatter_str::format): Use new __unicode::__field_width and
3610 __unicode::__truncate functions.
3611 * include/std/ostream: Adjust namespace qualification for
3612 __literal_encoding_is_utf8.
3613 * include/std/print: Likewise.
3614 * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
3615 * testsuite/ext/unicode/view.cc: New test.
3616 * testsuite/std/format/functions/format.cc: Add missing examples
3617 from the standard demonstrating alignment with non-ASCII
3618 characters. Add examples checking correct handling of extended
3621 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
3623 * include/bits/version.def (format_uchar): Define.
3624 * include/bits/version.h: Regenerate.
3625 * include/std/format (formatter<C, C>::format): Check for
3626 _Pres_c and call _M_format_character directly. Cast C to its
3627 unsigned equivalent for formatting as an integer.
3628 (formatter<char, wchar_t>::format): Likewise.
3629 (basic_format_arg(T&)): Store char arguments as unsigned char
3630 for formatting to a wide string.
3631 * testsuite/std/format/functions/format.cc: Adjust test. Check
3634 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
3637 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
3640 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
3642 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
3644 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
3646 * include/std/type_traits (is_trivially_destructible_v): Use
3647 built-in directly when concepts are supported.
3648 * testsuite/20_util/is_trivially_destructible/value_v.cc: New
3651 2024-01-06 Gwenole Beauchesne <gb.devel@gmail.com>
3653 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
3654 nonnull arguments to strtoimax() and wcstoimax() functions.
3656 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
3658 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
3659 size and check for overflows in arithmetic.
3660 (path::operator/=(const path&)): Remove redundant exponential
3663 2024-01-05 Martin Küttler <martin.kuettler@kernkonzept.com>
3665 * src/c++17/fs_path.cc (path::_List::reserve): Avoid
3666 floating-point arithmetic.
3668 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
3671 * include/std/type_traits (is_convertible_v): Guard use of
3672 built-in with preprocessor check.
3674 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
3677 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
3678 __builtin_constant_p to check for unrelated pointers that cannot
3679 be compared during constant evaluation.
3680 * testsuite/21_strings/char_traits/requirements/113200.cc: New
3683 2024-01-05 Cassio Neri <cassio.neri@gmail.com>
3685 * include/std/chrono: Fix + and - for months and weekdays.
3686 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
3687 * testsuite/std/time/month/2.cc: New test for extreme values.
3688 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
3689 * testsuite/std/time/weekday/2.cc: New test for extreme values.
3691 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
3694 * include/bits/locale_classes.tcc (__try_use_facet): Use
3695 if-constexpr for C++11 and up.
3697 2024-01-05 Ken Matsui <kmatsui@gcc.gnu.org>
3699 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
3701 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
3703 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
3704 reported by Will Hawkins <hawkinsw@obs.cr>.
3706 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
3708 * include/std/generator (_Stateless_alloc): Rename typename _A
3711 2024-01-03 Patrick Palka <ppalka@redhat.com>
3714 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
3715 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
3719 Copyright (C) 2024 Free Software Foundation, Inc.
3721 Copying and distribution of this file, with or without modification,
3722 are permitted in any medium without royalty provided the copyright
3723 notice and this notice are preserved.