Daily bump.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob13bc67038c8ee13c5de9bc81140b0d09ebd8f030
1 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
3         * include/std/format (__format::_Spec::_M_reserved): Define new
4         bit-field members to reserve padding bits for future extensions.
6 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
8         * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
9         instead of libstdc++fs.a.
10         * src/experimental/Makefile.in: Regenerate.
11         * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
12         well.
13         * src/filesystem/Makefile.in: Regenerate.
15 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
17         * include/bits/text_encoding-data.h: Regenerate.
18         * include/bits/unicode-data.h: Regenerate.
19         * scripts/gen_text_encoding_data.py: Add copyright and license
20         text to the output.
22 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
24         PR libstdc++/113335
25         * include/bits/std_function.h (__function_guide_helper): Add
26         partial specialization for explicit object member functions, as
27         per LWG 3617.
28         * testsuite/20_util/function/cons/deduction_c++23.cc: Check
29         explicit object member functions.
30         * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
31         Likewise.
33 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
35         * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
37 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
39         * include/experimental/internet (network_v6::network): Define.
40         (network_v6::hosts): Finish implementing.
41         (network_v6::to_string): Do not concatenate std::string to
42         arbitrary std::basic_string specialization.
43         * testsuite/experimental/net/internet/network/v6/cons.cc: New
44         test.
46 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
48         PR libstdc++/90276
49         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
50         comparison function to use less-than instead of equality.
52 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
54         PR libstdc++/90276
55         * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
56         perfect forwarding for iterator arguments.
58 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
60         * include/std/string_view (basic_string_view(R&&)): Remove
61         constraint that traits_type must be the same, as per LWG 3857.
62         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
63         Explicit conversion between different specializations should be
64         allowed.
65         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
66         Likewise.
68 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
70         * include/std/syncstream (basic_osyncstream::operator=): Remove
71         noexcept, as per LWG 3867.
73 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
75         * include/std/generator (promise_type::yield_value): Remove
76         noexcept from fourth overload, as per LWG 3894.
78 2024-02-01  Patrick Palka  <ppalka@redhat.com>
80         PR libstdc++/113309
81         PR libstdc++/109203
82         * include/bits/ranges_util.h (__detail::__pair_like): Don't
83         define in C++23 mode.
84         (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
85         (__detail::__is_subrange<subrange>): Moved from <ranges>.
86         (__detail::__is_tuple_like_v<subrange>): Likewise.
87         * include/bits/stl_iterator.h: Include <bits/utility.h> for
88         C++23.
89         (__different_from): Move to <concepts>.
90         (__iter_key_t): Adjust for C++23 as per P2165R4.
91         (__iter_val_t): Likewise.
92         * include/bits/stl_pair.h (pair, array): Forward declare.
93         (get): Forward declare all overloads relevant to P2165R4
94         tuple-like constructors.
95         (__is_tuple_v): Define for C++23.
96         (__is_tuple_like_v): Define for C++23.
97         (__tuple_like): Define for C++23 as per P2165R4.
98         (__pair_like): Define for C++23 as per P2165R4.
99         (__eligibile_tuple_like): Define for C++23.
100         (__eligibile_pair_like): Define for C++23.
101         (pair::_S_constructible_from_pair_like): Define for C++23.
102         (pair::_S_convertible_from_pair_like): Define for C++23.
103         (pair::_S_dangles_from_pair_like): Define for C++23.
104         (pair::pair): Define overloads taking a tuple-like type for
105         C++23 as per P2165R4.
106         (pair::_S_assignable_from_tuple_like): Define for C++23.
107         (pair::_S_const_assignable_from_tuple_like): Define for C++23.
108         (pair::operator=): Define overloads taking a tuple-like type for
109         C++23 as per P2165R4.
110         * include/bits/utility.h (ranges::__detail::__is_subrange):
111         Moved from <ranges>.
112         * include/bits/version.def (tuple_like): Define for C++23.
113         * include/bits/version.h: Regenerate.
114         * include/std/concepts (__different_from): Moved from
115         <bits/stl_iterator.h>.
116         (ranges::__swap::__adl_swap): Clarify which __detail namespace.
117         * include/std/map (__cpp_lib_tuple_like): Define C++23.
118         * include/std/ranges (__detail::__is_subrange): Moved to
119         <bits/utility.h>.
120         (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
121         (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
122         (__detail::__tuple_or_pair): Remove as per P2165R4.  Replace all
123         uses with plain tuple as per P2165R4.
124         * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
125         (__tuple_like_tag_t): Define for C++23.
126         (__tuple_cmp): Forward declare for C++23.
127         (_Tuple_impl::_Tuple_impl): Define overloads taking
128         __tuple_like_tag_t and a tuple-like type for C++23.
129         (_Tuple_impl::_M_assign): Likewise.
130         (tuple::__constructible_from_tuple_like): Define for C++23.
131         (tuple::__convertible_from_tuple_like): Define for C++23.
132         (tuple::__dangles_from_tuple_like): Define for C++23.
133         (tuple::tuple): Define overloads taking a tuple-like type for
134         C++23 as per P2165R4.
135         (tuple::__assignable_from_tuple_like): Define for C++23.
136         (tuple::__const_assignable_from_tuple_like): Define for C++23.
137         (tuple::operator=): Define overloads taking a tuple-like type
138         for C++23 as per P2165R4.
139         (tuple::__tuple_like_common_comparison_category): Define for C++23.
140         (tuple::operator<=>): Define overload taking a tuple-like type
141         for C++23 as per P2165R4.
142         (array, get): Forward declarations moved to <bits/stl_pair.h>.
143         (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
144         (apply): Likewise.
145         (make_from_tuple): Likewise.
146         (__tuple_like_common_reference): Define for C++23.
147         (basic_common_reference): Adjust as per P2165R4.
148         (__tuple_like_common_type): Define for C++23.
149         (common_type): Adjust as per P2165R4.
150         * include/std/unordered_map (__cpp_lib_tuple_like): Define for
151         C++23.
152         * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
153         * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
154         and 2-tuple interchangeably.
155         (test05): New test.
156         * testsuite/20_util/pair/p2165r4.cc: New test.
157         * testsuite/20_util/tuple/p2165r4.cc: New test.
159 2024-02-01  Patrick Palka  <ppalka@redhat.com>
161         * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
162         factored out from ...
163         (pair::operator=): ... the constraints of the const overloads.
165 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
167         * include/bits/version.tpl: Do not use def-file-line for each
168         macro being defined.
169         * include/bits/version.h: Regenerate.
171 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
173         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
174         dg-error pattern.
175         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
176         Likewise.
177         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
178         Likewise.
179         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
180         Likewise.
181         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
182         Likewise.
183         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
184         Likewise.
185         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
186         Likewise.
187         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
188         Likewise.
189         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
190         Likewise.
192 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
194         * include/experimental/internet (network_v4::to_string()):
195         Remove lambda and use of resize_and_overwrite.
197 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
199         * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
200         needed for newlocale.
201         * configure: Regenerate.
202         * src/c++26/text_encoding.cc: Use <xlocale.h>.
204 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
205             Ewan Higgs  <ewan.higgs@gmail.com>
207         * include/bits/text_encoding-data.h: Regenerate.
208         * scripts/gen_text_encoding_data.py: Add extra_aliases dict
209         containing "ASCII".
210         * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
212 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
214         * doc/xml/manual/using.xml: Update tables of supported headers.
215         * doc/html/*: Regenerate.
217 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
219         * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
220         -Wshift-count-overflow warning.
222 2024-01-30  Jonathan Wakely  <jwakely@redhat.com>
224         * testsuite/std/time/clock/gps/io.cc: Fix expected result in
225         assertion and call test_format() from main.
227 2024-01-29  François Dumont  <fdumont@gcc.gnu.org>
229         * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
230         _GLIBCXX_DEBUG_BACKTRACE macro.
232 2024-01-24  Huanghui Nie  <nnnjkk@gmail.com>
233             Théo Papadopoulo   <papadopoulo@gmail.com>
235         * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
236         _M_before_begin check and cleanup implementation.
238 2024-01-22  Jonathan Wakely  <jwakely@redhat.com>
240         * testsuite/std/time/clock/file/io.cc: Fix expected result in
241         assertion and call test_format() from main.
243 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
245         PR libstdc++/113500
246         * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
247         printing of subseconds with floating-point rep.
248         (__formatter_chrono::_M_format_to_ostream): Do not write
249         time_point specializations directly to the ostream.
250         (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
251         empty chrono-spec if the type fails to meet the constraints for
252         writing to an ostream with operator<<.
253         * testsuite/std/time/clock/file/io.cc: Check formatting
254         non-integral times with empty chrono-specs.
255         * testsuite/std/time/clock/gps/io.cc: Likewise.
256         * testsuite/std/time/clock/utc/io.cc: Likewise.
257         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
259 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
261         * include/bits/chrono.h (__file_clock::from_sys)
262         (__file_clock::to_sys, __file_clock::_S_from_sys)
263         (__file_clock::_S_to_sys): Use common_type for return type.
264         * testsuite/std/time/clock/file/members.cc: Check round trip
265         conversion for time with lower precision that seconds.
267 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
269         PR libstdc++/113512
270         * include/std/format (__formatter_fp::format): Fix logic for
271         alternate forms.
272         * testsuite/std/format/functions/format.cc: Check buggy cases of
273         alternate forms with g presentation type.
275 2024-01-20  Marek Polacek  <polacek@redhat.com>
277         PR c++/111410
278         * include/std/ranges: Add #pragma to disable -Wdangling-reference with
279         std::ranges::views::__adaptor::operator|.
281 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
283         * include/std/format (_Spec::_M_parse_fill_and_align): Do not
284         use CTAD for _Utf32_view.
286 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
288         PR libstdc++/108822
289         * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
290         wrong fold-operator.
291         * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
292         element and three elements. Check allocator-extended
293         constructors.
295 2024-01-19  Patrick Palka  <ppalka@redhat.com>
297         * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
298         <print> and <text_encoding> for C++23 and C++26 respectively.
300 2024-01-18  Patrick Palka  <ppalka@redhat.com>
302         * include/bits/stl_pair.h [__cplusplus > 202002L]:
303         Guard P2321R2 changes with __glibcxx_ranges_zip instead.
305 2024-01-18  Patrick Palka  <ppalka@redhat.com>
307         * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
308         changes with __cpp_lib_ranges_zip instead.
310 2024-01-18  Patrick Palka  <ppalka@redhat.com>
312         PR libstdc++/109536
313         * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
314         Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
315         * include/debug/safe_iterator.h
316         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
317         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
318         (_Safe_iterator::operator=): Use them around the code path that
319         defines a variable of type __gnu_cxx::__scoped_lock.
320         (_Safe_iterator::operator++): Likewise.
321         (_Safe_iterator::operator--): Likewise.
322         (_Safe_iterator::operator+=): Likewise.
323         (_Safe_iterator::operator-=): Likewise.
324         * testsuite/23_containers/vector/element_access/constexpr.cc
325         (test_iterators): Test more iterator operations.
326         * testsuite/23_containers/vector/bool/element_access/constexpr.cc
327         (test_iterators): Likewise.
328         * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
329         Remove.
331 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
333         * include/bits/unicode.h (__charset_alias_match): Initialize
334         __var_a and __var_b.
336 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
338         PR libstdc++/113450
339         * testsuite/std/format/functions/format.cc: Use signed char
340         instead of int8_t.
342 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
344         PR libstdc++/113318
345         * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
346         (GLIBCXX_CHECK_TEXT_ENCODING): Define.
347         * config.h.in: Regenerate.
348         * configure: Regenerate.
349         * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
350         * include/Makefile.am: Add new headers.
351         * include/Makefile.in: Regenerate.
352         * include/bits/locale_classes.h (locale::encoding): Declare new
353         member function.
354         * include/bits/unicode.h (__charset_alias_match): New function.
355         * include/bits/text_encoding-data.h: New file.
356         * include/bits/version.def (text_encoding): Define.
357         * include/bits/version.h: Regenerate.
358         * include/std/text_encoding: New file.
359         * src/Makefile.am: Add new subdirectory.
360         * src/Makefile.in: Regenerate.
361         * src/c++26/Makefile.am: New file.
362         * src/c++26/Makefile.in: New file.
363         * src/c++26/text_encoding.cc: New file.
364         * src/experimental/Makefile.am: Include c++26 convenience
365         library.
366         * src/experimental/Makefile.in: Regenerate.
367         * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
368         printer.
369         * scripts/gen_text_encoding_data.py: New file.
370         * testsuite/22_locale/locale/encoding.cc: New test.
371         * testsuite/ext/unicode/charset_alias_match.cc: New test.
372         * testsuite/std/text_encoding/cons.cc: New test.
373         * testsuite/std/text_encoding/members.cc: New test.
374         * testsuite/std/text_encoding/requirements.cc: New test.
376 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
378         * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
379         Do not use CTAD for _Utf32_view.
380         (__format_width, __truncate): Do not use CTAD.
381         (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
382         (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
384 2024-01-17  Patrick Palka  <ppalka@redhat.com>
386         * include/std/ranges (views::_CartesianProduct::operator()):
387         Adjust identity case as per P2540R1.
388         * testsuite/std/ranges/cartesian_product/1.cc (test01):
389         Adjust expected result of the identity case.
391 2024-01-15  Patrick Palka  <ppalka@redhat.com>
393         * include/std/variant (__detail::__variant::_Variadic_union):
394         Add bool __trivially_destructible template parameter.
395         (__detail::__variant::_Variadic_union::~_Variadic_union):
396         Use __trivially_destructible in constraints instead.
397         (__detail::__variant::_Variant_storage): Pass
398         __trivially_destructible value to _Variadic_union.
400 2024-01-15  Patrick Palka  <ppalka@redhat.com>
402         * include/bits/stl_iterator.h (const_iterator): Define conversion
403         operators as per P2836R1.
404         * include/bits/version.def (ranges_as_const): Update value.
405         * include/bits/version.h: Regenerate.
406         * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
407         * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
408         value of __cpp_lib_ranges_as_const.
409         * testsuite/std/ranges/version_c++23.cc: Likewise.
411 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
413         PR libstdc++/108822
414         * include/std/tuple (__assignable, __is_nothrow_assignable):
415         Move pre-C++20 definitions adjacent to their use.
417 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
419         PR testsuite/113366
420         * include/std/format (basic_format_arg): Use __formattable
421         variable template instead of __format::__formattable_with
422         concept.
424 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
426         * src/c++20/tzdata.zi: Import new file from 2023d release.
427         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
428         Update expiry date for leap seconds list.
430 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
432         PR libstdc++/108822
433         * include/std/tuple (tuple): Add checks for dangling references.
434         Reimplement constraints and constant expressions using C++20
435         features.
436         * include/std/type_traits [C++20]
437         (__is_implicitly_default_constructible_v): Define.
438         (__is_implicitly_default_constructible): Use variable template.
439         * testsuite/20_util/tuple/dangling_ref.cc: New test.
441 2024-01-13  Patrick Palka  <ppalka@redhat.com>
443         PR libstdc++/108827
444         PR libstdc++/111327
445         * include/bits/version.def (bind_back): Define.
446         * include/bits/version.h: Regenerate.
447         * include/std/functional (_Bind_back): Define for C++23.
448         (bind_back): Likewise.
449         * testsuite/20_util/function_objects/bind_back/1.cc: New test
450         (adapted from corresponding bind_front test).
451         * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
453 2024-01-13  Patrick Palka  <ppalka@redhat.com>
455         * include/std/functional (_Bind_front): Remove =default special
456         member function declarations.
457         (_Bind_front::operator()): Implement using C++23 deducing this
458         when available.
459         * testsuite/20_util/function_objects/bind_front/111327.cc:
460         Adjust testcase to expect better errors in C++23 mode.
462 2024-01-13  Patrick Palka  <ppalka@redhat.com>
464         * include/std/ranges (views::__adaptor::operator|): Perform
465         perfect forwarding of arguments.
466         (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
467         first argument to _Partial.
468         (views::__adaptor::_Partial::_Partial): Likewise.  Add dummy
469         first parameter.
470         (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
471         of arguments.
472         (to): Pass dummy first argument to _Partial.
474 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
476         PR libstdc++/107466
477         * include/bits/random.tcc (subtract_with_carry_engine::seed):
478         Implement proposed resolution of LWG 4014.
479         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
480         line number.
481         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
482         Check for expected result of 64-bit engine with seed that
483         doesn't fit in 32-bits.
485 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
487         PR libstdc++/113320
488         * include/std/format (__format::_Runtime_format_string): Add
489         constructor and disable copy operations.
490         (basic_format_string(_Runtime_format_string)): Add noexcept and
491         take parameter by value not rvalue reference.
492         (runtime_format): Add noexcept.
493         * testsuite/std/format/runtime_format.cc: Check noexcept. Check
494         that construction is only possible from prvalues, not xvalues.
496 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
498         PR libstdc++/105505
499         * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
500         default template arguments, as per P1951R1.
501         * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
503 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
505         * include/std/format (__format::_Arg_store): Fix PR number in
506         comment. Simplify preprocessor code.
508 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
510         * doc/xml/manual/evolution.xml: Fix spelling.
511         * doc/html/manual/api.html: Regenerate.
513 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
515         * doc/xml/manual/evolution.xml: Document addition of
516         libstdc++exp.a.
517         * doc/html/*: Regenerate.
519 2024-01-11  Marcus Haehnel  <marcus.haehnel@kernkonzept.com>
521         * libsupc++/eh_unex_handler.cc: Adjust definition type to
522         declaration.
524 2024-01-11  Michael Levine  <mlevine55@bloomberg.net>
526         * include/std/ranges (__glibcxx_want_ranges_iota): Remove
527         duplicate definition.
529 2024-01-11  François Dumont  <fdumont@gcc.gnu.org>
531         PR libstdc++/112477
532         * src/c++11/debug.cc
533         (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
534         sequence.
535         (_Safe_iterator_base::_M_attach_single): Likewise.
536         (_Safe_local_iterator_base::_M_attach): Likewise.
537         (_Safe_local_iterator_base::_M_attach_single): Likewise.
538         * testsuite/23_containers/map/debug/112477.cc: New test case.
540 2024-01-11  Patrick Palka  <ppalka@redhat.com>
542         * include/bits/move.h (__like_t): Define in C++23 mode.
543         * include/std/ranges (views::__adaptor::Partial::operator()):
544         Implement using C++23 deducing this when available.
545         (views::__adaptor::_Pipe::operator()): Likewise.
546         * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
547         accept new "no match for call" errors issued in C++23 mode.
548         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
550 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
552         * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
553         Add printer for std::integral_constant.
554         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
556 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
558         PR libstdc++/113258
559         * libsupc++/new_opa.cc: Prefer to use posix_memalign if
560         available.
562 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
564         * src/filesystem/ops-common.h (stat_type): Use using.
566 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
568         PR libstdc++/113250
569         * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
570         * src/filesystem/ops.cc (fs::equivalent): Likewise.
571         * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
572         error codes.
573         * testsuite/experimental/filesystem/operations/equivalent.cc:
574         Likewise.
576 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
578         * include/std/type_traits (is_compound): Do not use __not_.
579         (is_compound_v): Use is_fundamental_v instead.
581 2024-01-11  Patrick Palka  <ppalka@redhat.com>
583         * include/bits/utility.h (_Nth_type): Use
584         _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
586 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
588         * include/bits/unicode-data.h: Regenerate.
589         * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
590         by one error.
591         (__incb_property): Add missing check for values before the
592         first edge.
593         (__is_extended_pictographic): Invert return values to fix
594         copy&pasted logic.
595         (_Grapheme_cluster_view::_Iterator): Remove second iterator
596         member and find end of cluster lazily.
597         * testsuite/ext/unicode/grapheme_view.cc: New test.
598         * testsuite/ext/unicode/properties.cc: New test.
599         * testsuite/ext/unicode/view.cc: New test.
601 2024-01-09  Andreas Schwab  <schwab@linux-m68k.org>
603         * scripts/extract_symvers.in: Require final colon to only match
604         .dsynsym in the header of the dynamic symtab.
606 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
608         * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
609         handling of string returned from std::format.
610         (__formatter_chrono::_M_R_T): Likewise.
612 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
614         * include/bits/unicode.h (__null_sentinel): Remove.
615         * testsuite/17_intro/names.cc: Add __null_sentinel.
617 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
619         * include/std/format (__format::_Runtime_format_string): Define
620         new class template.
621         (basic_format_string): Add non-consteval constructor for runtime
622         format strings.
623         (runtime_format): Define new function for C++26.
624         * testsuite/std/format/runtime_format.cc: New test.
626 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
628         * include/bits/chrono_io.h (__formatter_chrono): Always use
629         lvalue arguments to make_format_args.
630         * include/std/format (make_format_args): Change parameter pack
631         from forwarding references to lvalue references. Remove use of
632         remove_reference_t which is now unnecessary.
633         (format_to, formatted_size): Remove incorrect forwarding of
634         arguments.
635         * include/std/ostream (print): Remove forwarding of arguments.
636         * include/std/print (print): Likewise.
637         * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
638         make_format_args.
639         * testsuite/std/format/arguments/args.cc: Likewise.
640         * testsuite/std/format/arguments/lwg3810.cc: Likewise.
641         * testsuite/std/format/functions/format.cc: Likewise.
642         * testsuite/std/format/functions/vformat_to.cc: Likewise.
643         * testsuite/std/format/string.cc: Likewise.
644         * testsuite/std/time/day/io.cc: Likewise.
645         * testsuite/std/time/month/io.cc: Likewise.
646         * testsuite/std/time/weekday/io.cc: Likewise.
647         * testsuite/std/time/year/io.cc: Likewise.
648         * testsuite/std/time/year_month_day/io.cc: Likewise.
649         * testsuite/std/format/arguments/args_neg.cc: New test.
651 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
653         * include/Makefile.am: Add new headers.
654         * include/Makefile.in: Regenerate.
655         * include/bits/unicode.h: New file.
656         * include/bits/unicode-data.h: New file.
657         * include/std/format: Include <bits/unicode.h>.
658         (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
659         (_Spec::_M_fill): Change type to char32_t.
660         (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
661         instead of a single character.
662         (__write_padded): Change __fill_char parameter to char32_t and
663         encode it into the output.
664         (__formatter_str::format): Use new __unicode::__field_width and
665         __unicode::__truncate functions.
666         * include/std/ostream: Adjust namespace qualification for
667         __literal_encoding_is_utf8.
668         * include/std/print: Likewise.
669         * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
670         * testsuite/ext/unicode/view.cc: New test.
671         * testsuite/std/format/functions/format.cc: Add missing examples
672         from the standard demonstrating alignment with non-ASCII
673         characters. Add examples checking correct handling of extended
674         grapheme clusters.
676 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
678         * include/bits/version.def (format_uchar): Define.
679         * include/bits/version.h: Regenerate.
680         * include/std/format (formatter<C, C>::format): Check for
681         _Pres_c and call _M_format_character directly. Cast C to its
682         unsigned equivalent for formatting as an integer.
683         (formatter<char, wchar_t>::format): Likewise.
684         (basic_format_arg(T&)): Store char arguments as unsigned char
685         for formatting to a wide string.
686         * testsuite/std/format/functions/format.cc: Adjust test. Check
687         formatting of
689 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
691         PR libstdc++/112997
692         * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
693         parameter to void*.
695 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
697         * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
699 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
701         * include/std/type_traits (is_trivially_destructible_v): Use
702         built-in directly when concepts are supported.
703         * testsuite/20_util/is_trivially_destructible/value_v.cc: New
704         test.
706 2024-01-06  Gwenole Beauchesne  <gb.devel@gmail.com>
708         * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
709         nonnull arguments to strtoimax() and wcstoimax() functions.
711 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
713         * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
714         size and check for overflows in arithmetic.
715         (path::operator/=(const path&)): Remove redundant exponential
716         growth calculation.
718 2024-01-05  Martin Küttler  <martin.kuettler@kernkonzept.com>
720         * src/c++17/fs_path.cc (path::_List::reserve): Avoid
721         floating-point arithmetic.
723 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
725         PR libstdc++/113241
726         * include/std/type_traits (is_convertible_v): Guard use of
727         built-in with preprocessor check.
729 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
731         PR libstdc++/113200
732         * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
733         __builtin_constant_p to check for unrelated pointers that cannot
734         be compared during constant evaluation.
735         * testsuite/21_strings/char_traits/requirements/113200.cc: New
736         test.
738 2024-01-05  Cassio Neri  <cassio.neri@gmail.com>
740         * include/std/chrono: Fix + and - for months and weekdays.
741         * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
742         * testsuite/std/time/month/2.cc: New test for extreme values.
743         * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
744         * testsuite/std/time/weekday/2.cc: New test for extreme values.
746 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
748         PR libstdc++/113099
749         * include/bits/locale_classes.tcc (__try_use_facet): Use
750         if-constexpr for C++11 and up.
752 2024-01-05  Ken Matsui  <kmatsui@gcc.gnu.org>
754         * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
756 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
758         * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
759         reported by Will Hawkins <hawkinsw@obs.cr>.
761 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
763         * include/std/generator (_Stateless_alloc): Rename typename _A
764         to _All.
766 2024-01-03  Patrick Palka  <ppalka@redhat.com>
768         PR testsuite/113175
769         * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
770         'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
771         (test03): Likewise.
774 Copyright (C) 2024 Free Software Foundation, Inc.
776 Copying and distribution of this file, with or without modification,
777 are permitted in any medium without royalty provided the copyright
778 notice and this notice are preserved.