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