1 2023-12-18 Patrick Palka <ppalka@redhat.com>
5 * include/std/ranges (__detail::_To::operator()): Add constraints.
6 (__detail::_To2::operator()): Likewise.
7 * testsuite/std/ranges/conv/1.cc (test_sfinae): New test.
8 (test_composition): New test.
10 2023-12-16 Jonathan Wakely <jwakely@redhat.com>
12 * src/c++23/print.cc (__open_terminal(FILE*)): Avoid fileno
15 2023-12-16 H.J. Lu <hjl.tools@gmail.com>
17 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
20 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
22 * include/std/type_traits (remove_pointer): Use __remove_pointer
25 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
27 * include/std/type_traits (is_object): Use __is_object built-in
29 (is_object_v): Likewise.
31 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
33 * include/std/type_traits (is_function): Use __is_function
35 (is_function_v): Likewise. Optimize its implementation. Move
36 this under is_const_v as this depends on is_const_v.
38 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
40 * include/std/type_traits (is_reference): Use __is_reference
42 (is_reference_v): Likewise.
44 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
46 * include/std/type_traits (is_member_object_pointer): Use
47 __is_member_object_pointer built-in trait.
48 (is_member_object_pointer_v): Likewise.
50 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
52 * include/std/type_traits (is_member_function_pointer): Use
53 __is_member_function_pointer built-in trait.
54 (is_member_function_pointer_v): Likewise.
56 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
58 * include/std/type_traits (is_member_pointer): Use
59 __is_member_pointer built-in trait.
60 (is_member_pointer_v): Likewise.
62 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
64 * include/std/type_traits (is_scoped_enum): Use
65 __is_scoped_enum built-in trait.
66 (is_scoped_enum_v): Likewise.
68 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
70 * include/std/type_traits (is_bounded_array_v): Use
71 __is_bounded_array built-in trait.
73 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
75 * include/std/type_traits (is_array): Use __is_array built-in
77 (is_array_v): Likewise.
79 2023-12-15 Jonathan Wakely <jwakely@redhat.com>
81 * src/c++23/print.cc (__write_to_terminal) [_WIN32]: If handle
82 does not refer to the console then just write to it using normal
84 * testsuite/27_io/print/2.cc (as_printed_to_terminal): Print
85 error message on failure.
86 (test_utf16_transcoding): Adjust for as_printed_to_terminal
87 modifying its argument.
89 2023-12-15 Jonathan Wakely <jwakely@redhat.com>
91 * include/std/ostream (vprint_unicode) [_WIN32]: Use RAII guard.
92 (vprint_unicode) [!_WIN32]: Just call vprint_nonunicode.
93 * include/std/print (vprint_unicode) [!_WIN32]: Likewise.
95 2023-12-15 Jonathan Wakely <jwakely@redhat.com>
97 * include/std/ostream (vprint_nonunicode, vprint_unicode): Do
99 * testsuite/27_io/basic_ostream/print/1.cc: Adjust expected
102 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
105 * include/Makefile.am: Add new header.
106 * include/Makefile.in: Regenerate.
107 * include/bits/version.def (__cpp_lib_print): Define.
108 * include/bits/version.h: Regenerate.
109 * include/std/format (__literal_encoding_is_utf8): New function.
110 (_Seq_sink::view()): New member function.
111 * include/std/ostream (vprintf_nonunicode, vprintf_unicode)
112 (print, println): New functions.
113 * include/std/print: New file.
114 * src/c++23/Makefile.am: Add new source file.
115 * src/c++23/Makefile.in: Regenerate.
116 * src/c++23/print.cc: New file.
117 * testsuite/27_io/basic_ostream/print/1.cc: New test.
118 * testsuite/27_io/print/1.cc: New test.
119 * testsuite/27_io/print/2.cc: New test.
121 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
123 * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): Add
124 missing header to configure test. Check correct variable.
125 * config/io/basic_file_stdio.cc (__basic_file<char>::native_handle):
127 * configure: Regenerate.
128 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: Do not
129 call CloseHandle on the native handle.
130 * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc:
133 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
135 * include/std/format (_Seq_sink): Fix missing argument in
136 discarded statement. Add comments, likely/unlikely attributes
137 and debug assertions as sanity checks.
139 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
141 * testsuite/27_io/objects/char/2.cc: Use dg-output.
142 * testsuite/27_io/objects/wchar_t/2.cc: Use dg-output.
144 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
146 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix order
147 of arguments to std::format_to.
148 * testsuite/20_util/duration/io.cc: Test subsecond duration with
151 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
154 * include/bits/c++config (__glibcxx_constexpr_assert): Remove
156 * include/bits/stl_algobase.h (__niter_base, __copy_move_a)
157 (__copy_move_backward_a, __fill_a, __fill_n_a, __equal_aux)
158 (__lexicographical_compare_aux): Add constexpr to overloads for
159 debug mode iterators.
160 * include/debug/helper_functions.h (__unsafe): Add constexpr.
161 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_COND_AT): Remove
162 macro, folding it into ...
163 (_GLIBCXX_DEBUG_VERIFY_AT_F): ... here. Do not use
164 __glibcxx_constexpr_assert.
165 * include/debug/safe_base.h (_Safe_iterator_base): Add constexpr
166 to some member functions. Omit attaching, detaching and checking
167 operations during constant evaluation.
168 * include/debug/safe_container.h (_Safe_container): Likewise.
169 * include/debug/safe_iterator.h (_Safe_iterator): Likewise.
170 * include/debug/safe_iterator.tcc (__niter_base, __copy_move_a)
171 (__copy_move_backward_a, __fill_a, __fill_n_a, __equal_aux)
172 (__lexicographical_compare_aux): Add constexpr.
173 * include/debug/vector (_Safe_vector, vector): Add constexpr.
174 Omit safe iterator operations during constant evaluation.
175 * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
176 Remove dg-xfail-if for debug mode.
177 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
178 * testsuite/23_containers/vector/bool/cons/constexpr.cc:
180 * testsuite/23_containers/vector/bool/element_access/1.cc:
182 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
184 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
186 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
188 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
190 * testsuite/23_containers/vector/capacity/constexpr.cc:
192 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
193 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
194 * testsuite/23_containers/vector/data_access/constexpr.cc:
196 * testsuite/23_containers/vector/element_access/constexpr.cc:
198 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
200 * testsuite/23_containers/vector/modifiers/constexpr.cc:
202 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
204 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
205 Adjust dg-error line number.
207 2023-12-13 Jonathan Wakely <jwakely@redhat.com>
209 * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y): Do
210 not round century down for %Y formats.
212 2023-12-12 Jonathan Wakely <jwakely@redhat.com>
214 * include/std/format (__do_vformat_to): Handle char separately
215 from other integral types.
216 * testsuite/std/format/functions/format.cc: Check for expected
217 output for char and bool arguments.
218 * testsuite/std/format/string.cc: Check that 0 filling is
219 rejected for character and string formats.
221 2023-12-12 Jonathan Wakely <jwakely@redhat.com>
223 * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y): Fix
224 rounding for negative centuries.
225 * testsuite/std/time/year/io.cc: Check %C for negative years.
227 2023-12-12 Jonathan Wakely <jwakely@redhat.com>
229 * src/c++11/Makefile.am: Remove redundant -std=gnu++11 flags.
230 * src/c++11/Makefile.in: Regenerate.
232 2023-12-09 Jonathan Wakely <jwakely@redhat.com>
235 * include/bits/version.def (format): Update value.
236 * include/bits/version.h: Regenerate.
237 * testsuite/std/format/functions/format.cc:
239 2023-12-09 Jonathan Wakely <jwakely@redhat.com>
242 * include/std/ranges (ranges::to): Do not try to use an iterator
243 returned by the container's emplace or insert member functions.
244 * testsuite/std/ranges/conv/1.cc (Cont4::emplace, Cont4::insert):
245 Use the iterator parameter. Do not return an iterator.
247 2023-12-07 Patrick Palka <ppalka@redhat.com>
249 * include/std/ranges (__detail::_ToClosure): Replace with ...
250 (__detail::_To): ... this.
251 (__detail::_ToClosure2): Replace with ...
252 (__detail::To2): ... this.
253 (to): Simplify using the existing _Partial range adaptor
256 2023-12-07 Jonathan Wakely <jwakely@redhat.com>
258 * include/std/format (_Iter_sink<charT, contiguous_iterator>):
259 Remove uint64_t local type.
261 2023-12-07 Jonathan Wakely <jwakely@redhat.com>
263 * include/bits/atomic_wait.h: Include <cstdint> instead of
266 2023-12-07 Jonathan Wakely <jwakely@redhat.com>
269 * include/bits/c++config (__is_constant_evaluated): Add
270 always_inline attribute.
271 (_GLIBCXX_DO_ASSERT): Remove macro.
272 (__glibcxx_assert): Define separately for assertions-enabled and
273 constexpr-only cases.
275 2023-12-07 Alexandre Oliva <oliva@adacore.com>
278 * config/os/gnu-linux/os_defines.h
279 (_GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL): Define.
280 * libsupc++/atexit_thread.cc [__GXX_WEAK__ &&
281 _GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL]
282 (__cxa_thread_atexit): Add dynamic detection of
283 __cxa_thread_atexit_impl.
285 2023-12-06 Jason Merrill <jason@redhat.com>
289 * testsuite/23_containers/vector/ext_pointer/types/1.cc
290 * testsuite/23_containers/vector/ext_pointer/types/2.cc
291 (N::operator-): Make less specialized.
293 2023-12-06 Alexandre Oliva <oliva@gnu.org>
296 2023-12-02 Alexandre Oliva <oliva@adacore.com>
298 * libsupc++/atexit_thread.cc [__GXX_WEAK__]: Add dynamic
299 detection of __cxa_thread_atexit_impl.
301 2023-12-05 Jonathan Wakely <jwakely@redhat.com>
304 * include/bits/ranges_util.h (subrange): Add constructor to
305 _Size to aoid setting member in constructor.
306 * testsuite/std/ranges/subrange/111948.cc: New test.
308 2023-12-05 Jonathan Wakely <jwakely@redhat.com>
310 * include/std/ranges (__detail::__container_insertable): Remove.
311 (__detail::__container_inserter): Remove.
312 (ranges::to): Use emplace_back or emplace, as per LWG 4016.
313 * testsuite/std/ranges/conv/1.cc (Cont4, test_2_1_4): Check for
314 use of emplace_back and emplace.
316 2023-12-05 Jonathan Wakely <jwakely@redhat.com>
318 * include/bits/c++config (__glibcxx_assert_fail): Declare even
319 when assertions are not enabled.
320 (__glibcxx_constexpr_assert): Remove macro.
321 (__glibcxx_assert_impl): Remove macro.
322 (_GLIBCXX_ASSERT_FAIL): New macro.
323 (_GLIBCXX_DO_ASSERT): New macro.
324 (__glibcxx_assert): Simplify to a single definition that works
325 at runtime and during constant evaluation.
326 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
327 Adjust expected errors.
328 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
330 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
332 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
334 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
336 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
338 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
340 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
342 * testsuite/23_containers/span/back_neg.cc: Likewise.
343 * testsuite/23_containers/span/front_neg.cc: Likewise.
344 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
345 * testsuite/26_numerics/lcm/105844.cc: Likewise.
347 2023-12-05 Jonathan Wakely <jwakely@redhat.com>
350 * include/std/format (formatter::set_debug_format): Ensure this
351 member is defined conditionally for all specializations.
352 * testsuite/std/format/formatter/112832.cc: New test.
354 2023-12-05 Will Hawkins <hawkinsw@obs.cr>
355 Jonathan Wakely <jwakely@redhat.com>
357 * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: Add check
360 2023-12-05 Marek Polacek <polacek@redhat.com>
364 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
366 * testsuite/std/format/string_neg.cc: Add dg-error.
368 2023-12-02 Alexandre Oliva <oliva@adacore.com>
370 * libsupc++/atexit_thread.cc [__GXX_WEAK__]: Add dynamic
371 detection of __cxa_thread_atexit_impl.
373 2023-12-01 Jason Merrill <jason@redhat.com>
375 * include/std/bit: Avoid builtins in requires-clauses.
376 * include/std/variant: Likewise.
378 2023-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
380 * configure: Regenerate.
382 2023-11-30 Jonathan Wakely <jwakely@redhat.com>
384 * include/std/ranges (__detail::__toable): Fix incorrect use of
385 _Range instead of _Cont.
386 (__detail::_ToClosure, __detail::_ToClosure2): Add missing
387 constexpr specifier on constructors.
388 * testsuite/std/ranges/conv/1.cc (_Cont, _Cont2, _Cont3): Remove
389 unnecessary begin() and end() members.
390 (test_constexpr): New function to check range adaptors are
391 usable in constant expressions.
393 2023-11-29 Thomas Schwinge <thomas@codesourcery.com>
395 * testsuite/23_containers/span/at.cc: Fix for '-fno-exceptions'
398 2023-11-28 Jonathan Wakely <jwakely@redhat.com>
400 * include/bits/atomic_wait.h: Include <stdint.h>.
402 2023-11-28 Jonathan Wakely <jwakely@redhat.com>
404 * include/bits/stl_uninitialized.h: Fix typo in comment.
406 2023-11-24 Jan Hubicka <jh@suse.cz>
409 * include/bits/stl_uninitialized.h (__relocate_a_1): Use memcpy instead
412 2023-11-23 Jonathan Wakely <jwakely@redhat.com>
415 * include/bits/ranges_base.h (from_range_t): Define new tag
417 (from_range): Define new tag object.
418 * include/bits/version.def (ranges_to_container): Define.
419 * include/bits/version.h: Regenerate.
420 * include/std/ranges (ranges::to): Define.
421 * testsuite/std/ranges/conv/1.cc: New test.
422 * testsuite/std/ranges/conv/2_neg.cc: New test.
423 * testsuite/std/ranges/conv/version.cc: New test.
425 2023-11-23 Jonathan Wakely <jwakely@redhat.com>
427 * testsuite/util/testsuite_allocator.h (uneq_allocator): Fix
428 equality operator for heterogeneous comparisons.
430 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
432 * include/bits/version.def (freestanding_cstring): Add.
433 * include/bits/version.h: Regenerate.
434 * include/c_compatibility/string.h (strtok): Do not declare for
436 * include/c_global/cstring (strtok): Likewise.
437 * testsuite/21_strings/headers/cstring/version.cc: New test.
439 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
441 * include/bits/version.def (freestanding_algorithm)
442 (freestanding_array, freestanding_optional)
443 (freestanding_string_view, freestanding_variant): Add.
444 * include/bits/version.h: Regenerate.
445 * include/std/algorithm (__glibcxx_want_freestanding_algorithm):
447 * include/std/array (__glibcxx_want_freestanding_array):
449 * include/std/optional (__glibcxx_want_freestanding_optional):
451 * include/std/string_view
452 (__glibcxx_want_freestanding_string_view): Define.
453 * include/std/variant (__glibcxx_want_freestanding_variant):
455 * testsuite/20_util/optional/version.cc: Add checks for
456 __cpp_lib_freestanding_optional.
457 * testsuite/20_util/variant/version.cc: Add checks for
458 __cpp_lib_freestanding_variant.
459 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
460 Adjust dg-error line numbers.
461 * testsuite/21_strings/basic_string_view/requirements/version.cc:
463 * testsuite/23_containers/array/requirements/version.cc: New
465 * testsuite/25_algorithms/fill_n/requirements/version.cc: New
467 * testsuite/25_algorithms/swap_ranges/requirements/version.cc:
470 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
472 * include/bits/version.def (freestanding_expected): New macro.
473 (span): Add C++26 value.
474 * include/bits/version.h: Regenerate.
475 * include/std/expected (__glibcxx_want_freestanding_expected):
477 * include/std/span (span::at): New member function.
478 * testsuite/20_util/expected/version.cc: Add checks for
479 __cpp_lib_freestanding_expected.
480 * testsuite/23_containers/span/2.cc: Moved to...
481 * testsuite/23_containers/span/version.cc: ...here. Add checks
482 for __cpp_lib_span in <span> as well as in <version>.
483 * testsuite/23_containers/span/1.cc: Removed.
484 * testsuite/23_containers/span/at.cc: New test.
486 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
488 * include/tr2/dynamic_bitset (dynamic_bitset): Pass zero and one
489 characters to _M_copy_from_string.
490 * testsuite/tr2/dynamic_bitset/string.cc: New test.
492 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
494 * doc/html/*: Regenerate.
495 * doc/xml/faq.xml: Remove reference to buildstat.html pages.
496 * doc/xml/manual/test.xml: Likewise
498 2023-11-21 Jan Hubicka <jh@suse.cz>
503 * include/bits/stl_vector.h (_M_realloc_append): New member function.
505 * include/bits/vector.tcc: (emplace_back): Use it.
506 (_M_realloc_insert): Let compiler know that new vector size is non-zero.
507 (_M_realloc_append): New member function.
509 2023-11-18 Jonathan Wakely <jwakely@redhat.com>
512 * include/std/format (basic_format_arg::_S_to_arg_type): Check
513 value_type for basic_string_view and basic_string
515 * testsuite/std/format/arguments/112607.cc: New test.
517 2023-11-18 Jonathan Wakely <jwakely@redhat.com>
520 * include/std/format (_Sink_iter::_M_reserve): New member
522 (_Sink::_Reservation): New nested class.
523 (_Sink::_M_reserve, _Sink::_M_bump): New virtual functions.
524 (_Seq_sink::_M_reserve, _Seq_sink::_M_bump): New virtual
526 (_Iter_sink<O, ContigIter>::_M_reserve): Likewise.
527 (__do_vformat_to): Use new functions to optimize "{}" case.
529 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
531 * config.h.in: Regenerate.
533 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
535 * include/Makefile.am: Add new header.
536 * include/Makefile.in: Regenerate.
537 * include/bits/version.def (saturation_arithmetic): Define.
538 * include/bits/version.h: Regenerate.
539 * include/std/numeric: Include new header.
540 * include/bits/sat_arith.h: New file.
541 * testsuite/26_numerics/saturation/add.cc: New test.
542 * testsuite/26_numerics/saturation/cast.cc: New test.
543 * testsuite/26_numerics/saturation/div.cc: New test.
544 * testsuite/26_numerics/saturation/mul.cc: New test.
545 * testsuite/26_numerics/saturation/sub.cc: New test.
546 * testsuite/26_numerics/saturation/version.cc: New test.
548 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
550 * include/std/utility (in_range): Rename _Up parameter to _Res.
552 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
554 * include/bits/out_ptr.h: Add Doxygen comments. Remove a
555 redundant preprocessor condition.
556 * testsuite/20_util/smartptr.adapt/version.cc: New test.
558 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
560 * include/bits/chrono_io.h: Fix Doxygen markup.
562 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
565 * include/std/stacktrace (formatter::format): Format according
567 * include/std/thread (formatter::format): Use _Align_right as
569 * testsuite/19_diagnostics/stacktrace/output.cc: Check
570 fill-and-align handling. Change compile test to run.
571 * testsuite/30_threads/thread/id/output.cc: Check fill-and-align
574 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
577 * include/Makefile.am: Add new header.
578 * include/Makefile.in: Regenerate.
579 * include/bits/out_ptr.h: New file.
580 * include/bits/shared_ptr.h (__is_shared_ptr): Move definition
582 * include/bits/shared_ptr_atomic.h (__is_shared_ptr): ... from
584 * include/bits/shared_ptr_base.h (__shared_count): Declare
585 out_ptr_t as a friend.
586 (_Sp_counted_deleter, __shared_ptr): Likewise.
587 * include/bits/unique_ptr.h (unique_ptr, unique_ptr<T[], D>):
588 Declare out_ptr_t and inout_ptr_t as friends.
589 (__is_unique_ptr): Define new variable template.
590 * include/bits/version.def (out_ptr): Define.
591 * include/bits/version.h: Regenerate.
592 * include/std/memory: Include new header.
593 * testsuite/20_util/smartptr.adapt/inout_ptr/1.cc: New test.
594 * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: New test.
595 * testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc:
597 * testsuite/20_util/smartptr.adapt/inout_ptr/void_ptr.cc: New
599 * testsuite/20_util/smartptr.adapt/out_ptr/1.cc: New test.
600 * testsuite/20_util/smartptr.adapt/out_ptr/2.cc: New test.
601 * testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc:
603 * testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc: New
606 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
608 * include/bits/algorithmfwd.h: Do not define standard feature
610 * include/bits/align.h: Likewise. Test internal macros instead
612 * include/bits/alloc_traits.h: Likewise.
613 * include/bits/allocator.h: Likewise.
614 * include/bits/atomic_base.h: Likewise.
615 * include/bits/atomic_timed_wait.h: Likewise.
616 * include/bits/atomic_wait.h: Likewise.
617 * include/bits/basic_string.h: Likewise.
618 * include/bits/basic_string.tcc: Likewise.
619 * include/bits/char_traits.h: Likewise.
620 * include/bits/chrono.h: Likewise.
621 * include/bits/cow_string.h: Likewise.
622 * include/bits/forward_list.h: Likewise.
623 * include/bits/hashtable.h: Likewise.
624 * include/bits/ios_base.h: Likewise.
625 * include/bits/memory_resource.h: Likewise.
626 * include/bits/move.h: Likewise.
627 * include/bits/move_only_function.h: Likewise.
628 * include/bits/node_handle.h: Likewise.
629 * include/bits/ptr_traits.h: Likewise.
630 * include/bits/range_access.h: Likewise.
631 * include/bits/ranges_algo.h: Likewise.
632 * include/bits/ranges_cmp.h: Likewise.
633 * include/bits/ranges_util.h: Likewise.
634 * include/bits/semaphore_base.h: Likewise.
635 * include/bits/shared_ptr.h: Likewise.
636 * include/bits/shared_ptr_atomic.h: Likewise.
637 * include/bits/shared_ptr_base.h: Likewise.
638 * include/bits/stl_algo.h: Likewise.
639 * include/bits/stl_algobase.h: Likewise.
640 * include/bits/stl_function.h: Likewise.
641 * include/bits/stl_iterator.h: Likewise.
642 * include/bits/stl_list.h: Likewise.
643 * include/bits/stl_map.h: Likewise.
644 * include/bits/stl_pair.h: Likewise.
645 * include/bits/stl_queue.h: Likewise.
646 * include/bits/stl_stack.h: Likewise.
647 * include/bits/stl_tree.h: Likewise.
648 * include/bits/stl_uninitialized.h: Likewise.
649 * include/bits/stl_vector.h: Likewise.
650 * include/bits/unique_ptr.h: Likewise.
651 * include/bits/unordered_map.h: Likewise.
652 * include/bits/uses_allocator_args.h: Likewise.
653 * include/bits/utility.h: Likewise.
654 * include/bits/erase_if.h: Add comment.
655 * include/std/algorithm: Define standard feature test macros
657 * include/std/atomic: Likewise.
658 * include/std/array: Likewise.
659 * include/std/chrono: Likewise.
660 * include/std/condition_variable: Likewise.
661 * include/std/deque: Likewise.
662 * include/std/format: Likewise.
663 * include/std/functional: Likewise.
664 * include/std/forward_list: Likewise.
665 * include/std/ios: Likewise.
666 * include/std/iterator: Likewise.
667 * include/std/list: Likewise.
668 * include/std/map: Likewise.
669 * include/std/memory: Likewise.
670 * include/std/numeric: Likewise.
671 * include/std/queue: Likewise.
672 * include/std/ranges: Likewise.
673 * include/std/regex: Likewise.
674 * include/std/set: Likewise.
675 * include/std/stack: Likewise.
676 * include/std/stop_token: Likewise.
677 * include/std/string: Likewise.
678 * include/std/string_view:
679 * include/std/tuple: Likewise.
680 * include/std/unordered_map:
681 * include/std/unordered_set:
682 * include/std/utility: Likewise.
683 * include/std/vector: Likewise.
684 * include/std/scoped_allocator: Query internal macros instead of
687 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
689 * testsuite/18_support/byte/requirements.cc: Disable PCH.
690 * testsuite/18_support/destroying_delete.cc: Likewise.
691 * testsuite/18_support/source_location/1.cc: Likewise.
692 * testsuite/18_support/source_location/version.cc: Likewise.
693 * testsuite/18_support/type_info/constexpr.cc: Likewise.
694 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
696 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
697 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
698 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
699 * testsuite/20_util/addressof/requirements/constexpr.cc:
701 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
702 * testsuite/20_util/allocator_traits/header.cc: Likewise.
703 * testsuite/20_util/as_const/1.cc: Likewise. Likewise.
704 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
705 * testsuite/20_util/bitset/version.cc: Likewise.
706 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
708 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
709 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
711 * testsuite/20_util/exchange/constexpr.cc: Likewise.
712 * testsuite/20_util/expected/synopsis.cc: Likewise.
713 * testsuite/20_util/expected/version.cc: Likewise.
714 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
715 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
716 * testsuite/20_util/function_objects/invoke/3.cc: Likewise.
717 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
718 * testsuite/20_util/function_objects/invoke/constexpr.cc:
720 * testsuite/20_util/function_objects/invoke/version.cc:
722 * testsuite/20_util/function_objects/searchers.cc: Likewise.
723 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
724 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
725 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
726 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
727 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
728 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
730 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
732 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
733 * testsuite/20_util/is_nothrow_swappable/value.h: Likewise.
734 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
735 Remove redundant checks already tested elsewhere.
736 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
738 * testsuite/20_util/is_nothrow_swappable_with/value.cc: Disable
740 * testsuite/20_util/is_pointer_interconvertible/value.cc:
742 * testsuite/20_util/is_pointer_interconvertible/version.cc:
744 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
745 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
746 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
747 Remove redundant checks already tested elsewhere.
748 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
749 Remove redundant checks already tested elsewhere.
750 * testsuite/20_util/is_swappable/value.cc: Disable PCH.
751 * testsuite/20_util/is_swappable/value.h: Reorder headers.
752 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
753 Remove redundant checks already tested elsewhere.
754 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
755 Remove redundant checks already tested elsewhere.
756 * testsuite/20_util/is_swappable_with/value.cc: Disable PCH.
757 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
758 * testsuite/20_util/move_only_function/cons.cc: Likewise.
759 * testsuite/20_util/move_only_function/version.cc: Likewise.
760 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
761 * testsuite/20_util/optional/requirements.cc: Likewise.
762 * testsuite/20_util/optional/version.cc: Likewise.
763 * testsuite/20_util/owner_less/void.cc: Likewise.
764 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
765 * testsuite/20_util/reference_from_temporary/version.cc:
767 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
769 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
770 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
771 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
772 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
773 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
774 * testsuite/20_util/to_chars/result.cc: Likewise.
775 * testsuite/20_util/to_chars/version.cc: Likewise.
776 * testsuite/20_util/to_underlying/1.cc: Likewise.
777 * testsuite/20_util/to_underlying/version.cc: Likewise.
778 * testsuite/20_util/tuple/apply/1.cc: Likewise.
779 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
781 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
782 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
783 * testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
784 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
786 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
788 * testsuite/20_util/unreachable/1.cc: Likewise.
789 * testsuite/20_util/unreachable/version.cc: Likewise.
790 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
791 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
792 * testsuite/20_util/variant/constexpr.cc: Likewise.
793 * testsuite/20_util/variant/version.cc: Likewise.
794 * testsuite/20_util/variant/visit_inherited.cc: Likewise.
795 * testsuite/20_util/void_t/1.cc: Likewise.
796 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
798 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
800 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
802 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
803 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
805 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
807 * testsuite/21_strings/basic_string/version.cc: Likewise.
808 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
810 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
812 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
814 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
816 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
818 * testsuite/21_strings/char_traits/requirements/version.cc:
820 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
822 * testsuite/23_containers/array/creation/1.cc: Likewise.
823 * testsuite/23_containers/array/creation/2.cc: Likewise.
824 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
826 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
828 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
830 * testsuite/23_containers/deque/erasure.cc: Likewise.
831 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
832 * testsuite/23_containers/list/erasure.cc: Likewise.
833 * testsuite/23_containers/map/erasure.cc: Likewise.
834 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
835 * testsuite/23_containers/set/erasure.cc: Likewise.
836 * testsuite/23_containers/span/1.cc: Likewise.
837 * testsuite/23_containers/span/2.cc: Likewise.
838 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
839 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
840 * testsuite/23_containers/unordered_map/operations/1.cc:
842 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
843 * testsuite/23_containers/unordered_set/operations/1.cc:
845 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
846 * testsuite/23_containers/vector/erasure.cc: Likewise.
847 * testsuite/23_containers/vector/requirements/version.cc:
849 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
850 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
851 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
852 Remove redundant checks already tested elsewhere.
853 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
854 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
855 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
856 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
857 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
858 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
859 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
860 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
861 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
862 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
863 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
864 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
865 * testsuite/26_numerics/bit/header-2.cc: Likewise.
866 * testsuite/26_numerics/bit/header.cc: Likewise.
867 * testsuite/26_numerics/complex/1.cc: Likewise.
868 * testsuite/26_numerics/complex/2.cc: Likewise.
869 * testsuite/26_numerics/endian/2.cc: Likewise.
870 * testsuite/26_numerics/endian/3.cc: Likewise.
871 * testsuite/26_numerics/gcd/1.cc: Likewise.
872 * testsuite/26_numerics/lcm/1.cc: Likewise.
873 * testsuite/26_numerics/lerp/1.cc: Likewise.
874 * testsuite/26_numerics/lerp/version.cc: Likewise.
875 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
876 * testsuite/26_numerics/midpoint/version.cc: Likewise.
877 * testsuite/26_numerics/numbers/1.cc: Likewise.
878 * testsuite/26_numerics/numbers/2.cc: Likewise.
879 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc:
881 * testsuite/27_io/basic_filebuf/native_handle/version.cc:
883 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc:
885 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
887 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
888 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
889 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
890 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
891 * testsuite/27_io/spanstream/1.cc: Likewise.
892 * testsuite/27_io/spanstream/version.cc: Likewise.
893 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
894 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
895 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
896 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
897 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
899 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
900 * testsuite/30_threads/barrier/1.cc: Likewise.
901 * testsuite/30_threads/barrier/2.cc: Likewise.
902 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
904 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
906 * testsuite/30_threads/jthread/1.cc: Likewise.
907 * testsuite/30_threads/jthread/version.cc: Likewise.
908 * testsuite/30_threads/latch/1.cc: Likewise.
909 * testsuite/30_threads/latch/2.cc: Likewise.
910 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
912 * testsuite/30_threads/semaphore/1.cc: Likewise.
913 * testsuite/30_threads/semaphore/2.cc: Likewise.
914 * testsuite/30_threads/stop_token/1.cc: Likewise.
915 * testsuite/30_threads/stop_token/2.cc: Likewise.
916 * testsuite/experimental/feat-char8_t.cc: Likewise.
917 * testsuite/experimental/iterator/ostream_joiner.cc: Likewise.
918 * testsuite/experimental/numeric/gcd.cc: Likewise.
919 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
920 * testsuite/std/concepts/1.cc: Likewise.
921 * testsuite/std/concepts/2.cc: Likewise.
922 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
923 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
924 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
925 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
926 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
927 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
928 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
929 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
930 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
931 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
932 * testsuite/std/ranges/repeat/1.cc: Likewise.
933 * testsuite/std/ranges/version_c++23.cc: Likewise.
934 * testsuite/std/ranges/zip/1.cc: Likewise.
935 * testsuite/std/time/syn_c++20.cc: Likewise.
936 * testsuite/experimental/feat-cxx14.cc: Likewise. Include
937 <algorithm> and <iterator>.
938 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
939 Adjust dg-error line numbers.
941 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
943 * include/bits/version.def (stds): Use >= 202100 for C++23
945 * include/bits/version.h: Regenerate.
946 * include/std/thread: Use > C++20 instead of >= C++23 for
947 __cplusplus condition.
949 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
951 * include/std/istream (__rvalue_stream_extraction_t): Test
952 __cpp_concepts instead of __cpp_lib_concepts.
953 * include/std/ostream (__derived_from_ios_base): Likewise.
954 (__rvalue_stream_insertion_t): Likewise.
956 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
959 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index):
960 Correctly handle unused capacity at the start of the first node.
961 * testsuite/libstdc++-xmethods/deque.cc: Check index operator
962 when elements have been removed from the front.
964 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
966 * include/std/stacktrace (basic_stacktrace::at): Fix class name
967 in exception message.
968 * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if
969 current() returns a non-empty stacktrace.
971 2023-11-15 Alexandre Oliva <oliva@gnu.org>
974 2023-11-15 Alexandre Oliva <oliva@adacore.com>
976 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
978 2023-11-15 Alexandre Oliva <oliva@adacore.com>
980 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
982 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
984 * include/std/chrono (operator-(const weekday&, const weekday&)):
987 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
989 * include/std/chrono (weekday::_S_from_days): Fix UB.
990 * testsuite/std/time/weekday/1.cc: Add test for overflow.
992 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
994 * include/std/chrono (year::is_leap): Clear code.
996 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
998 * include/std/chrono (year_month_day_last::day): Remove &1.
1000 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
1002 * include/std/charconv (__from_chars_pow2_base): Convert base to
1003 unsigned for call to __countr_zero.
1004 (__from_chars_alnum): Likewise for call to __bit_width.
1006 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
1009 * include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix
1010 type of hash functio nfor entries.
1011 * testsuite/19_diagnostics/stacktrace/hash.cc: New test.
1013 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
1016 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix
1017 calculation to use _M_start._M_cur.
1018 * testsuite/libstdc++-xmethods/deque.cc: Check failing cases.
1020 2023-11-13 Arsen Arsenović <arsen@aarsen.me>
1022 * configure: Regenerate.
1024 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
1026 * testsuite/std/time/clock/file/io.cc: Double timeout using
1028 * testsuite/std/time/clock/gps/io.cc: Likewise.
1029 * testsuite/std/time/clock/local/io.cc: Likewise.
1030 * testsuite/std/time/clock/system/io.cc: Likewise.
1031 * testsuite/std/time/clock/tai/io.cc: Likewise.
1032 * testsuite/std/time/clock/utc/io.cc: Likewise.
1034 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
1037 * include/std/optional (_Optional_payload_base::_M_reset): Set
1038 _M_engaged to false unconditionally.
1040 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1043 * include/bits/stl_bvector.h (_M_assume_normalized): Do not use
1044 statement form of assume attribute for Clang.
1046 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1048 * include/std/string_view (operator==, operator<=>): Remove
1049 redundant overloads (LWG 3950).
1051 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1053 * testsuite/26_numerics/headers/complex.h/std_c++11.h: Moved to...
1054 * testsuite/26_numerics/headers/complex.h/std_c++11.cc: ...here.
1055 * testsuite/26_numerics/headers/complex.h/std_c++98.h: Moved to...
1056 * testsuite/26_numerics/headers/complex.h/std_c++98.cc: ...here.
1057 Check macro first and then #undef.
1058 * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: Moved to...
1059 * testsuite/26_numerics/headers/complex.h/std_gnu++11.cc: ...here.
1061 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1064 * include/bits/utility.h (integer_sequence): Add static_assert.
1065 * testsuite/20_util/integer_sequence/112473.cc: New test.
1067 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1069 * testsuite/20_util/pair/dangling_ref.cc: Add hosted effective
1070 target for specifiers using c++17_down.
1072 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1074 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free)
1075 (atomic_load_explicit, atomic_load, atomic_store_explicit)
1076 (atomic_store, atomic_exchange_explicit, atomic_exchange)
1077 (atomic_compare_exchange_strong, atomic_compare_exchange_weak)
1078 (atomic_compare_exchange_strong_explicit)
1079 (atomic_compare_exchange_weak_explicit): Add deprecated
1080 attribute for C++20 and later.
1081 * testsuite/20_util/shared_ptr/atomic/1.cc: Suppress deprecated
1083 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
1084 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
1085 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
1087 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1089 * include/bits/std_mutex.h (lock_guard): Add [[nodiscard]]
1090 attribute to constructors.
1091 * include/bits/unique_lock.h (unique_lock): Likewise.
1092 * include/std/mutex (scoped_lock, scoped_lock<Mutex>): Likewise.
1093 * testsuite/30_threads/lock_guard/cons/nodiscard.cc: New test.
1094 * testsuite/30_threads/scoped_lock/cons/nodiscard.cc: New test.
1095 * testsuite/30_threads/unique_lock/cons/nodiscard.cc: New test.
1097 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1099 * include/std/span (span, as_bytes, as_writable_bytes): Add
1100 [[nodiscard]] attribute on all non-void functions.
1101 * testsuite/23_containers/span/back_assert_neg.cc: Suppress
1103 * testsuite/23_containers/span/back_neg.cc: Likewise.
1104 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
1105 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
1106 * testsuite/23_containers/span/first_neg.cc: Likewise.
1107 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
1108 * testsuite/23_containers/span/front_neg.cc: Likewise.
1109 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
1110 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1111 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
1112 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
1113 * testsuite/23_containers/span/last_neg.cc: Likewise.
1114 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
1116 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
1118 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
1120 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
1122 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
1124 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
1125 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
1126 * testsuite/23_containers/span/nodiscard.cc: New test.
1128 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1131 * config.h.in: Regenerate.
1132 * configure: Regenerate.
1133 * linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): Remove.
1134 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1): Do not check for _foo.
1135 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Likewise.
1136 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2): Likewise.
1137 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3): Likewise.
1138 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Do not use
1139 GLIBCXX_MAYBE_UNDERSCORED_FUNCS.
1141 2023-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
1144 * include/c_global/cmath (acosf, acosl, asinf, asinl, atanf)
1145 (atanl, atan2f, atan2l, ceilf, ceill, cosf, cosl, coshf, coshl)
1146 (expf, expl, fabsf, fabsl, floorf, floorl, fmodf, fmodl, frexpf)
1147 (frexpl, ldexpf, ldexpl, logf, logl, log10f, log10l, modff)
1148 (modfl, powf, powl, sinf, sinl, sinhf, sinhl, sqrtf, sqrtl, tanf)
1149 (tanl, tanhf, tanhl): Add using-declarations in namespace std.
1150 * testsuite/26_numerics/headers/cmath/equivalent_functions.cc:
1152 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
1153 Add checks for existence of above names.
1155 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
1157 * testsuite/20_util/scoped_allocator/noexcept.cc: Mark as
1160 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
1162 * include/bits/memoryfwd.h: Remove HOSTED check around allocator
1163 and its specializations.
1165 2023-11-09 Patrick Palka <ppalka@redhat.com>
1168 * include/std/ranges (__detail::__box<_Tp>::operator*): Define
1169 && overloads as well.
1170 (__detail::__take_of_repeat_view): Forward __r when accessing
1171 its _M_value member.
1172 (__detail::__drop_of_repeat_view): Likewise.
1173 * testsuite/std/ranges/repeat/1.cc (test07): New test.
1175 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
1177 * include/bits/hashtable_policy.h (_RehashStateGuard): New.
1178 (_Insert_base<>::_M_insert_range(_IIt, _IIt, const _NodeGet&, false_type)):
1180 * include/bits/hashtable.h (__rehash_guard_t): New.
1181 (__rehash_state): Remove.
1182 (_M_rehash): Remove.
1183 (_M_rehash_aux): Rename into _M_rehash.
1184 (_M_assign_elements, _M_insert_unique_node, _M_insert_multi_node): Adapt.
1187 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
1189 * include/bits/hashtable_policy.h
1190 (struct _NodePtrGuard<_HashtableAlloc, _NodePtr>): New.
1191 (_ReuseAllocNode::operator()(_Args&&...)): Use latter to guard allocated node
1192 pointer while constructing in place the value_type instance.
1194 2023-11-09 Alexandre Oliva <oliva@adacore.com>
1197 * include/bits/stl_bvector.h (_Bit_iterator_base): Add
1198 _M_assume_normalized member function. Call it in _M_bump_up,
1199 _M_bump_down, _M_incr, operator==, operator<=>, operator<, and
1201 (_Bit_iterator): Also call it in operator*.
1202 (_Bit_const_iterator): Likewise.
1204 2023-11-07 François Dumont <fdumont@gcc.gnu.org>
1206 * include/bits/hashtable_policy.h
1207 (_Hashtable_alloc<>::_M_allocate_node): Add missing call to node destructor
1208 on construct exception.
1210 2023-11-07 Richard Biener <rguenther@suse.de>
1213 * src/c++98/locale.cc (locale::facet::_S_initialize_once):
1214 Check whether _S_c_locale is already initialized.
1215 (locale::facet::_S_get_c_locale): Always perform non-threadsafe
1216 init when threadsafe init failed.
1218 2023-11-06 Ian Lance Taylor <iant@golang.org>
1220 PR libbacktrace/111315
1221 PR libbacktrace/112263
1222 * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when
1223 grepping link.h for dl_iterate_phdr.
1224 * configure: Regenerate.
1226 2023-11-06 Jonathan Wakely <jwakely@redhat.com>
1228 * include/std/expected (expected::and_then, expected::or_else):
1229 Add string literals to static assertions.
1230 * include/std/optional (optional::and_then, optional::or_else):
1233 2023-11-04 Feng Jisen <J1senn@outlook.com>
1235 * include/bits/utility.h (_Nth_type): Remove redundant partial
1238 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
1241 * include/std/system_error (system_error::system_error): Group
1242 arguments so that concatenation can reuse rvalue's capacity.
1243 * src/c++11/system_error.cc (strerror_string): New function.
1244 [_GLIBCXX_HAVE_STRERROR_R] (use_strerror_result): New functions.
1245 (generic_error_category::message): Use strerror_string.
1246 (system_error_category::message): Likewise.
1248 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
1250 * doc/xml/manual/appendix_contributing.xml: Replace example that
1252 * doc/html/manual/source_code_style.html: Regenerate.
1254 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
1257 * include/std/string_view (string_view::remove_suffix): Add
1259 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
1261 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
1264 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
1266 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
1267 * configure: Regenerate.
1269 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
1271 * config/abi/pre/gnu-versioned-namespace.ver: Add comment on recently
1272 added emul TLS symbols.
1274 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
1276 * src/experimental/contract.cc
1277 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Rework comment.
1278 Remove weak attribute.
1280 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
1282 * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS
1285 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
1287 * src/experimental/contract.cc
1288 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide symbol
1289 without version namespace decoration for gcc.
1291 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
1294 * include/std/shared_mutex (shared_lock::unlock): Change errc
1295 constant to operation_not_permitted.
1296 * testsuite/30_threads/shared_lock/locking/112089.cc: New test.
1298 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
1300 * testsuite/20_util/duration/io.cc: Double timeout using
1302 * testsuite/std/time/day/io.cc: Likewise.
1303 * testsuite/std/time/format.cc: Likewise.
1304 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1305 * testsuite/std/time/month/io.cc: Likewise.
1306 * testsuite/std/time/month_day/io.cc: Likewise.
1307 * testsuite/std/time/month_day_last/io.cc: Likewise.
1308 * testsuite/std/time/month_weekday/io.cc: Likewise.
1309 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
1310 * testsuite/std/time/weekday/io.cc: Likewise.
1311 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
1312 * testsuite/std/time/weekday_last/io.cc: Likewise.
1313 * testsuite/std/time/year/io.cc: Likewise.
1314 * testsuite/std/time/year_month/io.cc: Likewise.
1315 * testsuite/std/time/year_month_day/io.cc: Likewise.
1316 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
1317 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
1318 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
1319 * testsuite/std/time/zoned_time/io.cc: Likewise.
1321 2023-10-25 Jonathan Wakely <jwakely@redhat.com>
1324 * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool
1326 * src/libbacktrace/Makefile.in: Regenerate.
1328 2023-10-24 Paul M. Bendixen <paulbendixen@gmail.com>
1330 * include/Makefile.am: Move cstdarg, cstdalign and cstdbool to
1332 * include/Makefile.in: Regenerate.
1334 2023-10-22 Iain Sandoe <iain@sandoe.co.uk>
1336 * configure: Regenerate.
1337 * configure.ac: Handle Darwin rpaths.
1338 * src/Makefile.am: Handle Darwin rpaths.
1339 * src/Makefile.in: Regenerate.
1341 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
1343 * include/bits/basic_string.h (_M_init_local_buf()): New
1345 (_M_use_local_data()): Use _M_init_local_buf.
1346 (basic_string(), basic_string(const Alloc&))
1347 (basic_string(basic_string&&))
1348 (basic_string(basic_string&&, const Alloc&)): Use
1349 _M_init_local_buf instead of _M_use_local_data().
1350 * include/bits/basic_string.tcc (swap(basic_string&))
1351 (_M_construct(InIter, InIter, input_iterator_tag))
1352 (_M_construct(InIter, InIter, forward_iterator_tag))
1353 (_M_construct(size_type, CharT), reserve()): Likewise.
1355 2023-10-21 Benjamin Brock <brock@cs.berkeley.edu>
1357 * include/std/ranges (zip_view, adjacent_view): Implement
1358 workaround for LLVM-61763.
1360 2023-10-21 Dimitrij Mijoski <dmjpp@hotmail.com>
1362 * testsuite/22_locale/codecvt/codecvt_unicode.h: Test length()
1364 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
1366 * include/bits/fs_dir.h (operator==(default_sentinel_t)): Fix
1369 2023-10-20 Marek Polacek <polacek@redhat.com>
1372 * include/std/charconv (from_chars): Add explicit casts.
1374 2023-10-19 François Dumont <fdumont@gcc.gnu.org>
1376 * include/bits/hashtable_policy.h
1377 (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove.
1378 (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove.
1379 * include/bits/hashtable.h
1380 (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New.
1381 (_M_merge_unique<>, _M_merge_multi<>): Use latter.
1382 * testsuite/23_containers/unordered_map/modifiers/merge.cc
1383 (test04, test05, test06): New test cases.
1385 2023-10-13 Jakub Jelinek <jakub@redhat.com>
1387 * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01):
1388 Initialize stream to va_arg(ap, FILE*) rather than 0.
1389 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01):
1392 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
1394 * testsuite/29_atomics/atomic/compare_exchange_padding.cc,
1395 testsuite/29_atomics/atomic_flag/clear/1.cc,
1396 testsuite/29_atomics/atomic_flag/cons/value_init.cc,
1397 testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc,
1398 testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc,
1399 testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc,
1400 testsuite/29_atomics/atomic_ref/generic.cc,
1401 testsuite/29_atomics/atomic_ref/integral.cc,
1402 testsuite/29_atomics/atomic_ref/pointer.cc: Replace
1403 dg-require-thread-fence with dg-require-atomic-cmpxchg-word.
1405 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
1407 * testsuite/lib/dg-options.exp (dg-require-atomic-cmpxchg-word):
1409 * testsuite/lib/libstdc++.exp (check_v3_target_atomic_cmpxchg_word):
1412 2023-10-05 François Dumont <fdumont@gcc.gnu.org>
1414 * config/abi/pre/gnu-versioned-namespace.ver: Add missing symbols
1415 for _Float{16,32,64,128,32x,64x,128x}.
1417 2023-10-04 Tom Tromey <tromey@adacore.com>
1419 * python/libstdcxx/v6/printers.py
1420 (StdExpAnyPrinter.__init__): Qualify call to
1423 2023-10-04 Tom Tromey <tromey@adacore.com>
1425 * python/libstdcxx/v6/printers.py: Assume that
1426 _versioned_namespace is non-None.
1427 * python/libstdcxx/v6/xmethods.py (is_specialization_of):
1428 Assume that _versioned_namespace is non-None.
1430 2023-10-04 Tom Tromey <tromey@adacore.com>
1432 * python/libstdcxx/v6/xmethods.py (_versioned_namespace):
1435 2023-09-29 Dimitrij Mijoski <dmjpp@hotmail.com>
1438 * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of
1439 surrogates in UTF-8.
1440 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8.
1441 (ucs4_in): Fix handling of range with odd number of bytes.
1442 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16.
1443 (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16.
1444 (ucs2_in): Fix handling of range with odd number of bytes.
1445 (__codecvt_utf16_base<char16_t>::do_in): Likewise.
1446 (__codecvt_utf16_base<char32_t>::do_in): Likewise.
1447 (__codecvt_utf16_base<wchar_t>::do_in): Likewise.
1448 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add
1449 tests for codecvt_utf16<char16_t> and codecvt_utf16<char32_t>.
1450 * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8
1451 testing functions for char8_t, add more test cases for errors,
1452 add testing functions for codecvt_utf16.
1453 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc:
1454 Renames, add tests for codecvt_utf16<whchar_t>.
1455 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06):
1457 * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New
1460 2023-09-29 Nathaniel Shead <nathanieloshead@gmail.com>
1462 * include/bits/basic_string.h: (basic_string(basic_string&&)):
1463 Activate _M_local_buf when needed.
1464 (basic_string(basic_string&&, const _Alloc&)): Likewise.
1465 * include/bits/basic_string.tcc: (basic_string::swap): Likewise.
1466 * include/std/variant: (__detail::__variant::__construct_n): New.
1467 (__detail::__variant::__emplace): Use __construct_n.
1469 2023-09-28 Tom Tromey <tromey@adacore.com>
1471 * python/libstdcxx/v6/printers.py (Printer.add_version)
1472 (add_one_template_type_printer)
1473 (FilteringTypePrinter.add_one_type_printer): Use Python
1476 2023-09-28 Tom Tromey <tromey@adacore.com>
1478 * python/libstdcxx/v6/printers.py (std_ratio_t_tuple):
1481 2023-09-28 Tom Tromey <tromey@adacore.com>
1483 * python/libstdcxx/v6/printers.py
1484 (StdExpOptionalPrinter.__init__, lookup_node_type):
1485 Remove unused variables.
1487 2023-09-28 Tom Tromey <tromey@adacore.com>
1489 * python/libstdcxx/v6/printers.py: Don't import 'os'.
1490 * python/libstdcxx/v6/__init__.py: Don't import 'gdb'.
1492 2023-09-28 Tom Tromey <tromey@adacore.com>
1494 * python/libstdcxx/v6/printers.py: Use gdb.ValuePrinter
1495 everywhere. Rename members to start with "_".
1497 2023-09-28 Tom Tromey <tromey@adacore.com>
1499 * testsuite/lib/gdb-test.exp (gdb-test): Enable Python
1500 stack traces from gdb.
1502 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1504 * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define
1506 (ArrayMethodsMatcher, DequeMethodsMatcher)
1507 (ForwardListMethodsMatcher, ListMethodsMatcher)
1508 (VectorMethodsMatcher, AssociativeContainerMethodsMatcher)
1509 (UniquePtrGetWorker, UniquePtrMethodsMatcher)
1510 (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use
1511 is_specialization_of instead of re.match.
1513 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1515 * python/libstdcxx/v6/printers.py: Break long lines. Use raw
1516 strings for regular expressions. Add whitespace around
1518 (is_member_of_namespace): Use isinstance to check type.
1519 (is_specialization_of): Likewise. Adjust template_name
1520 for versioned namespace instead of duplicating the re.match
1522 (StdExpAnyPrinter._string_types): New static method.
1523 (StdExpAnyPrinter.to_string): Use _string_types.
1525 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1527 * python/libstdcxx/v6/printers.py: Format docstrings according
1529 * python/libstdcxx/v6/xmethods.py: Likewise.
1531 2023-09-28 Tim Song <t.canens.cpp@gmail.com>
1534 * include/bits/hashtable_policy.h
1535 (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v())
1536 Add [[__gnu__::__always_inline__]].
1538 2023-09-27 Jonathan Wakely <jwakely@redhat.com>
1540 * python/libstdcxx/v6/printers.py (StdChronoTimeZoneRulePrinter):
1541 Fix incorrect number of replacement fields.
1543 2023-09-26 Hans-Peter Nilsson <hp@axis.com>
1545 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Add
1546 dg-require-thread-fence.
1548 2023-09-25 Patrick Palka <ppalka@redhat.com>
1550 * include/std/charconv (__detail::__integer_to_chars_result_type):
1552 (__detail::__to_chars_16): Use to_chars_result as return type.
1553 (__detail::__to_chars_10): Likewise.
1554 (__detail::__to_chars_8): Likewise.
1555 (__detail::__to_chars_2): Likewise.
1556 (__detail::__to_chars_i): Likewise.
1557 (__detail::__integer_from_chars_result_type): Inline the
1559 (from_chars): ... here. Use __is_standard_integer in the
1560 constraint. Encode constraint as a defaulted non-type template
1561 parameter instead of within the return type.
1563 2023-09-25 John David Anglin <danglin@gcc.gnu.org>
1565 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
1567 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1571 * include/std/array (to_array): Cast memcpy arguments to void*.
1572 * testsuite/23_containers/array/creation/111512.cc: New test.
1574 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1576 * include/bits/move.h (forward_list): Define for C++23.
1577 * include/bits/version.def (forward_like): Define.
1578 * include/bits/version.h: Regenerate.
1579 * include/std/utility (__glibcxx_want_forward_like): Define.
1580 * testsuite/20_util/forward_like/1.cc: New test.
1581 * testsuite/20_util/forward_like/2_neg.cc: New test.
1582 * testsuite/20_util/forward_like/version.cc: New test.
1584 2023-09-19 Marek Polacek <polacek@redhat.com>
1586 * testsuite/20_util/allocator/105975.cc: Add dg-error.
1588 2023-09-18 Patrick Palka <ppalka@redhat.com>
1592 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
1593 Make data member seed_seq::called mutable.
1594 * testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc:
1596 * testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc:
1598 * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc:
1600 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
1602 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc:
1604 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc:
1607 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1609 * doc/xml/manual/status_cxx2020.xml: Tweak P1466R3 status.
1610 * doc/html/manual/status.html: Regenerate.
1612 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1614 * doc/xml/manual/configure.xml: Use conventional option name.
1615 * doc/xml/manual/status_cxx2020.xml: Update.
1616 * doc/xml/manual/status_cxx2023.xml: Update.
1617 * doc/html/*: Regenerate.
1619 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1621 * doc/xml/manual/intro.xml: Clarify that building libstdc++
1622 separately from GCC is not supported.
1623 * doc/xml/manual/prerequisites.xml: Note msgfmt prerequisite for
1625 * doc/html/manual/setup.html: Regenerate.
1627 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1629 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not
1630 restrict to pthreads targets.
1631 * testsuite/30_threads/jthread/3.cc: Likewise.
1632 * testsuite/30_threads/semaphore/100806.cc: Likewise.
1633 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
1634 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
1635 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
1637 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1639 * testsuite/18_support/coroutines/95917.cc: Remove dg-options
1641 * testsuite/18_support/coroutines/hash.cc: Likewise.
1642 * testsuite/18_support/coroutines/lwg3460.cc: Likewise.
1643 * testsuite/18_support/destroying_delete.cc: Likewise.
1644 * testsuite/18_support/source_location/1.cc: Likewise.
1645 * testsuite/18_support/source_location/consteval.cc: Likewise.
1646 * testsuite/18_support/source_location/version.cc: Likewise.
1647 * testsuite/19_diagnostics/error_category/operators/three_way.cc:
1649 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1651 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1653 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1654 * testsuite/26_numerics/adjacent_difference/lwg2055.cc:
1656 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1657 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1658 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1659 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1660 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1661 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1663 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
1665 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
1667 * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise.
1668 * testsuite/experimental/filesystem/iterators/106201.cc:
1670 * testsuite/experimental/scopeguard/exit.cc: Likewise.
1671 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
1673 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1675 * testsuite/30_threads/barrier/1.cc: Remove dg-options
1677 * testsuite/30_threads/barrier/2.cc: Likewise.
1678 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1679 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1680 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1681 * testsuite/30_threads/barrier/completion.cc: Likewise.
1682 * testsuite/30_threads/condition_variable/members/clock_neg.cc:
1684 * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
1686 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
1688 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
1690 * testsuite/30_threads/future/members/clock_neg.cc: Likewise.
1691 * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise.
1692 * testsuite/30_threads/headers/thread/types_std_c++20.cc:
1694 * testsuite/30_threads/jthread/1.cc: Likewise.
1695 * testsuite/30_threads/jthread/100612.cc: Likewise.
1696 * testsuite/30_threads/jthread/95989.cc: Likewise.
1697 * testsuite/30_threads/jthread/jthread.cc: Likewise.
1698 * testsuite/30_threads/jthread/version.cc: Likewise.
1699 * testsuite/30_threads/latch/1.cc: Likewise.
1700 * testsuite/30_threads/latch/2.cc: Likewise.
1701 * testsuite/30_threads/latch/3.cc: Likewise.
1702 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
1704 * testsuite/30_threads/semaphore/1.cc: Likewise.
1705 * testsuite/30_threads/semaphore/2.cc: Likewise.
1706 * testsuite/30_threads/semaphore/least_max_value_neg.cc:
1708 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1709 * testsuite/30_threads/shared_future/members/clock_neg.cc:
1711 * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
1713 * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
1715 * testsuite/30_threads/stop_token/1.cc: Likewise.
1716 * testsuite/30_threads/stop_token/2.cc: Likewise.
1717 * testsuite/30_threads/stop_token/stop_callback.cc: Likewise.
1718 * testsuite/30_threads/stop_token/stop_callback/deadlock.cc:
1720 * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
1722 * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
1724 * testsuite/30_threads/stop_token/stop_callback/invoke.cc:
1726 * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
1727 * testsuite/30_threads/stop_token/stop_source/assign.cc:
1729 * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
1730 * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
1732 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
1733 * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
1735 * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
1738 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1740 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
1741 Remove dg-options -std=gnu++2a.
1742 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
1744 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
1746 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
1748 * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
1749 * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
1751 * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise.
1752 * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc:
1754 * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
1755 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
1757 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
1758 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
1760 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
1762 * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
1763 * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
1765 * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise.
1766 * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc:
1768 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
1769 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
1771 * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
1772 * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
1773 * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise.
1774 * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise.
1775 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
1776 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
1777 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
1778 * testsuite/27_io/basic_stringstream/cons/char/97719.cc:
1780 * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
1782 * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise.
1783 * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc:
1785 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
1786 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
1788 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
1789 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
1790 * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise.
1791 * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise.
1792 * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise.
1793 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
1794 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
1795 * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise.
1796 * testsuite/27_io/basic_syncstream/requirements/types.cc:
1798 * testsuite/27_io/filesystem/iterators/106201.cc: Likewise.
1799 * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise.
1800 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc:
1802 * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
1805 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1807 * testsuite/26_numerics/accumulate/constexpr.cc: Remove
1808 dg-options -std=gnu++2a.
1809 * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise.
1810 * testsuite/26_numerics/adjacent_difference/constexpr.cc:
1812 * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise.
1813 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
1814 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
1815 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1816 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc:
1818 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1819 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1820 * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise.
1821 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1822 * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
1823 * testsuite/26_numerics/bit/header-2.cc: Likewise.
1824 * testsuite/26_numerics/bit/header.cc: Likewise.
1825 * testsuite/26_numerics/complex/1.cc: Likewise.
1826 * testsuite/26_numerics/complex/2.cc: Likewise.
1827 * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc:
1829 * testsuite/26_numerics/complex/operators/more_constexpr.cc:
1831 * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
1833 * testsuite/26_numerics/complex/value_operations/more_constexpr.cc:
1835 * testsuite/26_numerics/endian/1.cc: Likewise.
1836 * testsuite/26_numerics/endian/2.cc: Likewise.
1837 * testsuite/26_numerics/endian/3.cc: Likewise.
1838 * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
1839 * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
1840 * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
1841 * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise.
1842 * testsuite/26_numerics/iota/constexpr.cc: Likewise.
1843 * testsuite/26_numerics/lerp/1.cc: Likewise.
1844 * testsuite/26_numerics/lerp/constexpr.cc: Likewise.
1845 * testsuite/26_numerics/lerp/version.cc: Likewise.
1846 * testsuite/26_numerics/midpoint/floating.cc: Likewise.
1847 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1848 * testsuite/26_numerics/midpoint/pointer.cc: Likewise.
1849 * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise.
1850 * testsuite/26_numerics/midpoint/version.cc: Likewise.
1851 * testsuite/26_numerics/numbers/1.cc: Likewise.
1852 * testsuite/26_numerics/numbers/2.cc: Likewise.
1853 * testsuite/26_numerics/numbers/3.cc: Likewise.
1854 * testsuite/26_numerics/numbers/float128.cc: Likewise.
1855 * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise.
1856 * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
1857 * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise.
1858 * testsuite/26_numerics/random/concept.cc: Likewise.
1859 * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
1860 * testsuite/26_numerics/slice/compare.cc: Likewise.
1861 * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
1863 * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
1865 * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
1867 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1869 * testsuite/24_iterators/aliases.cc: Remove dg-options
1871 * testsuite/24_iterators/associated_types/incrementable.traits.cc:
1873 * testsuite/24_iterators/associated_types/iterator.traits.cc:
1875 * testsuite/24_iterators/associated_types/readable.traits.cc:
1877 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1879 * testsuite/24_iterators/back_insert_iterator/pr93884.cc:
1881 * testsuite/24_iterators/bidirectional/concept.cc: Likewise.
1882 * testsuite/24_iterators/common_iterator/1.cc: Likewise.
1883 * testsuite/24_iterators/common_iterator/100823.cc: Likewise.
1884 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
1885 * testsuite/24_iterators/contiguous/concept.cc: Likewise.
1886 * testsuite/24_iterators/contiguous/tag.cc: Likewise.
1887 * testsuite/24_iterators/counted_iterator/1.cc: Likewise.
1888 * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise.
1889 * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise.
1890 * testsuite/24_iterators/customization_points/92894.cc:
1892 * testsuite/24_iterators/customization_points/iter_move.cc:
1894 * testsuite/24_iterators/customization_points/iter_swap.cc:
1896 * testsuite/24_iterators/customization_points/lwg3420.cc:
1898 * testsuite/24_iterators/forward/concept.cc: Likewise.
1899 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1901 * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
1903 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
1905 * testsuite/24_iterators/indirect_callable/92894.cc: Likewise.
1906 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1908 * testsuite/24_iterators/indirect_callable/projected.cc:
1910 * testsuite/24_iterators/input/concept.cc: Likewise.
1911 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
1912 * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
1914 * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise.
1915 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
1917 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1919 * testsuite/24_iterators/move_iterator/cust.cc: Likewise.
1920 * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise.
1921 * testsuite/24_iterators/move_iterator/input_iterator.cc:
1923 * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
1924 * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise.
1925 * testsuite/24_iterators/move_iterator/move_only.cc: Likewise.
1926 * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise.
1927 * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
1929 * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise.
1930 * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise.
1931 * testsuite/24_iterators/output/concept.cc: Likewise.
1932 * testsuite/24_iterators/random_access/concept.cc: Likewise.
1933 * testsuite/24_iterators/range_access/range_access_cpp20.cc:
1935 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1937 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1938 * testsuite/24_iterators/range_operations/advance.cc: Likewise.
1939 * testsuite/24_iterators/range_operations/advance_overflow.cc:
1941 * testsuite/24_iterators/range_operations/distance.cc: Likewise.
1942 * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise.
1943 * testsuite/24_iterators/range_operations/next.cc: Likewise.
1944 * testsuite/24_iterators/range_operations/prev.cc: Likewise.
1945 * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise.
1946 * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise.
1947 * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
1950 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1952 * testsuite/23_containers/array/comparison_operators/96851.cc:
1953 Remove dg-options -std=gnu++2a.
1954 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
1956 * testsuite/23_containers/array/creation/1.cc: Likewise.
1957 * testsuite/23_containers/array/creation/110167.cc: Likewise.
1958 * testsuite/23_containers/array/creation/2.cc: Likewise.
1959 * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
1960 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
1962 * testsuite/23_containers/array/requirements/constexpr_swap.cc:
1964 * testsuite/23_containers/deque/48101-3_neg.cc: Likewise.
1965 * testsuite/23_containers/deque/erasure.cc: Likewise.
1966 * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
1968 * testsuite/23_containers/deque/operators/cmp_c++20.cc:
1970 * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise.
1971 * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise.
1972 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
1973 * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
1975 * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc:
1977 * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc:
1979 * testsuite/23_containers/list/48101-3_neg.cc: Likewise.
1980 * testsuite/23_containers/list/cmp_c++20.cc: Likewise.
1981 * testsuite/23_containers/list/erasure.cc: Likewise.
1982 * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
1984 * testsuite/23_containers/list/operations/remove_cxx20_return.cc:
1986 * testsuite/23_containers/list/operations/unique_cxx20_return.cc:
1988 * testsuite/23_containers/map/48101-3_neg.cc: Likewise.
1989 * testsuite/23_containers/map/erasure.cc: Likewise.
1990 * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
1992 * testsuite/23_containers/map/operations/contains.cc: Likewise.
1993 * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise.
1994 * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise.
1995 * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
1997 * testsuite/23_containers/multimap/operations/contains.cc:
1999 * testsuite/23_containers/multimap/operators/cmp_c++20.cc:
2001 * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise.
2002 * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
2004 * testsuite/23_containers/multiset/operations/contains.cc:
2006 * testsuite/23_containers/multiset/operators/cmp_c++20.cc:
2008 * testsuite/23_containers/priority_queue/92878_92947.cc:
2010 * testsuite/23_containers/queue/92878_92947.cc: Likewise.
2011 * testsuite/23_containers/queue/cmp_c++20.cc: Likewise.
2012 * testsuite/23_containers/set/48101-3_neg.cc: Likewise.
2013 * testsuite/23_containers/set/erasure.cc: Likewise.
2014 * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
2016 * testsuite/23_containers/set/operations/contains.cc: Likewise.
2017 * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise.
2018 * testsuite/23_containers/span/1.cc: Likewise.
2019 * testsuite/23_containers/span/101411.cc: Likewise.
2020 * testsuite/23_containers/span/2.cc: Likewise.
2021 * testsuite/23_containers/span/deduction.cc: Likewise.
2022 * testsuite/23_containers/span/explicit.cc: Likewise.
2023 * testsuite/23_containers/span/layout_compat.cc: Likewise.
2024 * testsuite/23_containers/span/lwg3255.cc: Likewise.
2025 * testsuite/23_containers/span/nothrow_cons.cc: Likewise.
2026 * testsuite/23_containers/span/trivially_copyable.cc: Likewise.
2027 * testsuite/23_containers/stack/92878_92947.cc: Likewise.
2028 * testsuite/23_containers/stack/cmp_c++20.cc: Likewise.
2029 * testsuite/23_containers/unordered_map/48101-3_neg.cc:
2031 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
2032 * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
2034 * testsuite/23_containers/unordered_map/operations/1.cc:
2036 * testsuite/23_containers/unordered_map/operations/contains.cc:
2038 * testsuite/23_containers/unordered_multimap/48101-3_neg.cc:
2040 * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
2042 * testsuite/23_containers/unordered_multimap/operations/1.cc:
2044 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
2046 * testsuite/23_containers/unordered_multiset/48101-3_neg.cc:
2048 * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
2050 * testsuite/23_containers/unordered_multiset/operations/1.cc:
2052 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
2054 * testsuite/23_containers/unordered_set/48101-3_neg.cc:
2056 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
2057 * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
2059 * testsuite/23_containers/unordered_set/operations/1.cc:
2061 * testsuite/23_containers/unordered_set/operations/contains.cc:
2063 * testsuite/23_containers/vector/48101-3_neg.cc: Likewise.
2064 * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
2066 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
2067 * testsuite/23_containers/vector/bool/cons/constexpr.cc:
2069 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
2071 * testsuite/23_containers/vector/bool/iterator_c++20.cc:
2073 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
2075 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
2077 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
2079 * testsuite/23_containers/vector/capacity/constexpr.cc:
2081 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
2082 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
2083 * testsuite/23_containers/vector/data_access/constexpr.cc:
2085 * testsuite/23_containers/vector/element_access/constexpr.cc:
2087 * testsuite/23_containers/vector/erasure.cc: Likewise.
2088 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
2090 * testsuite/23_containers/vector/modifiers/constexpr.cc:
2092 * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
2094 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
2096 * testsuite/23_containers/vector/requirements/version.cc:
2099 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2101 * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove
2102 dg-options -std=gnu++20.
2103 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
2105 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
2107 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
2108 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
2110 * testsuite/21_strings/basic_string/literals/constexpr.cc:
2112 * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
2114 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
2116 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
2118 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
2120 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
2122 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
2124 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
2126 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
2128 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
2130 * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc:
2132 * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
2134 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2136 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
2138 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc:
2140 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
2142 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
2144 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
2146 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
2148 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
2150 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
2152 * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
2154 * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
2156 * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
2158 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
2161 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2163 * testsuite/20_util/allocator/105975.cc: Remove dg-options
2165 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
2166 * testsuite/20_util/allocator/requirements/constexpr.cc:
2168 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
2170 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
2171 * testsuite/20_util/allocator_traits/header.cc: Likewise.
2172 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
2174 * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
2175 * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
2176 * testsuite/20_util/assume_aligned/1.cc: Likewise.
2177 * testsuite/20_util/assume_aligned/2_neg.cc: Likewise.
2178 * testsuite/20_util/assume_aligned/3.cc: Likewise.
2179 * testsuite/20_util/assume_aligned/97132.cc: Likewise.
2180 * testsuite/20_util/bind/constexpr.cc: Likewise.
2181 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
2182 * testsuite/20_util/common_reference/100894.cc: Likewise.
2183 * testsuite/20_util/common_reference/requirements/alias_decl.cc:
2185 * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc:
2187 * testsuite/20_util/common_reference/requirements/typedefs.cc:
2189 * testsuite/20_util/duration/comparison_operators/three_way.cc:
2191 * testsuite/20_util/exchange/constexpr.cc: Likewise.
2192 * testsuite/20_util/exchange/noexcept.cc: Likewise.
2193 * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise.
2194 * testsuite/20_util/from_chars/compare.cc: Likewise.
2195 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
2196 * testsuite/20_util/function_objects/bind_front/107784.cc:
2198 * testsuite/20_util/function_objects/bind_front/111327.cc:
2200 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
2201 * testsuite/20_util/function_objects/bind_front/97101.cc:
2203 * testsuite/20_util/function_objects/bind_front/constexpr.cc:
2205 * testsuite/20_util/function_objects/constexpr_searcher.cc:
2207 * testsuite/20_util/function_objects/identity/1.cc: Likewise.
2208 * testsuite/20_util/function_objects/invoke/constexpr.cc:
2210 * testsuite/20_util/function_objects/mem_fn/constexpr.cc:
2212 * testsuite/20_util/function_objects/not_fn/constexpr.cc:
2214 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
2215 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
2216 * testsuite/20_util/integer_comparisons/equal.cc: Likewise.
2217 * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise.
2218 * testsuite/20_util/integer_comparisons/greater.cc: Likewise.
2219 * testsuite/20_util/integer_comparisons/greater_equal.cc:
2221 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
2223 * testsuite/20_util/integer_comparisons/greater_neg.cc:
2225 * testsuite/20_util/integer_comparisons/in_range.cc: Likewise.
2226 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
2228 * testsuite/20_util/integer_comparisons/less.cc: Likewise.
2229 * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
2230 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
2232 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
2233 * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
2234 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
2236 * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc:
2238 * testsuite/20_util/is_bounded_array/requirements/typedefs.cc:
2240 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
2241 * testsuite/20_util/is_constant_evaluated/1.cc: Likewise.
2242 * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise.
2243 * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
2244 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
2246 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
2247 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
2248 * testsuite/20_util/is_nothrow_constructible/value_c++20.cc:
2250 * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc:
2252 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
2254 * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise.
2255 * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise.
2256 * testsuite/20_util/is_pointer_interconvertible/value.cc:
2258 * testsuite/20_util/is_pointer_interconvertible/version.cc:
2260 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
2262 * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc:
2264 * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc:
2266 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
2267 * testsuite/20_util/optional/assignment/92878_92947.cc:
2269 * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
2270 * testsuite/20_util/optional/constexpr/assign.cc: Likewise.
2271 * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise.
2272 * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise.
2273 * testsuite/20_util/optional/constexpr/swap.cc: Likewise.
2274 * testsuite/20_util/optional/relops/96269.cc: Likewise.
2275 * testsuite/20_util/optional/relops/three_way.cc: Likewise.
2276 * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc:
2278 * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
2279 * testsuite/20_util/pair/constexpr_assign.cc: Likewise.
2280 * testsuite/20_util/pair/constexpr_swap.cc: Likewise.
2281 * testsuite/20_util/pair/requirements/structural.cc: Likewise.
2282 * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc:
2284 * testsuite/20_util/polymorphic_allocator/allocate_object.cc:
2286 * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc:
2288 * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise.
2289 * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise.
2290 * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise.
2291 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc:
2293 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
2295 * testsuite/20_util/remove_cvref/value.cc: Likewise.
2296 * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:
2298 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2300 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
2301 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
2303 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
2304 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
2306 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
2307 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
2308 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
2309 * testsuite/20_util/time_point/4.cc: Likewise.
2310 * testsuite/20_util/time_point/comparison_operators/three_way.cc:
2312 * testsuite/20_util/to_address/1.cc: Likewise.
2313 * testsuite/20_util/to_address/1_neg.cc: Likewise.
2314 * testsuite/20_util/to_address/debug.cc: Likewise.
2315 * testsuite/20_util/to_address/lwg3545.cc: Likewise.
2316 * testsuite/20_util/to_chars/compare.cc: Likewise.
2317 * testsuite/20_util/tuple/comparison_operators/three_way.cc:
2319 * testsuite/20_util/tuple/cons/102270.cc: Likewise.
2320 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
2322 * testsuite/20_util/tuple/constexpr_swap.cc: Likewise.
2323 * testsuite/20_util/type_identity/requirements/alias_decl.cc:
2325 * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc:
2327 * testsuite/20_util/type_identity/requirements/typedefs.cc:
2329 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
2331 * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc:
2333 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
2335 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
2337 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
2339 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise.
2340 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
2341 * testsuite/20_util/unwrap_reference/2.cc: Likewise.
2342 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
2343 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
2344 * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise.
2345 * testsuite/20_util/uses_allocator/make_obj.cc: Likewise.
2346 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
2348 * testsuite/20_util/variant/92878_92947.cc: Likewise.
2349 * testsuite/20_util/variant/95915.cc: Likewise.
2350 * testsuite/20_util/variant/constexpr.cc: Likewise.
2351 * testsuite/20_util/variant/relops/three_way.cc: Likewise.
2352 * testsuite/20_util/variant/visit_neg.cc: Likewise.
2353 * testsuite/20_util/variant/visit_r.cc: Likewise.
2354 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2356 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2358 * testsuite/18_support/comparisons/algorithms/fallback.cc:
2359 Remove dg-options -std=gnu++2a.
2360 * testsuite/18_support/comparisons/algorithms/partial_order.cc:
2362 * testsuite/18_support/comparisons/algorithms/strong_order.cc:
2364 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
2366 * testsuite/18_support/comparisons/algorithms/weak_order.cc:
2368 * testsuite/18_support/comparisons/categories/94565.cc:
2370 * testsuite/18_support/comparisons/categories/partialord.cc:
2372 * testsuite/18_support/comparisons/categories/strongord.cc:
2374 * testsuite/18_support/comparisons/categories/weakord.cc:
2376 * testsuite/18_support/comparisons/categories/zero_neg.cc:
2378 * testsuite/18_support/comparisons/common/1.cc: Likewise.
2379 * testsuite/18_support/comparisons/object/93479.cc: Likewise.
2380 * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise.
2382 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2384 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
2385 Remove dg-options -std=gnu++2a.
2386 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
2387 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
2388 * testsuite/29_atomics/atomic/requirements/types_neg.cc:
2390 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
2391 * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise.
2392 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
2393 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
2394 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise.
2395 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
2396 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
2397 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise.
2398 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise.
2399 * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
2400 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
2401 * testsuite/29_atomics/atomic_float/1.cc: Likewise.
2402 * testsuite/29_atomics/atomic_float/95282.cc: Likewise.
2403 * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
2404 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
2405 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
2406 * testsuite/29_atomics/atomic_integral/cons/value_init.cc:
2408 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2409 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
2411 * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
2412 * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
2413 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
2414 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
2415 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
2416 * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
2417 * testsuite/29_atomics/headers/atomic/types_std_c++20.cc:
2419 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
2421 * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc:
2423 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
2426 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2428 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test.
2429 * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test.
2431 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2433 * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New
2435 * config.h.in: Regenerate.
2436 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new
2437 basic_filebuf members.
2438 * config/io/basic_file_stdio.cc (__basic_file::native_handle):
2439 Define new function.
2440 * config/io/basic_file_stdio.h (__basic_file::native_handle):
2441 Declare new function.
2442 * configure: Regenerate.
2443 * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES.
2444 * include/bits/version.def (fstream_native_handles): New macro.
2445 * include/bits/version.h: Regenerate.
2446 * include/std/fstream (basic_filebuf::native_handle)
2447 (basic_fstream::native_handle, basic_ifstream::native_handle)
2448 (basic_ofstream::native_handle): New functions.
2449 * src/c++11/Makefile.am: Move compilation of basic_file.cc,
2450 locale_init.cc and localename.cc to here.
2451 * src/c++11/Makefile.in: Regenerate.
2452 * src/c++98/locale_init.cc: Moved to...
2453 * src/c++11/locale_init.cc: ...here.
2454 * src/c++98/localename.cc: Moved to...
2455 * src/c++11/localename.cc: ...here.
2456 * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc
2457 and localename.cc from here.
2458 * src/c++98/Makefile.in: Regenerate.
2459 * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test.
2460 * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test.
2461 * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test.
2462 * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test.
2463 * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test.
2464 * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test.
2465 * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test.
2467 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2469 * testsuite/libstdc++-dg/conformance.exp: Add log line when
2470 using testsuite_files.
2472 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2474 * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg
2476 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
2478 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
2480 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
2482 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
2484 * testsuite/20_util/synchronized_pool_resource/cons.cc:
2486 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
2488 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
2490 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
2492 * testsuite/20_util/synchronized_pool_resource/options.cc:
2494 * testsuite/20_util/synchronized_pool_resource/release.cc:
2496 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
2498 * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
2500 * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
2502 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2505 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2507 * testsuite/23_containers/span/back_assert_neg.cc: Remove
2508 dg-options and add effective target selector to dg-do. Add
2510 * testsuite/23_containers/span/back_neg.cc: Likewise.
2511 * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
2512 * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
2513 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
2514 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
2515 * testsuite/23_containers/span/first_neg.cc: Likewise.
2516 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
2517 * testsuite/23_containers/span/front_neg.cc: Likewise.
2518 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
2519 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2520 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
2521 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
2522 * testsuite/23_containers/span/last_neg.cc: Likewise.
2523 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
2525 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
2527 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
2529 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
2531 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
2533 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
2534 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
2535 * testsuite/24_iterators/range_operations/advance_debug_neg.cc:
2538 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2540 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove
2542 * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise.
2543 * testsuite/18_support/type_info/constexpr.cc: Likewise.
2544 * testsuite/19_diagnostics/stacktrace/current.cc: Likewise.
2545 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2546 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2547 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
2548 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
2549 * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise.
2550 * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise.
2551 * testsuite/20_util/bitset/access/constexpr.cc: Likewise.
2552 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
2553 * testsuite/20_util/bitset/count/constexpr.cc: Likewise.
2554 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
2555 * testsuite/20_util/bitset/operations/constexpr_c++23.cc:
2557 * testsuite/20_util/bitset/version.cc: Likewise.
2558 * testsuite/20_util/from_chars/8.cc: Likewise.
2559 * testsuite/20_util/from_chars/constexpr.cc: Likewise.
2560 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
2561 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
2562 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
2564 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
2565 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
2566 * testsuite/20_util/move_only_function/call.cc: Likewise.
2567 * testsuite/20_util/move_only_function/cons.cc: Likewise.
2568 * testsuite/20_util/move_only_function/move.cc: Likewise.
2569 * testsuite/20_util/move_only_function/version.cc: Likewise.
2570 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
2571 * testsuite/20_util/optional/monadic/or_else.cc: Likewise.
2572 * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
2573 * testsuite/20_util/optional/monadic/pr109242.cc: Likewise.
2574 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
2575 * testsuite/20_util/pair/p2321r2.cc: Likewise.
2576 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
2577 * testsuite/20_util/reference_from_temporary/value2.cc:
2579 * testsuite/20_util/reference_from_temporary/version.cc:
2581 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
2582 * testsuite/20_util/to_chars/float128_c++23.cc: Likewise.
2583 * testsuite/20_util/to_chars/float16_c++23.cc: Likewise.
2584 * testsuite/20_util/to_chars/version.cc: Likewise.
2585 * testsuite/20_util/to_underlying/1.cc: Likewise.
2586 * testsuite/20_util/to_underlying/version.cc: Likewise.
2587 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
2588 * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise.
2589 * testsuite/20_util/unique_ptr/comparison/constexpr.cc:
2591 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
2593 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
2594 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise.
2595 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise.
2596 * testsuite/20_util/unreachable/1.cc: Likewise.
2597 * testsuite/20_util/unreachable/version.cc: Likewise.
2598 * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise.
2599 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise.
2600 * testsuite/21_strings/basic_string/operations/contains/char.cc:
2602 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise.
2603 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise.
2604 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise.
2605 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise.
2606 * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise.
2607 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise.
2608 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise.
2609 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise.
2610 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
2611 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
2612 * testsuite/23_containers/vector/bool/element_access/1.cc:
2614 * testsuite/24_iterators/const_iterator/1.cc: Likewise.
2615 * testsuite/25_algorithms/contains/1.cc: Likewise.
2616 * testsuite/25_algorithms/contains_subrange/1.cc: Likewise.
2617 * testsuite/25_algorithms/find_last/1.cc: Likewise.
2618 * testsuite/25_algorithms/find_last_if/1.cc: Likewise.
2619 * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise.
2620 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
2621 * testsuite/25_algorithms/fold_right/1.cc: Likewise.
2622 * testsuite/25_algorithms/iota/1.cc: Likewise.
2623 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
2624 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
2625 * testsuite/26_numerics/complex/ext_c++23.cc: Likewise.
2626 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise.
2627 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
2629 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
2631 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
2633 * testsuite/26_numerics/numbers/4.cc: Likewise.
2634 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise.
2635 * testsuite/27_io/filesystem/path/native/conv_c++23.cc:
2637 * testsuite/27_io/spanstream/1.cc: Likewise.
2638 * testsuite/27_io/spanstream/2.cc: Likewise.
2639 * testsuite/27_io/spanstream/version.cc: Likewise.
2640 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc:
2642 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
2644 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
2645 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2647 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2649 * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise.
2650 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc:
2652 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
2653 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
2654 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
2655 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
2656 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
2657 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
2658 * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise.
2659 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
2660 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
2661 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
2662 * testsuite/std/ranges/range_adaptor_closure.cc: Likewise.
2663 * testsuite/std/ranges/repeat/1.cc: Likewise.
2664 * testsuite/std/ranges/version_c++23.cc: Likewise.
2665 * testsuite/std/ranges/zip/1.cc: Likewise.
2666 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
2668 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2670 * testsuite/20_util/expected/assign.cc: Remove dg-options.
2671 * testsuite/20_util/expected/bad.cc: Likewise.
2672 * testsuite/20_util/expected/cons.cc: Likewise.
2673 * testsuite/20_util/expected/equality.cc: Likewise.
2674 * testsuite/20_util/expected/illformed_neg.cc: Likewise.
2675 * testsuite/20_util/expected/lwg3877.cc: Likewise.
2676 * testsuite/20_util/expected/lwg3938.cc: Likewise.
2677 * testsuite/20_util/expected/monadic.cc: Likewise.
2678 * testsuite/20_util/expected/observers.cc: Likewise.
2679 * testsuite/20_util/expected/requirements.cc: Likewise.
2680 * testsuite/20_util/expected/swap.cc: Likewise.
2681 * testsuite/20_util/expected/synopsis.cc: Likewise.
2682 * testsuite/20_util/expected/unexpected.cc: Likewise.
2683 * testsuite/20_util/expected/version.cc: Likewise.
2685 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2687 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc:
2689 * testsuite/20_util/duration/io.cc: Likewise.
2690 * testsuite/std/time/clock/file/io.cc: Likewise.
2691 * testsuite/std/time/clock/file/members.cc: Likewise.
2692 * testsuite/std/time/clock/file/overview.cc: Likewise.
2693 * testsuite/std/time/clock/gps/1.cc: Likewise.
2694 * testsuite/std/time/clock/gps/io.cc: Likewise.
2695 * testsuite/std/time/clock/local/io.cc: Likewise.
2696 * testsuite/std/time/clock/system/io.cc: Likewise.
2697 * testsuite/std/time/clock/tai/1.cc: Likewise.
2698 * testsuite/std/time/clock/tai/io.cc: Likewise.
2699 * testsuite/std/time/clock/utc/1.cc: Likewise.
2700 * testsuite/std/time/clock/utc/io.cc: Likewise.
2701 * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise.
2702 * testsuite/std/time/day/1.cc: Likewise.
2703 * testsuite/std/time/day/io.cc: Likewise.
2704 * testsuite/std/time/exceptions.cc: Likewise.
2705 * testsuite/std/time/format.cc: Likewise.
2706 * testsuite/std/time/hh_mm_ss/1.cc: Likewise.
2707 * testsuite/std/time/hh_mm_ss/109772.cc: Likewise.
2708 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
2709 * testsuite/std/time/is_am/1.cc: Likewise.
2710 * testsuite/std/time/is_pm/1.cc: Likewise.
2711 * testsuite/std/time/make12/1.cc: Likewise.
2712 * testsuite/std/time/make24/1.cc: Likewise.
2713 * testsuite/std/time/month/1.cc: Likewise.
2714 * testsuite/std/time/month/io.cc: Likewise.
2715 * testsuite/std/time/month_day/1.cc: Likewise.
2716 * testsuite/std/time/month_day/io.cc: Likewise.
2717 * testsuite/std/time/month_day_last/1.cc: Likewise.
2718 * testsuite/std/time/month_day_last/io.cc: Likewise.
2719 * testsuite/std/time/month_weekday/1.cc: Likewise.
2720 * testsuite/std/time/month_weekday/io.cc: Likewise.
2721 * testsuite/std/time/month_weekday_last/1.cc: Likewise.
2722 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
2723 * testsuite/std/time/parse.cc: Likewise.
2724 * testsuite/std/time/syn_c++20.cc: Likewise.
2725 * testsuite/std/time/time_zone/get_info_local.cc: Likewise.
2726 * testsuite/std/time/time_zone/get_info_sys.cc: Likewise.
2727 * testsuite/std/time/time_zone/requirements.cc: Likewise.
2728 * testsuite/std/time/traits/is_clock.cc: Likewise.
2729 * testsuite/std/time/tzdb/1.cc: Likewise.
2730 * testsuite/std/time/tzdb/leap_seconds.cc: Likewise.
2731 * testsuite/std/time/tzdb_list/1.cc: Likewise.
2732 * testsuite/std/time/tzdb_list/requirements.cc: Likewise.
2733 * testsuite/std/time/weekday/1.cc: Likewise.
2734 * testsuite/std/time/weekday/io.cc: Likewise.
2735 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
2736 * testsuite/std/time/weekday_last/1.cc: Likewise.
2737 * testsuite/std/time/weekday_last/io.cc: Likewise.
2738 * testsuite/std/time/year/1.cc: Likewise.
2739 * testsuite/std/time/year/2.cc: Likewise.
2740 * testsuite/std/time/year/io.cc: Likewise.
2741 * testsuite/std/time/weekday_indexed/1.cc: Likewise.
2742 * testsuite/std/time/year_month/1.cc: Likewise.
2743 * testsuite/std/time/year_month/2.cc: Likewise.
2744 * testsuite/std/time/year_month/io.cc: Likewise.
2745 * testsuite/std/time/year_month_day/1.cc: Likewise.
2746 * testsuite/std/time/year_month_day/2.cc: Likewise.
2747 * testsuite/std/time/year_month_day/3.cc: Likewise.
2748 * testsuite/std/time/year_month_day/4.cc: Likewise.
2749 * testsuite/std/time/year_month_day/io.cc: Likewise.
2750 * testsuite/std/time/year_month_day_last/1.cc: Likewise.
2751 * testsuite/std/time/year_month_day_last/2.cc: Likewise.
2752 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
2753 * testsuite/std/time/year_month_weekday/1.cc: Likewise.
2754 * testsuite/std/time/year_month_weekday/2.cc: Likewise.
2755 * testsuite/std/time/year_month_weekday/3.cc: Likewise.
2756 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
2757 * testsuite/std/time/year_month_weekday_last/1.cc: Likewise.
2758 * testsuite/std/time/year_month_weekday_last/2.cc: Likewise.
2759 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
2760 * testsuite/std/time/zoned_time/1.cc: Likewise.
2761 * testsuite/std/time/zoned_time/custom.cc: Likewise.
2762 * testsuite/std/time/zoned_time/deduction.cc: Likewise.
2763 * testsuite/std/time/zoned_time/io.cc: Likewise.
2764 * testsuite/std/time/zoned_time/req_neg.cc: Likewise.
2765 * testsuite/std/time/zoned_time/requirements.cc: Likewise.
2766 * testsuite/std/time/zoned_traits.cc: Likewise.
2768 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2770 * testsuite/std/format/arguments/args.cc: Remove dg-options.
2771 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
2772 * testsuite/std/format/error.cc: Likewise.
2773 * testsuite/std/format/format_string.cc: Likewise.
2774 * testsuite/std/format/formatter/concept.cc: Likewise.
2775 * testsuite/std/format/formatter/ext_float.cc: Likewise.
2776 * testsuite/std/format/formatter/requirements.cc: Likewise.
2777 * testsuite/std/format/functions/107871.cc: Likewise.
2778 * testsuite/std/format/functions/format.cc: Likewise.
2779 * testsuite/std/format/functions/format_to.cc: Likewise.
2780 * testsuite/std/format/functions/format_to_n.cc: Likewise.
2781 * testsuite/std/format/functions/size.cc: Likewise.
2782 * testsuite/std/format/functions/vformat_to.cc: Likewise.
2783 * testsuite/std/format/parse_ctx.cc: Likewise.
2784 * testsuite/std/format/string.cc: Likewise.
2785 * testsuite/std/format/string_neg.cc: Likewise.
2786 * testsuite/std/format/functions/format_c++23.cc: Removed.
2788 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2790 * testsuite/20_util/function_objects/range.cmp/equal_to.cc:
2792 * testsuite/20_util/function_objects/range.cmp/greater.cc:
2794 * testsuite/20_util/function_objects/range.cmp/greater_equal.cc:
2796 * testsuite/20_util/function_objects/range.cmp/less.cc:
2798 * testsuite/20_util/function_objects/range.cmp/less_equal.cc:
2800 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc:
2802 * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
2804 * testsuite/20_util/specialized_algorithms/construct_at/1.cc:
2806 * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
2808 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
2810 * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
2812 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2814 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2816 * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
2818 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2820 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
2822 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2824 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2826 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise.
2827 * testsuite/25_algorithms/adjacent_find/constrained.cc:
2829 * testsuite/25_algorithms/all_of/constexpr.cc: Likewise.
2830 * testsuite/25_algorithms/all_of/constrained.cc: Likewise.
2831 * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
2832 * testsuite/25_algorithms/any_of/constrained.cc: Likewise.
2833 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
2834 * testsuite/25_algorithms/binary_search/constrained.cc:
2836 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
2837 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
2838 * testsuite/25_algorithms/copy/95578.cc: Likewise.
2839 * testsuite/25_algorithms/copy/constexpr.cc: Likewise.
2840 * testsuite/25_algorithms/copy/constrained.cc: Likewise.
2841 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
2842 * testsuite/25_algorithms/copy_backward/95578.cc: Likewise.
2843 * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
2844 * testsuite/25_algorithms/copy_backward/constrained.cc:
2846 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
2848 * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise.
2849 * testsuite/25_algorithms/copy_if/constrained.cc: Likewise.
2850 * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise.
2851 * testsuite/25_algorithms/copy_n/constrained.cc: Likewise.
2852 * testsuite/25_algorithms/count/constexpr.cc: Likewise.
2853 * testsuite/25_algorithms/count/constrained.cc: Likewise.
2854 * testsuite/25_algorithms/count_if/constexpr.cc: Likewise.
2855 * testsuite/25_algorithms/count_if/constrained.cc: Likewise.
2856 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
2857 * testsuite/25_algorithms/equal/95578.cc: Likewise.
2858 * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
2859 * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
2860 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
2861 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
2863 * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
2864 * testsuite/25_algorithms/equal_range/constrained.cc: Likewise.
2865 * testsuite/25_algorithms/fill/94017.cc: Likewise.
2866 * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
2867 * testsuite/25_algorithms/fill/constrained.cc: Likewise.
2868 * testsuite/25_algorithms/fill_n/94017.cc: Likewise.
2869 * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise.
2870 * testsuite/25_algorithms/fill_n/constrained.cc: Likewise.
2871 * testsuite/25_algorithms/find/constexpr.cc: Likewise.
2872 * testsuite/25_algorithms/find/constrained.cc: Likewise.
2873 * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
2874 * testsuite/25_algorithms/find_end/constrained.cc: Likewise.
2875 * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise.
2876 * testsuite/25_algorithms/find_first_of/constrained.cc:
2878 * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
2879 * testsuite/25_algorithms/find_if/constrained.cc: Likewise.
2880 * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise.
2881 * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise.
2882 * testsuite/25_algorithms/for_each/constexpr.cc: Likewise.
2883 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
2884 * testsuite/25_algorithms/generate/constexpr.cc: Likewise.
2885 * testsuite/25_algorithms/generate/constrained.cc: Likewise.
2886 * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise.
2887 * testsuite/25_algorithms/generate_n/constrained.cc: Likewise.
2888 * testsuite/25_algorithms/heap/constrained.cc: Likewise.
2889 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
2890 * testsuite/25_algorithms/inplace_merge/constrained.cc:
2892 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
2893 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
2894 * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
2895 * testsuite/25_algorithms/is_partitioned/constrained.cc:
2897 * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
2898 * testsuite/25_algorithms/is_permutation/constrained.cc:
2900 * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
2901 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2902 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
2904 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2906 * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise.
2907 * testsuite/25_algorithms/lexicographical_compare/93972.cc:
2909 * testsuite/25_algorithms/lexicographical_compare/95578.cc:
2911 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
2913 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2915 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
2917 * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc:
2919 * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
2920 * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise.
2921 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
2923 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
2925 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
2927 * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise.
2928 * testsuite/25_algorithms/max/constrained.cc: Likewise.
2929 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
2930 * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
2931 * testsuite/25_algorithms/merge/constrained.cc: Likewise.
2932 * testsuite/25_algorithms/min/constrained.cc: Likewise.
2933 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
2934 * testsuite/25_algorithms/minmax/constrained.cc: Likewise.
2935 * testsuite/25_algorithms/minmax_element/constrained.cc:
2937 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
2938 * testsuite/25_algorithms/mismatch/constrained.cc: Likewise.
2939 * testsuite/25_algorithms/move/93872.cc: Likewise.
2940 * testsuite/25_algorithms/move/95578.cc: Likewise.
2941 * testsuite/25_algorithms/move/constexpr.cc: Likewise.
2942 * testsuite/25_algorithms/move/constrained.cc: Likewise.
2943 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2944 * testsuite/25_algorithms/move_backward/95578.cc: Likewise.
2945 * testsuite/25_algorithms/move_backward/constrained.cc:
2947 * testsuite/25_algorithms/next_permutation/constexpr.cc:
2949 * testsuite/25_algorithms/next_permutation/constrained.cc:
2951 * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
2952 * testsuite/25_algorithms/none_of/constrained.cc: Likewise.
2953 * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise.
2954 * testsuite/25_algorithms/nth_element/constrained.cc: Likewise.
2955 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
2956 * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
2957 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
2959 * testsuite/25_algorithms/partial_sort_copy/constrained.cc:
2961 * testsuite/25_algorithms/partition/constexpr.cc: Likewise.
2962 * testsuite/25_algorithms/partition/constrained.cc: Likewise.
2963 * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
2964 * testsuite/25_algorithms/partition_copy/constrained.cc:
2966 * testsuite/25_algorithms/partition_point/constexpr.cc:
2968 * testsuite/25_algorithms/partition_point/constrained.cc:
2970 * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise.
2971 * testsuite/25_algorithms/prev_permutation/constexpr.cc:
2973 * testsuite/25_algorithms/prev_permutation/constrained.cc:
2975 * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise.
2976 * testsuite/25_algorithms/remove/constexpr.cc: Likewise.
2977 * testsuite/25_algorithms/remove/constrained.cc: Likewise.
2978 * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
2979 * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise.
2980 * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
2981 * testsuite/25_algorithms/remove_copy_if/constrained.cc:
2983 * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
2984 * testsuite/25_algorithms/remove_if/constrained.cc: Likewise.
2985 * testsuite/25_algorithms/replace/constrained.cc: Likewise.
2986 * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise.
2987 * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise.
2988 * testsuite/25_algorithms/replace_copy_if/constexpr.cc:
2990 * testsuite/25_algorithms/replace_copy_if/constrained.cc:
2992 * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
2993 * testsuite/25_algorithms/replace_if/constrained.cc: Likewise.
2994 * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
2995 * testsuite/25_algorithms/reverse/constrained.cc: Likewise.
2996 * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
2997 * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise.
2998 * testsuite/25_algorithms/rotate/constexpr.cc: Likewise.
2999 * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
3000 * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
3001 * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
3002 * testsuite/25_algorithms/sample/constrained.cc: Likewise.
3003 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
3004 * testsuite/25_algorithms/search/constrained.cc: Likewise.
3005 * testsuite/25_algorithms/search_n/97828.cc: Likewise.
3006 * testsuite/25_algorithms/search_n/constexpr.cc: Likewise.
3007 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
3008 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
3009 * testsuite/25_algorithms/set_difference/constrained.cc:
3011 * testsuite/25_algorithms/set_intersection/constexpr.cc:
3013 * testsuite/25_algorithms/set_intersection/constrained.cc:
3015 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
3017 * testsuite/25_algorithms/set_symmetric_difference/constrained.cc:
3019 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
3020 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
3021 * testsuite/25_algorithms/shift_left/1.cc: Likewise.
3022 * testsuite/25_algorithms/shift_right/1.cc: Likewise.
3023 * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
3024 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
3025 * testsuite/25_algorithms/sort/constrained.cc: Likewise.
3026 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
3027 * testsuite/25_algorithms/stable_partition/constrained.cc:
3029 * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
3030 * testsuite/25_algorithms/swap/constexpr.cc: Likewise.
3031 * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise.
3032 * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise.
3033 * testsuite/25_algorithms/transform/constexpr.cc: Likewise.
3034 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
3035 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
3036 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
3037 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
3038 * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise.
3039 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
3040 * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise.
3041 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
3043 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
3045 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
3048 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3050 * testsuite/std/concepts/1.cc: Remove dg-options.
3051 * testsuite/std/concepts/2.cc: Likewise.
3052 * testsuite/std/concepts/concepts.callable/invocable.cc:
3054 * testsuite/std/concepts/concepts.callable/regular_invocable.cc:
3056 * testsuite/std/concepts/concepts.callable/relation.cc:
3058 * testsuite/std/concepts/concepts.callable/strictweakorder.cc:
3060 * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise.
3061 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise.
3062 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise.
3063 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise.
3064 * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc:
3066 * testsuite/std/concepts/concepts.lang/concept.common/1.cc:
3068 * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc:
3070 * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise.
3071 * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
3073 * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise.
3074 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise.
3075 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise.
3076 * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
3078 * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise.
3079 * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise.
3080 * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
3082 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise.
3083 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise.
3084 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise.
3085 * testsuite/std/concepts/concepts.object/copyable.cc: Likewise.
3086 * testsuite/std/concepts/concepts.object/movable.cc: Likewise.
3087 * testsuite/std/concepts/concepts.object/regular.cc: Likewise.
3088 * testsuite/std/concepts/concepts.object/semiregular.cc:
3090 * testsuite/std/ranges/97600.cc: Likewise.
3091 * testsuite/std/ranges/access/101782.cc: Likewise.
3092 * testsuite/std/ranges/access/begin.cc: Likewise.
3093 * testsuite/std/ranges/access/begin_neg.cc: Likewise.
3094 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3095 * testsuite/std/ranges/access/cdata.cc: Likewise.
3096 * testsuite/std/ranges/access/cend.cc: Likewise.
3097 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3098 * testsuite/std/ranges/access/crend.cc: Likewise.
3099 * testsuite/std/ranges/access/data.cc: Likewise.
3100 * testsuite/std/ranges/access/empty.cc: Likewise.
3101 * testsuite/std/ranges/access/end.cc: Likewise.
3102 * testsuite/std/ranges/access/end_neg.cc: Likewise.
3103 * testsuite/std/ranges/access/lwg3467.cc: Likewise.
3104 * testsuite/std/ranges/access/p2602.cc: Likewise.
3105 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3106 * testsuite/std/ranges/access/rend.cc: Likewise.
3107 * testsuite/std/ranges/access/size.cc: Likewise.
3108 * testsuite/std/ranges/access/size_neg.cc: Likewise.
3109 * testsuite/std/ranges/access/ssize.cc: Likewise.
3110 * testsuite/std/ranges/adaptors/100479.cc: Likewise.
3111 * testsuite/std/ranges/adaptors/100577.cc: Likewise.
3112 * testsuite/std/ranges/adaptors/93978.cc: Likewise.
3113 * testsuite/std/ranges/adaptors/95322.cc: Likewise.
3114 * testsuite/std/ranges/adaptors/99433.cc: Likewise.
3115 * testsuite/std/ranges/adaptors/all.cc: Likewise.
3116 * testsuite/std/ranges/adaptors/common.cc: Likewise.
3117 * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
3119 * testsuite/std/ranges/adaptors/counted.cc: Likewise.
3120 * testsuite/std/ranges/adaptors/detail/copyable_box.cc:
3122 * testsuite/std/ranges/adaptors/drop.cc: Likewise.
3123 * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
3124 * testsuite/std/ranges/adaptors/elements.cc: Likewise.
3125 * testsuite/std/ranges/adaptors/filter.cc: Likewise.
3126 * testsuite/std/ranges/adaptors/join.cc: Likewise.
3127 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
3128 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
3129 * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise.
3130 * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise.
3131 * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise.
3132 * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise.
3133 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
3134 * testsuite/std/ranges/adaptors/p2281.cc: Likewise.
3135 * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise.
3136 * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
3137 * testsuite/std/ranges/adaptors/sizeof.cc: Likewise.
3138 * testsuite/std/ranges/adaptors/split.cc: Likewise.
3139 * testsuite/std/ranges/adaptors/take.cc: Likewise.
3140 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
3141 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3142 * testsuite/std/ranges/empty_view.cc: Likewise.
3143 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
3144 * testsuite/std/ranges/iota/difference_type.cc: Likewise.
3145 * testsuite/std/ranges/iota/iota_view.cc: Likewise.
3146 * testsuite/std/ranges/iota/iterator.cc: Likewise.
3147 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
3148 * testsuite/std/ranges/iota/max_size_type.cc: Likewise.
3149 * testsuite/std/ranges/istream_view.cc: Likewise.
3150 * testsuite/std/ranges/p2259.cc: Likewise.
3151 * testsuite/std/ranges/p2325.cc: Likewise.
3152 * testsuite/std/ranges/p2367.cc: Likewise.
3153 * testsuite/std/ranges/range.cc: Likewise.
3154 * testsuite/std/ranges/refinements.cc: Likewise.
3155 * testsuite/std/ranges/safe_range.cc: Likewise.
3156 * testsuite/std/ranges/safe_range_types.cc: Likewise.
3157 * testsuite/std/ranges/single_view.cc: Likewise.
3158 * testsuite/std/ranges/sized.cc: Likewise.
3159 * testsuite/std/ranges/subrange/1.cc: Likewise.
3160 * testsuite/std/ranges/subrange/97512.cc: Likewise.
3161 * testsuite/std/ranges/subrange/constexpr.cc: Likewise.
3162 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise.
3163 * testsuite/std/ranges/subrange/lwg3286.cc: Likewise.
3164 * testsuite/std/ranges/subrange/lwg3433.cc: Likewise.
3165 * testsuite/std/ranges/subrange/sizeof.cc: Likewise.
3166 * testsuite/std/ranges/subrange/tuple_like.cc: Likewise.
3167 * testsuite/std/ranges/view.cc: Likewise.
3169 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3171 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
3173 * testsuite/23_containers/span/contiguous_range_neg.cc:
3175 * testsuite/23_containers/span/everything.cc: Likewise.
3177 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3179 * testsuite/24_iterators/reverse_iterator/100639.cc: Remove
3180 dg-options and add dg-add-options strict_std.
3181 * testsuite/std/ranges/iota/93267.cc: Likewise.
3182 * testsuite/std/ranges/iota/96042.cc: Likewise.
3183 * testsuite/std/ranges/iota/size.cc: Likewise.
3184 * testsuite/std/ranges/subrange/96042.cc: Likewise.
3186 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3188 * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc:
3189 Replace dg-options -std=c++17 with dg-add-options strict_std.
3190 * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc:
3193 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3195 * testsuite/23_containers/deque/48101-2_neg.cc: Replace
3196 dg-options with target selector.
3197 * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise.
3198 * testsuite/23_containers/list/48101-2_neg.cc: Likewise.
3199 * testsuite/23_containers/map/48101-2_neg.cc: Likewise.
3200 * testsuite/23_containers/map/48101_neg.cc: Likewise.
3201 * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise.
3202 * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
3203 * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise.
3204 * testsuite/23_containers/set/48101-2_neg.cc: Likewise.
3205 * testsuite/23_containers/unordered_map/48101-2_neg.cc:
3207 * testsuite/23_containers/unordered_multimap/48101-2_neg.cc:
3209 * testsuite/23_containers/unordered_multiset/48101-2_neg.cc:
3211 * testsuite/23_containers/unordered_set/48101-2_neg.cc:
3213 * testsuite/23_containers/vector/48101-2_neg.cc: Likewise.
3215 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3217 * doc/xml/manual/test.xml: Update documentation on running and
3219 * doc/html/manual/test.html: Regenerate.
3220 * testsuite/Makefile.am: Add v3-use-std-list to site.tmp
3221 * testsuite/Makefile.in: Regenerate.
3222 * testsuite/lib/dg-options.exp (add_options_for_strict_std): New
3224 * testsuite/lib/libstdc++.exp (search_for): New utility proc.
3225 (v3-dg-runtest): New proc to replace dg-runtest.
3226 * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest.
3228 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3230 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
3231 Fix test to work for C++23 and C++26 too.
3233 2023-09-15 Patrick Palka <ppalka@redhat.com>
3235 * include/std/bit: Include <concepts>.
3236 (byteswap): Use a type-constraint instead of enable_if_t
3237 inside the return type, and use std::integral.
3238 (_If_is_unsigned_integer): Replace with ...
3239 (__unsigned_integer): ... this.
3240 (rotl): Use a type-constraint instead of enable_if_t inside
3242 (countl_zero): Likewise.
3243 (countl_one): Likewise.
3244 (countr_zero): Likewise.
3245 (countr_one): Likewise.
3246 (popcount): Likewise.
3247 (has_single_bit): Likewise.
3248 (bit_ceil): Likewise.
3249 (bit_floor): Likewise.
3250 (bit_width): Likewise.
3252 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3254 * include/std/variant (variant): Remove derivation from
3255 _Enable_default_constructor base class.
3256 (variant::variant()): Constrain.
3257 * testsuite/20_util/variant/default_ctor.cc: New test.
3259 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3262 * include/std/variant (get<T>): Remove !is_void static
3265 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3267 * include/bits/version.def (to_chars): Define new value for
3269 * include/bits/version.h: Regenerate.
3270 * include/std/charconv (to_chars_result::operator bool): New
3272 (from_chars_result::operator bool): New function.
3273 * testsuite/20_util/to_chars/version.cc: Update expected value.
3274 * testsuite/20_util/from_chars/result.cc: New test.
3275 * testsuite/20_util/to_chars/result.cc: New test.
3277 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
3280 * testsuite/20_util/integer_sequence/pr111357.cc: New test.
3282 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
3284 * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use
3285 dg-additional-files. Remove @require@ and @diff@ comments.
3286 * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
3287 * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise.
3288 * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise.
3289 * testsuite/lib/dg-options.exp (v3_additional_files): New
3291 (dg-additional-files): New proc.
3292 * testsuite/lib/libstdc++.exp (v3_target_compile): Copy
3293 additional files to test directory.
3295 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
3297 * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]:
3298 Use a plain integer for _M_work_count for single-threaded
3300 * include/experimental/memory_resource (__get_default_resource)
3301 [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for
3302 single-threaded targets.
3303 * src/c++17/default_resource.h: Adjust preprocessor conditions
3304 to match memory_resource.cc.
3305 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
3306 (atomic_mem_res): Use unsynchronized type for single-threaded
3309 2023-09-14 Christophe Lyon <christophe.lyon@linaro.org>
3311 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
3312 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
3313 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
3314 * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
3315 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
3316 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
3317 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
3318 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
3320 2023-09-14 François Dumont <fdumont@gcc.gnu.org>
3322 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
3323 { dg-require-normal-namespace "" }.
3325 2023-09-13 François Dumont <fdumont@gcc.gnu.org>
3327 * include/std/format (std::__format::_Arg_store): Explicit version
3328 namespace on make_format_args friend declaration.
3330 2023-09-12 Patrick Palka <ppalka@redhat.com>
3333 * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define
3334 a deleted fallback operator() overload. Constrain both the
3335 enabled and deleted overloads accordingly.
3336 * testsuite/20_util/function_objects/not_fn/111327.cc: New test.
3338 2023-09-12 Patrick Palka <ppalka@redhat.com>
3341 * include/std/functional (_Bind_front::operator()): Add deleted
3342 fallback overloads for each const/ref qualifier pair. Give the
3343 enabled overloads dummy constraints to make each one more
3344 specialized than the corresponding deleted overload.
3345 * testsuite/20_util/function_objects/bind_front/111327.cc: New test.
3347 2023-09-12 Patrick Palka <ppalka@redhat.com>
3349 * include/std/functional (_Bind_front0): Remove.
3350 (_Bind_front_t): Adjust.
3352 2023-09-12 Jonathan Wakely <jwakely@redhat.com>
3354 * python/libstdcxx/v6/printers.py: Reformat.
3355 * python/libstdcxx/v6/xmethods.py: Likewise.
3357 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
3359 * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
3361 (reset_sequence_ptr): New function.
3362 (_Safe_iterator_base::_M_detach)
3363 (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
3364 with acquire_sequence_ptr_for_lock.
3365 (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
3368 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
3370 * src/c++11/Makefile.am: Add new file.
3371 * src/c++11/Makefile.in: Regenerate.
3372 * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
3373 * src/c++11/assert_fail.cc: New file.
3375 2023-09-11 Ken Matsui <kmatsui@gcc.gnu.org>
3377 * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef.
3378 (_GLIBCXX_USE_BUILTIN_TRAIT): Define.
3380 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
3382 * include/bits/version.def (__cpp_lib_formatters): Define.
3383 * include/bits/version.h: Regenerate.
3384 * include/std/stacktrace (formatter<stacktrace_entry>)
3385 (formatter<basic_stacktrace<Alloc>>): Define.
3386 * include/std/thread (formatter<thread::id, charT>): Define.
3387 * testsuite/19_diagnostics/stacktrace/output.cc: New test.
3388 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
3389 std::formatter specializations.
3390 * testsuite/19_diagnostics/stacktrace/version.cc: Check
3391 __cpp_lib_formatters macro.
3392 * testsuite/30_threads/thread/id/hash.cc: Remove gthreads
3394 * testsuite/30_threads/thread/id/operators.cc: Likewise.
3395 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
3396 * testsuite/30_threads/thread/id/output.cc: New test.
3398 2023-09-11 Pekka Seppänen <pexu@gcc.mail.kapsi.fi>
3400 * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute.
3401 * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise.
3402 * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
3404 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
3406 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory.
3407 * configure: Regenerate.
3408 * doc/html/manual/*: Regenerate.
3409 * doc/xml/manual/using.xml: Update documentation on linking.
3410 * include/std/stacktrace: Remove declarations of libbacktrace
3412 (stacktrace_entry::_S_err_handler, stacktrace_entry::_S_init):
3414 (stacktrace_entry::_Info): New class.
3415 (stacktrace_entry::_M_get_info): Use _Info.
3416 (__stacktrace_impl): New class.
3417 (basic_stacktrace): Derive from __stacktrace_impl.
3418 (basic_stacktrace::current): Use __stacktrace_impl::_S_current.
3419 * scripts/testsuite_flags.in: Adjust LDFLAGS to find
3420 libstdc++exp instead of libstdc++_libbacktrace.
3421 * src/Makefile.am (SUBDIRS): Add c++23 directory.
3422 * src/Makefile.in: Regenerate.
3423 * src/c++20/Makefile.am: Fix comment.
3424 * src/c++20/Makefile.in: Regenerate.
3425 * src/c++23/Makefile.am: New file.
3426 * src/c++23/Makefile.in: New file.
3427 * src/c++23/stacktrace.cc: New file with definitions of
3428 stacktrace_entry::_Info and __stacktrace_impl members.
3429 * src/experimental/Makefile.am: Use LIBADD to include other
3431 * src/experimental/Makefile.in: Regenerate.
3432 * src/libbacktrace/Makefile.am: Use noinst_LTLIBRARIES.
3433 * src/libbacktrace/Makefile.in: Regenerate.
3434 * testsuite/19_diagnostics/stacktrace/current.cc: Adjust
3435 dg-options to use -lstdc++exp.
3436 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
3437 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
3438 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
3441 2023-09-08 Alexey Lapshin <alexey.lapshin@espressif.com>
3443 * src/libbacktrace/Makefile.am: Remove -Werror.
3444 * src/libbacktrace/Makefile.in: Regenerate.
3446 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
3448 * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe.
3449 * testsuite/Makefile.in: Regenerate.
3451 2023-09-08 Yang Yujie <yangyujie@loongson.cn>
3453 * configure.host: Register t-loongarch in tmake_file.
3454 * config/cpu/loongarch/t-loongarch: New file. Manually refresh
3455 MULTISUBDIR with $(shell $(CXX) --print-multi-directory).
3457 2023-09-07 Bruno Victal <mirai@makinata.eu>
3459 * acinclude.m4: Update docbook xsl URI.
3460 * configure: Regenerate.
3462 2023-09-07 Bruno Victal <mirai@makinata.eu>
3464 * doc/Makefile.am: Fix 'doc-install-info' rule.
3465 Fix typo in commment.
3466 * doc/Makefile.in: Regenerate.
3468 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3470 * testsuite/27_io/filesystem/path/concat/94063.cc: Simplify
3471 dg-do target selector.
3473 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3475 * testsuite/config/default.exp: Remove trailing whitespace.
3476 * testsuite/lib/dg-options.exp: Likewise.
3477 * testsuite/lib/prune.exp: Likewise.
3478 * testsuite/libstdc++-abi/abi.exp: Likewise.
3479 * testsuite/libstdc++-dg/conformance.exp: Likewise.
3480 * testsuite/libstdc++-prettyprinters/prettyprinters.exp:
3482 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
3483 * testsuite/lib/libstdc++.exp: Likewise.
3484 (check_v3_target_c_std): Fix filename for temporary source file.
3486 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3488 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
3489 chmod, chdir, and getcwd.
3490 * config.h.in: Regenerate.
3491 * configure: Regenerate.
3492 * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
3493 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
3494 (fs::permissions): Use USE_CHMOD macro.
3495 * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
3496 (chmod, mkdir, getcwd, chdir): Define new macros.
3497 [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
3499 * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
3500 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
3501 (fs::permissions): Use USE_CHMOD macro.
3503 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3505 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3507 * configure: Regenerate.
3509 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3511 * testsuite/23_containers/unordered_map/operations/1.cc: Add
3512 dg-options for C++20 mode.
3513 * testsuite/23_containers/unordered_multimap/operations/1.cc:
3515 * testsuite/23_containers/unordered_multiset/operations/1.cc:
3517 * testsuite/23_containers/unordered_set/operations/1.cc:
3519 * testsuite/std/time/parse.cc: Move dg-options before dg-do.
3521 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3523 * testsuite/std/ranges/access/cbegin.cc: Adjust for C++23
3525 * testsuite/std/ranges/access/cdata.cc: Likewise.
3526 * testsuite/std/ranges/access/cend.cc: Likewise.
3527 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3528 * testsuite/std/ranges/access/crend.cc: Likewise.
3529 * testsuite/std/ranges/adaptors/take.cc: Likewise.
3530 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
3531 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3533 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3535 * include/bits/iterator_concepts.h (__imove::iter_move): Define
3536 poison pill as deleted for consistency.
3537 (__access::begin): Replace with a single declaration.
3538 * include/bits/ranges_base.h (__access::end, __access::rbegin)
3539 (__access::rend, __access::size): Likewise.
3540 * include/bits/version.def (ranges): Update value for C++23.
3541 * include/bits/version.h: Regenerate.
3542 * libsupc++/compare (__compare): Add missing poison pill
3544 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3545 of __cpp_lib_ranges.
3546 * testsuite/std/ranges/access/p2602.cc: New test.
3548 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3550 * include/bits/iterator_concepts.h (ranges::__cust_imove):
3551 Rename to ranges::__imove.
3552 (_IMove): Rename to _IterMove.
3553 (ranges::__cust_iswap): Rename to ranges::__iswap.
3554 (ranges::__cust): Rename to ranges::_Cpo.
3555 (ranges::__cust_access): Rename to ranges::__access.
3556 * include/bits/ranges_base.h (ranges::__cust_access): Rename to
3558 (ranges::__cust): Rename to ranges::_Cpo.
3559 * include/std/concepts (ranges::__cust_swap): Rename to
3561 (ranges::__cust): Rename to ranges::_Cpo.
3562 * libsupc++/compare (__cmp_cust): Rename to __compare.
3563 (__cmp_algo): Rename to _Cpo.
3565 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3567 * include/bits/version.def (ranges): Update value.
3568 * include/bits/version.h: Regenerate.
3569 * include/std/ranges (__detail::__boxable): Use
3570 move_constructible instead of copy_constructible for C++23.
3571 (__detail::__box<T>): Adjust constraints for partial
3573 (single_view, transform_view): Use __box_constructible instead
3574 of copy_constructible in constraints.
3575 (zip_transform_view, adjacent_transform_view, repeat_view): Use
3576 move_constructible instead of copy_constructible in constraints.
3577 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Check
3578 construction from move-only argument.
3579 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3580 * testsuite/std/ranges/repeat/1.cc: Likewise.
3581 * testsuite/std/ranges/single_view.cc: Likewise.
3582 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
3583 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3584 of __cpp_lib_ranges.
3586 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3588 * testsuite/util/testsuite_iterators.h (is_customization_point_object):
3589 Remove parameter name.
3591 2023-09-06 Jonathan Wakely <jwakely@redhat.com>
3593 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3595 * configure: Regenerate.
3597 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3600 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3603 * configure: Regenerate.
3604 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3605 non-Canadian builds.
3607 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3610 * configure: Regenerate.
3611 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3612 non-Canadian builds.
3614 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3616 * testsuite/26_numerics/complex/literals/types.cc: Remove
3617 dg-options and add target selector instead.
3619 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3621 * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
3622 and qualify ambiguous calls to get.
3623 * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
3624 expected result for std::pow(float, int) as per DR 550.
3626 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3628 * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
3629 and add dg-warning for deprecation warnings.
3630 * testsuite/20_util/auto_ptr/2.cc: Likewise.
3631 * testsuite/20_util/auto_ptr/3.cc: Likewise.
3632 * testsuite/20_util/auto_ptr/3946.cc: Likewise.
3633 * testsuite/20_util/auto_ptr/4.cc: Likewise.
3634 * testsuite/20_util/auto_ptr/5.cc: Likewise.
3635 * testsuite/20_util/auto_ptr/6.cc: Likewise.
3636 * testsuite/20_util/auto_ptr/7.cc: Likewise.
3637 * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
3638 * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
3640 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
3642 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
3644 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
3646 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
3648 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
3650 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
3653 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3656 * testsuite/23_containers/vector/26412-1.cc: Moved to...
3657 * testsuite/23_containers/vector/26142-1.cc: ...here.
3658 * testsuite/23_containers/vector/26412-2.cc: Moved to...
3659 * testsuite/23_containers/vector/26142-2.cc: ...here.
3661 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3663 * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
3664 * testsuite/26_numerics/complex/56111.cc: Likewise.
3666 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3668 * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
3669 Add dg-options to restrict the test to C++98 mode.
3670 * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
3673 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3675 * testsuite/20_util/expected/bad.cc: Add missing target
3678 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3680 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
3682 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
3685 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3687 * testsuite/27_io/filesystem/iterators/91067.cc: Add
3688 -Wno-self-move to options.
3689 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3691 2023-09-01 Vladimir Palevich <palevichva@gmail.com>
3694 * include/bits/vector.tcc (_M_realloc_insert): End guard
3695 lifetime just before assignment to class members.
3696 (_M_default_append): Likewise.
3698 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3700 * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
3701 Use __resize_and_overwrite to fill buffer.
3702 (fs::read_symlink) [HAVE_READLINK]: Likewise.
3703 * src/filesystem/ops-common.h (get_temp_directory_from_env)
3704 [FILESYSTEM_IS_WINDOWS]: Likewise.
3706 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3709 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
3710 Add _AtomicRef non-type template parameter and use a loop if it
3712 (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
3713 (__atomic_impl::compare_exchange_strong): Likewise.
3714 (atomic_ref::compare_exchange_weak): Use true for NTTP.
3715 (atomic_ref::compare_exchange_strong): Use true for NTTP.
3716 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
3717 Fix test to not rely on atomic_ref::load() to return an object
3718 with padding preserved.
3720 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3722 * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
3725 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3727 * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
3728 for POSIX readlink before using filesystem::read_symlink.
3730 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3732 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
3733 * configure: Regenerate.
3735 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3737 * include/bits/chrono_io.h (_Parser::operator()): Set failbit
3738 early if invalid values are read when _M_need & _TimeOfDay is
3740 * testsuite/std/time/parse.cc: Check that "25:59" cannot be
3743 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3746 * include/bits/chrono_io.h (_Parser::Operator()): Check %C
3747 values are in range of year::min() to year::max().
3748 * testsuite/std/time/parse.cc: Check out of range centuries.
3750 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3752 * include/std/format (__format::_Sink::_M_reset): Change second
3753 argument from iterator to offset.
3755 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3758 * testsuite/std/format/string.cc: Check wide character format
3759 strings with out-of-range widths.
3761 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3764 * include/std/format (__format::__parse_integer): Check for
3767 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3769 * testsuite/std/format/functions/format_to.cc: Avoid warning for
3772 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3774 * include/std/atomic: Add comment to #ifdef and fix indentation.
3775 * include/std/ostream: Check __glibcxx_syncbuf instead of
3776 __cplusplus and _GLIBCXX_HOSTED.
3777 * include/std/thread: Add comment to #ifdef.
3779 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3781 * include/bits/version.def (__cpp_lib_ratio): Define.
3782 * include/bits/version.h: Regenerate.
3783 * include/std/ratio (quecto, ronto, yocto, zepto)
3784 (zetta, yotta, ronna, quetta): Define.
3785 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
3786 dg-error line numbers.
3788 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3790 * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
3792 * testsuite/libstdc++-prettyprinters/locale.cc: New test.
3794 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3797 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
3798 not show template arguments.
3799 (StdVariantPrinter): Likewise.
3800 * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
3802 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3803 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3805 2023-08-23 François Dumont <fdumont@gcc.gnu.org>
3807 * testsuite/util/replacement_memory_operators.h
3808 (counter::scope): New, capture and reset counter count at construction and
3809 restore it at destruction.
3810 (counter::check_new): Add scope instantiation.
3811 * testsuite/23_containers/unordered_map/96088.cc (main):
3812 Add counter::scope instantiation.
3813 * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
3814 * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
3815 * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
3816 * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
3817 * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
3818 * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
3819 * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
3820 (operator new(size_t)): Check started.
3821 (main): Set/Unset started.
3822 * testsuite/17_intro/no_library_allocation.cc: New test case.
3824 2023-08-21 Jonathan Wakely <jwakely@redhat.com>
3826 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3827 Call std::set_terminate before throwing the nested exception.
3829 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3832 * include/std/format (formatter): Only define specializations
3833 for 16-bit floating-point types for C++23.
3834 * include/std/limits (numeric_limits): Likewise.
3836 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3838 * include/bits/chrono_io.h (operator<<): Make uses of wide
3839 strings with streams and std::format type-dependent on _CharT.
3840 * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
3841 __to_wstring_numeric.
3843 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3845 * include/bits/chrono_io.h (operator<<): Use __format_context.
3846 * include/std/format (__format::__format_context): New alias
3848 [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
3851 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3854 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3856 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3857 double overload for long double if possible.
3859 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3861 * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
3864 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3866 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3867 double overload for long double if possible.
3869 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3871 * src/c++98/localename.cc (is_C_locale): New function.
3872 (locale::locale(const char*)): Use is_C_locale.
3874 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3877 * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
3878 Dispatch to _M_replace or move assignment from a temporary,
3879 based on the iterator type.
3881 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3883 * include/std/format (formatter): Add partial specializations
3884 for extended floating-point types.
3885 * testsuite/std/format/functions/format.cc: Move test_float128()
3887 * testsuite/std/format/formatter/ext_float.cc: New test.
3889 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3891 * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
3892 whenever __BFLT16_DIG__ is defined, not only for C++23.
3893 * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
3894 (numeric_limits<_Float16>, numeric_limits<_Float32>)
3895 (numeric_limits<_Float64>): Likewise for other extended
3896 floating-point types.
3898 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3900 * include/experimental/internet (address_v4::to_string): Remove
3901 unused parameter name.
3903 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3905 * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
3906 * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
3907 excess errors caused by invalid consteval calls.
3909 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3911 * include/bits/chrono_io.h (__units_suffix_misc): Remove.
3912 (__units_suffix): Return a known suffix as string view, do not
3913 write unknown suffixes to a buffer.
3914 (__fmt_units_suffix): New function that formats the suffix using
3916 (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
3917 (__chrono_formatter::_M_Z): Correct lifetime of wstring.
3919 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3921 * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
3922 string formatters with this macro.
3923 (__formatter_int::_M_format_int, __formatter_fp::format)
3924 (formatter<const void*, C>::format): Use __to_wstring_numeric
3925 instead of std::ctype::widen.
3926 (__formatter_fp::_M_localize): Use hardcoded wchar_t values
3927 instead of std::ctype::widen.
3928 * testsuite/std/format/functions/format.cc: Add more checks for
3929 wstring formatting of arithmetic types.
3931 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3933 * include/bits/basic_string.h (to_string(floating-point-type)):
3934 Implement using std::to_chars for C++26.
3935 * include/bits/version.def (__cpp_lib_to_string): Define.
3936 * include/bits/version.h: Regenerate.
3937 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
3938 Adjust expected result in C++26 mode.
3939 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
3941 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
3943 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
3945 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
3947 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
3949 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
3952 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3954 * include/bits/basic_string.h (to_string(integral-type)): Use
3955 resize_and_overwrite when available.
3956 (__to_wstring_numeric): New helper functions.
3957 (to_wstring): Use std::to_string then __to_wstring_numeric.
3958 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
3959 Remove check for no excess capacity.
3961 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3963 * include/bits/basic_string.h (__resize_and_overwrite): New
3965 * include/bits/basic_string.tcc (__resize_and_overwrite): New
3967 (resize_and_overwrite): Simplify by using reserve instead of
3968 growing the string manually. Adjust for C++11 compatibility.
3969 * include/bits/cow_string.h (resize_and_overwrite): New
3971 (__resize_and_overwrite): New function.
3972 * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
3973 Do not depend on cxx11abi.
3974 * include/bits/version.h: Regenerate.
3975 * include/std/format (__formatter_fp::_S_resize_and_overwrite):
3977 (__formatter_fp::format, __formatter_fp::_M_localize): Use
3978 __resize_and_overwrite instead of _S_resize_and_overwrite.
3979 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3980 Adjust for C++11 compatibility when included by ...
3981 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
3984 2023-08-17 Patrick Palka <ppalka@redhat.com>
3986 * include/bits/regex.h (regex_iterator::iterator_concept):
3987 Define for C++20 as per P2770R0.
3988 (regex_token_iterator::iterator_concept): Likewise.
3989 * include/std/ranges (__detail::__as_lvalue): Define.
3990 (join_view::_Iterator): Befriend join_view.
3991 (join_view::_Iterator::_M_satisfy): Use _M_get_outer
3992 instead of _M_outer.
3993 (join_view::_Iterator::_M_get_outer): Define.
3994 (join_view::_Iterator::_Iterator): Split constructor taking
3995 _Parent argument into two as per P2770R0. Remove constraint on
3996 default constructor.
3997 (join_view::_Iterator::_M_outer): Make this data member present
3998 only when the underlying range is forward.
3999 (join_view::_Iterator::operator++): Use _M_get_outer instead of
4001 (join_view::_Iterator::operator--): Use __as_lvalue helper.
4002 (join_view::_Iterator::operator==): Adjust constraints as per
4004 (join_view::_Sentinel::__equal): Use _M_get_outer instead of
4006 (join_view::_M_outer): New data member when the underlying range
4008 (join_view::begin): Adjust definition as per P2770R0.
4009 (join_view::end): Likewise.
4010 (join_with_view::_M_outer_it): New data member when the
4011 underlying range is non-forward.
4012 (join_with_view::begin): Adjust definition as per P2770R0.
4013 (join_with_view::end): Likewise.
4014 (join_with_view::_Iterator::_M_outer_it): Make this data member
4015 present only when the underlying range is forward.
4016 (join_with_view::_Iterator::_M_get_outer): Define.
4017 (join_with_view::_Iterator::_Iterator): Split constructor
4018 taking _Parent argument into two as per P2770R0. Remove
4019 constraint on default constructor.
4020 (join_with_view::_Iterator::_M_update_inner): Adjust definition
4022 (join_with_view::_Iterator::_M_get_inner): Likewise.
4023 (join_with_view::_Iterator::_M_satisfy): Adjust calls to
4024 _M_get_inner. Use _M_get_outer instead of _M_outer_it.
4025 (join_with_view::_Iterator::operator==): Adjust constraints
4027 (join_with_view::_Sentinel::operator==): Use _M_get_outer
4028 instead of _M_outer_it.
4029 * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
4031 2023-08-17 Patrick Palka <ppalka@redhat.com>
4034 * include/std/ranges (__adaptor::_RangeAdaptorClosure):
4035 Convert into a CRTP class template. Move hidden operator|
4036 friends into namespace scope and adjust their constraints.
4037 (__closure::__is_range_adaptor_closure_fn): Define.
4038 (__closure::__is_range_adaptor_closure): Define.
4039 (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
4040 (__adaptor::_Pipe): Likewise.
4041 (views::_All): Likewise.
4042 (views::_Join): Likewise.
4043 (views::_Common): Likewise.
4044 (views::_Reverse): Likewise.
4045 (views::_Elements): Likewise.
4046 (views::_Adjacent): Likewise.
4047 (views::_AsRvalue): Likewise.
4048 (views::_Enumerate): Likewise.
4049 (views::_AsConst): Likewise.
4050 * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
4051 expecting that adding empty range adaptor closure objects to a
4052 pipeline doesn't increase the size of a pipeline.
4054 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4056 * include/std/format (__format::_Pres_type): Add _Pres_F.
4057 (__formatter_fp::parse): Use _Pres_F for 'F'.
4058 (__formatter_fp::format): Set __upper for _Pres_F.
4059 * testsuite/std/format/functions/format.cc: Check formatting of
4060 infinity and NaN for each presentation type.
4062 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4064 * include/Makefile.in: Regenerate.
4066 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4068 * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
4069 * testsuite/std/format/functions/format.cc: Likewise.
4070 * testsuite/std/format/functions/format_c++23.cc: Likewise.
4072 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4074 * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
4075 any "-include bits/stdc++.h" from options and add the macro to
4076 the existing options instead of replacing them.
4078 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
4080 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
4081 the callable with the same size as resize_and_overwrite was
4083 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
4084 Check with small values for the new size.
4085 * testsuite/std/format/functions/format.cc: Check wide
4086 formatting of double values that produce small strings.
4087 * testsuite/std/format/functions/format_c++23.cc: New test.
4089 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
4091 * include/bits/version.def (stds): Update value for C++23.
4092 * include/bits/version.h: Regenerate.
4094 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
4096 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
4097 Fix name of upstream file this was derived from.
4098 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
4100 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
4102 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
4104 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
4106 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
4108 * libsupc++/typeinfo: Switch to bits/version.h for
4109 __cpp_lib_constexpr_typeinfo.
4110 * libsupc++/new: Switch to bits/version.h for
4111 __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
4112 (launder): Guard behind __cpp_lib_launder.
4113 (hardware_destructive_interference_size)
4114 (hardware_constructive_interference_size): Guard behind
4115 __cpp_lib_hardware_interference_size.
4116 * libsupc++/exception: Switch to bits/version.h for
4117 __cpp_lib_uncaught_exceptions.
4118 (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
4119 * libsupc++/compare: Switch to bits/version.h for
4120 __cpp_lib_three_way_comparison.
4121 (three_way_comparable, three_way_comparable_with)
4122 (compare_three_way, weak_order, strong_order, partial_order):
4123 Guard behind __cpp_lib_three_way_comparison >= 201907L.
4124 * include/std/chrono: Drop __cpp_lib_chrono definition.
4125 * include/std/vector: Switch to bits/version.h for
4127 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4128 * include/std/variant: Switch to bits/version.h for
4129 __cpp_lib_variant. Guard whole header behind that FTM.
4130 * include/std/utility: Switch to bits/version.h for
4131 __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
4132 __cpp_lib_{integer_comparison_functions,to_underlying}, and
4133 __cpp_lib_unreachable.
4134 (exchange): Guard behind __cpp_lib_exchange_function.
4135 (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
4136 (cmp_greater_equal, in_range): Guard behind
4137 __cpp_lib_integer_comparison_functions.
4138 (to_underlying): Guard behind __cpp_lib_to_underlying.
4139 (unreachable): Guard behind __cpp_lib_unreachable.
4140 * include/std/type_traits: Switch to bits/version.h for
4141 __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
4142 __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
4143 __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
4144 __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
4145 __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
4146 __cpp_lib_{type_identity,type_trait_variable_templates},
4147 __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
4148 __cpp_lib_{bool_constant,bounded_array_traits}, and
4149 __cpp_lib_has_unique_object_representations.
4150 (integral_constant::operator()): Guard behind
4151 __cpp_lib_integral_constant_callable.
4152 (bool_constant): Guard behind __cpp_lib_bool_constant.
4153 (conjunction, disjunction, negation, conjunction_v, disjunction_v)
4154 (negation_v): Guard behind __cpp_lib_logical_traits.
4155 (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
4156 (is_final): Guard behind __cpp_lib_is_final.
4157 (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
4158 __cpp_lib_is_nothrow_convertible.
4159 (remove_const_t, remove_volatile_t, remove_cv_t)
4160 (add_const_t, add_volatile_t, add_cv_t): Guard behind
4161 __cpp_lib_transformation_trait_aliases.
4162 (void_t): Guard behind __cpp_lib_void_t.
4163 (is_swappable_with_v, is_nothrow_swappable_with_v)
4164 (is_swappable_with, is_nothrow_swappable_with): Guard behind
4165 __cpp_lib_is_swappable.
4166 (is_nothrow_invocable_r, is_invocable_r, invoke_result)
4167 (is_invocable, invoke_result_t): Guard behind
4168 __cpp_lib_is_invocable.
4169 (alignment_of_v, extent_v, has_virtual_destructor_v)
4170 (is_abstract_v, is_arithmetic_v, is_array_v)
4171 (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
4172 (is_constructible_v, is_const_v, is_convertible_v)
4173 (is_copy_assignable_v, is_copy_constructible_v)
4174 (is_default_constructible_v, is_destructible_v)
4175 (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
4176 (is_function_v, is_fundamental_v, is_integral_v)
4177 (is_invocable_r_v, is_invocable_v, is_literal_type_v)
4178 (is_lvalue_reference_v, is_member_function_pointer_v)
4179 (is_member_object_pointer_v, is_member_pointer_v)
4180 (is_move_assignable_v, is_move_constructible_v)
4181 (is_nothrow_assignable_v, is_nothrow_constructible_v)
4182 (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
4183 (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
4184 (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
4185 (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
4186 (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
4187 (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
4188 (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
4189 (is_trivially_assignable_v, is_trivially_constructible_v)
4190 (is_trivially_copyable_v, is_trivially_copy_assignable_v)
4191 (is_trivially_copy_constructible_v)
4192 (is_trivially_default_constructible_v)
4193 (is_trivially_destructible_v, is_trivially_move_assignable_v)
4194 (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
4195 (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
4196 Guard behind __cpp_lib_type_trait_variable_templates.
4197 (has_unique_object_representations)
4198 (has_unique_object_representations_v): Guard behind
4199 __cpp_lib_has_unique_object_representation.
4200 (is_aggregate): Guard behind __cpp_lib_is_aggregate.
4201 (remove_cvref, remove_cvref_t): Guard behind
4202 __cpp_lib_remove_cvref.
4203 (type_identity, type_identity_t): Guard behind
4204 __cpp_lib_type_identity.
4205 (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
4206 (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
4207 (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
4208 (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
4209 (is_scoped_enum, is_scoped_enum_v): Guard behind
4210 __cpp_lib_is_scoped_enum.
4211 (reference_constructs_from_temporary)
4212 (reference_constructs_from_temporary_v): Guard behind
4213 __cpp_lib_reference_from_temporary.
4214 * include/std/tuple: Switch to bits/version.h for
4215 __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
4216 (get<T>): Guard behind __cpp_lib_tuple_by_type.
4217 (apply): Guard behind __cpp_lib_apply.
4218 (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
4219 * include/std/syncstream: Switch to bits/version.h for
4220 __cpp_lib_syncbuf. Guard header behind that FTM.
4221 * include/std/string_view: Switch to bits/version.h for
4222 __cpp_lib_{string_{view,contains},constexpr_string_view} and
4223 __cpp_lib_starts_ends_with.
4224 (basic_string_view::starts_with, basic_string_view::ends_with):
4225 Guard behind __cpp_lib_starts_ends_with.
4226 [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
4227 Assert as impossible ithout a bug in C++23.
4228 * include/std/string: Switch to bits/version.h for
4230 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4231 * include/std/thread: Switch to bits/version.h for
4233 * include/std/stop_token: Switch to bits/version.h for
4235 * include/std/spanstream: Switch to bits/version.h for
4236 __cpp_lib_spanstream. Guard header behind that FTM.
4237 * include/std/span: Switch to bits/version.h for __cpp_lib_span.
4238 Guard header behind that FTM.
4239 * include/std/source_location: Switch to bits/version.h for
4240 __cpp_lib_source_location. Guard header with that FTM.
4241 * include/std/shared_mutex: Switch to bits/version.h for
4242 __cpp_lib_shared{,_timed}_mutex.
4243 (shared_mutex): Guard behind __cpp_lib_shared_mutex.
4244 * include/std/semaphore: Switch to bits/version.h for
4245 __cpp_lib_semaphore. Guard header behind that FTM.
4246 * include/std/ranges: Switch to bits/version.h for
4247 __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
4248 __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
4249 and __cpp_lib_ranges_{as_const,enumerate,iota}.
4250 (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
4251 (ranges::chunk_by et al, ranges::join_with et al)
4252 (ranges::stride et al, ranges::cartesian_product et al)
4253 (ranges::as_rvalue et al, ranges::as_const et al)
4254 (ranges::enumerate et al): Guard behind appropriate FTM.
4255 * include/std/optional: Switch to bits/version.h for
4256 __cpp_lib_optional. Guard header behind that FTM.
4257 * include/std/numeric: Switch to bits/version.h for
4258 __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
4259 and __cpp_lib_parallel_algorithm.
4260 (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
4261 (midpoint): Guard behind __cpp_lib_interpolate.
4262 * include/std/numbers: Switch to bits/version.h for
4263 __cpp_lib_math_constants. Guard header behind that FTM.
4264 * include/std/mutex: Switch to bits/version.h for
4265 __cpp_lib_scoped_lock.
4266 (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
4267 * include/std/memory_resource: Switch to bits/version.h for
4268 __cpp_lib_{polymorphic_allocator,memory_resource}.
4269 (synchronized_pool_resource): Guard behind
4270 __cpp_lib_memory_resource >= 201603L.
4271 (polymorphic_allocator): Guard behind
4272 __cpp_lib_polymorphic_allocator.
4273 * include/std/memory: Switch to bits/version.h for
4274 __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
4275 * include/std/list: Switch to bits/version.h for
4277 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4278 * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
4279 Guard header behind that FTM.
4280 * include/std/iterator: Switch to bits/version.h for
4281 __cpp_lib_null_iterators.
4282 * include/std/iomanip: Switch to bits/version.h for
4283 __cpp_lib_quoted_string_io.
4284 (quoted): Guard behind __cpp_lib_quoted_string_io.
4285 * include/std/functional: Switch to bits/version.h for
4286 __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
4287 __cpp_lib_{not_fn,booyer_moore_searcher}.
4288 (invoke): Guard behind __cpp_lib_invoke.
4289 (invoke_r): Guard behind __cpp_lib_invoke_r.
4290 (bind_front): Guard behind __cpp_lib_bind_front.
4291 (not_fn): Guard behind __cpp_lib_not_fn.
4292 (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
4293 definition behind __cpp_lib_boyer_moore_searcher.
4294 * include/std/forward_list: Switch to bits/version.h for
4296 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4297 * include/std/format: Switch to bits/version.h for
4298 __cpp_lib_format. Guard header behind that FTM.
4299 * include/std/filesystem: Switch to bits/version.h for
4300 __cpp_lib_filesystem. Guard header behind that FTM.
4301 * include/std/expected: Switch to bits/version.h for
4302 __cpp_lib_expected. Guard header behind it.
4303 * include/std/execution: Switch to bits/version.h for
4304 __cpp_lib_{execution,parallel_algorithm}. Guard header behind
4306 * include/std/deque: Switch to bits/version.h for
4308 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4309 * include/std/coroutine: Switch to bits/version.h for
4310 __cpp_lib_coroutine. Guard header behind that FTM.
4311 * include/std/concepts: Switch to bits/version.h for
4312 __cpp_lib_concepts. Guard header behind that FTM.
4313 * include/std/complex: Switch to bits/version.h for
4314 __cpp_lib_{complex_udls,constexpr_complex}.
4315 (operator""if, operator""i, operator""il): Guard behind
4316 __cpp_lib_complex_udls.
4317 * include/std/charconv: Swtich to bits/version.h for
4318 __cpp_lib_{to_chars,constexpr_charconv}.
4319 * include/std/bitset: Switch to bits/version.h for
4320 __cpp_lib_constexpr_bitset.
4321 * include/std/bit: Switch to bits/version.h for
4322 __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
4323 (bit_cast): Guard behind __cpp_lib_bit_cast.
4324 (byteswap): Guard behind __cpp_lib_byteswap.
4325 (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
4326 (popcount): Guard behind __cpp_lib_bitops.
4327 (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
4329 (endian): Guard behind __cpp_lib_endian.
4330 * include/std/barrier: Switch to bits/version.h for
4331 __cpp_lib_barrier. Guard header behind that FTM.
4332 * include/std/atomic: Switch to bits/version.h for
4333 __cpp_lib_atomic_{is_always_lock_free,float,ref}
4334 and __cpp_lib_lock_free_type_aliases.
4335 (*::is_always_lock_free): Guard behind
4336 __cpp_lib_atomic_is_always_lock_free.
4337 (atomic<float>): Guard behind __cpp_lib_atomic_float.
4338 (atomic_ref): Guard behind __cpp_lib_atomic_ref.
4339 (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
4340 __cpp_lib_atomic_lock_free_type_aliases.
4341 * include/std/array: Switch to bits/version.h for
4343 (to_array): Guard behind __cpp_lib_to_array.
4344 * include/std/any: Switch to bits/version.h for __cpp_lib_any.
4345 Guard header behind that FTM.
4346 * include/std/algorithm: Switch to bits/version.h for
4347 __cpp_lib_parallel_algorithm.
4348 * include/c_global/cstddef: Switch to bits/version.h for
4350 (byte): Guard behind __cpp_lib_byte.
4351 * include/c_global/cmath: Switch to bits/version.h for
4352 __cpp_lib_{hypot,interpolate}.
4353 (hypot3): Guard behind __cpp_lib_hypot.
4354 (lerp): Guard behind __cpp_lib_interpolate.
4355 * include/c_compatibility/stdatomic.h: Switch to
4356 bits/stl_version.h for __cpp_lib_atomic. Guard header behind that
4358 * include/bits/utility.h: Switch to bits/version.h for
4359 __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
4360 (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
4361 (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
4362 * include/bits/uses_allocator_args.h: Switch to bits/version.h for
4363 __cpp_lib_make_obj_using_allocator. Guard header behind that FTM.
4364 * include/bits/unordered_map.h: Switch to bits/version.h for
4365 __cpp_lib_unordered_map_try_emplace.
4366 (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
4367 * include/bits/unique_ptr.h: Switch to bits/version.h for
4368 __cpp_lib_{constexpr_memory,make_unique}.
4369 (make_unique): Guard behind __cpp_lib_make_unique.
4370 * include/bits/stl_vector.h: Switch to bits/version.h for
4371 __cpp_lib_constexpr_vector.
4372 * include/bits/stl_uninitialized.h: Switch to bits/version.h for
4373 __cpp_lib_raw_memory_algorithms.
4374 (uninitialized_default_construct)
4375 (uninitialized_default_construct_n, uninitialized_move)
4376 (uninitialized_move_n, uninitialized_value_construct)
4377 (uninitialized_value_construct_n): Guard behind
4378 __cpp_lib_raw_memory_algorithms.
4379 * include/bits/stl_tree.h: Switch to bits/version.h for
4380 __cpp_lib_generic_associative_lookup.
4381 * include/bits/stl_stack.h: Switch to bits/version.h for
4382 __cpp_lib_adaptor_iterator_pair_constructor.
4383 (stack): Guard iterator-pair constructor behind
4384 __cpp_lib_adaptor_iterator_pair_constructor.
4385 * include/bits/stl_queue.h: Switch to bits/version.h for
4386 __cpp_lib_adaptor_iterator_pair_constructor.
4387 (queue): Guard iterator-pair constructor behind
4388 __cpp_lib_adaptor_iterator_pair_constructor.
4389 * include/bits/stl_pair.h: Switch to bits/version.h for
4390 __cpp_lib_{concepts,tuples_by_type}.
4391 (get): Guard type-getting overloads behind
4392 __cpp_lib_tuples_by_type.
4393 * include/bits/stl_map.h: Switch to bits/version.h for
4394 __cpp_lib_map_try_emplace.
4395 (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
4396 * include/bits/stl_list.h: Switch to bits/version.h for
4397 __cpp_lib_list_remove_return_type.
4398 (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
4399 [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
4400 * include/bits/stl_iterator.h: Switch to bits/version.h for
4401 __cpp_lib_{constexpr_iterator,array_constexpr} and
4402 __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
4403 (make_reverse_iterator): Guard behind
4404 __cpp_lib_make_reverse_iterator.
4405 (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
4406 changes behind that FTM.
4407 * include/bits/stl_function.h: Switch to bits/version.h for
4408 __cpp_lib_transparent_operators.
4409 (equal_to, not_equal_to, greater, less, greater_equal)
4410 (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
4411 (logical_or, logical_not, plus, minus, multiplies, divides)
4412 (modulus, negate): Guard '= void' fwdecls behind
4413 __cpp_lib_transparent_operators.
4414 (plus<void>, minus<void>, multiplies<void>, divides<void>)
4415 (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
4416 (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
4417 (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
4418 (greater_equal<void>, less_equal<void>, bit_not<void>)
4419 (__has_is_transparent): Guard behind
4420 __cpp_lib_transparent_operators.
4421 * include/bits/stl_algobase.h: Switch to bits/version.h for
4422 __cpp_lib_robust_nonmodifying_seq_ops.
4423 (robust equal, mismatch): Guard behind
4424 __cpp_lib_nonmember_container_access.
4425 * include/bits/stl_algo.h: Swtich to bits/version.h for
4426 __cpp_lib_{clamp,sample}.
4427 (clamp): Guard behind __cpp_lib_clamp.
4428 (sample): Guard behind __cpp_lib_sample.
4429 * include/bits/specfun.h: Switch to bits/version.h for
4430 __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
4431 * include/bits/shared_ptr_base.h: Switch to bits/version.h for
4432 __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
4433 (_Sp_overwrite_tag): Guard behind
4434 __cpp_lib_smart_ptr_for_overwrite.
4435 * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
4436 __cpp_lib_atomic_shared_ptr.
4437 * include/bits/shared_ptr.h: Switch to bits/version.h for
4438 __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
4439 (shared_ptr<T>::weak_type): Guard behind
4440 __cpp_lib_shared_ptr_weak_type.
4441 (enable_shared_from_this<T>::weak_from_this): Guard behind
4442 __cpp_lib_enable_shared_from_this.
4443 * include/bits/ranges_cmp.h: Switch to bits/version.h for
4445 * include/bits/ranges_algo.h: Switch to bits/version.h for
4446 __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
4447 * include/bits/range_access.h: Switch to bits/version.h for
4448 __cpp_lib_nonmember_container_access
4449 (size, empty, data): Guard behind
4450 __cpp_lib_nonmember_container_access.
4451 (ssize): Guard behind __cpp_lib_ssize.
4452 * include/bits/ptr_traits.h: Switch to bits/version.h. for
4453 __cpp_lib_{constexpr_memory,to_address}.
4454 (to_address): Guard behind __cpp_lib_to_address.
4455 * include/bits/node_handle.h: Switch to bits/version.h for
4456 __cpp_lib_node_extract. Guard header behind that FTM.
4457 * include/bits/move_only_function.h: Switch to bits/version.h for
4458 __cpp_lib_move_only_function. Guard header behind that FTM.
4459 * include/bits/move.h: Switch to bits/version.h for
4460 __cpp_lib_addressof_constexpr.
4461 * include/bits/ios_base.h: Switch to bits/version.h for
4462 __cpp_lib_ios_noreplace.
4463 (noreplace): Guard with __cpp_lib_ios_noreplace.
4464 * include/bits/hashtable.h: Switch to bits/version.h for
4465 __cpp_lib_generic_unordered_lookup.
4466 (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
4467 __cpp_lib_generic_unordered_lookup.
4468 * include/bits/forward_list.h: Switch to bits/version.h for
4469 __cpp_lib_list_remove_return_type.
4470 (__remove_return_type): Guard behind
4471 __cpp_lib_list_remove_return_type.
4472 * include/bits/erase_if.h: Switch to bits/version.h for
4474 * include/bits/cow_string.h: Switch to bits/version.h for
4475 __cpp_lib_constexpr_string.
4476 * include/bits/chrono.h: Swtich to bits/version.h for
4477 __cpp_lib_chrono{,_udls}.
4478 (ceil): Guard behind __cpp_lib_chrono.
4479 (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
4480 * include/bits/char_traits.h: Switch to bits/version.h for
4481 __cpp_lib_constexpr_char_traits.
4482 * include/bits/basic_string.h: Switch to bits/version.h for
4483 __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
4484 (resize_and_overwrite): Guard behind
4485 __cpp_lib_string_resize_and_overwrite.
4486 (operator""s): Guard behind __cpp_lib_string_udls.
4487 * include/bits/atomic_wait.h: Switch to bits/version.h for
4488 __cpp_lib_atomic_wait. Guard header behind that FTM.
4489 * include/bits/atomic_base.h: Switch to bits/version.h for
4490 __cpp_lib_atomic_value_initialization and
4491 __cpp_lib_atomic_flag_test.
4492 (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
4494 * include/bits/allocator.h: Switch to bits/version.h for
4495 __cpp_lib_incomplete_container_elements.
4496 * include/bits/alloc_traits.h: Switch to using bits/version.h for
4497 __cpp_lib_constexpr_dynamic_alloc and
4498 __cpp_lib_allocator_traits_is_always_equal.
4499 * include/bits/align.h: Switch to bits/version.h for defining
4500 __cpp_lib_assume_aligned.
4501 (assume_aligned): Guard with __cpp_lib_assume_aligned.
4502 * include/bits/algorithmfwd.h: Switch to bits/version.h for
4503 defining __cpp_lib_constexpr_algorithms.
4504 * include/std/stacktrace: Switch to bits/version.h for
4505 __cpp_lib_stacktrace. Guard header behind that FTM.
4506 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
4507 Update line numbers.
4509 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
4511 * include/Makefile.am (bits_freestanding): Add version.h.
4512 (allcreated): Add version.h.
4513 (${bits_srcdir}/version.h): New rule. Regenerates
4514 version.h out of version.{def,tpl}.
4515 * include/Makefile.in: Regenerate.
4516 * include/bits/version.def: New file. Declares a list of
4517 all feature test macros, their values and their preconditions.
4518 * include/bits/version.tpl: New file. Turns version.def
4519 into a sequence of #if blocks.
4520 * include/bits/version.h: New file. Generated from
4522 * include/std/version: Replace with a __glibcxx_want_all define
4523 and bits/version.h include.
4525 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
4528 * include/std/format (__formatter_fp::format): Use frexp instead
4531 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
4533 * include/std/type_traits (true_type): Use __bool_constant
4535 (false_type): Likewise.
4536 (bool_constant): Likewise.
4538 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4541 * include/std/format (_Seq_sink::get): Only call _M_overflow if
4542 its precondition is met.
4543 (_Iter_sink::_M_finish): Likewise.
4544 (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
4545 internal buffer after running out of space.
4546 (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
4547 (_Counting_sink::count): Likewise.
4548 * testsuite/std/format/functions/format_to_n.cc: Check cases
4549 where the output fits into the buffer.
4551 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4554 * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
4555 to _ChronoParts operators.
4556 (from_stream, parse): Define new functions.
4557 (__detail::_Parse, __detail::_Parser): New class templates.
4558 * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
4560 * include/std/version (__cpp_lib_chrono): Likewise.
4561 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4562 Adjust expected value of feature test macro.
4563 * testsuite/20_util/duration/io.cc: Test parsing.
4564 * testsuite/std/time/clock/file/io.cc: Likewise.
4565 * testsuite/std/time/clock/gps/io.cc: Likewise.
4566 * testsuite/std/time/clock/system/io.cc: Likewise.
4567 * testsuite/std/time/clock/tai/io.cc: Likewise.
4568 * testsuite/std/time/clock/utc/io.cc: Likewise.
4569 * testsuite/std/time/day/io.cc: Likewise.
4570 * testsuite/std/time/month/io.cc: Likewise.
4571 * testsuite/std/time/month_day/io.cc: Likewise.
4572 * testsuite/std/time/weekday/io.cc: Likewise.
4573 * testsuite/std/time/year/io.cc: Likewise.
4574 * testsuite/std/time/year_month/io.cc: Likewise.
4575 * testsuite/std/time/year_month_day/io.cc: Likewise.
4576 * testsuite/std/time/syn_c++20.cc: Check value of macro and for
4577 the existence of parse and from_stream in namespace chrono.
4578 * testsuite/std/time/clock/local/io.cc: New test.
4579 * testsuite/std/time/parse.cc: New test.
4581 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4584 * include/std/format (__formatter_fp::format): Do not call log10
4587 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4589 * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
4590 Check for out-of-range month an weekday indices.
4591 * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
4592 month and weekday values.
4594 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4596 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
4598 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4601 * include/std/format (_Spec::_S_parse_width_or_precision): Check
4602 for empty range before dereferencing iterator.
4603 * testsuite/std/format/string.cc: Check for expected exception.
4604 Fix expected exception message in test_pr110862() and actually
4607 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4610 * include/std/format (__formatter_fp::format): Check return
4611 value of _M_localize.
4612 * testsuite/std/format/functions/format.cc: Check classic
4615 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4618 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
4620 (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
4621 (__detail::__basic_const_iterator_iter_cat): Likewise.
4622 * include/bits/stl_iterator_base_types.h (__iterator_category_t):
4623 Rename to __iter_category_t.
4625 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4627 * include/bits/chrono.h (duration_cast): Do not use braces
4628 around statements for C++11 constexpr rules.
4629 * include/bits/stl_algobase.h (__lg): Rewrite as a single
4630 statement for C++11 constexpr rules.
4631 * include/experimental/bits/fs_path.h (path::string): Use
4632 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
4633 * include/std/charconv (__to_chars_8): Initialize variable for
4634 C++17 constexpr rules.
4636 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4638 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
4639 warning for loop condition.
4641 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4643 * include/std/complex: Add diagnostic pragma for clang.
4645 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4647 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
4649 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
4650 class-head to struct in friend declaration.
4651 * include/std/chrono (tzdb_list::_Node): Likewise.
4652 * include/std/future (_Task_state_base, _Task_state): Likewise.
4653 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4654 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
4655 (_ValFunClos, _RefFunClos): Change class-head to struct.
4657 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4659 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
4661 * include/bits/regex_executor.tcc: Remove name of unused
4663 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
4665 * include/bits/stl_uninitialized.h: Likewise.
4666 * include/bits/streambuf_iterator.h (operator==): Likewise.
4667 * include/bits/uses_allocator.h: Likewise.
4668 * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
4669 * include/std/chrono (zoned_time): Likewise.
4670 * include/std/future (__future_base::_S_allocate_result):
4672 (packaged_task): Likewise.
4673 * include/std/optional (_Optional_payload_base): Likewise.
4674 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4675 * include/std/tuple (_Tuple_impl): Likewise.
4677 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4679 * include/bits/new_allocator.h (__new_allocator): Define copy
4680 assignment operator as defaulted.
4681 * include/std/complex (complex<float>, complex<double>)
4682 (complex<long double>): Define copy constructor as defaulted.
4684 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4686 * include/std/format: Fix some warnings.
4687 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
4688 unused function template.
4690 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4693 * include/std/format (__formatter_fp::format): Do not use
4694 __builtin_abs and __builtin_log10 with arbitrary floating-point
4697 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4700 * include/std/format (__format::_Iter_sink<CharT, OutIter>):
4701 Constrain partial specialization for contiguous iterators to
4702 require the value type to be CharT.
4703 * testsuite/std/format/functions/format_to.cc: New test.
4705 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4708 * include/std/format (_Scanner::_M_on_replacement_field):
4709 Check for expected '}' before incrementing iterator.
4710 * testsuite/std/format/string.cc: Check "{0:{0}" format string.
4712 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4714 * configure: Regenerate.
4716 2023-08-07 Alan Modra <amodra@gmail.com>
4718 * configure: Regenerate.
4720 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
4722 * configure: Regenerate.
4724 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4726 * configure: Regenerate.
4728 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4730 * configure: Regenerate.
4732 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4734 * configure: Regenerate.
4736 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4738 * configure: Regenerate.
4740 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
4742 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
4745 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
4747 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
4749 * src/c++11/locale-inst-monetary.h: Likewise.
4750 * src/c++11/locale-inst-numeric.h: Likewise.
4752 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
4755 * include/std/format (__formatter_fp::format): Ensure __expc is
4756 always set for all presentation types. Set __z correctly for
4758 * testsuite/std/format/functions/format.cc: Check problem cases.
4760 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4763 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
4765 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4768 * include/bits/stl_bvector.h (vector(const vector&)): Access
4769 iterators before allocating.
4770 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
4772 * testsuite/23_containers/vector/bool/110807.cc: New test.
4774 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4776 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
4778 * include/bits/stl_algo.h (random_shuffle): Correct comments.
4779 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
4780 deprecated warnings.
4781 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
4782 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
4783 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
4786 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
4788 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
4790 * testsuite/26_numerics/gcd/105844.cc: Likewise.
4791 * testsuite/26_numerics/lcm/105844.cc: Likewise.
4793 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
4795 * include/std/format (_Formatting_scanner::_M_on_chars): Add
4796 missing constexpr specifier.
4797 (_Formatting_scanner::_M_format_arg): Likewise.
4799 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
4802 * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
4803 throw an exception for zero result.
4804 [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
4806 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4809 * src/c++17/floating_from_chars.cc (from_chars): Only define
4810 _Float128 overload when using __strfromf128.
4812 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4815 * include/bits/chrono.h (duration): Improve static assert
4817 (__is_ratio): Move to ...
4818 * include/std/ratio (__is_ratio): ... here.
4819 (__is_ratio_v): New variable template and partial
4821 (__are_both_ratios): New function template.
4822 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
4823 Add static assertion.
4824 * testsuite/20_util/ratio/requirements/type_constraints.cc:
4826 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
4827 Adjust expected error.
4828 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
4831 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4833 * include/bits/chrono_io.h (__formatter_chrono::_M_format):
4834 Do not set __is_neg for hh_mm_ss before calling
4835 _M_format_to_ostream. Change __print_sign lambda to only check
4836 __is_neg for durations and hh_mm_ss types.
4837 (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
4839 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
4841 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4844 * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
4845 Handle duration and hh_mm_ss.
4846 * testsuite/20_util/duration/io.cc: Check locale-specific
4848 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
4850 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4852 * include/std/format (__write_padded): Initialize first element
4853 of array to avoid a -Wmaybe-uninitialized warning.
4855 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4858 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
4859 allowed modifiers for %z and %Z. Fix -Wparentheses and
4860 -Wnarrowing warnings.
4861 (__formatter_chrono::_M_format): Call new functions for %d, %e,
4863 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
4864 subsecond precision.
4865 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
4867 (__formatter_chrono::_M_e): Replace with _M_d_e and use
4869 (__formatter_chrono::_M_I): Replace with _M_H_I and use
4871 (__formatter_chrono::_M_m): New function.
4872 (__formatter_chrono::_M_M): New function.
4873 (__formatter_chrono::_M_r): Use _M_locale_fmt.
4874 (__formatter_chrono::_M_S): Likewise.
4875 (__formatter_chrono::_M_u_w): Likewise.
4876 (__formatter_chrono::_M_U_V_W): Likewise.
4877 (__formatter_chrono::_M_X): Use _S_floor_seconds.
4878 (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
4879 (__formatter_chrono::_S_altnum): Remove function.
4880 (__formatter_chrono::_S_dd_zero_fill): Remove function.
4881 (__formatter_chrono::_S_floor_seconds): New function.
4882 (__formatter_chrono::_M_locale_fmt): New function.
4883 * testsuite/std/time/clock/system/io.cc: Adjust expected output
4884 for locale-specific formats and check modified formats.
4885 * testsuite/std/time/clock/utc/io.cc: Likewise.
4886 * testsuite/std/time/zoned_time/io.cc: New test.
4888 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4891 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
4892 allow a single modifier.
4893 * testsuite/std/time/format.cc: Check multiple modifiers.
4895 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4898 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
4899 Remove dg-require-string-conversions.
4900 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
4902 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
4904 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
4906 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
4909 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4912 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
4913 Define in terms of std::stod.
4915 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4918 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
4920 [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
4921 * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
4922 Declare in namespace std.
4923 [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
4925 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
4928 * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
4929 depend on _GLIBCXX_USE_C99_STDLIB.
4930 [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
4931 in terms of stol and stoul respectively.
4932 [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
4935 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4938 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
4939 conversions to wide strings.
4940 * testsuite/experimental/filesystem/path/construct/95048.cc:
4943 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4945 * config/io/basic_file_stdio.cc: Define LFS macros.
4946 (__basic_file<char>::open): Use fopen unconditionally.
4947 (get_file_offset): Use lseek unconditionally.
4948 (__basic_file<char>::seekoff): Likewise.
4949 (__basic_file<char>::showmanyc): Use fstat unconditionally.
4951 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4954 * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
4955 and define _GLIBCXX_USE_FSEEKO_FTELLO.
4956 * config.h.in: Regenerate.
4957 * configure: Regenerate.
4958 * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
4959 Check for fwrite error correctly.
4960 (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
4961 fread error correctly.
4962 (get_file_offset): New function.
4963 (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
4964 fseeko if available. Use get_file_offset instead of return value
4966 (__basic_file<char>::showmanyc): Use get_file_offset.
4968 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
4970 * include/std/type_traits (__make_unsigned_selector): Use
4971 __is_enum built-in trait.
4972 (__make_signed_selector): Likewise.
4973 (__underlying_type_impl): Likewise.
4975 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
4977 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
4980 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
4983 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
4985 * doc/html/manual/configure.html: Regenerate.
4987 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
4989 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
4991 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
4993 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
4995 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
4997 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
4999 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
5002 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
5004 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
5005 Skip as UNSUPPORTED for C++98 mode.
5006 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
5009 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
5012 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
5013 Do not use std::fill_n during constant evaluation.
5015 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
5017 * include/bits/vector.tcc (_M_default_append): Replace try-block
5020 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
5022 * include/bits/iterator_concepts.h (projected): Add typename.
5024 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
5026 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
5027 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
5029 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
5031 * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
5032 _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
5033 Define to OpenMP 5.0 pragmas even for GCC 10.0+.
5034 (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
5036 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
5038 * include/bits/alloc_traits.h (_Destroy): Qualify call.
5039 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
5040 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
5042 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
5044 * testsuite/lib/libstdc++.exp: Remove additional flag handled
5047 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
5050 * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
5051 * config.h.in: Regenerate.
5052 * configure: Regenerate.
5053 * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
5054 * include/std/iostream: Use new autoconf macro as well as
5056 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
5059 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
5061 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
5064 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
5067 * src/c++11/random.cc (random_device::_M_init): Throw
5068 std::system_error when the requested device is a valid token but
5069 not available at runtime.
5071 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
5074 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
5075 __INT32_TYPE__ instead of int32_t.
5077 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
5079 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
5080 with USE_ATOMIC_LIST_HEAD.
5081 (list_mutex): Replace global object with function. Use local
5082 static object when std::mutex constructor isn't constexpr.
5084 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
5087 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
5088 copy_file_range can be called with loff_t* arguments.
5089 * configure: Regenerate.
5090 * src/filesystem/ops-common.h (copy_file_copy_file_range):
5091 Use loff_t for offsets.
5093 2023-06-29 Tom Tromey <tromey@adacore.com>
5095 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
5098 2023-06-28 Jan Hubicka <jh@suse.cz>
5100 PR middle-end/109849
5101 * include/bits/c++config (std::__terminate): Mark cold.
5102 * include/bits/functexcept.h: Mark everything as cold.
5103 * libsupc++/exception: Mark terminate and unexpected as cold.
5105 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
5107 * include/pstl/algorithm_fwd.h: Synchronize with upstream.
5108 * include/pstl/algorithm_impl.h: Likewise.
5109 * include/pstl/execution_defs.h: Likewise.
5110 * include/pstl/execution_impl.h: Likewise.
5111 * include/pstl/glue_algorithm_impl.h: Likewise.
5112 * include/pstl/glue_execution_defs.h: Likewise.
5113 * include/pstl/glue_memory_impl.h: Likewise.
5114 * include/pstl/glue_numeric_impl.h: Likewise.
5115 * include/pstl/memory_impl.h: Likewise.
5116 * include/pstl/numeric_fwd.h: Likewise.
5117 * include/pstl/numeric_impl.h: Likewise.
5118 * include/pstl/parallel_backend.h: Likewise.
5119 * include/pstl/parallel_backend_serial.h: Likewise.
5120 * include/pstl/parallel_backend_tbb.h: Likewise.
5121 * include/pstl/parallel_impl.h: Likewise.
5122 * include/pstl/pstl_config.h: Likewise.
5123 * include/pstl/unseq_backend_simd.h: Likewise.
5124 * include/pstl/utils.h: Likewise.
5125 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5127 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5129 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5131 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5133 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5134 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5136 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5138 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5140 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5142 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5144 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5146 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5148 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5150 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5152 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5154 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5156 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5158 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5160 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5162 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5164 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5166 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5168 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5170 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5172 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5174 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5176 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5178 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5180 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5182 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5184 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5186 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5188 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5190 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5192 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5194 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5196 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5198 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5200 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5202 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5204 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
5206 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5208 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5210 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5212 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5214 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5216 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
5218 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
5220 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5222 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
5224 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
5226 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5228 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5230 * testsuite/util/pstl/test_utils.h:
5233 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
5236 * include/std/format (__format::__parse_integer): Fix buffer
5237 overflow for wide chars.
5238 (formatter<const void*, C>::format): Cast to uintptr_t instead
5240 * testsuite/std/format/string.cc: Test too-large widths.
5242 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
5244 * include/bits/iterator_concepts.h (projected): Replace class
5245 template with alias template denoting an ADL-proofed helper.
5246 (incremental_traits<projected<Iter, Proj>>): Remove.
5247 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
5250 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
5252 * include/debug/helper_functions.h (__get_distance)
5253 (__check_singular, __valid_range_aux, __valid_range): Qualify
5254 calls to disable ADL.
5255 (__check_singular_aux(const _Safe_iterator_base*)): Declare
5256 overload that was previously found via ADL.
5258 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
5260 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
5263 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
5265 * include/std/array (to_array(T(&)[N])): Remove redundant
5267 (to_array(T(&&)[N])): Remove redundant std::move.
5269 2023-06-16 Alexandre Oliva <oliva@adacore.com>
5271 * testsuite/20_util/from_chars/4.cc: Skip long double on
5274 2023-06-16 Joel Brobecker <brobecker@adacore.com>
5276 * configure.ac ["x${with_newlib}" = "xyes"]: Define
5277 HAVE_HYPOTF. Add compile-checks for various long double
5278 math functions as well.
5279 * configure: Regenerate.
5281 2023-06-14 Jonny Grant <jg@jguk.org>
5283 * doc/xml/manual/extensions.xml: Remove demangle exception
5284 description and include.
5285 * doc/html/manual/ext_demangling.html: Regenerate.
5287 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
5289 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
5290 [! SIMULATOR_TEST]: Also exclude running test05.
5291 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
5293 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
5295 * include/std/type_traits: Use using instead of typedef
5297 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5300 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
5301 Only define if _Float128 and long double have different
5304 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5307 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
5308 (basic_endpoint, basic_resolver_entry, resolver_base)
5309 (basic_resolver_results, basic_resolver): Only define if the tcp
5310 or udp protocols will be defined.
5312 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5314 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
5315 * configure: Regenerate.
5316 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
5317 * doc/html/manual/abi.html: Regenerate.
5319 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5322 * include/std/format (formatter<const void*, charT>::parse):
5323 Only alow 0 and P for C++26 and non-strict modes.
5324 (formatter<const void*, charT>::format): Use toupper for P
5325 type, and insert zero-fill characters for 0 option.
5326 * testsuite/std/format/functions/format.cc: Check pointer
5327 formatting. Only check P2510R3 extensions conditionally.
5328 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
5329 extensions conditionally.
5331 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5334 * include/std/array (to_array): Initialize arrays of trivial
5335 types using memcpy. For non-trivial types, use lambda
5336 expressions instead of a separate helper function.
5337 (__to_array): Remove.
5338 * testsuite/23_containers/array/creation/110167.cc: New test.
5340 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5342 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
5344 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
5346 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
5348 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
5350 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
5352 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
5354 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
5356 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
5358 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
5361 2023-06-07 Jakub Jelinek <jakub@redhat.com>
5364 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
5365 (double_to_chars_test_cases,
5366 double_scientific_precision_to_chars_test_cases_2,
5367 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
5368 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
5369 Add unconditional tests with corresponding double constants
5370 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
5371 0x1.7440bbff418b9p-18.
5373 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
5375 * testsuite/util/testsuite_abi.cc (check_version): Re-add
5378 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
5380 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
5381 Require effective target exceptions_enabled instead of using
5383 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
5384 shrink_to_fit() to be a no-op without exceptions enabled.
5385 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
5387 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
5388 Require effective target exceptions_enabled.
5389 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
5391 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
5393 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
5395 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
5397 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
5400 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
5402 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
5403 affected by rounding.
5404 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
5405 double before comparing for equality.
5406 * testsuite/20_util/from_chars/6.cc: Likewise.
5407 * testsuite/20_util/variant/86874.cc: Use values that aren't
5408 affected by rounding.
5409 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
5410 original value instead of to floating-point-literal.
5411 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
5412 Cast arithmetic result to double before comparing for equality.
5413 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
5415 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
5417 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
5418 the absolute difference is less than 0.01 instead of comparing
5419 to two decimal places.
5420 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
5421 Cast arithmetic result to double before comparing for equality.
5422 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
5424 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
5426 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
5428 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
5430 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
5432 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
5434 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
5437 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5439 * configure.ac: Use AS_IF.
5440 * configure: Regenerate.
5442 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
5444 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
5445 'UNSUPPORTED: [...]: exception handling disabled'.
5447 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5449 * testsuite/util/testsuite_abi.cc (check_version): Add
5450 CXXABI_1.3.15 symver and make it the latestp. Remove
5451 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
5453 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5454 Jakub Jelinek <jakub@redhat.com>
5457 * include/std/limits: (numeric_limits<__float128>): Define
5458 for __STRICT_ANSI__ as well.
5459 * testsuite/18_support/numeric_limits/128bit.cc: Remove
5460 check for __STRICT_ANSI__.
5462 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5464 * configure.ac: Use AS_IF.
5465 * configure: Regenerate.
5467 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
5470 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
5471 to avoid casts to other vector types. Implement store as
5472 succession of power-of-2 sized memcpy to avoid PR90424.
5474 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
5477 * include/experimental/bits/simd_builtin.h (_S_masked_store):
5478 Call into deduced ABI's SimdImpl after conversion.
5479 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
5480 Don't use _mm_maskmoveu_si128. Use the generic fall-back
5481 implementation. Also fix masked stores without SSE2, which
5482 were not doing anything before.
5484 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
5486 * include/experimental/bits/simd.h (__bit_cast): Use
5487 __gnu__::__vector_size__ instead of gnu::vector_size.
5489 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5492 * include/std/array (__array_traits<T, 0>::operator T*()): Make
5493 conversion operator explicit.
5494 (array::front): Use size_type as subscript operand.
5495 (array::data): Use static_cast to make conversion explicit.
5496 * testsuite/23_containers/array/element_access/110139.cc: New
5499 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
5501 * include/bits/locale_classes.tcc: Remove check for
5502 codecvt<char8_t, char, mbstate_t> facet.
5504 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5506 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
5507 close-on-exec flag on file descriptors.
5509 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5512 * src/filesystem/ops-common.h (do_copy_file): Check for empty
5513 files by trying to read a character.
5514 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
5517 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
5519 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
5520 * config.h.in: Regenerate.
5521 * configure: Regenerate.
5522 * src/filesystem/ops-common.h (copy_file_copy_file_range):
5523 Define new function.
5524 (do_copy_file): Use it.
5526 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
5528 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
5529 * config.h.in: Regenerate.
5530 * configure: Regenerate.
5531 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
5532 function for sendfile logic. Loop to support large files. Skip
5534 (do_copy_file): Use it.
5536 2023-06-04 Jason Merrill <jason@redhat.com>
5539 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
5540 * config/abi/pre/gnu.ver: Add it.
5542 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
5544 * include/parallel/algobase.h: Include <parallel/search.h>.
5546 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5548 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5549 Add const to equality operator.
5551 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5553 * include/std/expected (expected::and_then, expected::or_else)
5554 (expected::transform_error): Use _M_val and _M_unex instead of
5555 calling value() and error(), as per LWG 3938.
5556 (expected::transform): Likewise. Remove incorrect std::move
5557 calls from lvalue overloads.
5558 (expected<void, E>::and_then, expected<void, E>::or_else)
5559 (expected<void, E>::transform): Use _M_unex instead of calling
5561 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
5562 and transform, and for std::expected<void, E>.
5563 * testsuite/20_util/expected/lwg3938.cc: New test.
5565 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5568 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
5570 (vector::size, vector::capacity): Remove calls to _M_invariant.
5571 * include/bits/vector.tcc (vector::_M_fill_assign): Add
5572 optimization hint to reallocating path.
5573 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
5575 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
5577 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
5578 ...here. Check assign(FwdIter, FwdIter) too.
5579 * testsuite/23_containers/vector/types/1.cc: Revert addition
5580 of -Wno-stringop-overread option.
5582 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5584 * doc/xml/manual/evolution.xml: Document removal of implicit
5585 allocator rebinding extensions in strict mode and for C++20.
5586 * doc/html/*: Regenerate.
5588 2023-06-01 Jason Merrill <jason@redhat.com>
5590 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
5591 handlers in the cleanup phase.
5593 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
5596 * include/experimental/bits/simd.h (__vectorized_sizeof): With
5597 __have_neon_a32 only single-precision float works (in addition
5600 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
5602 * include/bits/stl_algo.h
5603 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
5604 * include/bits/stl_algobase.h: ...here.
5605 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
5606 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
5607 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
5609 * include/parallel/algobase.h: ...here.
5610 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
5611 includes. Include <bits/stl_algobase.h>.
5613 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5616 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
5617 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
5618 * config.h.in: Regenerate.
5619 * configure: Regenerate.
5620 * include/c_global/cmath (float_t, double_t): Guard using new
5621 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
5623 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5625 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
5626 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
5627 for C99 rounding functions to here.
5628 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
5629 functions from here.
5630 * config.h.in: Regenerate.
5631 * configure: Regenerate.
5632 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
5633 of _GLIBCXX_USE_C99_MATH_TR1.
5634 * include/bits/random.tcc: Likewise.
5635 * include/c_compatibility/math.h: Likewise.
5636 * include/c_global/cmath: Likewise.
5637 * include/ext/random: Likewise.
5638 * include/ext/random.tcc: Likewise.
5639 * include/std/complex: Likewise.
5640 * testsuite/20_util/from_chars/4.cc: Likewise.
5641 * testsuite/20_util/from_chars/8.cc: Likewise.
5642 * testsuite/26_numerics/complex/proj.cc: Likewise.
5643 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
5644 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
5646 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5648 * testsuite/util/testsuite_random.h: Likewise.
5650 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5652 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
5654 (vector::size(), vector::capacity()): Call _M_invariant().
5655 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
5656 * testsuite/23_containers/vector/types/1.cc: Add suppression for
5657 false positive warning (PR110060).
5659 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5662 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
5663 defined before trying to use _Float128.
5665 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5667 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
5668 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
5669 * configure: Regenerate.
5671 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5673 * include/bits/unique_lock.h: Include <bits/error_constants.h>
5674 here for std::errc constants.
5675 * include/std/mutex: Do not include <bits/error_constants.h> and
5678 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5680 * configure.ac: Replace use of -o operator for test.
5681 * configure: Regenerate.
5683 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5685 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
5686 noexcept to all constructors except the default constructor.
5687 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
5688 (scoped_allocator_adaptor::outer_allocator): Likewise.
5689 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
5691 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5694 * include/std/limits (numeric_limits<__float128>): Define.
5695 * testsuite/18_support/numeric_limits/128bit.cc: New test.
5697 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5699 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
5700 msp430 to all 16-bit targets.
5701 * configure: Regenerate.
5703 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5706 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
5707 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
5708 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
5710 (from_chars(const char*, const char*, double&, chars_format)):
5711 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
5712 (from_chars(const char*, const char*, _Float128&, chars_format))
5713 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
5714 defined, otherwise parse a long double and convert to _Float128.
5716 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5719 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
5720 Add deprecated attribute to non-standard overload.
5721 * doc/xml/manual/evolution.xml: Document deprecation.
5722 * doc/html/*: Regenerate.
5723 * testsuite/27_io/manipulators/standard/char/1.cc: Add
5724 dg-warning for expected deprecated warning.
5725 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
5726 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
5727 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
5729 2023-05-30 Alexandre Oliva <oliva@adacore.com>
5731 * testsuite/20_util/from_chars/4.cc: Skip long double test06
5733 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
5736 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5739 * include/experimental/bits/simd.h (to_native): Use int NTTP
5740 as specified in PTS2.
5741 (to_compatible): Likewise. Add missing tag to call mask
5743 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
5746 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5748 * testsuite/experimental/simd/tests/integer_operators.cc:
5749 Compute expected value differently to avoid getting turned into
5752 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5754 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
5755 double <-> (u)long conversion tests conditional on sizeof(long
5756 double) and sizeof(long).
5758 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
5760 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
5761 Negative __y is UB, so prefer signed compare.
5763 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
5765 * testsuite/util/testsuite_allocator.h (PointerBase): Add
5766 relational operators.
5768 2023-05-25 Alexandre Oliva <oliva@adacore.com>
5770 * testsuite/20_util/to_chars/long_double.cc: Expect execution
5771 fail on x86-vxworks.
5773 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5776 * include/experimental/bits/simd.h (__intrinsic_type): If
5777 __ALTIVEC__ is defined, map gnu::vector_size types to their
5778 corresponding __vector T types without losing unsignedness of
5779 integer types. Also prefer long long over long.
5780 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
5781 object to the expected unsigned vector type.
5783 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5786 * include/experimental/bits/simd.h (__intrinsic_type):
5787 Specialize __intrinsic_type<double, 8> and
5788 __intrinsic_type<double, 16> in any case, but provide the member
5789 type only with __aarch64__.
5791 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5794 * include/experimental/bits/simd_neon.h (_S_reduce): Add
5795 constexpr and make NEON implementation conditional on
5796 not __builtin_is_constant_evaluated.
5798 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
5801 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
5802 Avoid vector builtin subscripting in constant expressions.
5803 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
5804 (const_where_expression, where_expression, where)
5805 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
5806 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
5808 * include/experimental/bits/simd_builtin.h (__vector_permute)
5809 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
5810 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
5811 (_MaskImplBuiltin::_S_store): Add constexpr.
5812 (_CommonImplBuiltin::_S_store_bool_array)
5813 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
5814 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
5815 constant_evaluated case.
5816 * include/experimental/bits/simd_fixed_size.h
5817 (_S_masked_load): Reword comment.
5818 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
5819 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
5820 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
5821 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
5822 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
5824 (_SimdTuple::operator[], _M_set): Add constexpr and add
5825 constant_evaluated case.
5826 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
5827 * include/experimental/bits/simd_scalar.h: Add constexpr.
5828 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
5829 constexpr and add constant_evaluated case.
5830 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
5831 (_S_less_equal): Value-initialize to satisfy constexpr
5833 (_MaskImplX86::_S_load): Add constant_evaluated case.
5834 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
5835 case. Value-initialize local variables.
5836 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
5837 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
5839 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
5842 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
5844 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
5845 __infn into #ifdef'ed block.
5846 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
5847 constants only when used.
5848 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
5849 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
5850 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
5852 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5853 Move totest and expect1 into #ifdef'ed block.
5855 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
5857 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
5858 * doc/html/manual/strings.html: Regenerate.
5860 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5863 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
5865 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5868 * include/c_global/cmath (atan2, fmod, pow): Move
5869 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
5870 __gnu_cxx::__bfloat16_t overloads.
5871 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
5873 (fma): Move __gnu_cxx::__promote_3 using template after
5874 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
5876 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5878 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
5879 checks for float_round_style and float_denorm_style.
5881 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5883 * include/bits/c++config: Add system_header pragma.
5885 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5887 * include/std/expected (expected::and_then, expected::or_else)
5888 (expected::transform, expected::transform_error): Fix exception
5889 specifications as per LWG 3877.
5890 (expected<void, E>::and_then, expected<void, E>::transform):
5892 * testsuite/20_util/expected/lwg3877.cc: New test.
5894 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
5896 * include/std/type_traits: Use __bool_constant instead of
5899 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5901 * configure: Regenerate.
5903 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5906 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
5907 * config.h.in: Regenerate.
5908 * configure: Regenerate.
5909 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
5910 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
5911 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
5912 instead of hardcoded 64.
5914 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5916 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
5917 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
5918 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
5919 * config.h.in: Regenerate.
5920 * configure: Regenerate.
5921 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
5922 instead of _GLIBCXX_USE_C99_FENV_TR1.
5923 * include/c_global/cfenv: Likewise.
5924 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
5925 of _GLIBCXX_USE_C99_CTYPE_TR1.
5927 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5929 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
5930 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
5931 <inttypes.h> features in C++11 mode and define
5932 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
5933 * config.h.in: Regenerate.
5934 * configure: Regenerate.
5935 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
5936 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
5937 of _GLIBCXX_USE_C99_STDINT_TR1.
5938 * include/c_compatibility/inttypes.h: Check
5939 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
5940 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
5941 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5942 * include/c_compatibility/stdatomic.h: Check
5943 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
5944 * include/c_compatibility/stdint.h: Likewise.
5945 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
5946 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
5947 _GLIBCXX_USE_C99_INTTYPES_TR1 and
5948 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5949 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
5950 instead of _GLIBCXX_USE_C99_STDINT_TR1.
5951 * include/std/atomic: Likewise.
5952 * src/c++11/cow-stdexcept.cc: Likewise.
5953 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
5955 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5958 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5960 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
5961 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
5962 * config.h.in: Regenerate.
5963 * configure: Regenerate.
5964 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
5965 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
5966 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
5968 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5970 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
5971 assertion to ensure expected exception is throw.
5973 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5975 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
5976 printer for chrono::zoned_time for cx11 ABI and tzdb effective
5979 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5981 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
5982 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
5983 * configure: Regenerate.
5985 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5987 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
5988 to check for nan, nanf, and nanl.
5989 * configure: Regenerate.
5991 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5993 * include/bits/char_traits.h (char_traits<char16_t>): Do not
5994 depend on _GLIBCXX_USE_C99_STDINT_TR1.
5995 (char_traits<char32_t>): Likewise.
5996 * include/experimental/source_location: Likewise.
5998 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6000 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
6001 (atomic_int_least16_t, atomic_uint_least16_t)
6002 (atomic_int_least32_t, atomic_uint_least32_t)
6003 (atomic_int_least64_t, atomic_uint_least64_t)
6004 (atomic_int_fast16_t, atomic_uint_fast16_t)
6005 (atomic_int_fast32_t, atomic_uint_fast32_t)
6006 (atomic_int_fast64_t, atomic_uint_fast64_t)
6007 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
6008 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
6010 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6012 * include/bits/algorithmfwd.h (shuffle): Do not depend on
6013 _GLIBCXX_USE_C99_STDINT_TR1.
6014 * include/bits/ranges_algo.h (shuffle): Likewise.
6015 * include/bits/stl_algo.h (shuffle): Likewise.
6016 * include/ext/random: Likewise.
6017 * include/ext/throw_allocator.h (random_condition): Likewise.
6018 * include/std/random: Likewise.
6019 * src/c++11/cow-string-inst.cc: Likewise.
6020 * src/c++11/random.cc: Likewise.
6022 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6024 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
6025 _GLIBCXX_USE_C99_STDINT_TR1.
6027 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6029 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
6030 on _GLIBCXX_USE_C99_STDINT_TR1.
6032 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6034 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
6035 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
6036 * testsuite/experimental/string_view/typedefs.cc: Likewise.
6038 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
6040 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
6041 (auto_locale, auto_ferounding): New class types.
6042 (from_chars_impl): Use auto_locale and auto_ferounding.
6044 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
6047 * include/std/chrono (hh_mm_ss::__fits): Remove variable
6049 (hh_mm_ss::__subseconds): Remove __fits from constraints.
6050 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
6051 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
6052 hh_mm_ss<duration<int, std::pico>>.
6054 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
6056 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
6057 * include/bits/basic_ios.h: Add static assertion checking
6058 traits_type::value_type.
6059 * include/bits/basic_string.h: Likewise. Do not rebind
6060 allocator, and add static assertion checking its value_type.
6061 (basic_string::_Alloc_traits_impl): Remove class template.
6062 (basic_string::_S_allocate): New static member function.
6063 (basic_string::assign): Use _S_allocate.
6064 * include/bits/basic_string.tcc (basic_string::_M_create)
6065 (basic_string::reserve, basic_string::_M_replace): Likewise.
6066 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
6067 Disable for C++20 and later.
6068 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
6071 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
6074 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
6075 and negative zero correctly.
6076 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
6078 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
6080 * include/bits/hashtable_policy.h
6081 (_NodeBuilder<>::_S_build): Use __node_ptr.
6082 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
6083 (_AllocNode<>): Likewise.
6084 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
6085 to call std::is_permutation in the non-unique key implementation.
6086 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
6088 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
6089 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
6090 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
6091 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
6093 (_Hashtable<>::find): Likewise.
6094 (_Hashtable<>::_M_emplace): Likewise.
6095 (_Hashtable<>::_M_insert_unique): Likewise.
6097 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
6099 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
6100 Print floating-point durations correctly.
6101 (StdChronoTimePointPrinter): Support printing only the value,
6102 not the type name. Uncomment handling for known clocks.
6103 (StdChronoZonedTimePrinter): Remove type names from output.
6104 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
6105 (StdChronoTimeZonePrinter): Add equals sign to output.
6106 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
6108 2023-05-05 Alexandre Oliva <oliva@adacore.com>
6110 * testsuite/20_util/from_chars/4.cc: Skip long double test06
6112 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
6115 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
6117 * doc/xml/manual/abi.xml (abi.versioning.history): Document
6118 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
6119 * doc/html/manual/abi.html: Regenerate.
6121 2023-05-04 Florian Weimer <fweimer@redhat.com>
6123 * doc/xml/manual/abi.xml (abi.versioning.history): Add
6124 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
6127 2023-05-03 Jakub Jelinek <jakub@redhat.com>
6129 * src/c++17/floating_from_chars.cc
6130 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
6131 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
6132 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
6133 _ZSt8to_charsPcS_u9__ieee128.
6134 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
6135 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
6136 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
6137 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
6138 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
6140 2023-05-03 Jakub Jelinek <jakub@redhat.com>
6142 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
6143 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
6144 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
6145 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
6146 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
6148 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
6151 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
6152 Jonathan Wakely <jwakely@redhat.com>
6155 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
6156 Initialize _M_string_length.
6158 2023-05-02 Jakub Jelinek <jakub@redhat.com>
6160 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6161 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6162 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6163 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6164 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6165 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6166 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6167 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6169 2023-05-02 Jakub Jelinek <jakub@redhat.com>
6172 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
6175 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
6177 * include/bits/random.h (gamma_distribution): Add to the right
6179 (discrete_distribution, piecewise_constant_distribution)
6180 (piecewise_linear_distribution): Create a new doxygen group and
6181 fix the incomplete doxygen comments.
6182 * include/bits/uniform_int_dist.h (uniform_int_distribution):
6183 Add to doxygen group.
6185 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
6187 * include/bits/uses_allocator.h: Add missing @file comment.
6188 * include/bits/regex.tcc: Remove stray doxygen comments.
6189 * include/experimental/memory_resource: Likewise.
6190 * include/std/bit: Tweak doxygen @cond comments.
6191 * include/std/expected: Likewise.
6192 * include/std/numbers: Likewise.
6194 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
6196 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
6199 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
6201 * include/bits/move.h: Simplify opening/closing namespace std.
6203 2023-04-28 Jakub Jelinek <jakub@redhat.com>
6206 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
6207 _ZSt21ios_base_library_initv.
6208 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
6209 symver and make it the latestp.
6210 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
6211 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
6212 * include/std/iostream: If init_priority attribute is supported
6213 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
6214 symbol into the object.
6215 * configure: Regenerated.
6217 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6219 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
6220 * include/std/format: Likewise.
6222 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6224 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
6225 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
6227 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6229 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
6231 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
6233 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
6235 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
6237 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
6239 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
6240 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
6241 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
6242 (_DEFINE_BINARY_OPERATOR): Likewise.
6244 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6246 * include/bits/memory_resource.h: Improve doxygen comments.
6247 * include/std/memory_resource: Likewise.
6249 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6252 * include/bits/basic_string.h: Improve doxygen comments.
6253 * include/bits/cow_string.h: Likewise.
6254 * include/bits/forward_list.h: Likewise.
6255 * include/bits/fs_dir.h: Likewise.
6256 * include/bits/fs_path.h: Likewise.
6257 * include/bits/quoted_string.h: Likewise.
6258 * include/bits/stl_bvector.h: Likewise.
6259 * include/bits/stl_map.h: Likewise.
6260 * include/bits/stl_multimap.h: Likewise.
6261 * include/bits/stl_multiset.h: Likewise.
6262 * include/bits/stl_set.h: Likewise.
6263 * include/bits/stl_vector.h: Likewise.
6264 * include/bits/unordered_map.h: Likewise.
6265 * include/bits/unordered_set.h: Likewise.
6266 * include/std/filesystem: Likewise.
6267 * include/std/iomanip: Likewise.
6269 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6272 * src/c++11/random.cc (__throw_syserr): New function.
6273 (random_device::_M_init, random_device::_M_init_pretr1): Use new
6274 function for bad tokens.
6275 (random_device::_M_getval): Use new function for read errors.
6276 * testsuite/util/testsuite_random.h (random_device_available):
6277 Change catch handler to use std::system_error.
6279 2023-04-24 Patrick Palka <ppalka@redhat.com>
6281 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
6282 Fix propagation of sign bit.
6283 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
6284 non-standard 'signed typedef-name'. Add some compile-time tests
6285 for right-shifting a negative __max_diff_type value by more than
6288 2023-04-19 Patrick Palka <ppalka@redhat.com>
6289 Jonathan Wakely <jwakely@redhat.com>
6292 * include/bits/utility.h (_Nth_type): Conditionally define in
6293 terms of __type_pack_element if available.
6294 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
6295 additional errors from the new built-in.
6297 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
6300 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6303 * src/Makefile.am: Move globals_io.cc to here.
6304 * src/Makefile.in: Regenerate.
6305 * src/c++98/Makefile.am: Remove globals_io.cc from here.
6306 * src/c++98/Makefile.in: Regenerate.
6307 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
6308 symbol name and then export with GLIBCXX_3.4.31 symver.
6309 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
6310 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
6312 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
6314 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
6316 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
6318 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6320 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
6322 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
6324 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
6326 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
6328 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
6331 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6334 * config/abi/pre/gnu.ver: Fix preprocessor condition.
6336 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6338 * doc/xml/manual/extensions.xml: Fix example to declare and
6339 qualify std::free, and use NULL instead of 0.
6340 * doc/html/manual/ext_demangling.html: Regenerate.
6341 * libsupc++/cxxabi.h: Adjust doxygen comments.
6343 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6346 * config/abi/pre/gnu.ver: Fix preprocessor condition.
6348 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6351 * src/Makefile.am: Move globals_io.cc to here.
6352 * src/Makefile.in: Regenerate.
6353 * src/c++98/Makefile.am: Remove globals_io.cc from here.
6354 * src/c++98/Makefile.in: Regenerate.
6355 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
6356 symbol name and then export with GLIBCXX_3.4.31 symver.
6357 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
6358 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
6360 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
6362 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
6364 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
6366 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6368 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
6370 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
6372 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
6374 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
6376 2023-04-18 Patrick Palka <ppalka@redhat.com>
6379 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
6381 * include/std/ranges (range_adaptor_closure): Define for C++23.
6382 * include/std/version (__cpp_lib_ranges): Bump value for
6384 * testsuite/std/ranges/version_c++23.cc: Bump expected value
6385 of __cpp_lib_ranges.
6386 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
6388 2023-04-18 Patrick Palka <ppalka@redhat.com>
6390 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
6392 (__cpp_lib_ranges_iota): Likewise.
6393 (__cpp_lib_ranges_find_last): Likewise.
6394 (__cpp_lib_fold): Rename to ...
6395 (__cpp_lib_ranges_fold): ... this.
6396 * include/std/version: As above.
6397 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
6398 renaming __cpp_lib_fold.
6399 * testsuite/std/ranges/version_c++23.cc: Verify values
6400 of the above feature-test macros.
6402 2023-04-18 Patrick Palka <ppalka@redhat.com>
6405 * include/std/ranges (views::_AsConst::operator()): Add
6406 missing const to constant_range test.
6407 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
6408 Improve formatting. Adjust expected type of v2.
6411 2023-04-14 Patrick Palka <ppalka@redhat.com>
6413 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
6414 (const_sentinel_t): Likewise.
6415 (range_const_reference_t): Likewise.
6416 (constant_range): Likewise.
6417 (__cust_access::__possibly_const_range): Likewise, replacing ...
6418 (__cust_access::__as_const): ... this.
6419 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
6420 (__cust_access::_CEnd::operator()): Likewise.
6421 (__cust_access::_CRBegin::operator()): Likewise.
6422 (__cust_access::_CREnd::operator()): Likewise.
6423 (__cust_access::_CData::operator()): Likewise.
6424 * include/bits/ranges_util.h (ranges::__detail::__different_from):
6425 Make it an alias of std::__detail::__different_from.
6426 (view_interface::cbegin): Define for C++23.
6427 (view_interface::cend): Likewise.
6428 * include/bits/stl_iterator.h (__detail::__different_from): Define.
6429 (iter_const_reference_t): Define for C++23.
6430 (__detail::__constant_iterator): Likewise.
6431 (__detail::__is_const_iterator): Likewise.
6432 (__detail::__not_a_const_iterator): Likewise.
6433 (__detail::__iter_const_rvalue_reference_t): Likewise.
6434 (__detail::__basic_const_iter_cat):: Likewise.
6435 (const_iterator): Likewise.
6436 (__detail::__const_sentinel): Likewise.
6437 (const_sentinel): Likewise.
6438 (basic_const_iterator): Likewise.
6439 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
6440 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
6441 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
6443 (make_const_iterator): Define for C++23.
6444 (make_const_sentinel): Likewise.
6445 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
6446 (as_const_view): Likewise.
6447 (enable_borrowed_range<as_const_view>): Likewise.
6448 (views::__detail::__is_ref_view): Likewise.
6449 (views::__detail::__can_is_const_view): Likewise.
6450 (views::_AsConst, views::as_const): Likewise.
6451 * include/std/span (span::const_iterator): Likewise.
6452 (span::const_reverse_iterator): Likewise.
6453 (span::cbegin): Likewise.
6454 (span::cend): Likewise.
6455 (span::crbegin): Likewise.
6456 (span::crend): Likewise.
6457 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
6458 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
6459 behave independently of C++20 vs C++23.
6460 * testsuite/std/ranges/version_c++23.cc: Verify value of
6461 __cpp_lib_ranges_as_const macro.
6462 * testsuite/24_iterators/const_iterator/1.cc: New test.
6463 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
6465 2023-04-14 Patrick Palka <ppalka@redhat.com>
6467 * include/bits/ranges_base.h (__cust_access::__as_const)
6468 (__cust_access::_CBegin, __cust::cbegin)
6469 (__cust_access::_CEnd, __cust::cend)
6470 (__cust_access::_CRBegin, __cust::crbegin)
6471 (__cust_access::_CREnd, __cust::crend)
6472 (__cust_access::_CData, __cust::cdata): Move down definitions to
6473 shortly after the definition of input_range.
6475 2023-04-14 Patrick Palka <ppalka@redhat.com>
6477 * include/bits/ranges_algo.h: Include <optional> for C++23.
6478 (__cpp_lib_fold): Define for C++23.
6479 (in_value_result): Likewise.
6480 (__detail::__flipped): Likewise.
6481 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
6482 (__detail::__indirectly_binary_left_foldable): Likewise.
6483 (___detail:__indirectly_binary_right_foldable): Likewise.
6484 (fold_left_with_iter_result): Likewise.
6485 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
6486 (__fold_left_fn, fold_left): Likewise.
6487 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
6489 (__fold_left_first_fn, fold_left_first): Likewise.
6490 (__fold_right_fn, fold_right): Likewise.
6491 (__fold_right_last_fn, fold_right_last): Likewise.
6492 * include/std/version (__cpp_lib_fold): Likewise.
6493 * testsuite/25_algorithms/fold_left/1.cc: New test.
6494 * testsuite/25_algorithms/fold_right/1.cc: New test.
6496 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
6498 * include/std/format (formatter): Add comment to deleted default
6499 constructor of primary template.
6500 (_Checking_scanner): Add static_assert.
6502 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6504 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
6505 * doc/html/*: Regenerate.
6507 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6509 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
6510 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
6511 namespace to avoid clashing with libc struct.
6512 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
6514 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
6515 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
6516 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
6517 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
6518 * testsuite/experimental/synchronized_value.cc: Require gthreads
6519 and add missing option for pthreads targets.
6521 2023-04-12 Patrick Palka <ppalka@redhat.com>
6523 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
6525 (__detail::__range_with_movable_reference): Likewise.
6526 (enumerate_view): Likewise.
6527 (enumerate_view::_Iterator): Likewise.
6528 (enumerate_view::_Sentinel): Likewise.
6529 (views::__detail::__can_enumerate_view): Likewise.
6530 (views::_Enumerate, views::enumerate): Likewise.
6531 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
6532 * testsuite/std/ranges/version_c++23.cc: Verify value of
6533 __cpp_lib_ranges_enumerate.
6534 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
6536 2023-04-12 Patrick Palka <ppalka@redhat.com>
6538 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
6539 Propagate _M_trailing_empty in the const-converting constructor
6541 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
6543 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
6545 2023-04-12 Patrick Palka <ppalka@redhat.com>
6547 * src/c++17/floating_from_chars.cc: Include <algorithm>,
6548 <iterator>, <limits> and <cstdint>.
6550 2023-04-12 Patrick Palka <ppalka@redhat.com>
6553 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
6554 parameter types of the lambda wrapper passed to adjacent_find.
6555 (chunk_by_view::_M_find_prev): Likewise.
6556 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
6559 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6562 * include/experimental/internet (basic_endpoint::basic_endpoint()):
6563 Ensure that the required union members are active. Only define
6564 as constexpr for C++20 and later.
6565 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
6567 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
6568 check constexpr default constructor for C++20 and later.
6569 * testsuite/experimental/net/internet/endpoint/extensible.cc:
6572 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6574 * src/c++20/tzdata.zi: Import new file from 2023c release.
6576 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6578 * include/precompiled/stdc++.h (C++17): Don't double-include
6579 <charconv>, once with wrong conditions.
6580 * testsuite/18_support/96817.cc: Require hosted.
6581 * testsuite/18_support/bad_exception/59392.cc: Ditto.
6582 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
6583 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
6584 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
6587 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6589 * include/bits/c++config: When __STDC_HOSTED__ is zero,
6590 disable _GLIBCXX_DEBUG and, if it was set, enable
6591 _GLIBCXX_ASSERTIONS.
6592 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
6593 Include <bits/c++config.h> when determining whether debug is
6594 set, in order to inherit the logic from above
6596 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6598 * testsuite/17_intro/versionconflict.cc: New test.
6599 * include/std/version: Allow disabling the system_header pragma
6600 via _GLIBCXX_TESTING_SYSHDR.
6602 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6604 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
6605 Synchronize the definition block with...
6606 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
6607 ... this one here. Also define the 202202L value, rather than
6608 leaving it up to purely unique_ptr.h, so that the value is
6609 synchronized across all headers.
6610 (__gnu_debug::_Safe_iterator_base): Move into new conditional
6612 * include/std/memory (__cpp_lib_atomic_value_initialization):
6613 Define on freestanding under the same conditions as in
6615 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
6616 Also define on freestanding.
6617 (__cpp_lib_to_chars): Ditto.
6618 (__cpp_lib_gcd): Ditto.
6619 (__cpp_lib_gcd_lcm): Ditto.
6620 (__cpp_lib_raw_memory_algorithms): Ditto.
6621 (__cpp_lib_array_constexpr): Ditto.
6622 (__cpp_lib_nonmember_container_access): Ditto.
6623 (__cpp_lib_clamp): Ditto.
6624 (__cpp_lib_constexpr_char_traits): Ditto.
6625 (__cpp_lib_constexpr_string): Ditto.
6626 (__cpp_lib_sample): Ditto.
6627 (__cpp_lib_lcm): Ditto.
6628 (__cpp_lib_constexpr_iterator): Ditto.
6629 (__cpp_lib_constexpr_char_traits): Ditto.
6630 (__cpp_lib_interpolate): Ditto.
6631 (__cpp_lib_constexpr_utility): Ditto.
6632 (__cpp_lib_shift): Ditto.
6633 (__cpp_lib_ranges): Ditto.
6634 (__cpp_lib_move_iterator_concept): Ditto.
6635 (__cpp_lib_constexpr_numeric): Ditto.
6636 (__cpp_lib_constexpr_functional): Ditto.
6637 (__cpp_lib_constexpr_algorithms): Ditto.
6638 (__cpp_lib_constexpr_tuple): Ditto.
6639 (__cpp_lib_constexpr_memory): Ditto.
6641 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
6643 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
6644 timeout factor on hppa*-*-*.
6646 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
6648 * include/bits/regex.h (sub_match::swap): New function.
6649 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
6651 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
6653 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
6655 * doc/html/manual/ext_demangling.html: Regenerate.
6657 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6659 PR tree-optimization/107087
6660 * include/bits/cow_string.h (basic_string::size()): Add
6661 optimizer hint that _S_empty_rep()._M_length is always zero.
6662 (basic_string::length()): Call size().
6664 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6667 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
6668 Add attribute access with access-mode 'none'.
6669 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
6671 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6673 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
6674 Revert change from member function to data member. Fix for
6675 constant evaluation by detecting which union member is active.
6676 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
6679 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6682 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
6683 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
6685 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6687 * include/experimental/internet (ip::make_address): Implement
6689 (ip::address_v4::broadcast()): Avoid undefined shift.
6690 (ip::basic_endpoint): Fix member functions for constexpr.
6691 (ip::basic_endpoint::_M_is_v6): Replace member function with
6692 data member, adjust member functions using it.
6693 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
6695 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6696 constexpr checks to work in C++14.
6697 * testsuite/experimental/net/internet/address/v4/creation.cc:
6699 * testsuite/experimental/net/internet/endpoint/cons.cc:
6701 * testsuite/experimental/net/internet/network/v4/cons.cc:
6703 * testsuite/experimental/net/internet/network/v4/members.cc:
6705 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
6707 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6709 * include/std/expected (expected::value() &): Use const lvalue
6710 for unex member passed to bad_expected_access constructor, as
6713 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6716 * include/std/expected (expected::transform): Use
6717 std::remove_cv_t instead of std::remove_cvref_t.
6718 (expected::transform_error): Likewise.
6719 (expected<cv void, E>::transform): Likewise.
6720 (expected<cv void, E>::transform_error): Likewise.
6721 * include/std/optional (transform): Use std::remove_cv_t.
6722 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
6724 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6726 * include/std/optional (optional): Adjust static assertion to
6727 reject arrays and functions as well as references.
6728 * testsuite/20_util/optional/requirements_neg.cc: New test.
6730 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6733 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
6734 std::use_facet instead of cached _M_num_get facet.
6735 (istream::operator>>(short&)): Likewise.
6736 (istream::operator>>(int&)): Likewise.
6737 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
6738 std::use_facet instead of cached _M_num_put facet.
6740 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6742 * include/bits/char_traits.h (char_traits::copy): Return without
6743 using memcpy if n==0.
6744 (char_traits::assign): Likewise for memset.
6746 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6749 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
6750 hint for compiler that local strings fit in the local buffer.
6752 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6755 * include/std/chrono (__detail::__get_leap_second_info): Update
6756 expiry date of hardcoded leapseconds list.
6757 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
6759 * src/c++20/tzdata.zi: Import new file from 2023a release.
6760 * testsuite/std/time/time_zone/get_info_local.cc: Only check
6761 transitions for Egypt up to 2014.
6763 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6765 * include/experimental/bits/simd.h (is_simd_flag_type): New.
6766 (_IsSimdFlagType): New.
6767 (copy_from, copy_to, load ctors): Constrain _Flags using
6770 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6772 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
6773 _Base::_S_divides if the optimized _S_divides function is hidden
6774 via the preprocessor.
6776 2023-03-27 Jakub Jelinek <jakub@redhat.com>
6778 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
6779 warning if size_t is not unsigned long.
6781 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6783 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
6784 Add overload, as per LWG 3893.
6785 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
6786 Check assignment from nullptr.
6788 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6790 * include/std/format (formatter<const charT[N], charT>): Do not
6791 define partial speclialization, as per LWG 3833.
6792 * testsuite/std/format/formatter/requirements.cc: Check it.
6794 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6796 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
6798 * testsuite/20_util/exchange/constexpr.cc: Check for it.
6800 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6802 * include/std/version (__cpp_lib_format): Define.
6803 * testsuite/std/format/functions/format.cc: Check it.
6805 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6807 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
6808 Pass rvalues to the callback, as now allowed by LWG 3645.
6809 Enforce preconditions on the return value.
6810 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
6813 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6815 * include/std/format: Add a comment noting that the resolution
6816 of LWG 3720 has been applied..
6818 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6820 * include/bits/regex.h (match_results): Add allocator-extended
6821 copy and move constructors, as per LWG 2195.
6822 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
6824 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6826 * include/bits/stream_iterator.h (istream_iterator): Add
6827 constexpr to copy constructor, as per LWG 3600.
6828 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
6829 Check copy construction.
6831 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6833 * include/experimental/bits/simd_x86.h
6834 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
6835 with __RECIPROCAL_MATH__.
6837 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6839 * include/experimental/bits/simd_detail.h: Don't define
6840 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
6841 * include/experimental/bits/simd_x86.h (_S_divides): Remove
6842 check for __clang__.
6844 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6846 * include/experimental/bits/simd_detail.h: Don't declare the
6847 simd API as constexpr with Clang.
6848 * include/experimental/bits/simd_x86.h (__movm): New.
6849 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
6851 (_SimdImplX86::_S_masked_unary): Clang does not implement the
6852 same builtins. Implement the function using __movm, ?:, and -
6853 operators on vector_size types instead.
6855 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6857 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
6858 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
6860 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6862 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
6865 2023-03-20 Marek Polacek <polacek@redhat.com>
6868 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
6869 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
6870 * testsuite/23_containers/span/explicit.cc: Likewise.
6872 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6875 * include/std/expected (expected<void>::expected(in_place_t)):
6876 Remove template-head.
6878 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
6881 * testsuite/18_support/coroutines/hash.cc: Use const object
6884 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
6887 * include/std/coroutine (hash<>::operator()): Add const.
6888 * testsuite/18_support/coroutines/hash.cc: New test.
6890 2023-03-14 Patrick Palka <ppalka@redhat.com>
6893 * include/std/ranges (repeat_view): Remove redundant parentheses
6895 (repeat_view::_Iterator): Correct the requires-clause.
6897 2023-03-14 Patrick Palka <ppalka@redhat.com>
6899 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
6901 (__cpp_lib_move_iterator_concept): Define for C++20.
6902 (move_iterator::iterator_concept): Strengthen as per P2520R0.
6903 * include/std/version (__cpp_lib_move_iterator_concept): Define
6905 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
6907 2023-03-14 Patrick Palka <ppalka@redhat.com>
6909 * include/bits/ranges_util.h (view_interface::empty): Add
6910 preferred overloads that use ranges::size when the range is
6911 sized as per LWG 3715.
6912 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
6914 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6916 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
6917 Only define for C++17 and later.
6919 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6921 * src/Makefile.am: Add comment about linker script fragments.
6922 * src/Makefile.in: Regenerate.
6924 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6927 * include/bits/mask_array.h (mask_array): Add assertions to
6928 assignment operators.
6929 * include/std/valarray (valarray::operator[](valarray<bool>)):
6931 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
6932 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
6933 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
6934 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
6935 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
6936 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
6937 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
6938 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
6939 * testsuite/26_numerics/valarray/mask.cc: New test.
6941 2023-03-13 Jakub Jelinek <jakub@redhat.com>
6943 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6944 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6946 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6948 * doc/Makefile.am: Add comment referring to documentation.
6949 * doc/Makefile.in: Regenerate.
6951 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6953 * doc/html/*: Regenerate.
6955 2023-03-13 Jonny Grant <jg@jguk.org>
6957 * doc/xml/faq.xml: Update copyright year.
6959 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6961 * include/bits/allocator.h: Fix typo in comment.
6963 2023-03-12 Jakub Jelinek <jakub@redhat.com>
6965 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
6966 if it isn't mangled as DF16b but u6__bf16.
6968 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
6970 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
6972 * doc/html/manual/documentation_hacking.html: Regenerate.
6974 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
6977 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
6978 Remove self-recursion in __init__. Add missing _supports.
6979 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
6982 2023-03-09 Patrick Palka <ppalka@redhat.com>
6984 * include/std/ranges
6985 (cartesian_product_view::_Iterator::_Iterator): Remove
6986 constraint on default constructor as per LWG 3849.
6987 (cartesian_product_view::_Iterator::_M_prev): Adjust position
6988 of _Nm > 0 test as per LWG 3820.
6989 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
6990 checking only on sized cartesian products.
6991 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
6993 2023-03-09 Patrick Palka <ppalka@redhat.com>
6996 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
6998 (repeat_view::_M_pred): Likewise.
6999 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
7000 * testsuite/std/ranges/repeat/1.cc (test05): New test.
7002 2023-03-09 Patrick Palka <ppalka@redhat.com>
7005 * include/std/ranges (__detail::__can_single_view): New concept.
7006 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
7007 end of the function declarator.
7008 (__detail::__can_iota_view): New concept.
7009 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
7010 end of the function declarator.
7011 (__detail::__can_istream_view): New concept.
7012 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
7013 end of the function declarator.
7014 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
7015 * testsuite/std/ranges/istream_view.cc (test08): New test.
7016 * testsuite/std/ranges/single_view.cc (test07): New test.
7018 2023-03-09 Patrick Palka <ppalka@redhat.com>
7021 * include/std/ranges (cartesian_product_view::end): When
7022 building the tuple of iterators, avoid calling ranges::begin on
7023 the first range if __empty_tail is false.
7024 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
7026 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
7029 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
7032 2023-03-07 Jakub Jelinek <jakub@redhat.com>
7034 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
7035 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
7036 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
7037 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
7038 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
7040 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
7043 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
7044 not match symbols in namespace std::__gnu_cxx11_ieee128.
7045 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
7046 std::__gnu_cxx11_ieee128::money_{get,put}.
7048 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
7050 * libsupc++/eh_personality.cc: Fix spelling in comment.
7052 2023-03-03 Alexandre Oliva <oliva@adacore.com>
7054 * testsuite/30_threads/async/async.cc (test04): Initialize
7055 steady_start, renamed from steady_begin, next to slow_start.
7056 Increase tolerance for final wait.
7058 2023-03-03 Alexandre Oliva <oliva@adacore.com>
7060 * testsuite/libstdc++-prettyprinters/80276.cc: Add
7061 std::string to debug info.
7062 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
7064 2023-03-03 Alexandre Oliva <oliva@adacore.com>
7069 * include/bits/std_thread.h (thread::_M_thread_deps): New
7070 static implicitly-inline member function.
7071 (std::thread template ctor): Pass it to _M_start_thread.
7072 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
7073 parameter, force it live on entry.
7075 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7077 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
7078 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
7080 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
7081 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
7084 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
7086 * include/bits/cow_string.h: Fix typo in comment.
7088 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
7090 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
7091 current time zone cannot be determined.
7092 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
7093 HAVE_TZDB macro and test all members unconditionally.
7095 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
7098 * include/bits/uses_allocator_args.h
7099 (uses_allocator_construction_args): Implement LWG 3527.
7100 * testsuite/20_util/pair/astuple/get-2.cc: New test.
7101 * testsuite/20_util/scoped_allocator/108952.cc: New test.
7102 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
7104 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
7107 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
7108 Add __assign_one static member function.
7109 (__copy_move<true, false, RA>): Likewise.
7110 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
7112 (__copy_move_backward<IsMove, true, RA>): Likewise.
7113 * testsuite/25_algorithms/copy/108846.cc: New test.
7114 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
7115 * testsuite/25_algorithms/copy_n/108846.cc: New test.
7116 * testsuite/25_algorithms/move/108846.cc: New test.
7117 * testsuite/25_algorithms/move_backward/108846.cc: New test.
7119 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
7121 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
7124 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
7126 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
7128 * include/bits/basic_string.h (resize_and_overwrite): Add
7131 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
7133 * include/experimental/bits/simd.h: Line breaks and indenting
7134 fixed to follow the libstdc++ standard.
7135 * include/experimental/bits/simd_builtin.h: Likewise.
7136 * include/experimental/bits/simd_fixed_size.h: Likewise.
7137 * include/experimental/bits/simd_neon.h: Likewise.
7138 * include/experimental/bits/simd_ppc.h: Likewise.
7139 * include/experimental/bits/simd_scalar.h: Likewise.
7140 * include/experimental/bits/simd_x86.h: Likewise.
7142 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
7145 * include/experimental/bits/simd_fixed_size.h
7146 (_SimdImplFixedSize::_S_broadcast): Replace inline with
7147 _GLIBCXX_SIMD_INTRINSIC.
7148 (_SimdImplFixedSize::_S_generate): Likewise.
7149 (_SimdImplFixedSize::_S_load): Likewise.
7150 (_SimdImplFixedSize::_S_masked_load): Likewise.
7151 (_SimdImplFixedSize::_S_store): Likewise.
7152 (_SimdImplFixedSize::_S_masked_store): Likewise.
7153 (_SimdImplFixedSize::_S_min): Likewise.
7154 (_SimdImplFixedSize::_S_max): Likewise.
7155 (_SimdImplFixedSize::_S_complement): Likewise.
7156 (_SimdImplFixedSize::_S_unary_minus): Likewise.
7157 (_SimdImplFixedSize::_S_plus): Likewise.
7158 (_SimdImplFixedSize::_S_minus): Likewise.
7159 (_SimdImplFixedSize::_S_multiplies): Likewise.
7160 (_SimdImplFixedSize::_S_divides): Likewise.
7161 (_SimdImplFixedSize::_S_modulus): Likewise.
7162 (_SimdImplFixedSize::_S_bit_and): Likewise.
7163 (_SimdImplFixedSize::_S_bit_or): Likewise.
7164 (_SimdImplFixedSize::_S_bit_xor): Likewise.
7165 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
7166 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
7167 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
7168 explicit about not always-inline, yet).
7169 (_SimdImplFixedSize::_S_isinf): Likewise.
7170 (_SimdImplFixedSize::_S_isfinite): Likewise.
7171 (_SimdImplFixedSize::_S_isnan): Likewise.
7172 (_SimdImplFixedSize::_S_isnormal): Likewise.
7173 (_SimdImplFixedSize::_S_signbit): Likewise.
7175 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
7178 * include/experimental/bits/simd_builtin.h
7179 (_SimdImplBuiltin::_S_masked_unary): More efficient
7180 implementation of masked inc-/decrement for integers and floats
7182 * include/experimental/bits/simd_x86.h
7183 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
7184 builtins for masked inc-/decrement.
7186 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7188 * include/experimental/executor (executor): Constrain template
7191 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7193 * include/experimental/internet (basic_endpoint): Add missing
7194 constexpr to comparison operators.
7195 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
7197 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7199 * include/experimental/internet (network_v4::netmask()): Avoid
7201 (network_v4::broadcast()): Optimize and fix for targets with
7202 uint_least32_t wider than 32 bits.
7203 (network_v4::to_string(const Allocator&)): Fix for custom
7204 allocators and optimize using to_chars.
7205 (operator==(const network_v4&, const network_v4&)): Add missing
7207 (operator==(const network_v6&, const network_v6&)): Likewise.
7208 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
7209 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
7211 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7213 * include/experimental/internet (address_4(const bytes_type&)):
7214 Use __builtin_bit_cast if available, otherwise convert to
7216 (address_v4::to_bytes()): Likewise, but convert from network
7218 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
7219 incorrect tests. Check for constexpr too.
7220 * testsuite/experimental/net/internet/address/v4/creation.cc:
7222 * testsuite/experimental/net/internet/address/v4/members.cc:
7223 Check that bytes_type is a standard-layout type.
7225 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7227 * include/experimental/internet (address_v4::to_string):
7229 * testsuite/experimental/net/internet/address/v4/members.cc:
7230 Check more addresses.
7232 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7234 * include/ext/aligned_buffer.h (__aligned_buffer): Add
7237 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7239 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
7242 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7244 * testsuite/experimental/simd/tests/reductions.cc: Introduce
7245 max_distance as the type-dependent max error.
7247 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7249 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
7250 int. The actual range of these indexes is very small.
7252 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7254 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
7255 (_S_bit_shift_right): Declare constexpr. The implementation was
7256 already expecting constexpr evaluation.
7258 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7261 * include/experimental/bits/simd_detail.h
7262 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
7265 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7268 * include/experimental/bits/simd.h (__vector_broadcast):
7269 Implement via __vector_broadcast_impl instead of
7270 __call_with_n_evaluations + 2 lambdas.
7271 (__vector_broadcast_impl): New.
7273 2023-02-22 Alexandre Oliva <oliva@adacore.com>
7275 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
7276 Avoid destruction of the mutex pool.
7278 2023-02-22 Alexandre Oliva <oliva@adacore.com>
7280 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
7282 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
7285 2023-02-22 Alexandre Oliva <oliva@adacore.com>
7287 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
7290 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
7292 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
7294 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
7296 * include/experimental/bits/simd.h (__extract_part, split):
7297 Use reserved name for template parameter.
7299 2023-02-20 Andreas Schwab <schwab@suse.de>
7301 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
7303 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
7305 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
7306 * doc/html/faq.html: Regenerate.
7308 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7310 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
7311 between scalars requires the __bit_cast helper function instead
7314 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7316 * include/experimental/bits/simd_x86.h
7317 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
7318 (_SimdImplX86::_S_less_equal): Do not call
7319 __builtin_is_constant_evaluated in constexpr-if.
7321 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7323 * testsuite/experimental/simd/tests/bits/verify.h
7324 (verify::verify): Use %zx for size_t in format string.
7326 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7328 * testsuite/experimental/simd/generate_makefile.sh: Generate and
7329 pre-compile pch.h, which includes all headers that do not depend
7330 on command-line macros.
7331 * testsuite/experimental/simd/tests/bits/main.h: New file.
7332 (iterate_abis, main): Moved from verify.h.
7333 * testsuite/experimental/simd/tests/bits/verify.h
7334 (iterate_abis, main): Moved to main.h.
7335 * testsuite/experimental/simd/tests/bits/conversions.h: Add
7337 (genHalfBits): Simplify.
7338 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
7340 (make_alternating_mask): Moved from mask_loadstore.
7341 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
7343 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
7344 * testsuite/experimental/simd/tests/mask_loadstore.cc
7345 (make_mask, make_alternating_mask): Removed.
7346 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7347 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
7349 * testsuite/experimental/simd/tests/abs.cc: Only include
7352 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7353 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7354 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7355 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
7356 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7357 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7358 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7359 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7360 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7361 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7362 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7363 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7364 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7365 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7366 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7367 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7368 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7369 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7370 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7371 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7372 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7373 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7374 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
7375 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7376 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7377 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7378 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7379 * testsuite/experimental/simd/tests/where.cc: Ditto.
7381 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7383 * testsuite/experimental/simd/README.md: Document the timeout
7384 and timeout-factor directives. Minor typo fixed.
7386 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7389 * include/experimental/bits/simd_detail.h: Define
7390 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
7391 * include/experimental/bits/simd.h: Annotate lambdas with
7392 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
7393 * include/experimental/bits/simd_builtin.h: Ditto.
7394 * include/experimental/bits/simd_converter.h: Ditto.
7395 * include/experimental/bits/simd_fixed_size.h: Ditto.
7396 * include/experimental/bits/simd_math.h: Ditto.
7397 * include/experimental/bits/simd_neon.h: Ditto.
7398 * include/experimental/bits/simd_x86.h: Ditto.
7400 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7402 * include/experimental/bits/simd.h
7403 (_SimdWrapper::_M_is_constprop_none_of)
7404 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
7405 computed result still satisfies __builtin_constant_p.
7407 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7409 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
7412 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7414 * include/Makefile.am: Add new header.
7415 * include/Makefile.in: Regenerate.
7416 * include/experimental/synchronized_value: New file.
7417 * testsuite/experimental/synchronized_value.cc: New test.
7419 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7421 * include/experimental/optional: Fix header name in comment.
7423 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7425 * include/std/format (__format::_Arg_store): New class template.
7426 (basic_format_args): Remove nested type _Store and add deduction
7427 guide from _Arg_store.
7428 (basic_format_arg, make_format_args): Adjust.
7429 * testsuite/std/format/arguments/lwg3810.cc: New test.
7431 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7433 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
7434 constraints to constructors and add deleted overloads for the
7435 dangling cases, as per P2255R2.
7436 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
7437 make dangling cases ill-formed.
7438 * testsuite/20_util/pair/dangling_ref.cc: New test.
7440 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7442 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
7444 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7446 * include/ext/throw_allocator.h: Use reserved names for
7449 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7451 * testsuite/17_intro/names_pstl.cc: Add space after effective
7454 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7456 * include/pstl/algorithm_fwd.h (__pattern_search_n)
7457 (__brick_unique_copy, __brick_adjacent_find)
7458 (__brick_generate_n, __pattern_generate_n): Use reserved names
7460 * include/pstl/algorithm_impl.h (__brick_unique_copy)
7461 (__pattern_reverse, __brick_generate_n): Likewise.
7462 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
7463 (__prefer_parallel_tag): Likewise.
7464 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
7465 * include/pstl/glue_numeric_defs.h (adjacent_difference):
7467 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
7469 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
7470 * include/pstl/unseq_backend_simd.h (_Combiner)
7471 (__simd_min_element, __simd_minmax_element): Likewise.
7472 * testsuite/17_intro/names_pstl.cc: New test.
7474 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7476 * include/bits/fs_ops.h (create_directory): Use reserved name
7478 * include/bits/ranges_algo.h (__contains_subrange_fn):
7480 * include/bits/regex_automaton.h (_State_base::_M_print):
7482 * include/bits/regex_automaton.tcc(_State_base::_M_print):
7484 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
7485 * include/experimental/bits/fs_ops.h (create_directory):
7487 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
7488 (recursive_timed_mutex:_M_clocklock): Likewise.
7489 * include/std/tuple (basic_common_reference): Likewise.
7490 * libsupc++/cxxabi_init_exception.h
7491 (__cxa_init_primary_exception): Likewise.
7492 * testsuite/17_intro/names.cc: Add checks.
7494 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
7496 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
7497 to www.open-std.org and https.
7498 * doc/html/manual/status.html: Regenerate.
7500 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
7503 * include/std/atomic (atomic_flag_wait): Add.
7504 (atomic_flag_wait_explicit): Add.
7505 (atomic_flag_notify): Add.
7506 (atomic_flag_notify_explicit): Add.
7507 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
7508 Add test case to cover missing atomic_flag free functions.
7510 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
7513 * include/std/atomic (atomic_flag_test): Add.
7514 (atomic_flag_test_explicit): Add.
7515 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
7516 test case to cover missing atomic_flag free functions.
7517 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
7520 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
7522 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
7523 "The Component Object Model" reference.
7524 * doc/html/manual/policy_data_structures.html: Regenerate.
7526 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7528 * doc/xml/manual/containers.xml: Tweak a link to N1780
7530 * doc/html/manual/associative.html: Regenerate.
7532 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7534 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
7535 * doc/html/manual/facets.html: Regenerate.
7537 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
7539 * doc/xml/manual/policy_data_structures_biblio.xml: Update
7540 link to "Worst-case efficient priority queues".
7541 * doc/html/manual/policy_data_structures.html: Regenerate.
7543 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7545 * doc/xml/manual/using.xml: Document newly-freestanding
7546 headers and the effect of the -ffreestanding flag.
7547 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
7549 * doc/xml/manual/configure.xml: Document that hosted installs
7550 respect __STDC_HOSTED__.
7551 * doc/xml/manual/test.xml: Document how to run tests in
7553 * doc/html/*: Regenerate.
7555 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7557 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
7558 (__find_last_if_fn): Likewise.
7560 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7562 * include/std/type_traits: Add diagnostic pragmas around
7563 references to deprecated std::aligned_storage and
7564 std::aligned_union traits.
7565 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
7566 Add dg-warning for et c++23.
7567 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
7569 * testsuite/20_util/aligned_storage/value.cc: Likewise.
7570 * testsuite/20_util/aligned_union/1.cc: Likewise.
7571 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
7574 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7576 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
7577 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
7578 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
7579 * include/std/type_traits (aligned_storage, aligned_union)
7580 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
7581 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
7582 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
7584 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7586 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
7587 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
7588 consistent with other 'deprecated' macros.
7589 * include/std/type_traits (is_pod, is_pod_v): Use
7590 _GLIBCXX20_DEPRECATED_SUGGEST instead.
7592 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7594 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
7595 * Makefile.in: Regenerate.
7596 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
7597 There's no history to be compatible with.
7598 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
7599 source files from the build.
7600 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7601 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7602 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7603 * src/Makefile.in: Regenerate.
7604 * src/c++11/Makefile.in: Regenerate.
7605 * src/c++17/Makefile.in: Regenerate.
7606 * src/c++20/Makefile.in: Regenerate.
7607 * src/c++98/Makefile.in: Regenerate.
7609 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7611 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
7612 filesystem, libbacktrace and experimental.
7613 * src/Makefile.in: Regenerate.
7615 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
7618 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
7621 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
7623 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
7624 * doc/html/manual/documentation_hacking.html: Regenerate.
7626 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
7628 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
7629 storage to the move-from instance when allocators are equal.
7630 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
7633 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
7635 * config/os/gnu-linux/os_defines.h [!__linux__]
7636 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
7638 2023-02-03 Patrick Palka <ppalka@redhat.com>
7640 * include/bits/ranges_algo.h (__find_last_fn, find_last):
7642 (__find_last_if_fn, find_last_if): Define.
7643 (__find_last_if_not_fn, find_last_if_not): Define.
7644 * testsuite/25_algorithms/find_last/1.cc: New test.
7645 * testsuite/25_algorithms/find_last_if/1.cc: New test.
7646 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
7648 2023-02-03 Patrick Palka <ppalka@redhat.com>
7650 * include/bits/ranges_algo.h (out_value_result): Define.
7651 (iota_result): Define.
7652 (__iota_fn, iota): Define.
7653 * testsuite/25_algorithms/iota/1.cc: New test.
7655 2023-02-03 Patrick Palka <ppalka@redhat.com>
7657 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
7658 (__contains_subrange_fn, contains_subrange): Define.
7659 * testsuite/25_algorithms/contains/1.cc: New test.
7660 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
7662 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7664 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
7665 * doc/html/manual/abi.html: Regenerate.
7667 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7669 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
7670 errc::function_not_supported instead of errc::not_supported.
7672 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7674 * include/std/sstream (basic_stringbuf::view): Define for old
7676 (basic_istringstream::view, basic_0stringstream::view)
7677 (basic_stringstream::view): Likewise.
7678 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
7679 { dg-require-effective-target cxx11_abi }.
7680 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
7682 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
7683 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
7685 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
7686 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
7687 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
7688 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
7691 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7694 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
7695 conversion operators for directory iterator comparisons with
7696 std::default_sentinel_t.
7697 * include/bits/fs_path.h (path::path(string_view, _Type))
7698 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
7700 * src/c++17/fs_path.cc: ... here.
7701 * testsuite/27_io/filesystem/path/108636.cc: New test.
7703 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7705 * include/std/variant (variant::operator=): Implement resolution
7707 * testsuite/20_util/variant/lwg3585.cc: New test.
7709 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7711 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
7713 * doc/html/manual/using_exceptions.html: Regenerate.
7715 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7717 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
7718 * doc/html/manual/debug.html: Regenerate.
7720 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7722 * src/c++11/random.cc (random_device::_M_fini): Do not try to
7723 close the file handle if the target doesn't support the
7724 /dev/random and /dev/urandom files.
7726 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7728 * config/os/generic/error_constants.h (errc::value_too_large)
7730 * src/c++11/system_error.cc
7731 (system_category::default_error_condition) [__AVR__]: Only match
7732 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
7733 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
7734 for ENOENT etc. in switch.
7735 (fs::remove_all) [__AVR__]: Likewise.
7736 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
7739 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7741 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
7743 * configure: Regenerate.
7745 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
7748 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
7749 struct at end of S0.
7751 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
7753 * doc/xml/manual/shared_ptr.xml: Move links from both
7754 http://open-std.org and http://www.open-std.org to
7755 https://www.open-std.org.
7756 * doc/html/manual/memory.html: Regenerate.
7758 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7760 * doc/xml/manual/appendix_contributing.xml: Adjust link to
7761 ISO C++ standard at ANSI.
7762 Move link to www.open-std.org to https.
7763 * doc/html/manual/appendix_contributing.html: Regenerate.
7765 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7767 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
7769 * doc/html/manual/documentation_hacking.html: Regenerate.
7771 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7773 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
7774 * doc/html/manual/abi.html: Regenerate.
7776 2023-01-27 Jakub Jelinek <jakub@redhat.com>
7779 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
7780 include features.h if present and then check __GLIBC__ and
7781 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
7782 __GLIBC_PREREQ which isn't defined yet.
7784 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7786 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
7789 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7792 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
7794 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7796 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
7797 rules named "+" for compatibility with older tzdata.zi files.
7799 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7802 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
7804 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
7806 * testsuite/23_containers/map/modifiers/108554.cc: New test.
7808 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7811 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
7812 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
7814 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
7816 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
7818 * doc/html/manual/bugs.html: Regenerate.
7820 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7823 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
7824 /etc/sysconfig/clock.
7826 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7829 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
7830 std::make_reverse_iterator.
7831 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
7832 (make_from_tuple): Add static assertion from P2255 to diagnose
7833 dangling references.
7834 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
7835 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
7837 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
7839 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
7840 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
7841 (_Safe_iterator::operator++(int)): Use latter.
7842 (_Safe_iterator::operator--(int)): Likewise.
7843 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
7845 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
7847 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
7848 (_Safe_local_iterator::operator++(int)): Use latter.
7849 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
7850 entry associated to the array entry.
7852 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7854 * include/bits/fs_path.h (u8path): Add deprecated attribute.
7855 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
7856 -Wno-deprecated-declarations for C++20 and later.
7857 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
7859 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
7860 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
7861 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
7863 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7865 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
7866 Always call _M_fini and _M_getentropy.
7868 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
7870 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
7871 to www.open-std.org to use https.
7872 (COM: Component Model Object Technologies): Rename from...
7873 (The Component Object Model): ...to.
7874 * doc/html/manual/policy_data_structures.html: Regenerate.
7876 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
7878 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
7879 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
7880 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
7882 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
7884 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
7885 of $host. Fix check for file being present during native build.
7886 * configure: Regenerate.
7888 2023-01-17 Martin Liska <mliska@suse.cz>
7890 * src/libbacktrace/Makefile.in: Regenerate.
7892 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7894 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
7896 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7899 * include/c_compatibility/stdatomic.h: Change copyright line to
7900 be consistent with other headers contributed under DCO terms.
7901 * include/std/expected: Add full stop to copyright line.
7902 * src/c++20/tzdb.cc: Likewise.
7904 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
7906 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
7908 * doc/xml/manual/status_cxx2017.xml: Ditto.
7909 * doc/xml/manual/status_cxx2020.xml: Ditto.
7910 * doc/xml/manual/status_cxx2023.xml: Ditto.
7911 * doc/html/manual/status.html: Regenerate.
7913 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7915 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
7916 and fail gracefully if defining the weak symbol doesn't work.
7918 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
7921 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
7922 fix to other iterator category.
7923 (_Safe_iterator<>::operator--(int)): Likewise.
7924 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
7926 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
7927 (invalid_local_iterator_post_increment): New.
7928 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
7930 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
7933 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7935 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
7938 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7940 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
7942 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
7944 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
7945 windows.h. Add pecoff as FORMAT_FILE.
7946 * config.h.in: Regenerate.
7947 * configure: Regenerate.
7948 * src/libbacktrace/Makefile.am: Regenerate.
7949 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
7951 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
7953 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
7954 raw __name if __cxa_demangle could not demangle it.
7956 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7959 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
7962 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7964 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
7966 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
7968 * testsuite/std/time/tzdb_list/1.cc: Likewise.
7970 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7972 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
7973 --with-libstdcxx-zoneinfo-dir configure option with
7974 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
7976 * config.h.in: Regenerate.
7977 * configure: Regenerate.
7978 * doc/xml/manual/configure.xml: Document configure option.
7979 * doc/html/manual/configure.html: Regenerate.
7980 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
7981 * src/c++20/Makefile.in: Regenerate.
7982 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
7983 null pointer if no directory is configured.
7984 (zoneinfo_dir): Replace with ...
7985 (zoneinfo_file): New function.
7986 (tzdata_stream): New istream class.
7987 (remote_version, reload_tzdb): Use tzdata_stream.
7988 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
7989 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
7990 tzdata.zi file in default location.
7991 * src/c++20/tzdata.zi: New file.
7993 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7995 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
7996 * testsuite/std/time/month_day/io.cc: New test.
7997 * testsuite/std/time/month_day_last/io.cc: New test.
7998 * testsuite/std/time/month_weekday/io.cc: New test.
7999 * testsuite/std/time/month_weekday_last/io.cc: New test.
8000 * testsuite/std/time/weekday_indexed/io.cc: New test.
8001 * testsuite/std/time/weekday_last/io.cc: New test.
8002 * testsuite/std/time/year_month/io.cc: New test.
8003 * testsuite/std/time/year_month_day_last/io.cc: New test.
8004 * testsuite/std/time/year_month_weekday/io.cc: New test.
8005 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
8007 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
8009 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
8011 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
8014 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
8016 * include/bits/std_mutex.h: Include <errno.h>.
8018 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
8020 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
8021 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
8022 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
8023 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
8024 std::make_unique with a freestanding-compatible wrapper around
8026 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
8027 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
8028 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
8030 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
8031 of __cpp_lib_ranges in !HOSTED.
8033 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
8035 * include/Makefile.am: Install bits/char_traits.h,
8037 * include/Makefile.in: Regenerate.
8038 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
8039 mbstate-only bits behind appropriate #ifs.
8040 * include/std/string_view: Gate <iostream> functionality behind
8042 * include/std/version: Enable __cpp_lib_constexpr_string_view
8043 and __cpp_lib_starts_ends_with in !HOSTED.
8044 * include/std/ranges: Re-enable __is_basic_string_view on
8045 freestanding, include <string_view> directly.
8046 * include/precompiled/stdc++.h: Include <string_view> when
8048 * testsuite/20_util/function_objects/searchers.cc: Skip testing
8049 boyer_moore searchers on freestanding
8050 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
8051 <string>-related tests behind __STDC_HOSTED__.
8052 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
8053 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
8054 unused <stdexcept> include.
8055 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
8056 unused <vector> include.
8057 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
8058 Guard <string> related testing behind __STDC_HOSTED__.
8059 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
8060 Guard <stdexcept> related tests behind __STDC_HOSTED__.
8061 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
8063 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
8064 Guard <stdexcept> tests behind __STDC_HOSTED__.
8065 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
8066 Enable test on freestanding, guard <stdexcept> bits behind
8068 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
8069 Guard <stdexcept> bits behind __STDC_HOSTED__.
8070 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
8073 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
8076 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
8077 errors in incomplete multibyte sequences.
8078 (utf16_in): Remove surrogates parameter. Fix conditions for
8080 (utf16_out): Fix condition for returning partial.
8081 (ucs2_in): Do not pass surrogates argument to utf16_in.
8082 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
8083 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
8085 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
8088 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
8091 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
8092 __GTHREAD_LEGACY_MUTEX_T if defined.
8094 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
8097 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
8098 Export __try_use_facet specializations for facets in namespace
8100 * config/os/gnu-linux/ldbl-ieee128-extra.ver
8101 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
8103 * testsuite/util/testsuite_abi.cc: Add to lists of known and
8106 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
8108 * include/bits/std_mutex.h: Remove <system_error> include.
8109 * include/std/condition_variable: Add <bits/error_constants.h>
8111 * include/std/mutex: Likewise.
8112 * include/std/shared_mutex: Likewise.
8114 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
8117 * include/experimental/memory_resource
8118 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
8119 (do_allocate, do_deallocate): Check it.
8120 * testsuite/experimental/memory_resource/new_delete_resource.cc:
8121 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
8123 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
8125 * doc/xml/manual/abi.xml: Add latest library versions.
8126 * doc/html/manual/abi.html: Regenerate.
8128 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
8131 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
8132 unused _Alloc_node instance.
8134 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
8136 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
8137 Define as unsigned long if always lock-free, and unsigned int
8140 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
8142 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
8143 __catch macros for exception handling.
8145 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
8148 * include/bits/stl_algobase.h (__lg): Replace six overloads with
8149 a single function template for all integer types.
8150 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
8151 arithmetic results back to _Distance.
8153 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
8156 * include/std/span (span::span()): Un-simplify constraint to
8157 work for size_t of lesser rank than int.
8159 2023-01-07 LIU Hao <lh_mouse@126.com>
8161 PR middle-end/108300
8162 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
8164 * src/c++11/thread.cc: Likewise.
8165 * src/c++17/fs_ops.cc: Likewise.
8166 * src/filesystem/ops.cc: Likewise.
8168 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8171 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
8173 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8176 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
8177 template and partial specialization for synchronizing access to
8178 time_zone::_Impl::infos.
8179 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
8182 2023-01-06 Patrick Palka <ppalka@redhat.com>
8185 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
8186 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
8187 (__cpp_lib_ranges_chunk): Likewise.
8188 (__cpp_lib_ranges_slide): Likewise.
8189 (__cpp_lib_ranges_chunk_by): Likewise.
8190 (__cpp_lib_ranges_join_with): Likewise.
8191 (__cpp_lib_ranges_repeat): Likewise.
8192 (__cpp_lib_ranges_stride): Likewise.
8193 (__cpp_lib_ranges_cartesian_product): Likewise.
8194 (__cpp_lib_ranges_as_rvalue): Likewise.
8195 * include/std/version: Ditto.
8196 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
8198 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
8199 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
8200 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
8201 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
8202 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
8203 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
8204 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
8205 * testsuite/std/ranges/repeat/1.cc: Likewise.
8206 * testsuite/std/ranges/zip/1.cc: Likewise.
8207 * testsuite/std/ranges/version_c++23.cc: New test.
8209 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8212 * include/std/bitset (operator>>): Use alloca in the right
8213 scope, not in a constructor.
8214 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
8216 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8219 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
8220 Disable visiting floating-point types.
8222 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8225 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
8226 (_Safe_iterator::operator--(int)): Do not hold lock around
8227 construction of return value.
8229 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
8231 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
8232 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
8233 lock release. Revise loop.
8234 (__atomic_add): Likewise.
8236 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8239 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
8241 (StdChronoTimePointPrinter::to_string): Use it.
8243 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8246 * include/std/functional (_Bind_front): Add no_unique_address
8247 attribute to data members.
8248 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
8249 size of call wrappers with empty types for targets and bound
8252 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8255 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
8256 using only last component of the name.
8258 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8262 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
8263 the latest symbol version.
8264 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
8265 atomic<_Node*> is not always lock free.
8266 (USE_ATOMIC_LIST_HEAD): New macro.
8267 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
8268 definition of weak symbol.
8269 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
8270 (tzdb_list::_Node::_S_list_head): New function for accessing
8271 list head efficiently.
8272 (tzdb_list::_Node::_S_cache_list_head): New function for
8273 updating _S_list_head.
8275 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8278 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
8279 duration rep is unsigned.
8280 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
8282 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
8285 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
8286 Add __gnu_cxx::zoneinfo_dir_override().
8288 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
8291 * include/std/array (__array_traits<T, 0>::operator T*()): Add
8293 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
8294 std::array<T, 0>::data().
8297 Copyright (C) 2023 Free Software Foundation, Inc.
8299 Copying and distribution of this file, with or without modification,
8300 are permitted in any medium without royalty provided the copyright
8301 notice and this notice are preserved.