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