Daily bump.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob7b6941fc5c213575af284cc615f03cb2655f8585
1 2024-05-23  Patrick Palka  <ppalka@redhat.com>
3         * include/bits/version.def (ranges_concat): Define.
4         * include/bits/version.h: Regenerate.
5         * include/std/ranges (__detail::__concat_reference_t): Define
6         for C++26.
7         (__detail::__concat_value_t): Likewise.
8         (__detail::__concat_rvalue_reference_t): Likewise.
9         (__detail::__concat_indirectly_readable_impl): Likewise.
10         (__detail::__concat_indirectly_readable): Likewise.
11         (__detail::__concatable): Likewise.
12         (__detail::__all_but_last_common): Likewise.
13         (__detail::__concat_is_random_access): Likewise.
14         (__detail::__concat_is_bidirectional): Likewise.
15         (__detail::__last_is_common): Likewise.
16         (concat_view): Likewise.
17         (__detail::__concat_view_iter_cat): Likewise.
18         (concat_view::iterator): Likewise.
19         (views::__detail::__can_concat_view): Likewise.
20         (views::_Concat, views::concat): Likewise.
21         * testsuite/std/ranges/concat/1.cc: New test.
23 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
25         * include/bits/locale_classes.h (locale::combine)
26         (locale::name, locale::operator==, locale::operator!=)
27         (locale::operator(), locale::classic): Add nodiscard
28         attribute.
29         * include/bits/locale_classes.tcc (has_facet, use_facet):
30         Likewise.
31         * testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
32         nodiscard diagnostic.
33         * testsuite/22_locale/locale/cons/2.cc: Cast use_facet
34         expression to void, to suppress diagnostic.
35         * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
36         * testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
38 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
40         PR libstdc++/108323
41         * include/bits/locale_classes.tcc (locale(const locale&, Facet*)):
42         Return a copy of the first argument when the facet pointer is
43         null, as per LWG 2295.
44         (locale::combine): Ensure the result is unnamed.
45         * src/c++11/localename.cc (_M_replace_categories): Ignore
46         whether the second locale has a name when cat == none, as per
47         LWG 3676.
48         * src/c++98/locale.cc (_M_install_facet): Use __builtin_expect
49         to predict that the facet pointer is non-null.
50         * testsuite/22_locale/locale/cons/names.cc: New test.
52 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
54         PR libstdc++/114940
55         * include/bits/version.def (generator): Depend on
56         __cpp_sized_deallocation.
57         * include/bits/version.h: Regenerate.
58         * include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro.
59         (basic_stacktrace::_Impl::_M_deallocate): Use it.
61 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
63         PR libstdc++/115099
64         * include/bits/std_thread.h: Declare formatter as friend of
65         thread::id.
66         * include/std/thread (operator<<): Convert non-void pointers to
67         void pointers for output.
68         (formatter): Add constraint that thread::native_handle_type is a
69         pointer or integer.
70         (formatter::format): Reimplement without basic_ostringstream.
71         * testsuite/30_threads/thread/id/output.cc: Check output
72         compiles before <sstream> has been included.
74 2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
76         PR libstdc++/115145
77         * include/std/variant (operator==, operator!=, operator<)
78         (operator<=, operator>, operator>=): Add trailing-return-type to
79         lambda expressions to trigger conversion to bool.
80         * testsuite/20_util/variant/relops/115145.cc: New test.
82 2024-05-17  Björn Schäpers  <bjoern@hazardy.de>
84         * acinclude.m4 (GLIBCXX_ENABLE_BACKTACE): Add check for
85         tlhelp32.h, matching libbacktrace.
86         * config.h.in: Regenerate.
87         * configure: Regenerate.
89 2024-05-17  Jonathan Wakely  <jwakely@redhat.com>
91         PR libstdc++/115119
92         * include/bits/unicode.h (_Iterator::operator++(int)): Fix typo
93         in increment expression.
94         * testsuite/ext/unicode/grapheme_view.cc: Check post-increment
95         on view's iterator.
97 2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
99         PR libstdc++/77704
100         * include/bits/basic_ios.h (basic_ios::fill()): Do not modify
101         _M_fill and _M_fill_init in a const member function.
102         (basic_ios::fill(char_type)): Use _M_fill directly instead of
103         calling fill(). Set _M_fill_init to true.
104         * include/bits/basic_ios.tcc (basic_ios::init): Set _M_fill and
105         _M_fill_init here instead.
106         * testsuite/27_io/basic_ios/fill/char/1.cc: New test.
107         * testsuite/27_io/basic_ios/fill/wchar_t/1.cc: New test.
109 2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
111         * include/std/variant (__detail::__variant::__compare): New
112         function template.
113         (operator==, operator!=, operator<, operator>, operator<=)
114         (operator>=): Replace macro definition with handwritten function
115         calling __detail::__variant::__compare.
116         (operator<=>): Call __detail::__variant::__compare.
118 2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
120         PR libstdc++/89624
121         * include/bits/atomic_base.h (memory_order): Use int as
122         underlying type.
123         * testsuite/29_atomics/atomic/89624.cc: New test.
125 2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
127         PR libstdc++/115015
128         * src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]:
129         Do not use dynamic_cast.
131 2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
133         * doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
134         std::string::shrink_to_fit.
135         * doc/html/manual/strings.html: Regenerate.
137 2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
139         PR libstdc++/115063
140         * include/std/stacktrace (basic_stacktrace::max_size): Fix typo
141         in reference to _M_alloc member.
142         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check
143         max_size() compiles.
145 2024-05-13  Matthias Kretz  <m.kretz@gsi.de>
147         PR libstdc++/114958
148         * include/experimental/bits/simd.h (__as_vector): Return scalar
149         simd as one-element vector. Return vector from single-vector
150         fixed_size simd.
151         (__vec_shuffle): New.
152         (__extract_part): Adjust return type signature.
153         (split): Use __extract_part for any split into non-fixed_size
154         simds.
155         (concat): If the return type stores a single vector, use
156         __vec_shuffle (which calls __builtin_shufflevector) to produce
157         the return value.
158         * include/experimental/bits/simd_builtin.h
159         (__shift_elements_right): Removed.
160         (__extract_part): Return single elements directly. Use
161         __vec_shuffle (which calls __builtin_shufflevector) to for all
162         non-trivial cases.
163         * include/experimental/bits/simd_fixed_size.h (__extract_part):
164         Return single elements directly.
165         * testsuite/experimental/simd/pr114958.cc: New test.
167 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
169         * include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure
170         count of characters consumed is correct when the end of the
171         input is reached unexpectedly.
172         * testsuite/ext/unicode/view.cc: Test incomplete UTF-8
173         sequences.
175 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
177         PR libstdc++/114866
178         * include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to
179         shared_ptr, __shared_ptr or __is_shred_ptr.
180         * testsuite/20_util/headers/memory/114866.cc: New test.
182 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
184         * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE):
185         Simplify.
187 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
189         * include/bits/stl_pair.h (operator==): Add constraint.
190         * include/bits/version.def (constrained_equality): Define.
191         * include/bits/version.h: Regenerate.
192         * include/std/optional: Define feature test macro.
193         (__optional_rep_op_t): Use is_convertible_v instead of
194         is_convertible.
195         * include/std/tuple: Define feature test macro.
196         (operator==, __tuple_cmp, operator<=>): Reimplement C++20
197         comparisons using lambdas. Add constraints.
198         * include/std/utility: Define feature test macro.
199         * include/std/variant: Define feature test macro.
200         (_VARIANT_RELATION_FUNCTION_TEMPLATE): Add constraints.
201         (variant): Remove unnecessary friend declarations for comparison
202         operators.
203         * testsuite/20_util/optional/relops/constrained.cc: New test.
204         * testsuite/20_util/pair/comparison_operators/constrained.cc:
205         New test.
206         * testsuite/20_util/tuple/comparison_operators/constrained.cc:
207         New test.
208         * testsuite/20_util/variant/relops/constrained.cc: New test.
209         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
210         Disable for C++20 and later.
211         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
212         Remove dg-error line for target c++20.
214 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
216         * include/backward/auto_ptr.h: Use https for URL in comment.
217         * include/bits/basic_ios.h: Likewise.
218         * include/std/iostream: Likewise.
220 2024-05-07  Jonathan Wakely  <jwakely@redhat.com>
222         * testsuite/util/testsuite_abi.cc: Update latest versions to
223         new versions that should be used in future.
225 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
227         * src/Makefile.am [ENABLE_SYMVERS_SUN]
228         (libstdc++-symbols.ver-sun): Pass $(libstdc___la_OBJECTS),
229         $(libstdc___la_LIBADD) to make_sunver.pl unmodified.
230         * src/Makefile.in: Regenerate.
232 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
234         * testsuite/lib/dg-options.exp (add_options_for_net_ts)
235         <*-*-solaris2*>: Don't link with -lsocket -lnsl.
237 2024-05-03  Andreas Schwab  <schwab@linux-m68k.org>
239         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
240         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
242 2024-05-01  Jonathan Wakely  <jwakely@redhat.com>
244         PR libstdc++/114891
245         * include/std/generator: Check feature test macro before using
246         is_pointer_interconvertible_v.
248 2024-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
250         * testsuite/lib/gdb-test.exp (gdb-test): Fix regexp.  Quote
251         newlines in logs.
253 2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
255         Backported from master:
256         2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
258         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
259         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
260         Likewise.
261         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
262         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
263         Likewise.
265 2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
267         Backported from master:
268         2024-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
270         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
271         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
272         Likewise.
273         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
274         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
275         Likewise.
277 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
279         PR libstdc++/114863
280         * include/std/format (__formatter_fp::format): Only use
281         _M_localized for finite values.
282         * testsuite/std/format/functions/format.cc: Check localized
283         formatting of NaN and initiny.
285 2024-04-26  Jonathan Wakely  <jwakely@redhat.com>
287         * doc/html/manual/status.html: Regenerate.
288         * doc/xml/manual/status_cxx1998.xml: Adjust whitespace.
289         * doc/xml/manual/status_cxx2011.xml: Likewise.
290         * doc/xml/manual/status_cxx2014.xml: Likewise.
291         * doc/xml/manual/status_cxx2017.xml: Likewise.
292         * doc/xml/manual/status_cxx2020.xml: Likewise.
293         * doc/xml/manual/status_cxx2023.xml: Likewise.
294         * doc/xml/manual/status_cxxtr1.xml: Likewise.
295         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
297 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
299         * scripts/run_doxygen: Rename man pages for nested types.
301 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
303         * include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
305 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
307         * scripts/run_doxygen: Adjust sed pattern to match '\fR' for
308         new man output that Doxygen 1.10 generates.
310 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
312         * doc/doxygen/stdheader.cc (init_map): Add missing headers.
313         * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
314         std::format and std::text_encoding.
316 2024-04-25  Jonathan Wakely  <jwakely@redhat.com>
318         * include/std/variant: Add comment to #include.
320 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
322         PR libstdc++/114803
323         * include/experimental/bits/simd_builtin.h
324         (_SimdBase2::operator __vector_type_t): There is no __builtin()
325         function in _SimdWrapper, instead use its conversion operator.
326         * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
327         test.
329 2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
331         * include/experimental/bits/simd.h: Ignore -Wnarrowing for
332         arm_neon.h.
333         (__int_for_sizeof): Replace tautological compare with checking
334         for invalid template parameter value.
335         * include/experimental/bits/simd_builtin.h (__extract_part):
336         Remove tautological compare by combining two static_assert.
338 2024-04-22  Jakub Jelinek  <jakub@redhat.com>
340         * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
341         * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
342         define on s390.
343         * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
344         Likewise.
345         * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
346         Likewise.
347         * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
348         Likewise.
349         * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
350         Likewise.
352 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
354         * include/bits/refwrap.h (operator<=>): Simplify constraints.
356 2024-04-19  Jonathan Wakely  <jwakely@redhat.com>
358         PR libstdc++/114770
359         * src/c++20/tzdb.cc (do_locate_zone): Support links that have
360         another link as their target.
361         * testsuite/std/time/tzdb/1.cc: Check that all zones and links
362         can be found by locate_zone.
363         * testsuite/std/time/tzdb/links.cc: New test.
365 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
367         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
368         Disable SRA.
370 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
372         * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
373         on aarch64-vxworks.
374         * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
375         aarch64-vxworks.
377 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
379         * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
380         on VxWorks non-RTP.
382 2024-04-17  Jonathan Wakely  <jwakely@redhat.com>
384         * include/std/ostream (println(ostream&)): Define new overload.
385         * include/std/print (println(FILE*), println()): Likewise.
386         * testsuite/27_io/basic_ostream/print/2.cc: New test.
387         * testsuite/27_io/print/1.cc: Remove unused header.
388         * testsuite/27_io/print/3.cc: New test.
390 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
392         * include/experimental/bits/numeric_traits.h: Add include guard.
394 2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
396         PR libstdc++/114750
397         * include/experimental/bits/simd_builtin.h
398         (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
399         scalars if the memory type cannot be vectorized for the target.
401 2024-04-16  Jonathan Wakely  <jwakely@redhat.com>
403         * config/locale/dragonfly/numeric_members.cc: Fix typos in
404         comments.
405         * config/locale/gnu/numeric_members.cc: Likewise.
407 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
409         * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
410         * doc/html/manual/abi.html: Regenerate.
412 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
414         * include/bits/refwrap.h (reference_wrapper): Add comparison
415         operators as proposed by P2944R3.
416         * include/bits/version.def (reference_wrapper): Define.
417         * include/bits/version.h: Regenerate.
418         * include/std/functional: Enable feature test macro.
419         * testsuite/20_util/reference_wrapper/compare.cc: New test.
421 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
423         PR libstdc++/113386
424         * include/bits/stl_pair.h (operator==, operator<=>): Support
425         heterogeneous comparisons, as per LWG 3865.
426         * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
427         test.
429 2024-04-15  Jonathan Wakely  <jwakely@redhat.com>
431         PR libstdc++/93672
432         * src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
433         Treat all negative delimiter values as eof().
434         * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
435         * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
436         test.
438 2024-04-15  Andreas Schwab  <schwab@suse.de>
440         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
442 2024-04-13  H.J. Lu  <hjl.tools@gmail.com>
444         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
445         Updated.
447 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
449         * doc/xml/manual/abi.xml: Add latest library versions.
450         * doc/html/manual/abi.html: Regenerate.
452 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
454         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
455         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
456         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
457         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
458         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
459         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
460         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
461         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
462         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
464 2024-04-11  Jonathan Wakely  <jwakely@redhat.com>
466         PR libstdc++/114692
467         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
468         __basic_file::native_handle to ...
469         (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
470         specialization, which isn't used.
471         * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
472         latest version check.
474 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
476         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
477         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
478         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
479         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
480         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
481         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
482         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
483         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
484         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
486 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
488         * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
489         Adjust input string so that it matches %a with or without a
490         trailing period.
491         * testsuite/std/time/year_month_day/io.cc: Adjust expected
492         format for %x in the fr_FR locale.
494 2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
496         * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
497         Check for EMLINK as well as ELOOP.
498         [__NetBSD__]: Check for EFTYPE as well as ELOOP.
500 2024-04-09  Jonathan Wakely  <jwakely@redhat.com>
502         PR libstdc++/114633
503         * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
504         stream extraction if std::from_chars is not available.
506 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
508         PR libstdc++/114519
509         * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
510         using char instead of char8_t.
511         * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
512         string views, instead of std::u8string_view.
514 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
516         * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
517         no-opts selector for errors that depend on -fchar8_t.
518         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
519         Likewise.
520         * testsuite/20_util/integer_comparisons/greater_neg.cc:
521         Likewise.
522         * testsuite/20_util/integer_comparisons/in_range_neg.cc:
523         Likewise.
524         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
525         Likewise.
526         * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
527         * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
528         Likewise.
529         * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
530         if -fno-char8_t is used.
531         * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
532         Likewise.
533         * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
534         Likewise.
535         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
536         Likewise.
537         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
538         char for u8 literal if char8_t is not available.
539         * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
540         __cpp_char8_t.
541         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
542         * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
543         Remove check for _GLIBCXX_USE_CHAR8_T.
545 2024-04-08  Jonathan Wakely  <jwakely@redhat.com>
547         * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
548         using a struct of that name if -fno-char8_t is active.
549         * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
551 2024-04-03  Jonathan Wakely  <jwakely@redhat.com>
553         PR libstdc++/104606
554         * include/std/optional (operator<=>(const optional<T>&, const U&)):
555         Reverse order of three_way_comparable_with template arguments.
556         * testsuite/20_util/optional/relops/104606.cc: New test.
558 2024-04-02  Jonathan Wakely  <jwakely@redhat.com>
560         PR libstdc++/114519
561         * include/bits/unicode.h (_Utf8_view): Guard with check for
562         char8_t being enabled.
563         (__literal_encoding_is_unicode): Guard use of char8_t with check
564         for it being enabled.
565         * testsuite/std/format/functions/114519.cc: New test.
567 2024-04-02  Patrick Palka  <ppalka@redhat.com>
569         * include/std/ranges (ranges::__detail::_Empty): Rename to ...
570         (ranges::__detail::_Absent): ... this.  Turn into a template
571         parameterized by the absent type _Tp and discriminator _Disc.
572         (ranges::__detail::__maybe_present_t): Add an optional
573         discriminator parameter.
574         (slide_view::_M_cached_begin): Pass a discriminator argument to
575         __maybe_present_t.
576         (slide_view::_M_cached_end): Likewise.
577         * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
578         slide_view<V> is 3 instead 4 pointers.
580 2024-04-02  Jakub Jelinek  <jakub@redhat.com>
582         * acinclude.m4: Fix duplicated words; file file -> file can.
583         * configure.host: Fix duplicated words; the the -> the.
585 2024-03-29  Arsen Arsenović  <arsen@aarsen.me>
587         * testsuite/24_iterators/range_generators/01.cc: Drop GCC
588         Runtime Library Exception.
589         * testsuite/24_iterators/range_generators/02.cc: Drop GCC
590         Runtime Library Exception.
591         * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
592         Runtime Library Exception.
593         * testsuite/24_iterators/range_generators/except.cc: Drop GCC
594         Runtime Library Exception.
595         * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
596         Runtime Library Exception.
597         * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
598         Runtime Library Exception.
599         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
600         Drop GCC Runtime Library Exception from the "You should have
601         received a copy" paragraph.
603 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
605         * include/experimental/bits/simd_x86.h (_S_masked_unary):
606         Cast inputs < 16 bytes to 16 byte vectors before calling the
607         right subtraction builtin. Before returning, truncate to the
608         return vector type.
610 2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
612         * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
613         the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
614         rounding direction argument.
616 2024-03-27  Srinivas Yadav Singanaboina  <vasu.srinivasvasu.14@gmail.com>
618         * include/Makefile.am: Add simd_sve.h.
619         * include/Makefile.in: Add simd_sve.h.
620         * include/experimental/bits/simd.h: Add new SveAbi.
621         * include/experimental/bits/simd_builtin.h: Use
622         __no_sve_deduce_t to support existing Neon Abi.
623         * include/experimental/bits/simd_converter.h: Convert
624         sequentially when sve is available.
625         * include/experimental/bits/simd_detail.h: Define sve
626         specific macro.
627         * include/experimental/bits/simd_math.h: Fallback frexp
628         to execute sequntially when sve is available, to handle
629         fixed_size_simd return type that always uses sve.
630         * include/experimental/simd: Include bits/simd_sve.h.
631         * testsuite/experimental/simd/tests/bits/main.h: Enable
632         testing for sve128, sve256, sve512.
633         * include/experimental/bits/simd_sve.h: New file.
635 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
637         * include/std/generator (generator::_Iterator::operator*): Fix
638         return type.
639         * testsuite/24_iterators/range_generators/iter_deref_return.cc:
640         New test.
642 2024-03-26  Arsen Arsenović  <arsen@aarsen.me>
644         * include/std/generator: Fix _V badname.
646 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
648         * testsuite/19_diagnostics/stacktrace/current.cc: Check for
649         __cpp_lib_stacktrace instead of check for stacktrace ET.
650         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
651         * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
652         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
653         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
654         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
655         * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
656         * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
657         Likewise.
658         * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
659         Remove.
661 2024-03-26  Jonathan Wakely  <jwakely@redhat.com>
663         * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
664         New proc.
665         * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
666         New proc.
667         * testsuite/std/text_encoding/cons.cc: Use new directive to skip
668         the test if the __cpp_lib_text_encoding feature test macro is
669         not defined.
670         * testsuite/std/text_encoding/requirements.cc: Likewise.
672 2024-03-25  Jonathan Wakely  <jwakely@redhat.com>
674         * testsuite/std/text_encoding/requirements.cc: #undef the
675         correct macro.
677 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
679         * include/std/format (formatter): Disable specializations that
680         would allow sequences of narrow characters to be formatted as
681         wchar_t without conversion, as per LWG 3944.
682         * testsuite/std/format/formatter/lwg3944.cc: New test.
684 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
686         * include/bits/utility.h (__is_in_place_index_v): New variable
687         template.
688         * include/std/variant (__not_in_place_tag): Define in terms of
689         variable templates not a class template.
691 2024-03-23  Jonathan Wakely  <jwakely@redhat.com>
693         PR libstdc++/114400
694         * include/std/string_view (operator==): Use std::type_identity_t
695         in C++20 instead of our own __type_identity_t.
697 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
699         PR libstdc++/114401
700         * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
701         release() on node handle instead of just zeroing its pointer.
702         (_Hashtable::_M_reinsert_node_multi): Likewise.
703         (_Hashtable::_M_merge_unique): Likewise.
704         (_Hashtable::_M_merge_multi): Likewise.
705         * include/bits/node_handle.h (_Node_handle_common::release()):
706         New member function.
707         (_Node_handle_common::_Optional_alloc::_M_empty): Remove
708         unnecessary union member.
709         (_Node_handle_common): Declare _Hashtable as a friend.
710         * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
711         Call release() on node handle instead of just zeroing its
712         pointer.
713         (_Rb_tree::_M_reinsert_node_equal): Likewise.
714         (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
715         (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
716         * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
717         * testsuite/23_containers/set/modifiers/114401.cc: New test.
718         * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
719         * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
721 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
723         PR libstdc++/113841
724         * include/bits/allocator.h (allocator<cv T>): Add default
725         constructor to partial specializations for cv-qualified types.
726         * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
727         Constrain so that it's only present if the allocator is default
728         constructible.
729         * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
730         Likewise.
731         * testsuite/23_containers/vector/cons/113841.cc: New test.
733 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
735         * include/bits/stl_construct.h (destroy_at, construct_at): Guard
736         with feature test macros instead of just __cplusplus.
738 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
740         * include/bits/version.def (generator, tuple_like): Move earlier
741         in the file.
742         * include/bits/version.h: Regenerate.
744 2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
746         PR libstdc++/114394
747         * include/std/functional (bind): Use __invoke_result_t instead
748         of result_of::type.
749         * include/std/type_traits (__invoke_result_t): New alias
750         template.
751         * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
753 2024-03-20  François Dumont  <fdumont@gcc.gnu.org>
755         * include/bits/version.def (null_iterators): Remove extra_cond.
756         * include/bits/version.h: Regenerate.
758 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
760         PR libstdc++/114359
761         * include/bits/random.tcc (binomial_distribution::param_type):
762         Ensure arithmetic is done as type double.
763         * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
765 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
767         PR libstdc++/101228
768         * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
769         Define before including <tbb/task.h> then undef afterwards.
771 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
773         * include/Makefile.am [MAINTAINER_MODE]: Add target to
774         automatically update <bits/version.h>.
775         * include/Makefile.in: Regenerate.
777 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
779         * doc/xml/manual/build_hacking.xml: Document generated files.
780         Update list of convenience libraries and sub-directories under
781         the src directory.
782         * doc/html/*: Regenerate.
784 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
786         * include/bits/text_encoding-data.h: Regenerate.
787         * include/bits/unicode-data.h: Regenerate.
788         * scripts/gen_text_encoding_data.py: Fix header of generated
789         file to name the correct script.
791 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
793         * testsuite/util/pstl/test_utils.h: Fix typos in comments.
795 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
797         PR libstdc++/114367
798         * include/bits/stl_bvector.h (_M_allocate): Use allocator's
799         construct function to begin lifetime of words.
801 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
803         * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
804         option for the path to the uninstalled libatomic.
806 2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
808         * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
809         /dev/null, use a temporary file for test executables on Darwin.
811 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
813         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
814         Accept 0 offset advance on value-initialized iterator.
815         * testsuite/23_containers/vector/debug/n3644.cc: New test case.
817 2024-03-18  François Dumont  <fdumont@gcc.gnu.org>
819         * include/debug/safe_local_iterator.tcc
820         (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
821         _M_singular checks.
822         * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
824 2024-03-17  François Dumont  <fdumont@gcc.gnu.org>
826         PR libstdc++/114316
827         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
828         First check if both iterators are value-initialized before checking if
829         singular.
830         * testsuite/23_containers/set/debug/114316.cc: New test case.
831         * testsuite/23_containers/vector/debug/114316.cc: New test case.
833 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
835         PR libstdc++/114325
836         * include/std/format (_Scanner::_M_scan): Pass correct length to
837         __to_chars_10_impl.
838         * testsuite/std/format/functions/format.cc: Check negative
839         integers with empty format-spec.
841 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
843         * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
844         (find_if_not, is_partitioned, partition_point, remove)
845         (remove_if, unique, lower_bound, upper_bound, equal_range)
846         (binary_search, includes, is_sorted, is_sorted_until, minmax)
847         (minmax_element, is_permutation, clamp, find_if, find_first_of)
848         (adjacent_find, count, count_if, search, search_n, min_element)
849         (max_element): Add nodiscard attribute.
850         * include/bits/stl_algobase.h (min, max, lower_bound, equal)
851         (lexicographical_compare, lexicographical_compare_three_way)
852         (mismatch): Likewise.
853         * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
854         * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
855         * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
856         * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
857         * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
858         Likewise.
859         * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
860         * testsuite/25_algorithms/lexicographical_compare/71545.cc:
861         Likewise.
862         * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
863         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
864         Likewise.
865         * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
866         Likewise.
867         * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
868         Likewise.
869         * testsuite/25_algorithms/minmax/3.cc: Likewise.
870         * testsuite/25_algorithms/search/78346.cc: Likewise.
871         * testsuite/25_algorithms/search_n/58358.cc: Likewise.
872         * testsuite/25_algorithms/unique/1.cc: Likewise.
873         * testsuite/25_algorithms/unique/11480.cc: Likewise.
874         * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
875         * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
876         Likewise.
877         * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
878         Likewise.
879         * testsuite/ext/concept_checks.cc: Likewise.
880         * testsuite/ext/is_heap/47709.cc: Likewise.
881         * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
883 2024-03-14  xndcn  <xndchn@gmail.com>
885         * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
886         Clear padding.
887         * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
888         New test.
890 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
892         PR libstdc++/66146
893         * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
894         note about std::call_once.
895         * doc/xml/manual/status_cxx2014.xml: Likewise.
896         * doc/xml/manual/status_cxx2017.xml: Likewise.
897         * doc/html/manual/status.html: Regenerate.
899 2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
901         * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
902         * doc/html/manual/status.html: Regenerate.
903         * include/bits/version.def: Fix typo in comment.
905 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
907         * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
908         to namespace scope.
910 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
912         * doc/xml/manual/debug.xml: Improve docs on debug builds and
913         using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
914         the most relevant ones first.
915         * doc/xml/manual/using.xml: Add comma.
916         * doc/html/*: Regenerate.
918 2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
920         * doc/xml/manual/debug.xml: Document that concept checking might
921         be removed in future.
922         * doc/xml/manual/extensions.xml: Likewise.
924 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
926         PR libstdc++/114240
927         * include/bits/chrono_io.h (_Parser::operator()): Assume
928         hours(0) for a time_point, so that a time is not required
929         to be present.
930         * testsuite/std/time/parse/114240.cc: New test.
932 2024-03-09  Jonathan Wakely  <jwakely@redhat.com>
934         PR libstdc++/114279
935         * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
936         data member.
937         (_Parser::_M_reserved): Reserve padding bits for future use.
938         (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
939         (from_stream): Only allow _M_is_leap_second for utc_time and
940         local_time. Adjust arithmetic for utc_time so that leap seconds
941         are preserved. Use time_point_cast to convert to a possibly
942         lower-precision result type.
943         * testsuite/std/time/parse.cc: Move to ...
944         * testsuite/std/time/parse/parse.cc: ... here.
945         * testsuite/std/time/parse/114279.cc: New test.
947 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
949         * include/bits/chrono_io.h (_Parser::operator()): Use
950         std::from_chars to parse fractional seconds.
952 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
954         PR libstdc++/114244
955         * include/bits/chrono_io.h (_Parser::operator()): Remove
956         redundant uses of duration_cast. Use chrono::round to convert
957         long double value to durations with integer representations.
958         Check represenation type when deciding whether to skip parsing
959         fractional seconds.
960         * testsuite/20_util/duration/114244.cc: New test.
961         * testsuite/20_util/duration/io.cc: Check that a floating-point
962         duration with ratio<1> precision can be parsed.
964 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
966         PR libstdc++/114103
967         * include/bits/version.def (atomic_lock_free_type_aliases): Add
968         extra_cond to check for at least one always-lock-free type.
969         * include/bits/version.h: Regenerate.
970         * include/std/atomic (atomic_signed_lock_free)
971         (atomic_unsigned_lock_free): Only use always-lock-free types.
972         * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
973         atomic counter if lock-free aliases aren't available.
974         * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
975         targets without lock-free word-size compare_exchange.
977 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
979         * include/std/chrono (__get_leap_second_info): Update expiry
980         time for hardcoded list of leap seconds.
981         * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
983 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
985         * testsuite/23_containers/deque/allocator/default_init.cc: Use
986         std::memset instead of __builtin_memset.
987         * testsuite/23_containers/forward_list/allocator/default_init.cc:
988         Likewise.
989         * testsuite/23_containers/list/allocator/default_init.cc:
990         Likewise.
991         * testsuite/23_containers/map/allocator/default_init.cc:
992         Likewise.
993         * testsuite/23_containers/set/allocator/default_init.cc:
994         Likewise.
995         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
996         Likewise.
997         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
998         Likewise.
999         * testsuite/23_containers/vector/allocator/default_init.cc:
1000         Likewise.
1001         * testsuite/23_containers/vector/bool/allocator/default_init.cc:
1002         Likewise.
1003         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
1004         Likewise.
1005         * testsuite/util/atomic/wait_notify_util.h: Likewise.
1007 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
1009         * include/std/format (_Arg_store::_S_make_elt): Add two
1010         static_assert checks to give more user-friendly error messages.
1011         * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
1012         form of "in requirements with" note.
1013         * testsuite/std/format/arguments/args_neg.cc: Check for
1014         user-friendly diagnostics for non-formattable types.
1015         * testsuite/std/format/string_neg.cc: Likewise.
1017 2024-03-04  Jonathan Wakely  <jwakely@redhat.com>
1019         PR libstdc++/114147
1020         * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
1021         Add missing overload of allocator-extended default constructor.
1022         (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
1023         * testsuite/20_util/tuple/cons/114147.cc: New test.
1025 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
1027         * include/std/format (basic_format_arg::handle::__maybe_const_t):
1028         Fix condition to check if const type is formattable.
1029         (basic_format_arg::handle::handle(T&)): Remove redundant
1030         static_assert.
1031         * testsuite/std/format/formatter/basic.cc: New test.
1033 2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
1035         PR libstdc++/113960
1036         * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
1037         (__memcmp_ordered_with): New concept.
1038         (lexicographical_compare_three_way): Use __memcmp_ordered_with
1039         instead of __is_byte_iter. Use correct length for memcmp.
1040         * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
1041         New test.
1043 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1045         PR libstdc++/114152
1046         * include/experimental/scope (scope_exit scope_fail): Make
1047         destructor unconditionally noexcept.
1048         (scope_sucess): Fix noexcept-specifier.
1049         * testsuite/experimental/scopeguard/114152.cc: New test.
1051 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1053         * doc/xml/manual/appendix_contributing.xml: Change URLs to use
1054         https.
1055         * doc/html/manual/*: Regenerate.
1057 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1059         * doc/xml/manual/appendix_contributing.xml: Replace outdated
1060         info on ChangeLog entries.
1061         * doc/html/manual/appendix_contributing.html: Regenerate.
1063 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1065         * include/bits/stl_bvector.h (vector<bool, A>::at): Add
1066         nodiscard.
1067         * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
1068         (operator==, operator<=>, operator<, operator!=, operator>)
1069         (operator<=, operator>=): Likewise.
1070         * include/debug/vector (operator==, operator<=>, operator<)
1071         (operator!=, operator>, operator<=, operator>=): Likewise.
1072         * testsuite/23_containers/vector/nodiscard.cc: New test.
1074 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1076         * include/bits/atomic_base.h (operator|, operator&): Add
1077         noexcept.
1078         * include/bits/fs_fwd.h (operator&, operator|, operator^)
1079         (operator~): Add nodiscard to overloads for copy_options, perms,
1080         perm_options, and directory_options.
1081         * include/bits/ios_base.h (operator&, operator|, operator^)
1082         (operator~): Add nodiscard and noexcept to overloads for
1083         _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
1084         (operator|=, operator&=, operator^=): Add constexpr for C++14.
1085         * include/bits/regex_constants.h (operator&, operator|, operator^)
1086         (operator~): Add nodiscard and noexcept to overloads for
1087         syntax_option_type and match_flag_type.
1088         (operator|=, operator&=, operator^=): Add noexcept.
1089         * include/std/charconv (operator&, operator|, operator^)
1090         (operator~): Add nodiscard to overloads for chars_format.
1091         * include/std/future (operator&, operator|, operator^)
1092         (operator~): Add nodiscard for overloads for launch.
1093         (operator&=, operator|=, operator^=): Add constexpr for C++14.
1094         * include/experimental/bits/fs_fwd.h  (operator&, operator|)
1095         (operator^, operator~): Add nodiscard to overloads for
1096         copy_options, perms, and directory_options.
1097         * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
1098         Add dg-warning for nodiscard warnings.
1099         * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
1100         Likewise.
1101         * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
1102         Likewise.
1103         * testsuite/27_io/filesystem/operations/bitmask_types.cc:
1104         New test.
1106 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1108         * testsuite/27_io/basic_ostream/print/1.cc: Check error
1109         handling.
1110         * testsuite/27_io/print/1.cc: Likewise.
1112 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1114         * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
1115         code path for Cygwin instead of Windows.
1116         * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
1117         * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
1118         for *-*-mingw* targets.
1119         * testsuite/27_io/print/1.cc: Likewise.
1121 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1123         * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
1124         __make_move_if_noexcept_iterator.
1126 2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1128         * include/std/stacktrace: Add nodiscard attribute to all
1129         functions without side effects.
1131 2024-02-20  François Dumont  <fdumont@gcc.gnu.org>
1133         * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
1134         std::__niter_base on res iterator.
1136 2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
1137             Jonathan Wakely  <jwakely@redhat.com>
1139         PR target/112397
1140         * configure: Regenerate.
1141         * configure.ac: Detect if we are building for Darwin.
1142         * libsupc++/Makefile.am: If we are building for Darwin, then
1143         suppress hot/cold partitioning for the array allocators.
1144         * libsupc++/Makefile.in: Regenerated.
1146 2024-02-17  François Dumont  <fdumont@gcc.gnu.org>
1148         * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
1149         definitions for __gnu_debug::_Safe_iterator.
1150         * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
1152 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
1154         PR libstdc++/87744
1155         PR libstdc++/113961
1156         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1157         line number.
1159 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
1161         PR libstdc++/87744
1162         PR libstdc++/113931
1163         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1164         line number.
1166 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
1168         * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
1169         * doc/html/manual/debug_mode_using.html: Regenerate.
1171 2024-02-16  Jonathan Wakely  <jwakely@redhat.com>
1173         * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
1174         * doc/html/manual/test.html: Regenerate.
1176 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1178         PR libstdc++/113806
1179         * include/std/bitset (bitset::operator>>=): Remove redundant
1180         call to _M_do_sanitize.
1182 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1184         PR libstdc++/113807
1185         * include/std/bitset (bitset::set()): Use memset instead of a
1186         loop over the individual words.
1188 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1190         PR libstdc++/113811
1191         * include/bits/stl_algo.h (__rotate): Use unsigned values for
1192         division.
1194 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1196         PR libstdc++/99117
1197         * include/std/valarray (valarray::operator=(const _Expr&)):
1198         Use loop to copy instead of __valarray_copy with _Array.
1199         * testsuite/26_numerics/valarray/99117.cc: New test.
1201 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1203         * src/c++20/tzdata.zi: Import new file from 2024a release.
1204         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
1205         Update expiry date for leap seconds list.
1207 2024-02-15  Jonathan Wakely  <jwakely@redhat.com>
1209         PR libstdc++/87744
1210         * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
1211         Define specialization for 64-bit generators with
1212         non-power-of-two modulus and large constants.
1213         (__mod): Use if constexpr unconditionally.
1214         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1215         line number.
1216         * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
1217         New test.
1219 2024-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
1221         * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
1222         version 1.
1223         * doc/html/manual/status.html: Regenerate.
1225 2024-02-12  Paul Keir  <paul.keir@uws.ac.uk>
1227         PR libstdc++/113294
1228         * include/bits/basic_string.h (basic_string::operator=): Use
1229         _M_use_local_data() instead of _M_local_buf on the moved-from
1230         string.
1231         * testsuite/21_strings/basic_string/modifiers/constexpr.cc
1232         (test_move): New test.
1234 2024-02-09  Ken Matsui  <kmatsui@gcc.gnu.org>
1236         * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
1237         Removed.
1238         * include/std/type_traits (is_same): Use
1239         _GLIBCXX_USE_BUILTIN_TRAIT instead of
1240         _GLIBCXX_HAVE_BUILTIN_IS_SAME.
1241         (is_same_v): Likewise.
1243 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1245         * include/bits/shared_ptr_atomic.h: Fix typo in comment.
1247 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1249         PR libstdc++/100147
1250         * include/bits/gslice.h (operator=): Add comment about lack of
1251         self-assignment check.
1253 2024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1255         * include/tr2/type_traits (bases, direct_bases): Use
1256         __has_builtin to check if required built-ins are supported.
1258 2024-02-07  Patrick Palka  <ppalka@redhat.com>
1260         PR testsuite/113710
1261         PR c++/113814
1262         * include/bits/stl_pair.h (tuple_element): Add forward
1263         declaration of the partial specialization for tuple.
1265 2024-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
1267         * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
1268         for other environments.
1270 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1272         * include/std/format (__format::_Spec::_M_reserved): Define new
1273         bit-field members to reserve padding bits for future extensions.
1275 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1277         * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
1278         instead of libstdc++fs.a.
1279         * src/experimental/Makefile.in: Regenerate.
1280         * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
1281         well.
1282         * src/filesystem/Makefile.in: Regenerate.
1284 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
1286         * include/bits/text_encoding-data.h: Regenerate.
1287         * include/bits/unicode-data.h: Regenerate.
1288         * scripts/gen_text_encoding_data.py: Add copyright and license
1289         text to the output.
1291 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1293         PR libstdc++/113335
1294         * include/bits/std_function.h (__function_guide_helper): Add
1295         partial specialization for explicit object member functions, as
1296         per LWG 3617.
1297         * testsuite/20_util/function/cons/deduction_c++23.cc: Check
1298         explicit object member functions.
1299         * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
1300         Likewise.
1302 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1304         * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
1306 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1308         * include/experimental/internet (network_v6::network): Define.
1309         (network_v6::hosts): Finish implementing.
1310         (network_v6::to_string): Do not concatenate std::string to
1311         arbitrary std::basic_string specialization.
1312         * testsuite/experimental/net/internet/network/v6/cons.cc: New
1313         test.
1315 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1317         PR libstdc++/90276
1318         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
1319         comparison function to use less-than instead of equality.
1321 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1323         PR libstdc++/90276
1324         * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
1325         perfect forwarding for iterator arguments.
1327 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1329         * include/std/string_view (basic_string_view(R&&)): Remove
1330         constraint that traits_type must be the same, as per LWG 3857.
1331         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
1332         Explicit conversion between different specializations should be
1333         allowed.
1334         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
1335         Likewise.
1337 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1339         * include/std/syncstream (basic_osyncstream::operator=): Remove
1340         noexcept, as per LWG 3867.
1342 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1344         * include/std/generator (promise_type::yield_value): Remove
1345         noexcept from fourth overload, as per LWG 3894.
1347 2024-02-01  Patrick Palka  <ppalka@redhat.com>
1349         PR libstdc++/113309
1350         PR libstdc++/109203
1351         * include/bits/ranges_util.h (__detail::__pair_like): Don't
1352         define in C++23 mode.
1353         (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
1354         (__detail::__is_subrange<subrange>): Moved from <ranges>.
1355         (__detail::__is_tuple_like_v<subrange>): Likewise.
1356         * include/bits/stl_iterator.h: Include <bits/utility.h> for
1357         C++23.
1358         (__different_from): Move to <concepts>.
1359         (__iter_key_t): Adjust for C++23 as per P2165R4.
1360         (__iter_val_t): Likewise.
1361         * include/bits/stl_pair.h (pair, array): Forward declare.
1362         (get): Forward declare all overloads relevant to P2165R4
1363         tuple-like constructors.
1364         (__is_tuple_v): Define for C++23.
1365         (__is_tuple_like_v): Define for C++23.
1366         (__tuple_like): Define for C++23 as per P2165R4.
1367         (__pair_like): Define for C++23 as per P2165R4.
1368         (__eligibile_tuple_like): Define for C++23.
1369         (__eligibile_pair_like): Define for C++23.
1370         (pair::_S_constructible_from_pair_like): Define for C++23.
1371         (pair::_S_convertible_from_pair_like): Define for C++23.
1372         (pair::_S_dangles_from_pair_like): Define for C++23.
1373         (pair::pair): Define overloads taking a tuple-like type for
1374         C++23 as per P2165R4.
1375         (pair::_S_assignable_from_tuple_like): Define for C++23.
1376         (pair::_S_const_assignable_from_tuple_like): Define for C++23.
1377         (pair::operator=): Define overloads taking a tuple-like type for
1378         C++23 as per P2165R4.
1379         * include/bits/utility.h (ranges::__detail::__is_subrange):
1380         Moved from <ranges>.
1381         * include/bits/version.def (tuple_like): Define for C++23.
1382         * include/bits/version.h: Regenerate.
1383         * include/std/concepts (__different_from): Moved from
1384         <bits/stl_iterator.h>.
1385         (ranges::__swap::__adl_swap): Clarify which __detail namespace.
1386         * include/std/map (__cpp_lib_tuple_like): Define C++23.
1387         * include/std/ranges (__detail::__is_subrange): Moved to
1388         <bits/utility.h>.
1389         (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
1390         (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
1391         (__detail::__tuple_or_pair): Remove as per P2165R4.  Replace all
1392         uses with plain tuple as per P2165R4.
1393         * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
1394         (__tuple_like_tag_t): Define for C++23.
1395         (__tuple_cmp): Forward declare for C++23.
1396         (_Tuple_impl::_Tuple_impl): Define overloads taking
1397         __tuple_like_tag_t and a tuple-like type for C++23.
1398         (_Tuple_impl::_M_assign): Likewise.
1399         (tuple::__constructible_from_tuple_like): Define for C++23.
1400         (tuple::__convertible_from_tuple_like): Define for C++23.
1401         (tuple::__dangles_from_tuple_like): Define for C++23.
1402         (tuple::tuple): Define overloads taking a tuple-like type for
1403         C++23 as per P2165R4.
1404         (tuple::__assignable_from_tuple_like): Define for C++23.
1405         (tuple::__const_assignable_from_tuple_like): Define for C++23.
1406         (tuple::operator=): Define overloads taking a tuple-like type
1407         for C++23 as per P2165R4.
1408         (tuple::__tuple_like_common_comparison_category): Define for C++23.
1409         (tuple::operator<=>): Define overload taking a tuple-like type
1410         for C++23 as per P2165R4.
1411         (array, get): Forward declarations moved to <bits/stl_pair.h>.
1412         (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
1413         (apply): Likewise.
1414         (make_from_tuple): Likewise.
1415         (__tuple_like_common_reference): Define for C++23.
1416         (basic_common_reference): Adjust as per P2165R4.
1417         (__tuple_like_common_type): Define for C++23.
1418         (common_type): Adjust as per P2165R4.
1419         * include/std/unordered_map (__cpp_lib_tuple_like): Define for
1420         C++23.
1421         * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
1422         * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
1423         and 2-tuple interchangeably.
1424         (test05): New test.
1425         * testsuite/20_util/pair/p2165r4.cc: New test.
1426         * testsuite/20_util/tuple/p2165r4.cc: New test.
1428 2024-02-01  Patrick Palka  <ppalka@redhat.com>
1430         * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
1431         factored out from ...
1432         (pair::operator=): ... the constraints of the const overloads.
1434 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
1436         * include/bits/version.tpl: Do not use def-file-line for each
1437         macro being defined.
1438         * include/bits/version.h: Regenerate.
1440 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
1442         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
1443         dg-error pattern.
1444         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
1445         Likewise.
1446         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
1447         Likewise.
1448         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
1449         Likewise.
1450         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
1451         Likewise.
1452         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
1453         Likewise.
1454         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
1455         Likewise.
1456         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
1457         Likewise.
1458         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
1459         Likewise.
1461 2024-02-01  Jonathan Wakely  <jwakely@redhat.com>
1463         * include/experimental/internet (network_v4::to_string()):
1464         Remove lambda and use of resize_and_overwrite.
1466 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1468         * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
1469         needed for newlocale.
1470         * configure: Regenerate.
1471         * src/c++26/text_encoding.cc: Use <xlocale.h>.
1473 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1474             Ewan Higgs  <ewan.higgs@gmail.com>
1476         * include/bits/text_encoding-data.h: Regenerate.
1477         * scripts/gen_text_encoding_data.py: Add extra_aliases dict
1478         containing "ASCII".
1479         * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
1481 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1483         * doc/xml/manual/using.xml: Update tables of supported headers.
1484         * doc/html/*: Regenerate.
1486 2024-01-31  Jonathan Wakely  <jwakely@redhat.com>
1488         * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
1489         -Wshift-count-overflow warning.
1491 2024-01-30  Jonathan Wakely  <jwakely@redhat.com>
1493         * testsuite/std/time/clock/gps/io.cc: Fix expected result in
1494         assertion and call test_format() from main.
1496 2024-01-29  François Dumont  <fdumont@gcc.gnu.org>
1498         * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
1499         _GLIBCXX_DEBUG_BACKTRACE macro.
1501 2024-01-24  Huanghui Nie  <nnnjkk@gmail.com>
1502             Théo Papadopoulo   <papadopoulo@gmail.com>
1504         * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
1505         _M_before_begin check and cleanup implementation.
1507 2024-01-22  Jonathan Wakely  <jwakely@redhat.com>
1509         * testsuite/std/time/clock/file/io.cc: Fix expected result in
1510         assertion and call test_format() from main.
1512 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
1514         PR libstdc++/113500
1515         * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
1516         printing of subseconds with floating-point rep.
1517         (__formatter_chrono::_M_format_to_ostream): Do not write
1518         time_point specializations directly to the ostream.
1519         (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
1520         empty chrono-spec if the type fails to meet the constraints for
1521         writing to an ostream with operator<<.
1522         * testsuite/std/time/clock/file/io.cc: Check formatting
1523         non-integral times with empty chrono-specs.
1524         * testsuite/std/time/clock/gps/io.cc: Likewise.
1525         * testsuite/std/time/clock/utc/io.cc: Likewise.
1526         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1528 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
1530         * include/bits/chrono.h (__file_clock::from_sys)
1531         (__file_clock::to_sys, __file_clock::_S_from_sys)
1532         (__file_clock::_S_to_sys): Use common_type for return type.
1533         * testsuite/std/time/clock/file/members.cc: Check round trip
1534         conversion for time with lower precision that seconds.
1536 2024-01-21  Jonathan Wakely  <jwakely@redhat.com>
1538         PR libstdc++/113512
1539         * include/std/format (__formatter_fp::format): Fix logic for
1540         alternate forms.
1541         * testsuite/std/format/functions/format.cc: Check buggy cases of
1542         alternate forms with g presentation type.
1544 2024-01-20  Marek Polacek  <polacek@redhat.com>
1546         PR c++/111410
1547         * include/std/ranges: Add #pragma to disable -Wdangling-reference with
1548         std::ranges::views::__adaptor::operator|.
1550 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
1552         * include/std/format (_Spec::_M_parse_fill_and_align): Do not
1553         use CTAD for _Utf32_view.
1555 2024-01-19  Jonathan Wakely  <jwakely@redhat.com>
1557         PR libstdc++/108822
1558         * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
1559         wrong fold-operator.
1560         * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
1561         element and three elements. Check allocator-extended
1562         constructors.
1564 2024-01-19  Patrick Palka  <ppalka@redhat.com>
1566         * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
1567         <print> and <text_encoding> for C++23 and C++26 respectively.
1569 2024-01-18  Patrick Palka  <ppalka@redhat.com>
1571         * include/bits/stl_pair.h [__cplusplus > 202002L]:
1572         Guard P2321R2 changes with __glibcxx_ranges_zip instead.
1574 2024-01-18  Patrick Palka  <ppalka@redhat.com>
1576         * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
1577         changes with __cpp_lib_ranges_zip instead.
1579 2024-01-18  Patrick Palka  <ppalka@redhat.com>
1581         PR libstdc++/109536
1582         * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
1583         Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
1584         * include/debug/safe_iterator.h
1585         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
1586         (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
1587         (_Safe_iterator::operator=): Use them around the code path that
1588         defines a variable of type __gnu_cxx::__scoped_lock.
1589         (_Safe_iterator::operator++): Likewise.
1590         (_Safe_iterator::operator--): Likewise.
1591         (_Safe_iterator::operator+=): Likewise.
1592         (_Safe_iterator::operator-=): Likewise.
1593         * testsuite/23_containers/vector/element_access/constexpr.cc
1594         (test_iterators): Test more iterator operations.
1595         * testsuite/23_containers/vector/bool/element_access/constexpr.cc
1596         (test_iterators): Likewise.
1597         * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
1598         Remove.
1600 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
1602         * include/bits/unicode.h (__charset_alias_match): Initialize
1603         __var_a and __var_b.
1605 2024-01-18  Jonathan Wakely  <jwakely@redhat.com>
1607         PR libstdc++/113450
1608         * testsuite/std/format/functions/format.cc: Use signed char
1609         instead of int8_t.
1611 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
1613         PR libstdc++/113318
1614         * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
1615         (GLIBCXX_CHECK_TEXT_ENCODING): Define.
1616         * config.h.in: Regenerate.
1617         * configure: Regenerate.
1618         * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
1619         * include/Makefile.am: Add new headers.
1620         * include/Makefile.in: Regenerate.
1621         * include/bits/locale_classes.h (locale::encoding): Declare new
1622         member function.
1623         * include/bits/unicode.h (__charset_alias_match): New function.
1624         * include/bits/text_encoding-data.h: New file.
1625         * include/bits/version.def (text_encoding): Define.
1626         * include/bits/version.h: Regenerate.
1627         * include/std/text_encoding: New file.
1628         * src/Makefile.am: Add new subdirectory.
1629         * src/Makefile.in: Regenerate.
1630         * src/c++26/Makefile.am: New file.
1631         * src/c++26/Makefile.in: New file.
1632         * src/c++26/text_encoding.cc: New file.
1633         * src/experimental/Makefile.am: Include c++26 convenience
1634         library.
1635         * src/experimental/Makefile.in: Regenerate.
1636         * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
1637         printer.
1638         * scripts/gen_text_encoding_data.py: New file.
1639         * testsuite/22_locale/locale/encoding.cc: New test.
1640         * testsuite/ext/unicode/charset_alias_match.cc: New test.
1641         * testsuite/std/text_encoding/cons.cc: New test.
1642         * testsuite/std/text_encoding/members.cc: New test.
1643         * testsuite/std/text_encoding/requirements.cc: New test.
1645 2024-01-17  Jonathan Wakely  <jwakely@redhat.com>
1647         * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
1648         Do not use CTAD for _Utf32_view.
1649         (__format_width, __truncate): Do not use CTAD.
1650         (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
1651         (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
1653 2024-01-17  Patrick Palka  <ppalka@redhat.com>
1655         * include/std/ranges (views::_CartesianProduct::operator()):
1656         Adjust identity case as per P2540R1.
1657         * testsuite/std/ranges/cartesian_product/1.cc (test01):
1658         Adjust expected result of the identity case.
1660 2024-01-15  Patrick Palka  <ppalka@redhat.com>
1662         * include/std/variant (__detail::__variant::_Variadic_union):
1663         Add bool __trivially_destructible template parameter.
1664         (__detail::__variant::_Variadic_union::~_Variadic_union):
1665         Use __trivially_destructible in constraints instead.
1666         (__detail::__variant::_Variant_storage): Pass
1667         __trivially_destructible value to _Variadic_union.
1669 2024-01-15  Patrick Palka  <ppalka@redhat.com>
1671         * include/bits/stl_iterator.h (const_iterator): Define conversion
1672         operators as per P2836R1.
1673         * include/bits/version.def (ranges_as_const): Update value.
1674         * include/bits/version.h: Regenerate.
1675         * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
1676         * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
1677         value of __cpp_lib_ranges_as_const.
1678         * testsuite/std/ranges/version_c++23.cc: Likewise.
1680 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
1682         PR libstdc++/108822
1683         * include/std/tuple (__assignable, __is_nothrow_assignable):
1684         Move pre-C++20 definitions adjacent to their use.
1686 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
1688         PR testsuite/113366
1689         * include/std/format (basic_format_arg): Use __formattable
1690         variable template instead of __format::__formattable_with
1691         concept.
1693 2024-01-15  Jonathan Wakely  <jwakely@redhat.com>
1695         * src/c++20/tzdata.zi: Import new file from 2023d release.
1696         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
1697         Update expiry date for leap seconds list.
1699 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
1701         PR libstdc++/108822
1702         * include/std/tuple (tuple): Add checks for dangling references.
1703         Reimplement constraints and constant expressions using C++20
1704         features.
1705         * include/std/type_traits [C++20]
1706         (__is_implicitly_default_constructible_v): Define.
1707         (__is_implicitly_default_constructible): Use variable template.
1708         * testsuite/20_util/tuple/dangling_ref.cc: New test.
1710 2024-01-13  Patrick Palka  <ppalka@redhat.com>
1712         PR libstdc++/108827
1713         PR libstdc++/111327
1714         * include/bits/version.def (bind_back): Define.
1715         * include/bits/version.h: Regenerate.
1716         * include/std/functional (_Bind_back): Define for C++23.
1717         (bind_back): Likewise.
1718         * testsuite/20_util/function_objects/bind_back/1.cc: New test
1719         (adapted from corresponding bind_front test).
1720         * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
1722 2024-01-13  Patrick Palka  <ppalka@redhat.com>
1724         * include/std/functional (_Bind_front): Remove =default special
1725         member function declarations.
1726         (_Bind_front::operator()): Implement using C++23 deducing this
1727         when available.
1728         * testsuite/20_util/function_objects/bind_front/111327.cc:
1729         Adjust testcase to expect better errors in C++23 mode.
1731 2024-01-13  Patrick Palka  <ppalka@redhat.com>
1733         * include/std/ranges (views::__adaptor::operator|): Perform
1734         perfect forwarding of arguments.
1735         (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
1736         first argument to _Partial.
1737         (views::__adaptor::_Partial::_Partial): Likewise.  Add dummy
1738         first parameter.
1739         (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
1740         of arguments.
1741         (to): Pass dummy first argument to _Partial.
1743 2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
1745         PR libstdc++/107466
1746         * include/bits/random.tcc (subtract_with_carry_engine::seed):
1747         Implement proposed resolution of LWG 4014.
1748         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1749         line number.
1750         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1751         Check for expected result of 64-bit engine with seed that
1752         doesn't fit in 32-bits.
1754 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
1756         PR libstdc++/113320
1757         * include/std/format (__format::_Runtime_format_string): Add
1758         constructor and disable copy operations.
1759         (basic_format_string(_Runtime_format_string)): Add noexcept and
1760         take parameter by value not rvalue reference.
1761         (runtime_format): Add noexcept.
1762         * testsuite/std/format/runtime_format.cc: Check noexcept. Check
1763         that construction is only possible from prvalues, not xvalues.
1765 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
1767         PR libstdc++/105505
1768         * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
1769         default template arguments, as per P1951R1.
1770         * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
1772 2024-01-12  Jonathan Wakely  <jwakely@redhat.com>
1774         * include/std/format (__format::_Arg_store): Fix PR number in
1775         comment. Simplify preprocessor code.
1777 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1779         * doc/xml/manual/evolution.xml: Fix spelling.
1780         * doc/html/manual/api.html: Regenerate.
1782 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1784         * doc/xml/manual/evolution.xml: Document addition of
1785         libstdc++exp.a.
1786         * doc/html/*: Regenerate.
1788 2024-01-11  Marcus Haehnel  <marcus.haehnel@kernkonzept.com>
1790         * libsupc++/eh_unex_handler.cc: Adjust definition type to
1791         declaration.
1793 2024-01-11  Michael Levine  <mlevine55@bloomberg.net>
1795         * include/std/ranges (__glibcxx_want_ranges_iota): Remove
1796         duplicate definition.
1798 2024-01-11  François Dumont  <fdumont@gcc.gnu.org>
1800         PR libstdc++/112477
1801         * src/c++11/debug.cc
1802         (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
1803         sequence.
1804         (_Safe_iterator_base::_M_attach_single): Likewise.
1805         (_Safe_local_iterator_base::_M_attach): Likewise.
1806         (_Safe_local_iterator_base::_M_attach_single): Likewise.
1807         * testsuite/23_containers/map/debug/112477.cc: New test case.
1809 2024-01-11  Patrick Palka  <ppalka@redhat.com>
1811         * include/bits/move.h (__like_t): Define in C++23 mode.
1812         * include/std/ranges (views::__adaptor::Partial::operator()):
1813         Implement using C++23 deducing this when available.
1814         (views::__adaptor::_Pipe::operator()): Likewise.
1815         * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
1816         accept new "no match for call" errors issued in C++23 mode.
1817         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
1819 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1821         * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
1822         Add printer for std::integral_constant.
1823         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1825 2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1827         PR libstdc++/113258
1828         * libsupc++/new_opa.cc: Prefer to use posix_memalign if
1829         available.
1831 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1833         * src/filesystem/ops-common.h (stat_type): Use using.
1835 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1837         PR libstdc++/113250
1838         * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
1839         * src/filesystem/ops.cc (fs::equivalent): Likewise.
1840         * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
1841         error codes.
1842         * testsuite/experimental/filesystem/operations/equivalent.cc:
1843         Likewise.
1845 2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1847         * include/std/type_traits (is_compound): Do not use __not_.
1848         (is_compound_v): Use is_fundamental_v instead.
1850 2024-01-11  Patrick Palka  <ppalka@redhat.com>
1852         * include/bits/utility.h (_Nth_type): Use
1853         _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
1855 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
1857         * include/bits/unicode-data.h: Regenerate.
1858         * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
1859         by one error.
1860         (__incb_property): Add missing check for values before the
1861         first edge.
1862         (__is_extended_pictographic): Invert return values to fix
1863         copy&pasted logic.
1864         (_Grapheme_cluster_view::_Iterator): Remove second iterator
1865         member and find end of cluster lazily.
1866         * testsuite/ext/unicode/grapheme_view.cc: New test.
1867         * testsuite/ext/unicode/properties.cc: New test.
1868         * testsuite/ext/unicode/view.cc: New test.
1870 2024-01-09  Andreas Schwab  <schwab@linux-m68k.org>
1872         * scripts/extract_symvers.in: Require final colon to only match
1873         .dsynsym in the header of the dynamic symtab.
1875 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
1877         * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
1878         handling of string returned from std::format.
1879         (__formatter_chrono::_M_R_T): Likewise.
1881 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1883         * include/bits/unicode.h (__null_sentinel): Remove.
1884         * testsuite/17_intro/names.cc: Add __null_sentinel.
1886 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1888         * include/std/format (__format::_Runtime_format_string): Define
1889         new class template.
1890         (basic_format_string): Add non-consteval constructor for runtime
1891         format strings.
1892         (runtime_format): Define new function for C++26.
1893         * testsuite/std/format/runtime_format.cc: New test.
1895 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1897         * include/bits/chrono_io.h (__formatter_chrono): Always use
1898         lvalue arguments to make_format_args.
1899         * include/std/format (make_format_args): Change parameter pack
1900         from forwarding references to lvalue references. Remove use of
1901         remove_reference_t which is now unnecessary.
1902         (format_to, formatted_size): Remove incorrect forwarding of
1903         arguments.
1904         * include/std/ostream (print): Remove forwarding of arguments.
1905         * include/std/print (print): Likewise.
1906         * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
1907         make_format_args.
1908         * testsuite/std/format/arguments/args.cc: Likewise.
1909         * testsuite/std/format/arguments/lwg3810.cc: Likewise.
1910         * testsuite/std/format/functions/format.cc: Likewise.
1911         * testsuite/std/format/functions/vformat_to.cc: Likewise.
1912         * testsuite/std/format/string.cc: Likewise.
1913         * testsuite/std/time/day/io.cc: Likewise.
1914         * testsuite/std/time/month/io.cc: Likewise.
1915         * testsuite/std/time/weekday/io.cc: Likewise.
1916         * testsuite/std/time/year/io.cc: Likewise.
1917         * testsuite/std/time/year_month_day/io.cc: Likewise.
1918         * testsuite/std/format/arguments/args_neg.cc: New test.
1920 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1922         * include/Makefile.am: Add new headers.
1923         * include/Makefile.in: Regenerate.
1924         * include/bits/unicode.h: New file.
1925         * include/bits/unicode-data.h: New file.
1926         * include/std/format: Include <bits/unicode.h>.
1927         (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
1928         (_Spec::_M_fill): Change type to char32_t.
1929         (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
1930         instead of a single character.
1931         (__write_padded): Change __fill_char parameter to char32_t and
1932         encode it into the output.
1933         (__formatter_str::format): Use new __unicode::__field_width and
1934         __unicode::__truncate functions.
1935         * include/std/ostream: Adjust namespace qualification for
1936         __literal_encoding_is_utf8.
1937         * include/std/print: Likewise.
1938         * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
1939         * testsuite/ext/unicode/view.cc: New test.
1940         * testsuite/std/format/functions/format.cc: Add missing examples
1941         from the standard demonstrating alignment with non-ASCII
1942         characters. Add examples checking correct handling of extended
1943         grapheme clusters.
1945 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
1947         * include/bits/version.def (format_uchar): Define.
1948         * include/bits/version.h: Regenerate.
1949         * include/std/format (formatter<C, C>::format): Check for
1950         _Pres_c and call _M_format_character directly. Cast C to its
1951         unsigned equivalent for formatting as an integer.
1952         (formatter<char, wchar_t>::format): Likewise.
1953         (basic_format_arg(T&)): Store char arguments as unsigned char
1954         for formatting to a wide string.
1955         * testsuite/std/format/functions/format.cc: Adjust test. Check
1956         formatting of
1958 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
1960         PR libstdc++/112997
1961         * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
1962         parameter to void*.
1964 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
1966         * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
1968 2024-01-07  Jonathan Wakely  <jwakely@redhat.com>
1970         * include/std/type_traits (is_trivially_destructible_v): Use
1971         built-in directly when concepts are supported.
1972         * testsuite/20_util/is_trivially_destructible/value_v.cc: New
1973         test.
1975 2024-01-06  Gwenole Beauchesne  <gb.devel@gmail.com>
1977         * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
1978         nonnull arguments to strtoimax() and wcstoimax() functions.
1980 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1982         * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
1983         size and check for overflows in arithmetic.
1984         (path::operator/=(const path&)): Remove redundant exponential
1985         growth calculation.
1987 2024-01-05  Martin Küttler  <martin.kuettler@kernkonzept.com>
1989         * src/c++17/fs_path.cc (path::_List::reserve): Avoid
1990         floating-point arithmetic.
1992 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1994         PR libstdc++/113241
1995         * include/std/type_traits (is_convertible_v): Guard use of
1996         built-in with preprocessor check.
1998 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
2000         PR libstdc++/113200
2001         * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
2002         __builtin_constant_p to check for unrelated pointers that cannot
2003         be compared during constant evaluation.
2004         * testsuite/21_strings/char_traits/requirements/113200.cc: New
2005         test.
2007 2024-01-05  Cassio Neri  <cassio.neri@gmail.com>
2009         * include/std/chrono: Fix + and - for months and weekdays.
2010         * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
2011         * testsuite/std/time/month/2.cc: New test for extreme values.
2012         * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
2013         * testsuite/std/time/weekday/2.cc: New test for extreme values.
2015 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
2017         PR libstdc++/113099
2018         * include/bits/locale_classes.tcc (__try_use_facet): Use
2019         if-constexpr for C++11 and up.
2021 2024-01-05  Ken Matsui  <kmatsui@gcc.gnu.org>
2023         * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
2025 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
2027         * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
2028         reported by Will Hawkins <hawkinsw@obs.cr>.
2030 2024-01-04  Arsen Arsenović  <arsen@aarsen.me>
2032         * include/std/generator (_Stateless_alloc): Rename typename _A
2033         to _All.
2035 2024-01-03  Patrick Palka  <ppalka@redhat.com>
2037         PR testsuite/113175
2038         * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
2039         'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
2040         (test03): Likewise.
2043 Copyright (C) 2024 Free Software Foundation, Inc.
2045 Copying and distribution of this file, with or without modification,
2046 are permitted in any medium without royalty provided the copyright
2047 notice and this notice are preserved.