1 2024-02-09 Ken Matsui <kmatsui@gcc.gnu.org>
3 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
5 * include/std/type_traits (is_same): Use
6 _GLIBCXX_USE_BUILTIN_TRAIT instead of
7 _GLIBCXX_HAVE_BUILTIN_IS_SAME.
10 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
12 * include/bits/shared_ptr_atomic.h: Fix typo in comment.
14 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
17 * include/bits/gslice.h (operator=): Add comment about lack of
18 self-assignment check.
20 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
22 * include/tr2/type_traits (bases, direct_bases): Use
23 __has_builtin to check if required built-ins are supported.
25 2024-02-07 Patrick Palka <ppalka@redhat.com>
29 * include/bits/stl_pair.h (tuple_element): Add forward
30 declaration of the partial specialization for tuple.
32 2024-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
34 * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
35 for other environments.
37 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
39 * include/std/format (__format::_Spec::_M_reserved): Define new
40 bit-field members to reserve padding bits for future extensions.
42 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
44 * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
45 instead of libstdc++fs.a.
46 * src/experimental/Makefile.in: Regenerate.
47 * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
49 * src/filesystem/Makefile.in: Regenerate.
51 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
53 * include/bits/text_encoding-data.h: Regenerate.
54 * include/bits/unicode-data.h: Regenerate.
55 * scripts/gen_text_encoding_data.py: Add copyright and license
58 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
61 * include/bits/std_function.h (__function_guide_helper): Add
62 partial specialization for explicit object member functions, as
64 * testsuite/20_util/function/cons/deduction_c++23.cc: Check
65 explicit object member functions.
66 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
69 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
71 * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
73 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
75 * include/experimental/internet (network_v6::network): Define.
76 (network_v6::hosts): Finish implementing.
77 (network_v6::to_string): Do not concatenate std::string to
78 arbitrary std::basic_string specialization.
79 * testsuite/experimental/net/internet/network/v6/cons.cc: New
82 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
85 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
86 comparison function to use less-than instead of equality.
88 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
91 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
92 perfect forwarding for iterator arguments.
94 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
96 * include/std/string_view (basic_string_view(R&&)): Remove
97 constraint that traits_type must be the same, as per LWG 3857.
98 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
99 Explicit conversion between different specializations should be
101 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
104 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
106 * include/std/syncstream (basic_osyncstream::operator=): Remove
107 noexcept, as per LWG 3867.
109 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
111 * include/std/generator (promise_type::yield_value): Remove
112 noexcept from fourth overload, as per LWG 3894.
114 2024-02-01 Patrick Palka <ppalka@redhat.com>
118 * include/bits/ranges_util.h (__detail::__pair_like): Don't
119 define in C++23 mode.
120 (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
121 (__detail::__is_subrange<subrange>): Moved from <ranges>.
122 (__detail::__is_tuple_like_v<subrange>): Likewise.
123 * include/bits/stl_iterator.h: Include <bits/utility.h> for
125 (__different_from): Move to <concepts>.
126 (__iter_key_t): Adjust for C++23 as per P2165R4.
127 (__iter_val_t): Likewise.
128 * include/bits/stl_pair.h (pair, array): Forward declare.
129 (get): Forward declare all overloads relevant to P2165R4
130 tuple-like constructors.
131 (__is_tuple_v): Define for C++23.
132 (__is_tuple_like_v): Define for C++23.
133 (__tuple_like): Define for C++23 as per P2165R4.
134 (__pair_like): Define for C++23 as per P2165R4.
135 (__eligibile_tuple_like): Define for C++23.
136 (__eligibile_pair_like): Define for C++23.
137 (pair::_S_constructible_from_pair_like): Define for C++23.
138 (pair::_S_convertible_from_pair_like): Define for C++23.
139 (pair::_S_dangles_from_pair_like): Define for C++23.
140 (pair::pair): Define overloads taking a tuple-like type for
141 C++23 as per P2165R4.
142 (pair::_S_assignable_from_tuple_like): Define for C++23.
143 (pair::_S_const_assignable_from_tuple_like): Define for C++23.
144 (pair::operator=): Define overloads taking a tuple-like type for
145 C++23 as per P2165R4.
146 * include/bits/utility.h (ranges::__detail::__is_subrange):
148 * include/bits/version.def (tuple_like): Define for C++23.
149 * include/bits/version.h: Regenerate.
150 * include/std/concepts (__different_from): Moved from
151 <bits/stl_iterator.h>.
152 (ranges::__swap::__adl_swap): Clarify which __detail namespace.
153 * include/std/map (__cpp_lib_tuple_like): Define C++23.
154 * include/std/ranges (__detail::__is_subrange): Moved to
156 (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
157 (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
158 (__detail::__tuple_or_pair): Remove as per P2165R4. Replace all
159 uses with plain tuple as per P2165R4.
160 * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
161 (__tuple_like_tag_t): Define for C++23.
162 (__tuple_cmp): Forward declare for C++23.
163 (_Tuple_impl::_Tuple_impl): Define overloads taking
164 __tuple_like_tag_t and a tuple-like type for C++23.
165 (_Tuple_impl::_M_assign): Likewise.
166 (tuple::__constructible_from_tuple_like): Define for C++23.
167 (tuple::__convertible_from_tuple_like): Define for C++23.
168 (tuple::__dangles_from_tuple_like): Define for C++23.
169 (tuple::tuple): Define overloads taking a tuple-like type for
170 C++23 as per P2165R4.
171 (tuple::__assignable_from_tuple_like): Define for C++23.
172 (tuple::__const_assignable_from_tuple_like): Define for C++23.
173 (tuple::operator=): Define overloads taking a tuple-like type
174 for C++23 as per P2165R4.
175 (tuple::__tuple_like_common_comparison_category): Define for C++23.
176 (tuple::operator<=>): Define overload taking a tuple-like type
177 for C++23 as per P2165R4.
178 (array, get): Forward declarations moved to <bits/stl_pair.h>.
179 (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
181 (make_from_tuple): Likewise.
182 (__tuple_like_common_reference): Define for C++23.
183 (basic_common_reference): Adjust as per P2165R4.
184 (__tuple_like_common_type): Define for C++23.
185 (common_type): Adjust as per P2165R4.
186 * include/std/unordered_map (__cpp_lib_tuple_like): Define for
188 * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
189 * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
190 and 2-tuple interchangeably.
192 * testsuite/20_util/pair/p2165r4.cc: New test.
193 * testsuite/20_util/tuple/p2165r4.cc: New test.
195 2024-02-01 Patrick Palka <ppalka@redhat.com>
197 * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
198 factored out from ...
199 (pair::operator=): ... the constraints of the const overloads.
201 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
203 * include/bits/version.tpl: Do not use def-file-line for each
205 * include/bits/version.h: Regenerate.
207 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
209 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
211 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
213 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
215 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
217 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
219 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
221 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
223 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
225 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
228 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
230 * include/experimental/internet (network_v4::to_string()):
231 Remove lambda and use of resize_and_overwrite.
233 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
235 * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
236 needed for newlocale.
237 * configure: Regenerate.
238 * src/c++26/text_encoding.cc: Use <xlocale.h>.
240 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
241 Ewan Higgs <ewan.higgs@gmail.com>
243 * include/bits/text_encoding-data.h: Regenerate.
244 * scripts/gen_text_encoding_data.py: Add extra_aliases dict
246 * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
248 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
250 * doc/xml/manual/using.xml: Update tables of supported headers.
251 * doc/html/*: Regenerate.
253 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
255 * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
256 -Wshift-count-overflow warning.
258 2024-01-30 Jonathan Wakely <jwakely@redhat.com>
260 * testsuite/std/time/clock/gps/io.cc: Fix expected result in
261 assertion and call test_format() from main.
263 2024-01-29 François Dumont <fdumont@gcc.gnu.org>
265 * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
266 _GLIBCXX_DEBUG_BACKTRACE macro.
268 2024-01-24 Huanghui Nie <nnnjkk@gmail.com>
269 Théo Papadopoulo <papadopoulo@gmail.com>
271 * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
272 _M_before_begin check and cleanup implementation.
274 2024-01-22 Jonathan Wakely <jwakely@redhat.com>
276 * testsuite/std/time/clock/file/io.cc: Fix expected result in
277 assertion and call test_format() from main.
279 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
282 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
283 printing of subseconds with floating-point rep.
284 (__formatter_chrono::_M_format_to_ostream): Do not write
285 time_point specializations directly to the ostream.
286 (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
287 empty chrono-spec if the type fails to meet the constraints for
288 writing to an ostream with operator<<.
289 * testsuite/std/time/clock/file/io.cc: Check formatting
290 non-integral times with empty chrono-specs.
291 * testsuite/std/time/clock/gps/io.cc: Likewise.
292 * testsuite/std/time/clock/utc/io.cc: Likewise.
293 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
295 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
297 * include/bits/chrono.h (__file_clock::from_sys)
298 (__file_clock::to_sys, __file_clock::_S_from_sys)
299 (__file_clock::_S_to_sys): Use common_type for return type.
300 * testsuite/std/time/clock/file/members.cc: Check round trip
301 conversion for time with lower precision that seconds.
303 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
306 * include/std/format (__formatter_fp::format): Fix logic for
308 * testsuite/std/format/functions/format.cc: Check buggy cases of
309 alternate forms with g presentation type.
311 2024-01-20 Marek Polacek <polacek@redhat.com>
314 * include/std/ranges: Add #pragma to disable -Wdangling-reference with
315 std::ranges::views::__adaptor::operator|.
317 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
319 * include/std/format (_Spec::_M_parse_fill_and_align): Do not
320 use CTAD for _Utf32_view.
322 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
325 * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
327 * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
328 element and three elements. Check allocator-extended
331 2024-01-19 Patrick Palka <ppalka@redhat.com>
333 * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
334 <print> and <text_encoding> for C++23 and C++26 respectively.
336 2024-01-18 Patrick Palka <ppalka@redhat.com>
338 * include/bits/stl_pair.h [__cplusplus > 202002L]:
339 Guard P2321R2 changes with __glibcxx_ranges_zip instead.
341 2024-01-18 Patrick Palka <ppalka@redhat.com>
343 * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
344 changes with __cpp_lib_ranges_zip instead.
346 2024-01-18 Patrick Palka <ppalka@redhat.com>
349 * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
350 Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
351 * include/debug/safe_iterator.h
352 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
353 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
354 (_Safe_iterator::operator=): Use them around the code path that
355 defines a variable of type __gnu_cxx::__scoped_lock.
356 (_Safe_iterator::operator++): Likewise.
357 (_Safe_iterator::operator--): Likewise.
358 (_Safe_iterator::operator+=): Likewise.
359 (_Safe_iterator::operator-=): Likewise.
360 * testsuite/23_containers/vector/element_access/constexpr.cc
361 (test_iterators): Test more iterator operations.
362 * testsuite/23_containers/vector/bool/element_access/constexpr.cc
363 (test_iterators): Likewise.
364 * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
367 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
369 * include/bits/unicode.h (__charset_alias_match): Initialize
372 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
375 * testsuite/std/format/functions/format.cc: Use signed char
378 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
381 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
382 (GLIBCXX_CHECK_TEXT_ENCODING): Define.
383 * config.h.in: Regenerate.
384 * configure: Regenerate.
385 * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
386 * include/Makefile.am: Add new headers.
387 * include/Makefile.in: Regenerate.
388 * include/bits/locale_classes.h (locale::encoding): Declare new
390 * include/bits/unicode.h (__charset_alias_match): New function.
391 * include/bits/text_encoding-data.h: New file.
392 * include/bits/version.def (text_encoding): Define.
393 * include/bits/version.h: Regenerate.
394 * include/std/text_encoding: New file.
395 * src/Makefile.am: Add new subdirectory.
396 * src/Makefile.in: Regenerate.
397 * src/c++26/Makefile.am: New file.
398 * src/c++26/Makefile.in: New file.
399 * src/c++26/text_encoding.cc: New file.
400 * src/experimental/Makefile.am: Include c++26 convenience
402 * src/experimental/Makefile.in: Regenerate.
403 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
405 * scripts/gen_text_encoding_data.py: New file.
406 * testsuite/22_locale/locale/encoding.cc: New test.
407 * testsuite/ext/unicode/charset_alias_match.cc: New test.
408 * testsuite/std/text_encoding/cons.cc: New test.
409 * testsuite/std/text_encoding/members.cc: New test.
410 * testsuite/std/text_encoding/requirements.cc: New test.
412 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
414 * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
415 Do not use CTAD for _Utf32_view.
416 (__format_width, __truncate): Do not use CTAD.
417 (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
418 (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
420 2024-01-17 Patrick Palka <ppalka@redhat.com>
422 * include/std/ranges (views::_CartesianProduct::operator()):
423 Adjust identity case as per P2540R1.
424 * testsuite/std/ranges/cartesian_product/1.cc (test01):
425 Adjust expected result of the identity case.
427 2024-01-15 Patrick Palka <ppalka@redhat.com>
429 * include/std/variant (__detail::__variant::_Variadic_union):
430 Add bool __trivially_destructible template parameter.
431 (__detail::__variant::_Variadic_union::~_Variadic_union):
432 Use __trivially_destructible in constraints instead.
433 (__detail::__variant::_Variant_storage): Pass
434 __trivially_destructible value to _Variadic_union.
436 2024-01-15 Patrick Palka <ppalka@redhat.com>
438 * include/bits/stl_iterator.h (const_iterator): Define conversion
439 operators as per P2836R1.
440 * include/bits/version.def (ranges_as_const): Update value.
441 * include/bits/version.h: Regenerate.
442 * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
443 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
444 value of __cpp_lib_ranges_as_const.
445 * testsuite/std/ranges/version_c++23.cc: Likewise.
447 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
450 * include/std/tuple (__assignable, __is_nothrow_assignable):
451 Move pre-C++20 definitions adjacent to their use.
453 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
456 * include/std/format (basic_format_arg): Use __formattable
457 variable template instead of __format::__formattable_with
460 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
462 * src/c++20/tzdata.zi: Import new file from 2023d release.
463 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
464 Update expiry date for leap seconds list.
466 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
469 * include/std/tuple (tuple): Add checks for dangling references.
470 Reimplement constraints and constant expressions using C++20
472 * include/std/type_traits [C++20]
473 (__is_implicitly_default_constructible_v): Define.
474 (__is_implicitly_default_constructible): Use variable template.
475 * testsuite/20_util/tuple/dangling_ref.cc: New test.
477 2024-01-13 Patrick Palka <ppalka@redhat.com>
481 * include/bits/version.def (bind_back): Define.
482 * include/bits/version.h: Regenerate.
483 * include/std/functional (_Bind_back): Define for C++23.
484 (bind_back): Likewise.
485 * testsuite/20_util/function_objects/bind_back/1.cc: New test
486 (adapted from corresponding bind_front test).
487 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
489 2024-01-13 Patrick Palka <ppalka@redhat.com>
491 * include/std/functional (_Bind_front): Remove =default special
492 member function declarations.
493 (_Bind_front::operator()): Implement using C++23 deducing this
495 * testsuite/20_util/function_objects/bind_front/111327.cc:
496 Adjust testcase to expect better errors in C++23 mode.
498 2024-01-13 Patrick Palka <ppalka@redhat.com>
500 * include/std/ranges (views::__adaptor::operator|): Perform
501 perfect forwarding of arguments.
502 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
503 first argument to _Partial.
504 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy
506 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
508 (to): Pass dummy first argument to _Partial.
510 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
513 * include/bits/random.tcc (subtract_with_carry_engine::seed):
514 Implement proposed resolution of LWG 4014.
515 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
517 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
518 Check for expected result of 64-bit engine with seed that
519 doesn't fit in 32-bits.
521 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
524 * include/std/format (__format::_Runtime_format_string): Add
525 constructor and disable copy operations.
526 (basic_format_string(_Runtime_format_string)): Add noexcept and
527 take parameter by value not rvalue reference.
528 (runtime_format): Add noexcept.
529 * testsuite/std/format/runtime_format.cc: Check noexcept. Check
530 that construction is only possible from prvalues, not xvalues.
532 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
535 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
536 default template arguments, as per P1951R1.
537 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
539 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
541 * include/std/format (__format::_Arg_store): Fix PR number in
542 comment. Simplify preprocessor code.
544 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
546 * doc/xml/manual/evolution.xml: Fix spelling.
547 * doc/html/manual/api.html: Regenerate.
549 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
551 * doc/xml/manual/evolution.xml: Document addition of
553 * doc/html/*: Regenerate.
555 2024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
557 * libsupc++/eh_unex_handler.cc: Adjust definition type to
560 2024-01-11 Michael Levine <mlevine55@bloomberg.net>
562 * include/std/ranges (__glibcxx_want_ranges_iota): Remove
563 duplicate definition.
565 2024-01-11 François Dumont <fdumont@gcc.gnu.org>
569 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
571 (_Safe_iterator_base::_M_attach_single): Likewise.
572 (_Safe_local_iterator_base::_M_attach): Likewise.
573 (_Safe_local_iterator_base::_M_attach_single): Likewise.
574 * testsuite/23_containers/map/debug/112477.cc: New test case.
576 2024-01-11 Patrick Palka <ppalka@redhat.com>
578 * include/bits/move.h (__like_t): Define in C++23 mode.
579 * include/std/ranges (views::__adaptor::Partial::operator()):
580 Implement using C++23 deducing this when available.
581 (views::__adaptor::_Pipe::operator()): Likewise.
582 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
583 accept new "no match for call" errors issued in C++23 mode.
584 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
586 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
588 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
589 Add printer for std::integral_constant.
590 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
592 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
595 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
598 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
600 * src/filesystem/ops-common.h (stat_type): Use using.
602 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
605 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
606 * src/filesystem/ops.cc (fs::equivalent): Likewise.
607 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
609 * testsuite/experimental/filesystem/operations/equivalent.cc:
612 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
614 * include/std/type_traits (is_compound): Do not use __not_.
615 (is_compound_v): Use is_fundamental_v instead.
617 2024-01-11 Patrick Palka <ppalka@redhat.com>
619 * include/bits/utility.h (_Nth_type): Use
620 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
622 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
624 * include/bits/unicode-data.h: Regenerate.
625 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
627 (__incb_property): Add missing check for values before the
629 (__is_extended_pictographic): Invert return values to fix
631 (_Grapheme_cluster_view::_Iterator): Remove second iterator
632 member and find end of cluster lazily.
633 * testsuite/ext/unicode/grapheme_view.cc: New test.
634 * testsuite/ext/unicode/properties.cc: New test.
635 * testsuite/ext/unicode/view.cc: New test.
637 2024-01-09 Andreas Schwab <schwab@linux-m68k.org>
639 * scripts/extract_symvers.in: Require final colon to only match
640 .dsynsym in the header of the dynamic symtab.
642 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
644 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
645 handling of string returned from std::format.
646 (__formatter_chrono::_M_R_T): Likewise.
648 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
650 * include/bits/unicode.h (__null_sentinel): Remove.
651 * testsuite/17_intro/names.cc: Add __null_sentinel.
653 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
655 * include/std/format (__format::_Runtime_format_string): Define
657 (basic_format_string): Add non-consteval constructor for runtime
659 (runtime_format): Define new function for C++26.
660 * testsuite/std/format/runtime_format.cc: New test.
662 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
664 * include/bits/chrono_io.h (__formatter_chrono): Always use
665 lvalue arguments to make_format_args.
666 * include/std/format (make_format_args): Change parameter pack
667 from forwarding references to lvalue references. Remove use of
668 remove_reference_t which is now unnecessary.
669 (format_to, formatted_size): Remove incorrect forwarding of
671 * include/std/ostream (print): Remove forwarding of arguments.
672 * include/std/print (print): Likewise.
673 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
675 * testsuite/std/format/arguments/args.cc: Likewise.
676 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
677 * testsuite/std/format/functions/format.cc: Likewise.
678 * testsuite/std/format/functions/vformat_to.cc: Likewise.
679 * testsuite/std/format/string.cc: Likewise.
680 * testsuite/std/time/day/io.cc: Likewise.
681 * testsuite/std/time/month/io.cc: Likewise.
682 * testsuite/std/time/weekday/io.cc: Likewise.
683 * testsuite/std/time/year/io.cc: Likewise.
684 * testsuite/std/time/year_month_day/io.cc: Likewise.
685 * testsuite/std/format/arguments/args_neg.cc: New test.
687 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
689 * include/Makefile.am: Add new headers.
690 * include/Makefile.in: Regenerate.
691 * include/bits/unicode.h: New file.
692 * include/bits/unicode-data.h: New file.
693 * include/std/format: Include <bits/unicode.h>.
694 (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
695 (_Spec::_M_fill): Change type to char32_t.
696 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
697 instead of a single character.
698 (__write_padded): Change __fill_char parameter to char32_t and
699 encode it into the output.
700 (__formatter_str::format): Use new __unicode::__field_width and
701 __unicode::__truncate functions.
702 * include/std/ostream: Adjust namespace qualification for
703 __literal_encoding_is_utf8.
704 * include/std/print: Likewise.
705 * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
706 * testsuite/ext/unicode/view.cc: New test.
707 * testsuite/std/format/functions/format.cc: Add missing examples
708 from the standard demonstrating alignment with non-ASCII
709 characters. Add examples checking correct handling of extended
712 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
714 * include/bits/version.def (format_uchar): Define.
715 * include/bits/version.h: Regenerate.
716 * include/std/format (formatter<C, C>::format): Check for
717 _Pres_c and call _M_format_character directly. Cast C to its
718 unsigned equivalent for formatting as an integer.
719 (formatter<char, wchar_t>::format): Likewise.
720 (basic_format_arg(T&)): Store char arguments as unsigned char
721 for formatting to a wide string.
722 * testsuite/std/format/functions/format.cc: Adjust test. Check
725 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
728 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
731 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
733 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
735 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
737 * include/std/type_traits (is_trivially_destructible_v): Use
738 built-in directly when concepts are supported.
739 * testsuite/20_util/is_trivially_destructible/value_v.cc: New
742 2024-01-06 Gwenole Beauchesne <gb.devel@gmail.com>
744 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
745 nonnull arguments to strtoimax() and wcstoimax() functions.
747 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
749 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
750 size and check for overflows in arithmetic.
751 (path::operator/=(const path&)): Remove redundant exponential
754 2024-01-05 Martin Küttler <martin.kuettler@kernkonzept.com>
756 * src/c++17/fs_path.cc (path::_List::reserve): Avoid
757 floating-point arithmetic.
759 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
762 * include/std/type_traits (is_convertible_v): Guard use of
763 built-in with preprocessor check.
765 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
768 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
769 __builtin_constant_p to check for unrelated pointers that cannot
770 be compared during constant evaluation.
771 * testsuite/21_strings/char_traits/requirements/113200.cc: New
774 2024-01-05 Cassio Neri <cassio.neri@gmail.com>
776 * include/std/chrono: Fix + and - for months and weekdays.
777 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
778 * testsuite/std/time/month/2.cc: New test for extreme values.
779 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
780 * testsuite/std/time/weekday/2.cc: New test for extreme values.
782 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
785 * include/bits/locale_classes.tcc (__try_use_facet): Use
786 if-constexpr for C++11 and up.
788 2024-01-05 Ken Matsui <kmatsui@gcc.gnu.org>
790 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
792 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
794 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
795 reported by Will Hawkins <hawkinsw@obs.cr>.
797 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
799 * include/std/generator (_Stateless_alloc): Rename typename _A
802 2024-01-03 Patrick Palka <ppalka@redhat.com>
805 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
806 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
810 Copyright (C) 2024 Free Software Foundation, Inc.
812 Copying and distribution of this file, with or without modification,
813 are permitted in any medium without royalty provided the copyright
814 notice and this notice are preserved.