1 2023-12-31 Hans-Peter Nilsson <hp@axis.com>
3 * testsuite/20_util/hash/quality.cc: Increase timeout by a factor 3.
5 2023-12-31 François Dumont <fdumont@gcc.gnu.org>
7 * include/bits/hashtable.h: Move comment about all equivalent values
8 being next to each other in the class documentation header.
9 (_M_reinsert_node, _M_merge_unique): Implement small size optimization.
10 (_M_find_tr, _M_count_tr, _M_equal_range_tr): Likewise.
12 2023-12-31 François Dumont <fdumont@gcc.gnu.org>
14 * testsuite/performance/23_containers/insert/54075.cc: Add lookup on unknown entries
15 w/o copy to see potential impact of memory fragmentation enhancements.
16 * testsuite/performance/23_containers/insert/unordered_multiset_hint.cc: Enhance hash
17 functor to make it perfect, exactly 1 entry per bucket. Also use hash functor tagged as
18 slow or not to bench w/o hash code cache.
19 * testsuite/performance/23_containers/insert/unordered_set_hint.cc: New test case. Like
20 previous one but using std::unordered_set.
21 * testsuite/performance/23_containers/insert/unordered_set_range_insert.cc: New test case.
22 Check performance of range-insertion compared to individual insertions.
23 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc: Add same bench
24 but after a copy to demonstrate impact of enhancements regarding memory fragmentation.
26 2023-12-22 Christophe Lyon <christophe.lyon@linaro.org>
28 * Makefile.am: Allow overriding EXEPCT.
29 * Makefile.in: Regenerate.
31 2023-12-21 Arsen Arsenović <arsen@aarsen.me>
33 * include/Makefile.am: Install std/generator, bits/elements_of.h
35 * include/Makefile.in: Regenerate.
36 * include/bits/version.def: Add __cpp_lib_generator.
37 * include/bits/version.h: Regenerate.
38 * include/precompiled/stdc++.h: Include <generator>.
39 * include/std/ranges: Include bits/elements_of.h
40 * include/bits/elements_of.h: New file.
41 * include/std/generator: New file.
42 * testsuite/24_iterators/range_generators/01.cc: New test.
43 * testsuite/24_iterators/range_generators/02.cc: New test.
44 * testsuite/24_iterators/range_generators/copy.cc: New test.
45 * testsuite/24_iterators/range_generators/except.cc: New test.
46 * testsuite/24_iterators/range_generators/synopsis.cc: New test.
47 * testsuite/24_iterators/range_generators/subrange.cc: New test.
49 2023-12-21 Arsen Arsenović <arsen@aarsen.me>
51 * include/bits/ranges_util.h: Add missing <bits/invoke.h>
54 2023-12-18 Patrick Palka <ppalka@redhat.com>
58 * include/std/ranges (__detail::_To::operator()): Add constraints.
59 (__detail::_To2::operator()): Likewise.
60 * testsuite/std/ranges/conv/1.cc (test_sfinae): New test.
61 (test_composition): New test.
63 2023-12-16 Jonathan Wakely <jwakely@redhat.com>
65 * src/c++23/print.cc (__open_terminal(FILE*)): Avoid fileno
68 2023-12-16 H.J. Lu <hjl.tools@gmail.com>
70 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
73 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
75 * include/std/type_traits (remove_pointer): Use __remove_pointer
78 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
80 * include/std/type_traits (is_object): Use __is_object built-in
82 (is_object_v): Likewise.
84 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
86 * include/std/type_traits (is_function): Use __is_function
88 (is_function_v): Likewise. Optimize its implementation. Move
89 this under is_const_v as this depends on is_const_v.
91 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
93 * include/std/type_traits (is_reference): Use __is_reference
95 (is_reference_v): Likewise.
97 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
99 * include/std/type_traits (is_member_object_pointer): Use
100 __is_member_object_pointer built-in trait.
101 (is_member_object_pointer_v): Likewise.
103 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
105 * include/std/type_traits (is_member_function_pointer): Use
106 __is_member_function_pointer built-in trait.
107 (is_member_function_pointer_v): Likewise.
109 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
111 * include/std/type_traits (is_member_pointer): Use
112 __is_member_pointer built-in trait.
113 (is_member_pointer_v): Likewise.
115 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
117 * include/std/type_traits (is_scoped_enum): Use
118 __is_scoped_enum built-in trait.
119 (is_scoped_enum_v): Likewise.
121 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
123 * include/std/type_traits (is_bounded_array_v): Use
124 __is_bounded_array built-in trait.
126 2023-12-16 Ken Matsui <kmatsui@gcc.gnu.org>
128 * include/std/type_traits (is_array): Use __is_array built-in
130 (is_array_v): Likewise.
132 2023-12-15 Jonathan Wakely <jwakely@redhat.com>
134 * src/c++23/print.cc (__write_to_terminal) [_WIN32]: If handle
135 does not refer to the console then just write to it using normal
137 * testsuite/27_io/print/2.cc (as_printed_to_terminal): Print
138 error message on failure.
139 (test_utf16_transcoding): Adjust for as_printed_to_terminal
140 modifying its argument.
142 2023-12-15 Jonathan Wakely <jwakely@redhat.com>
144 * include/std/ostream (vprint_unicode) [_WIN32]: Use RAII guard.
145 (vprint_unicode) [!_WIN32]: Just call vprint_nonunicode.
146 * include/std/print (vprint_unicode) [!_WIN32]: Likewise.
148 2023-12-15 Jonathan Wakely <jwakely@redhat.com>
150 * include/std/ostream (vprint_nonunicode, vprint_unicode): Do
152 * testsuite/27_io/basic_ostream/print/1.cc: Adjust expected
155 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
158 * include/Makefile.am: Add new header.
159 * include/Makefile.in: Regenerate.
160 * include/bits/version.def (__cpp_lib_print): Define.
161 * include/bits/version.h: Regenerate.
162 * include/std/format (__literal_encoding_is_utf8): New function.
163 (_Seq_sink::view()): New member function.
164 * include/std/ostream (vprintf_nonunicode, vprintf_unicode)
165 (print, println): New functions.
166 * include/std/print: New file.
167 * src/c++23/Makefile.am: Add new source file.
168 * src/c++23/Makefile.in: Regenerate.
169 * src/c++23/print.cc: New file.
170 * testsuite/27_io/basic_ostream/print/1.cc: New test.
171 * testsuite/27_io/print/1.cc: New test.
172 * testsuite/27_io/print/2.cc: New test.
174 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
176 * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): Add
177 missing header to configure test. Check correct variable.
178 * config/io/basic_file_stdio.cc (__basic_file<char>::native_handle):
180 * configure: Regenerate.
181 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: Do not
182 call CloseHandle on the native handle.
183 * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc:
186 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
188 * include/std/format (_Seq_sink): Fix missing argument in
189 discarded statement. Add comments, likely/unlikely attributes
190 and debug assertions as sanity checks.
192 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
194 * testsuite/27_io/objects/char/2.cc: Use dg-output.
195 * testsuite/27_io/objects/wchar_t/2.cc: Use dg-output.
197 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
199 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix order
200 of arguments to std::format_to.
201 * testsuite/20_util/duration/io.cc: Test subsecond duration with
204 2023-12-14 Jonathan Wakely <jwakely@redhat.com>
207 * include/bits/c++config (__glibcxx_constexpr_assert): Remove
209 * include/bits/stl_algobase.h (__niter_base, __copy_move_a)
210 (__copy_move_backward_a, __fill_a, __fill_n_a, __equal_aux)
211 (__lexicographical_compare_aux): Add constexpr to overloads for
212 debug mode iterators.
213 * include/debug/helper_functions.h (__unsafe): Add constexpr.
214 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_COND_AT): Remove
215 macro, folding it into ...
216 (_GLIBCXX_DEBUG_VERIFY_AT_F): ... here. Do not use
217 __glibcxx_constexpr_assert.
218 * include/debug/safe_base.h (_Safe_iterator_base): Add constexpr
219 to some member functions. Omit attaching, detaching and checking
220 operations during constant evaluation.
221 * include/debug/safe_container.h (_Safe_container): Likewise.
222 * include/debug/safe_iterator.h (_Safe_iterator): Likewise.
223 * include/debug/safe_iterator.tcc (__niter_base, __copy_move_a)
224 (__copy_move_backward_a, __fill_a, __fill_n_a, __equal_aux)
225 (__lexicographical_compare_aux): Add constexpr.
226 * include/debug/vector (_Safe_vector, vector): Add constexpr.
227 Omit safe iterator operations during constant evaluation.
228 * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
229 Remove dg-xfail-if for debug mode.
230 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
231 * testsuite/23_containers/vector/bool/cons/constexpr.cc:
233 * testsuite/23_containers/vector/bool/element_access/1.cc:
235 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
237 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
239 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
241 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
243 * testsuite/23_containers/vector/capacity/constexpr.cc:
245 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
246 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
247 * testsuite/23_containers/vector/data_access/constexpr.cc:
249 * testsuite/23_containers/vector/element_access/constexpr.cc:
251 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
253 * testsuite/23_containers/vector/modifiers/constexpr.cc:
255 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
257 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
258 Adjust dg-error line number.
260 2023-12-13 Jonathan Wakely <jwakely@redhat.com>
262 * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y): Do
263 not round century down for %Y formats.
265 2023-12-12 Jonathan Wakely <jwakely@redhat.com>
267 * include/std/format (__do_vformat_to): Handle char separately
268 from other integral types.
269 * testsuite/std/format/functions/format.cc: Check for expected
270 output for char and bool arguments.
271 * testsuite/std/format/string.cc: Check that 0 filling is
272 rejected for character and string formats.
274 2023-12-12 Jonathan Wakely <jwakely@redhat.com>
276 * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y): Fix
277 rounding for negative centuries.
278 * testsuite/std/time/year/io.cc: Check %C for negative years.
280 2023-12-12 Jonathan Wakely <jwakely@redhat.com>
282 * src/c++11/Makefile.am: Remove redundant -std=gnu++11 flags.
283 * src/c++11/Makefile.in: Regenerate.
285 2023-12-09 Jonathan Wakely <jwakely@redhat.com>
288 * include/bits/version.def (format): Update value.
289 * include/bits/version.h: Regenerate.
290 * testsuite/std/format/functions/format.cc:
292 2023-12-09 Jonathan Wakely <jwakely@redhat.com>
295 * include/std/ranges (ranges::to): Do not try to use an iterator
296 returned by the container's emplace or insert member functions.
297 * testsuite/std/ranges/conv/1.cc (Cont4::emplace, Cont4::insert):
298 Use the iterator parameter. Do not return an iterator.
300 2023-12-07 Patrick Palka <ppalka@redhat.com>
302 * include/std/ranges (__detail::_ToClosure): Replace with ...
303 (__detail::_To): ... this.
304 (__detail::_ToClosure2): Replace with ...
305 (__detail::To2): ... this.
306 (to): Simplify using the existing _Partial range adaptor
309 2023-12-07 Jonathan Wakely <jwakely@redhat.com>
311 * include/std/format (_Iter_sink<charT, contiguous_iterator>):
312 Remove uint64_t local type.
314 2023-12-07 Jonathan Wakely <jwakely@redhat.com>
316 * include/bits/atomic_wait.h: Include <cstdint> instead of
319 2023-12-07 Jonathan Wakely <jwakely@redhat.com>
322 * include/bits/c++config (__is_constant_evaluated): Add
323 always_inline attribute.
324 (_GLIBCXX_DO_ASSERT): Remove macro.
325 (__glibcxx_assert): Define separately for assertions-enabled and
326 constexpr-only cases.
328 2023-12-07 Alexandre Oliva <oliva@adacore.com>
331 * config/os/gnu-linux/os_defines.h
332 (_GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL): Define.
333 * libsupc++/atexit_thread.cc [__GXX_WEAK__ &&
334 _GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL]
335 (__cxa_thread_atexit): Add dynamic detection of
336 __cxa_thread_atexit_impl.
338 2023-12-06 Jason Merrill <jason@redhat.com>
342 * testsuite/23_containers/vector/ext_pointer/types/1.cc
343 * testsuite/23_containers/vector/ext_pointer/types/2.cc
344 (N::operator-): Make less specialized.
346 2023-12-06 Alexandre Oliva <oliva@gnu.org>
349 2023-12-02 Alexandre Oliva <oliva@adacore.com>
351 * libsupc++/atexit_thread.cc [__GXX_WEAK__]: Add dynamic
352 detection of __cxa_thread_atexit_impl.
354 2023-12-05 Jonathan Wakely <jwakely@redhat.com>
357 * include/bits/ranges_util.h (subrange): Add constructor to
358 _Size to aoid setting member in constructor.
359 * testsuite/std/ranges/subrange/111948.cc: New test.
361 2023-12-05 Jonathan Wakely <jwakely@redhat.com>
363 * include/std/ranges (__detail::__container_insertable): Remove.
364 (__detail::__container_inserter): Remove.
365 (ranges::to): Use emplace_back or emplace, as per LWG 4016.
366 * testsuite/std/ranges/conv/1.cc (Cont4, test_2_1_4): Check for
367 use of emplace_back and emplace.
369 2023-12-05 Jonathan Wakely <jwakely@redhat.com>
371 * include/bits/c++config (__glibcxx_assert_fail): Declare even
372 when assertions are not enabled.
373 (__glibcxx_constexpr_assert): Remove macro.
374 (__glibcxx_assert_impl): Remove macro.
375 (_GLIBCXX_ASSERT_FAIL): New macro.
376 (_GLIBCXX_DO_ASSERT): New macro.
377 (__glibcxx_assert): Simplify to a single definition that works
378 at runtime and during constant evaluation.
379 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
380 Adjust expected errors.
381 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
383 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
385 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
387 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
389 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
391 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
393 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
395 * testsuite/23_containers/span/back_neg.cc: Likewise.
396 * testsuite/23_containers/span/front_neg.cc: Likewise.
397 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
398 * testsuite/26_numerics/lcm/105844.cc: Likewise.
400 2023-12-05 Jonathan Wakely <jwakely@redhat.com>
403 * include/std/format (formatter::set_debug_format): Ensure this
404 member is defined conditionally for all specializations.
405 * testsuite/std/format/formatter/112832.cc: New test.
407 2023-12-05 Will Hawkins <hawkinsw@obs.cr>
408 Jonathan Wakely <jwakely@redhat.com>
410 * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: Add check
413 2023-12-05 Marek Polacek <polacek@redhat.com>
417 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
419 * testsuite/std/format/string_neg.cc: Add dg-error.
421 2023-12-02 Alexandre Oliva <oliva@adacore.com>
423 * libsupc++/atexit_thread.cc [__GXX_WEAK__]: Add dynamic
424 detection of __cxa_thread_atexit_impl.
426 2023-12-01 Jason Merrill <jason@redhat.com>
428 * include/std/bit: Avoid builtins in requires-clauses.
429 * include/std/variant: Likewise.
431 2023-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
433 * configure: Regenerate.
435 2023-11-30 Jonathan Wakely <jwakely@redhat.com>
437 * include/std/ranges (__detail::__toable): Fix incorrect use of
438 _Range instead of _Cont.
439 (__detail::_ToClosure, __detail::_ToClosure2): Add missing
440 constexpr specifier on constructors.
441 * testsuite/std/ranges/conv/1.cc (_Cont, _Cont2, _Cont3): Remove
442 unnecessary begin() and end() members.
443 (test_constexpr): New function to check range adaptors are
444 usable in constant expressions.
446 2023-11-29 Thomas Schwinge <thomas@codesourcery.com>
448 * testsuite/23_containers/span/at.cc: Fix for '-fno-exceptions'
451 2023-11-28 Jonathan Wakely <jwakely@redhat.com>
453 * include/bits/atomic_wait.h: Include <stdint.h>.
455 2023-11-28 Jonathan Wakely <jwakely@redhat.com>
457 * include/bits/stl_uninitialized.h: Fix typo in comment.
459 2023-11-24 Jan Hubicka <jh@suse.cz>
462 * include/bits/stl_uninitialized.h (__relocate_a_1): Use memcpy instead
465 2023-11-23 Jonathan Wakely <jwakely@redhat.com>
468 * include/bits/ranges_base.h (from_range_t): Define new tag
470 (from_range): Define new tag object.
471 * include/bits/version.def (ranges_to_container): Define.
472 * include/bits/version.h: Regenerate.
473 * include/std/ranges (ranges::to): Define.
474 * testsuite/std/ranges/conv/1.cc: New test.
475 * testsuite/std/ranges/conv/2_neg.cc: New test.
476 * testsuite/std/ranges/conv/version.cc: New test.
478 2023-11-23 Jonathan Wakely <jwakely@redhat.com>
480 * testsuite/util/testsuite_allocator.h (uneq_allocator): Fix
481 equality operator for heterogeneous comparisons.
483 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
485 * include/bits/version.def (freestanding_cstring): Add.
486 * include/bits/version.h: Regenerate.
487 * include/c_compatibility/string.h (strtok): Do not declare for
489 * include/c_global/cstring (strtok): Likewise.
490 * testsuite/21_strings/headers/cstring/version.cc: New test.
492 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
494 * include/bits/version.def (freestanding_algorithm)
495 (freestanding_array, freestanding_optional)
496 (freestanding_string_view, freestanding_variant): Add.
497 * include/bits/version.h: Regenerate.
498 * include/std/algorithm (__glibcxx_want_freestanding_algorithm):
500 * include/std/array (__glibcxx_want_freestanding_array):
502 * include/std/optional (__glibcxx_want_freestanding_optional):
504 * include/std/string_view
505 (__glibcxx_want_freestanding_string_view): Define.
506 * include/std/variant (__glibcxx_want_freestanding_variant):
508 * testsuite/20_util/optional/version.cc: Add checks for
509 __cpp_lib_freestanding_optional.
510 * testsuite/20_util/variant/version.cc: Add checks for
511 __cpp_lib_freestanding_variant.
512 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
513 Adjust dg-error line numbers.
514 * testsuite/21_strings/basic_string_view/requirements/version.cc:
516 * testsuite/23_containers/array/requirements/version.cc: New
518 * testsuite/25_algorithms/fill_n/requirements/version.cc: New
520 * testsuite/25_algorithms/swap_ranges/requirements/version.cc:
523 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
525 * include/bits/version.def (freestanding_expected): New macro.
526 (span): Add C++26 value.
527 * include/bits/version.h: Regenerate.
528 * include/std/expected (__glibcxx_want_freestanding_expected):
530 * include/std/span (span::at): New member function.
531 * testsuite/20_util/expected/version.cc: Add checks for
532 __cpp_lib_freestanding_expected.
533 * testsuite/23_containers/span/2.cc: Moved to...
534 * testsuite/23_containers/span/version.cc: ...here. Add checks
535 for __cpp_lib_span in <span> as well as in <version>.
536 * testsuite/23_containers/span/1.cc: Removed.
537 * testsuite/23_containers/span/at.cc: New test.
539 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
541 * include/tr2/dynamic_bitset (dynamic_bitset): Pass zero and one
542 characters to _M_copy_from_string.
543 * testsuite/tr2/dynamic_bitset/string.cc: New test.
545 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
547 * doc/html/*: Regenerate.
548 * doc/xml/faq.xml: Remove reference to buildstat.html pages.
549 * doc/xml/manual/test.xml: Likewise
551 2023-11-21 Jan Hubicka <jh@suse.cz>
556 * include/bits/stl_vector.h (_M_realloc_append): New member function.
558 * include/bits/vector.tcc: (emplace_back): Use it.
559 (_M_realloc_insert): Let compiler know that new vector size is non-zero.
560 (_M_realloc_append): New member function.
562 2023-11-18 Jonathan Wakely <jwakely@redhat.com>
565 * include/std/format (basic_format_arg::_S_to_arg_type): Check
566 value_type for basic_string_view and basic_string
568 * testsuite/std/format/arguments/112607.cc: New test.
570 2023-11-18 Jonathan Wakely <jwakely@redhat.com>
573 * include/std/format (_Sink_iter::_M_reserve): New member
575 (_Sink::_Reservation): New nested class.
576 (_Sink::_M_reserve, _Sink::_M_bump): New virtual functions.
577 (_Seq_sink::_M_reserve, _Seq_sink::_M_bump): New virtual
579 (_Iter_sink<O, ContigIter>::_M_reserve): Likewise.
580 (__do_vformat_to): Use new functions to optimize "{}" case.
582 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
584 * config.h.in: Regenerate.
586 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
588 * include/Makefile.am: Add new header.
589 * include/Makefile.in: Regenerate.
590 * include/bits/version.def (saturation_arithmetic): Define.
591 * include/bits/version.h: Regenerate.
592 * include/std/numeric: Include new header.
593 * include/bits/sat_arith.h: New file.
594 * testsuite/26_numerics/saturation/add.cc: New test.
595 * testsuite/26_numerics/saturation/cast.cc: New test.
596 * testsuite/26_numerics/saturation/div.cc: New test.
597 * testsuite/26_numerics/saturation/mul.cc: New test.
598 * testsuite/26_numerics/saturation/sub.cc: New test.
599 * testsuite/26_numerics/saturation/version.cc: New test.
601 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
603 * include/std/utility (in_range): Rename _Up parameter to _Res.
605 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
607 * include/bits/out_ptr.h: Add Doxygen comments. Remove a
608 redundant preprocessor condition.
609 * testsuite/20_util/smartptr.adapt/version.cc: New test.
611 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
613 * include/bits/chrono_io.h: Fix Doxygen markup.
615 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
618 * include/std/stacktrace (formatter::format): Format according
620 * include/std/thread (formatter::format): Use _Align_right as
622 * testsuite/19_diagnostics/stacktrace/output.cc: Check
623 fill-and-align handling. Change compile test to run.
624 * testsuite/30_threads/thread/id/output.cc: Check fill-and-align
627 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
630 * include/Makefile.am: Add new header.
631 * include/Makefile.in: Regenerate.
632 * include/bits/out_ptr.h: New file.
633 * include/bits/shared_ptr.h (__is_shared_ptr): Move definition
635 * include/bits/shared_ptr_atomic.h (__is_shared_ptr): ... from
637 * include/bits/shared_ptr_base.h (__shared_count): Declare
638 out_ptr_t as a friend.
639 (_Sp_counted_deleter, __shared_ptr): Likewise.
640 * include/bits/unique_ptr.h (unique_ptr, unique_ptr<T[], D>):
641 Declare out_ptr_t and inout_ptr_t as friends.
642 (__is_unique_ptr): Define new variable template.
643 * include/bits/version.def (out_ptr): Define.
644 * include/bits/version.h: Regenerate.
645 * include/std/memory: Include new header.
646 * testsuite/20_util/smartptr.adapt/inout_ptr/1.cc: New test.
647 * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: New test.
648 * testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc:
650 * testsuite/20_util/smartptr.adapt/inout_ptr/void_ptr.cc: New
652 * testsuite/20_util/smartptr.adapt/out_ptr/1.cc: New test.
653 * testsuite/20_util/smartptr.adapt/out_ptr/2.cc: New test.
654 * testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc:
656 * testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc: New
659 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
661 * include/bits/algorithmfwd.h: Do not define standard feature
663 * include/bits/align.h: Likewise. Test internal macros instead
665 * include/bits/alloc_traits.h: Likewise.
666 * include/bits/allocator.h: Likewise.
667 * include/bits/atomic_base.h: Likewise.
668 * include/bits/atomic_timed_wait.h: Likewise.
669 * include/bits/atomic_wait.h: Likewise.
670 * include/bits/basic_string.h: Likewise.
671 * include/bits/basic_string.tcc: Likewise.
672 * include/bits/char_traits.h: Likewise.
673 * include/bits/chrono.h: Likewise.
674 * include/bits/cow_string.h: Likewise.
675 * include/bits/forward_list.h: Likewise.
676 * include/bits/hashtable.h: Likewise.
677 * include/bits/ios_base.h: Likewise.
678 * include/bits/memory_resource.h: Likewise.
679 * include/bits/move.h: Likewise.
680 * include/bits/move_only_function.h: Likewise.
681 * include/bits/node_handle.h: Likewise.
682 * include/bits/ptr_traits.h: Likewise.
683 * include/bits/range_access.h: Likewise.
684 * include/bits/ranges_algo.h: Likewise.
685 * include/bits/ranges_cmp.h: Likewise.
686 * include/bits/ranges_util.h: Likewise.
687 * include/bits/semaphore_base.h: Likewise.
688 * include/bits/shared_ptr.h: Likewise.
689 * include/bits/shared_ptr_atomic.h: Likewise.
690 * include/bits/shared_ptr_base.h: Likewise.
691 * include/bits/stl_algo.h: Likewise.
692 * include/bits/stl_algobase.h: Likewise.
693 * include/bits/stl_function.h: Likewise.
694 * include/bits/stl_iterator.h: Likewise.
695 * include/bits/stl_list.h: Likewise.
696 * include/bits/stl_map.h: Likewise.
697 * include/bits/stl_pair.h: Likewise.
698 * include/bits/stl_queue.h: Likewise.
699 * include/bits/stl_stack.h: Likewise.
700 * include/bits/stl_tree.h: Likewise.
701 * include/bits/stl_uninitialized.h: Likewise.
702 * include/bits/stl_vector.h: Likewise.
703 * include/bits/unique_ptr.h: Likewise.
704 * include/bits/unordered_map.h: Likewise.
705 * include/bits/uses_allocator_args.h: Likewise.
706 * include/bits/utility.h: Likewise.
707 * include/bits/erase_if.h: Add comment.
708 * include/std/algorithm: Define standard feature test macros
710 * include/std/atomic: Likewise.
711 * include/std/array: Likewise.
712 * include/std/chrono: Likewise.
713 * include/std/condition_variable: Likewise.
714 * include/std/deque: Likewise.
715 * include/std/format: Likewise.
716 * include/std/functional: Likewise.
717 * include/std/forward_list: Likewise.
718 * include/std/ios: Likewise.
719 * include/std/iterator: Likewise.
720 * include/std/list: Likewise.
721 * include/std/map: Likewise.
722 * include/std/memory: Likewise.
723 * include/std/numeric: Likewise.
724 * include/std/queue: Likewise.
725 * include/std/ranges: Likewise.
726 * include/std/regex: Likewise.
727 * include/std/set: Likewise.
728 * include/std/stack: Likewise.
729 * include/std/stop_token: Likewise.
730 * include/std/string: Likewise.
731 * include/std/string_view:
732 * include/std/tuple: Likewise.
733 * include/std/unordered_map:
734 * include/std/unordered_set:
735 * include/std/utility: Likewise.
736 * include/std/vector: Likewise.
737 * include/std/scoped_allocator: Query internal macros instead of
740 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
742 * testsuite/18_support/byte/requirements.cc: Disable PCH.
743 * testsuite/18_support/destroying_delete.cc: Likewise.
744 * testsuite/18_support/source_location/1.cc: Likewise.
745 * testsuite/18_support/source_location/version.cc: Likewise.
746 * testsuite/18_support/type_info/constexpr.cc: Likewise.
747 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
749 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
750 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
751 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
752 * testsuite/20_util/addressof/requirements/constexpr.cc:
754 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
755 * testsuite/20_util/allocator_traits/header.cc: Likewise.
756 * testsuite/20_util/as_const/1.cc: Likewise. Likewise.
757 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
758 * testsuite/20_util/bitset/version.cc: Likewise.
759 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
761 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
762 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
764 * testsuite/20_util/exchange/constexpr.cc: Likewise.
765 * testsuite/20_util/expected/synopsis.cc: Likewise.
766 * testsuite/20_util/expected/version.cc: Likewise.
767 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
768 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
769 * testsuite/20_util/function_objects/invoke/3.cc: Likewise.
770 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
771 * testsuite/20_util/function_objects/invoke/constexpr.cc:
773 * testsuite/20_util/function_objects/invoke/version.cc:
775 * testsuite/20_util/function_objects/searchers.cc: Likewise.
776 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
777 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
778 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
779 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
780 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
781 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
783 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
785 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
786 * testsuite/20_util/is_nothrow_swappable/value.h: Likewise.
787 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
788 Remove redundant checks already tested elsewhere.
789 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
791 * testsuite/20_util/is_nothrow_swappable_with/value.cc: Disable
793 * testsuite/20_util/is_pointer_interconvertible/value.cc:
795 * testsuite/20_util/is_pointer_interconvertible/version.cc:
797 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
798 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
799 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
800 Remove redundant checks already tested elsewhere.
801 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
802 Remove redundant checks already tested elsewhere.
803 * testsuite/20_util/is_swappable/value.cc: Disable PCH.
804 * testsuite/20_util/is_swappable/value.h: Reorder headers.
805 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
806 Remove redundant checks already tested elsewhere.
807 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
808 Remove redundant checks already tested elsewhere.
809 * testsuite/20_util/is_swappable_with/value.cc: Disable PCH.
810 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
811 * testsuite/20_util/move_only_function/cons.cc: Likewise.
812 * testsuite/20_util/move_only_function/version.cc: Likewise.
813 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
814 * testsuite/20_util/optional/requirements.cc: Likewise.
815 * testsuite/20_util/optional/version.cc: Likewise.
816 * testsuite/20_util/owner_less/void.cc: Likewise.
817 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
818 * testsuite/20_util/reference_from_temporary/version.cc:
820 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
822 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
823 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
824 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
825 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
826 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
827 * testsuite/20_util/to_chars/result.cc: Likewise.
828 * testsuite/20_util/to_chars/version.cc: Likewise.
829 * testsuite/20_util/to_underlying/1.cc: Likewise.
830 * testsuite/20_util/to_underlying/version.cc: Likewise.
831 * testsuite/20_util/tuple/apply/1.cc: Likewise.
832 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
834 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
835 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
836 * testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
837 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
839 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
841 * testsuite/20_util/unreachable/1.cc: Likewise.
842 * testsuite/20_util/unreachable/version.cc: Likewise.
843 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
844 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
845 * testsuite/20_util/variant/constexpr.cc: Likewise.
846 * testsuite/20_util/variant/version.cc: Likewise.
847 * testsuite/20_util/variant/visit_inherited.cc: Likewise.
848 * testsuite/20_util/void_t/1.cc: Likewise.
849 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
851 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
853 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
855 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
856 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
858 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
860 * testsuite/21_strings/basic_string/version.cc: Likewise.
861 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
863 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
865 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
867 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
869 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
871 * testsuite/21_strings/char_traits/requirements/version.cc:
873 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
875 * testsuite/23_containers/array/creation/1.cc: Likewise.
876 * testsuite/23_containers/array/creation/2.cc: Likewise.
877 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
879 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
881 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
883 * testsuite/23_containers/deque/erasure.cc: Likewise.
884 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
885 * testsuite/23_containers/list/erasure.cc: Likewise.
886 * testsuite/23_containers/map/erasure.cc: Likewise.
887 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
888 * testsuite/23_containers/set/erasure.cc: Likewise.
889 * testsuite/23_containers/span/1.cc: Likewise.
890 * testsuite/23_containers/span/2.cc: Likewise.
891 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
892 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
893 * testsuite/23_containers/unordered_map/operations/1.cc:
895 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
896 * testsuite/23_containers/unordered_set/operations/1.cc:
898 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
899 * testsuite/23_containers/vector/erasure.cc: Likewise.
900 * testsuite/23_containers/vector/requirements/version.cc:
902 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
903 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
904 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
905 Remove redundant checks already tested elsewhere.
906 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
907 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
908 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
909 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
910 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
911 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
912 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
913 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
914 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
915 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
916 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
917 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
918 * testsuite/26_numerics/bit/header-2.cc: Likewise.
919 * testsuite/26_numerics/bit/header.cc: Likewise.
920 * testsuite/26_numerics/complex/1.cc: Likewise.
921 * testsuite/26_numerics/complex/2.cc: Likewise.
922 * testsuite/26_numerics/endian/2.cc: Likewise.
923 * testsuite/26_numerics/endian/3.cc: Likewise.
924 * testsuite/26_numerics/gcd/1.cc: Likewise.
925 * testsuite/26_numerics/lcm/1.cc: Likewise.
926 * testsuite/26_numerics/lerp/1.cc: Likewise.
927 * testsuite/26_numerics/lerp/version.cc: Likewise.
928 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
929 * testsuite/26_numerics/midpoint/version.cc: Likewise.
930 * testsuite/26_numerics/numbers/1.cc: Likewise.
931 * testsuite/26_numerics/numbers/2.cc: Likewise.
932 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc:
934 * testsuite/27_io/basic_filebuf/native_handle/version.cc:
936 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc:
938 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
940 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
941 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
942 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
943 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
944 * testsuite/27_io/spanstream/1.cc: Likewise.
945 * testsuite/27_io/spanstream/version.cc: Likewise.
946 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
947 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
948 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
949 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
950 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
952 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
953 * testsuite/30_threads/barrier/1.cc: Likewise.
954 * testsuite/30_threads/barrier/2.cc: Likewise.
955 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
957 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
959 * testsuite/30_threads/jthread/1.cc: Likewise.
960 * testsuite/30_threads/jthread/version.cc: Likewise.
961 * testsuite/30_threads/latch/1.cc: Likewise.
962 * testsuite/30_threads/latch/2.cc: Likewise.
963 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
965 * testsuite/30_threads/semaphore/1.cc: Likewise.
966 * testsuite/30_threads/semaphore/2.cc: Likewise.
967 * testsuite/30_threads/stop_token/1.cc: Likewise.
968 * testsuite/30_threads/stop_token/2.cc: Likewise.
969 * testsuite/experimental/feat-char8_t.cc: Likewise.
970 * testsuite/experimental/iterator/ostream_joiner.cc: Likewise.
971 * testsuite/experimental/numeric/gcd.cc: Likewise.
972 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
973 * testsuite/std/concepts/1.cc: Likewise.
974 * testsuite/std/concepts/2.cc: Likewise.
975 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
976 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
977 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
978 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
979 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
980 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
981 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
982 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
983 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
984 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
985 * testsuite/std/ranges/repeat/1.cc: Likewise.
986 * testsuite/std/ranges/version_c++23.cc: Likewise.
987 * testsuite/std/ranges/zip/1.cc: Likewise.
988 * testsuite/std/time/syn_c++20.cc: Likewise.
989 * testsuite/experimental/feat-cxx14.cc: Likewise. Include
990 <algorithm> and <iterator>.
991 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
992 Adjust dg-error line numbers.
994 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
996 * include/bits/version.def (stds): Use >= 202100 for C++23
998 * include/bits/version.h: Regenerate.
999 * include/std/thread: Use > C++20 instead of >= C++23 for
1000 __cplusplus condition.
1002 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
1004 * include/std/istream (__rvalue_stream_extraction_t): Test
1005 __cpp_concepts instead of __cpp_lib_concepts.
1006 * include/std/ostream (__derived_from_ios_base): Likewise.
1007 (__rvalue_stream_insertion_t): Likewise.
1009 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
1012 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index):
1013 Correctly handle unused capacity at the start of the first node.
1014 * testsuite/libstdc++-xmethods/deque.cc: Check index operator
1015 when elements have been removed from the front.
1017 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
1019 * include/std/stacktrace (basic_stacktrace::at): Fix class name
1020 in exception message.
1021 * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if
1022 current() returns a non-empty stacktrace.
1024 2023-11-15 Alexandre Oliva <oliva@gnu.org>
1027 2023-11-15 Alexandre Oliva <oliva@adacore.com>
1029 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
1031 2023-11-15 Alexandre Oliva <oliva@adacore.com>
1033 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
1035 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
1037 * include/std/chrono (operator-(const weekday&, const weekday&)):
1040 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
1042 * include/std/chrono (weekday::_S_from_days): Fix UB.
1043 * testsuite/std/time/weekday/1.cc: Add test for overflow.
1045 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
1047 * include/std/chrono (year::is_leap): Clear code.
1049 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
1051 * include/std/chrono (year_month_day_last::day): Remove &1.
1053 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
1055 * include/std/charconv (__from_chars_pow2_base): Convert base to
1056 unsigned for call to __countr_zero.
1057 (__from_chars_alnum): Likewise for call to __bit_width.
1059 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
1062 * include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix
1063 type of hash functio nfor entries.
1064 * testsuite/19_diagnostics/stacktrace/hash.cc: New test.
1066 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
1069 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix
1070 calculation to use _M_start._M_cur.
1071 * testsuite/libstdc++-xmethods/deque.cc: Check failing cases.
1073 2023-11-13 Arsen Arsenović <arsen@aarsen.me>
1075 * configure: Regenerate.
1077 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
1079 * testsuite/std/time/clock/file/io.cc: Double timeout using
1081 * testsuite/std/time/clock/gps/io.cc: Likewise.
1082 * testsuite/std/time/clock/local/io.cc: Likewise.
1083 * testsuite/std/time/clock/system/io.cc: Likewise.
1084 * testsuite/std/time/clock/tai/io.cc: Likewise.
1085 * testsuite/std/time/clock/utc/io.cc: Likewise.
1087 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
1090 * include/std/optional (_Optional_payload_base::_M_reset): Set
1091 _M_engaged to false unconditionally.
1093 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1096 * include/bits/stl_bvector.h (_M_assume_normalized): Do not use
1097 statement form of assume attribute for Clang.
1099 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1101 * include/std/string_view (operator==, operator<=>): Remove
1102 redundant overloads (LWG 3950).
1104 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1106 * testsuite/26_numerics/headers/complex.h/std_c++11.h: Moved to...
1107 * testsuite/26_numerics/headers/complex.h/std_c++11.cc: ...here.
1108 * testsuite/26_numerics/headers/complex.h/std_c++98.h: Moved to...
1109 * testsuite/26_numerics/headers/complex.h/std_c++98.cc: ...here.
1110 Check macro first and then #undef.
1111 * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: Moved to...
1112 * testsuite/26_numerics/headers/complex.h/std_gnu++11.cc: ...here.
1114 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1117 * include/bits/utility.h (integer_sequence): Add static_assert.
1118 * testsuite/20_util/integer_sequence/112473.cc: New test.
1120 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1122 * testsuite/20_util/pair/dangling_ref.cc: Add hosted effective
1123 target for specifiers using c++17_down.
1125 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1127 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free)
1128 (atomic_load_explicit, atomic_load, atomic_store_explicit)
1129 (atomic_store, atomic_exchange_explicit, atomic_exchange)
1130 (atomic_compare_exchange_strong, atomic_compare_exchange_weak)
1131 (atomic_compare_exchange_strong_explicit)
1132 (atomic_compare_exchange_weak_explicit): Add deprecated
1133 attribute for C++20 and later.
1134 * testsuite/20_util/shared_ptr/atomic/1.cc: Suppress deprecated
1136 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
1137 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
1138 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
1140 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1142 * include/bits/std_mutex.h (lock_guard): Add [[nodiscard]]
1143 attribute to constructors.
1144 * include/bits/unique_lock.h (unique_lock): Likewise.
1145 * include/std/mutex (scoped_lock, scoped_lock<Mutex>): Likewise.
1146 * testsuite/30_threads/lock_guard/cons/nodiscard.cc: New test.
1147 * testsuite/30_threads/scoped_lock/cons/nodiscard.cc: New test.
1148 * testsuite/30_threads/unique_lock/cons/nodiscard.cc: New test.
1150 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1152 * include/std/span (span, as_bytes, as_writable_bytes): Add
1153 [[nodiscard]] attribute on all non-void functions.
1154 * testsuite/23_containers/span/back_assert_neg.cc: Suppress
1156 * testsuite/23_containers/span/back_neg.cc: Likewise.
1157 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
1158 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
1159 * testsuite/23_containers/span/first_neg.cc: Likewise.
1160 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
1161 * testsuite/23_containers/span/front_neg.cc: Likewise.
1162 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
1163 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1164 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
1165 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
1166 * testsuite/23_containers/span/last_neg.cc: Likewise.
1167 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
1169 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
1171 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
1173 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
1175 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
1177 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
1178 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
1179 * testsuite/23_containers/span/nodiscard.cc: New test.
1181 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
1184 * config.h.in: Regenerate.
1185 * configure: Regenerate.
1186 * linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): Remove.
1187 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1): Do not check for _foo.
1188 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Likewise.
1189 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2): Likewise.
1190 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3): Likewise.
1191 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Do not use
1192 GLIBCXX_MAYBE_UNDERSCORED_FUNCS.
1194 2023-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
1197 * include/c_global/cmath (acosf, acosl, asinf, asinl, atanf)
1198 (atanl, atan2f, atan2l, ceilf, ceill, cosf, cosl, coshf, coshl)
1199 (expf, expl, fabsf, fabsl, floorf, floorl, fmodf, fmodl, frexpf)
1200 (frexpl, ldexpf, ldexpl, logf, logl, log10f, log10l, modff)
1201 (modfl, powf, powl, sinf, sinl, sinhf, sinhl, sqrtf, sqrtl, tanf)
1202 (tanl, tanhf, tanhl): Add using-declarations in namespace std.
1203 * testsuite/26_numerics/headers/cmath/equivalent_functions.cc:
1205 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
1206 Add checks for existence of above names.
1208 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
1210 * testsuite/20_util/scoped_allocator/noexcept.cc: Mark as
1213 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
1215 * include/bits/memoryfwd.h: Remove HOSTED check around allocator
1216 and its specializations.
1218 2023-11-09 Patrick Palka <ppalka@redhat.com>
1221 * include/std/ranges (__detail::__box<_Tp>::operator*): Define
1222 && overloads as well.
1223 (__detail::__take_of_repeat_view): Forward __r when accessing
1224 its _M_value member.
1225 (__detail::__drop_of_repeat_view): Likewise.
1226 * testsuite/std/ranges/repeat/1.cc (test07): New test.
1228 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
1230 * include/bits/hashtable_policy.h (_RehashStateGuard): New.
1231 (_Insert_base<>::_M_insert_range(_IIt, _IIt, const _NodeGet&, false_type)):
1233 * include/bits/hashtable.h (__rehash_guard_t): New.
1234 (__rehash_state): Remove.
1235 (_M_rehash): Remove.
1236 (_M_rehash_aux): Rename into _M_rehash.
1237 (_M_assign_elements, _M_insert_unique_node, _M_insert_multi_node): Adapt.
1240 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
1242 * include/bits/hashtable_policy.h
1243 (struct _NodePtrGuard<_HashtableAlloc, _NodePtr>): New.
1244 (_ReuseAllocNode::operator()(_Args&&...)): Use latter to guard allocated node
1245 pointer while constructing in place the value_type instance.
1247 2023-11-09 Alexandre Oliva <oliva@adacore.com>
1250 * include/bits/stl_bvector.h (_Bit_iterator_base): Add
1251 _M_assume_normalized member function. Call it in _M_bump_up,
1252 _M_bump_down, _M_incr, operator==, operator<=>, operator<, and
1254 (_Bit_iterator): Also call it in operator*.
1255 (_Bit_const_iterator): Likewise.
1257 2023-11-07 François Dumont <fdumont@gcc.gnu.org>
1259 * include/bits/hashtable_policy.h
1260 (_Hashtable_alloc<>::_M_allocate_node): Add missing call to node destructor
1261 on construct exception.
1263 2023-11-07 Richard Biener <rguenther@suse.de>
1266 * src/c++98/locale.cc (locale::facet::_S_initialize_once):
1267 Check whether _S_c_locale is already initialized.
1268 (locale::facet::_S_get_c_locale): Always perform non-threadsafe
1269 init when threadsafe init failed.
1271 2023-11-06 Ian Lance Taylor <iant@golang.org>
1273 PR libbacktrace/111315
1274 PR libbacktrace/112263
1275 * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when
1276 grepping link.h for dl_iterate_phdr.
1277 * configure: Regenerate.
1279 2023-11-06 Jonathan Wakely <jwakely@redhat.com>
1281 * include/std/expected (expected::and_then, expected::or_else):
1282 Add string literals to static assertions.
1283 * include/std/optional (optional::and_then, optional::or_else):
1286 2023-11-04 Feng Jisen <J1senn@outlook.com>
1288 * include/bits/utility.h (_Nth_type): Remove redundant partial
1291 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
1294 * include/std/system_error (system_error::system_error): Group
1295 arguments so that concatenation can reuse rvalue's capacity.
1296 * src/c++11/system_error.cc (strerror_string): New function.
1297 [_GLIBCXX_HAVE_STRERROR_R] (use_strerror_result): New functions.
1298 (generic_error_category::message): Use strerror_string.
1299 (system_error_category::message): Likewise.
1301 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
1303 * doc/xml/manual/appendix_contributing.xml: Replace example that
1305 * doc/html/manual/source_code_style.html: Regenerate.
1307 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
1310 * include/std/string_view (string_view::remove_suffix): Add
1312 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
1314 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
1317 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
1319 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
1320 * configure: Regenerate.
1322 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
1324 * config/abi/pre/gnu-versioned-namespace.ver: Add comment on recently
1325 added emul TLS symbols.
1327 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
1329 * src/experimental/contract.cc
1330 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Rework comment.
1331 Remove weak attribute.
1333 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
1335 * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS
1338 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
1340 * src/experimental/contract.cc
1341 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide symbol
1342 without version namespace decoration for gcc.
1344 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
1347 * include/std/shared_mutex (shared_lock::unlock): Change errc
1348 constant to operation_not_permitted.
1349 * testsuite/30_threads/shared_lock/locking/112089.cc: New test.
1351 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
1353 * testsuite/20_util/duration/io.cc: Double timeout using
1355 * testsuite/std/time/day/io.cc: Likewise.
1356 * testsuite/std/time/format.cc: Likewise.
1357 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1358 * testsuite/std/time/month/io.cc: Likewise.
1359 * testsuite/std/time/month_day/io.cc: Likewise.
1360 * testsuite/std/time/month_day_last/io.cc: Likewise.
1361 * testsuite/std/time/month_weekday/io.cc: Likewise.
1362 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
1363 * testsuite/std/time/weekday/io.cc: Likewise.
1364 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
1365 * testsuite/std/time/weekday_last/io.cc: Likewise.
1366 * testsuite/std/time/year/io.cc: Likewise.
1367 * testsuite/std/time/year_month/io.cc: Likewise.
1368 * testsuite/std/time/year_month_day/io.cc: Likewise.
1369 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
1370 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
1371 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
1372 * testsuite/std/time/zoned_time/io.cc: Likewise.
1374 2023-10-25 Jonathan Wakely <jwakely@redhat.com>
1377 * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool
1379 * src/libbacktrace/Makefile.in: Regenerate.
1381 2023-10-24 Paul M. Bendixen <paulbendixen@gmail.com>
1383 * include/Makefile.am: Move cstdarg, cstdalign and cstdbool to
1385 * include/Makefile.in: Regenerate.
1387 2023-10-22 Iain Sandoe <iain@sandoe.co.uk>
1389 * configure: Regenerate.
1390 * configure.ac: Handle Darwin rpaths.
1391 * src/Makefile.am: Handle Darwin rpaths.
1392 * src/Makefile.in: Regenerate.
1394 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
1396 * include/bits/basic_string.h (_M_init_local_buf()): New
1398 (_M_use_local_data()): Use _M_init_local_buf.
1399 (basic_string(), basic_string(const Alloc&))
1400 (basic_string(basic_string&&))
1401 (basic_string(basic_string&&, const Alloc&)): Use
1402 _M_init_local_buf instead of _M_use_local_data().
1403 * include/bits/basic_string.tcc (swap(basic_string&))
1404 (_M_construct(InIter, InIter, input_iterator_tag))
1405 (_M_construct(InIter, InIter, forward_iterator_tag))
1406 (_M_construct(size_type, CharT), reserve()): Likewise.
1408 2023-10-21 Benjamin Brock <brock@cs.berkeley.edu>
1410 * include/std/ranges (zip_view, adjacent_view): Implement
1411 workaround for LLVM-61763.
1413 2023-10-21 Dimitrij Mijoski <dmjpp@hotmail.com>
1415 * testsuite/22_locale/codecvt/codecvt_unicode.h: Test length()
1417 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
1419 * include/bits/fs_dir.h (operator==(default_sentinel_t)): Fix
1422 2023-10-20 Marek Polacek <polacek@redhat.com>
1425 * include/std/charconv (from_chars): Add explicit casts.
1427 2023-10-19 François Dumont <fdumont@gcc.gnu.org>
1429 * include/bits/hashtable_policy.h
1430 (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove.
1431 (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove.
1432 * include/bits/hashtable.h
1433 (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New.
1434 (_M_merge_unique<>, _M_merge_multi<>): Use latter.
1435 * testsuite/23_containers/unordered_map/modifiers/merge.cc
1436 (test04, test05, test06): New test cases.
1438 2023-10-13 Jakub Jelinek <jakub@redhat.com>
1440 * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01):
1441 Initialize stream to va_arg(ap, FILE*) rather than 0.
1442 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01):
1445 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
1447 * testsuite/29_atomics/atomic/compare_exchange_padding.cc,
1448 testsuite/29_atomics/atomic_flag/clear/1.cc,
1449 testsuite/29_atomics/atomic_flag/cons/value_init.cc,
1450 testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc,
1451 testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc,
1452 testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc,
1453 testsuite/29_atomics/atomic_ref/generic.cc,
1454 testsuite/29_atomics/atomic_ref/integral.cc,
1455 testsuite/29_atomics/atomic_ref/pointer.cc: Replace
1456 dg-require-thread-fence with dg-require-atomic-cmpxchg-word.
1458 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
1460 * testsuite/lib/dg-options.exp (dg-require-atomic-cmpxchg-word):
1462 * testsuite/lib/libstdc++.exp (check_v3_target_atomic_cmpxchg_word):
1465 2023-10-05 François Dumont <fdumont@gcc.gnu.org>
1467 * config/abi/pre/gnu-versioned-namespace.ver: Add missing symbols
1468 for _Float{16,32,64,128,32x,64x,128x}.
1470 2023-10-04 Tom Tromey <tromey@adacore.com>
1472 * python/libstdcxx/v6/printers.py
1473 (StdExpAnyPrinter.__init__): Qualify call to
1476 2023-10-04 Tom Tromey <tromey@adacore.com>
1478 * python/libstdcxx/v6/printers.py: Assume that
1479 _versioned_namespace is non-None.
1480 * python/libstdcxx/v6/xmethods.py (is_specialization_of):
1481 Assume that _versioned_namespace is non-None.
1483 2023-10-04 Tom Tromey <tromey@adacore.com>
1485 * python/libstdcxx/v6/xmethods.py (_versioned_namespace):
1488 2023-09-29 Dimitrij Mijoski <dmjpp@hotmail.com>
1491 * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of
1492 surrogates in UTF-8.
1493 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8.
1494 (ucs4_in): Fix handling of range with odd number of bytes.
1495 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16.
1496 (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16.
1497 (ucs2_in): Fix handling of range with odd number of bytes.
1498 (__codecvt_utf16_base<char16_t>::do_in): Likewise.
1499 (__codecvt_utf16_base<char32_t>::do_in): Likewise.
1500 (__codecvt_utf16_base<wchar_t>::do_in): Likewise.
1501 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add
1502 tests for codecvt_utf16<char16_t> and codecvt_utf16<char32_t>.
1503 * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8
1504 testing functions for char8_t, add more test cases for errors,
1505 add testing functions for codecvt_utf16.
1506 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc:
1507 Renames, add tests for codecvt_utf16<whchar_t>.
1508 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06):
1510 * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New
1513 2023-09-29 Nathaniel Shead <nathanieloshead@gmail.com>
1515 * include/bits/basic_string.h: (basic_string(basic_string&&)):
1516 Activate _M_local_buf when needed.
1517 (basic_string(basic_string&&, const _Alloc&)): Likewise.
1518 * include/bits/basic_string.tcc: (basic_string::swap): Likewise.
1519 * include/std/variant: (__detail::__variant::__construct_n): New.
1520 (__detail::__variant::__emplace): Use __construct_n.
1522 2023-09-28 Tom Tromey <tromey@adacore.com>
1524 * python/libstdcxx/v6/printers.py (Printer.add_version)
1525 (add_one_template_type_printer)
1526 (FilteringTypePrinter.add_one_type_printer): Use Python
1529 2023-09-28 Tom Tromey <tromey@adacore.com>
1531 * python/libstdcxx/v6/printers.py (std_ratio_t_tuple):
1534 2023-09-28 Tom Tromey <tromey@adacore.com>
1536 * python/libstdcxx/v6/printers.py
1537 (StdExpOptionalPrinter.__init__, lookup_node_type):
1538 Remove unused variables.
1540 2023-09-28 Tom Tromey <tromey@adacore.com>
1542 * python/libstdcxx/v6/printers.py: Don't import 'os'.
1543 * python/libstdcxx/v6/__init__.py: Don't import 'gdb'.
1545 2023-09-28 Tom Tromey <tromey@adacore.com>
1547 * python/libstdcxx/v6/printers.py: Use gdb.ValuePrinter
1548 everywhere. Rename members to start with "_".
1550 2023-09-28 Tom Tromey <tromey@adacore.com>
1552 * testsuite/lib/gdb-test.exp (gdb-test): Enable Python
1553 stack traces from gdb.
1555 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1557 * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define
1559 (ArrayMethodsMatcher, DequeMethodsMatcher)
1560 (ForwardListMethodsMatcher, ListMethodsMatcher)
1561 (VectorMethodsMatcher, AssociativeContainerMethodsMatcher)
1562 (UniquePtrGetWorker, UniquePtrMethodsMatcher)
1563 (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use
1564 is_specialization_of instead of re.match.
1566 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1568 * python/libstdcxx/v6/printers.py: Break long lines. Use raw
1569 strings for regular expressions. Add whitespace around
1571 (is_member_of_namespace): Use isinstance to check type.
1572 (is_specialization_of): Likewise. Adjust template_name
1573 for versioned namespace instead of duplicating the re.match
1575 (StdExpAnyPrinter._string_types): New static method.
1576 (StdExpAnyPrinter.to_string): Use _string_types.
1578 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1580 * python/libstdcxx/v6/printers.py: Format docstrings according
1582 * python/libstdcxx/v6/xmethods.py: Likewise.
1584 2023-09-28 Tim Song <t.canens.cpp@gmail.com>
1587 * include/bits/hashtable_policy.h
1588 (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v())
1589 Add [[__gnu__::__always_inline__]].
1591 2023-09-27 Jonathan Wakely <jwakely@redhat.com>
1593 * python/libstdcxx/v6/printers.py (StdChronoTimeZoneRulePrinter):
1594 Fix incorrect number of replacement fields.
1596 2023-09-26 Hans-Peter Nilsson <hp@axis.com>
1598 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Add
1599 dg-require-thread-fence.
1601 2023-09-25 Patrick Palka <ppalka@redhat.com>
1603 * include/std/charconv (__detail::__integer_to_chars_result_type):
1605 (__detail::__to_chars_16): Use to_chars_result as return type.
1606 (__detail::__to_chars_10): Likewise.
1607 (__detail::__to_chars_8): Likewise.
1608 (__detail::__to_chars_2): Likewise.
1609 (__detail::__to_chars_i): Likewise.
1610 (__detail::__integer_from_chars_result_type): Inline the
1612 (from_chars): ... here. Use __is_standard_integer in the
1613 constraint. Encode constraint as a defaulted non-type template
1614 parameter instead of within the return type.
1616 2023-09-25 John David Anglin <danglin@gcc.gnu.org>
1618 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
1620 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1624 * include/std/array (to_array): Cast memcpy arguments to void*.
1625 * testsuite/23_containers/array/creation/111512.cc: New test.
1627 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1629 * include/bits/move.h (forward_list): Define for C++23.
1630 * include/bits/version.def (forward_like): Define.
1631 * include/bits/version.h: Regenerate.
1632 * include/std/utility (__glibcxx_want_forward_like): Define.
1633 * testsuite/20_util/forward_like/1.cc: New test.
1634 * testsuite/20_util/forward_like/2_neg.cc: New test.
1635 * testsuite/20_util/forward_like/version.cc: New test.
1637 2023-09-19 Marek Polacek <polacek@redhat.com>
1639 * testsuite/20_util/allocator/105975.cc: Add dg-error.
1641 2023-09-18 Patrick Palka <ppalka@redhat.com>
1645 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
1646 Make data member seed_seq::called mutable.
1647 * testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc:
1649 * testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc:
1651 * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc:
1653 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
1655 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc:
1657 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc:
1660 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1662 * doc/xml/manual/status_cxx2020.xml: Tweak P1466R3 status.
1663 * doc/html/manual/status.html: Regenerate.
1665 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1667 * doc/xml/manual/configure.xml: Use conventional option name.
1668 * doc/xml/manual/status_cxx2020.xml: Update.
1669 * doc/xml/manual/status_cxx2023.xml: Update.
1670 * doc/html/*: Regenerate.
1672 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1674 * doc/xml/manual/intro.xml: Clarify that building libstdc++
1675 separately from GCC is not supported.
1676 * doc/xml/manual/prerequisites.xml: Note msgfmt prerequisite for
1678 * doc/html/manual/setup.html: Regenerate.
1680 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1682 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not
1683 restrict to pthreads targets.
1684 * testsuite/30_threads/jthread/3.cc: Likewise.
1685 * testsuite/30_threads/semaphore/100806.cc: Likewise.
1686 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
1687 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
1688 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
1690 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1692 * testsuite/18_support/coroutines/95917.cc: Remove dg-options
1694 * testsuite/18_support/coroutines/hash.cc: Likewise.
1695 * testsuite/18_support/coroutines/lwg3460.cc: Likewise.
1696 * testsuite/18_support/destroying_delete.cc: Likewise.
1697 * testsuite/18_support/source_location/1.cc: Likewise.
1698 * testsuite/18_support/source_location/consteval.cc: Likewise.
1699 * testsuite/18_support/source_location/version.cc: Likewise.
1700 * testsuite/19_diagnostics/error_category/operators/three_way.cc:
1702 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1704 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1706 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1707 * testsuite/26_numerics/adjacent_difference/lwg2055.cc:
1709 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1710 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1711 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1712 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1713 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1714 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1716 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
1718 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
1720 * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise.
1721 * testsuite/experimental/filesystem/iterators/106201.cc:
1723 * testsuite/experimental/scopeguard/exit.cc: Likewise.
1724 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
1726 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1728 * testsuite/30_threads/barrier/1.cc: Remove dg-options
1730 * testsuite/30_threads/barrier/2.cc: Likewise.
1731 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1732 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1733 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1734 * testsuite/30_threads/barrier/completion.cc: Likewise.
1735 * testsuite/30_threads/condition_variable/members/clock_neg.cc:
1737 * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
1739 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
1741 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
1743 * testsuite/30_threads/future/members/clock_neg.cc: Likewise.
1744 * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise.
1745 * testsuite/30_threads/headers/thread/types_std_c++20.cc:
1747 * testsuite/30_threads/jthread/1.cc: Likewise.
1748 * testsuite/30_threads/jthread/100612.cc: Likewise.
1749 * testsuite/30_threads/jthread/95989.cc: Likewise.
1750 * testsuite/30_threads/jthread/jthread.cc: Likewise.
1751 * testsuite/30_threads/jthread/version.cc: Likewise.
1752 * testsuite/30_threads/latch/1.cc: Likewise.
1753 * testsuite/30_threads/latch/2.cc: Likewise.
1754 * testsuite/30_threads/latch/3.cc: Likewise.
1755 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
1757 * testsuite/30_threads/semaphore/1.cc: Likewise.
1758 * testsuite/30_threads/semaphore/2.cc: Likewise.
1759 * testsuite/30_threads/semaphore/least_max_value_neg.cc:
1761 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1762 * testsuite/30_threads/shared_future/members/clock_neg.cc:
1764 * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
1766 * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
1768 * testsuite/30_threads/stop_token/1.cc: Likewise.
1769 * testsuite/30_threads/stop_token/2.cc: Likewise.
1770 * testsuite/30_threads/stop_token/stop_callback.cc: Likewise.
1771 * testsuite/30_threads/stop_token/stop_callback/deadlock.cc:
1773 * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
1775 * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
1777 * testsuite/30_threads/stop_token/stop_callback/invoke.cc:
1779 * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
1780 * testsuite/30_threads/stop_token/stop_source/assign.cc:
1782 * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
1783 * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
1785 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
1786 * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
1788 * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
1791 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1793 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
1794 Remove dg-options -std=gnu++2a.
1795 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
1797 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
1799 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
1801 * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
1802 * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
1804 * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise.
1805 * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc:
1807 * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
1808 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
1810 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
1811 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
1813 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
1815 * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
1816 * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
1818 * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise.
1819 * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc:
1821 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
1822 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
1824 * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
1825 * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
1826 * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise.
1827 * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise.
1828 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
1829 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
1830 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
1831 * testsuite/27_io/basic_stringstream/cons/char/97719.cc:
1833 * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
1835 * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise.
1836 * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc:
1838 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
1839 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
1841 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
1842 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
1843 * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise.
1844 * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise.
1845 * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise.
1846 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
1847 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
1848 * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise.
1849 * testsuite/27_io/basic_syncstream/requirements/types.cc:
1851 * testsuite/27_io/filesystem/iterators/106201.cc: Likewise.
1852 * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise.
1853 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc:
1855 * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
1858 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1860 * testsuite/26_numerics/accumulate/constexpr.cc: Remove
1861 dg-options -std=gnu++2a.
1862 * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise.
1863 * testsuite/26_numerics/adjacent_difference/constexpr.cc:
1865 * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise.
1866 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
1867 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
1868 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1869 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc:
1871 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1872 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1873 * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise.
1874 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1875 * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
1876 * testsuite/26_numerics/bit/header-2.cc: Likewise.
1877 * testsuite/26_numerics/bit/header.cc: Likewise.
1878 * testsuite/26_numerics/complex/1.cc: Likewise.
1879 * testsuite/26_numerics/complex/2.cc: Likewise.
1880 * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc:
1882 * testsuite/26_numerics/complex/operators/more_constexpr.cc:
1884 * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
1886 * testsuite/26_numerics/complex/value_operations/more_constexpr.cc:
1888 * testsuite/26_numerics/endian/1.cc: Likewise.
1889 * testsuite/26_numerics/endian/2.cc: Likewise.
1890 * testsuite/26_numerics/endian/3.cc: Likewise.
1891 * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
1892 * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
1893 * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
1894 * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise.
1895 * testsuite/26_numerics/iota/constexpr.cc: Likewise.
1896 * testsuite/26_numerics/lerp/1.cc: Likewise.
1897 * testsuite/26_numerics/lerp/constexpr.cc: Likewise.
1898 * testsuite/26_numerics/lerp/version.cc: Likewise.
1899 * testsuite/26_numerics/midpoint/floating.cc: Likewise.
1900 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1901 * testsuite/26_numerics/midpoint/pointer.cc: Likewise.
1902 * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise.
1903 * testsuite/26_numerics/midpoint/version.cc: Likewise.
1904 * testsuite/26_numerics/numbers/1.cc: Likewise.
1905 * testsuite/26_numerics/numbers/2.cc: Likewise.
1906 * testsuite/26_numerics/numbers/3.cc: Likewise.
1907 * testsuite/26_numerics/numbers/float128.cc: Likewise.
1908 * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise.
1909 * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
1910 * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise.
1911 * testsuite/26_numerics/random/concept.cc: Likewise.
1912 * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
1913 * testsuite/26_numerics/slice/compare.cc: Likewise.
1914 * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
1916 * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
1918 * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
1920 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1922 * testsuite/24_iterators/aliases.cc: Remove dg-options
1924 * testsuite/24_iterators/associated_types/incrementable.traits.cc:
1926 * testsuite/24_iterators/associated_types/iterator.traits.cc:
1928 * testsuite/24_iterators/associated_types/readable.traits.cc:
1930 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1932 * testsuite/24_iterators/back_insert_iterator/pr93884.cc:
1934 * testsuite/24_iterators/bidirectional/concept.cc: Likewise.
1935 * testsuite/24_iterators/common_iterator/1.cc: Likewise.
1936 * testsuite/24_iterators/common_iterator/100823.cc: Likewise.
1937 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
1938 * testsuite/24_iterators/contiguous/concept.cc: Likewise.
1939 * testsuite/24_iterators/contiguous/tag.cc: Likewise.
1940 * testsuite/24_iterators/counted_iterator/1.cc: Likewise.
1941 * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise.
1942 * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise.
1943 * testsuite/24_iterators/customization_points/92894.cc:
1945 * testsuite/24_iterators/customization_points/iter_move.cc:
1947 * testsuite/24_iterators/customization_points/iter_swap.cc:
1949 * testsuite/24_iterators/customization_points/lwg3420.cc:
1951 * testsuite/24_iterators/forward/concept.cc: Likewise.
1952 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1954 * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
1956 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
1958 * testsuite/24_iterators/indirect_callable/92894.cc: Likewise.
1959 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1961 * testsuite/24_iterators/indirect_callable/projected.cc:
1963 * testsuite/24_iterators/input/concept.cc: Likewise.
1964 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
1965 * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
1967 * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise.
1968 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
1970 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1972 * testsuite/24_iterators/move_iterator/cust.cc: Likewise.
1973 * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise.
1974 * testsuite/24_iterators/move_iterator/input_iterator.cc:
1976 * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
1977 * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise.
1978 * testsuite/24_iterators/move_iterator/move_only.cc: Likewise.
1979 * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise.
1980 * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
1982 * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise.
1983 * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise.
1984 * testsuite/24_iterators/output/concept.cc: Likewise.
1985 * testsuite/24_iterators/random_access/concept.cc: Likewise.
1986 * testsuite/24_iterators/range_access/range_access_cpp20.cc:
1988 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1990 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1991 * testsuite/24_iterators/range_operations/advance.cc: Likewise.
1992 * testsuite/24_iterators/range_operations/advance_overflow.cc:
1994 * testsuite/24_iterators/range_operations/distance.cc: Likewise.
1995 * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise.
1996 * testsuite/24_iterators/range_operations/next.cc: Likewise.
1997 * testsuite/24_iterators/range_operations/prev.cc: Likewise.
1998 * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise.
1999 * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise.
2000 * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
2003 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2005 * testsuite/23_containers/array/comparison_operators/96851.cc:
2006 Remove dg-options -std=gnu++2a.
2007 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
2009 * testsuite/23_containers/array/creation/1.cc: Likewise.
2010 * testsuite/23_containers/array/creation/110167.cc: Likewise.
2011 * testsuite/23_containers/array/creation/2.cc: Likewise.
2012 * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
2013 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
2015 * testsuite/23_containers/array/requirements/constexpr_swap.cc:
2017 * testsuite/23_containers/deque/48101-3_neg.cc: Likewise.
2018 * testsuite/23_containers/deque/erasure.cc: Likewise.
2019 * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
2021 * testsuite/23_containers/deque/operators/cmp_c++20.cc:
2023 * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise.
2024 * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise.
2025 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
2026 * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
2028 * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc:
2030 * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc:
2032 * testsuite/23_containers/list/48101-3_neg.cc: Likewise.
2033 * testsuite/23_containers/list/cmp_c++20.cc: Likewise.
2034 * testsuite/23_containers/list/erasure.cc: Likewise.
2035 * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
2037 * testsuite/23_containers/list/operations/remove_cxx20_return.cc:
2039 * testsuite/23_containers/list/operations/unique_cxx20_return.cc:
2041 * testsuite/23_containers/map/48101-3_neg.cc: Likewise.
2042 * testsuite/23_containers/map/erasure.cc: Likewise.
2043 * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
2045 * testsuite/23_containers/map/operations/contains.cc: Likewise.
2046 * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise.
2047 * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise.
2048 * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
2050 * testsuite/23_containers/multimap/operations/contains.cc:
2052 * testsuite/23_containers/multimap/operators/cmp_c++20.cc:
2054 * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise.
2055 * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
2057 * testsuite/23_containers/multiset/operations/contains.cc:
2059 * testsuite/23_containers/multiset/operators/cmp_c++20.cc:
2061 * testsuite/23_containers/priority_queue/92878_92947.cc:
2063 * testsuite/23_containers/queue/92878_92947.cc: Likewise.
2064 * testsuite/23_containers/queue/cmp_c++20.cc: Likewise.
2065 * testsuite/23_containers/set/48101-3_neg.cc: Likewise.
2066 * testsuite/23_containers/set/erasure.cc: Likewise.
2067 * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
2069 * testsuite/23_containers/set/operations/contains.cc: Likewise.
2070 * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise.
2071 * testsuite/23_containers/span/1.cc: Likewise.
2072 * testsuite/23_containers/span/101411.cc: Likewise.
2073 * testsuite/23_containers/span/2.cc: Likewise.
2074 * testsuite/23_containers/span/deduction.cc: Likewise.
2075 * testsuite/23_containers/span/explicit.cc: Likewise.
2076 * testsuite/23_containers/span/layout_compat.cc: Likewise.
2077 * testsuite/23_containers/span/lwg3255.cc: Likewise.
2078 * testsuite/23_containers/span/nothrow_cons.cc: Likewise.
2079 * testsuite/23_containers/span/trivially_copyable.cc: Likewise.
2080 * testsuite/23_containers/stack/92878_92947.cc: Likewise.
2081 * testsuite/23_containers/stack/cmp_c++20.cc: Likewise.
2082 * testsuite/23_containers/unordered_map/48101-3_neg.cc:
2084 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
2085 * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
2087 * testsuite/23_containers/unordered_map/operations/1.cc:
2089 * testsuite/23_containers/unordered_map/operations/contains.cc:
2091 * testsuite/23_containers/unordered_multimap/48101-3_neg.cc:
2093 * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
2095 * testsuite/23_containers/unordered_multimap/operations/1.cc:
2097 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
2099 * testsuite/23_containers/unordered_multiset/48101-3_neg.cc:
2101 * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
2103 * testsuite/23_containers/unordered_multiset/operations/1.cc:
2105 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
2107 * testsuite/23_containers/unordered_set/48101-3_neg.cc:
2109 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
2110 * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
2112 * testsuite/23_containers/unordered_set/operations/1.cc:
2114 * testsuite/23_containers/unordered_set/operations/contains.cc:
2116 * testsuite/23_containers/vector/48101-3_neg.cc: Likewise.
2117 * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
2119 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
2120 * testsuite/23_containers/vector/bool/cons/constexpr.cc:
2122 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
2124 * testsuite/23_containers/vector/bool/iterator_c++20.cc:
2126 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
2128 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
2130 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
2132 * testsuite/23_containers/vector/capacity/constexpr.cc:
2134 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
2135 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
2136 * testsuite/23_containers/vector/data_access/constexpr.cc:
2138 * testsuite/23_containers/vector/element_access/constexpr.cc:
2140 * testsuite/23_containers/vector/erasure.cc: Likewise.
2141 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
2143 * testsuite/23_containers/vector/modifiers/constexpr.cc:
2145 * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
2147 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
2149 * testsuite/23_containers/vector/requirements/version.cc:
2152 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2154 * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove
2155 dg-options -std=gnu++20.
2156 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
2158 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
2160 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
2161 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
2163 * testsuite/21_strings/basic_string/literals/constexpr.cc:
2165 * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
2167 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
2169 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
2171 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
2173 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
2175 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
2177 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
2179 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
2181 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
2183 * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc:
2185 * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
2187 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2189 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
2191 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc:
2193 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
2195 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
2197 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
2199 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
2201 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
2203 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
2205 * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
2207 * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
2209 * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
2211 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
2214 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2216 * testsuite/20_util/allocator/105975.cc: Remove dg-options
2218 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
2219 * testsuite/20_util/allocator/requirements/constexpr.cc:
2221 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
2223 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
2224 * testsuite/20_util/allocator_traits/header.cc: Likewise.
2225 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
2227 * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
2228 * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
2229 * testsuite/20_util/assume_aligned/1.cc: Likewise.
2230 * testsuite/20_util/assume_aligned/2_neg.cc: Likewise.
2231 * testsuite/20_util/assume_aligned/3.cc: Likewise.
2232 * testsuite/20_util/assume_aligned/97132.cc: Likewise.
2233 * testsuite/20_util/bind/constexpr.cc: Likewise.
2234 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
2235 * testsuite/20_util/common_reference/100894.cc: Likewise.
2236 * testsuite/20_util/common_reference/requirements/alias_decl.cc:
2238 * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc:
2240 * testsuite/20_util/common_reference/requirements/typedefs.cc:
2242 * testsuite/20_util/duration/comparison_operators/three_way.cc:
2244 * testsuite/20_util/exchange/constexpr.cc: Likewise.
2245 * testsuite/20_util/exchange/noexcept.cc: Likewise.
2246 * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise.
2247 * testsuite/20_util/from_chars/compare.cc: Likewise.
2248 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
2249 * testsuite/20_util/function_objects/bind_front/107784.cc:
2251 * testsuite/20_util/function_objects/bind_front/111327.cc:
2253 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
2254 * testsuite/20_util/function_objects/bind_front/97101.cc:
2256 * testsuite/20_util/function_objects/bind_front/constexpr.cc:
2258 * testsuite/20_util/function_objects/constexpr_searcher.cc:
2260 * testsuite/20_util/function_objects/identity/1.cc: Likewise.
2261 * testsuite/20_util/function_objects/invoke/constexpr.cc:
2263 * testsuite/20_util/function_objects/mem_fn/constexpr.cc:
2265 * testsuite/20_util/function_objects/not_fn/constexpr.cc:
2267 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
2268 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
2269 * testsuite/20_util/integer_comparisons/equal.cc: Likewise.
2270 * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise.
2271 * testsuite/20_util/integer_comparisons/greater.cc: Likewise.
2272 * testsuite/20_util/integer_comparisons/greater_equal.cc:
2274 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
2276 * testsuite/20_util/integer_comparisons/greater_neg.cc:
2278 * testsuite/20_util/integer_comparisons/in_range.cc: Likewise.
2279 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
2281 * testsuite/20_util/integer_comparisons/less.cc: Likewise.
2282 * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
2283 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
2285 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
2286 * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
2287 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
2289 * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc:
2291 * testsuite/20_util/is_bounded_array/requirements/typedefs.cc:
2293 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
2294 * testsuite/20_util/is_constant_evaluated/1.cc: Likewise.
2295 * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise.
2296 * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
2297 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
2299 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
2300 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
2301 * testsuite/20_util/is_nothrow_constructible/value_c++20.cc:
2303 * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc:
2305 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
2307 * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise.
2308 * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise.
2309 * testsuite/20_util/is_pointer_interconvertible/value.cc:
2311 * testsuite/20_util/is_pointer_interconvertible/version.cc:
2313 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
2315 * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc:
2317 * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc:
2319 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
2320 * testsuite/20_util/optional/assignment/92878_92947.cc:
2322 * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
2323 * testsuite/20_util/optional/constexpr/assign.cc: Likewise.
2324 * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise.
2325 * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise.
2326 * testsuite/20_util/optional/constexpr/swap.cc: Likewise.
2327 * testsuite/20_util/optional/relops/96269.cc: Likewise.
2328 * testsuite/20_util/optional/relops/three_way.cc: Likewise.
2329 * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc:
2331 * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
2332 * testsuite/20_util/pair/constexpr_assign.cc: Likewise.
2333 * testsuite/20_util/pair/constexpr_swap.cc: Likewise.
2334 * testsuite/20_util/pair/requirements/structural.cc: Likewise.
2335 * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc:
2337 * testsuite/20_util/polymorphic_allocator/allocate_object.cc:
2339 * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc:
2341 * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise.
2342 * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise.
2343 * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise.
2344 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc:
2346 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
2348 * testsuite/20_util/remove_cvref/value.cc: Likewise.
2349 * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:
2351 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2353 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
2354 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
2356 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
2357 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
2359 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
2360 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
2361 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
2362 * testsuite/20_util/time_point/4.cc: Likewise.
2363 * testsuite/20_util/time_point/comparison_operators/three_way.cc:
2365 * testsuite/20_util/to_address/1.cc: Likewise.
2366 * testsuite/20_util/to_address/1_neg.cc: Likewise.
2367 * testsuite/20_util/to_address/debug.cc: Likewise.
2368 * testsuite/20_util/to_address/lwg3545.cc: Likewise.
2369 * testsuite/20_util/to_chars/compare.cc: Likewise.
2370 * testsuite/20_util/tuple/comparison_operators/three_way.cc:
2372 * testsuite/20_util/tuple/cons/102270.cc: Likewise.
2373 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
2375 * testsuite/20_util/tuple/constexpr_swap.cc: Likewise.
2376 * testsuite/20_util/type_identity/requirements/alias_decl.cc:
2378 * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc:
2380 * testsuite/20_util/type_identity/requirements/typedefs.cc:
2382 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
2384 * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc:
2386 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
2388 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
2390 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
2392 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise.
2393 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
2394 * testsuite/20_util/unwrap_reference/2.cc: Likewise.
2395 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
2396 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
2397 * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise.
2398 * testsuite/20_util/uses_allocator/make_obj.cc: Likewise.
2399 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
2401 * testsuite/20_util/variant/92878_92947.cc: Likewise.
2402 * testsuite/20_util/variant/95915.cc: Likewise.
2403 * testsuite/20_util/variant/constexpr.cc: Likewise.
2404 * testsuite/20_util/variant/relops/three_way.cc: Likewise.
2405 * testsuite/20_util/variant/visit_neg.cc: Likewise.
2406 * testsuite/20_util/variant/visit_r.cc: Likewise.
2407 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2409 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2411 * testsuite/18_support/comparisons/algorithms/fallback.cc:
2412 Remove dg-options -std=gnu++2a.
2413 * testsuite/18_support/comparisons/algorithms/partial_order.cc:
2415 * testsuite/18_support/comparisons/algorithms/strong_order.cc:
2417 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
2419 * testsuite/18_support/comparisons/algorithms/weak_order.cc:
2421 * testsuite/18_support/comparisons/categories/94565.cc:
2423 * testsuite/18_support/comparisons/categories/partialord.cc:
2425 * testsuite/18_support/comparisons/categories/strongord.cc:
2427 * testsuite/18_support/comparisons/categories/weakord.cc:
2429 * testsuite/18_support/comparisons/categories/zero_neg.cc:
2431 * testsuite/18_support/comparisons/common/1.cc: Likewise.
2432 * testsuite/18_support/comparisons/object/93479.cc: Likewise.
2433 * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise.
2435 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2437 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
2438 Remove dg-options -std=gnu++2a.
2439 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
2440 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
2441 * testsuite/29_atomics/atomic/requirements/types_neg.cc:
2443 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
2444 * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise.
2445 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
2446 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
2447 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise.
2448 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
2449 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
2450 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise.
2451 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise.
2452 * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
2453 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
2454 * testsuite/29_atomics/atomic_float/1.cc: Likewise.
2455 * testsuite/29_atomics/atomic_float/95282.cc: Likewise.
2456 * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
2457 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
2458 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
2459 * testsuite/29_atomics/atomic_integral/cons/value_init.cc:
2461 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2462 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
2464 * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
2465 * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
2466 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
2467 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
2468 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
2469 * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
2470 * testsuite/29_atomics/headers/atomic/types_std_c++20.cc:
2472 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
2474 * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc:
2476 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
2479 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2481 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test.
2482 * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test.
2484 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2486 * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New
2488 * config.h.in: Regenerate.
2489 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new
2490 basic_filebuf members.
2491 * config/io/basic_file_stdio.cc (__basic_file::native_handle):
2492 Define new function.
2493 * config/io/basic_file_stdio.h (__basic_file::native_handle):
2494 Declare new function.
2495 * configure: Regenerate.
2496 * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES.
2497 * include/bits/version.def (fstream_native_handles): New macro.
2498 * include/bits/version.h: Regenerate.
2499 * include/std/fstream (basic_filebuf::native_handle)
2500 (basic_fstream::native_handle, basic_ifstream::native_handle)
2501 (basic_ofstream::native_handle): New functions.
2502 * src/c++11/Makefile.am: Move compilation of basic_file.cc,
2503 locale_init.cc and localename.cc to here.
2504 * src/c++11/Makefile.in: Regenerate.
2505 * src/c++98/locale_init.cc: Moved to...
2506 * src/c++11/locale_init.cc: ...here.
2507 * src/c++98/localename.cc: Moved to...
2508 * src/c++11/localename.cc: ...here.
2509 * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc
2510 and localename.cc from here.
2511 * src/c++98/Makefile.in: Regenerate.
2512 * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test.
2513 * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test.
2514 * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test.
2515 * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test.
2516 * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test.
2517 * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test.
2518 * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test.
2520 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2522 * testsuite/libstdc++-dg/conformance.exp: Add log line when
2523 using testsuite_files.
2525 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2527 * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg
2529 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
2531 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
2533 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
2535 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
2537 * testsuite/20_util/synchronized_pool_resource/cons.cc:
2539 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
2541 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
2543 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
2545 * testsuite/20_util/synchronized_pool_resource/options.cc:
2547 * testsuite/20_util/synchronized_pool_resource/release.cc:
2549 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
2551 * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
2553 * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
2555 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2558 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2560 * testsuite/23_containers/span/back_assert_neg.cc: Remove
2561 dg-options and add effective target selector to dg-do. Add
2563 * testsuite/23_containers/span/back_neg.cc: Likewise.
2564 * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
2565 * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
2566 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
2567 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
2568 * testsuite/23_containers/span/first_neg.cc: Likewise.
2569 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
2570 * testsuite/23_containers/span/front_neg.cc: Likewise.
2571 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
2572 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2573 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
2574 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
2575 * testsuite/23_containers/span/last_neg.cc: Likewise.
2576 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
2578 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
2580 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
2582 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
2584 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
2586 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
2587 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
2588 * testsuite/24_iterators/range_operations/advance_debug_neg.cc:
2591 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2593 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove
2595 * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise.
2596 * testsuite/18_support/type_info/constexpr.cc: Likewise.
2597 * testsuite/19_diagnostics/stacktrace/current.cc: Likewise.
2598 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2599 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2600 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
2601 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
2602 * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise.
2603 * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise.
2604 * testsuite/20_util/bitset/access/constexpr.cc: Likewise.
2605 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
2606 * testsuite/20_util/bitset/count/constexpr.cc: Likewise.
2607 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
2608 * testsuite/20_util/bitset/operations/constexpr_c++23.cc:
2610 * testsuite/20_util/bitset/version.cc: Likewise.
2611 * testsuite/20_util/from_chars/8.cc: Likewise.
2612 * testsuite/20_util/from_chars/constexpr.cc: Likewise.
2613 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
2614 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
2615 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
2617 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
2618 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
2619 * testsuite/20_util/move_only_function/call.cc: Likewise.
2620 * testsuite/20_util/move_only_function/cons.cc: Likewise.
2621 * testsuite/20_util/move_only_function/move.cc: Likewise.
2622 * testsuite/20_util/move_only_function/version.cc: Likewise.
2623 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
2624 * testsuite/20_util/optional/monadic/or_else.cc: Likewise.
2625 * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
2626 * testsuite/20_util/optional/monadic/pr109242.cc: Likewise.
2627 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
2628 * testsuite/20_util/pair/p2321r2.cc: Likewise.
2629 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
2630 * testsuite/20_util/reference_from_temporary/value2.cc:
2632 * testsuite/20_util/reference_from_temporary/version.cc:
2634 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
2635 * testsuite/20_util/to_chars/float128_c++23.cc: Likewise.
2636 * testsuite/20_util/to_chars/float16_c++23.cc: Likewise.
2637 * testsuite/20_util/to_chars/version.cc: Likewise.
2638 * testsuite/20_util/to_underlying/1.cc: Likewise.
2639 * testsuite/20_util/to_underlying/version.cc: Likewise.
2640 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
2641 * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise.
2642 * testsuite/20_util/unique_ptr/comparison/constexpr.cc:
2644 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
2646 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
2647 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise.
2648 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise.
2649 * testsuite/20_util/unreachable/1.cc: Likewise.
2650 * testsuite/20_util/unreachable/version.cc: Likewise.
2651 * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise.
2652 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise.
2653 * testsuite/21_strings/basic_string/operations/contains/char.cc:
2655 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise.
2656 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise.
2657 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise.
2658 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise.
2659 * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise.
2660 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise.
2661 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise.
2662 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise.
2663 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
2664 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
2665 * testsuite/23_containers/vector/bool/element_access/1.cc:
2667 * testsuite/24_iterators/const_iterator/1.cc: Likewise.
2668 * testsuite/25_algorithms/contains/1.cc: Likewise.
2669 * testsuite/25_algorithms/contains_subrange/1.cc: Likewise.
2670 * testsuite/25_algorithms/find_last/1.cc: Likewise.
2671 * testsuite/25_algorithms/find_last_if/1.cc: Likewise.
2672 * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise.
2673 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
2674 * testsuite/25_algorithms/fold_right/1.cc: Likewise.
2675 * testsuite/25_algorithms/iota/1.cc: Likewise.
2676 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
2677 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
2678 * testsuite/26_numerics/complex/ext_c++23.cc: Likewise.
2679 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise.
2680 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
2682 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
2684 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
2686 * testsuite/26_numerics/numbers/4.cc: Likewise.
2687 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise.
2688 * testsuite/27_io/filesystem/path/native/conv_c++23.cc:
2690 * testsuite/27_io/spanstream/1.cc: Likewise.
2691 * testsuite/27_io/spanstream/2.cc: Likewise.
2692 * testsuite/27_io/spanstream/version.cc: Likewise.
2693 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc:
2695 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
2697 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
2698 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2700 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2702 * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise.
2703 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc:
2705 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
2706 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
2707 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
2708 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
2709 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
2710 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
2711 * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise.
2712 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
2713 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
2714 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
2715 * testsuite/std/ranges/range_adaptor_closure.cc: Likewise.
2716 * testsuite/std/ranges/repeat/1.cc: Likewise.
2717 * testsuite/std/ranges/version_c++23.cc: Likewise.
2718 * testsuite/std/ranges/zip/1.cc: Likewise.
2719 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
2721 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2723 * testsuite/20_util/expected/assign.cc: Remove dg-options.
2724 * testsuite/20_util/expected/bad.cc: Likewise.
2725 * testsuite/20_util/expected/cons.cc: Likewise.
2726 * testsuite/20_util/expected/equality.cc: Likewise.
2727 * testsuite/20_util/expected/illformed_neg.cc: Likewise.
2728 * testsuite/20_util/expected/lwg3877.cc: Likewise.
2729 * testsuite/20_util/expected/lwg3938.cc: Likewise.
2730 * testsuite/20_util/expected/monadic.cc: Likewise.
2731 * testsuite/20_util/expected/observers.cc: Likewise.
2732 * testsuite/20_util/expected/requirements.cc: Likewise.
2733 * testsuite/20_util/expected/swap.cc: Likewise.
2734 * testsuite/20_util/expected/synopsis.cc: Likewise.
2735 * testsuite/20_util/expected/unexpected.cc: Likewise.
2736 * testsuite/20_util/expected/version.cc: Likewise.
2738 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2740 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc:
2742 * testsuite/20_util/duration/io.cc: Likewise.
2743 * testsuite/std/time/clock/file/io.cc: Likewise.
2744 * testsuite/std/time/clock/file/members.cc: Likewise.
2745 * testsuite/std/time/clock/file/overview.cc: Likewise.
2746 * testsuite/std/time/clock/gps/1.cc: Likewise.
2747 * testsuite/std/time/clock/gps/io.cc: Likewise.
2748 * testsuite/std/time/clock/local/io.cc: Likewise.
2749 * testsuite/std/time/clock/system/io.cc: Likewise.
2750 * testsuite/std/time/clock/tai/1.cc: Likewise.
2751 * testsuite/std/time/clock/tai/io.cc: Likewise.
2752 * testsuite/std/time/clock/utc/1.cc: Likewise.
2753 * testsuite/std/time/clock/utc/io.cc: Likewise.
2754 * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise.
2755 * testsuite/std/time/day/1.cc: Likewise.
2756 * testsuite/std/time/day/io.cc: Likewise.
2757 * testsuite/std/time/exceptions.cc: Likewise.
2758 * testsuite/std/time/format.cc: Likewise.
2759 * testsuite/std/time/hh_mm_ss/1.cc: Likewise.
2760 * testsuite/std/time/hh_mm_ss/109772.cc: Likewise.
2761 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
2762 * testsuite/std/time/is_am/1.cc: Likewise.
2763 * testsuite/std/time/is_pm/1.cc: Likewise.
2764 * testsuite/std/time/make12/1.cc: Likewise.
2765 * testsuite/std/time/make24/1.cc: Likewise.
2766 * testsuite/std/time/month/1.cc: Likewise.
2767 * testsuite/std/time/month/io.cc: Likewise.
2768 * testsuite/std/time/month_day/1.cc: Likewise.
2769 * testsuite/std/time/month_day/io.cc: Likewise.
2770 * testsuite/std/time/month_day_last/1.cc: Likewise.
2771 * testsuite/std/time/month_day_last/io.cc: Likewise.
2772 * testsuite/std/time/month_weekday/1.cc: Likewise.
2773 * testsuite/std/time/month_weekday/io.cc: Likewise.
2774 * testsuite/std/time/month_weekday_last/1.cc: Likewise.
2775 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
2776 * testsuite/std/time/parse.cc: Likewise.
2777 * testsuite/std/time/syn_c++20.cc: Likewise.
2778 * testsuite/std/time/time_zone/get_info_local.cc: Likewise.
2779 * testsuite/std/time/time_zone/get_info_sys.cc: Likewise.
2780 * testsuite/std/time/time_zone/requirements.cc: Likewise.
2781 * testsuite/std/time/traits/is_clock.cc: Likewise.
2782 * testsuite/std/time/tzdb/1.cc: Likewise.
2783 * testsuite/std/time/tzdb/leap_seconds.cc: Likewise.
2784 * testsuite/std/time/tzdb_list/1.cc: Likewise.
2785 * testsuite/std/time/tzdb_list/requirements.cc: Likewise.
2786 * testsuite/std/time/weekday/1.cc: Likewise.
2787 * testsuite/std/time/weekday/io.cc: Likewise.
2788 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
2789 * testsuite/std/time/weekday_last/1.cc: Likewise.
2790 * testsuite/std/time/weekday_last/io.cc: Likewise.
2791 * testsuite/std/time/year/1.cc: Likewise.
2792 * testsuite/std/time/year/2.cc: Likewise.
2793 * testsuite/std/time/year/io.cc: Likewise.
2794 * testsuite/std/time/weekday_indexed/1.cc: Likewise.
2795 * testsuite/std/time/year_month/1.cc: Likewise.
2796 * testsuite/std/time/year_month/2.cc: Likewise.
2797 * testsuite/std/time/year_month/io.cc: Likewise.
2798 * testsuite/std/time/year_month_day/1.cc: Likewise.
2799 * testsuite/std/time/year_month_day/2.cc: Likewise.
2800 * testsuite/std/time/year_month_day/3.cc: Likewise.
2801 * testsuite/std/time/year_month_day/4.cc: Likewise.
2802 * testsuite/std/time/year_month_day/io.cc: Likewise.
2803 * testsuite/std/time/year_month_day_last/1.cc: Likewise.
2804 * testsuite/std/time/year_month_day_last/2.cc: Likewise.
2805 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
2806 * testsuite/std/time/year_month_weekday/1.cc: Likewise.
2807 * testsuite/std/time/year_month_weekday/2.cc: Likewise.
2808 * testsuite/std/time/year_month_weekday/3.cc: Likewise.
2809 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
2810 * testsuite/std/time/year_month_weekday_last/1.cc: Likewise.
2811 * testsuite/std/time/year_month_weekday_last/2.cc: Likewise.
2812 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
2813 * testsuite/std/time/zoned_time/1.cc: Likewise.
2814 * testsuite/std/time/zoned_time/custom.cc: Likewise.
2815 * testsuite/std/time/zoned_time/deduction.cc: Likewise.
2816 * testsuite/std/time/zoned_time/io.cc: Likewise.
2817 * testsuite/std/time/zoned_time/req_neg.cc: Likewise.
2818 * testsuite/std/time/zoned_time/requirements.cc: Likewise.
2819 * testsuite/std/time/zoned_traits.cc: Likewise.
2821 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2823 * testsuite/std/format/arguments/args.cc: Remove dg-options.
2824 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
2825 * testsuite/std/format/error.cc: Likewise.
2826 * testsuite/std/format/format_string.cc: Likewise.
2827 * testsuite/std/format/formatter/concept.cc: Likewise.
2828 * testsuite/std/format/formatter/ext_float.cc: Likewise.
2829 * testsuite/std/format/formatter/requirements.cc: Likewise.
2830 * testsuite/std/format/functions/107871.cc: Likewise.
2831 * testsuite/std/format/functions/format.cc: Likewise.
2832 * testsuite/std/format/functions/format_to.cc: Likewise.
2833 * testsuite/std/format/functions/format_to_n.cc: Likewise.
2834 * testsuite/std/format/functions/size.cc: Likewise.
2835 * testsuite/std/format/functions/vformat_to.cc: Likewise.
2836 * testsuite/std/format/parse_ctx.cc: Likewise.
2837 * testsuite/std/format/string.cc: Likewise.
2838 * testsuite/std/format/string_neg.cc: Likewise.
2839 * testsuite/std/format/functions/format_c++23.cc: Removed.
2841 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2843 * testsuite/20_util/function_objects/range.cmp/equal_to.cc:
2845 * testsuite/20_util/function_objects/range.cmp/greater.cc:
2847 * testsuite/20_util/function_objects/range.cmp/greater_equal.cc:
2849 * testsuite/20_util/function_objects/range.cmp/less.cc:
2851 * testsuite/20_util/function_objects/range.cmp/less_equal.cc:
2853 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc:
2855 * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
2857 * testsuite/20_util/specialized_algorithms/construct_at/1.cc:
2859 * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
2861 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
2863 * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
2865 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2867 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2869 * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
2871 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2873 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
2875 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2877 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2879 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise.
2880 * testsuite/25_algorithms/adjacent_find/constrained.cc:
2882 * testsuite/25_algorithms/all_of/constexpr.cc: Likewise.
2883 * testsuite/25_algorithms/all_of/constrained.cc: Likewise.
2884 * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
2885 * testsuite/25_algorithms/any_of/constrained.cc: Likewise.
2886 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
2887 * testsuite/25_algorithms/binary_search/constrained.cc:
2889 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
2890 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
2891 * testsuite/25_algorithms/copy/95578.cc: Likewise.
2892 * testsuite/25_algorithms/copy/constexpr.cc: Likewise.
2893 * testsuite/25_algorithms/copy/constrained.cc: Likewise.
2894 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
2895 * testsuite/25_algorithms/copy_backward/95578.cc: Likewise.
2896 * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
2897 * testsuite/25_algorithms/copy_backward/constrained.cc:
2899 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
2901 * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise.
2902 * testsuite/25_algorithms/copy_if/constrained.cc: Likewise.
2903 * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise.
2904 * testsuite/25_algorithms/copy_n/constrained.cc: Likewise.
2905 * testsuite/25_algorithms/count/constexpr.cc: Likewise.
2906 * testsuite/25_algorithms/count/constrained.cc: Likewise.
2907 * testsuite/25_algorithms/count_if/constexpr.cc: Likewise.
2908 * testsuite/25_algorithms/count_if/constrained.cc: Likewise.
2909 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
2910 * testsuite/25_algorithms/equal/95578.cc: Likewise.
2911 * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
2912 * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
2913 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
2914 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
2916 * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
2917 * testsuite/25_algorithms/equal_range/constrained.cc: Likewise.
2918 * testsuite/25_algorithms/fill/94017.cc: Likewise.
2919 * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
2920 * testsuite/25_algorithms/fill/constrained.cc: Likewise.
2921 * testsuite/25_algorithms/fill_n/94017.cc: Likewise.
2922 * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise.
2923 * testsuite/25_algorithms/fill_n/constrained.cc: Likewise.
2924 * testsuite/25_algorithms/find/constexpr.cc: Likewise.
2925 * testsuite/25_algorithms/find/constrained.cc: Likewise.
2926 * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
2927 * testsuite/25_algorithms/find_end/constrained.cc: Likewise.
2928 * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise.
2929 * testsuite/25_algorithms/find_first_of/constrained.cc:
2931 * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
2932 * testsuite/25_algorithms/find_if/constrained.cc: Likewise.
2933 * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise.
2934 * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise.
2935 * testsuite/25_algorithms/for_each/constexpr.cc: Likewise.
2936 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
2937 * testsuite/25_algorithms/generate/constexpr.cc: Likewise.
2938 * testsuite/25_algorithms/generate/constrained.cc: Likewise.
2939 * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise.
2940 * testsuite/25_algorithms/generate_n/constrained.cc: Likewise.
2941 * testsuite/25_algorithms/heap/constrained.cc: Likewise.
2942 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
2943 * testsuite/25_algorithms/inplace_merge/constrained.cc:
2945 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
2946 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
2947 * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
2948 * testsuite/25_algorithms/is_partitioned/constrained.cc:
2950 * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
2951 * testsuite/25_algorithms/is_permutation/constrained.cc:
2953 * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
2954 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2955 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
2957 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2959 * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise.
2960 * testsuite/25_algorithms/lexicographical_compare/93972.cc:
2962 * testsuite/25_algorithms/lexicographical_compare/95578.cc:
2964 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
2966 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2968 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
2970 * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc:
2972 * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
2973 * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise.
2974 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
2976 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
2978 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
2980 * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise.
2981 * testsuite/25_algorithms/max/constrained.cc: Likewise.
2982 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
2983 * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
2984 * testsuite/25_algorithms/merge/constrained.cc: Likewise.
2985 * testsuite/25_algorithms/min/constrained.cc: Likewise.
2986 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
2987 * testsuite/25_algorithms/minmax/constrained.cc: Likewise.
2988 * testsuite/25_algorithms/minmax_element/constrained.cc:
2990 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
2991 * testsuite/25_algorithms/mismatch/constrained.cc: Likewise.
2992 * testsuite/25_algorithms/move/93872.cc: Likewise.
2993 * testsuite/25_algorithms/move/95578.cc: Likewise.
2994 * testsuite/25_algorithms/move/constexpr.cc: Likewise.
2995 * testsuite/25_algorithms/move/constrained.cc: Likewise.
2996 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2997 * testsuite/25_algorithms/move_backward/95578.cc: Likewise.
2998 * testsuite/25_algorithms/move_backward/constrained.cc:
3000 * testsuite/25_algorithms/next_permutation/constexpr.cc:
3002 * testsuite/25_algorithms/next_permutation/constrained.cc:
3004 * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
3005 * testsuite/25_algorithms/none_of/constrained.cc: Likewise.
3006 * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise.
3007 * testsuite/25_algorithms/nth_element/constrained.cc: Likewise.
3008 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
3009 * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
3010 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
3012 * testsuite/25_algorithms/partial_sort_copy/constrained.cc:
3014 * testsuite/25_algorithms/partition/constexpr.cc: Likewise.
3015 * testsuite/25_algorithms/partition/constrained.cc: Likewise.
3016 * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
3017 * testsuite/25_algorithms/partition_copy/constrained.cc:
3019 * testsuite/25_algorithms/partition_point/constexpr.cc:
3021 * testsuite/25_algorithms/partition_point/constrained.cc:
3023 * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise.
3024 * testsuite/25_algorithms/prev_permutation/constexpr.cc:
3026 * testsuite/25_algorithms/prev_permutation/constrained.cc:
3028 * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise.
3029 * testsuite/25_algorithms/remove/constexpr.cc: Likewise.
3030 * testsuite/25_algorithms/remove/constrained.cc: Likewise.
3031 * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
3032 * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise.
3033 * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
3034 * testsuite/25_algorithms/remove_copy_if/constrained.cc:
3036 * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
3037 * testsuite/25_algorithms/remove_if/constrained.cc: Likewise.
3038 * testsuite/25_algorithms/replace/constrained.cc: Likewise.
3039 * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise.
3040 * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise.
3041 * testsuite/25_algorithms/replace_copy_if/constexpr.cc:
3043 * testsuite/25_algorithms/replace_copy_if/constrained.cc:
3045 * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
3046 * testsuite/25_algorithms/replace_if/constrained.cc: Likewise.
3047 * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
3048 * testsuite/25_algorithms/reverse/constrained.cc: Likewise.
3049 * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
3050 * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise.
3051 * testsuite/25_algorithms/rotate/constexpr.cc: Likewise.
3052 * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
3053 * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
3054 * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
3055 * testsuite/25_algorithms/sample/constrained.cc: Likewise.
3056 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
3057 * testsuite/25_algorithms/search/constrained.cc: Likewise.
3058 * testsuite/25_algorithms/search_n/97828.cc: Likewise.
3059 * testsuite/25_algorithms/search_n/constexpr.cc: Likewise.
3060 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
3061 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
3062 * testsuite/25_algorithms/set_difference/constrained.cc:
3064 * testsuite/25_algorithms/set_intersection/constexpr.cc:
3066 * testsuite/25_algorithms/set_intersection/constrained.cc:
3068 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
3070 * testsuite/25_algorithms/set_symmetric_difference/constrained.cc:
3072 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
3073 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
3074 * testsuite/25_algorithms/shift_left/1.cc: Likewise.
3075 * testsuite/25_algorithms/shift_right/1.cc: Likewise.
3076 * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
3077 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
3078 * testsuite/25_algorithms/sort/constrained.cc: Likewise.
3079 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
3080 * testsuite/25_algorithms/stable_partition/constrained.cc:
3082 * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
3083 * testsuite/25_algorithms/swap/constexpr.cc: Likewise.
3084 * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise.
3085 * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise.
3086 * testsuite/25_algorithms/transform/constexpr.cc: Likewise.
3087 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
3088 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
3089 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
3090 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
3091 * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise.
3092 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
3093 * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise.
3094 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
3096 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
3098 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
3101 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3103 * testsuite/std/concepts/1.cc: Remove dg-options.
3104 * testsuite/std/concepts/2.cc: Likewise.
3105 * testsuite/std/concepts/concepts.callable/invocable.cc:
3107 * testsuite/std/concepts/concepts.callable/regular_invocable.cc:
3109 * testsuite/std/concepts/concepts.callable/relation.cc:
3111 * testsuite/std/concepts/concepts.callable/strictweakorder.cc:
3113 * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise.
3114 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise.
3115 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise.
3116 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise.
3117 * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc:
3119 * testsuite/std/concepts/concepts.lang/concept.common/1.cc:
3121 * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc:
3123 * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise.
3124 * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
3126 * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise.
3127 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise.
3128 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise.
3129 * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
3131 * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise.
3132 * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise.
3133 * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
3135 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise.
3136 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise.
3137 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise.
3138 * testsuite/std/concepts/concepts.object/copyable.cc: Likewise.
3139 * testsuite/std/concepts/concepts.object/movable.cc: Likewise.
3140 * testsuite/std/concepts/concepts.object/regular.cc: Likewise.
3141 * testsuite/std/concepts/concepts.object/semiregular.cc:
3143 * testsuite/std/ranges/97600.cc: Likewise.
3144 * testsuite/std/ranges/access/101782.cc: Likewise.
3145 * testsuite/std/ranges/access/begin.cc: Likewise.
3146 * testsuite/std/ranges/access/begin_neg.cc: Likewise.
3147 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3148 * testsuite/std/ranges/access/cdata.cc: Likewise.
3149 * testsuite/std/ranges/access/cend.cc: Likewise.
3150 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3151 * testsuite/std/ranges/access/crend.cc: Likewise.
3152 * testsuite/std/ranges/access/data.cc: Likewise.
3153 * testsuite/std/ranges/access/empty.cc: Likewise.
3154 * testsuite/std/ranges/access/end.cc: Likewise.
3155 * testsuite/std/ranges/access/end_neg.cc: Likewise.
3156 * testsuite/std/ranges/access/lwg3467.cc: Likewise.
3157 * testsuite/std/ranges/access/p2602.cc: Likewise.
3158 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3159 * testsuite/std/ranges/access/rend.cc: Likewise.
3160 * testsuite/std/ranges/access/size.cc: Likewise.
3161 * testsuite/std/ranges/access/size_neg.cc: Likewise.
3162 * testsuite/std/ranges/access/ssize.cc: Likewise.
3163 * testsuite/std/ranges/adaptors/100479.cc: Likewise.
3164 * testsuite/std/ranges/adaptors/100577.cc: Likewise.
3165 * testsuite/std/ranges/adaptors/93978.cc: Likewise.
3166 * testsuite/std/ranges/adaptors/95322.cc: Likewise.
3167 * testsuite/std/ranges/adaptors/99433.cc: Likewise.
3168 * testsuite/std/ranges/adaptors/all.cc: Likewise.
3169 * testsuite/std/ranges/adaptors/common.cc: Likewise.
3170 * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
3172 * testsuite/std/ranges/adaptors/counted.cc: Likewise.
3173 * testsuite/std/ranges/adaptors/detail/copyable_box.cc:
3175 * testsuite/std/ranges/adaptors/drop.cc: Likewise.
3176 * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
3177 * testsuite/std/ranges/adaptors/elements.cc: Likewise.
3178 * testsuite/std/ranges/adaptors/filter.cc: Likewise.
3179 * testsuite/std/ranges/adaptors/join.cc: Likewise.
3180 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
3181 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
3182 * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise.
3183 * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise.
3184 * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise.
3185 * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise.
3186 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
3187 * testsuite/std/ranges/adaptors/p2281.cc: Likewise.
3188 * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise.
3189 * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
3190 * testsuite/std/ranges/adaptors/sizeof.cc: Likewise.
3191 * testsuite/std/ranges/adaptors/split.cc: Likewise.
3192 * testsuite/std/ranges/adaptors/take.cc: Likewise.
3193 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
3194 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3195 * testsuite/std/ranges/empty_view.cc: Likewise.
3196 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
3197 * testsuite/std/ranges/iota/difference_type.cc: Likewise.
3198 * testsuite/std/ranges/iota/iota_view.cc: Likewise.
3199 * testsuite/std/ranges/iota/iterator.cc: Likewise.
3200 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
3201 * testsuite/std/ranges/iota/max_size_type.cc: Likewise.
3202 * testsuite/std/ranges/istream_view.cc: Likewise.
3203 * testsuite/std/ranges/p2259.cc: Likewise.
3204 * testsuite/std/ranges/p2325.cc: Likewise.
3205 * testsuite/std/ranges/p2367.cc: Likewise.
3206 * testsuite/std/ranges/range.cc: Likewise.
3207 * testsuite/std/ranges/refinements.cc: Likewise.
3208 * testsuite/std/ranges/safe_range.cc: Likewise.
3209 * testsuite/std/ranges/safe_range_types.cc: Likewise.
3210 * testsuite/std/ranges/single_view.cc: Likewise.
3211 * testsuite/std/ranges/sized.cc: Likewise.
3212 * testsuite/std/ranges/subrange/1.cc: Likewise.
3213 * testsuite/std/ranges/subrange/97512.cc: Likewise.
3214 * testsuite/std/ranges/subrange/constexpr.cc: Likewise.
3215 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise.
3216 * testsuite/std/ranges/subrange/lwg3286.cc: Likewise.
3217 * testsuite/std/ranges/subrange/lwg3433.cc: Likewise.
3218 * testsuite/std/ranges/subrange/sizeof.cc: Likewise.
3219 * testsuite/std/ranges/subrange/tuple_like.cc: Likewise.
3220 * testsuite/std/ranges/view.cc: Likewise.
3222 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3224 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
3226 * testsuite/23_containers/span/contiguous_range_neg.cc:
3228 * testsuite/23_containers/span/everything.cc: Likewise.
3230 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3232 * testsuite/24_iterators/reverse_iterator/100639.cc: Remove
3233 dg-options and add dg-add-options strict_std.
3234 * testsuite/std/ranges/iota/93267.cc: Likewise.
3235 * testsuite/std/ranges/iota/96042.cc: Likewise.
3236 * testsuite/std/ranges/iota/size.cc: Likewise.
3237 * testsuite/std/ranges/subrange/96042.cc: Likewise.
3239 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3241 * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc:
3242 Replace dg-options -std=c++17 with dg-add-options strict_std.
3243 * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc:
3246 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3248 * testsuite/23_containers/deque/48101-2_neg.cc: Replace
3249 dg-options with target selector.
3250 * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise.
3251 * testsuite/23_containers/list/48101-2_neg.cc: Likewise.
3252 * testsuite/23_containers/map/48101-2_neg.cc: Likewise.
3253 * testsuite/23_containers/map/48101_neg.cc: Likewise.
3254 * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise.
3255 * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
3256 * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise.
3257 * testsuite/23_containers/set/48101-2_neg.cc: Likewise.
3258 * testsuite/23_containers/unordered_map/48101-2_neg.cc:
3260 * testsuite/23_containers/unordered_multimap/48101-2_neg.cc:
3262 * testsuite/23_containers/unordered_multiset/48101-2_neg.cc:
3264 * testsuite/23_containers/unordered_set/48101-2_neg.cc:
3266 * testsuite/23_containers/vector/48101-2_neg.cc: Likewise.
3268 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3270 * doc/xml/manual/test.xml: Update documentation on running and
3272 * doc/html/manual/test.html: Regenerate.
3273 * testsuite/Makefile.am: Add v3-use-std-list to site.tmp
3274 * testsuite/Makefile.in: Regenerate.
3275 * testsuite/lib/dg-options.exp (add_options_for_strict_std): New
3277 * testsuite/lib/libstdc++.exp (search_for): New utility proc.
3278 (v3-dg-runtest): New proc to replace dg-runtest.
3279 * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest.
3281 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3283 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
3284 Fix test to work for C++23 and C++26 too.
3286 2023-09-15 Patrick Palka <ppalka@redhat.com>
3288 * include/std/bit: Include <concepts>.
3289 (byteswap): Use a type-constraint instead of enable_if_t
3290 inside the return type, and use std::integral.
3291 (_If_is_unsigned_integer): Replace with ...
3292 (__unsigned_integer): ... this.
3293 (rotl): Use a type-constraint instead of enable_if_t inside
3295 (countl_zero): Likewise.
3296 (countl_one): Likewise.
3297 (countr_zero): Likewise.
3298 (countr_one): Likewise.
3299 (popcount): Likewise.
3300 (has_single_bit): Likewise.
3301 (bit_ceil): Likewise.
3302 (bit_floor): Likewise.
3303 (bit_width): Likewise.
3305 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3307 * include/std/variant (variant): Remove derivation from
3308 _Enable_default_constructor base class.
3309 (variant::variant()): Constrain.
3310 * testsuite/20_util/variant/default_ctor.cc: New test.
3312 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3315 * include/std/variant (get<T>): Remove !is_void static
3318 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
3320 * include/bits/version.def (to_chars): Define new value for
3322 * include/bits/version.h: Regenerate.
3323 * include/std/charconv (to_chars_result::operator bool): New
3325 (from_chars_result::operator bool): New function.
3326 * testsuite/20_util/to_chars/version.cc: Update expected value.
3327 * testsuite/20_util/from_chars/result.cc: New test.
3328 * testsuite/20_util/to_chars/result.cc: New test.
3330 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
3333 * testsuite/20_util/integer_sequence/pr111357.cc: New test.
3335 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
3337 * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use
3338 dg-additional-files. Remove @require@ and @diff@ comments.
3339 * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
3340 * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise.
3341 * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise.
3342 * testsuite/lib/dg-options.exp (v3_additional_files): New
3344 (dg-additional-files): New proc.
3345 * testsuite/lib/libstdc++.exp (v3_target_compile): Copy
3346 additional files to test directory.
3348 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
3350 * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]:
3351 Use a plain integer for _M_work_count for single-threaded
3353 * include/experimental/memory_resource (__get_default_resource)
3354 [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for
3355 single-threaded targets.
3356 * src/c++17/default_resource.h: Adjust preprocessor conditions
3357 to match memory_resource.cc.
3358 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
3359 (atomic_mem_res): Use unsynchronized type for single-threaded
3362 2023-09-14 Christophe Lyon <christophe.lyon@linaro.org>
3364 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
3365 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
3366 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
3367 * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
3368 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
3369 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
3370 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
3371 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
3373 2023-09-14 François Dumont <fdumont@gcc.gnu.org>
3375 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
3376 { dg-require-normal-namespace "" }.
3378 2023-09-13 François Dumont <fdumont@gcc.gnu.org>
3380 * include/std/format (std::__format::_Arg_store): Explicit version
3381 namespace on make_format_args friend declaration.
3383 2023-09-12 Patrick Palka <ppalka@redhat.com>
3386 * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define
3387 a deleted fallback operator() overload. Constrain both the
3388 enabled and deleted overloads accordingly.
3389 * testsuite/20_util/function_objects/not_fn/111327.cc: New test.
3391 2023-09-12 Patrick Palka <ppalka@redhat.com>
3394 * include/std/functional (_Bind_front::operator()): Add deleted
3395 fallback overloads for each const/ref qualifier pair. Give the
3396 enabled overloads dummy constraints to make each one more
3397 specialized than the corresponding deleted overload.
3398 * testsuite/20_util/function_objects/bind_front/111327.cc: New test.
3400 2023-09-12 Patrick Palka <ppalka@redhat.com>
3402 * include/std/functional (_Bind_front0): Remove.
3403 (_Bind_front_t): Adjust.
3405 2023-09-12 Jonathan Wakely <jwakely@redhat.com>
3407 * python/libstdcxx/v6/printers.py: Reformat.
3408 * python/libstdcxx/v6/xmethods.py: Likewise.
3410 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
3412 * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
3414 (reset_sequence_ptr): New function.
3415 (_Safe_iterator_base::_M_detach)
3416 (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
3417 with acquire_sequence_ptr_for_lock.
3418 (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
3421 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
3423 * src/c++11/Makefile.am: Add new file.
3424 * src/c++11/Makefile.in: Regenerate.
3425 * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
3426 * src/c++11/assert_fail.cc: New file.
3428 2023-09-11 Ken Matsui <kmatsui@gcc.gnu.org>
3430 * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef.
3431 (_GLIBCXX_USE_BUILTIN_TRAIT): Define.
3433 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
3435 * include/bits/version.def (__cpp_lib_formatters): Define.
3436 * include/bits/version.h: Regenerate.
3437 * include/std/stacktrace (formatter<stacktrace_entry>)
3438 (formatter<basic_stacktrace<Alloc>>): Define.
3439 * include/std/thread (formatter<thread::id, charT>): Define.
3440 * testsuite/19_diagnostics/stacktrace/output.cc: New test.
3441 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
3442 std::formatter specializations.
3443 * testsuite/19_diagnostics/stacktrace/version.cc: Check
3444 __cpp_lib_formatters macro.
3445 * testsuite/30_threads/thread/id/hash.cc: Remove gthreads
3447 * testsuite/30_threads/thread/id/operators.cc: Likewise.
3448 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
3449 * testsuite/30_threads/thread/id/output.cc: New test.
3451 2023-09-11 Pekka Seppänen <pexu@gcc.mail.kapsi.fi>
3453 * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute.
3454 * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise.
3455 * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
3457 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
3459 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory.
3460 * configure: Regenerate.
3461 * doc/html/manual/*: Regenerate.
3462 * doc/xml/manual/using.xml: Update documentation on linking.
3463 * include/std/stacktrace: Remove declarations of libbacktrace
3465 (stacktrace_entry::_S_err_handler, stacktrace_entry::_S_init):
3467 (stacktrace_entry::_Info): New class.
3468 (stacktrace_entry::_M_get_info): Use _Info.
3469 (__stacktrace_impl): New class.
3470 (basic_stacktrace): Derive from __stacktrace_impl.
3471 (basic_stacktrace::current): Use __stacktrace_impl::_S_current.
3472 * scripts/testsuite_flags.in: Adjust LDFLAGS to find
3473 libstdc++exp instead of libstdc++_libbacktrace.
3474 * src/Makefile.am (SUBDIRS): Add c++23 directory.
3475 * src/Makefile.in: Regenerate.
3476 * src/c++20/Makefile.am: Fix comment.
3477 * src/c++20/Makefile.in: Regenerate.
3478 * src/c++23/Makefile.am: New file.
3479 * src/c++23/Makefile.in: New file.
3480 * src/c++23/stacktrace.cc: New file with definitions of
3481 stacktrace_entry::_Info and __stacktrace_impl members.
3482 * src/experimental/Makefile.am: Use LIBADD to include other
3484 * src/experimental/Makefile.in: Regenerate.
3485 * src/libbacktrace/Makefile.am: Use noinst_LTLIBRARIES.
3486 * src/libbacktrace/Makefile.in: Regenerate.
3487 * testsuite/19_diagnostics/stacktrace/current.cc: Adjust
3488 dg-options to use -lstdc++exp.
3489 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
3490 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
3491 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
3494 2023-09-08 Alexey Lapshin <alexey.lapshin@espressif.com>
3496 * src/libbacktrace/Makefile.am: Remove -Werror.
3497 * src/libbacktrace/Makefile.in: Regenerate.
3499 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
3501 * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe.
3502 * testsuite/Makefile.in: Regenerate.
3504 2023-09-08 Yang Yujie <yangyujie@loongson.cn>
3506 * configure.host: Register t-loongarch in tmake_file.
3507 * config/cpu/loongarch/t-loongarch: New file. Manually refresh
3508 MULTISUBDIR with $(shell $(CXX) --print-multi-directory).
3510 2023-09-07 Bruno Victal <mirai@makinata.eu>
3512 * acinclude.m4: Update docbook xsl URI.
3513 * configure: Regenerate.
3515 2023-09-07 Bruno Victal <mirai@makinata.eu>
3517 * doc/Makefile.am: Fix 'doc-install-info' rule.
3518 Fix typo in commment.
3519 * doc/Makefile.in: Regenerate.
3521 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3523 * testsuite/27_io/filesystem/path/concat/94063.cc: Simplify
3524 dg-do target selector.
3526 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3528 * testsuite/config/default.exp: Remove trailing whitespace.
3529 * testsuite/lib/dg-options.exp: Likewise.
3530 * testsuite/lib/prune.exp: Likewise.
3531 * testsuite/libstdc++-abi/abi.exp: Likewise.
3532 * testsuite/libstdc++-dg/conformance.exp: Likewise.
3533 * testsuite/libstdc++-prettyprinters/prettyprinters.exp:
3535 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
3536 * testsuite/lib/libstdc++.exp: Likewise.
3537 (check_v3_target_c_std): Fix filename for temporary source file.
3539 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3541 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
3542 chmod, chdir, and getcwd.
3543 * config.h.in: Regenerate.
3544 * configure: Regenerate.
3545 * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
3546 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
3547 (fs::permissions): Use USE_CHMOD macro.
3548 * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
3549 (chmod, mkdir, getcwd, chdir): Define new macros.
3550 [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
3552 * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
3553 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
3554 (fs::permissions): Use USE_CHMOD macro.
3556 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3558 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3560 * configure: Regenerate.
3562 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3564 * testsuite/23_containers/unordered_map/operations/1.cc: Add
3565 dg-options for C++20 mode.
3566 * testsuite/23_containers/unordered_multimap/operations/1.cc:
3568 * testsuite/23_containers/unordered_multiset/operations/1.cc:
3570 * testsuite/23_containers/unordered_set/operations/1.cc:
3572 * testsuite/std/time/parse.cc: Move dg-options before dg-do.
3574 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3576 * testsuite/std/ranges/access/cbegin.cc: Adjust for C++23
3578 * testsuite/std/ranges/access/cdata.cc: Likewise.
3579 * testsuite/std/ranges/access/cend.cc: Likewise.
3580 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3581 * testsuite/std/ranges/access/crend.cc: Likewise.
3582 * testsuite/std/ranges/adaptors/take.cc: Likewise.
3583 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
3584 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3586 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3588 * include/bits/iterator_concepts.h (__imove::iter_move): Define
3589 poison pill as deleted for consistency.
3590 (__access::begin): Replace with a single declaration.
3591 * include/bits/ranges_base.h (__access::end, __access::rbegin)
3592 (__access::rend, __access::size): Likewise.
3593 * include/bits/version.def (ranges): Update value for C++23.
3594 * include/bits/version.h: Regenerate.
3595 * libsupc++/compare (__compare): Add missing poison pill
3597 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3598 of __cpp_lib_ranges.
3599 * testsuite/std/ranges/access/p2602.cc: New test.
3601 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3603 * include/bits/iterator_concepts.h (ranges::__cust_imove):
3604 Rename to ranges::__imove.
3605 (_IMove): Rename to _IterMove.
3606 (ranges::__cust_iswap): Rename to ranges::__iswap.
3607 (ranges::__cust): Rename to ranges::_Cpo.
3608 (ranges::__cust_access): Rename to ranges::__access.
3609 * include/bits/ranges_base.h (ranges::__cust_access): Rename to
3611 (ranges::__cust): Rename to ranges::_Cpo.
3612 * include/std/concepts (ranges::__cust_swap): Rename to
3614 (ranges::__cust): Rename to ranges::_Cpo.
3615 * libsupc++/compare (__cmp_cust): Rename to __compare.
3616 (__cmp_algo): Rename to _Cpo.
3618 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3620 * include/bits/version.def (ranges): Update value.
3621 * include/bits/version.h: Regenerate.
3622 * include/std/ranges (__detail::__boxable): Use
3623 move_constructible instead of copy_constructible for C++23.
3624 (__detail::__box<T>): Adjust constraints for partial
3626 (single_view, transform_view): Use __box_constructible instead
3627 of copy_constructible in constraints.
3628 (zip_transform_view, adjacent_transform_view, repeat_view): Use
3629 move_constructible instead of copy_constructible in constraints.
3630 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Check
3631 construction from move-only argument.
3632 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3633 * testsuite/std/ranges/repeat/1.cc: Likewise.
3634 * testsuite/std/ranges/single_view.cc: Likewise.
3635 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
3636 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3637 of __cpp_lib_ranges.
3639 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3641 * testsuite/util/testsuite_iterators.h (is_customization_point_object):
3642 Remove parameter name.
3644 2023-09-06 Jonathan Wakely <jwakely@redhat.com>
3646 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3648 * configure: Regenerate.
3650 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3653 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3656 * configure: Regenerate.
3657 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3658 non-Canadian builds.
3660 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3663 * configure: Regenerate.
3664 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3665 non-Canadian builds.
3667 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3669 * testsuite/26_numerics/complex/literals/types.cc: Remove
3670 dg-options and add target selector instead.
3672 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3674 * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
3675 and qualify ambiguous calls to get.
3676 * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
3677 expected result for std::pow(float, int) as per DR 550.
3679 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3681 * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
3682 and add dg-warning for deprecation warnings.
3683 * testsuite/20_util/auto_ptr/2.cc: Likewise.
3684 * testsuite/20_util/auto_ptr/3.cc: Likewise.
3685 * testsuite/20_util/auto_ptr/3946.cc: Likewise.
3686 * testsuite/20_util/auto_ptr/4.cc: Likewise.
3687 * testsuite/20_util/auto_ptr/5.cc: Likewise.
3688 * testsuite/20_util/auto_ptr/6.cc: Likewise.
3689 * testsuite/20_util/auto_ptr/7.cc: Likewise.
3690 * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
3691 * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
3693 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
3695 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
3697 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
3699 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
3701 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
3703 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
3706 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3709 * testsuite/23_containers/vector/26412-1.cc: Moved to...
3710 * testsuite/23_containers/vector/26142-1.cc: ...here.
3711 * testsuite/23_containers/vector/26412-2.cc: Moved to...
3712 * testsuite/23_containers/vector/26142-2.cc: ...here.
3714 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3716 * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
3717 * testsuite/26_numerics/complex/56111.cc: Likewise.
3719 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3721 * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
3722 Add dg-options to restrict the test to C++98 mode.
3723 * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
3726 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3728 * testsuite/20_util/expected/bad.cc: Add missing target
3731 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3733 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
3735 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
3738 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3740 * testsuite/27_io/filesystem/iterators/91067.cc: Add
3741 -Wno-self-move to options.
3742 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3744 2023-09-01 Vladimir Palevich <palevichva@gmail.com>
3747 * include/bits/vector.tcc (_M_realloc_insert): End guard
3748 lifetime just before assignment to class members.
3749 (_M_default_append): Likewise.
3751 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3753 * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
3754 Use __resize_and_overwrite to fill buffer.
3755 (fs::read_symlink) [HAVE_READLINK]: Likewise.
3756 * src/filesystem/ops-common.h (get_temp_directory_from_env)
3757 [FILESYSTEM_IS_WINDOWS]: Likewise.
3759 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3762 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
3763 Add _AtomicRef non-type template parameter and use a loop if it
3765 (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
3766 (__atomic_impl::compare_exchange_strong): Likewise.
3767 (atomic_ref::compare_exchange_weak): Use true for NTTP.
3768 (atomic_ref::compare_exchange_strong): Use true for NTTP.
3769 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
3770 Fix test to not rely on atomic_ref::load() to return an object
3771 with padding preserved.
3773 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3775 * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
3778 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3780 * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
3781 for POSIX readlink before using filesystem::read_symlink.
3783 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3785 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
3786 * configure: Regenerate.
3788 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3790 * include/bits/chrono_io.h (_Parser::operator()): Set failbit
3791 early if invalid values are read when _M_need & _TimeOfDay is
3793 * testsuite/std/time/parse.cc: Check that "25:59" cannot be
3796 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3799 * include/bits/chrono_io.h (_Parser::Operator()): Check %C
3800 values are in range of year::min() to year::max().
3801 * testsuite/std/time/parse.cc: Check out of range centuries.
3803 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3805 * include/std/format (__format::_Sink::_M_reset): Change second
3806 argument from iterator to offset.
3808 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3811 * testsuite/std/format/string.cc: Check wide character format
3812 strings with out-of-range widths.
3814 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3817 * include/std/format (__format::__parse_integer): Check for
3820 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3822 * testsuite/std/format/functions/format_to.cc: Avoid warning for
3825 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3827 * include/std/atomic: Add comment to #ifdef and fix indentation.
3828 * include/std/ostream: Check __glibcxx_syncbuf instead of
3829 __cplusplus and _GLIBCXX_HOSTED.
3830 * include/std/thread: Add comment to #ifdef.
3832 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3834 * include/bits/version.def (__cpp_lib_ratio): Define.
3835 * include/bits/version.h: Regenerate.
3836 * include/std/ratio (quecto, ronto, yocto, zepto)
3837 (zetta, yotta, ronna, quetta): Define.
3838 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
3839 dg-error line numbers.
3841 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3843 * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
3845 * testsuite/libstdc++-prettyprinters/locale.cc: New test.
3847 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3850 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
3851 not show template arguments.
3852 (StdVariantPrinter): Likewise.
3853 * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
3855 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3856 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3858 2023-08-23 François Dumont <fdumont@gcc.gnu.org>
3860 * testsuite/util/replacement_memory_operators.h
3861 (counter::scope): New, capture and reset counter count at construction and
3862 restore it at destruction.
3863 (counter::check_new): Add scope instantiation.
3864 * testsuite/23_containers/unordered_map/96088.cc (main):
3865 Add counter::scope instantiation.
3866 * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
3867 * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
3868 * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
3869 * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
3870 * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
3871 * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
3872 * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
3873 (operator new(size_t)): Check started.
3874 (main): Set/Unset started.
3875 * testsuite/17_intro/no_library_allocation.cc: New test case.
3877 2023-08-21 Jonathan Wakely <jwakely@redhat.com>
3879 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3880 Call std::set_terminate before throwing the nested exception.
3882 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3885 * include/std/format (formatter): Only define specializations
3886 for 16-bit floating-point types for C++23.
3887 * include/std/limits (numeric_limits): Likewise.
3889 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3891 * include/bits/chrono_io.h (operator<<): Make uses of wide
3892 strings with streams and std::format type-dependent on _CharT.
3893 * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
3894 __to_wstring_numeric.
3896 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3898 * include/bits/chrono_io.h (operator<<): Use __format_context.
3899 * include/std/format (__format::__format_context): New alias
3901 [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
3904 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3907 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3909 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3910 double overload for long double if possible.
3912 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3914 * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
3917 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3919 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3920 double overload for long double if possible.
3922 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3924 * src/c++98/localename.cc (is_C_locale): New function.
3925 (locale::locale(const char*)): Use is_C_locale.
3927 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3930 * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
3931 Dispatch to _M_replace or move assignment from a temporary,
3932 based on the iterator type.
3934 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3936 * include/std/format (formatter): Add partial specializations
3937 for extended floating-point types.
3938 * testsuite/std/format/functions/format.cc: Move test_float128()
3940 * testsuite/std/format/formatter/ext_float.cc: New test.
3942 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3944 * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
3945 whenever __BFLT16_DIG__ is defined, not only for C++23.
3946 * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
3947 (numeric_limits<_Float16>, numeric_limits<_Float32>)
3948 (numeric_limits<_Float64>): Likewise for other extended
3949 floating-point types.
3951 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3953 * include/experimental/internet (address_v4::to_string): Remove
3954 unused parameter name.
3956 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3958 * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
3959 * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
3960 excess errors caused by invalid consteval calls.
3962 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3964 * include/bits/chrono_io.h (__units_suffix_misc): Remove.
3965 (__units_suffix): Return a known suffix as string view, do not
3966 write unknown suffixes to a buffer.
3967 (__fmt_units_suffix): New function that formats the suffix using
3969 (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
3970 (__chrono_formatter::_M_Z): Correct lifetime of wstring.
3972 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3974 * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
3975 string formatters with this macro.
3976 (__formatter_int::_M_format_int, __formatter_fp::format)
3977 (formatter<const void*, C>::format): Use __to_wstring_numeric
3978 instead of std::ctype::widen.
3979 (__formatter_fp::_M_localize): Use hardcoded wchar_t values
3980 instead of std::ctype::widen.
3981 * testsuite/std/format/functions/format.cc: Add more checks for
3982 wstring formatting of arithmetic types.
3984 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3986 * include/bits/basic_string.h (to_string(floating-point-type)):
3987 Implement using std::to_chars for C++26.
3988 * include/bits/version.def (__cpp_lib_to_string): Define.
3989 * include/bits/version.h: Regenerate.
3990 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
3991 Adjust expected result in C++26 mode.
3992 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
3994 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
3996 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
3998 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
4000 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
4002 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
4005 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4007 * include/bits/basic_string.h (to_string(integral-type)): Use
4008 resize_and_overwrite when available.
4009 (__to_wstring_numeric): New helper functions.
4010 (to_wstring): Use std::to_string then __to_wstring_numeric.
4011 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
4012 Remove check for no excess capacity.
4014 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4016 * include/bits/basic_string.h (__resize_and_overwrite): New
4018 * include/bits/basic_string.tcc (__resize_and_overwrite): New
4020 (resize_and_overwrite): Simplify by using reserve instead of
4021 growing the string manually. Adjust for C++11 compatibility.
4022 * include/bits/cow_string.h (resize_and_overwrite): New
4024 (__resize_and_overwrite): New function.
4025 * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
4026 Do not depend on cxx11abi.
4027 * include/bits/version.h: Regenerate.
4028 * include/std/format (__formatter_fp::_S_resize_and_overwrite):
4030 (__formatter_fp::format, __formatter_fp::_M_localize): Use
4031 __resize_and_overwrite instead of _S_resize_and_overwrite.
4032 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
4033 Adjust for C++11 compatibility when included by ...
4034 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
4037 2023-08-17 Patrick Palka <ppalka@redhat.com>
4039 * include/bits/regex.h (regex_iterator::iterator_concept):
4040 Define for C++20 as per P2770R0.
4041 (regex_token_iterator::iterator_concept): Likewise.
4042 * include/std/ranges (__detail::__as_lvalue): Define.
4043 (join_view::_Iterator): Befriend join_view.
4044 (join_view::_Iterator::_M_satisfy): Use _M_get_outer
4045 instead of _M_outer.
4046 (join_view::_Iterator::_M_get_outer): Define.
4047 (join_view::_Iterator::_Iterator): Split constructor taking
4048 _Parent argument into two as per P2770R0. Remove constraint on
4049 default constructor.
4050 (join_view::_Iterator::_M_outer): Make this data member present
4051 only when the underlying range is forward.
4052 (join_view::_Iterator::operator++): Use _M_get_outer instead of
4054 (join_view::_Iterator::operator--): Use __as_lvalue helper.
4055 (join_view::_Iterator::operator==): Adjust constraints as per
4057 (join_view::_Sentinel::__equal): Use _M_get_outer instead of
4059 (join_view::_M_outer): New data member when the underlying range
4061 (join_view::begin): Adjust definition as per P2770R0.
4062 (join_view::end): Likewise.
4063 (join_with_view::_M_outer_it): New data member when the
4064 underlying range is non-forward.
4065 (join_with_view::begin): Adjust definition as per P2770R0.
4066 (join_with_view::end): Likewise.
4067 (join_with_view::_Iterator::_M_outer_it): Make this data member
4068 present only when the underlying range is forward.
4069 (join_with_view::_Iterator::_M_get_outer): Define.
4070 (join_with_view::_Iterator::_Iterator): Split constructor
4071 taking _Parent argument into two as per P2770R0. Remove
4072 constraint on default constructor.
4073 (join_with_view::_Iterator::_M_update_inner): Adjust definition
4075 (join_with_view::_Iterator::_M_get_inner): Likewise.
4076 (join_with_view::_Iterator::_M_satisfy): Adjust calls to
4077 _M_get_inner. Use _M_get_outer instead of _M_outer_it.
4078 (join_with_view::_Iterator::operator==): Adjust constraints
4080 (join_with_view::_Sentinel::operator==): Use _M_get_outer
4081 instead of _M_outer_it.
4082 * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
4084 2023-08-17 Patrick Palka <ppalka@redhat.com>
4087 * include/std/ranges (__adaptor::_RangeAdaptorClosure):
4088 Convert into a CRTP class template. Move hidden operator|
4089 friends into namespace scope and adjust their constraints.
4090 (__closure::__is_range_adaptor_closure_fn): Define.
4091 (__closure::__is_range_adaptor_closure): Define.
4092 (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
4093 (__adaptor::_Pipe): Likewise.
4094 (views::_All): Likewise.
4095 (views::_Join): Likewise.
4096 (views::_Common): Likewise.
4097 (views::_Reverse): Likewise.
4098 (views::_Elements): Likewise.
4099 (views::_Adjacent): Likewise.
4100 (views::_AsRvalue): Likewise.
4101 (views::_Enumerate): Likewise.
4102 (views::_AsConst): Likewise.
4103 * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
4104 expecting that adding empty range adaptor closure objects to a
4105 pipeline doesn't increase the size of a pipeline.
4107 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4109 * include/std/format (__format::_Pres_type): Add _Pres_F.
4110 (__formatter_fp::parse): Use _Pres_F for 'F'.
4111 (__formatter_fp::format): Set __upper for _Pres_F.
4112 * testsuite/std/format/functions/format.cc: Check formatting of
4113 infinity and NaN for each presentation type.
4115 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4117 * include/Makefile.in: Regenerate.
4119 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4121 * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
4122 * testsuite/std/format/functions/format.cc: Likewise.
4123 * testsuite/std/format/functions/format_c++23.cc: Likewise.
4125 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
4127 * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
4128 any "-include bits/stdc++.h" from options and add the macro to
4129 the existing options instead of replacing them.
4131 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
4133 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
4134 the callable with the same size as resize_and_overwrite was
4136 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
4137 Check with small values for the new size.
4138 * testsuite/std/format/functions/format.cc: Check wide
4139 formatting of double values that produce small strings.
4140 * testsuite/std/format/functions/format_c++23.cc: New test.
4142 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
4144 * include/bits/version.def (stds): Update value for C++23.
4145 * include/bits/version.h: Regenerate.
4147 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
4149 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
4150 Fix name of upstream file this was derived from.
4151 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
4153 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
4155 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
4157 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
4159 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
4161 * libsupc++/typeinfo: Switch to bits/version.h for
4162 __cpp_lib_constexpr_typeinfo.
4163 * libsupc++/new: Switch to bits/version.h for
4164 __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
4165 (launder): Guard behind __cpp_lib_launder.
4166 (hardware_destructive_interference_size)
4167 (hardware_constructive_interference_size): Guard behind
4168 __cpp_lib_hardware_interference_size.
4169 * libsupc++/exception: Switch to bits/version.h for
4170 __cpp_lib_uncaught_exceptions.
4171 (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
4172 * libsupc++/compare: Switch to bits/version.h for
4173 __cpp_lib_three_way_comparison.
4174 (three_way_comparable, three_way_comparable_with)
4175 (compare_three_way, weak_order, strong_order, partial_order):
4176 Guard behind __cpp_lib_three_way_comparison >= 201907L.
4177 * include/std/chrono: Drop __cpp_lib_chrono definition.
4178 * include/std/vector: Switch to bits/version.h for
4180 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4181 * include/std/variant: Switch to bits/version.h for
4182 __cpp_lib_variant. Guard whole header behind that FTM.
4183 * include/std/utility: Switch to bits/version.h for
4184 __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
4185 __cpp_lib_{integer_comparison_functions,to_underlying}, and
4186 __cpp_lib_unreachable.
4187 (exchange): Guard behind __cpp_lib_exchange_function.
4188 (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
4189 (cmp_greater_equal, in_range): Guard behind
4190 __cpp_lib_integer_comparison_functions.
4191 (to_underlying): Guard behind __cpp_lib_to_underlying.
4192 (unreachable): Guard behind __cpp_lib_unreachable.
4193 * include/std/type_traits: Switch to bits/version.h for
4194 __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
4195 __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
4196 __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
4197 __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
4198 __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
4199 __cpp_lib_{type_identity,type_trait_variable_templates},
4200 __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
4201 __cpp_lib_{bool_constant,bounded_array_traits}, and
4202 __cpp_lib_has_unique_object_representations.
4203 (integral_constant::operator()): Guard behind
4204 __cpp_lib_integral_constant_callable.
4205 (bool_constant): Guard behind __cpp_lib_bool_constant.
4206 (conjunction, disjunction, negation, conjunction_v, disjunction_v)
4207 (negation_v): Guard behind __cpp_lib_logical_traits.
4208 (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
4209 (is_final): Guard behind __cpp_lib_is_final.
4210 (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
4211 __cpp_lib_is_nothrow_convertible.
4212 (remove_const_t, remove_volatile_t, remove_cv_t)
4213 (add_const_t, add_volatile_t, add_cv_t): Guard behind
4214 __cpp_lib_transformation_trait_aliases.
4215 (void_t): Guard behind __cpp_lib_void_t.
4216 (is_swappable_with_v, is_nothrow_swappable_with_v)
4217 (is_swappable_with, is_nothrow_swappable_with): Guard behind
4218 __cpp_lib_is_swappable.
4219 (is_nothrow_invocable_r, is_invocable_r, invoke_result)
4220 (is_invocable, invoke_result_t): Guard behind
4221 __cpp_lib_is_invocable.
4222 (alignment_of_v, extent_v, has_virtual_destructor_v)
4223 (is_abstract_v, is_arithmetic_v, is_array_v)
4224 (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
4225 (is_constructible_v, is_const_v, is_convertible_v)
4226 (is_copy_assignable_v, is_copy_constructible_v)
4227 (is_default_constructible_v, is_destructible_v)
4228 (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
4229 (is_function_v, is_fundamental_v, is_integral_v)
4230 (is_invocable_r_v, is_invocable_v, is_literal_type_v)
4231 (is_lvalue_reference_v, is_member_function_pointer_v)
4232 (is_member_object_pointer_v, is_member_pointer_v)
4233 (is_move_assignable_v, is_move_constructible_v)
4234 (is_nothrow_assignable_v, is_nothrow_constructible_v)
4235 (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
4236 (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
4237 (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
4238 (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
4239 (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
4240 (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
4241 (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
4242 (is_trivially_assignable_v, is_trivially_constructible_v)
4243 (is_trivially_copyable_v, is_trivially_copy_assignable_v)
4244 (is_trivially_copy_constructible_v)
4245 (is_trivially_default_constructible_v)
4246 (is_trivially_destructible_v, is_trivially_move_assignable_v)
4247 (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
4248 (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
4249 Guard behind __cpp_lib_type_trait_variable_templates.
4250 (has_unique_object_representations)
4251 (has_unique_object_representations_v): Guard behind
4252 __cpp_lib_has_unique_object_representation.
4253 (is_aggregate): Guard behind __cpp_lib_is_aggregate.
4254 (remove_cvref, remove_cvref_t): Guard behind
4255 __cpp_lib_remove_cvref.
4256 (type_identity, type_identity_t): Guard behind
4257 __cpp_lib_type_identity.
4258 (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
4259 (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
4260 (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
4261 (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
4262 (is_scoped_enum, is_scoped_enum_v): Guard behind
4263 __cpp_lib_is_scoped_enum.
4264 (reference_constructs_from_temporary)
4265 (reference_constructs_from_temporary_v): Guard behind
4266 __cpp_lib_reference_from_temporary.
4267 * include/std/tuple: Switch to bits/version.h for
4268 __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
4269 (get<T>): Guard behind __cpp_lib_tuple_by_type.
4270 (apply): Guard behind __cpp_lib_apply.
4271 (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
4272 * include/std/syncstream: Switch to bits/version.h for
4273 __cpp_lib_syncbuf. Guard header behind that FTM.
4274 * include/std/string_view: Switch to bits/version.h for
4275 __cpp_lib_{string_{view,contains},constexpr_string_view} and
4276 __cpp_lib_starts_ends_with.
4277 (basic_string_view::starts_with, basic_string_view::ends_with):
4278 Guard behind __cpp_lib_starts_ends_with.
4279 [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
4280 Assert as impossible ithout a bug in C++23.
4281 * include/std/string: Switch to bits/version.h for
4283 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4284 * include/std/thread: Switch to bits/version.h for
4286 * include/std/stop_token: Switch to bits/version.h for
4288 * include/std/spanstream: Switch to bits/version.h for
4289 __cpp_lib_spanstream. Guard header behind that FTM.
4290 * include/std/span: Switch to bits/version.h for __cpp_lib_span.
4291 Guard header behind that FTM.
4292 * include/std/source_location: Switch to bits/version.h for
4293 __cpp_lib_source_location. Guard header with that FTM.
4294 * include/std/shared_mutex: Switch to bits/version.h for
4295 __cpp_lib_shared{,_timed}_mutex.
4296 (shared_mutex): Guard behind __cpp_lib_shared_mutex.
4297 * include/std/semaphore: Switch to bits/version.h for
4298 __cpp_lib_semaphore. Guard header behind that FTM.
4299 * include/std/ranges: Switch to bits/version.h for
4300 __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
4301 __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
4302 and __cpp_lib_ranges_{as_const,enumerate,iota}.
4303 (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
4304 (ranges::chunk_by et al, ranges::join_with et al)
4305 (ranges::stride et al, ranges::cartesian_product et al)
4306 (ranges::as_rvalue et al, ranges::as_const et al)
4307 (ranges::enumerate et al): Guard behind appropriate FTM.
4308 * include/std/optional: Switch to bits/version.h for
4309 __cpp_lib_optional. Guard header behind that FTM.
4310 * include/std/numeric: Switch to bits/version.h for
4311 __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
4312 and __cpp_lib_parallel_algorithm.
4313 (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
4314 (midpoint): Guard behind __cpp_lib_interpolate.
4315 * include/std/numbers: Switch to bits/version.h for
4316 __cpp_lib_math_constants. Guard header behind that FTM.
4317 * include/std/mutex: Switch to bits/version.h for
4318 __cpp_lib_scoped_lock.
4319 (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
4320 * include/std/memory_resource: Switch to bits/version.h for
4321 __cpp_lib_{polymorphic_allocator,memory_resource}.
4322 (synchronized_pool_resource): Guard behind
4323 __cpp_lib_memory_resource >= 201603L.
4324 (polymorphic_allocator): Guard behind
4325 __cpp_lib_polymorphic_allocator.
4326 * include/std/memory: Switch to bits/version.h for
4327 __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
4328 * include/std/list: Switch to bits/version.h for
4330 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4331 * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
4332 Guard header behind that FTM.
4333 * include/std/iterator: Switch to bits/version.h for
4334 __cpp_lib_null_iterators.
4335 * include/std/iomanip: Switch to bits/version.h for
4336 __cpp_lib_quoted_string_io.
4337 (quoted): Guard behind __cpp_lib_quoted_string_io.
4338 * include/std/functional: Switch to bits/version.h for
4339 __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
4340 __cpp_lib_{not_fn,booyer_moore_searcher}.
4341 (invoke): Guard behind __cpp_lib_invoke.
4342 (invoke_r): Guard behind __cpp_lib_invoke_r.
4343 (bind_front): Guard behind __cpp_lib_bind_front.
4344 (not_fn): Guard behind __cpp_lib_not_fn.
4345 (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
4346 definition behind __cpp_lib_boyer_moore_searcher.
4347 * include/std/forward_list: Switch to bits/version.h for
4349 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4350 * include/std/format: Switch to bits/version.h for
4351 __cpp_lib_format. Guard header behind that FTM.
4352 * include/std/filesystem: Switch to bits/version.h for
4353 __cpp_lib_filesystem. Guard header behind that FTM.
4354 * include/std/expected: Switch to bits/version.h for
4355 __cpp_lib_expected. Guard header behind it.
4356 * include/std/execution: Switch to bits/version.h for
4357 __cpp_lib_{execution,parallel_algorithm}. Guard header behind
4359 * include/std/deque: Switch to bits/version.h for
4361 (erase, erase_if): Guard behind __cpp_lib_erase_if.
4362 * include/std/coroutine: Switch to bits/version.h for
4363 __cpp_lib_coroutine. Guard header behind that FTM.
4364 * include/std/concepts: Switch to bits/version.h for
4365 __cpp_lib_concepts. Guard header behind that FTM.
4366 * include/std/complex: Switch to bits/version.h for
4367 __cpp_lib_{complex_udls,constexpr_complex}.
4368 (operator""if, operator""i, operator""il): Guard behind
4369 __cpp_lib_complex_udls.
4370 * include/std/charconv: Swtich to bits/version.h for
4371 __cpp_lib_{to_chars,constexpr_charconv}.
4372 * include/std/bitset: Switch to bits/version.h for
4373 __cpp_lib_constexpr_bitset.
4374 * include/std/bit: Switch to bits/version.h for
4375 __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
4376 (bit_cast): Guard behind __cpp_lib_bit_cast.
4377 (byteswap): Guard behind __cpp_lib_byteswap.
4378 (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
4379 (popcount): Guard behind __cpp_lib_bitops.
4380 (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
4382 (endian): Guard behind __cpp_lib_endian.
4383 * include/std/barrier: Switch to bits/version.h for
4384 __cpp_lib_barrier. Guard header behind that FTM.
4385 * include/std/atomic: Switch to bits/version.h for
4386 __cpp_lib_atomic_{is_always_lock_free,float,ref}
4387 and __cpp_lib_lock_free_type_aliases.
4388 (*::is_always_lock_free): Guard behind
4389 __cpp_lib_atomic_is_always_lock_free.
4390 (atomic<float>): Guard behind __cpp_lib_atomic_float.
4391 (atomic_ref): Guard behind __cpp_lib_atomic_ref.
4392 (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
4393 __cpp_lib_atomic_lock_free_type_aliases.
4394 * include/std/array: Switch to bits/version.h for
4396 (to_array): Guard behind __cpp_lib_to_array.
4397 * include/std/any: Switch to bits/version.h for __cpp_lib_any.
4398 Guard header behind that FTM.
4399 * include/std/algorithm: Switch to bits/version.h for
4400 __cpp_lib_parallel_algorithm.
4401 * include/c_global/cstddef: Switch to bits/version.h for
4403 (byte): Guard behind __cpp_lib_byte.
4404 * include/c_global/cmath: Switch to bits/version.h for
4405 __cpp_lib_{hypot,interpolate}.
4406 (hypot3): Guard behind __cpp_lib_hypot.
4407 (lerp): Guard behind __cpp_lib_interpolate.
4408 * include/c_compatibility/stdatomic.h: Switch to
4409 bits/stl_version.h for __cpp_lib_atomic. Guard header behind that
4411 * include/bits/utility.h: Switch to bits/version.h for
4412 __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
4413 (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
4414 (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
4415 * include/bits/uses_allocator_args.h: Switch to bits/version.h for
4416 __cpp_lib_make_obj_using_allocator. Guard header behind that FTM.
4417 * include/bits/unordered_map.h: Switch to bits/version.h for
4418 __cpp_lib_unordered_map_try_emplace.
4419 (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
4420 * include/bits/unique_ptr.h: Switch to bits/version.h for
4421 __cpp_lib_{constexpr_memory,make_unique}.
4422 (make_unique): Guard behind __cpp_lib_make_unique.
4423 * include/bits/stl_vector.h: Switch to bits/version.h for
4424 __cpp_lib_constexpr_vector.
4425 * include/bits/stl_uninitialized.h: Switch to bits/version.h for
4426 __cpp_lib_raw_memory_algorithms.
4427 (uninitialized_default_construct)
4428 (uninitialized_default_construct_n, uninitialized_move)
4429 (uninitialized_move_n, uninitialized_value_construct)
4430 (uninitialized_value_construct_n): Guard behind
4431 __cpp_lib_raw_memory_algorithms.
4432 * include/bits/stl_tree.h: Switch to bits/version.h for
4433 __cpp_lib_generic_associative_lookup.
4434 * include/bits/stl_stack.h: Switch to bits/version.h for
4435 __cpp_lib_adaptor_iterator_pair_constructor.
4436 (stack): Guard iterator-pair constructor behind
4437 __cpp_lib_adaptor_iterator_pair_constructor.
4438 * include/bits/stl_queue.h: Switch to bits/version.h for
4439 __cpp_lib_adaptor_iterator_pair_constructor.
4440 (queue): Guard iterator-pair constructor behind
4441 __cpp_lib_adaptor_iterator_pair_constructor.
4442 * include/bits/stl_pair.h: Switch to bits/version.h for
4443 __cpp_lib_{concepts,tuples_by_type}.
4444 (get): Guard type-getting overloads behind
4445 __cpp_lib_tuples_by_type.
4446 * include/bits/stl_map.h: Switch to bits/version.h for
4447 __cpp_lib_map_try_emplace.
4448 (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
4449 * include/bits/stl_list.h: Switch to bits/version.h for
4450 __cpp_lib_list_remove_return_type.
4451 (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
4452 [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
4453 * include/bits/stl_iterator.h: Switch to bits/version.h for
4454 __cpp_lib_{constexpr_iterator,array_constexpr} and
4455 __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
4456 (make_reverse_iterator): Guard behind
4457 __cpp_lib_make_reverse_iterator.
4458 (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
4459 changes behind that FTM.
4460 * include/bits/stl_function.h: Switch to bits/version.h for
4461 __cpp_lib_transparent_operators.
4462 (equal_to, not_equal_to, greater, less, greater_equal)
4463 (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
4464 (logical_or, logical_not, plus, minus, multiplies, divides)
4465 (modulus, negate): Guard '= void' fwdecls behind
4466 __cpp_lib_transparent_operators.
4467 (plus<void>, minus<void>, multiplies<void>, divides<void>)
4468 (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
4469 (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
4470 (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
4471 (greater_equal<void>, less_equal<void>, bit_not<void>)
4472 (__has_is_transparent): Guard behind
4473 __cpp_lib_transparent_operators.
4474 * include/bits/stl_algobase.h: Switch to bits/version.h for
4475 __cpp_lib_robust_nonmodifying_seq_ops.
4476 (robust equal, mismatch): Guard behind
4477 __cpp_lib_nonmember_container_access.
4478 * include/bits/stl_algo.h: Swtich to bits/version.h for
4479 __cpp_lib_{clamp,sample}.
4480 (clamp): Guard behind __cpp_lib_clamp.
4481 (sample): Guard behind __cpp_lib_sample.
4482 * include/bits/specfun.h: Switch to bits/version.h for
4483 __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
4484 * include/bits/shared_ptr_base.h: Switch to bits/version.h for
4485 __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
4486 (_Sp_overwrite_tag): Guard behind
4487 __cpp_lib_smart_ptr_for_overwrite.
4488 * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
4489 __cpp_lib_atomic_shared_ptr.
4490 * include/bits/shared_ptr.h: Switch to bits/version.h for
4491 __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
4492 (shared_ptr<T>::weak_type): Guard behind
4493 __cpp_lib_shared_ptr_weak_type.
4494 (enable_shared_from_this<T>::weak_from_this): Guard behind
4495 __cpp_lib_enable_shared_from_this.
4496 * include/bits/ranges_cmp.h: Switch to bits/version.h for
4498 * include/bits/ranges_algo.h: Switch to bits/version.h for
4499 __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
4500 * include/bits/range_access.h: Switch to bits/version.h for
4501 __cpp_lib_nonmember_container_access
4502 (size, empty, data): Guard behind
4503 __cpp_lib_nonmember_container_access.
4504 (ssize): Guard behind __cpp_lib_ssize.
4505 * include/bits/ptr_traits.h: Switch to bits/version.h. for
4506 __cpp_lib_{constexpr_memory,to_address}.
4507 (to_address): Guard behind __cpp_lib_to_address.
4508 * include/bits/node_handle.h: Switch to bits/version.h for
4509 __cpp_lib_node_extract. Guard header behind that FTM.
4510 * include/bits/move_only_function.h: Switch to bits/version.h for
4511 __cpp_lib_move_only_function. Guard header behind that FTM.
4512 * include/bits/move.h: Switch to bits/version.h for
4513 __cpp_lib_addressof_constexpr.
4514 * include/bits/ios_base.h: Switch to bits/version.h for
4515 __cpp_lib_ios_noreplace.
4516 (noreplace): Guard with __cpp_lib_ios_noreplace.
4517 * include/bits/hashtable.h: Switch to bits/version.h for
4518 __cpp_lib_generic_unordered_lookup.
4519 (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
4520 __cpp_lib_generic_unordered_lookup.
4521 * include/bits/forward_list.h: Switch to bits/version.h for
4522 __cpp_lib_list_remove_return_type.
4523 (__remove_return_type): Guard behind
4524 __cpp_lib_list_remove_return_type.
4525 * include/bits/erase_if.h: Switch to bits/version.h for
4527 * include/bits/cow_string.h: Switch to bits/version.h for
4528 __cpp_lib_constexpr_string.
4529 * include/bits/chrono.h: Swtich to bits/version.h for
4530 __cpp_lib_chrono{,_udls}.
4531 (ceil): Guard behind __cpp_lib_chrono.
4532 (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
4533 * include/bits/char_traits.h: Switch to bits/version.h for
4534 __cpp_lib_constexpr_char_traits.
4535 * include/bits/basic_string.h: Switch to bits/version.h for
4536 __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
4537 (resize_and_overwrite): Guard behind
4538 __cpp_lib_string_resize_and_overwrite.
4539 (operator""s): Guard behind __cpp_lib_string_udls.
4540 * include/bits/atomic_wait.h: Switch to bits/version.h for
4541 __cpp_lib_atomic_wait. Guard header behind that FTM.
4542 * include/bits/atomic_base.h: Switch to bits/version.h for
4543 __cpp_lib_atomic_value_initialization and
4544 __cpp_lib_atomic_flag_test.
4545 (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
4547 * include/bits/allocator.h: Switch to bits/version.h for
4548 __cpp_lib_incomplete_container_elements.
4549 * include/bits/alloc_traits.h: Switch to using bits/version.h for
4550 __cpp_lib_constexpr_dynamic_alloc and
4551 __cpp_lib_allocator_traits_is_always_equal.
4552 * include/bits/align.h: Switch to bits/version.h for defining
4553 __cpp_lib_assume_aligned.
4554 (assume_aligned): Guard with __cpp_lib_assume_aligned.
4555 * include/bits/algorithmfwd.h: Switch to bits/version.h for
4556 defining __cpp_lib_constexpr_algorithms.
4557 * include/std/stacktrace: Switch to bits/version.h for
4558 __cpp_lib_stacktrace. Guard header behind that FTM.
4559 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
4560 Update line numbers.
4562 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
4564 * include/Makefile.am (bits_freestanding): Add version.h.
4565 (allcreated): Add version.h.
4566 (${bits_srcdir}/version.h): New rule. Regenerates
4567 version.h out of version.{def,tpl}.
4568 * include/Makefile.in: Regenerate.
4569 * include/bits/version.def: New file. Declares a list of
4570 all feature test macros, their values and their preconditions.
4571 * include/bits/version.tpl: New file. Turns version.def
4572 into a sequence of #if blocks.
4573 * include/bits/version.h: New file. Generated from
4575 * include/std/version: Replace with a __glibcxx_want_all define
4576 and bits/version.h include.
4578 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
4581 * include/std/format (__formatter_fp::format): Use frexp instead
4584 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
4586 * include/std/type_traits (true_type): Use __bool_constant
4588 (false_type): Likewise.
4589 (bool_constant): Likewise.
4591 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4594 * include/std/format (_Seq_sink::get): Only call _M_overflow if
4595 its precondition is met.
4596 (_Iter_sink::_M_finish): Likewise.
4597 (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
4598 internal buffer after running out of space.
4599 (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
4600 (_Counting_sink::count): Likewise.
4601 * testsuite/std/format/functions/format_to_n.cc: Check cases
4602 where the output fits into the buffer.
4604 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4607 * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
4608 to _ChronoParts operators.
4609 (from_stream, parse): Define new functions.
4610 (__detail::_Parse, __detail::_Parser): New class templates.
4611 * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
4613 * include/std/version (__cpp_lib_chrono): Likewise.
4614 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4615 Adjust expected value of feature test macro.
4616 * testsuite/20_util/duration/io.cc: Test parsing.
4617 * testsuite/std/time/clock/file/io.cc: Likewise.
4618 * testsuite/std/time/clock/gps/io.cc: Likewise.
4619 * testsuite/std/time/clock/system/io.cc: Likewise.
4620 * testsuite/std/time/clock/tai/io.cc: Likewise.
4621 * testsuite/std/time/clock/utc/io.cc: Likewise.
4622 * testsuite/std/time/day/io.cc: Likewise.
4623 * testsuite/std/time/month/io.cc: Likewise.
4624 * testsuite/std/time/month_day/io.cc: Likewise.
4625 * testsuite/std/time/weekday/io.cc: Likewise.
4626 * testsuite/std/time/year/io.cc: Likewise.
4627 * testsuite/std/time/year_month/io.cc: Likewise.
4628 * testsuite/std/time/year_month_day/io.cc: Likewise.
4629 * testsuite/std/time/syn_c++20.cc: Check value of macro and for
4630 the existence of parse and from_stream in namespace chrono.
4631 * testsuite/std/time/clock/local/io.cc: New test.
4632 * testsuite/std/time/parse.cc: New test.
4634 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4637 * include/std/format (__formatter_fp::format): Do not call log10
4640 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4642 * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
4643 Check for out-of-range month an weekday indices.
4644 * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
4645 month and weekday values.
4647 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4649 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
4651 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4654 * include/std/format (_Spec::_S_parse_width_or_precision): Check
4655 for empty range before dereferencing iterator.
4656 * testsuite/std/format/string.cc: Check for expected exception.
4657 Fix expected exception message in test_pr110862() and actually
4660 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4663 * include/std/format (__formatter_fp::format): Check return
4664 value of _M_localize.
4665 * testsuite/std/format/functions/format.cc: Check classic
4668 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4671 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
4673 (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
4674 (__detail::__basic_const_iterator_iter_cat): Likewise.
4675 * include/bits/stl_iterator_base_types.h (__iterator_category_t):
4676 Rename to __iter_category_t.
4678 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4680 * include/bits/chrono.h (duration_cast): Do not use braces
4681 around statements for C++11 constexpr rules.
4682 * include/bits/stl_algobase.h (__lg): Rewrite as a single
4683 statement for C++11 constexpr rules.
4684 * include/experimental/bits/fs_path.h (path::string): Use
4685 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
4686 * include/std/charconv (__to_chars_8): Initialize variable for
4687 C++17 constexpr rules.
4689 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4691 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
4692 warning for loop condition.
4694 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4696 * include/std/complex: Add diagnostic pragma for clang.
4698 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4700 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
4702 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
4703 class-head to struct in friend declaration.
4704 * include/std/chrono (tzdb_list::_Node): Likewise.
4705 * include/std/future (_Task_state_base, _Task_state): Likewise.
4706 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4707 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
4708 (_ValFunClos, _RefFunClos): Change class-head to struct.
4710 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4712 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
4714 * include/bits/regex_executor.tcc: Remove name of unused
4716 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
4718 * include/bits/stl_uninitialized.h: Likewise.
4719 * include/bits/streambuf_iterator.h (operator==): Likewise.
4720 * include/bits/uses_allocator.h: Likewise.
4721 * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
4722 * include/std/chrono (zoned_time): Likewise.
4723 * include/std/future (__future_base::_S_allocate_result):
4725 (packaged_task): Likewise.
4726 * include/std/optional (_Optional_payload_base): Likewise.
4727 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4728 * include/std/tuple (_Tuple_impl): Likewise.
4730 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4732 * include/bits/new_allocator.h (__new_allocator): Define copy
4733 assignment operator as defaulted.
4734 * include/std/complex (complex<float>, complex<double>)
4735 (complex<long double>): Define copy constructor as defaulted.
4737 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4739 * include/std/format: Fix some warnings.
4740 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
4741 unused function template.
4743 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4746 * include/std/format (__formatter_fp::format): Do not use
4747 __builtin_abs and __builtin_log10 with arbitrary floating-point
4750 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4753 * include/std/format (__format::_Iter_sink<CharT, OutIter>):
4754 Constrain partial specialization for contiguous iterators to
4755 require the value type to be CharT.
4756 * testsuite/std/format/functions/format_to.cc: New test.
4758 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4761 * include/std/format (_Scanner::_M_on_replacement_field):
4762 Check for expected '}' before incrementing iterator.
4763 * testsuite/std/format/string.cc: Check "{0:{0}" format string.
4765 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4767 * configure: Regenerate.
4769 2023-08-07 Alan Modra <amodra@gmail.com>
4771 * configure: Regenerate.
4773 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
4775 * configure: Regenerate.
4777 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4779 * configure: Regenerate.
4781 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4783 * configure: Regenerate.
4785 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4787 * configure: Regenerate.
4789 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4791 * configure: Regenerate.
4793 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
4795 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
4798 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
4800 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
4802 * src/c++11/locale-inst-monetary.h: Likewise.
4803 * src/c++11/locale-inst-numeric.h: Likewise.
4805 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
4808 * include/std/format (__formatter_fp::format): Ensure __expc is
4809 always set for all presentation types. Set __z correctly for
4811 * testsuite/std/format/functions/format.cc: Check problem cases.
4813 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4816 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
4818 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4821 * include/bits/stl_bvector.h (vector(const vector&)): Access
4822 iterators before allocating.
4823 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
4825 * testsuite/23_containers/vector/bool/110807.cc: New test.
4827 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4829 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
4831 * include/bits/stl_algo.h (random_shuffle): Correct comments.
4832 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
4833 deprecated warnings.
4834 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
4835 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
4836 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
4839 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
4841 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
4843 * testsuite/26_numerics/gcd/105844.cc: Likewise.
4844 * testsuite/26_numerics/lcm/105844.cc: Likewise.
4846 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
4848 * include/std/format (_Formatting_scanner::_M_on_chars): Add
4849 missing constexpr specifier.
4850 (_Formatting_scanner::_M_format_arg): Likewise.
4852 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
4855 * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
4856 throw an exception for zero result.
4857 [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
4859 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4862 * src/c++17/floating_from_chars.cc (from_chars): Only define
4863 _Float128 overload when using __strfromf128.
4865 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4868 * include/bits/chrono.h (duration): Improve static assert
4870 (__is_ratio): Move to ...
4871 * include/std/ratio (__is_ratio): ... here.
4872 (__is_ratio_v): New variable template and partial
4874 (__are_both_ratios): New function template.
4875 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
4876 Add static assertion.
4877 * testsuite/20_util/ratio/requirements/type_constraints.cc:
4879 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
4880 Adjust expected error.
4881 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
4884 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4886 * include/bits/chrono_io.h (__formatter_chrono::_M_format):
4887 Do not set __is_neg for hh_mm_ss before calling
4888 _M_format_to_ostream. Change __print_sign lambda to only check
4889 __is_neg for durations and hh_mm_ss types.
4890 (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
4892 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
4894 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4897 * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
4898 Handle duration and hh_mm_ss.
4899 * testsuite/20_util/duration/io.cc: Check locale-specific
4901 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
4903 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4905 * include/std/format (__write_padded): Initialize first element
4906 of array to avoid a -Wmaybe-uninitialized warning.
4908 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4911 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
4912 allowed modifiers for %z and %Z. Fix -Wparentheses and
4913 -Wnarrowing warnings.
4914 (__formatter_chrono::_M_format): Call new functions for %d, %e,
4916 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
4917 subsecond precision.
4918 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
4920 (__formatter_chrono::_M_e): Replace with _M_d_e and use
4922 (__formatter_chrono::_M_I): Replace with _M_H_I and use
4924 (__formatter_chrono::_M_m): New function.
4925 (__formatter_chrono::_M_M): New function.
4926 (__formatter_chrono::_M_r): Use _M_locale_fmt.
4927 (__formatter_chrono::_M_S): Likewise.
4928 (__formatter_chrono::_M_u_w): Likewise.
4929 (__formatter_chrono::_M_U_V_W): Likewise.
4930 (__formatter_chrono::_M_X): Use _S_floor_seconds.
4931 (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
4932 (__formatter_chrono::_S_altnum): Remove function.
4933 (__formatter_chrono::_S_dd_zero_fill): Remove function.
4934 (__formatter_chrono::_S_floor_seconds): New function.
4935 (__formatter_chrono::_M_locale_fmt): New function.
4936 * testsuite/std/time/clock/system/io.cc: Adjust expected output
4937 for locale-specific formats and check modified formats.
4938 * testsuite/std/time/clock/utc/io.cc: Likewise.
4939 * testsuite/std/time/zoned_time/io.cc: New test.
4941 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4944 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
4945 allow a single modifier.
4946 * testsuite/std/time/format.cc: Check multiple modifiers.
4948 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4951 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
4952 Remove dg-require-string-conversions.
4953 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
4955 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
4957 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
4959 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
4962 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4965 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
4966 Define in terms of std::stod.
4968 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4971 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
4973 [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
4974 * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
4975 Declare in namespace std.
4976 [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
4978 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
4981 * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
4982 depend on _GLIBCXX_USE_C99_STDLIB.
4983 [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
4984 in terms of stol and stoul respectively.
4985 [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
4988 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4991 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
4992 conversions to wide strings.
4993 * testsuite/experimental/filesystem/path/construct/95048.cc:
4996 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4998 * config/io/basic_file_stdio.cc: Define LFS macros.
4999 (__basic_file<char>::open): Use fopen unconditionally.
5000 (get_file_offset): Use lseek unconditionally.
5001 (__basic_file<char>::seekoff): Likewise.
5002 (__basic_file<char>::showmanyc): Use fstat unconditionally.
5004 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
5007 * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
5008 and define _GLIBCXX_USE_FSEEKO_FTELLO.
5009 * config.h.in: Regenerate.
5010 * configure: Regenerate.
5011 * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
5012 Check for fwrite error correctly.
5013 (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
5014 fread error correctly.
5015 (get_file_offset): New function.
5016 (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
5017 fseeko if available. Use get_file_offset instead of return value
5019 (__basic_file<char>::showmanyc): Use get_file_offset.
5021 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
5023 * include/std/type_traits (__make_unsigned_selector): Use
5024 __is_enum built-in trait.
5025 (__make_signed_selector): Likewise.
5026 (__underlying_type_impl): Likewise.
5028 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
5030 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
5033 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
5036 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
5038 * doc/html/manual/configure.html: Regenerate.
5040 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
5042 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
5044 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
5046 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
5048 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
5050 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
5052 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
5055 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
5057 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
5058 Skip as UNSUPPORTED for C++98 mode.
5059 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
5062 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
5065 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
5066 Do not use std::fill_n during constant evaluation.
5068 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
5070 * include/bits/vector.tcc (_M_default_append): Replace try-block
5073 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
5075 * include/bits/iterator_concepts.h (projected): Add typename.
5077 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
5079 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
5080 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
5082 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
5084 * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
5085 _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
5086 Define to OpenMP 5.0 pragmas even for GCC 10.0+.
5087 (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
5089 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
5091 * include/bits/alloc_traits.h (_Destroy): Qualify call.
5092 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
5093 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
5095 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
5097 * testsuite/lib/libstdc++.exp: Remove additional flag handled
5100 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
5103 * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
5104 * config.h.in: Regenerate.
5105 * configure: Regenerate.
5106 * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
5107 * include/std/iostream: Use new autoconf macro as well as
5109 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
5112 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
5114 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
5117 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
5120 * src/c++11/random.cc (random_device::_M_init): Throw
5121 std::system_error when the requested device is a valid token but
5122 not available at runtime.
5124 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
5127 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
5128 __INT32_TYPE__ instead of int32_t.
5130 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
5132 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
5133 with USE_ATOMIC_LIST_HEAD.
5134 (list_mutex): Replace global object with function. Use local
5135 static object when std::mutex constructor isn't constexpr.
5137 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
5140 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
5141 copy_file_range can be called with loff_t* arguments.
5142 * configure: Regenerate.
5143 * src/filesystem/ops-common.h (copy_file_copy_file_range):
5144 Use loff_t for offsets.
5146 2023-06-29 Tom Tromey <tromey@adacore.com>
5148 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
5151 2023-06-28 Jan Hubicka <jh@suse.cz>
5153 PR middle-end/109849
5154 * include/bits/c++config (std::__terminate): Mark cold.
5155 * include/bits/functexcept.h: Mark everything as cold.
5156 * libsupc++/exception: Mark terminate and unexpected as cold.
5158 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
5160 * include/pstl/algorithm_fwd.h: Synchronize with upstream.
5161 * include/pstl/algorithm_impl.h: Likewise.
5162 * include/pstl/execution_defs.h: Likewise.
5163 * include/pstl/execution_impl.h: Likewise.
5164 * include/pstl/glue_algorithm_impl.h: Likewise.
5165 * include/pstl/glue_execution_defs.h: Likewise.
5166 * include/pstl/glue_memory_impl.h: Likewise.
5167 * include/pstl/glue_numeric_impl.h: Likewise.
5168 * include/pstl/memory_impl.h: Likewise.
5169 * include/pstl/numeric_fwd.h: Likewise.
5170 * include/pstl/numeric_impl.h: Likewise.
5171 * include/pstl/parallel_backend.h: Likewise.
5172 * include/pstl/parallel_backend_serial.h: Likewise.
5173 * include/pstl/parallel_backend_tbb.h: Likewise.
5174 * include/pstl/parallel_impl.h: Likewise.
5175 * include/pstl/pstl_config.h: Likewise.
5176 * include/pstl/unseq_backend_simd.h: Likewise.
5177 * include/pstl/utils.h: Likewise.
5178 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5180 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5182 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5184 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5186 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5187 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5189 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5191 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5193 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5195 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5197 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5199 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5201 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5203 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5205 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5207 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5209 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5211 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5213 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5215 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5217 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5219 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5221 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5223 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5225 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5227 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5229 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5231 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5233 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5235 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5237 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5239 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5241 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5243 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5245 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5247 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5249 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5251 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5253 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5255 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5257 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
5259 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5261 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5263 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5265 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5267 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5269 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
5271 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
5273 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5275 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
5277 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
5279 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5281 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5283 * testsuite/util/pstl/test_utils.h:
5286 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
5289 * include/std/format (__format::__parse_integer): Fix buffer
5290 overflow for wide chars.
5291 (formatter<const void*, C>::format): Cast to uintptr_t instead
5293 * testsuite/std/format/string.cc: Test too-large widths.
5295 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
5297 * include/bits/iterator_concepts.h (projected): Replace class
5298 template with alias template denoting an ADL-proofed helper.
5299 (incremental_traits<projected<Iter, Proj>>): Remove.
5300 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
5303 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
5305 * include/debug/helper_functions.h (__get_distance)
5306 (__check_singular, __valid_range_aux, __valid_range): Qualify
5307 calls to disable ADL.
5308 (__check_singular_aux(const _Safe_iterator_base*)): Declare
5309 overload that was previously found via ADL.
5311 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
5313 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
5316 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
5318 * include/std/array (to_array(T(&)[N])): Remove redundant
5320 (to_array(T(&&)[N])): Remove redundant std::move.
5322 2023-06-16 Alexandre Oliva <oliva@adacore.com>
5324 * testsuite/20_util/from_chars/4.cc: Skip long double on
5327 2023-06-16 Joel Brobecker <brobecker@adacore.com>
5329 * configure.ac ["x${with_newlib}" = "xyes"]: Define
5330 HAVE_HYPOTF. Add compile-checks for various long double
5331 math functions as well.
5332 * configure: Regenerate.
5334 2023-06-14 Jonny Grant <jg@jguk.org>
5336 * doc/xml/manual/extensions.xml: Remove demangle exception
5337 description and include.
5338 * doc/html/manual/ext_demangling.html: Regenerate.
5340 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
5342 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
5343 [! SIMULATOR_TEST]: Also exclude running test05.
5344 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
5346 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
5348 * include/std/type_traits: Use using instead of typedef
5350 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5353 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
5354 Only define if _Float128 and long double have different
5357 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5360 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
5361 (basic_endpoint, basic_resolver_entry, resolver_base)
5362 (basic_resolver_results, basic_resolver): Only define if the tcp
5363 or udp protocols will be defined.
5365 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5367 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
5368 * configure: Regenerate.
5369 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
5370 * doc/html/manual/abi.html: Regenerate.
5372 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5375 * include/std/format (formatter<const void*, charT>::parse):
5376 Only alow 0 and P for C++26 and non-strict modes.
5377 (formatter<const void*, charT>::format): Use toupper for P
5378 type, and insert zero-fill characters for 0 option.
5379 * testsuite/std/format/functions/format.cc: Check pointer
5380 formatting. Only check P2510R3 extensions conditionally.
5381 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
5382 extensions conditionally.
5384 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5387 * include/std/array (to_array): Initialize arrays of trivial
5388 types using memcpy. For non-trivial types, use lambda
5389 expressions instead of a separate helper function.
5390 (__to_array): Remove.
5391 * testsuite/23_containers/array/creation/110167.cc: New test.
5393 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
5395 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
5397 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
5399 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
5401 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
5403 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
5405 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
5407 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
5409 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
5411 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
5414 2023-06-07 Jakub Jelinek <jakub@redhat.com>
5417 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
5418 (double_to_chars_test_cases,
5419 double_scientific_precision_to_chars_test_cases_2,
5420 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
5421 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
5422 Add unconditional tests with corresponding double constants
5423 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
5424 0x1.7440bbff418b9p-18.
5426 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
5428 * testsuite/util/testsuite_abi.cc (check_version): Re-add
5431 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
5433 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
5434 Require effective target exceptions_enabled instead of using
5436 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
5437 shrink_to_fit() to be a no-op without exceptions enabled.
5438 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
5440 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
5441 Require effective target exceptions_enabled.
5442 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
5444 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
5446 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
5448 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
5450 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
5453 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
5455 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
5456 affected by rounding.
5457 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
5458 double before comparing for equality.
5459 * testsuite/20_util/from_chars/6.cc: Likewise.
5460 * testsuite/20_util/variant/86874.cc: Use values that aren't
5461 affected by rounding.
5462 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
5463 original value instead of to floating-point-literal.
5464 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
5465 Cast arithmetic result to double before comparing for equality.
5466 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
5468 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
5470 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
5471 the absolute difference is less than 0.01 instead of comparing
5472 to two decimal places.
5473 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
5474 Cast arithmetic result to double before comparing for equality.
5475 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
5477 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
5479 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
5481 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
5483 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
5485 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
5487 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
5490 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5492 * configure.ac: Use AS_IF.
5493 * configure: Regenerate.
5495 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
5497 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
5498 'UNSUPPORTED: [...]: exception handling disabled'.
5500 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5502 * testsuite/util/testsuite_abi.cc (check_version): Add
5503 CXXABI_1.3.15 symver and make it the latestp. Remove
5504 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
5506 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5507 Jakub Jelinek <jakub@redhat.com>
5510 * include/std/limits: (numeric_limits<__float128>): Define
5511 for __STRICT_ANSI__ as well.
5512 * testsuite/18_support/numeric_limits/128bit.cc: Remove
5513 check for __STRICT_ANSI__.
5515 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5517 * configure.ac: Use AS_IF.
5518 * configure: Regenerate.
5520 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
5523 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
5524 to avoid casts to other vector types. Implement store as
5525 succession of power-of-2 sized memcpy to avoid PR90424.
5527 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
5530 * include/experimental/bits/simd_builtin.h (_S_masked_store):
5531 Call into deduced ABI's SimdImpl after conversion.
5532 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
5533 Don't use _mm_maskmoveu_si128. Use the generic fall-back
5534 implementation. Also fix masked stores without SSE2, which
5535 were not doing anything before.
5537 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
5539 * include/experimental/bits/simd.h (__bit_cast): Use
5540 __gnu__::__vector_size__ instead of gnu::vector_size.
5542 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5545 * include/std/array (__array_traits<T, 0>::operator T*()): Make
5546 conversion operator explicit.
5547 (array::front): Use size_type as subscript operand.
5548 (array::data): Use static_cast to make conversion explicit.
5549 * testsuite/23_containers/array/element_access/110139.cc: New
5552 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
5554 * include/bits/locale_classes.tcc: Remove check for
5555 codecvt<char8_t, char, mbstate_t> facet.
5557 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5559 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
5560 close-on-exec flag on file descriptors.
5562 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5565 * src/filesystem/ops-common.h (do_copy_file): Check for empty
5566 files by trying to read a character.
5567 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
5570 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
5572 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
5573 * config.h.in: Regenerate.
5574 * configure: Regenerate.
5575 * src/filesystem/ops-common.h (copy_file_copy_file_range):
5576 Define new function.
5577 (do_copy_file): Use it.
5579 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
5581 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
5582 * config.h.in: Regenerate.
5583 * configure: Regenerate.
5584 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
5585 function for sendfile logic. Loop to support large files. Skip
5587 (do_copy_file): Use it.
5589 2023-06-04 Jason Merrill <jason@redhat.com>
5592 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
5593 * config/abi/pre/gnu.ver: Add it.
5595 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
5597 * include/parallel/algobase.h: Include <parallel/search.h>.
5599 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5601 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5602 Add const to equality operator.
5604 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5606 * include/std/expected (expected::and_then, expected::or_else)
5607 (expected::transform_error): Use _M_val and _M_unex instead of
5608 calling value() and error(), as per LWG 3938.
5609 (expected::transform): Likewise. Remove incorrect std::move
5610 calls from lvalue overloads.
5611 (expected<void, E>::and_then, expected<void, E>::or_else)
5612 (expected<void, E>::transform): Use _M_unex instead of calling
5614 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
5615 and transform, and for std::expected<void, E>.
5616 * testsuite/20_util/expected/lwg3938.cc: New test.
5618 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5621 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
5623 (vector::size, vector::capacity): Remove calls to _M_invariant.
5624 * include/bits/vector.tcc (vector::_M_fill_assign): Add
5625 optimization hint to reallocating path.
5626 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
5628 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
5630 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
5631 ...here. Check assign(FwdIter, FwdIter) too.
5632 * testsuite/23_containers/vector/types/1.cc: Revert addition
5633 of -Wno-stringop-overread option.
5635 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5637 * doc/xml/manual/evolution.xml: Document removal of implicit
5638 allocator rebinding extensions in strict mode and for C++20.
5639 * doc/html/*: Regenerate.
5641 2023-06-01 Jason Merrill <jason@redhat.com>
5643 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
5644 handlers in the cleanup phase.
5646 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
5649 * include/experimental/bits/simd.h (__vectorized_sizeof): With
5650 __have_neon_a32 only single-precision float works (in addition
5653 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
5655 * include/bits/stl_algo.h
5656 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
5657 * include/bits/stl_algobase.h: ...here.
5658 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
5659 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
5660 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
5662 * include/parallel/algobase.h: ...here.
5663 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
5664 includes. Include <bits/stl_algobase.h>.
5666 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5669 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
5670 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
5671 * config.h.in: Regenerate.
5672 * configure: Regenerate.
5673 * include/c_global/cmath (float_t, double_t): Guard using new
5674 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
5676 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5678 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
5679 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
5680 for C99 rounding functions to here.
5681 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
5682 functions from here.
5683 * config.h.in: Regenerate.
5684 * configure: Regenerate.
5685 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
5686 of _GLIBCXX_USE_C99_MATH_TR1.
5687 * include/bits/random.tcc: Likewise.
5688 * include/c_compatibility/math.h: Likewise.
5689 * include/c_global/cmath: Likewise.
5690 * include/ext/random: Likewise.
5691 * include/ext/random.tcc: Likewise.
5692 * include/std/complex: Likewise.
5693 * testsuite/20_util/from_chars/4.cc: Likewise.
5694 * testsuite/20_util/from_chars/8.cc: Likewise.
5695 * testsuite/26_numerics/complex/proj.cc: Likewise.
5696 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
5697 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
5699 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5701 * testsuite/util/testsuite_random.h: Likewise.
5703 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5705 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
5707 (vector::size(), vector::capacity()): Call _M_invariant().
5708 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
5709 * testsuite/23_containers/vector/types/1.cc: Add suppression for
5710 false positive warning (PR110060).
5712 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5715 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
5716 defined before trying to use _Float128.
5718 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5720 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
5721 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
5722 * configure: Regenerate.
5724 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5726 * include/bits/unique_lock.h: Include <bits/error_constants.h>
5727 here for std::errc constants.
5728 * include/std/mutex: Do not include <bits/error_constants.h> and
5731 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5733 * configure.ac: Replace use of -o operator for test.
5734 * configure: Regenerate.
5736 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5738 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
5739 noexcept to all constructors except the default constructor.
5740 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
5741 (scoped_allocator_adaptor::outer_allocator): Likewise.
5742 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
5744 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5747 * include/std/limits (numeric_limits<__float128>): Define.
5748 * testsuite/18_support/numeric_limits/128bit.cc: New test.
5750 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5752 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
5753 msp430 to all 16-bit targets.
5754 * configure: Regenerate.
5756 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5759 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
5760 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
5761 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
5763 (from_chars(const char*, const char*, double&, chars_format)):
5764 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
5765 (from_chars(const char*, const char*, _Float128&, chars_format))
5766 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
5767 defined, otherwise parse a long double and convert to _Float128.
5769 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5772 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
5773 Add deprecated attribute to non-standard overload.
5774 * doc/xml/manual/evolution.xml: Document deprecation.
5775 * doc/html/*: Regenerate.
5776 * testsuite/27_io/manipulators/standard/char/1.cc: Add
5777 dg-warning for expected deprecated warning.
5778 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
5779 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
5780 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
5782 2023-05-30 Alexandre Oliva <oliva@adacore.com>
5784 * testsuite/20_util/from_chars/4.cc: Skip long double test06
5786 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
5789 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5792 * include/experimental/bits/simd.h (to_native): Use int NTTP
5793 as specified in PTS2.
5794 (to_compatible): Likewise. Add missing tag to call mask
5796 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
5799 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5801 * testsuite/experimental/simd/tests/integer_operators.cc:
5802 Compute expected value differently to avoid getting turned into
5805 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5807 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
5808 double <-> (u)long conversion tests conditional on sizeof(long
5809 double) and sizeof(long).
5811 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
5813 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
5814 Negative __y is UB, so prefer signed compare.
5816 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
5818 * testsuite/util/testsuite_allocator.h (PointerBase): Add
5819 relational operators.
5821 2023-05-25 Alexandre Oliva <oliva@adacore.com>
5823 * testsuite/20_util/to_chars/long_double.cc: Expect execution
5824 fail on x86-vxworks.
5826 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5829 * include/experimental/bits/simd.h (__intrinsic_type): If
5830 __ALTIVEC__ is defined, map gnu::vector_size types to their
5831 corresponding __vector T types without losing unsignedness of
5832 integer types. Also prefer long long over long.
5833 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
5834 object to the expected unsigned vector type.
5836 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5839 * include/experimental/bits/simd.h (__intrinsic_type):
5840 Specialize __intrinsic_type<double, 8> and
5841 __intrinsic_type<double, 16> in any case, but provide the member
5842 type only with __aarch64__.
5844 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5847 * include/experimental/bits/simd_neon.h (_S_reduce): Add
5848 constexpr and make NEON implementation conditional on
5849 not __builtin_is_constant_evaluated.
5851 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
5854 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
5855 Avoid vector builtin subscripting in constant expressions.
5856 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
5857 (const_where_expression, where_expression, where)
5858 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
5859 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
5861 * include/experimental/bits/simd_builtin.h (__vector_permute)
5862 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
5863 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
5864 (_MaskImplBuiltin::_S_store): Add constexpr.
5865 (_CommonImplBuiltin::_S_store_bool_array)
5866 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
5867 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
5868 constant_evaluated case.
5869 * include/experimental/bits/simd_fixed_size.h
5870 (_S_masked_load): Reword comment.
5871 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
5872 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
5873 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
5874 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
5875 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
5877 (_SimdTuple::operator[], _M_set): Add constexpr and add
5878 constant_evaluated case.
5879 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
5880 * include/experimental/bits/simd_scalar.h: Add constexpr.
5881 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
5882 constexpr and add constant_evaluated case.
5883 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
5884 (_S_less_equal): Value-initialize to satisfy constexpr
5886 (_MaskImplX86::_S_load): Add constant_evaluated case.
5887 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
5888 case. Value-initialize local variables.
5889 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
5890 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
5892 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
5895 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
5897 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
5898 __infn into #ifdef'ed block.
5899 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
5900 constants only when used.
5901 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
5902 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
5903 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
5905 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5906 Move totest and expect1 into #ifdef'ed block.
5908 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
5910 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
5911 * doc/html/manual/strings.html: Regenerate.
5913 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5916 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
5918 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5921 * include/c_global/cmath (atan2, fmod, pow): Move
5922 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
5923 __gnu_cxx::__bfloat16_t overloads.
5924 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
5926 (fma): Move __gnu_cxx::__promote_3 using template after
5927 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
5929 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5931 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
5932 checks for float_round_style and float_denorm_style.
5934 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5936 * include/bits/c++config: Add system_header pragma.
5938 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5940 * include/std/expected (expected::and_then, expected::or_else)
5941 (expected::transform, expected::transform_error): Fix exception
5942 specifications as per LWG 3877.
5943 (expected<void, E>::and_then, expected<void, E>::transform):
5945 * testsuite/20_util/expected/lwg3877.cc: New test.
5947 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
5949 * include/std/type_traits: Use __bool_constant instead of
5952 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5954 * configure: Regenerate.
5956 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5959 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
5960 * config.h.in: Regenerate.
5961 * configure: Regenerate.
5962 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
5963 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
5964 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
5965 instead of hardcoded 64.
5967 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5969 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
5970 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
5971 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
5972 * config.h.in: Regenerate.
5973 * configure: Regenerate.
5974 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
5975 instead of _GLIBCXX_USE_C99_FENV_TR1.
5976 * include/c_global/cfenv: Likewise.
5977 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
5978 of _GLIBCXX_USE_C99_CTYPE_TR1.
5980 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5982 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
5983 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
5984 <inttypes.h> features in C++11 mode and define
5985 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
5986 * config.h.in: Regenerate.
5987 * configure: Regenerate.
5988 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
5989 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
5990 of _GLIBCXX_USE_C99_STDINT_TR1.
5991 * include/c_compatibility/inttypes.h: Check
5992 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
5993 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
5994 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5995 * include/c_compatibility/stdatomic.h: Check
5996 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
5997 * include/c_compatibility/stdint.h: Likewise.
5998 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
5999 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
6000 _GLIBCXX_USE_C99_INTTYPES_TR1 and
6001 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
6002 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
6003 instead of _GLIBCXX_USE_C99_STDINT_TR1.
6004 * include/std/atomic: Likewise.
6005 * src/c++11/cow-stdexcept.cc: Likewise.
6006 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
6008 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
6011 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
6013 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
6014 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
6015 * config.h.in: Regenerate.
6016 * configure: Regenerate.
6017 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
6018 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
6019 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
6021 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
6023 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
6024 assertion to ensure expected exception is throw.
6026 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
6028 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
6029 printer for chrono::zoned_time for cx11 ABI and tzdb effective
6032 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
6034 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
6035 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
6036 * configure: Regenerate.
6038 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6040 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
6041 to check for nan, nanf, and nanl.
6042 * configure: Regenerate.
6044 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6046 * include/bits/char_traits.h (char_traits<char16_t>): Do not
6047 depend on _GLIBCXX_USE_C99_STDINT_TR1.
6048 (char_traits<char32_t>): Likewise.
6049 * include/experimental/source_location: Likewise.
6051 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6053 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
6054 (atomic_int_least16_t, atomic_uint_least16_t)
6055 (atomic_int_least32_t, atomic_uint_least32_t)
6056 (atomic_int_least64_t, atomic_uint_least64_t)
6057 (atomic_int_fast16_t, atomic_uint_fast16_t)
6058 (atomic_int_fast32_t, atomic_uint_fast32_t)
6059 (atomic_int_fast64_t, atomic_uint_fast64_t)
6060 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
6061 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
6063 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6065 * include/bits/algorithmfwd.h (shuffle): Do not depend on
6066 _GLIBCXX_USE_C99_STDINT_TR1.
6067 * include/bits/ranges_algo.h (shuffle): Likewise.
6068 * include/bits/stl_algo.h (shuffle): Likewise.
6069 * include/ext/random: Likewise.
6070 * include/ext/throw_allocator.h (random_condition): Likewise.
6071 * include/std/random: Likewise.
6072 * src/c++11/cow-string-inst.cc: Likewise.
6073 * src/c++11/random.cc: Likewise.
6075 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6077 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
6078 _GLIBCXX_USE_C99_STDINT_TR1.
6080 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6082 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
6083 on _GLIBCXX_USE_C99_STDINT_TR1.
6085 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
6087 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
6088 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
6089 * testsuite/experimental/string_view/typedefs.cc: Likewise.
6091 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
6093 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
6094 (auto_locale, auto_ferounding): New class types.
6095 (from_chars_impl): Use auto_locale and auto_ferounding.
6097 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
6100 * include/std/chrono (hh_mm_ss::__fits): Remove variable
6102 (hh_mm_ss::__subseconds): Remove __fits from constraints.
6103 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
6104 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
6105 hh_mm_ss<duration<int, std::pico>>.
6107 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
6109 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
6110 * include/bits/basic_ios.h: Add static assertion checking
6111 traits_type::value_type.
6112 * include/bits/basic_string.h: Likewise. Do not rebind
6113 allocator, and add static assertion checking its value_type.
6114 (basic_string::_Alloc_traits_impl): Remove class template.
6115 (basic_string::_S_allocate): New static member function.
6116 (basic_string::assign): Use _S_allocate.
6117 * include/bits/basic_string.tcc (basic_string::_M_create)
6118 (basic_string::reserve, basic_string::_M_replace): Likewise.
6119 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
6120 Disable for C++20 and later.
6121 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
6124 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
6127 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
6128 and negative zero correctly.
6129 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
6131 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
6133 * include/bits/hashtable_policy.h
6134 (_NodeBuilder<>::_S_build): Use __node_ptr.
6135 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
6136 (_AllocNode<>): Likewise.
6137 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
6138 to call std::is_permutation in the non-unique key implementation.
6139 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
6141 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
6142 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
6143 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
6144 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
6146 (_Hashtable<>::find): Likewise.
6147 (_Hashtable<>::_M_emplace): Likewise.
6148 (_Hashtable<>::_M_insert_unique): Likewise.
6150 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
6152 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
6153 Print floating-point durations correctly.
6154 (StdChronoTimePointPrinter): Support printing only the value,
6155 not the type name. Uncomment handling for known clocks.
6156 (StdChronoZonedTimePrinter): Remove type names from output.
6157 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
6158 (StdChronoTimeZonePrinter): Add equals sign to output.
6159 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
6161 2023-05-05 Alexandre Oliva <oliva@adacore.com>
6163 * testsuite/20_util/from_chars/4.cc: Skip long double test06
6165 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
6168 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
6170 * doc/xml/manual/abi.xml (abi.versioning.history): Document
6171 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
6172 * doc/html/manual/abi.html: Regenerate.
6174 2023-05-04 Florian Weimer <fweimer@redhat.com>
6176 * doc/xml/manual/abi.xml (abi.versioning.history): Add
6177 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
6180 2023-05-03 Jakub Jelinek <jakub@redhat.com>
6182 * src/c++17/floating_from_chars.cc
6183 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
6184 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
6185 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
6186 _ZSt8to_charsPcS_u9__ieee128.
6187 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
6188 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
6189 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
6190 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
6191 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
6193 2023-05-03 Jakub Jelinek <jakub@redhat.com>
6195 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
6196 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
6197 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
6198 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
6199 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
6201 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
6204 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
6205 Jonathan Wakely <jwakely@redhat.com>
6208 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
6209 Initialize _M_string_length.
6211 2023-05-02 Jakub Jelinek <jakub@redhat.com>
6213 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6214 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6215 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6216 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6217 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6218 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6219 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6220 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6222 2023-05-02 Jakub Jelinek <jakub@redhat.com>
6225 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
6228 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
6230 * include/bits/random.h (gamma_distribution): Add to the right
6232 (discrete_distribution, piecewise_constant_distribution)
6233 (piecewise_linear_distribution): Create a new doxygen group and
6234 fix the incomplete doxygen comments.
6235 * include/bits/uniform_int_dist.h (uniform_int_distribution):
6236 Add to doxygen group.
6238 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
6240 * include/bits/uses_allocator.h: Add missing @file comment.
6241 * include/bits/regex.tcc: Remove stray doxygen comments.
6242 * include/experimental/memory_resource: Likewise.
6243 * include/std/bit: Tweak doxygen @cond comments.
6244 * include/std/expected: Likewise.
6245 * include/std/numbers: Likewise.
6247 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
6249 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
6252 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
6254 * include/bits/move.h: Simplify opening/closing namespace std.
6256 2023-04-28 Jakub Jelinek <jakub@redhat.com>
6259 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
6260 _ZSt21ios_base_library_initv.
6261 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
6262 symver and make it the latestp.
6263 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
6264 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
6265 * include/std/iostream: If init_priority attribute is supported
6266 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
6267 symbol into the object.
6268 * configure: Regenerated.
6270 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6272 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
6273 * include/std/format: Likewise.
6275 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6277 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
6278 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
6280 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6282 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
6284 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
6286 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
6288 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
6290 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
6292 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
6293 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
6294 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
6295 (_DEFINE_BINARY_OPERATOR): Likewise.
6297 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6299 * include/bits/memory_resource.h: Improve doxygen comments.
6300 * include/std/memory_resource: Likewise.
6302 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6305 * include/bits/basic_string.h: Improve doxygen comments.
6306 * include/bits/cow_string.h: Likewise.
6307 * include/bits/forward_list.h: Likewise.
6308 * include/bits/fs_dir.h: Likewise.
6309 * include/bits/fs_path.h: Likewise.
6310 * include/bits/quoted_string.h: Likewise.
6311 * include/bits/stl_bvector.h: Likewise.
6312 * include/bits/stl_map.h: Likewise.
6313 * include/bits/stl_multimap.h: Likewise.
6314 * include/bits/stl_multiset.h: Likewise.
6315 * include/bits/stl_set.h: Likewise.
6316 * include/bits/stl_vector.h: Likewise.
6317 * include/bits/unordered_map.h: Likewise.
6318 * include/bits/unordered_set.h: Likewise.
6319 * include/std/filesystem: Likewise.
6320 * include/std/iomanip: Likewise.
6322 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
6325 * src/c++11/random.cc (__throw_syserr): New function.
6326 (random_device::_M_init, random_device::_M_init_pretr1): Use new
6327 function for bad tokens.
6328 (random_device::_M_getval): Use new function for read errors.
6329 * testsuite/util/testsuite_random.h (random_device_available):
6330 Change catch handler to use std::system_error.
6332 2023-04-24 Patrick Palka <ppalka@redhat.com>
6334 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
6335 Fix propagation of sign bit.
6336 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
6337 non-standard 'signed typedef-name'. Add some compile-time tests
6338 for right-shifting a negative __max_diff_type value by more than
6341 2023-04-19 Patrick Palka <ppalka@redhat.com>
6342 Jonathan Wakely <jwakely@redhat.com>
6345 * include/bits/utility.h (_Nth_type): Conditionally define in
6346 terms of __type_pack_element if available.
6347 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
6348 additional errors from the new built-in.
6350 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
6353 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6356 * src/Makefile.am: Move globals_io.cc to here.
6357 * src/Makefile.in: Regenerate.
6358 * src/c++98/Makefile.am: Remove globals_io.cc from here.
6359 * src/c++98/Makefile.in: Regenerate.
6360 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
6361 symbol name and then export with GLIBCXX_3.4.31 symver.
6362 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
6363 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
6365 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
6367 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
6369 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
6371 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6373 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
6375 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
6377 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
6379 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
6381 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
6384 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6387 * config/abi/pre/gnu.ver: Fix preprocessor condition.
6389 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6391 * doc/xml/manual/extensions.xml: Fix example to declare and
6392 qualify std::free, and use NULL instead of 0.
6393 * doc/html/manual/ext_demangling.html: Regenerate.
6394 * libsupc++/cxxabi.h: Adjust doxygen comments.
6396 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6399 * config/abi/pre/gnu.ver: Fix preprocessor condition.
6401 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
6404 * src/Makefile.am: Move globals_io.cc to here.
6405 * src/Makefile.in: Regenerate.
6406 * src/c++98/Makefile.am: Remove globals_io.cc from here.
6407 * src/c++98/Makefile.in: Regenerate.
6408 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
6409 symbol name and then export with GLIBCXX_3.4.31 symver.
6410 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
6411 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
6413 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
6415 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
6417 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
6419 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6421 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
6423 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
6425 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
6427 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
6429 2023-04-18 Patrick Palka <ppalka@redhat.com>
6432 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
6434 * include/std/ranges (range_adaptor_closure): Define for C++23.
6435 * include/std/version (__cpp_lib_ranges): Bump value for
6437 * testsuite/std/ranges/version_c++23.cc: Bump expected value
6438 of __cpp_lib_ranges.
6439 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
6441 2023-04-18 Patrick Palka <ppalka@redhat.com>
6443 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
6445 (__cpp_lib_ranges_iota): Likewise.
6446 (__cpp_lib_ranges_find_last): Likewise.
6447 (__cpp_lib_fold): Rename to ...
6448 (__cpp_lib_ranges_fold): ... this.
6449 * include/std/version: As above.
6450 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
6451 renaming __cpp_lib_fold.
6452 * testsuite/std/ranges/version_c++23.cc: Verify values
6453 of the above feature-test macros.
6455 2023-04-18 Patrick Palka <ppalka@redhat.com>
6458 * include/std/ranges (views::_AsConst::operator()): Add
6459 missing const to constant_range test.
6460 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
6461 Improve formatting. Adjust expected type of v2.
6464 2023-04-14 Patrick Palka <ppalka@redhat.com>
6466 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
6467 (const_sentinel_t): Likewise.
6468 (range_const_reference_t): Likewise.
6469 (constant_range): Likewise.
6470 (__cust_access::__possibly_const_range): Likewise, replacing ...
6471 (__cust_access::__as_const): ... this.
6472 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
6473 (__cust_access::_CEnd::operator()): Likewise.
6474 (__cust_access::_CRBegin::operator()): Likewise.
6475 (__cust_access::_CREnd::operator()): Likewise.
6476 (__cust_access::_CData::operator()): Likewise.
6477 * include/bits/ranges_util.h (ranges::__detail::__different_from):
6478 Make it an alias of std::__detail::__different_from.
6479 (view_interface::cbegin): Define for C++23.
6480 (view_interface::cend): Likewise.
6481 * include/bits/stl_iterator.h (__detail::__different_from): Define.
6482 (iter_const_reference_t): Define for C++23.
6483 (__detail::__constant_iterator): Likewise.
6484 (__detail::__is_const_iterator): Likewise.
6485 (__detail::__not_a_const_iterator): Likewise.
6486 (__detail::__iter_const_rvalue_reference_t): Likewise.
6487 (__detail::__basic_const_iter_cat):: Likewise.
6488 (const_iterator): Likewise.
6489 (__detail::__const_sentinel): Likewise.
6490 (const_sentinel): Likewise.
6491 (basic_const_iterator): Likewise.
6492 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
6493 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
6494 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
6496 (make_const_iterator): Define for C++23.
6497 (make_const_sentinel): Likewise.
6498 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
6499 (as_const_view): Likewise.
6500 (enable_borrowed_range<as_const_view>): Likewise.
6501 (views::__detail::__is_ref_view): Likewise.
6502 (views::__detail::__can_is_const_view): Likewise.
6503 (views::_AsConst, views::as_const): Likewise.
6504 * include/std/span (span::const_iterator): Likewise.
6505 (span::const_reverse_iterator): Likewise.
6506 (span::cbegin): Likewise.
6507 (span::cend): Likewise.
6508 (span::crbegin): Likewise.
6509 (span::crend): Likewise.
6510 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
6511 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
6512 behave independently of C++20 vs C++23.
6513 * testsuite/std/ranges/version_c++23.cc: Verify value of
6514 __cpp_lib_ranges_as_const macro.
6515 * testsuite/24_iterators/const_iterator/1.cc: New test.
6516 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
6518 2023-04-14 Patrick Palka <ppalka@redhat.com>
6520 * include/bits/ranges_base.h (__cust_access::__as_const)
6521 (__cust_access::_CBegin, __cust::cbegin)
6522 (__cust_access::_CEnd, __cust::cend)
6523 (__cust_access::_CRBegin, __cust::crbegin)
6524 (__cust_access::_CREnd, __cust::crend)
6525 (__cust_access::_CData, __cust::cdata): Move down definitions to
6526 shortly after the definition of input_range.
6528 2023-04-14 Patrick Palka <ppalka@redhat.com>
6530 * include/bits/ranges_algo.h: Include <optional> for C++23.
6531 (__cpp_lib_fold): Define for C++23.
6532 (in_value_result): Likewise.
6533 (__detail::__flipped): Likewise.
6534 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
6535 (__detail::__indirectly_binary_left_foldable): Likewise.
6536 (___detail:__indirectly_binary_right_foldable): Likewise.
6537 (fold_left_with_iter_result): Likewise.
6538 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
6539 (__fold_left_fn, fold_left): Likewise.
6540 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
6542 (__fold_left_first_fn, fold_left_first): Likewise.
6543 (__fold_right_fn, fold_right): Likewise.
6544 (__fold_right_last_fn, fold_right_last): Likewise.
6545 * include/std/version (__cpp_lib_fold): Likewise.
6546 * testsuite/25_algorithms/fold_left/1.cc: New test.
6547 * testsuite/25_algorithms/fold_right/1.cc: New test.
6549 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
6551 * include/std/format (formatter): Add comment to deleted default
6552 constructor of primary template.
6553 (_Checking_scanner): Add static_assert.
6555 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6557 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
6558 * doc/html/*: Regenerate.
6560 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6562 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
6563 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
6564 namespace to avoid clashing with libc struct.
6565 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
6567 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
6568 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
6569 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
6570 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
6571 * testsuite/experimental/synchronized_value.cc: Require gthreads
6572 and add missing option for pthreads targets.
6574 2023-04-12 Patrick Palka <ppalka@redhat.com>
6576 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
6578 (__detail::__range_with_movable_reference): Likewise.
6579 (enumerate_view): Likewise.
6580 (enumerate_view::_Iterator): Likewise.
6581 (enumerate_view::_Sentinel): Likewise.
6582 (views::__detail::__can_enumerate_view): Likewise.
6583 (views::_Enumerate, views::enumerate): Likewise.
6584 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
6585 * testsuite/std/ranges/version_c++23.cc: Verify value of
6586 __cpp_lib_ranges_enumerate.
6587 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
6589 2023-04-12 Patrick Palka <ppalka@redhat.com>
6591 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
6592 Propagate _M_trailing_empty in the const-converting constructor
6594 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
6596 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
6598 2023-04-12 Patrick Palka <ppalka@redhat.com>
6600 * src/c++17/floating_from_chars.cc: Include <algorithm>,
6601 <iterator>, <limits> and <cstdint>.
6603 2023-04-12 Patrick Palka <ppalka@redhat.com>
6606 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
6607 parameter types of the lambda wrapper passed to adjacent_find.
6608 (chunk_by_view::_M_find_prev): Likewise.
6609 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
6612 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6615 * include/experimental/internet (basic_endpoint::basic_endpoint()):
6616 Ensure that the required union members are active. Only define
6617 as constexpr for C++20 and later.
6618 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
6620 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
6621 check constexpr default constructor for C++20 and later.
6622 * testsuite/experimental/net/internet/endpoint/extensible.cc:
6625 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6627 * src/c++20/tzdata.zi: Import new file from 2023c release.
6629 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6631 * include/precompiled/stdc++.h (C++17): Don't double-include
6632 <charconv>, once with wrong conditions.
6633 * testsuite/18_support/96817.cc: Require hosted.
6634 * testsuite/18_support/bad_exception/59392.cc: Ditto.
6635 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
6636 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
6637 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
6640 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6642 * include/bits/c++config: When __STDC_HOSTED__ is zero,
6643 disable _GLIBCXX_DEBUG and, if it was set, enable
6644 _GLIBCXX_ASSERTIONS.
6645 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
6646 Include <bits/c++config.h> when determining whether debug is
6647 set, in order to inherit the logic from above
6649 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6651 * testsuite/17_intro/versionconflict.cc: New test.
6652 * include/std/version: Allow disabling the system_header pragma
6653 via _GLIBCXX_TESTING_SYSHDR.
6655 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6657 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
6658 Synchronize the definition block with...
6659 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
6660 ... this one here. Also define the 202202L value, rather than
6661 leaving it up to purely unique_ptr.h, so that the value is
6662 synchronized across all headers.
6663 (__gnu_debug::_Safe_iterator_base): Move into new conditional
6665 * include/std/memory (__cpp_lib_atomic_value_initialization):
6666 Define on freestanding under the same conditions as in
6668 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
6669 Also define on freestanding.
6670 (__cpp_lib_to_chars): Ditto.
6671 (__cpp_lib_gcd): Ditto.
6672 (__cpp_lib_gcd_lcm): Ditto.
6673 (__cpp_lib_raw_memory_algorithms): Ditto.
6674 (__cpp_lib_array_constexpr): Ditto.
6675 (__cpp_lib_nonmember_container_access): Ditto.
6676 (__cpp_lib_clamp): Ditto.
6677 (__cpp_lib_constexpr_char_traits): Ditto.
6678 (__cpp_lib_constexpr_string): Ditto.
6679 (__cpp_lib_sample): Ditto.
6680 (__cpp_lib_lcm): Ditto.
6681 (__cpp_lib_constexpr_iterator): Ditto.
6682 (__cpp_lib_constexpr_char_traits): Ditto.
6683 (__cpp_lib_interpolate): Ditto.
6684 (__cpp_lib_constexpr_utility): Ditto.
6685 (__cpp_lib_shift): Ditto.
6686 (__cpp_lib_ranges): Ditto.
6687 (__cpp_lib_move_iterator_concept): Ditto.
6688 (__cpp_lib_constexpr_numeric): Ditto.
6689 (__cpp_lib_constexpr_functional): Ditto.
6690 (__cpp_lib_constexpr_algorithms): Ditto.
6691 (__cpp_lib_constexpr_tuple): Ditto.
6692 (__cpp_lib_constexpr_memory): Ditto.
6694 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
6696 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
6697 timeout factor on hppa*-*-*.
6699 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
6701 * include/bits/regex.h (sub_match::swap): New function.
6702 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
6704 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
6706 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
6708 * doc/html/manual/ext_demangling.html: Regenerate.
6710 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6712 PR tree-optimization/107087
6713 * include/bits/cow_string.h (basic_string::size()): Add
6714 optimizer hint that _S_empty_rep()._M_length is always zero.
6715 (basic_string::length()): Call size().
6717 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6720 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
6721 Add attribute access with access-mode 'none'.
6722 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
6724 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6726 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
6727 Revert change from member function to data member. Fix for
6728 constant evaluation by detecting which union member is active.
6729 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
6732 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6735 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
6736 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
6738 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6740 * include/experimental/internet (ip::make_address): Implement
6742 (ip::address_v4::broadcast()): Avoid undefined shift.
6743 (ip::basic_endpoint): Fix member functions for constexpr.
6744 (ip::basic_endpoint::_M_is_v6): Replace member function with
6745 data member, adjust member functions using it.
6746 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
6748 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6749 constexpr checks to work in C++14.
6750 * testsuite/experimental/net/internet/address/v4/creation.cc:
6752 * testsuite/experimental/net/internet/endpoint/cons.cc:
6754 * testsuite/experimental/net/internet/network/v4/cons.cc:
6756 * testsuite/experimental/net/internet/network/v4/members.cc:
6758 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
6760 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6762 * include/std/expected (expected::value() &): Use const lvalue
6763 for unex member passed to bad_expected_access constructor, as
6766 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6769 * include/std/expected (expected::transform): Use
6770 std::remove_cv_t instead of std::remove_cvref_t.
6771 (expected::transform_error): Likewise.
6772 (expected<cv void, E>::transform): Likewise.
6773 (expected<cv void, E>::transform_error): Likewise.
6774 * include/std/optional (transform): Use std::remove_cv_t.
6775 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
6777 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6779 * include/std/optional (optional): Adjust static assertion to
6780 reject arrays and functions as well as references.
6781 * testsuite/20_util/optional/requirements_neg.cc: New test.
6783 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6786 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
6787 std::use_facet instead of cached _M_num_get facet.
6788 (istream::operator>>(short&)): Likewise.
6789 (istream::operator>>(int&)): Likewise.
6790 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
6791 std::use_facet instead of cached _M_num_put facet.
6793 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6795 * include/bits/char_traits.h (char_traits::copy): Return without
6796 using memcpy if n==0.
6797 (char_traits::assign): Likewise for memset.
6799 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6802 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
6803 hint for compiler that local strings fit in the local buffer.
6805 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6808 * include/std/chrono (__detail::__get_leap_second_info): Update
6809 expiry date of hardcoded leapseconds list.
6810 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
6812 * src/c++20/tzdata.zi: Import new file from 2023a release.
6813 * testsuite/std/time/time_zone/get_info_local.cc: Only check
6814 transitions for Egypt up to 2014.
6816 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6818 * include/experimental/bits/simd.h (is_simd_flag_type): New.
6819 (_IsSimdFlagType): New.
6820 (copy_from, copy_to, load ctors): Constrain _Flags using
6823 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6825 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
6826 _Base::_S_divides if the optimized _S_divides function is hidden
6827 via the preprocessor.
6829 2023-03-27 Jakub Jelinek <jakub@redhat.com>
6831 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
6832 warning if size_t is not unsigned long.
6834 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6836 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
6837 Add overload, as per LWG 3893.
6838 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
6839 Check assignment from nullptr.
6841 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6843 * include/std/format (formatter<const charT[N], charT>): Do not
6844 define partial speclialization, as per LWG 3833.
6845 * testsuite/std/format/formatter/requirements.cc: Check it.
6847 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6849 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
6851 * testsuite/20_util/exchange/constexpr.cc: Check for it.
6853 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6855 * include/std/version (__cpp_lib_format): Define.
6856 * testsuite/std/format/functions/format.cc: Check it.
6858 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6860 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
6861 Pass rvalues to the callback, as now allowed by LWG 3645.
6862 Enforce preconditions on the return value.
6863 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
6866 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6868 * include/std/format: Add a comment noting that the resolution
6869 of LWG 3720 has been applied..
6871 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6873 * include/bits/regex.h (match_results): Add allocator-extended
6874 copy and move constructors, as per LWG 2195.
6875 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
6877 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6879 * include/bits/stream_iterator.h (istream_iterator): Add
6880 constexpr to copy constructor, as per LWG 3600.
6881 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
6882 Check copy construction.
6884 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6886 * include/experimental/bits/simd_x86.h
6887 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
6888 with __RECIPROCAL_MATH__.
6890 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6892 * include/experimental/bits/simd_detail.h: Don't define
6893 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
6894 * include/experimental/bits/simd_x86.h (_S_divides): Remove
6895 check for __clang__.
6897 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6899 * include/experimental/bits/simd_detail.h: Don't declare the
6900 simd API as constexpr with Clang.
6901 * include/experimental/bits/simd_x86.h (__movm): New.
6902 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
6904 (_SimdImplX86::_S_masked_unary): Clang does not implement the
6905 same builtins. Implement the function using __movm, ?:, and -
6906 operators on vector_size types instead.
6908 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6910 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
6911 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
6913 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6915 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
6918 2023-03-20 Marek Polacek <polacek@redhat.com>
6921 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
6922 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
6923 * testsuite/23_containers/span/explicit.cc: Likewise.
6925 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6928 * include/std/expected (expected<void>::expected(in_place_t)):
6929 Remove template-head.
6931 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
6934 * testsuite/18_support/coroutines/hash.cc: Use const object
6937 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
6940 * include/std/coroutine (hash<>::operator()): Add const.
6941 * testsuite/18_support/coroutines/hash.cc: New test.
6943 2023-03-14 Patrick Palka <ppalka@redhat.com>
6946 * include/std/ranges (repeat_view): Remove redundant parentheses
6948 (repeat_view::_Iterator): Correct the requires-clause.
6950 2023-03-14 Patrick Palka <ppalka@redhat.com>
6952 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
6954 (__cpp_lib_move_iterator_concept): Define for C++20.
6955 (move_iterator::iterator_concept): Strengthen as per P2520R0.
6956 * include/std/version (__cpp_lib_move_iterator_concept): Define
6958 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
6960 2023-03-14 Patrick Palka <ppalka@redhat.com>
6962 * include/bits/ranges_util.h (view_interface::empty): Add
6963 preferred overloads that use ranges::size when the range is
6964 sized as per LWG 3715.
6965 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
6967 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6969 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
6970 Only define for C++17 and later.
6972 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6974 * src/Makefile.am: Add comment about linker script fragments.
6975 * src/Makefile.in: Regenerate.
6977 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6980 * include/bits/mask_array.h (mask_array): Add assertions to
6981 assignment operators.
6982 * include/std/valarray (valarray::operator[](valarray<bool>)):
6984 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
6985 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
6986 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
6987 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
6988 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
6989 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
6990 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
6991 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
6992 * testsuite/26_numerics/valarray/mask.cc: New test.
6994 2023-03-13 Jakub Jelinek <jakub@redhat.com>
6996 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6997 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6999 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
7001 * doc/Makefile.am: Add comment referring to documentation.
7002 * doc/Makefile.in: Regenerate.
7004 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
7006 * doc/html/*: Regenerate.
7008 2023-03-13 Jonny Grant <jg@jguk.org>
7010 * doc/xml/faq.xml: Update copyright year.
7012 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
7014 * include/bits/allocator.h: Fix typo in comment.
7016 2023-03-12 Jakub Jelinek <jakub@redhat.com>
7018 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
7019 if it isn't mangled as DF16b but u6__bf16.
7021 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
7023 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
7025 * doc/html/manual/documentation_hacking.html: Regenerate.
7027 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
7030 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
7031 Remove self-recursion in __init__. Add missing _supports.
7032 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
7035 2023-03-09 Patrick Palka <ppalka@redhat.com>
7037 * include/std/ranges
7038 (cartesian_product_view::_Iterator::_Iterator): Remove
7039 constraint on default constructor as per LWG 3849.
7040 (cartesian_product_view::_Iterator::_M_prev): Adjust position
7041 of _Nm > 0 test as per LWG 3820.
7042 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
7043 checking only on sized cartesian products.
7044 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
7046 2023-03-09 Patrick Palka <ppalka@redhat.com>
7049 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
7051 (repeat_view::_M_pred): Likewise.
7052 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
7053 * testsuite/std/ranges/repeat/1.cc (test05): New test.
7055 2023-03-09 Patrick Palka <ppalka@redhat.com>
7058 * include/std/ranges (__detail::__can_single_view): New concept.
7059 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
7060 end of the function declarator.
7061 (__detail::__can_iota_view): New concept.
7062 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
7063 end of the function declarator.
7064 (__detail::__can_istream_view): New concept.
7065 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
7066 end of the function declarator.
7067 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
7068 * testsuite/std/ranges/istream_view.cc (test08): New test.
7069 * testsuite/std/ranges/single_view.cc (test07): New test.
7071 2023-03-09 Patrick Palka <ppalka@redhat.com>
7074 * include/std/ranges (cartesian_product_view::end): When
7075 building the tuple of iterators, avoid calling ranges::begin on
7076 the first range if __empty_tail is false.
7077 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
7079 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
7082 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
7085 2023-03-07 Jakub Jelinek <jakub@redhat.com>
7087 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
7088 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
7089 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
7090 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
7091 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
7093 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
7096 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
7097 not match symbols in namespace std::__gnu_cxx11_ieee128.
7098 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
7099 std::__gnu_cxx11_ieee128::money_{get,put}.
7101 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
7103 * libsupc++/eh_personality.cc: Fix spelling in comment.
7105 2023-03-03 Alexandre Oliva <oliva@adacore.com>
7107 * testsuite/30_threads/async/async.cc (test04): Initialize
7108 steady_start, renamed from steady_begin, next to slow_start.
7109 Increase tolerance for final wait.
7111 2023-03-03 Alexandre Oliva <oliva@adacore.com>
7113 * testsuite/libstdc++-prettyprinters/80276.cc: Add
7114 std::string to debug info.
7115 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
7117 2023-03-03 Alexandre Oliva <oliva@adacore.com>
7122 * include/bits/std_thread.h (thread::_M_thread_deps): New
7123 static implicitly-inline member function.
7124 (std::thread template ctor): Pass it to _M_start_thread.
7125 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
7126 parameter, force it live on entry.
7128 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7130 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
7131 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
7133 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
7134 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
7137 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
7139 * include/bits/cow_string.h: Fix typo in comment.
7141 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
7143 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
7144 current time zone cannot be determined.
7145 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
7146 HAVE_TZDB macro and test all members unconditionally.
7148 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
7151 * include/bits/uses_allocator_args.h
7152 (uses_allocator_construction_args): Implement LWG 3527.
7153 * testsuite/20_util/pair/astuple/get-2.cc: New test.
7154 * testsuite/20_util/scoped_allocator/108952.cc: New test.
7155 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
7157 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
7160 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
7161 Add __assign_one static member function.
7162 (__copy_move<true, false, RA>): Likewise.
7163 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
7165 (__copy_move_backward<IsMove, true, RA>): Likewise.
7166 * testsuite/25_algorithms/copy/108846.cc: New test.
7167 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
7168 * testsuite/25_algorithms/copy_n/108846.cc: New test.
7169 * testsuite/25_algorithms/move/108846.cc: New test.
7170 * testsuite/25_algorithms/move_backward/108846.cc: New test.
7172 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
7174 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
7177 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
7179 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
7181 * include/bits/basic_string.h (resize_and_overwrite): Add
7184 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
7186 * include/experimental/bits/simd.h: Line breaks and indenting
7187 fixed to follow the libstdc++ standard.
7188 * include/experimental/bits/simd_builtin.h: Likewise.
7189 * include/experimental/bits/simd_fixed_size.h: Likewise.
7190 * include/experimental/bits/simd_neon.h: Likewise.
7191 * include/experimental/bits/simd_ppc.h: Likewise.
7192 * include/experimental/bits/simd_scalar.h: Likewise.
7193 * include/experimental/bits/simd_x86.h: Likewise.
7195 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
7198 * include/experimental/bits/simd_fixed_size.h
7199 (_SimdImplFixedSize::_S_broadcast): Replace inline with
7200 _GLIBCXX_SIMD_INTRINSIC.
7201 (_SimdImplFixedSize::_S_generate): Likewise.
7202 (_SimdImplFixedSize::_S_load): Likewise.
7203 (_SimdImplFixedSize::_S_masked_load): Likewise.
7204 (_SimdImplFixedSize::_S_store): Likewise.
7205 (_SimdImplFixedSize::_S_masked_store): Likewise.
7206 (_SimdImplFixedSize::_S_min): Likewise.
7207 (_SimdImplFixedSize::_S_max): Likewise.
7208 (_SimdImplFixedSize::_S_complement): Likewise.
7209 (_SimdImplFixedSize::_S_unary_minus): Likewise.
7210 (_SimdImplFixedSize::_S_plus): Likewise.
7211 (_SimdImplFixedSize::_S_minus): Likewise.
7212 (_SimdImplFixedSize::_S_multiplies): Likewise.
7213 (_SimdImplFixedSize::_S_divides): Likewise.
7214 (_SimdImplFixedSize::_S_modulus): Likewise.
7215 (_SimdImplFixedSize::_S_bit_and): Likewise.
7216 (_SimdImplFixedSize::_S_bit_or): Likewise.
7217 (_SimdImplFixedSize::_S_bit_xor): Likewise.
7218 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
7219 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
7220 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
7221 explicit about not always-inline, yet).
7222 (_SimdImplFixedSize::_S_isinf): Likewise.
7223 (_SimdImplFixedSize::_S_isfinite): Likewise.
7224 (_SimdImplFixedSize::_S_isnan): Likewise.
7225 (_SimdImplFixedSize::_S_isnormal): Likewise.
7226 (_SimdImplFixedSize::_S_signbit): Likewise.
7228 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
7231 * include/experimental/bits/simd_builtin.h
7232 (_SimdImplBuiltin::_S_masked_unary): More efficient
7233 implementation of masked inc-/decrement for integers and floats
7235 * include/experimental/bits/simd_x86.h
7236 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
7237 builtins for masked inc-/decrement.
7239 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7241 * include/experimental/executor (executor): Constrain template
7244 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7246 * include/experimental/internet (basic_endpoint): Add missing
7247 constexpr to comparison operators.
7248 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
7250 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7252 * include/experimental/internet (network_v4::netmask()): Avoid
7254 (network_v4::broadcast()): Optimize and fix for targets with
7255 uint_least32_t wider than 32 bits.
7256 (network_v4::to_string(const Allocator&)): Fix for custom
7257 allocators and optimize using to_chars.
7258 (operator==(const network_v4&, const network_v4&)): Add missing
7260 (operator==(const network_v6&, const network_v6&)): Likewise.
7261 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
7262 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
7264 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7266 * include/experimental/internet (address_4(const bytes_type&)):
7267 Use __builtin_bit_cast if available, otherwise convert to
7269 (address_v4::to_bytes()): Likewise, but convert from network
7271 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
7272 incorrect tests. Check for constexpr too.
7273 * testsuite/experimental/net/internet/address/v4/creation.cc:
7275 * testsuite/experimental/net/internet/address/v4/members.cc:
7276 Check that bytes_type is a standard-layout type.
7278 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7280 * include/experimental/internet (address_v4::to_string):
7282 * testsuite/experimental/net/internet/address/v4/members.cc:
7283 Check more addresses.
7285 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7287 * include/ext/aligned_buffer.h (__aligned_buffer): Add
7290 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
7292 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
7295 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7297 * testsuite/experimental/simd/tests/reductions.cc: Introduce
7298 max_distance as the type-dependent max error.
7300 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7302 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
7303 int. The actual range of these indexes is very small.
7305 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7307 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
7308 (_S_bit_shift_right): Declare constexpr. The implementation was
7309 already expecting constexpr evaluation.
7311 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7314 * include/experimental/bits/simd_detail.h
7315 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
7318 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
7321 * include/experimental/bits/simd.h (__vector_broadcast):
7322 Implement via __vector_broadcast_impl instead of
7323 __call_with_n_evaluations + 2 lambdas.
7324 (__vector_broadcast_impl): New.
7326 2023-02-22 Alexandre Oliva <oliva@adacore.com>
7328 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
7329 Avoid destruction of the mutex pool.
7331 2023-02-22 Alexandre Oliva <oliva@adacore.com>
7333 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
7335 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
7338 2023-02-22 Alexandre Oliva <oliva@adacore.com>
7340 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
7343 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
7345 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
7347 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
7349 * include/experimental/bits/simd.h (__extract_part, split):
7350 Use reserved name for template parameter.
7352 2023-02-20 Andreas Schwab <schwab@suse.de>
7354 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
7356 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
7358 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
7359 * doc/html/faq.html: Regenerate.
7361 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7363 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
7364 between scalars requires the __bit_cast helper function instead
7367 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7369 * include/experimental/bits/simd_x86.h
7370 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
7371 (_SimdImplX86::_S_less_equal): Do not call
7372 __builtin_is_constant_evaluated in constexpr-if.
7374 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7376 * testsuite/experimental/simd/tests/bits/verify.h
7377 (verify::verify): Use %zx for size_t in format string.
7379 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7381 * testsuite/experimental/simd/generate_makefile.sh: Generate and
7382 pre-compile pch.h, which includes all headers that do not depend
7383 on command-line macros.
7384 * testsuite/experimental/simd/tests/bits/main.h: New file.
7385 (iterate_abis, main): Moved from verify.h.
7386 * testsuite/experimental/simd/tests/bits/verify.h
7387 (iterate_abis, main): Moved to main.h.
7388 * testsuite/experimental/simd/tests/bits/conversions.h: Add
7390 (genHalfBits): Simplify.
7391 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
7393 (make_alternating_mask): Moved from mask_loadstore.
7394 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
7396 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
7397 * testsuite/experimental/simd/tests/mask_loadstore.cc
7398 (make_mask, make_alternating_mask): Removed.
7399 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7400 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
7402 * testsuite/experimental/simd/tests/abs.cc: Only include
7405 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7406 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7407 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7408 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
7409 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7410 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7411 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7412 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7413 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7414 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7415 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7416 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7417 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7418 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7419 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7420 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7421 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7422 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7423 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7424 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7425 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7426 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7427 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
7428 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7429 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7430 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7431 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7432 * testsuite/experimental/simd/tests/where.cc: Ditto.
7434 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7436 * testsuite/experimental/simd/README.md: Document the timeout
7437 and timeout-factor directives. Minor typo fixed.
7439 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7442 * include/experimental/bits/simd_detail.h: Define
7443 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
7444 * include/experimental/bits/simd.h: Annotate lambdas with
7445 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
7446 * include/experimental/bits/simd_builtin.h: Ditto.
7447 * include/experimental/bits/simd_converter.h: Ditto.
7448 * include/experimental/bits/simd_fixed_size.h: Ditto.
7449 * include/experimental/bits/simd_math.h: Ditto.
7450 * include/experimental/bits/simd_neon.h: Ditto.
7451 * include/experimental/bits/simd_x86.h: Ditto.
7453 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
7455 * include/experimental/bits/simd.h
7456 (_SimdWrapper::_M_is_constprop_none_of)
7457 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
7458 computed result still satisfies __builtin_constant_p.
7460 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7462 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
7465 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7467 * include/Makefile.am: Add new header.
7468 * include/Makefile.in: Regenerate.
7469 * include/experimental/synchronized_value: New file.
7470 * testsuite/experimental/synchronized_value.cc: New test.
7472 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7474 * include/experimental/optional: Fix header name in comment.
7476 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7478 * include/std/format (__format::_Arg_store): New class template.
7479 (basic_format_args): Remove nested type _Store and add deduction
7480 guide from _Arg_store.
7481 (basic_format_arg, make_format_args): Adjust.
7482 * testsuite/std/format/arguments/lwg3810.cc: New test.
7484 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7486 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
7487 constraints to constructors and add deleted overloads for the
7488 dangling cases, as per P2255R2.
7489 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
7490 make dangling cases ill-formed.
7491 * testsuite/20_util/pair/dangling_ref.cc: New test.
7493 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7495 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
7497 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7499 * include/ext/throw_allocator.h: Use reserved names for
7502 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7504 * testsuite/17_intro/names_pstl.cc: Add space after effective
7507 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7509 * include/pstl/algorithm_fwd.h (__pattern_search_n)
7510 (__brick_unique_copy, __brick_adjacent_find)
7511 (__brick_generate_n, __pattern_generate_n): Use reserved names
7513 * include/pstl/algorithm_impl.h (__brick_unique_copy)
7514 (__pattern_reverse, __brick_generate_n): Likewise.
7515 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
7516 (__prefer_parallel_tag): Likewise.
7517 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
7518 * include/pstl/glue_numeric_defs.h (adjacent_difference):
7520 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
7522 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
7523 * include/pstl/unseq_backend_simd.h (_Combiner)
7524 (__simd_min_element, __simd_minmax_element): Likewise.
7525 * testsuite/17_intro/names_pstl.cc: New test.
7527 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7529 * include/bits/fs_ops.h (create_directory): Use reserved name
7531 * include/bits/ranges_algo.h (__contains_subrange_fn):
7533 * include/bits/regex_automaton.h (_State_base::_M_print):
7535 * include/bits/regex_automaton.tcc(_State_base::_M_print):
7537 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
7538 * include/experimental/bits/fs_ops.h (create_directory):
7540 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
7541 (recursive_timed_mutex:_M_clocklock): Likewise.
7542 * include/std/tuple (basic_common_reference): Likewise.
7543 * libsupc++/cxxabi_init_exception.h
7544 (__cxa_init_primary_exception): Likewise.
7545 * testsuite/17_intro/names.cc: Add checks.
7547 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
7549 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
7550 to www.open-std.org and https.
7551 * doc/html/manual/status.html: Regenerate.
7553 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
7556 * include/std/atomic (atomic_flag_wait): Add.
7557 (atomic_flag_wait_explicit): Add.
7558 (atomic_flag_notify): Add.
7559 (atomic_flag_notify_explicit): Add.
7560 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
7561 Add test case to cover missing atomic_flag free functions.
7563 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
7566 * include/std/atomic (atomic_flag_test): Add.
7567 (atomic_flag_test_explicit): Add.
7568 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
7569 test case to cover missing atomic_flag free functions.
7570 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
7573 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
7575 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
7576 "The Component Object Model" reference.
7577 * doc/html/manual/policy_data_structures.html: Regenerate.
7579 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7581 * doc/xml/manual/containers.xml: Tweak a link to N1780
7583 * doc/html/manual/associative.html: Regenerate.
7585 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7587 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
7588 * doc/html/manual/facets.html: Regenerate.
7590 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
7592 * doc/xml/manual/policy_data_structures_biblio.xml: Update
7593 link to "Worst-case efficient priority queues".
7594 * doc/html/manual/policy_data_structures.html: Regenerate.
7596 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7598 * doc/xml/manual/using.xml: Document newly-freestanding
7599 headers and the effect of the -ffreestanding flag.
7600 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
7602 * doc/xml/manual/configure.xml: Document that hosted installs
7603 respect __STDC_HOSTED__.
7604 * doc/xml/manual/test.xml: Document how to run tests in
7606 * doc/html/*: Regenerate.
7608 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7610 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
7611 (__find_last_if_fn): Likewise.
7613 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7615 * include/std/type_traits: Add diagnostic pragmas around
7616 references to deprecated std::aligned_storage and
7617 std::aligned_union traits.
7618 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
7619 Add dg-warning for et c++23.
7620 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
7622 * testsuite/20_util/aligned_storage/value.cc: Likewise.
7623 * testsuite/20_util/aligned_union/1.cc: Likewise.
7624 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
7627 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7629 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
7630 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
7631 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
7632 * include/std/type_traits (aligned_storage, aligned_union)
7633 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
7634 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
7635 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
7637 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7639 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
7640 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
7641 consistent with other 'deprecated' macros.
7642 * include/std/type_traits (is_pod, is_pod_v): Use
7643 _GLIBCXX20_DEPRECATED_SUGGEST instead.
7645 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7647 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
7648 * Makefile.in: Regenerate.
7649 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
7650 There's no history to be compatible with.
7651 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
7652 source files from the build.
7653 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7654 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7655 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7656 * src/Makefile.in: Regenerate.
7657 * src/c++11/Makefile.in: Regenerate.
7658 * src/c++17/Makefile.in: Regenerate.
7659 * src/c++20/Makefile.in: Regenerate.
7660 * src/c++98/Makefile.in: Regenerate.
7662 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7664 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
7665 filesystem, libbacktrace and experimental.
7666 * src/Makefile.in: Regenerate.
7668 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
7671 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
7674 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
7676 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
7677 * doc/html/manual/documentation_hacking.html: Regenerate.
7679 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
7681 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
7682 storage to the move-from instance when allocators are equal.
7683 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
7686 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
7688 * config/os/gnu-linux/os_defines.h [!__linux__]
7689 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
7691 2023-02-03 Patrick Palka <ppalka@redhat.com>
7693 * include/bits/ranges_algo.h (__find_last_fn, find_last):
7695 (__find_last_if_fn, find_last_if): Define.
7696 (__find_last_if_not_fn, find_last_if_not): Define.
7697 * testsuite/25_algorithms/find_last/1.cc: New test.
7698 * testsuite/25_algorithms/find_last_if/1.cc: New test.
7699 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
7701 2023-02-03 Patrick Palka <ppalka@redhat.com>
7703 * include/bits/ranges_algo.h (out_value_result): Define.
7704 (iota_result): Define.
7705 (__iota_fn, iota): Define.
7706 * testsuite/25_algorithms/iota/1.cc: New test.
7708 2023-02-03 Patrick Palka <ppalka@redhat.com>
7710 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
7711 (__contains_subrange_fn, contains_subrange): Define.
7712 * testsuite/25_algorithms/contains/1.cc: New test.
7713 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
7715 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7717 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
7718 * doc/html/manual/abi.html: Regenerate.
7720 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7722 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
7723 errc::function_not_supported instead of errc::not_supported.
7725 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7727 * include/std/sstream (basic_stringbuf::view): Define for old
7729 (basic_istringstream::view, basic_0stringstream::view)
7730 (basic_stringstream::view): Likewise.
7731 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
7732 { dg-require-effective-target cxx11_abi }.
7733 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
7735 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
7736 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
7738 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
7739 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
7740 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
7741 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
7744 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7747 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
7748 conversion operators for directory iterator comparisons with
7749 std::default_sentinel_t.
7750 * include/bits/fs_path.h (path::path(string_view, _Type))
7751 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
7753 * src/c++17/fs_path.cc: ... here.
7754 * testsuite/27_io/filesystem/path/108636.cc: New test.
7756 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7758 * include/std/variant (variant::operator=): Implement resolution
7760 * testsuite/20_util/variant/lwg3585.cc: New test.
7762 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7764 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
7766 * doc/html/manual/using_exceptions.html: Regenerate.
7768 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7770 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
7771 * doc/html/manual/debug.html: Regenerate.
7773 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7775 * src/c++11/random.cc (random_device::_M_fini): Do not try to
7776 close the file handle if the target doesn't support the
7777 /dev/random and /dev/urandom files.
7779 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7781 * config/os/generic/error_constants.h (errc::value_too_large)
7783 * src/c++11/system_error.cc
7784 (system_category::default_error_condition) [__AVR__]: Only match
7785 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
7786 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
7787 for ENOENT etc. in switch.
7788 (fs::remove_all) [__AVR__]: Likewise.
7789 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
7792 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7794 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
7796 * configure: Regenerate.
7798 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
7801 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
7802 struct at end of S0.
7804 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
7806 * doc/xml/manual/shared_ptr.xml: Move links from both
7807 http://open-std.org and http://www.open-std.org to
7808 https://www.open-std.org.
7809 * doc/html/manual/memory.html: Regenerate.
7811 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7813 * doc/xml/manual/appendix_contributing.xml: Adjust link to
7814 ISO C++ standard at ANSI.
7815 Move link to www.open-std.org to https.
7816 * doc/html/manual/appendix_contributing.html: Regenerate.
7818 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7820 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
7822 * doc/html/manual/documentation_hacking.html: Regenerate.
7824 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7826 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
7827 * doc/html/manual/abi.html: Regenerate.
7829 2023-01-27 Jakub Jelinek <jakub@redhat.com>
7832 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
7833 include features.h if present and then check __GLIBC__ and
7834 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
7835 __GLIBC_PREREQ which isn't defined yet.
7837 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7839 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
7842 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7845 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
7847 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7849 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
7850 rules named "+" for compatibility with older tzdata.zi files.
7852 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7855 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
7857 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
7859 * testsuite/23_containers/map/modifiers/108554.cc: New test.
7861 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7864 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
7865 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
7867 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
7869 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
7871 * doc/html/manual/bugs.html: Regenerate.
7873 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7876 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
7877 /etc/sysconfig/clock.
7879 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7882 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
7883 std::make_reverse_iterator.
7884 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
7885 (make_from_tuple): Add static assertion from P2255 to diagnose
7886 dangling references.
7887 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
7888 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
7890 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
7892 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
7893 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
7894 (_Safe_iterator::operator++(int)): Use latter.
7895 (_Safe_iterator::operator--(int)): Likewise.
7896 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
7898 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
7900 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
7901 (_Safe_local_iterator::operator++(int)): Use latter.
7902 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
7903 entry associated to the array entry.
7905 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7907 * include/bits/fs_path.h (u8path): Add deprecated attribute.
7908 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
7909 -Wno-deprecated-declarations for C++20 and later.
7910 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
7912 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
7913 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
7914 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
7916 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7918 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
7919 Always call _M_fini and _M_getentropy.
7921 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
7923 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
7924 to www.open-std.org to use https.
7925 (COM: Component Model Object Technologies): Rename from...
7926 (The Component Object Model): ...to.
7927 * doc/html/manual/policy_data_structures.html: Regenerate.
7929 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
7931 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
7932 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
7933 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
7935 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
7937 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
7938 of $host. Fix check for file being present during native build.
7939 * configure: Regenerate.
7941 2023-01-17 Martin Liska <mliska@suse.cz>
7943 * src/libbacktrace/Makefile.in: Regenerate.
7945 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7947 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
7949 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7952 * include/c_compatibility/stdatomic.h: Change copyright line to
7953 be consistent with other headers contributed under DCO terms.
7954 * include/std/expected: Add full stop to copyright line.
7955 * src/c++20/tzdb.cc: Likewise.
7957 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
7959 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
7961 * doc/xml/manual/status_cxx2017.xml: Ditto.
7962 * doc/xml/manual/status_cxx2020.xml: Ditto.
7963 * doc/xml/manual/status_cxx2023.xml: Ditto.
7964 * doc/html/manual/status.html: Regenerate.
7966 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7968 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
7969 and fail gracefully if defining the weak symbol doesn't work.
7971 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
7974 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
7975 fix to other iterator category.
7976 (_Safe_iterator<>::operator--(int)): Likewise.
7977 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
7979 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
7980 (invalid_local_iterator_post_increment): New.
7981 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
7983 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
7986 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7988 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
7991 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7993 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
7995 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
7997 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
7998 windows.h. Add pecoff as FORMAT_FILE.
7999 * config.h.in: Regenerate.
8000 * configure: Regenerate.
8001 * src/libbacktrace/Makefile.am: Regenerate.
8002 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
8004 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
8006 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
8007 raw __name if __cxa_demangle could not demangle it.
8009 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
8012 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
8015 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
8017 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
8019 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
8021 * testsuite/std/time/tzdb_list/1.cc: Likewise.
8023 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
8025 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
8026 --with-libstdcxx-zoneinfo-dir configure option with
8027 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
8029 * config.h.in: Regenerate.
8030 * configure: Regenerate.
8031 * doc/xml/manual/configure.xml: Document configure option.
8032 * doc/html/manual/configure.html: Regenerate.
8033 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
8034 * src/c++20/Makefile.in: Regenerate.
8035 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
8036 null pointer if no directory is configured.
8037 (zoneinfo_dir): Replace with ...
8038 (zoneinfo_file): New function.
8039 (tzdata_stream): New istream class.
8040 (remote_version, reload_tzdb): Use tzdata_stream.
8041 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
8042 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
8043 tzdata.zi file in default location.
8044 * src/c++20/tzdata.zi: New file.
8046 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
8048 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
8049 * testsuite/std/time/month_day/io.cc: New test.
8050 * testsuite/std/time/month_day_last/io.cc: New test.
8051 * testsuite/std/time/month_weekday/io.cc: New test.
8052 * testsuite/std/time/month_weekday_last/io.cc: New test.
8053 * testsuite/std/time/weekday_indexed/io.cc: New test.
8054 * testsuite/std/time/weekday_last/io.cc: New test.
8055 * testsuite/std/time/year_month/io.cc: New test.
8056 * testsuite/std/time/year_month_day_last/io.cc: New test.
8057 * testsuite/std/time/year_month_weekday/io.cc: New test.
8058 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
8060 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
8062 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
8064 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
8067 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
8069 * include/bits/std_mutex.h: Include <errno.h>.
8071 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
8073 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
8074 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
8075 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
8076 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
8077 std::make_unique with a freestanding-compatible wrapper around
8079 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
8080 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
8081 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
8083 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
8084 of __cpp_lib_ranges in !HOSTED.
8086 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
8088 * include/Makefile.am: Install bits/char_traits.h,
8090 * include/Makefile.in: Regenerate.
8091 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
8092 mbstate-only bits behind appropriate #ifs.
8093 * include/std/string_view: Gate <iostream> functionality behind
8095 * include/std/version: Enable __cpp_lib_constexpr_string_view
8096 and __cpp_lib_starts_ends_with in !HOSTED.
8097 * include/std/ranges: Re-enable __is_basic_string_view on
8098 freestanding, include <string_view> directly.
8099 * include/precompiled/stdc++.h: Include <string_view> when
8101 * testsuite/20_util/function_objects/searchers.cc: Skip testing
8102 boyer_moore searchers on freestanding
8103 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
8104 <string>-related tests behind __STDC_HOSTED__.
8105 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
8106 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
8107 unused <stdexcept> include.
8108 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
8109 unused <vector> include.
8110 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
8111 Guard <string> related testing behind __STDC_HOSTED__.
8112 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
8113 Guard <stdexcept> related tests behind __STDC_HOSTED__.
8114 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
8116 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
8117 Guard <stdexcept> tests behind __STDC_HOSTED__.
8118 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
8119 Enable test on freestanding, guard <stdexcept> bits behind
8121 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
8122 Guard <stdexcept> bits behind __STDC_HOSTED__.
8123 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
8126 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
8129 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
8130 errors in incomplete multibyte sequences.
8131 (utf16_in): Remove surrogates parameter. Fix conditions for
8133 (utf16_out): Fix condition for returning partial.
8134 (ucs2_in): Do not pass surrogates argument to utf16_in.
8135 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
8136 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
8138 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
8141 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
8144 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
8145 __GTHREAD_LEGACY_MUTEX_T if defined.
8147 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
8150 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
8151 Export __try_use_facet specializations for facets in namespace
8153 * config/os/gnu-linux/ldbl-ieee128-extra.ver
8154 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
8156 * testsuite/util/testsuite_abi.cc: Add to lists of known and
8159 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
8161 * include/bits/std_mutex.h: Remove <system_error> include.
8162 * include/std/condition_variable: Add <bits/error_constants.h>
8164 * include/std/mutex: Likewise.
8165 * include/std/shared_mutex: Likewise.
8167 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
8170 * include/experimental/memory_resource
8171 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
8172 (do_allocate, do_deallocate): Check it.
8173 * testsuite/experimental/memory_resource/new_delete_resource.cc:
8174 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
8176 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
8178 * doc/xml/manual/abi.xml: Add latest library versions.
8179 * doc/html/manual/abi.html: Regenerate.
8181 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
8184 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
8185 unused _Alloc_node instance.
8187 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
8189 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
8190 Define as unsigned long if always lock-free, and unsigned int
8193 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
8195 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
8196 __catch macros for exception handling.
8198 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
8201 * include/bits/stl_algobase.h (__lg): Replace six overloads with
8202 a single function template for all integer types.
8203 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
8204 arithmetic results back to _Distance.
8206 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
8209 * include/std/span (span::span()): Un-simplify constraint to
8210 work for size_t of lesser rank than int.
8212 2023-01-07 LIU Hao <lh_mouse@126.com>
8214 PR middle-end/108300
8215 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
8217 * src/c++11/thread.cc: Likewise.
8218 * src/c++17/fs_ops.cc: Likewise.
8219 * src/filesystem/ops.cc: Likewise.
8221 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8224 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
8226 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8229 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
8230 template and partial specialization for synchronizing access to
8231 time_zone::_Impl::infos.
8232 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
8235 2023-01-06 Patrick Palka <ppalka@redhat.com>
8238 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
8239 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
8240 (__cpp_lib_ranges_chunk): Likewise.
8241 (__cpp_lib_ranges_slide): Likewise.
8242 (__cpp_lib_ranges_chunk_by): Likewise.
8243 (__cpp_lib_ranges_join_with): Likewise.
8244 (__cpp_lib_ranges_repeat): Likewise.
8245 (__cpp_lib_ranges_stride): Likewise.
8246 (__cpp_lib_ranges_cartesian_product): Likewise.
8247 (__cpp_lib_ranges_as_rvalue): Likewise.
8248 * include/std/version: Ditto.
8249 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
8251 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
8252 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
8253 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
8254 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
8255 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
8256 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
8257 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
8258 * testsuite/std/ranges/repeat/1.cc: Likewise.
8259 * testsuite/std/ranges/zip/1.cc: Likewise.
8260 * testsuite/std/ranges/version_c++23.cc: New test.
8262 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8265 * include/std/bitset (operator>>): Use alloca in the right
8266 scope, not in a constructor.
8267 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
8269 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8272 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
8273 Disable visiting floating-point types.
8275 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
8278 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
8279 (_Safe_iterator::operator--(int)): Do not hold lock around
8280 construction of return value.
8282 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
8284 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
8285 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
8286 lock release. Revise loop.
8287 (__atomic_add): Likewise.
8289 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8292 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
8294 (StdChronoTimePointPrinter::to_string): Use it.
8296 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8299 * include/std/functional (_Bind_front): Add no_unique_address
8300 attribute to data members.
8301 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
8302 size of call wrappers with empty types for targets and bound
8305 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8308 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
8309 using only last component of the name.
8311 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8315 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
8316 the latest symbol version.
8317 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
8318 atomic<_Node*> is not always lock free.
8319 (USE_ATOMIC_LIST_HEAD): New macro.
8320 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
8321 definition of weak symbol.
8322 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
8323 (tzdb_list::_Node::_S_list_head): New function for accessing
8324 list head efficiently.
8325 (tzdb_list::_Node::_S_cache_list_head): New function for
8326 updating _S_list_head.
8328 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
8331 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
8332 duration rep is unsigned.
8333 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
8335 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
8338 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
8339 Add __gnu_cxx::zoneinfo_dir_override().
8341 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
8344 * include/std/array (__array_traits<T, 0>::operator T*()): Add
8346 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
8347 std::array<T, 0>::data().
8350 Copyright (C) 2023 Free Software Foundation, Inc.
8352 Copying and distribution of this file, with or without modification,
8353 are permitted in any medium without royalty provided the copyright
8354 notice and this notice are preserved.