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