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