1 2022-12-15 Jakub Jelinek <jakub@redhat.com>
4 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Export
5 _ZTIDF[0-9]*[_bx], _ZTIPDF[0-9]*[_bx] and _ZTIPKDF[0-9]*[_bx].
6 * testsuite/util/testsuite_abi.cc (check_version): Handle
9 2022-12-14 Jonathan Wakely <jwakely@redhat.com>
12 * include/std/stacktrace (basic_stracktrace::_Impl): Do not
13 multiply N by sizeof(value_type) when allocating.
15 2022-12-13 Jakub Jelinek <jakub@redhat.com>
17 * src/libbacktrace/backtrace-rename.h (backtrace_uncompress_zstd):
20 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
22 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc: New
25 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
28 * include/std/format (basic_format_string): Fix constraint.
29 * testsuite/std/format/format_string.cc: New test.
31 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
33 * include/std/chrono (hh_mm_ss): Rename __is_unsigned member to
35 * include/std/format (basic_format_context): Rename _Out_
36 template parameter to _Out2.
37 * testsuite/17_intro/names.cc: Add Windows SAL annotation
40 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
43 * include/std/atomic (__cpp_lib_atomic_lock_free_type_aliases):
45 (atomic_signed_lock_free, atomic_unsigned_lock_free): Define
47 * include/std/version (__cpp_lib_atomic_lock_free_type_aliases):
49 * testsuite/29_atomics/atomic/lock_free_aliases.cc: New test.
51 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
53 * include/std/stacktrace (operator<<): Only output to narrow
55 * testsuite/19_diagnostics/stacktrace/synopsis.cc:
57 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
60 * include/std/chrono (hh_mm_ss): Remove digit separators.
62 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
64 * include/ext/pb_ds/detail/type_utils.hpp (PB_DS_STATIC_ASSERT):
65 Add unused attribute to avoid -Wunused-local-typedef warnings.
66 * testsuite/17_intro/tag_type_explicit_ctor.cc: Add pragma to
67 ignore -Wunused-variable warnings
69 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
71 * include/bits/chrono.h (duration_cast, floor, round, abs, ceil)
72 (time_point_cast): Add [[nodiscard]] attribute and doxygen
74 (treat_as_floating_point): Add doxygen commen.
76 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
78 * include/bits/chrono.h (duration, time_point): Change 'struct'
81 2022-12-07 Jonathan Wakely <jwakely@redhat.com>
82 François Dumont <frs.dumont@gmail.com>
84 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
85 (_Error_formatter::_Error_formatter): Pass error handler to
86 __glibcxx_backtrace_create_state. Pass 1 for threaded argument.
87 (_Error_formatter::_S_err): Define empty function.
88 * src/c++11/debug.cc (_Error_formatter::_M_error): Pass error
89 handler to __glibcxx_backtrace_full.
91 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
94 * testsuite/17_intro/names.cc: Do not check __unused on old
97 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
100 * include/std/format (_Iter_sink::_M_overflow): Add cast to
102 (_Iter_sink<CharT, contiguous_iterator auto>::_M_make_span): Use
103 typedef instead of decltype.
104 * testsuite/std/format/functions/107871.cc: New test.
106 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
108 * include/std/chrono (chrono::hh_mm_ss): Do not use 64-bit
109 representations for all four duration members. Reorder members.
110 (hh_mm_ss::hh_mm_ss()): Define as defaulted.
111 (hh_mm_ss::hh_mm_ss(Duration)): Delegate to a new private
112 constructor, instead of calling chrono::abs repeatedly.
113 * testsuite/std/time/hh_mm_ss/1.cc: Check floating-point
114 representations. Check default constructor. Check sizes.
116 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
119 * include/bits/vector.tcc (insert(const_iterator, const T&)):
120 Add assertion and optimization hint that the iterator for the
121 insertion point must be non-null.
123 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
125 * include/bits/std_mutex.h (mutex): Add nodiscard attribute to
126 try_lock member function.
127 * include/bits/unique_lock.h (unique_lock): Likewise for
128 try_lock, try_lock_until, try_lock_for member functions, and
129 owns_lock and mutex member functions.
130 * include/std/mutex (recursive_mutex): Likewise for try_lock
132 (timed_mutex, recursive_timed_mutex, try_lock): Likewise for
133 try_lock, try_lock_until, try_lock_for member functions.
134 (try_lock): Likewise for non-member function.
135 * include/std/shared_mutex (shared_mutex): Likewise for try_lock
136 and try_lock_shared member functions.
137 (shared_timed_mutex): Likewise for try_lock, try_lock_for,
138 try_lock_shared, try_lock_shared_for, try_lock_until, and
139 try_lock_shared_until member functions.
140 (shared_lock): Likewise for try_lock, try_lock, try_lock_for,
141 try_lock_until, owns_lock, and mutex member functions.
142 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
143 Cast discarded value expression to void.
144 * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
145 * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
146 * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
148 * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
150 * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
152 * testsuite/30_threads/try_lock/4.cc: Likewise.
153 * testsuite/30_threads/unique_lock/cons/60497.cc: Likewise.
154 * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
155 * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
158 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
160 * include/std/format (basic_format_parse_context::next_arg_id):
161 Only check arg-id is in range during constant evaluation.
162 * testsuite/std/format/functions/format.cc: Check "{:#Lx}".
163 * testsuite/std/format/parse_ctx.cc: Adjust expected results for
164 format-strings using an out-of-range arg-id.
166 2022-12-04 Iain Sandoe <iain@sandoe.co.uk>
168 * config/os/bsd/darwin/os_defines.h
169 (_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro
170 to OS versions that need it.
172 2022-12-04 Iain Sandoe <iain@sandoe.co.uk>
174 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_WEAK_DEFINITION): Use the
175 implementation namespace for the weak attribute.
177 2022-12-02 Björn Schäpers <bjoern@hazardy.de>
178 Jonathan Wakely <jwakely@redhat.com>
180 * include/std/stacktrace (stacktrace_entry::_S_err_handler): New
182 (stacktrace_entry, basic_stacktrace): Pass &_S_err_handler to
183 all calls to libbacktrace.
185 2022-11-29 Jonathan Wakely <jwakely@redhat.com>
190 * include/bits/vector.tcc (vector::_M_fill_insert): Copy
191 _M_start and _M_finish members before allocating.
192 (vector::_M_default_append): Likewise.
193 (vector::_M_range_insert): Likewise.
195 2022-11-29 Jonathan Wakely <jwakely@redhat.com>
197 * include/bits/stl_iterator_base_types.h (__iterator_category):
198 Add always_inline attribute.
199 * include/bits/stl_vector.h (assign(Iter, Iter)): Call
200 _M_assign_aux directly, instead of _M_assign_dispatch.
201 (insert(const_iterator, Iter, Iter)): Call _M_range_insert
202 directly instead of _M_insert_dispatch.
204 2022-11-29 Jonathan Wakely <jwakely@redhat.com>
206 * include/std/format: Rename all variables called __used or
208 * testsuite/17_intro/badnames.cc: Add no_pch options.
209 * testsuite/17_intro/names.cc: Check __packed, __unused and
212 2022-11-28 François Dumont <fdumont@gcc.gnu.org>
214 * testsuite/20_util/function/cons/70692.cc: Adapt dg-error message.
216 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
219 * src/c++17/memory_resource.cc (chunk::_M_bytes): Change type
220 from uint32_t to bitset::size_type. Adjust static assertion.
221 (__pool_resource::_Pool::replenish): Cast to size_t after
222 multiplication instead of before.
223 (__pool_resource::_M_alloc_pools): Ensure both arguments to
224 std::max have type size_t.
226 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
228 * include/std/string_view (basic_string_view::copy) Use explicit
229 template argument for call to std::min<size_t>.
230 (basic_string_view::substr): Likewise.
232 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
235 * libsupc++/hash_bytes.cc (_Hash_bytes): Convert to size_t
236 instead of implicit integer promotion to 16 bits.
238 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
240 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
241 Replace non-ASCII character.
243 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
245 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
246 Simplify dg-prune-output pattern.
247 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune "::__8".
249 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
252 * include/bits/random.h (subtract_with_carry_engine): Use 32-bit
253 type for default seed. Use 0u as default argument for
254 subtract_with_carry_engine(result_type) constructor and
255 seed(result_type) member function.
256 * include/bits/random.tcc (subtract_with_carry_engine): Use
257 32-bit type for default seed and engine used for initial state.
258 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
261 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
263 * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT
264 unless the AC_MSG_CHECKING happened.
265 * configure: Regenerate.
267 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
270 * include/bits/erase_if.h (__erase_nodes_if): Use non-const
271 reference to the container.
272 * include/experimental/map (erase_if): Likewise.
273 * include/experimental/set (erase_if): Likewise.
274 * include/experimental/unordered_map (erase_if): Likewise.
275 * include/experimental/unordered_set (erase_if): Likewise.
276 * include/std/map (erase_if): Likewise.
277 * include/std/set (erase_if): Likewise.
278 * include/std/unordered_map (erase_if): Likewise.
279 * include/std/unordered_set (erase_if): Likewise.
280 * testsuite/23_containers/map/erasure.cc: Check with
281 const-incorrect predicate.
282 * testsuite/23_containers/set/erasure.cc: Likewise.
283 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
284 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
285 * testsuite/experimental/map/erasure.cc: Likewise.
286 * testsuite/experimental/set/erasure.cc: Likewise.
287 * testsuite/experimental/unordered_map/erasure.cc: Likewise.
288 * testsuite/experimental/unordered_set/erasure.cc: Likewise.
290 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
292 * include/bits/random.h [three_way_comparison] (operator!=):
293 Do not define inequality operators when C++20 three way
294 comparisons are supported.
295 * include/ext/random [three_way_comparison] (operator!=):
298 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
300 * include/bits/stl_iterator_base_funcs.h (__distance):
301 Add always_inline attribute to overload for random
303 (advance, distance, next, prev): Add always_inline attribute to
304 inline functions that just forward to another function.
306 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
308 * doc/html/manual/bugs.html: Regenerate.
309 * doc/xml/manual/intro.xml: Document LWG 3656 change.
310 * include/std/bit (__bit_width, bit_width): Return int.
311 * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: New test.
313 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
316 * testsuite/27_io/filesystem/iterators/106201.cc: Improve test.
317 * testsuite/experimental/filesystem/iterators/106201.cc: New test.
319 2022-11-24 Jakub Jelinek <jakub@redhat.com>
322 * src/c++17/fast_float/MERGE: Adjust for merge from upstream.
323 * src/c++17/fast_float/fast_float.h: Merge from fast_float
324 2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit.
326 2022-11-24 Jakub Jelinek <jakub@redhat.com>
329 * testsuite/20_util/to_chars/float128_c++23.cc (test): Disable
330 __FLT128_MAX__ test on Solaris. Fix up commented out debugging
333 2022-11-23 Jakub Jelinek <jakub@redhat.com>
336 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): Guard
337 fast_float uses with #if USE_LIB_FAST_FLOAT and for mantissa_bits and
338 exponent_bits provide a fallback.
340 2022-11-23 Jonathan Wakely <jwakely@redhat.com>
343 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
344 Use a static buffer with space after it.
346 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
349 * include/std/charconv (__from_chars_alnum_to_val): Add
351 * include/std/format (__is_digit, __is_xdigit): New functions.
352 (_Spec::_S_parse_width_or_precision): Use __is_digit.
353 (__formatter_fp::parse): Use __is_xdigit.
355 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
358 * testsuite/27_io/filesystem/iterators/106201.cc: New test.
360 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
363 * src/c++17/memory_resource.cc (pool_sizes): Disable large pools
364 for targets with 16-bit int.
366 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
368 * include/std/functional (_Bind_front0): New class template.
369 (_Bind_front_t): Use _Bind_front0 when there are no bound
371 * testsuite/20_util/function_objects/bind_front/107784.cc:
374 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
376 * include/bits/chrono.h (duration): Check preconditions on
377 template arguments before using them.
379 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
381 * include/std/tuple: Add better Doxygen comments.
383 2022-11-21 Martin Liska <mliska@suse.cz>
385 * src/experimental/Makefile.in: Re-configure.
387 2022-11-20 François Dumont <fdumont@gcc.gnu.org>
389 * include/std/format: Add std qualification on isxdigit calls.
391 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
393 * include/bits/range_access.h: Add always_inline attribute to
396 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
398 * include/std/format: Fix -Wsign-compare warnings.
400 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
402 * include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename
405 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
408 * include/std/complex (__complex_proj): Fix requires-clause.
410 2022-11-19 Jeff Chapman II <jchapman@lock3software.com>
411 Andrew Marmaduke <amarmaduke@lock3software.com>
412 Jason Merrill <jason@redhat.com>
414 * acinclude.m4 (glibcxx_SUBDIRS): Add src/experimental.
415 * include/Makefile.am (experimental_headers): Add contract.
416 * include/Makefile.in: Regenerate.
417 * src/Makefile.am (SUBDIRS): Add experimental.
418 * src/Makefile.in: Regenerate.
419 * configure: Regenerate.
420 * src/experimental/contract.cc: New file.
421 * src/experimental/Makefile.am: New file.
422 * src/experimental/Makefile.in: New file.
423 * include/experimental/contract: New file.
425 2022-11-17 Jonathan Wakely <jwakely@redhat.com>
428 * include/std/format [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]:
429 Declare overloads of std::to_chars for the alternative long
432 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
435 * include/std/format (__format::_Arg_t): Fix typo in enumerator
437 (_Arg_value::_S_get): Fix missing semi-colons.
439 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
441 * include/std/chrono (get_leap_second_info): Optimize.
443 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
446 * include/std/format (__format::__formatter_int::format): Use
447 std::toupper when __builtin_toupper isn't available.
448 (basic_format_arg::handle): Add 'typename'.
449 * include/std/complex (complex<T>): Add 'typename'.
451 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
453 * include/std/format [__FLT128_DIG__] (_GLIBCXX_FORMAT_F128):
454 Only support formatting _Float128 when glibc provides the
455 functionality needed for accurate std::to_chars.
457 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
459 * testsuite/std/time/clock/utc/1.cc: Check handling across leap
462 2022-11-16 Patrick Palka <ppalka@redhat.com>
465 * include/std/iostream (__ioinit): Adjust comment.
466 * src/c++98/globals_io.cc: Include "io_base_init.h" here
468 * src/c++98/ios_init.cc: ... here.
469 * src/c++98/ios_base_init.h (__ioinit): More comments.
470 * testsuite/17_intro/static.cc: dg-do run instead of just link.
472 2022-11-16 Jakub Jelinek <jakub@redhat.com>
473 Jonathan Wakely <jwakely@redhat.com>
476 * include/std/complex (__complex_abs, __complex_arg, __complex_cos,
477 __complex_cosh, __complex_exp, __complex_log, __complex_sin,
478 __complex_sinh, __complex_sqrt, __complex_tan, __complex_tanh,
479 __complex_pow): Move __complex__ _Float{16,32,64,128} and
480 __complex__ decltype(0.0bf16) overloads earlier in the file.
481 (complex): Fix up requires on the partial specialization for extended
483 (__complex_acos, __complex_asin, __complex_atan, __complex_acosh,
484 __complex_asinh, __complex_atanh): Move
485 __complex__ _Float{16,32,64,128} and __complex__ decltype(0.0bf16)
486 overloads earlier in the file.
488 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
490 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make
491 expansion of std::string in manager name more robust.
493 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
495 * python/libstdcxx/v6/printers.py (is_specialization_of): Fix
496 incorrect terminology in docstring and describe arguments.
497 (FilteringTypePrinter): Add default argument for new parameter,
500 2022-11-16 François Dumont <fdumont@gcc.gnu.org>
502 * python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field
503 'template'. Add self.targ1 to specify the first template parameter of the instantiation
505 (add_one_type_printer): Add targ1 optional parameter, default to None.
506 Use gdb.types.get_basic_type to compare the type to recognize and the type
507 returned from the typedef lookup.
508 (register_type_printers): Adapt calls to add_one_type_printers.
510 2022-11-15 Jonathan Wakely <jwakely@redhat.com>
512 * testsuite/std/format/functions/format.cc: Do not use
513 std::make_unsigned_t<__int128>.
515 2022-11-15 Jonathan Wakely <jwakely@redhat.com>
517 * include/std/format (formattable): Only define for C++23/
518 * testsuite/std/format/formatter.cc: Moved to...
519 * testsuite/std/format/formatter/requirements.cc: ...here.
520 * testsuite/std/format/formatter/concept.cc: New test.
521 * testsuite/std/format/functions/format.cc: Replace use of
522 std::formattable in C++20.
524 2022-11-15 Jonathan Wakely <jwakely@redhat.com>
527 * include/std/format (_GLIBCXX_FORMAT_F128): Define to 2 when
528 basic_format_arg needs to use its _M_f128 member.
529 (__extended_floating_point, __floating_point): Replace with ...
530 (__formattable_floating_point): New concept.
531 * testsuite/std/format/functions/format.cc: Check whether
532 __float128 is supported. Also test _Float128.
534 2022-11-15 Jonathan Wakely <jwakely@redhat.com>
536 * doc/xml/manual/documentation_hacking.xml: Document use of
537 Markdown for Doxygen comments. Tweak formatting.
538 * doc/html/manual/documentation_hacking.html: Regenerate.
540 2022-11-14 Jonathan Wakely <jwakely@redhat.com>
542 * python/Makefile.am (install-data-local): Use mkdirs_p for debug
544 * python/Makefile.in: Regenerate.
546 2022-11-14 Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
548 * src/Makefile.am (install-debug): Remove use of $(debugdir).
549 * src/Makefile.in: Regenerate.
551 2022-11-13 Jonathan Wakely <jwakely@redhat.com>
553 * include/std/chrono (utc_clock, tai_clock, gps_clock): Define.
554 (clock_time_conversion, clock_cast): Define.
555 (sys_info, local_info): Define structs for timezone information.
556 (nonexistent_local_time, ambiguous_local_time): Define
557 exceptions for invalid times.
558 (time_zone, time_zone_link, leap_second, zoned_traits, tzdb)
559 (tzdb_list): Define classes representing time zones.
560 (get_leap_second_info): Define new function returning leap
561 second offset for a given time point.
562 * testsuite/std/time/clock/gps/1.cc: New test.
563 * testsuite/std/time/clock/tai/1.cc: New test.
564 * testsuite/std/time/clock/utc/1.cc: New test.
566 2022-11-13 Jonathan Wakely <jwakely@redhat.com>
569 * include/Makefile.am (std_headers): Add <format>.
570 * include/Makefile.in: Regenerate.
571 * include/precompiled/stdc++.h: Add <format>.
572 * include/std/format: New file.
573 * python/libstdcxx/v6/printers.py (StdFormatArgsPrinter): New
574 printer for std::format_args.
575 * testsuite/std/format/arguments/args.cc: New test.
576 * testsuite/std/format/error.cc: New test.
577 * testsuite/std/format/formatter.cc: New test.
578 * testsuite/std/format/functions/format.cc: New test.
579 * testsuite/std/format/functions/format_to_n.cc: New test.
580 * testsuite/std/format/functions/size.cc: New test.
581 * testsuite/std/format/functions/vformat_to.cc: New test.
582 * testsuite/std/format/parse_ctx.cc: New test.
583 * testsuite/std/format/string.cc: New test.
584 * testsuite/std/format/string_neg.cc: New test.
586 2022-11-13 Jonathan Wakely <jwakely@redhat.com>
588 * include/bits/charconv.h (__integer_to_chars_is_unsigned):
589 New variable template.
590 (__to_chars_len, __to_chars_10_impl): Use variable template in
591 assertions to allow unsigned __int128 in strict mode.
592 * include/std/charconv (__to_chars, __to_chars_16)
593 (__to_chars_10, __to_chars_8, __to_chars_2): Likewise.
595 2022-11-12 Jakub Jelinek <jakub@redhat.com>
598 * include/std/charconv (to_chars): Fix up powerpc64le _Float128
599 overload __extension__ placement.
601 2022-11-12 Jonathan Wakely <jwakely@redhat.com>
603 * src/Makefile.am: Simplify debug build targets.
604 * src/Makefile.in: Regenerate.
606 2022-11-12 Jonathan Wakely <jwakely@redhat.com>
609 * src/c++11/locale-inst-monetary.h: Include new header.
610 * src/c++11/locale-inst-numeric.h: Likewise.
611 * src/c++11/locale-inst.cc: Likewise.
612 (INSTANTIATE_USE_FACET, INSTANTIATE_FACET_ACCESSORS): Move
613 macro definitions to ...
614 * src/c++11/facet_inst_macros.h: New file.
616 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
619 * include/experimental/bits/fs_path.h (path::_Cvt::_S_wconvert):
620 Construct codecvt directly instead of getting it from the
623 2022-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
626 * include/bits/basic_string.h (_M_use_local_data): Set active
627 member to _M_local_buf.
629 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
632 * include/bits/fs_path.h (path::_Codecvt): New class template
633 that selects the kind of code conversion done.
634 (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t).
635 (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to
636 be used for Windows and POSIX.
637 (path::_S_convert(const EcharT*, const EcharT*)): Simplify by
638 using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions.
639 (path::_S_str_convert(basic_string_view<value_type>, const A&)):
640 Simplify nested conditions.
641 * include/experimental/bits/fs_path.h (path::_Cvt): Define
642 nested typedef controlling type of code conversion done.
643 (path::_Cvt::_S_wconvert): Use new typedef.
644 (path::string(const A&)): Likewise.
645 * testsuite/27_io/filesystem/path/construct/95048.cc: New test.
646 * testsuite/experimental/filesystem/path/construct/95048.cc: New
649 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
651 * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
653 * testsuite/26_numerics/valarray/87641.cc (X::operator==):
656 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
658 * include/std/charconv (__from_chars_alnum_to_val_table::value):
659 [!__cpp_inline_variables]: Add non-inline definition.
661 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
663 * testsuite/experimental/propagate_const/observers/107525.cc:
664 Use type trait instead of C++17 variable template.
666 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
669 * config/abi/pre/gnu.ver: Tighten patterns for facets in the
670 base version. Add exports for __try_use_facet.
671 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
672 __try_use_facet instead of has_facet and use_facet.
673 * include/bits/fstream.tcc (basic_filebuf::basic_filebuf()):
675 (basic_filebuf::imbue): Likewise.
676 * include/bits/locale_classes.h (locale, locale::id)
677 (locale::_Impl): Declare __try_use_facet as a friend.
678 * include/bits/locale_classes.tcc (__try_use_facet): Define new
679 function template with special cases for default facets.
680 (has_facet, use_facet): Call __try_use_facet.
681 * include/bits/locale_facets.tcc (__try_use_facet): Declare
682 explicit instantiations.
683 * include/bits/locale_facets_nonio.tcc (__try_use_facet):
685 * src/c++11/locale-inst-monetary.h (INSTANTIATE_FACET_ACCESSORS):
686 Use new macro for facet accessor instantiations.
687 * src/c++11/locale-inst-numeric.h (INSTANTIATE_FACET_ACCESSORS):
689 * src/c++11/locale-inst.cc (INSTANTIATE_USE_FACET): Define new
690 macro for instantiating __try_use_facet and use_facet.
691 (INSTANTIATE_FACET_ACCESSORS): Define new macro for also
693 * src/c++98/compatibility-ldbl.cc (__try_use_facet):
695 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust
698 2022-11-10 Jonathan Wakely <jwakely@redhat.com>
700 * include/std/concepts (__detail::__destructible_impl)
701 (__detail::__destructible): New variable templates.
702 (destructible): Use __detail::__destructible.
703 * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc:
704 Add more checks for array and reference types.
706 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
708 * testsuite/18_support/new_nothrow.cc: Add missing noexcept
709 to operator delete replacements.
710 * testsuite/20_util/any/cons/92156.cc: Disable
711 -Winit-list-lifetime warnings from instantiating invalid
712 specialization of manager function.
713 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
714 * testsuite/20_util/default_delete/void_neg.cc: Prune additional
716 * testsuite/20_util/headers/memory/synopsis.cc: Add missing
718 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Prune
719 additional diagnostic.
720 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Add
721 missing noexcept to operator delete replacements.
722 * testsuite/21_strings/basic_string/cons/char/103919.cc:
724 * testsuite/23_containers/map/modifiers/emplace/92300.cc:
726 * testsuite/23_containers/map/modifiers/insert/92300.cc:
728 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
729 Add missing noexcept to synopsis declarations.
730 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
732 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
735 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
737 * include/bits/stl_tempbuf.h (_Temporary_buffer): Disable
738 warnings about get_temporary_buffer being deprecated.
739 * include/ext/functional (mem_fun1, mem_fun1_ref): Disable
740 warnings about mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t and
741 const_mem_fun1_ref_t being deprecated.
742 * include/std/array (__array_traits<T, 0>): Remove artificial
743 attributes which give warnings about being ignored.
744 * include/std/spanstream (basic_spanbuf::setbuf): Add assertion
745 and adjust to avoid narrowing warning.
746 * libsupc++/exception_ptr.h [!__cpp_rtti && !__cpp_exceptions]
747 (make_exception_ptr): Add missing inline specifier.
749 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
751 * include/bits/alloc_traits.h (allocator_traits): Add
752 always_inline attribute to all member functions.
753 (__do_alloc_on_copy, __alloc_on_copy, __do_alloc_on_move)
754 (__alloc_on_move, __do_alloc_on_swap, __alloc_on_swap)
755 (_Destroy(FwdIter, FwdIter, allocator<T>&)): : Add
756 always_inline attribute.
757 * include/bits/allocator.h (allocator): Add always_inline
758 attribute to all member functions and equality operators.
759 * include/bits/new_allocator.h (__new_allocator): Likewise.
760 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits):
763 2022-11-08 Charles-François Natali <cf.natali@gmail.com>
766 * include/bits/fstream.tcc (basic_filbuf::xsputn): Remove
767 1024-byte chunking that bypasses the buffer for large writes.
768 * testsuite/27_io/basic_filebuf/sputn/char/63746.cc: New test.
770 2022-11-08 Will Hawkins <whh8b@obs.cr>
771 Jonathan Wakely <jwakely@redhat.com>
773 * include/bits/basic_string.h (__str_cat): Add common function
774 that performs single-allocation string concatenation.
775 (operator+): Use __str_cat.
776 * include/bits/basic_string.tcc (operator+): Move to .h and
777 define inline using __str_cat.
779 2022-11-08 Jakub Jelinek <jakub@redhat.com>
781 * testsuite/20_util/to_chars/float128_c++23.cc (test): Uncomment
784 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
786 * doc/xml/authors.xml: Update the blurb listing my doc
789 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
791 * doc/xml/authors.xml: Remove empty author element.
792 * doc/xml/manual/spine.xml: Likewise.
793 * doc/html/manual/index.html: Regenerate.
795 2022-11-08 Joseph Myers <joseph@codesourcery.com>
798 * src/c++17/floating_from_chars.cc (from_chars_impl): Fix syntax
801 2022-11-08 Jason Merrill <jason@redhat.com>
802 Jakub Jelinek <jakub@redhat.com>
804 * testsuite/18_support/comparisons/algorithms/fallback.cc: Adjust
807 2022-11-07 Jakub Jelinek <jakub@redhat.com>
810 * src/c++17/floating_from_chars.cc (__strtof128): Put __asm before
812 * src/c++17/floating_to_chars.cc (__strfromf128): Likewise.
814 2022-11-07 Patrick Palka <ppalka@redhat.com>
816 * include/std/ranges (as_rvalue_view): Define.
817 (enable_borrowed_range<as_rvalue_view>): Define.
818 (views::__detail::__can_as_rvalue_view): Define.
819 (views::_AsRvalue, views::as_rvalue): Define.
820 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: New test.
822 2022-11-07 Patrick Palka <ppalka@redhat.com>
824 * include/std/ranges (__maybe_const_t): New alias for
825 __detail::__maybe_const_t.
826 (__detail::__cartesian_product_is_random_access): Define.
827 (__detail::__cartesian_product_common_arg): Define.
828 (__detail::__cartesian_product_is_bidirectional): Define.
829 (__detail::__cartesian_product_is_common): Define.
830 (__detail::__cartesian_product_is_sized): Define.
831 (__detail::__cartesian_is_sized_sentinel): Define.
832 (__detail::__cartesian_common_arg_end): Define.
833 (cartesian_product_view): Define.
834 (cartesian_product_view::_Iterator): Define.
835 (views::__detail::__can_cartesian_product_view): Define.
836 (views::_CartesianProduct, views::cartesian_product): Define.
837 * testsuite/std/ranges/cartesian_product/1.cc: New test.
839 2022-11-07 Jakub Jelinek <jakub@redhat.com>
842 * src/c++17/fast_float/MERGE: Adjust for merge from upstream.
843 * src/c++17/fast_float/LOCAL_PATCHES: Remove commits that were
845 * src/c++17/fast_float/README.md: Merge from fast_float
846 662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
847 * src/c++17/fast_float/fast_float.h: Likewise.
848 * testsuite/20_util/from_chars/pr107468.cc: New test.
850 2022-11-07 Jakub Jelinek <jakub@redhat.com>
852 * include/std/charconv (from_chars, to_chars): Add _Float128
853 overfloads if _GLIBCXX_HAVE_FLOAT128_MATH is defined.
854 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
855 _ZSt8to_charsPcS_DF128_, _ZSt8to_charsPcS_DF128_St12chars_format,
856 _ZSt8to_charsPcS_DF128_St12chars_formati and
857 _ZSt10from_charsPKcS0_RDF128_St12chars_format.
858 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
860 (__strtof128): Declare.
861 (from_chars_impl): Handle _Float128.
862 (from_chars): New _Float128 overload if USE_STRTOF128_FOR_FROM_CHARS
864 * src/c++17/floating_to_chars.cc (__strfromf128): Declare.
865 (FLOAT128_TO_CHARS): Define even when _Float128 is supported and
866 wider than long double.
867 (F128_type): Use _Float128 for that case.
868 (floating_type_traits): Specialize for F128_type rather than
870 (sprintf_ld): Add length argument. Handle _Float128.
871 (__floating_to_chars_shortest, __floating_to_chars_precision):
872 Pass length to sprintf_ld.
873 (to_chars): Add _Float128 overloads for the F128_type being
875 * testsuite/20_util/to_chars/float128_c++23.cc: New test.
877 2022-11-06 Patrick Palka <ppalka@redhat.com>
879 * include/bits/atomic_wait.h (_detail::__platform_wait_alignment):
880 Declare inline. Remove redundant static specifier.
881 (__detail::__atomic_spin_count_relax): Declare inline.
882 (__detail::__atomic_spin_count): Likewise.
883 * include/bits/regex_automaton.h (__detail::_S_invalid_state_id):
884 Declare inline for C++17. Declare constexpr. Remove
885 redundant const and static specifiers.
886 * include/bits/regex_error.h (regex_constants::error_collate):
887 Declare inline for C++17 as per P0607R0.
888 (regex_constants::error_ctype): Likewise.
889 (regex_constants::error_escape): Likewise.
890 (regex_constants::error_backref): Likewise.
891 (regex_constants::error_brack): Likewise.
892 (regex_constants::error_paren): Likewise.
893 (regex_constants::error_brace): Likewise.
894 (regex_constants::error_badbrace): Likewise.
895 (regex_constants::error_range): Likewise.
896 (regex_constants::error_space): Likewise.
897 (regex_constants::error_badrepeat): Likewise.
898 (regex_constants::error_complexity): Likewise.
899 (regex_constants::error_stack): Likewise.
900 * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy):
901 Likewise. Remove redundant static specifier.
902 * include/pstl/execution_defs.h (execution::seq): Declare inline
903 for C++17 as per P0607R0.
904 (execution::par): Likewise.
905 (execution::par_unseq): Likewise.
906 (execution::unseq): Likewise.
908 2022-11-06 Patrick Palka <ppalka@redhat.com>
913 * include/std/iostream (__ioinit): No longer define here if
914 the init_priority attribute is usable.
915 * src/c++98/ios_init.cc (__ioinit): Define here instead if
916 init_priority is usable, via ...
917 * src/c++98/ios_base_init.h: ... this new file.
919 2022-11-05 Jakob Hasse <0xjakob@users.noreply.github.com>
922 * libsupc++/pbase_type_info.cc (__do_catch) [!__cpp_rtti]: Add
923 check that the thrown type is actually a pointer.
924 * testsuite/18_support/105387.cc: New test.
925 * testsuite/18_support/105387_memptr.cc: New test.
927 2022-11-05 Jonathan Wakely <jwakely@redhat.com>
930 * include/experimental/propagate_const (operator element_type*()):
931 Move into base class that can be partially specilized to iompose
933 (operator const element_type*()): Likewise.
934 * testsuite/experimental/propagate_const/observers/107525.cc: New test.
936 2022-11-04 Jonathan Wakely <jwakely@redhat.com>
939 * libsupc++/eh_globals.cc (eh_globals): Remove immortalizing
941 (__cxxabiv1::__cxa_get_globals_fast): Adjust.
942 (__cxxabiv1::__cxa_get_globals): Adjust.
944 2022-11-04 Jonathan Wakely <jwakely@redhat.com>
947 * libsupc++/eh_alloc.cc (_GNU_SOURCE): Define.
949 2022-11-03 Jonathan Wakely <jwakely@redhat.com>
951 * include/bits/ranges_algobase.h (__detail::__copy_or_move):
952 Move output iterator.
953 * testsuite/25_algorithms/copy/constrained.cc: Check copying to
954 move-only output iterator.
956 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
958 * libsupc++/eh_globals.cc (constant_init::unused): Remove.
959 * src/c++11/system_error.cc (constant_init::unused): Remove.
960 * src/c++17/memory_resource.cc (constant_init::unused): Remove.
962 2022-11-02 Patrick Palka <ppalka@redhat.com>
964 * src/c++17/floating_from_chars.cc (from_chars_impl): In the
965 ERANGE case, distinguish between a denormal result and true
966 underflow by checking if the return value is 0.
968 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
970 * include/std/expected (expected::_M_invalid): Remove.
972 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
974 * include/std/variant (__variant::_Multi_array::__untag_result):
975 Use pragma to suppress warning.
977 2022-11-02 Jakub Jelinek <jakub@redhat.com>
979 * libsupc++/compare (_Strong_order::_Fp_fmt): Add _Bfloat16.
980 (_Strong_order::_Bfloat16): New static data member.
981 (_Strong_order::_S_fp_fmt): Return _Bfloat16 for std::bfloat16_t.
983 2022-11-02 Jakub Jelinek <jakub@redhat.com>
985 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): Drop const
986 from unbiased_exponent. Canonicalize denormals such that they have
987 the leading bit set by shifting effective mantissa up and decreasing
989 (__floating_to_chars_shortest): Don't instantiate
990 __floating_to_chars_hex for float16_t either and use float instead.
991 * testsuite/20_util/to_chars/float.cc (float_to_chars_test_cases):
992 Adjust testcases for shortest hex denormals.
993 * testsuite/20_util/to_chars/double.cc (double_to_chars_test_cases):
996 2022-11-01 Jakub Jelinek <jakub@redhat.com>
998 * include/std/charconv (__from_chars_float16_t,
999 __from_chars_bfloat16_t): Declare.
1000 (from_chars): Add _Float16 and __gnu_cxx::__bfloat16_t overloads.
1001 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
1002 _ZSt22__from_chars_float16_tPKcS0_RfSt12chars_format and
1003 _ZSt23__from_chars_bfloat16_tPKcS0_RfSt12chars_format.
1004 * src/c++17/floating_from_chars.cc
1005 (fast_float::floating_type_float16_t,
1006 fast_float::floating_type_bfloat16_t): New classes.
1007 (fast_float::binary_format<floating_type_float16_t>,
1008 fast_float::binary_format<floating_type_bfloat16_t>): New
1010 (fast_float::to_float<floating_type_float16_t>,
1011 fast_float::to_float<floating_type_bfloat16_t>,
1012 fast_float::to_extended<floating_type_float16_t>,
1013 fast_float::to_extended<floating_type_bfloat16_t>): Likewise.
1014 (fast_float::from_chars_16): New template function.
1015 (__floating_from_chars_hex): Allow instantiation with
1016 fast_float::floating_type_{,b}float16_t.
1017 (from_chars): Formatting fixes for float/double/long double overloads.
1018 (__from_chars_float16_t, __from_chars_bfloat16_t): New functions.
1019 * testsuite/20_util/to_chars/float16_c++23.cc: New test.
1021 2022-11-01 Jakub Jelinek <jakub@redhat.com>
1023 * include/std/charconv (__to_chars_float16_t, __to_chars_bfloat16_t):
1025 (to_chars): Add _Float16 and __gnu_cxx::__bfloat16_t overloads.
1026 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
1027 _ZSt20__to_chars_float16_tPcS_fSt12chars_format and
1028 _ZSt21__to_chars_bfloat16_tPcS_fSt12chars_format.
1029 * src/c++17/floating_to_chars.cc (floating_type_float16_t,
1030 floating_type_bfloat16_t): New types.
1031 (floating_type_traits<floating_type_float16_t>,
1032 floating_type_traits<floating_type_bfloat16_t>,
1033 get_ieee_repr<floating_type_float16_t>,
1034 get_ieee_repr<floating_type_bfloat16_t>,
1035 __handle_special_value<floating_type_float16_t>,
1036 __handle_special_value<floating_type_bfloat16_t>): New specializations.
1037 (floating_to_shortest_scientific): Handle floating_type_float16_t
1038 and floating_type_bfloat16_t like IEEE quad.
1039 (__floating_to_chars_shortest): For floating_type_bfloat16_t call
1040 __floating_to_chars_hex<float> rather than
1041 __floating_to_chars_hex<floating_type_bfloat16_t> to avoid
1042 instantiating the latter.
1043 (__to_chars_float16_t, __to_chars_bfloat16_t): New functions.
1045 2022-11-01 Jakub Jelinek <jakub@redhat.com>
1047 * include/std/charconv (from_chars, to_chars): Add _Float{32,64,128}
1048 overloads for cases where those types match {float,double,long double}.
1049 * include/std/istream (basic_istream::operator>>): Add
1050 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
1051 * include/std/ostream (basic_ostream::operator<<): Add
1052 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
1053 * testsuite/20_util/from_chars/8.cc: New test.
1054 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc (test):
1056 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: Add
1057 dg-options "-std=gnu++2b".
1058 (test_functions, main): Formatting fixes.
1059 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc:
1060 Add dg-options "-std=gnu++2b".
1062 2022-10-31 Jakub Jelinek <jakub@redhat.com>
1064 * include/std/complex (complex::complex converting ctor): For C++23
1065 use explicit specifier with constant expression. Explicitly cast
1067 (__complex_abs, __complex_arg, __complex_cos, __complex_cosh,
1068 __complex_exp, __complex_log, __complex_sin, __complex_sinh,
1069 __complex_sqrt, __complex_tan, __complex_tanh, __complex_pow): Add
1070 __complex__ _Float{16,32,64,128} and __complex__ decltype(0.0bf16)
1072 (complex<float>::complex converting ctor,
1073 complex<double>::complex converting ctor,
1074 complex<long double>::complex converting ctor): For C++23 implement
1075 as template with explicit specifier with constant expression
1077 (__complex_type): New template.
1078 (complex): New partial specialization for types with extended floating
1080 (__complex_acos, __complex_asin, __complex_atan, __complex_acosh,
1081 __complex_asinh, __complex_atanh): Add __complex__ _Float{16,32,64,128}
1082 and __complex__ decltype(0.0bf16) overloads.
1083 (__complex_proj): Likewise. Add template for complex of extended
1084 floating point types.
1085 * include/bits/cpp_type_traits.h (__is_floating): Specialize for
1086 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
1087 * testsuite/26_numerics/complex/ext_c++23.cc: New test.
1089 2022-10-31 Jakub Jelinek <jakub@redhat.com>
1091 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
1093 * include/c_global/cmath (nextafter(_Float16, _Float16)): Make it constexpr.
1094 If std::__is_constant_evaluated() call __builtin_nextafterf16.
1095 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Similarly
1096 but call __builtin_nextafterf16b.
1097 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc (test): Add
1098 static assertions to test constexpr nextafter.
1100 2022-10-28 Jonathan Wakely <jwakely@redhat.com>
1102 * include/bits/fs_path.h (path::filename()): Fix dangling
1105 2022-10-28 Arsen Arsenović <arsen@aarsen.me>
1107 * include/std/functional: Make placeholders inline, if possible.
1109 2022-10-28 Arsen Arsenović <arsen@aarsen.me>
1111 * configure.ac: Stop generating gstdint.h.
1112 * src/c++11/compatibility-atomic-c++0x.cc: Stop using gstdint.h.
1113 * Makefile.in: Regenerate.
1114 * aclocal.m4: Regenerate.
1115 * config.h.in: Regenerate.
1116 * configure: Regenerate.
1117 * doc/Makefile.in: Regenerate.
1118 * include/Makefile.in: Regenerate.
1119 * libsupc++/Makefile.in: Regenerate.
1120 * po/Makefile.in: Regenerate.
1121 * python/Makefile.in: Regenerate.
1122 * src/Makefile.in: Regenerate.
1123 * src/c++11/Makefile.in: Regenerate.
1124 * src/c++17/Makefile.in: Regenerate.
1125 * src/c++20/Makefile.in: Regenerate.
1126 * src/c++98/Makefile.in: Regenerate.
1127 * src/filesystem/Makefile.in: Regenerate.
1128 * src/libbacktrace/Makefile.in: Regenerate.
1129 * testsuite/Makefile.in: Regenerate.
1131 2022-10-28 Jonathan Wakely <jwakely@redhat.com>
1134 * include/bits/regex_executor.h (_Executor::_Executor): Use same
1135 allocator for _M_cur_results and _M_results.
1136 * include/bits/regex_executor.tcc (_Executor::_M_main_dispatch):
1137 Prevent possibly incorrect allocator propagating to
1139 * testsuite/28_regex/algorithms/regex_match/107376.cc: New test.
1141 2022-10-26 Marek Polacek <polacek@redhat.com>
1144 * include/bits/locale_classes.tcc: Add #pragma to disable
1145 -Wdangling-reference with std::use_facet.
1147 2022-10-21 Arsen Arsenović <arsen@aarsen.me>
1149 * acinclude.m4: Default hosted to off if building without
1150 headers and without newlib.
1151 * configure: Regenerate.
1153 2022-10-21 Jonathan Wakely <jwakely@redhat.com>
1155 * include/bits/mofunc_impl.h (move_only_function::__param_t):
1156 Use __is_scalar instead of is_trivially_copyable.
1157 * testsuite/20_util/move_only_function/call.cc: Check parameters
1158 involving incomplete types.
1160 2022-10-20 Patrick Palka <ppalka@redhat.com>
1162 * include/std/charconv (__detail::__from_chars_alnum_to_val_table):
1163 Redefine as a class template containing the members type, value and
1164 _S_make_table. Don't use a local class as the table type.
1165 (__detail::__table): Remove.
1166 (__detail::__from_chars_alnum_to_val): Adjust after the above.
1168 2022-10-19 Patrick Palka <ppalka@redhat.com>
1170 * include/std/ranges (views::__detail::__is_repeat_view): Define
1171 and later define a partial specialization.
1172 (views::__detail::__take_of_repeat_view): Declare and later define.
1173 (views::__detail::__drop_of_repeat_view): Likewise.
1174 (views::_Take::operator()): Return a repeat_view if the argument
1175 is a repeat_view as per P2474R2.
1176 (views::_Drop::operator()): Likewise.
1177 (repeat_view): Befriend __take/drop_of_repeat_view.
1178 * testsuite/std/ranges/repeat/1.cc (test04): New test.
1180 2022-10-19 Patrick Palka <ppalka@redhat.com>
1183 * include/std/ranges (stride_view::_Iterator::operator-): Fix typo.
1184 * testsuite/std/ranges/adaptors/stride/1.cc (test03): New test.
1186 2022-10-19 LIU Hao <lh_mouse@126.com>
1188 * src/c++11/thread.cc (get_nprocs): Add new implementation
1189 for native Windows targets
1191 2022-10-19 LIU Hao <lh_mouse@126.com>
1193 * libsupc++/atexit_thread.cc (__cxa_thread_atexit): Use
1194 implementation from mcfgthread if available
1195 * libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_release,
1196 __cxa_guard_abort): Use implementations from mcfgthread if
1198 * configure: Regenerate
1200 2022-10-19 Jakub Jelinek <jakub@redhat.com>
1203 * include/std/limits: Fix a typo, 202202L -> 202002L.
1204 (numeric_limits::<_Float16>::radix, numeric_limits::<_Float32>::radix,
1205 numeric_limits::<_Float64>::radix, numeric_limits::<_Float128>::radix,
1206 numeric_limits::<__gnu_cxx::__bfloat16_t>::radix): Use __FLT_RADIX__
1207 macro instead of type specific macros.
1208 * include/c_global/cmath (nextafter(_Float16, _Float16)): New
1210 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)):
1212 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
1213 (test_functions): Uncomment nextafter test. Fix up sph_neumann call.
1214 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc: New test.
1216 2022-10-18 Patrick Palka <ppalka@redhat.com>
1218 * include/std/ranges (stride_view): Define.
1219 (stride_view::_Iterator): Define.
1220 (views::__detail::__can_stride_view): Define.
1221 (views::_Stride, views::stride): Define.
1222 * testsuite/std/ranges/adaptors/stride/1.cc: New test.
1224 2022-10-18 Jakub Jelinek <jakub@redhat.com>
1227 * include/std/stdfloat: New file.
1228 * include/std/numbers (__glibcxx_numbers): Define and use it
1229 for __float128 explicit instantiations as well as
1230 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
1231 * include/std/atomic (atomic<_Float16>, atomic<_Float32>,
1232 atomic<_Float64>, atomic<_Float128>, atomic<__gnu_cxx::__bfloat16_t>):
1233 New explicit instantiations.
1234 * include/std/type_traits (__is_floating_point_helper<_Float16>,
1235 __is_floating_point_helper<_Float32>,
1236 __is_floating_point_helper<_Float64>,
1237 __is_floating_point_helper<_Float128>,
1238 __is_floating_point_helper<__gnu_cxx::__bfloat16_t>): Likewise.
1239 * include/std/limits (__glibcxx_concat3_, __glibcxx_concat3,
1240 __glibcxx_float_n): Define.
1241 (numeric_limits<_Float16>, numeric_limits<_Float32>,
1242 numeric_limits<_Float64>, numeric_limits<_Float128>,
1243 numeric_limits<__gnu_cxx::__bfloat16_t>): New explicit instantiations.
1244 * include/bits/std_abs.h (abs): New overloads for
1245 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
1246 * include/bits/c++config (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128): Define
1247 if long double is IEEE quad.
1248 (__gnu_cxx::__bfloat16_t): New using.
1249 * include/c_global/cmath (acos, asin, atan, atan2, ceil, cos, cosh,
1250 exp, fabs, floor, fmod, frexp, ldexp, log, log10, modf, pow, sin,
1251 sinh, sqrt, tan, tanh, fpclassify, isfinite, isinf, isnan, isnormal,
1252 signbit, isgreater, isgreaterequal, isless, islessequal,
1253 islessgreater, isunordered, acosh, asinh, atanh, cbrt, copysign, erf,
1254 erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma,
1255 llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
1256 nextafter, remainder, rint, round, scalbln, scalbn, tgamma, trunc,
1257 lerp): New overloads with _Float{16,32,64,128} or
1258 __gnu_cxx::__bfloat16_t types.
1259 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
1260 Prepare for definition if glibc 2.26 and later implements *f128 APIs
1261 but comment out the actual definition for now.
1262 * include/ext/type_traits.h (__promote<_Float16>, __promote<_Float32>,
1263 __promote<_Float64>, __promote<_Float128>,
1264 __promote<__gnu_cxx::__bfloat16_t>): New specializations.
1265 * include/Makefile.am (std_headers): Add stdfloat.
1266 * include/Makefile.in: Regenerated.
1267 * include/precompiled/stdc++.h: Include stdfloat.
1268 * testsuite/18_support/headers/stdfloat/types_std.cc: New test.
1269 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: New test.
1270 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc:
1272 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: New test.
1273 * testsuite/26_numerics/numbers/4.cc: New test.
1274 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc: New test.
1276 2022-10-17 Jonathan Wakely <jwakely@redhat.com>
1278 * include/std/charconv (__cpp_lib_constexpr_charconv): Define to
1280 * include/std/version (__cpp_lib_constexpr_charconv): Likewise.
1281 * testsuite/20_util/to_chars/constexpr.cc: Check correct value.
1282 * testsuite/20_util/to_chars/version.cc: Likewise.
1284 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
1286 * src/c++11/debug.cc (print_raw): Move inside #if block.
1288 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
1290 * include/bits/charconv.h (__to_chars_10_impl): Add constexpr
1291 for C++23. Remove 'static' from array.
1292 * include/std/charconv (__cpp_lib_constexpr_charconv): Define.
1293 (__to_chars, __to_chars_16): Remove 'static' from array, add
1295 (__to_chars_10, __to_chars_8, __to_chars_2, __to_chars_i)
1296 (to_chars, __raise_and_add, __from_chars_pow2_base)
1297 (__from_chars_alnum, from_chars): Add constexpr.
1298 (__from_chars_alnum_to_val): Avoid local static during constant
1299 evaluation. Add constexpr.
1300 * include/std/version (__cpp_lib_constexpr_charconv): Define.
1301 * testsuite/20_util/from_chars/constexpr.cc: New test.
1302 * testsuite/20_util/to_chars/constexpr.cc: New test.
1303 * testsuite/20_util/to_chars/version.cc: New test.
1305 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
1307 * include/bits/stl_map.h (map::insert(Pair&&)): Use
1308 remove_const_t on argument to __is_pair.
1309 * include/bits/stl_pair.h (__is_pair<const pair<T,U>>): Remove
1310 partial specialization.
1311 * include/bits/uses_allocator_args.h (_Std_pair): Use
1312 remove_cv_t as per LWG 3677.
1313 * testsuite/20_util/uses_allocator/lwg3677.cc: New test.
1315 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
1317 * libsupc++/eh_alloc.cc [USE_POOL]: New macro.
1318 [!USE_POOL] (__gnu_cxx::__freeres, pool): Do not define.
1319 [_GLIBCXX_EH_POOL_STATIC] (pool::arena): Do not use std::max.
1320 (__cxxabiv1::__cxa_allocate_exception) [!USE_POOL]: Do not use
1322 (__cxxabiv1::__cxa_free_exception) [!USE_POOL]: Likewise.
1323 (__cxxabiv1::__cxa_allocate_dependent_exception) [!USE_POOL]:
1325 (__cxxabiv1::__cxa_free_dependent_exception) [!USE_POOL]:
1328 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
1330 * src/c++11/debug.cc (print_raw): Simplify.
1331 (print_word): Print indentation by calling fprintf directly.
1332 (_Error_formatter::_M_error): Print unindented string by calling
1335 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
1337 * include/std/iostream: Use markdown in Doxygen comment.
1339 2022-10-12 François Dumont <fdumont@gcc.gnu.org>
1341 * include/debug/string: Add using _Base::compare.
1342 (__gnu_debug::basic_string<>::compare(const basic_string<>&)): Remove.
1343 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&)):
1345 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&,
1346 size_type, size_type)): Remove.
1347 * testsuite/util/testsuite_string.h [_GLIBCXX_TEST_DEBUG_STRING]: Include <debug/string>.
1348 * testsuite/21_strings/basic_string/operations/compare/char/1.cc: Include testsuite_string.h
1349 and use __gnu_test::string.
1350 * testsuite/21_strings/basic_string/operations/compare/char/13650.cc: Likewise.
1351 * testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise.
1352 * testsuite/21_strings/basic_string/operations/rfind/char/1.cc: Likewise.
1353 * testsuite/21_strings/basic_string/operations/rfind/char/2.cc: Likewise.
1354 * testsuite/21_strings/basic_string/operations/rfind/char/3.cc: Likewise.
1355 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
1356 Include testsuite_string.h
1357 and use __gnu_test::wstring.
1358 * testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc: Likewise.
1359 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise.
1361 2022-10-12 Patrick Palka <ppalka@redhat.com>
1363 * include/std/ranges (repeat_view): Define.
1364 (repeat_view::_Iterator): Define.
1365 (views::__detail::__can_repeat_view): Define.
1366 (views::__detail::__can_bounded_repeat_view): Define.
1367 (views::_Repeat, views::repeat): Define.
1368 * testsuite/std/ranges/repeat/1.cc: New test.
1370 2022-10-12 Martin Liska <mliska@suse.cz>
1372 * configure: Regenerate.
1374 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
1377 * libsupc++/eh_alloc.cc (pool): Change preprocessor condition
1378 for using __mutex from __GTHREADS to _GLIBCXX_HOSTED.
1379 (pool::allocate): Remove namespace qualification to use
1380 pool::__scoped_lock instead of __gnu_cxx::__scoped_lock.
1382 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
1385 * Makefile.in: Regenerate.
1386 * acinclude.m4 (GLIBCXX_EMERGENCY_EH_ALLOC): New macro.
1387 * configure: Regenerate.
1388 * configure.ac: Use GLIBCXX_EMERGENCY_EH_ALLOC.
1389 * crossconfig.m4: Check for secure_getenv.
1390 * doc/Makefile.in: Regenerate.
1391 * doc/xml/manual/configure.xml: Document new configure options.
1392 * doc/xml/manual/evolution.xml: Document addition of tunables.
1393 * doc/xml/manual/using_exceptions.xml: Document emergency
1394 buffer and tunables.
1395 * doc/html/*: Regenerate.
1396 * include/Makefile.in: Regenerate.
1397 * libsupc++/Makefile.am: Use EH_POOL_FLAGS.
1398 * libsupc++/Makefile.in: Regenerate.
1399 * libsupc++/eh_alloc.cc (EMERGENCY_OBJ_SIZE): Define in units
1400 of sizeof(void*) not including the ABI's exception header.
1401 (EMERGENCY_OBJ_COUNT): Define as target-independent calculation
1403 (MAX_OBJ_COUNT): Define macro for upper limit on pool size.
1404 (pool) [_GLIBCXX_EH_POOL_STATIC]: Use fixed-size buffer.
1405 (pool::buffer_size_in_bytes): New static member function.
1406 (pool::pool): Parse GLIBCXX_TUNABLES environment variable to set
1407 pool size at runtime.
1408 (pool::in_pool): Use std::less<void*> for total order.
1409 (__freeres) [_GLIBCXX_EH_POOL_STATIC]: Do nothing.
1410 (__cxa_free_exception, __cxa_free_dependent_exception): Add
1411 [[unlikely]] attributes.
1412 * po/Makefile.in: Regenerate.
1413 * python/Makefile.in: Regenerate.
1414 * src/Makefile.in: Regenerate.
1415 * src/c++11/Makefile.in: Regenerate.
1416 * src/c++17/Makefile.in: Regenerate.
1417 * src/c++20/Makefile.in: Regenerate.
1418 * src/c++98/Makefile.in: Regenerate.
1419 * src/filesystem/Makefile.in: Regenerate.
1420 * src/libbacktrace/Makefile.in: Regenerate.
1421 * testsuite/Makefile.in: Regenerate.
1423 2022-10-11 Olivier Hainque <hainque@adacore.com>
1424 Olivier Hainque <hainque@adacore.com>
1426 * configure: Regenerate.
1428 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
1430 * include/std/type_traits (make_signed, make_unsigned): Remove
1431 constraints on primary template.
1432 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1433 Undo changes to expected error in C++20 mode.
1434 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1436 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1438 * testsuite/20_util/make_signed/requirements/uninstantiated.cc:
1440 * testsuite/20_util/make_unsigned/requirements/uninstantiated.cc:
1443 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
1445 * include/std/type_traits (make_signed, make_unsigned): Add
1446 specializations for cv bool. Add requires-clause for C++20 to
1447 improve diagnostics for non-integral, non-enum cases.
1448 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1450 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1452 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1453 Adjust expected errors for C++20 and later.
1454 * testsuite/lib/prune.exp: Prune "in requirements [with ...]"
1455 lines from diagnostics.
1457 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
1459 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Add libstdcxx-hosted
1460 enable arg as an alias for hosted-libstdcxx enable arg.
1461 * configure: Regenerate.
1463 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
1465 * include/bits/std_function.h: Include <new> but do not include
1466 <bits/stl_function.h>.
1467 * include/std/functional: Do not include <new>.
1469 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
1471 * doc/xml/manual/intro.xml: Add role="bold" attribute to
1472 emphasis elements for issue titles.
1473 * doc/html/manual/bugs.html: Regenerate.
1475 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
1477 * include/Makefile.in: Regenerate.
1479 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
1481 * include/bits/invoke.h (__invoke_r): Check
1482 __has_builtin(__reference_converts_from_temporary) before using
1485 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1487 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
1489 (test04): Remove constexpr for old std::string ABI and test at
1492 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1494 * include/std/type_traits (remove_cv): Use __remove_cv built-in.
1495 (remove_reference): Use __remove_reference built-in.
1496 (remove_cvref): Use __remove_cvref built-in. Remove inheritance
1497 for fallback implementation.
1499 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1501 * include/bits/random.h (__is_seed_seq): Replace with ...
1502 (_If_seed_seq_for): ... this.
1503 * include/ext/random: Adjust to use _If_seed_seq_for.
1505 2022-10-04 Patrick Palka <ppalka@redhat.com>
1507 * include/std/ranges (join_with_view::_Iterator::operator*):
1508 Replace use of std::visit with manual visitation.
1509 (join_with_view::_Iterator::operator++): Likewise.
1510 (join_with_view::_Iterator::operator--): Likewise.
1511 (join_with_view::_Iterator::iter_move): Likewise.
1512 (join_with_view::_Iterator::iter_swap): Likewise.
1514 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1516 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
1519 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1522 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
1525 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1528 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
1529 <stdint-gcc.h> directly.
1531 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1534 * include/bits/functexcept.h [!_GLIBCXX_HOSTED]
1535 (__throw_invalid_argument, __throw_out_of_range)
1536 (__throw_out_of_range_fmt, __throw_runtime_error)
1537 (__throw_overflow_error): Define inline.
1538 * include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]:
1539 Replace __builtin_abort with __throw_invalid_argument.
1541 2022-10-04 Patrick Palka <ppalka@redhat.com>
1543 * include/std/ranges: Include <variant> for C++23.
1544 (__detail::__compatible_joinable_ranges): Define.
1545 (__detail::__bidirectional_common): Define.
1546 (join_with_view): Define.
1547 (join_with_view::_Iterator): Define.
1548 (join_with_view::_Sentinel): Define.
1549 (views::__detail::__can_join_with_view): Define.
1550 (views::_JoinWith, views::join_with): Define.
1551 * testsuite/std/ranges/adaptors/join_with/1.cc: New test.
1553 2022-10-04 Arsen Arsenović <arsen@aarsen.me>
1555 * include/std/iostream: Use ///< for inline documentation.
1556 * include/std/limits: Likewise.
1557 * include/experimental/internet: Likewise.
1559 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1561 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
1562 * doc/html/manual/status.html: Regenerate.
1564 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
1567 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
1569 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
1570 * testsuite/18_support/new_nothrow.cc: Likewise.
1571 * testsuite/20_util/allocator/105975.cc: Likewise.
1572 * testsuite/20_util/allocator/14176.cc: Likewise.
1573 * testsuite/20_util/allocator/64135.cc: Likewise.
1574 * testsuite/20_util/allocator/89510.cc: Likewise.
1575 * testsuite/20_util/allocator/lwg3190.cc: Likewise.
1576 * testsuite/20_util/allocator/overaligned.cc: Likewise.
1577 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
1578 * testsuite/20_util/allocator/requirements/constexpr.cc:
1580 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
1582 * testsuite/20_util/allocator/requirements/typedefs.cc:
1584 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
1586 * testsuite/20_util/allocator/void.cc: Likewise.
1587 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
1588 * testsuite/20_util/allocator_traits/header.cc: Likewise.
1589 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
1591 * testsuite/20_util/allocator_traits/members/pointers.cc:
1593 * testsuite/20_util/allocator_traits/requirements/typedefs.cc:
1595 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
1597 * testsuite/20_util/bind/42593.cc: Likewise.
1598 * testsuite/20_util/bitset/access/dr396.cc: Likewise.
1599 * testsuite/20_util/bitset/access/to_string.cc: Likewise.
1600 * testsuite/20_util/bitset/cons/16020.cc: Likewise.
1601 * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
1602 * testsuite/20_util/bitset/cons/dr396.cc: Likewise.
1603 * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
1604 * testsuite/20_util/bitset/ext/15361.cc: Likewise.
1605 * testsuite/20_util/bitset/operations/13838.cc: Likewise.
1606 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
1607 * testsuite/20_util/bitset/version.cc: Likewise.
1608 * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
1609 * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
1610 * testsuite/20_util/enable_shared_from_this/members/assign.cc:
1612 * testsuite/20_util/enable_shared_from_this/members/const.cc:
1614 * testsuite/20_util/enable_shared_from_this/members/reinit.cc:
1616 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
1618 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1620 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
1622 * testsuite/20_util/forward/1.cc: Likewise.
1623 * testsuite/20_util/forward/1_neg.cc: Likewise.
1624 * testsuite/20_util/function/1.cc: Likewise.
1625 * testsuite/20_util/function/10.cc: Likewise.
1626 * testsuite/20_util/function/2.cc: Likewise.
1627 * testsuite/20_util/function/3.cc: Likewise.
1628 * testsuite/20_util/function/4.cc: Likewise.
1629 * testsuite/20_util/function/43397.cc: Likewise.
1630 * testsuite/20_util/function/48541.cc: Likewise.
1631 * testsuite/20_util/function/5.cc: Likewise.
1632 * testsuite/20_util/function/58569.cc: Likewise.
1633 * testsuite/20_util/function/6.cc: Likewise.
1634 * testsuite/20_util/function/60594.cc: Likewise.
1635 * testsuite/20_util/function/65760.cc: Likewise.
1636 * testsuite/20_util/function/69222.cc: Likewise.
1637 * testsuite/20_util/function/7.cc: Likewise.
1638 * testsuite/20_util/function/77322.cc: Likewise.
1639 * testsuite/20_util/function/8.cc: Likewise.
1640 * testsuite/20_util/function/9.cc: Likewise.
1641 * testsuite/20_util/function/91456.cc: Likewise.
1642 * testsuite/20_util/function/assign/move.cc: Likewise.
1643 * testsuite/20_util/function/assign/move_target.cc: Likewise.
1644 * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
1645 * testsuite/20_util/function/cons/55320.cc: Likewise.
1646 * testsuite/20_util/function/cons/57465.cc: Likewise.
1647 * testsuite/20_util/function/cons/72820.cc: Likewise.
1648 * testsuite/20_util/function/cons/addressof.cc: Likewise.
1649 * testsuite/20_util/function/cons/callable.cc: Likewise.
1650 * testsuite/20_util/function/cons/deduction.cc: Likewise.
1651 * testsuite/20_util/function/cons/lwg2774.cc: Likewise.
1652 * testsuite/20_util/function/cons/move.cc: Likewise.
1653 * testsuite/20_util/function/cons/move_target.cc: Likewise.
1654 * testsuite/20_util/function/cons/noexcept.cc: Likewise.
1655 * testsuite/20_util/function/cons/non_copyconstructible.cc:
1657 * testsuite/20_util/function/cons/refqual.cc: Likewise.
1658 * testsuite/20_util/function/cons/70692.cc: Likewise.
1659 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
1660 * testsuite/20_util/function/invoke/forwarding.cc: Likewise.
1661 * testsuite/20_util/function/invoke/move_only.cc: Likewise.
1662 * testsuite/20_util/function/null_pointer_comparisons.cc:
1664 * testsuite/20_util/function/requirements/explicit_instantiation.cc:
1666 * testsuite/20_util/function/target_no_rtti.cc: Likewise.
1667 * testsuite/20_util/function_objects/83607.cc: Likewise.
1668 * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
1669 * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise.
1670 * testsuite/20_util/headers/functional/types_std_c++0x.cc:
1672 * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
1673 * testsuite/20_util/is_function/35637.cc: Likewise.
1674 * testsuite/20_util/move/1.cc: Likewise.
1675 * testsuite/20_util/move_only_function/call.cc: Likewise.
1676 * testsuite/20_util/move_only_function/cons.cc: Likewise.
1677 * testsuite/20_util/move_only_function/move.cc: Likewise.
1678 * testsuite/20_util/move_only_function/version.cc: Likewise.
1679 * testsuite/20_util/owner_less/cmp.cc: Likewise.
1680 * testsuite/20_util/owner_less/noexcept.cc: Likewise.
1681 * testsuite/20_util/owner_less/void.cc: Likewise.
1682 * testsuite/20_util/pointer_safety/1.cc: Likewise.
1683 * testsuite/20_util/scoped_allocator/65279.cc: Likewise.
1684 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
1685 * testsuite/20_util/scoped_allocator/construct_pair.cc:
1687 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
1688 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
1690 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
1691 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1692 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1693 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1695 * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
1696 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
1697 * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise.
1698 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
1699 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc:
1701 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
1703 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
1705 * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise.
1706 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
1707 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
1708 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1709 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
1710 * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
1711 * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise.
1712 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
1713 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
1715 * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
1716 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
1717 * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
1718 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1719 * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
1720 * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
1721 * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
1722 * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
1723 * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise.
1724 * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise.
1725 * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise.
1726 * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise.
1727 * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise.
1728 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
1729 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
1730 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
1731 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1732 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1733 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
1734 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1735 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
1736 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise.
1737 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise.
1738 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
1739 * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
1741 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
1742 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
1743 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
1744 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc:
1746 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
1748 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
1750 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
1752 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1753 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
1754 * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
1755 * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc:
1757 * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise.
1758 * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise.
1759 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
1761 * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise.
1762 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
1763 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1764 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
1765 * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise.
1766 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
1767 * testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
1768 * testsuite/20_util/shared_ptr/creation/single_allocation.cc:
1770 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
1772 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
1773 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
1774 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
1775 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
1776 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
1777 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
1778 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
1779 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
1780 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
1781 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc:
1783 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
1784 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
1785 * testsuite/20_util/shared_ptr/observers/array.cc: Likewise.
1786 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
1787 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
1788 * testsuite/20_util/shared_ptr/observers/owner_before.cc:
1790 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
1791 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
1792 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
1794 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
1796 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
1798 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
1800 * testsuite/20_util/temporary_buffer.cc: Likewise.
1801 * testsuite/20_util/tuple/48476.cc: Likewise.
1802 * testsuite/20_util/tuple/cons/90700.cc: Likewise.
1803 * testsuite/20_util/tuple/cons/96803.cc: Likewise.
1804 * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise.
1805 * testsuite/20_util/tuple/cons/allocators.cc: Likewise.
1806 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
1808 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
1809 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
1810 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
1812 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
1813 * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
1814 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
1815 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
1817 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
1819 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
1820 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
1821 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
1822 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
1824 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
1825 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1826 * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
1828 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
1829 * testsuite/20_util/weak_ptr/observers/owner_before.cc:
1831 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
1833 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
1835 * testsuite/21_strings/basic_string/version.cc: Likewise.
1836 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
1838 * testsuite/21_strings/c_strings/char/69626.cc: Likewise.
1839 * testsuite/21_strings/char_traits/requirements/version.cc:
1841 * testsuite/23_containers/vector/requirements/version.cc:
1843 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
1845 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
1847 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
1849 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
1851 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise.
1852 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
1854 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
1856 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
1858 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
1860 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
1862 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
1863 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
1864 * testsuite/25_algorithms/headers/cstdlib/functions_std.cc:
1866 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
1867 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
1869 * testsuite/25_algorithms/make_heap/movable.cc: Likewise.
1870 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
1871 * testsuite/25_algorithms/random_shuffle/1.cc: Likewise.
1872 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1873 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1875 * testsuite/25_algorithms/sort/35588.cc: Likewise.
1876 * testsuite/25_algorithms/stable_partition/1.cc: Likewise.
1877 * testsuite/25_algorithms/stable_partition/constrained.cc:
1879 * testsuite/25_algorithms/stable_partition/mem_check.cc:
1881 * testsuite/25_algorithms/stable_partition/moveable.cc:
1883 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
1885 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
1887 * testsuite/25_algorithms/stable_sort/1.cc: Likewise.
1888 * testsuite/26_numerics/complex/2.cc: Likewise.
1889 * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise.
1890 * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise.
1891 * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise.
1892 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise.
1893 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise.
1894 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise.
1895 * testsuite/26_numerics/headers/cstdlib/functions_std.cc:
1897 * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise.
1898 * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise.
1899 * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc:
1901 * testsuite/26_numerics/lerp/version.cc: Likewise.
1902 * testsuite/26_numerics/midpoint/version.cc: Likewise.
1903 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
1904 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
1905 * testsuite/27_io/fpos/14320-1.cc: Likewise.
1906 * testsuite/27_io/fpos/14320-2.cc: Likewise.
1907 * testsuite/27_io/fpos/14320-3.cc: Likewise.
1908 * testsuite/27_io/fpos/14320-4.cc: Likewise.
1909 * testsuite/27_io/spanstream/version.cc: Likewise.
1910 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
1911 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
1912 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
1913 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
1914 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
1915 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
1916 * testsuite/30_threads/barrier/2.cc: Likewise.
1917 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
1919 * testsuite/30_threads/jthread/version.cc: Likewise.
1920 * testsuite/30_threads/latch/2.cc: Likewise.
1921 * testsuite/30_threads/semaphore/2.cc: Likewise.
1922 * testsuite/30_threads/stop_token/2.cc: Likewise.
1923 * testsuite/abi/pr42230.cc: Likewise.
1924 * testsuite/ext/shared_ptr/1.cc: Likewise.
1925 * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise.
1926 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
1927 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
1928 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
1929 * testsuite/std/ranges/p2325.cc: Likewise.
1931 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1933 * include/std/bitset (bitset(const C*, size_type n, C, C))
1934 [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency.
1935 (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of
1938 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
1941 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
1942 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
1944 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
1946 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1949 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
1950 Also require hosted.
1951 (check_effective_target_hosted): New proc.
1953 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
1954 Jonathan Wakely <jwakely@redhat.com>
1957 * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
1958 Do not include C headers that aren't valid for freestanding.
1959 * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
1960 Do not test tag types that aren't defined for freestanding.
1961 * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
1962 check for std::getenv and std::system for freestanding.
1963 * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]:
1964 Do not test hosted parts of the standard library.
1965 * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]:
1967 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
1969 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
1971 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
1972 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
1974 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
1976 * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise.
1977 * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise.
1978 * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise.
1980 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
1983 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
1984 install-freestanding-headers, unifying it with the usual
1986 * include/Makefile.in: Regenerate.
1988 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
1989 Jonathan Wakely <jwakely@redhat.com>
1992 * include/Makefile.am: Add new header.
1993 * include/Makefile.in: Regenerate.
1994 * include/bits/requires_hosted.h: New header.
1995 * include/experimental/algorithm: Include
1996 <bits/requires_hosted.h>.
1997 * include/experimental/any: Likewise.
1998 * include/experimental/array: Likewise.
1999 * include/experimental/buffer: Likewise.
2000 * include/experimental/chrono: Likewise.
2001 * include/experimental/deque: Likewise.
2002 * include/experimental/executor: Likewise.
2003 * include/experimental/filesystem: Likewise.
2004 * include/experimental/forward_list: Likewise.
2005 * include/experimental/functional: Likewise.
2006 * include/experimental/internet: Likewise.
2007 * include/experimental/io_context: Likewise.
2008 * include/experimental/iterator: Likewise.
2009 * include/experimental/list: Likewise.
2010 * include/experimental/map: Likewise.
2011 * include/experimental/memory: Likewise.
2012 * include/experimental/memory_resource: Likewise.
2013 * include/experimental/net: Likewise.
2014 * include/experimental/netfwd: Likewise.
2015 * include/experimental/numeric: Likewise.
2016 * include/experimental/optional: Likewise.
2017 * include/experimental/propagate_const: Likewise.
2018 * include/experimental/random: Likewise.
2019 * include/experimental/ratio: Likewise.
2020 * include/experimental/regex: Likewise.
2021 * include/experimental/scope: Likewise.
2022 * include/experimental/set: Likewise.
2023 * include/experimental/simd: Likewise.
2024 * include/experimental/socket: Likewise.
2025 * include/experimental/source_location: Likewise.
2026 * include/experimental/string: Likewise.
2027 * include/experimental/string_view: Likewise.
2028 * include/experimental/system_error: Likewise.
2029 * include/experimental/timer: Likewise.
2030 * include/experimental/tuple: Likewise.
2031 * include/experimental/unordered_map: Likewise.
2032 * include/experimental/unordered_set: Likewise.
2033 * include/experimental/utility: Likewise.
2034 * include/experimental/vector: Likewise.
2035 * include/std/barrier: Likewise.
2036 * include/std/chrono: Likewise.
2037 * include/std/condition_variable: Likewise.
2038 * include/std/deque: Likewise.
2039 * include/std/execution: Likewise.
2040 * include/std/filesystem: Likewise.
2041 * include/std/forward_list: Likewise.
2042 * include/std/fstream: Likewise.
2043 * include/std/future: Likewise.
2044 * include/std/iomanip: Likewise.
2045 * include/std/ios: Likewise.
2046 * include/std/iosfwd: Likewise.
2047 * include/std/iostream: Likewise.
2048 * include/std/istream: Likewise.
2049 * include/std/latch: Likewise.
2050 * include/std/list: Likewise.
2051 * include/std/locale: Likewise.
2052 * include/std/map: Likewise.
2053 * include/std/memory_resource: Likewise.
2054 * include/std/mutex: Likewise.
2055 * include/std/ostream: Likewise.
2056 * include/std/queue: Likewise.
2057 * include/std/random: Likewise.
2058 * include/std/regex: Likewise.
2059 * include/std/semaphore: Likewise.
2060 * include/std/set: Likewise.
2061 * include/std/shared_mutex: Likewise.
2062 * include/std/spanstream: Likewise.
2063 * include/std/sstream: Likewise.
2064 * include/std/stack: Likewise.
2065 * include/std/stacktrace: Likewise.
2066 * include/std/stop_token: Likewise.
2067 * include/std/streambuf: Likewise.
2068 * include/std/string: Likewise.
2069 * include/std/syncstream: Likewise.
2070 * include/std/system_error: Likewise.
2071 * include/std/thread: Likewise.
2072 * include/std/unordered_map: Likewise.
2073 * include/std/unordered_set: Likewise.
2074 * include/std/valarray: Likewise.
2075 * include/std/vector: Likewise.
2076 * include/tr1/array: Likewise.
2077 * include/tr1/ccomplex: Likewise.
2078 * include/tr1/cctype: Likewise.
2079 * include/tr1/cfenv: Likewise.
2080 * include/tr1/cfloat: Likewise.
2081 * include/tr1/cinttypes: Likewise.
2082 * include/tr1/climits: Likewise.
2083 * include/tr1/cmath: Likewise.
2084 * include/tr1/complex: Likewise.
2085 * include/tr1/complex.h: Likewise.
2086 * include/tr1/cstdarg: Likewise.
2087 * include/tr1/cstdbool: Likewise.
2088 * include/tr1/cstdint: Likewise.
2089 * include/tr1/cstdio: Likewise.
2090 * include/tr1/cstdlib: Likewise.
2091 * include/tr1/ctgmath: Likewise.
2092 * include/tr1/ctime: Likewise.
2093 * include/tr1/ctype.h: Likewise.
2094 * include/tr1/cwchar: Likewise.
2095 * include/tr1/cwctype: Likewise.
2096 * include/tr1/fenv.h: Likewise.
2097 * include/tr1/float.h: Likewise.
2098 * include/tr1/functional: Likewise.
2099 * include/tr1/inttypes.h: Likewise.
2100 * include/tr1/limits.h: Likewise.
2101 * include/tr1/math.h: Likewise.
2102 * include/tr1/memory: Likewise.
2103 * include/tr1/random: Likewise.
2104 * include/tr1/regex: Likewise.
2105 * include/tr1/stdarg.h: Likewise.
2106 * include/tr1/stdbool.h: Likewise.
2107 * include/tr1/stdint.h: Likewise.
2108 * include/tr1/stdio.h: Likewise.
2109 * include/tr1/stdlib.h: Likewise.
2110 * include/tr1/tgmath.h: Likewise.
2111 * include/tr1/tuple: Likewise.
2112 * include/tr1/type_traits: Likewise.
2113 * include/tr1/unordered_map: Likewise.
2114 * include/tr1/unordered_set: Likewise.
2115 * include/tr1/utility: Likewise.
2116 * include/tr1/wchar.h: Likewise.
2117 * include/tr1/wctype.h: Likewise.
2118 * include/c_global/cmath: Likewise.
2119 * include/ext/algorithm: Include <bits/requires_hosted.h>.
2120 * include/ext/bitmap_allocator.h: Likewise.
2121 * include/ext/cmath: Likewise.
2122 * include/ext/codecvt_specializations.h: Likewise.
2123 * include/ext/debug_allocator.h: Likewise.
2124 * include/ext/enc_filebuf.h: Likewise.
2125 * include/ext/extptr_allocator.h: Likewise.
2126 * include/ext/functional: Likewise.
2127 * include/ext/malloc_allocator.h: Likewise.
2128 * include/ext/memory: Likewise.
2129 * include/ext/mt_allocator.h: Likewise.
2130 * include/ext/new_allocator.h: Likewise.
2131 * include/ext/numeric: Likewise.
2132 * include/ext/pod_char_traits.h: Likewise.
2133 * include/ext/pool_allocator.h: Likewise.
2134 * include/ext/random: Likewise.
2135 * include/ext/random.tcc: Likewise.
2136 * include/ext/rb_tree: Likewise.
2137 * include/ext/rc_string_base.h: Likewise.
2138 * include/ext/rope: Likewise.
2139 * include/ext/ropeimpl.h: Likewise.
2140 * include/ext/slist: Likewise.
2141 * include/ext/sso_string_base.h: Likewise.
2142 * include/ext/stdio_filebuf.h: Likewise.
2143 * include/ext/stdio_sync_filebuf.h: Likewise.
2144 * include/ext/string_conversions.h: Likewise.
2145 * include/ext/throw_allocator.h: Likewise.
2146 * include/ext/vstring.h: Likewise.
2147 * include/ext/vstring.tcc: Likewise.
2148 * include/ext/vstring_fwd.h: Likewise.
2149 * include/ext/vstring_util.h: Likewise.
2150 * include/std/charconv: Likewise.
2151 (__cpp_lib_to_chars): Do not define for freestanding.
2152 * include/std/version: Adjust which macros get defined in
2154 * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
2155 functionality from freestanding.
2156 * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
2157 * include/std/memory [!_GLIBCXX_HOSTED]: Omit
2158 <bits/stl_tempbuf.h> in freestanding
2159 * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
2160 random_shuffle and stable_partition definition.
2161 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
2162 random_shuffle and stable_partition from freestanding.
2163 * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
2164 stable_partition from freestanding.
2165 * include/bits/concept_check.h: Remove needless HOSTED check.
2166 * include/std/iterator: Include <bits/ranges_base.h>.
2167 * include/std/numeric (__cpp_lib_parallel_algorithms): Do not
2168 define for freestanding.
2169 * include/std/functional (__cpp_lib_boyer_moore_searcher):
2171 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++
2174 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
2175 Arsen Arsenović <arsen@aarsen.me>
2177 * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not
2178 include headers that aren't valid for freestanding.
2179 * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise.
2181 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
2183 * configure.ac: Remove any lines that unconditionally include
2184 <stdio.h> from ac_includes_default, when running Autoconf <2.70.
2185 * configure: Regenerate.
2187 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
2190 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
2191 to __STDC_HOSTED__ for non-freestanding installations.
2192 * configure: Regenerate.
2193 * include/Makefile.am (${host_builddir}/c++config.h): Adjust
2195 * include/Makefile.in: Regenerate.
2196 * testsuite/lib/libstdc++.exp (v3-build_support): Use
2198 * testsuite/libstdc++-abi/abi.exp: Likewise.
2200 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
2202 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2203 Change body of unused operator<< overload to throw if called.
2204 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2207 2022-10-03 François Dumont <fdumont@gcc.gnu.org>
2209 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
2210 namespace for __cxx11 symbols.
2211 (add_one_template_type_printer): Likewise.
2212 (add_one_type_printer): Likewise.
2213 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
2214 ambiguous typedef matching both std:: and std::__cxx11:: symbols.
2215 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
2216 \#define _GLIBCXX_USE_CXX11_ABI 0.
2217 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
2219 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2220 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2221 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
2223 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2225 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2227 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
2228 from binary literal instead of using stringstream.
2230 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2232 * include/std/bitset (operator>>): Use a simple buffer instead
2233 of std::basic_string.
2235 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2237 * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string)
2238 (_M_copy_to_string): Change access to private.
2239 (_M_copy_from_string(const basic_string&, size_t, size_t)):
2241 (_M_copy_to_string(const basic_string&)): Remove.
2243 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2245 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
2248 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
2249 Yvan ROUX <yvan.roux@foss.st.com>
2251 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.
2253 2022-09-30 Arsen Arsenović <arsen@aarsen.me>
2255 * include/std/bitset: Include <bits/stl_algobase.h>.
2257 2022-09-29 François Dumont <fdumont@gcc.gnu.org>
2259 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register
2260 printer for types in std::__debug namespace with template parameters in std::__8
2263 2022-09-29 Patrick Palka <ppalka@redhat.com>
2265 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
2266 __remove_cv and use __remove_cv_t instead.
2268 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
2270 * include/std/type_traits (__is_invocable_impl): Check
2271 __has_builtin(__reference_converts_from_temporary) before using
2274 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
2276 * doc/xml/manual/evolution.xml: Document std::bind API
2278 * doc/xml/manual/intro.xml: Document LWG 2487 status.
2279 * doc/xml/manual/using.xml: Clarify default value of
2280 _GLIBCXX_USE_DEPRECATED.
2281 * doc/html/*: Regenerate.
2282 * include/std/functional (_Bind::operator()(Args&&...) volatile)
2283 (_Bind::operator()(Args&&...) const volatile)
2284 (_Bind_result::operator()(Args&&...) volatile)
2285 (_Bind_result::operator()(Args&&...) const volatile): Replace
2286 with deleted overload for C++20 and later.
2287 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
2289 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
2290 ill-formed in C++20.
2292 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
2295 * include/bits/invoke.h [__cplusplus < 201703] (__invoke_r):
2296 Remove is_invocable and is_convertible constraints.
2297 * include/std/type_traits (__is_invocable_impl::_S_conv): Use
2298 non-deduced context for parameter.
2299 (__is_invocable_impl::_S_test): Remove _Check_noex template
2300 parameter and use deduced noexcept value in its place. Add bool
2301 parameter to detect dangling references.
2302 (__is_invocable_impl::type): Adjust call to _S_test to avoid
2303 deducing unnecessary noexcept property..
2304 (__is_invocable_impl::__nothrow_type): Rename to ...
2305 (__is_invocable_impl::__nothrow_conv): ... this. Adjust call
2306 to _S_test to deduce noexcept property.
2307 * testsuite/20_util/bind/dangling_ref.cc: New test.
2308 * testsuite/20_util/function/cons/70692.cc: New test.
2309 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
2311 * testsuite/20_util/is_invocable/dangling_ref.cc: New test.
2312 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
2315 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
2318 * testsuite/20_util/is_convertible/requirements/access.cc: New
2321 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
2324 * include/bits/std_function.h (__function_guide_t): New alias
2326 [__cpp_static_call_operator] (__function_guide_static_helper):
2328 (function): Use __function_guide_t in deduction guide.
2329 * include/std/future (packaged_task): Use __function_guide_t in
2331 * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
2332 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2335 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
2337 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
2338 Also define the __ptr_traits_elem class template for the
2340 (pointer_traits<Ptr>): Remove constrained partial
2342 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
2343 ambiguitiy with program-defined partial specialization.
2345 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
2347 * include/std/type_traits (is_convertible, is_convertible_v):
2348 Define using new built-in.
2349 (is_nothrow_convertible is_nothrow_convertible_v): Likewise.
2351 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
2354 * include/std/bitset (_Base_bitset::_M_do_reset): Use
2355 preprocessor conditional around non-C++03 code.
2356 * testsuite/20_util/bitset/107037.cc: New test.
2358 2022-09-24 Jonathan Wakely <jwakely@redhat.com>
2360 * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
2361 Only instantiate is_empty if needed.
2362 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
2363 (__ptr_traits_impl::rebind): Use __detected_or.
2364 * include/experimental/type_traits (is_same_v): Add a partial
2365 specialization instead of instantiating the std::is_same class
2367 (detected_t): Redefine in terms of detected_or_t.
2368 (is_detected, is_detected_v): Redefine in terms of detected_t.
2369 * include/std/type_traits [__cpp_concepts] (__detected_or): Add
2370 new definition using concepts.
2371 (__detector::value_t): Rename to __is_detected.
2372 * testsuite/17_intro/names.cc: Check value_t isn't used.
2374 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2376 * testsuite/20_util/is_assignable/requirements/access.cc:
2379 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2382 * include/std/type_traits (__is_nothrow_invocable_lib): Remove.
2383 (__is_invocable_impl::__nothrow_type): New member type which
2384 checks if the conversion can throw.
2385 (__is_nt_invocable_impl): Replace class template with alias
2386 template to __is_nt_invocable_impl::__nothrow_type.
2387 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
2388 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
2389 macro used by value_ext.cc test.
2390 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
2391 test for non-standard __is_nothrow_invocable_lib trait.
2393 2022-09-23 Marek Polacek <polacek@redhat.com>
2396 * include/std/type_traits: Rename __is_nothrow_convertible to
2397 __is_nothrow_convertible_lib.
2398 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise.
2400 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2402 * include/std/bitset (operator>>): Do not copy for N==0.
2403 * testsuite/20_util/bitset/io/input.cc: Add comment.
2405 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2407 * include/debug/bitset (__debug::bitset): Add constexpr to all
2409 (operator&, operator|, operator^): Add inline and constexpr.
2410 (operator>>, operator<<): Add inline.
2411 * testsuite/20_util/bitset/access/constexpr.cc: Only check using
2412 constexpr std::string for the cxx11 ABI.
2413 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
2414 * testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr
2417 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2419 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
2420 instead of iterating over individual bits.
2422 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
2424 * include/std/bitset (bitset): Add constexpr for C++23. Guard
2425 members using std::string with _GLIBCXX_HOSTED.
2426 * include/std/version (__cpp_lib_constexpr_bitset): Define.
2427 * testsuite/20_util/bitset/access/constexpr.cc: New test.
2428 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test.
2429 * testsuite/20_util/bitset/count/constexpr.cc: New test.
2430 * testsuite/20_util/bitset/ext/constexpr.cc: New test.
2431 * testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test.
2432 * testsuite/20_util/bitset/version.cc: New test.
2434 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
2436 * testsuite/23_containers/bitset/18604.cc: Moved to...
2437 * testsuite/20_util/bitset/18604.cc: ...here.
2438 * testsuite/23_containers/bitset/45713.cc: Moved to...
2439 * testsuite/20_util/bitset/45713.cc: ...here.
2440 * testsuite/23_containers/bitset/to_string/dr396.cc: Moved to...
2441 * testsuite/20_util/bitset/access/dr396.cc: ...here.
2442 * testsuite/23_containers/bitset/to_string/1.cc: Moved to...
2443 * testsuite/20_util/bitset/access/to_string.cc: ...here.
2444 * testsuite/23_containers/bitset/to_ullong/1.cc: Moved to...
2445 * testsuite/20_util/bitset/access/to_ullong.cc: ...here.
2446 * testsuite/23_containers/bitset/to_ulong/1.cc: Moved to...
2447 * testsuite/20_util/bitset/access/to_ulong.cc: ...here.
2448 * testsuite/23_containers/bitset/cons/1.cc: Moved to...
2449 * testsuite/20_util/bitset/cons/1.cc: ...here.
2450 * testsuite/23_containers/bitset/cons/16020.cc: Moved to...
2451 * testsuite/20_util/bitset/cons/16020.cc: ...here.
2452 * testsuite/23_containers/bitset/cons/2.cc: Moved to...
2453 * testsuite/20_util/bitset/cons/2.cc: ...here.
2454 * testsuite/23_containers/bitset/cons/3.cc: Moved to...
2455 * testsuite/20_util/bitset/cons/3.cc: ...here.
2456 * testsuite/23_containers/bitset/cons/38244.cc: Moved to...
2457 * testsuite/20_util/bitset/cons/38244.cc: ...here.
2458 * testsuite/23_containers/bitset/cons/50268.cc: Moved to...
2459 * testsuite/20_util/bitset/cons/50268.cc: ...here.
2460 * testsuite/23_containers/bitset/cons/6282.cc: Moved to...
2461 * testsuite/20_util/bitset/cons/6282.cc: ...here.
2462 * testsuite/23_containers/bitset/cons/constexpr.cc: Moved to...
2463 * testsuite/20_util/bitset/cons/constexpr.cc: ...here.
2464 * testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to...
2465 * testsuite/20_util/bitset/cons/dr1325-1.cc: ...here.
2466 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to...
2467 * testsuite/20_util/bitset/cons/dr1325-2.cc: ...here.
2468 * testsuite/23_containers/bitset/cons/dr396.cc: Moved to...
2469 * testsuite/20_util/bitset/cons/dr396.cc: ...here.
2470 * testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to...
2471 * testsuite/20_util/bitset/debug/invalidation/1.cc: ...here.
2472 * testsuite/23_containers/bitset/ext/15361.cc: Moved to...
2473 * testsuite/20_util/bitset/ext/15361.cc: ...here.
2474 * testsuite/23_containers/bitset/hash/1.cc: Moved to...
2475 * testsuite/20_util/bitset/hash/1.cc: ...here.
2476 * testsuite/23_containers/bitset/input/1.cc: Moved to...
2477 * testsuite/20_util/bitset/io/input.cc: ...here.
2478 * testsuite/23_containers/bitset/count/6124.cc: Moved to...
2479 * testsuite/20_util/bitset/observers/6124.cc: ...here.
2480 * testsuite/23_containers/bitset/all/1.cc: Moved to...
2481 * testsuite/20_util/bitset/observers/all.cc: ...here.
2482 * testsuite/23_containers/bitset/test/1.cc: Moved to...
2483 * testsuite/20_util/bitset/observers/test.cc: ...here.
2484 * testsuite/23_containers/bitset/operations/1.cc: Moved to...
2485 * testsuite/20_util/bitset/operations/1.cc: ...here.
2486 * testsuite/23_containers/bitset/operations/13838.cc: Moved to...
2487 * testsuite/20_util/bitset/operations/13838.cc: ...here.
2488 * testsuite/23_containers/bitset/operations/2.cc: Moved to...
2489 * testsuite/20_util/bitset/operations/2.cc: ...here.
2490 * testsuite/23_containers/bitset/operations/96303.cc: Moved to...
2491 * testsuite/20_util/bitset/operations/96303.cc: ...here.
2492 * testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to...
2493 * testsuite/20_util/bitset/operations/constexpr-2.cc: ...here.
2494 * testsuite/23_containers/bitset/operations/constexpr.cc: Moved to...
2495 * testsuite/20_util/bitset/operations/constexpr.cc: ...here.
2496 * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to...
2497 * testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here.
2498 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to...
2499 * testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here.
2500 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to...
2501 * testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here.
2502 * testsuite/23_containers/headers/bitset/synopsis.cc: Moved to...
2503 * testsuite/20_util/headers/bitset/synopsis.cc: ...here.
2505 2022-09-22 François Dumont <fdumont@gcc.gnu.org>
2507 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
2508 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
2509 std::__debug::priority_queue.
2511 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2514 * testsuite/20_util/function/91456.cc: Add comment with PR
2516 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
2517 std::function checks with std::is_invocable_r checks.
2519 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2521 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
2522 unnecessary main function.
2523 * testsuite/17_intro/headers/c++2011/all_attributes.cc:
2525 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2527 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2529 * testsuite/17_intro/headers/c++2020/all_attributes.cc:
2532 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2534 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
2535 from C++11 and later.
2537 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2539 * doc/xml/manual/documentation_hacking.xml: Remove trailing
2541 * doc/xml/manual/policy_data_structures.xml: Likewise.
2543 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2545 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
2546 using-declaration for _Exit.
2548 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2550 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
2553 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2555 * include/bits/ranges_base.h: Include <initializer_list>.
2557 2022-09-20 Jonathan Wakely <jwakely@redhat.com>
2559 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
2562 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2565 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
2567 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
2568 std::allocator_traits<std::allocator<T>> specializations for
2570 * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
2571 not declare for freestanding.
2572 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
2573 Do not define for freestanding.
2574 [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
2575 buffers for freestanding.
2576 * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
2577 streambuf iterators and overloaded algorithms using them.
2578 * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
2579 define specialized overloads for std::allocator.
2580 * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
2581 (make_unique_for_overwrite, operator<<): Do not define for
2583 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
2584 Use _GLIBCXX_NOTHROW instead of throw().
2585 * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
2586 _GLIBCXX_DEBUG for freestanding.
2587 * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
2588 * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
2589 __int_traits if <ext/numeric_traits.h> is available.
2590 * include/std/functional [!_GLIBCXX_HOSTED]: Do not include
2591 headers that aren't valid for freestanding.
2592 (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
2593 define for freestanding.
2594 * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
2595 headers that aren't valid for freestanding.
2596 * include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
2597 * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
2598 define for freestanding.
2599 (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
2600 Do not define partial specialization for freestanding.
2602 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2604 * include/bits/alloc_traits.h (__alloc_swap)
2605 (__shrink_to_fit_aux): Move here, from ...
2606 * include/bits/allocator.h: ... here.
2607 * include/ext/alloc_traits.h: Do not include allocator.h.
2609 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2611 * include/bits/stl_algo.h: Include <bits/stl_algobase.h>.
2612 * include/bits/stl_tempbuf.h: Include headers for __try and
2613 __catch macros, std::pair, and __gnu_cxx::__numeric_traits.
2614 * include/bits/stream_iterator.h: Include <iosfwd> and headers
2615 for std::addressof and std::iterator.
2616 * include/bits/streambuf_iterator.h: Include header for
2618 * include/std/iterator: Do not include <iosfwd>.
2620 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2622 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
2623 Store value with non-zero padding bits after construction.
2625 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2627 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
2628 (__detail::_Adaptor::_M_g): Make public.
2629 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial
2631 (variate_generate::_Value): New helper to simplify handling of
2632 _Engine* and _Engine& template arguments.
2633 (variate_generate::engine_value_type): Define to underlying
2634 engine type, not adapted type.
2635 (variate_generate::engine()): Return underlying engine instead
2637 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
2639 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
2640 Check member typedefs have the correct types.
2642 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2644 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
2645 (_Error_formatter): Use 0 as null pointer constant.
2647 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2649 * include/bits/allocator.h (__alloc_neq): Remove.
2650 * include/bits/stl_list.h (list::_M_check_equal_allocators):
2651 Compare allocators directly, without __alloc_neq.
2653 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2655 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
2656 * include/bits/allocator.h: Fix nesting of Doxygen commands.
2658 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2660 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and
2661 GLIBCXX_3.4.31 versions.
2662 * doc/html/manual/abi.html: Regenerate.
2664 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
2666 * include/std/memory: Do not include <bits/stl_algobase.h>.
2668 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
2670 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
2672 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
2673 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
2674 try_lock_failed flag
2675 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
2676 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
2677 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
2678 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
2679 (_Sp_atomic::_Atomic_count::lock): Use new macros.
2681 2022-09-15 Patrick Palka <ppalka@redhat.com>
2683 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
2685 * include/bits/ranges_util.h: ... here.
2686 * include/std/ranges (chunk_by_view): Define.
2687 (chunk_by_view::_Iterator): Define.
2688 (__detail::__can_chunk_by_view): Define.
2689 (_ChunkBy, chunk_by): Define.
2690 * testsuite/std/ranges/adaptors/chunk_by/1.cc: New test.
2692 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
2694 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
2695 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.
2697 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
2699 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
2702 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2704 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
2705 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
2706 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
2707 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
2708 Define macros for TSan annotation functions.
2709 (_Sp_atomic::_Atomic_count): Add annotations.
2711 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2713 * include/bits/stl_tempbuf.h: Include <new>.
2715 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2717 * testsuite/17_intro/names.cc: Explain why poison pragma can't
2720 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2722 * include/std/future
2723 (_State_baseV2::__setter(exception_ptr&, promise&)): Add
2724 assertion for LWG 2276 precondition.
2725 * testsuite/30_threads/promise/members/set_exception_neg.cc:
2728 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2730 * doc/xml/manual/intro.xml: Document LWG 1203.
2731 * doc/html/*: Regenerate.
2733 2022-09-14 Philipp Fent <fent@in.tum.de>
2735 * python/libstdcxx/v6/printers.py (access_streambuf_ptrs):
2736 New helper function.
2737 (StdStringBufPrinter, StdStringStreamPrinter): New printers.
2738 (build_libstdcxx_dictionary): Register stringstream printers.
2739 * testsuite/libstdc++-prettyprinters/debug.cc: Check string
2741 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
2742 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2744 2022-09-13 Patrick Palka <ppalka@redhat.com>
2746 * include/std/ranges (__detail::__slide_caches_nothing): Define.
2747 (__detail::__slide_caches_last): Define.
2748 (__detail::__slide_caches_first): Define.
2749 (slide_view): Define.
2750 (enable_borrowed_range<slide_view>): Define.
2751 (slide_view::_Iterator): Define.
2752 (slide_view::_Sentinel): Define.
2753 (views::__detail::__can_slide_view): Define.
2754 (views::_Slide, views::slide): Define.
2755 * testsuite/std/ranges/adaptors/slide/1.cc: New test.
2757 2022-09-13 Patrick Palka <ppalka@redhat.com>
2759 * include/std/ranges (__detail::__div_ceil): Define.
2760 (chunk_view): Define.
2761 (chunk_view::_OuterIter): Define.
2762 (chunk_view::_OuterIter::value_type): Define.
2763 (chunk_view::_InnerIter): Define.
2764 (chunk_view<_Vp>): Define partial specialization for forward
2766 (enable_borrowed_range<chunk_view>): Define.
2767 (chunk_view<_Vp>::_Iterator): Define.
2768 (views::__detail::__can_chunk_view): Define.
2769 (views::_Chunk, views::chunk): Define.
2770 * testsuite/std/ranges/adaptors/chunk/1.cc: New test.
2772 2022-09-13 Patrick Palka <ppalka@redhat.com>
2774 * include/std/ranges (join_view::_Iterator::_M_satisfy):
2775 Adjust resetting _M_inner as per LWG 3569.
2776 (join_view::_Iterator::_M_inner): Wrap in std::optional
2778 (join_view::_Iterator::_Iterator): Relax constraints as
2780 (join_view::_Iterator::operator*): Adjust as per LWG 3569.
2781 (join_view::_Iterator::operator->): Likewise.
2782 (join_view::_Iterator::operator++): Likewise.
2783 (join_view::_Iterator::operator--): Likewise.
2784 (join_view::_Iterator::iter_move): Likewise.
2785 (join_view::_Iterator::iter_swap): Likewise.
2786 * testsuite/std/ranges/adaptors/join.cc (test14): New test.
2788 2022-09-13 Patrick Palka <ppalka@redhat.com>
2790 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
2791 Add parentheses to avoid -Wparentheses warning.
2793 2022-09-12 Patrick Palka <ppalka@redhat.com>
2796 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
2798 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
2800 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
2802 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
2805 2022-09-12 Jakub Jelinek <jakub@redhat.com>
2807 PR tree-optimization/105329
2808 * acinclude.m4 (libtool_VERSION): Change to 6:31:0.
2809 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
2810 std::basic_string methods with name length of 15.
2811 (GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
2812 * testsuite/util/testsuite_abi.cc (check_version): Handle
2814 * include/bits/basic_string.h (std::basic_string::_M_replace_cold):
2816 * include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
2817 Define and export even for C++20.
2818 (std::basic_string::_M_replace): Use __builtin_expect, outline
2819 the overlapping case to _M_replace_cold.
2820 * configure: Regenerated.
2822 2022-09-09 Jonathan Wakely <jwakely@redhat.com>
2824 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
2825 Rename __weak to __is_weak.
2826 * testsuite/17_intro/names.cc: Add __weak and __strong.
2828 2022-09-09 Patrick Palka <ppalka@redhat.com>
2831 * include/std/ranges (views::_ZipTransform::operator()): Correct
2832 return type in the empty case.
2833 (views::_AdjacentTransform::operator()): Likewise.
2835 2022-09-09 Patrick Palka <ppalka@redhat.com>
2838 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
2840 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.
2842 2022-09-09 Patrick Palka <ppalka@redhat.com>
2845 * include/std/ranges (zip_view::_Iterator::operator-): Use
2846 __to_unsigned_like instead of make_unsigned_t.
2847 (zip_view::_Sentinel::operator-): Likewise.
2848 * testsuite/std/ranges/zip/1.cc (test04): New test.
2850 2022-09-08 François Dumont <fdumont@gcc.gnu.org>
2852 * testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New.
2853 (__gnu_test::malloc_info): New, replace mallinfo on current platform
2854 supporting it and use mallinfo2 when glibc >= 2.33.
2856 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
2859 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
2860 Prune additional errors from front-end.
2861 * testsuite/20_util/is_move_constructible/incomplete_neg.cc:
2863 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
2865 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
2867 * testsuite/20_util/is_swappable_with/incomplete_neg.cc:
2870 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
2872 * include/c_global/cstddef (byte): Add always_inline attribute
2873 to all operator overloads.
2874 (to_integer): Add always_inline attribute.
2876 2022-09-08 Thomas Rodgers <trodgers@redhat.com>
2877 Jakub Jelinek <jakub@redhat.com>
2878 Jonathan Wakely <jwakely@redhat.com>
2880 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
2882 (__atomic_impl::clear_padding): Likewise.
2883 (__atomic_impl::__compare_exchange): Likewise.
2884 (__atomic_impl::compare_exchange_weak): Delegate to
2886 (__atomic_impl::compare_exchange_strong): Likewise.
2887 * include/std/atomic (atomic<T>::atomic(T)): Clear padding when
2888 possible in a constexpr function.
2889 (atomic::store): Clear padding.
2890 (atomic::exchange): Likewise.
2891 (atomic::compare_exchange_weak): Use __compare_exchange.
2892 (atomic::compare_exchange_strong): Likewise.
2893 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: New
2895 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
2898 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
2900 * include/std/system_error (__adl_only::make_error_code): Add
2902 (__adl_only::make_error_condition): Likewise.
2903 (error_code::error_code(ErrorCodeEnum)): Add using-declaration
2904 for deleted function.
2905 (error_condition::error_condition(ErrorConditionEnum)):
2907 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
2908 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
2910 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
2912 * include/std/barrier: Add missing runtime exception.
2914 2022-09-07 Patrick Palka <ppalka@redhat.com>
2916 * include/std/type_traits (is_reference): Make the primary
2917 template derive from false_type. Define two partial
2918 specializations that derive from true_type.
2920 2022-09-07 Patrick Palka <ppalka@redhat.com>
2922 * include/std/type_traits (__is_void_helper): Remove.
2923 (is_void): Make the primary template derive from false_type,
2924 and define four explicit specializations that derive from
2926 (__is_null_pointer_helper, is_null_pointer): Likewise.
2928 2022-09-07 Jason Merrill <jason@redhat.com>
2930 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
2931 call in simple success case.
2933 2022-09-06 Philipp Fent <fent@in.tum.de>
2935 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
2937 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
2939 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
2941 * include/std/type_traits (__success_type, __failure_type): Move
2942 definitions later in the file.
2944 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
2946 * include/std/type_traits (is_trivial_v, is_trivially_copyable_v)
2947 (is_standard_layout_v, is_pod_v, is_literal_type_v): Use
2948 built-in instead of class template.
2949 (is_same_v): Add partial specialization for true case.
2951 2022-09-02 Patrick Palka <ppalka@redhat.com>
2953 * include/std/tuple (tuple::_UseOtherCtor): Use ::type when
2954 deriving from __and_, __or_ or __not_.
2955 * include/std/type_traits (negation): Likewise.
2956 (is_unsigned): Likewise.
2957 (__is_implicitly_default_constructible): Likewise.
2958 (is_trivially_destructible): Likewise.
2959 (__is_nt_invocable_impl): Likewise.
2961 2022-09-02 Jonathan Wakely <jwakely@redhat.com>
2963 * include/std/type_traits (is_constructible_v)
2964 (is_default_constructible_v, is_copy_constructible_v)
2965 (is_move_constructible_v): Define using __is_constructible.
2966 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v):
2967 Define using __is_assignable.
2968 (is_trivially_constructible_v)
2969 (is_trivially_default_constructible_v)
2970 (is_trivially_copy_constructible_v)
2971 (is_trivially_move_constructible_v): Define using
2972 __is_trivially_constructible.
2973 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2974 (is_trivially_move_assignable_v): Define using
2975 __is_trivially_assignable.
2976 (is_nothrow_constructible_v)
2977 (is_nothrow_default_constructible_v)
2978 (is_nothrow_copy_constructible_v)
2979 (is_nothrow_move_constructible_v): Define using
2980 __is_nothrow_constructible.
2981 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2982 (is_nothrow_move_assignable_v): Define using
2983 __is_nothrow_assignable.
2985 2022-09-02 Patrick Palka <ppalka@redhat.com>
2987 * include/std/type_traits (__or_, __and_, __not_): Redefine as a
2988 class template instead of as an alias template.
2989 * testsuite/20_util/logical_traits/requirements/short_circuit.cc:
2990 Add more tests for conjunction and disjunction. Add corresponding
2991 tests for __and_ and __or_.
2993 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
2995 * include/std/ranges (adjacent_transform_view::_Iterator): Add
2996 typename keyword before dependent qualified-id.
2998 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3000 * include/std/type_traits (__is_referenceable): Remove.
3001 (__add_lvalue_reference_helper, __add_rvalue_reference_helper):
3002 Use __void_t instead of __is_referenceable.
3003 (__add_pointer_helper): Likewise.
3004 (add_pointer): Add partial specializations for reference types.
3006 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3008 * include/std/type_traits (__is_constructible_impl): Replace
3009 class template with alias template.
3010 (is_default_constructible, is_nothrow_constructible)
3011 (is_nothrow_constructible): Simplify base-specifier.
3012 (__is_copy_constructible_impl, __is_move_constructible_impl)
3013 (__is_nothrow_copy_constructible_impl)
3014 (__is_nothrow_move_constructible_impl): Remove class templates.
3015 (is_copy_constructible, is_move_constructible)
3016 (is_nothrow_constructible, is_nothrow_default_constructible)
3017 (is_nothrow_copy_constructible, is_nothrow_move_constructible):
3018 Adjust base-specifiers to use __is_constructible_impl.
3019 (__is_copy_assignable_impl, __is_move_assignable_impl)
3020 (__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl):
3021 Remove class templates.
3022 (__is_assignable_impl): New alias template.
3023 (is_assignable, is_copy_assignable, is_move_assignable):
3024 Adjust base-specifiers to use new alias template.
3025 (is_nothrow_copy_assignable, is_nothrow_move_assignable):
3026 Adjust base-specifiers to use existing alias template.
3027 (__is_trivially_constructible_impl): New alias template.
3028 (is_trivially_constructible, is_trivially_default_constructible)
3029 (is_trivially_copy_constructible)
3030 (is_trivially_move_constructible): Adjust base-specifiers to use
3032 (__is_trivially_assignable_impl): New alias template.
3033 (is_trivially_assignable, is_trivially_copy_assignable)
3034 (is_trivially_move_assignable): Adjust base-specifier to use
3036 (__add_lval_ref_t, __add_rval_ref_t): New alias templates.
3037 (add_lvalue_reference, add_rvalue_reference): Use new alias
3040 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3042 * include/std/type_traits (__decay_selector): Add partial
3043 specializations for array types. Only check for function types
3044 when not dealing with an array.
3045 (decay): Add partial specializations for reference types.
3047 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3049 * include/std/type_traits (is_lvalue_reference_v)
3050 (is_rvalue_reference_v, is_reference_v, is_const_v)
3051 (is_volatile_v): Define using partial specializations instead
3052 of instantiating class templates.
3054 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3056 * include/std/type_traits (is_enum_v, is_class_v, is_union_v)
3057 (is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v)
3058 (is_base_of_v, is_aggregate_v): Use built-in directly instead of
3059 instantiating class template.
3061 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3063 * include/std/type_traits (is_scoped_enum): Remove workaround.
3065 2022-09-01 Patrick Palka <ppalka@redhat.com>
3067 * include/std/ranges (__detail::__unarize): Define.
3068 (adjacent_view::_Iterator): Befriend adjacent_transform_view.
3069 (adjacent_transform_view): Define.
3070 (adjacent_transform_view::_Iterator): Define.
3071 (adjacent_transform_view::_Sentinel): Define.
3072 (views::__detail::__can_adjacent_transform_view): Define.
3073 (views::_AdjacentTransform): Define.
3074 (views::adjacent_transform): Define.
3075 (views::pairwise_transform): Define.
3076 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test.
3078 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3080 * include/std/type_traits (__is_array_known_bounds): Add partial
3081 specialization instead of using std::extent.
3082 (__is_array_unknown_bounds): Likewise.
3083 (extent): Add partial specializations to stop recursion after
3084 the result is found.
3085 (is_array_v): Add partial specializations instead of
3086 instantiating the class template.
3087 (rank_v, extent_v): Likewise.
3088 (is_bounded_array_v, is_unbounded_array_v): Likewise.
3089 (is_bounded_array, is_unbounded_array): Define in terms of the
3092 2022-08-31 Patrick Palka <ppalka@redhat.com>
3094 * include/bits/ranges_base.h (__advance_fn::operator()): Add
3095 parentheses in assert condition to avoid -Wparentheses warning.
3096 * include/std/ranges: (take_view::take_view): Uglify 'base'.
3097 (take_while_view::take_while_view): Likewise.
3098 (elements_view::elements_view): Likewise.
3099 (views::_Zip::operator()): Adjust position of [[nodiscard]] for
3100 compatibility with -fconcepts-ts.
3101 (zip_transform_view::_Sentinel): Uglify 'OtherConst'.
3102 (views::_ZipTransform::operator()): Adjust position of
3103 [[nodiscard]] for compatibilty with -fconcepts-ts.
3105 2022-08-31 Martin Liska <mliska@suse.cz>
3107 * configure: Regenerate.
3108 * crossconfig.m4: Remove deprecated ports.
3110 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
3112 * include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11.
3113 * include/debug/string: Likewise.
3114 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string.
3115 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise.
3116 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise.
3117 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise.
3118 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise.
3119 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise..
3121 2022-08-31 Patrick Palka <ppalka@redhat.com>
3123 * include/std/ranges (adjacent_view): Define.
3124 (enable_borrowed_range<adjacent_view>): Define.
3125 (__detail::__repeated_tuple): Define.
3126 (adjacent_view::_Iterator): Define.
3127 (adjacent_view::_Sentinel): Define.
3128 (views::__detail::__can_adjacent_view): Define.
3129 (views::_Adjacent): Define.
3130 (views::adjacent): Define.
3131 (views::pairwise): Define.
3132 * testsuite/std/ranges/adaptors/adjacent/1.cc: New test.
3134 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
3136 * include/debug/formatter.h
3137 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
3138 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
3139 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
3140 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
3141 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
3142 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
3143 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
3144 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
3145 * src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
3146 (_Error_formatter::_M_error()): Adapt.
3147 * src/libbacktrace/Makefile.am: Add backtrace.c.
3148 * src/libbacktrace/Makefile.in: Regenerate.
3149 * src/libbacktrace/backtrace-rename.h (backtrace_full): New.
3150 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test.
3151 * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
3152 * doc/xml/manual/using.xml: Likewise.
3154 2022-08-31 Patrick Palka <ppalka@redhat.com>
3156 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
3158 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
3160 * include/bits/refwrap.h (reference_wrapper::operator()): Add
3161 noexcept-specifier and use __invoke_result instead of result_of.
3162 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
3164 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
3166 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
3168 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
3169 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
3171 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
3173 * include/bits/basic_string.h (basic_string): Add nodiscard
3174 attribute to all relevant functions.
3175 * include/std/string_view (basic_string_view): Likewise.
3176 * testsuite/21_strings/basic_string/capacity/1.cc: Cast unused
3178 * testsuite/21_strings/basic_string/capacity/char/1.cc:
3180 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
3182 * testsuite/21_strings/basic_string/cons/char/self_move.cc:
3184 * testsuite/21_strings/basic_string/element_access/char/1.cc:
3186 * testsuite/21_strings/basic_string/element_access/char/21674.cc:
3188 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
3190 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
3192 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3193 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3194 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc:
3195 Add -Wno-unused-result to options.
3196 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
3198 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
3200 * testsuite/21_strings/basic_string/operators/char/1.cc: Cast
3201 unused results to void.
3202 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc:
3204 * testsuite/21_strings/basic_string_view/capacity/1.cc:
3206 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3208 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3210 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3212 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3214 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
3216 Add -Wno-unused-result to options.
3217 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
3219 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
3221 * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast
3222 unused results to void.
3223 * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc:
3225 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
3226 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
3229 2022-08-27 Patrick Palka <ppalka@redhat.com>
3231 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
3233 2022-08-26 Patrick Palka <ppalka@redhat.com>
3235 * include/std/ranges (zip_view::_Iterator::operator<): Remove
3237 (zip_view::_Iterator::operator>): Likewise.
3238 (zip_view::_Iterator::operator<=): Likewise.
3239 (zip_view::_Iterator::operator>=): Likewise.
3240 (zip_view::_Iterator::operator<=>): Remove three_way_comparable
3241 constraint as per LWG 3692.
3242 (zip_transform_view::_Iterator): Ditto as per LWG 3702.
3244 2022-08-26 Patrick Palka <ppalka@redhat.com>
3246 * include/std/ranges (zip_view::_Iterator): Befriend
3248 (__detail::__range_iter_cat): Define.
3249 (zip_transform_view): Define.
3250 (zip_transform_view::_Iterator): Define.
3251 (zip_transform_view::_Sentinel): Define.
3252 (views::__detail::__can_zip_transform_view): Define.
3253 (views::_ZipTransform): Define.
3254 (views::zip_transform): Define.
3255 * testsuite/std/ranges/zip_transform/1.cc: New test.
3257 2022-08-26 Patrick Palka <ppalka@redhat.com>
3259 * include/std/type_traits (enable_if, __enable_if_t): Define them
3261 (__detail::__first_t): Define.
3262 (__detail::__or_fn, __detail::__and_fn): Declare.
3263 (__or_, __and_): Redefine as alias templates in terms of __or_fn
3265 (__not_): Redefine as an alias template.
3266 (__detail::__disjunction_impl, __detail::__conjunction_impl):
3268 (conjuction, disjunction): Redefine in terms of __disjunction_impl
3269 and __conjunction_impl.
3271 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
3273 * include/std/system_error (error_code::_Check): New alias
3274 template for constructor SFINAE constraint.
3275 (error_code::error_code(ErrorCodeEnum)): Use it.
3276 (error_code::operator=(ErrorCodeEnum)): Remove.
3277 (error_condition::_Check): New alias template for constraint.
3278 (error_condition::error_condition(ErrorConditionEnum)): Use it.
3279 (error_condition::operator=(ErrorConditionEnum)): Remove.
3280 * testsuite/19_diagnostics/error_code/cons/1.cc: Check
3281 constructor taking user-defined error enum.
3282 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
3284 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
3286 * include/bits/basic_string.h (starts_with, ends_with, contains):
3287 Add nonnull attribute.
3288 * include/bits/cow_string.h (starts_with, ends_with, contains):
3290 * include/std/string_view (starts_with, ends_with, contains):
3292 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc
3293 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
3294 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
3295 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
3296 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
3297 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
3299 2022-08-25 Patrick Palka <ppalka@redhat.com>
3301 * include/std/ranges (lazy_split_view::_OuterIter::_M_current):
3302 Remove redundant comment.
3303 (lazy_split_view::_M_current): Likewise.
3304 (common_view::common_view): Remove commented out view-converting
3305 constructor as per LWG3405.
3306 (elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'.
3308 2022-08-24 Patrick Palka <ppalka@redhat.com>
3310 * include/bits/ranges_algo.h (__min_fn, min): Move to ...
3311 * include/bits/ranges_util.h: ... here, in order to avoid
3312 including all of ranges_algo.h from <ranges>.
3313 * include/std/ranges (__detail::__zip_is_common): Define for
3314 C++23 as per P2321R2.
3315 (__detail::__tuple_or_pair): Likewise.
3316 (__detail::__tuple_or_pair_t): Likewise.
3317 (__detail::__tuple_transform): Likewise.
3318 (__detail::__tuple_for_each): Likewise.
3319 (zip_view): Likewise.
3320 (enable_borrowed_range<zip_view>): Likewise.
3321 (__detail::__all_random_access): Likewise.
3322 (__detail::__all_bidirectional): Likewise.
3323 (__detail::__all_forward): Likewise.
3324 (__detail::__zip_view_iter_cat): Likewise.
3325 (zip_view::_Iterator): Likewise.
3326 (zip_view::_Sentinel): Likewise.
3327 * testsuite/std/ranges/zip/1.cc: New test.
3329 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
3332 2022-08-24 Will Hawkins <whh8b@obs.cr>
3334 * include/bits/basic_string.h (operator+(const string&, const char*)):
3335 Remove naive implementation.
3336 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
3337 Add single-allocation implementation.
3339 2022-08-24 Patrick Palka <ppalka@redhat.com>
3341 * include/bits/stl_pair.h (pair::swap const): Add non-standard
3342 is_swappable_v constraints.
3343 * include/std/tuple (tuple::swap const): Likewise.
3344 * testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some
3345 asserts in C++23 mode.
3347 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
3349 * include/bits/stl_algo.h (__stable_sort): Cast size to
3350 iterator's difference type.
3351 * testsuite/25_algorithms/stable_sort/4.cc: New test.
3353 2022-08-24 Will Hawkins <whh8b@obs.cr>
3355 * include/bits/basic_string.h (operator+(const string&, const char*)):
3356 Remove naive implementation.
3357 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
3358 Add single-allocation implementation.
3360 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
3362 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
3363 non-reduced duration.
3365 2022-08-23 Patrick Palka <ppalka@redhat.com>
3367 * include/bits/stl_bvector.h (_Bit_reference::operator=): Define
3368 const overload for C++23 as per P2321R2.
3369 * include/bits/stl_pair.h (pair::swap): Likewise.
3370 (pair::pair): Define additional converting constructors for
3371 C++23 as per P2321R2.
3372 (pair::operator=): Define const overloads for C++23 as per
3374 (swap): Define overload taking const pair& for C++23 as per
3376 (basic_common_reference): Define partial specialization for
3377 pair for C++23 as per P2321R2.
3378 (common_type): Likewise.
3379 * include/bits/uses_allocator_args.h
3380 (uses_allocator_construction_args): Define additional pair
3381 overloads for C++23 as per P2321R2.
3382 * include/std/tuple (_Tuple_impl::_Tuple_impl): Define
3383 additional converting constructors for C++23 as per P2321R2.
3384 (_Tuple_impl::_M_assign): Define const overloads for C++23
3386 (_Tuple_impl::_M_swap): Likewise.
3387 (tuple::__constructible): Define as a convenient renaming of
3388 _TCC<true>::__constructible.
3389 (tuple::__convertible): As above but for _TCC<true>::__convertible.
3390 (tuple::tuple): Define additional converting constructors for
3391 C++23 as per P2321R2.
3392 (tuple::operator=): Define const overloads for C++23 as per
3394 (tuple::swap): Likewise.
3395 (basic_common_reference): Define partial specialization for
3396 tuple for C++23 as per P2321R2.
3397 (common_type): Likewise.
3398 * testsuite/20_util/pair/p2321r2.cc: New test.
3399 * testsuite/20_util/tuple/p2321r2.cc: New test.
3400 * testsuite/23_containers/vector/bool/element_access/1.cc: New test.
3402 2022-08-23 Patrick Palka <ppalka@redhat.com>
3404 * include/std/tuple (_TupleConstraints::__convertible): Define.
3405 (_TupleConstraints::__constructible): Define.
3406 (_TupleConstraints::__is_explicitly_constructible): Redefine this
3407 in terms of __convertible and __constructible.
3408 (_TupleConstraints::__is_implicitly_constructible): Likewise.
3410 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
3413 * include/std/variant (__do_visit): Handle is_void<R> for zero
3415 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
3417 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
3420 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
3421 requirement for using std::stacktrace. Also adjust -frtti and
3422 -fexceptions to document non-default (i.e. negative) forms.
3423 * doc/html/*: Regenerate.
3425 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
3428 * include/bits/std_thread.h (thread::_State_impl): Forward
3429 individual arguments to _Invoker constructor.
3430 (thread::_Invoker): Add constructor. Delete copies.
3431 * include/std/future (__future_base::_Deferred_state): Forward
3432 individual arguments to _Invoker constructor.
3433 (__future_base::_Async_state_impl): Likewise.
3434 * testsuite/30_threads/async/106695.cc: New test.
3435 * testsuite/30_threads/thread/106695.cc: New test.
3437 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
3440 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
3441 Use built-ins to check for integer overflow in back-reference
3443 * testsuite/28_regex/basic_regex/106607.cc: New test.
3445 2022-08-17 Keef Aragon <keef.aragon@konscious.net>
3447 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
3449 2022-08-08 François Dumont <fdumont@gcc.gnu.org>
3451 * include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry.
3452 (_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator
3453 parameter is value-initialized.
3454 (_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise.
3455 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt
3457 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
3459 * src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version.
3460 (print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names.
3461 * testsuite/23_containers/deque/debug/iterator1_neg.cc: New test.
3462 * testsuite/23_containers/deque/debug/iterator2_neg.cc: New test.
3463 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test.
3464 * testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test.
3465 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test.
3467 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
3469 * include/experimental/scope (__cpp_lib_experimental_scope):
3471 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro.
3473 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
3475 * include/Makefile.am: Add new header.
3476 * include/Makefile.in: Regenerate.
3477 * include/experimental/scope: New file.
3478 * testsuite/experimental/scopeguard/uniqueres.cc: New test.
3479 * testsuite/experimental/scopeguard/exit.cc: New test.
3481 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3483 * include/std/string_view (basic_string_view(Range&&)): Add
3484 explicit as per P2499R0.
3485 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
3486 Adjust implicit conversions. Check implicit conversions fail.
3487 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
3490 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3492 * include/bits/fs_dir.h (directory_iterator): Add comparison
3493 with std::default_sentinel_t. Remove redundant operator!= for
3495 * (recursive_directory_iterator): Likewise.
3496 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
3497 (default_sentinel_t, default_sentinel): Define even if concepts
3499 * include/bits/regex.h (regex_iterator): Add comparison with
3500 std::default_sentinel_t. Remove redundant operator!= for C++20.
3501 (regex_token_iterator): Likewise.
3502 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
3503 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
3504 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
3506 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
3509 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3511 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
3512 (bad_expected_access::_M_val): Likewise.
3514 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3516 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
3518 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
3519 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
3521 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3524 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3527 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
3528 Move increment of _M_ver here.
3529 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
3530 Use relaxed memory order and always notify all waiters.
3531 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
3532 Check value again after locking mutex.
3533 (__waiter_base::_M_notify): Remove increment of _M_ver.
3535 2022-08-04 Ulrich Drepper <drepper@gmail.com>
3537 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
3538 zero-based indeces just like std:get takes.
3540 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
3543 * include/bits/stl_iterator.h (common_iterator::operator->):
3544 Change return type to just auto.
3546 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
3548 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
3550 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
3553 * include/bits/stl_iterator.h (common_iterator): Define
3554 destructor, copy constructor and move constructor as trivial
3555 when the underlying types allow.
3556 * testsuite/24_iterators/common_iterator/100823.cc: Check
3557 triviality of special members.
3559 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
3562 * include/bits/stl_iterator.h (common_iterator): Define move
3563 constructor and move assignment operator.
3564 (common_iterator::_M_assign): New function implementing
3566 (common_iterator::operator=): Use _M_assign.
3567 (common_iterator::_S_valueless): New constant.
3568 * testsuite/24_iterators/common_iterator/100823.cc: New test.
3570 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
3572 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
3573 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
3574 friend declaration. Do not move argument in copy constructor.
3575 * testsuite/24_iterators/common_iterator/1.cc: Check for
3576 noexcept constructibnle/assignable.
3578 2022-07-19 François Dumont <fdumont@gcc.gnu.org>
3580 * include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define
3581 using _GLIBCXX_DEBUG_PEDASSERT.
3582 [_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise.
3583 * include/debug/macros.h
3584 (__glibcxx_check_string, __glibcxx_check_string_len): Move...
3585 * include/debug/string
3586 (__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending
3587 on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined.
3588 Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of
3589 and find_last_not_of. Remove debug implementations having no debug assertion.
3590 * testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and
3591 __gnu_test::wtring which definition depends on _GLIBCXX_DEBUG.
3592 * testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case.
3593 * testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case.
3594 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
3595 Include <testsuite_string.h> and use __gnu_test::string.
3596 * testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise.
3597 * testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise.
3598 * testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise.
3599 * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise.
3600 * testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise.
3601 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
3602 Include <testsuite_string.h> and use __gnu_test::wstring.
3603 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise.
3604 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise.
3605 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise.
3606 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise.
3607 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise.
3609 2022-07-19 Jonathan Wakely <jwakely@redhat.com>
3611 * include/std/type_traits (__cpp_lib_reference_from_temporary)
3612 (reference_constructs_from_temporary)
3613 (reference_converts_from_temporary): Only define when the
3614 built-ins are available.
3616 2022-07-19 Marco Falke <falke.marco@gmail.com>
3618 * include/std/charconv (__from_chars_alnum_to_val): Replace
3619 implicit conversion from int to unsigned char with explicit
3622 2022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
3624 * configure: Regnerate.
3625 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
3627 2022-07-18 François Dumont <fdumont@gcc.gnu.org>
3629 * include/bits/stl_algo.h
3630 (__merge_adaptive): Adapt to merge only when buffer is large enough..
3631 (__merge_adaptive_resize): New, adapt merge when buffer is too small.
3632 (__inplace_merge): Adapt, use latter.
3633 (__stable_sort_adaptive): Adapt to sort only when buffer is large enough.
3634 (__stable_sort_adaptive_resize): New, adapt sort when buffer is too small.
3635 (__stable_sort): Adapt, use latter.
3637 2022-07-15 Marek Polacek <polacek@redhat.com>
3640 * include/std/type_traits (reference_constructs_from_temporary,
3641 reference_converts_from_temporary): New class templates.
3642 (reference_constructs_from_temporary_v,
3643 reference_converts_from_temporary_v): New variable templates.
3644 (__cpp_lib_reference_from_temporary): Define for C++23.
3645 * include/std/version (__cpp_lib_reference_from_temporary): Define for
3647 * testsuite/20_util/variable_templates_for_traits.cc: Test
3648 reference_constructs_from_temporary_v and
3649 reference_converts_from_temporary_v.
3650 * testsuite/20_util/reference_from_temporary/value.cc: New test.
3651 * testsuite/20_util/reference_from_temporary/value2.cc: New test.
3652 * testsuite/20_util/reference_from_temporary/version.cc: New test.
3654 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
3657 * include/std/istream [C++17] (operator>>(istream&, char*)):
3658 Set eofbit if we stopped extracting at EOF.
3659 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
3661 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
3664 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
3666 * include/bits/stl_iterator.h (__iter_to_alloc_t): Replace
3667 add_const_t with const-qualifier.
3668 * include/bits/utility.h (tuple_element<N, cv T>): Likewise for
3670 * include/std/type_traits (add_const, add_volatile): Replace
3671 typedef-declaration with using-declaration.
3672 (add_cv): Replace add_const and add_volatile with cv-qualifiers.
3673 * include/std/variant (variant_alternative<N, cv T>): Replace
3674 add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers.
3676 2022-07-09 François Dumont <fdumont@gcc.gnu.org>
3678 * include/std/string: Remove obsolete comment about char_traits.h including
3681 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
3684 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
3685 Remove workaround for front-end bug.
3687 2022-07-05 Alexandre Oliva <oliva@adacore.com>
3689 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
3690 why we need the typecast.
3692 2022-07-05 Alexandre Oliva <oliva@adacore.com>
3694 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert
3695 the getpid result to an integral type.
3697 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
3700 * include/Makefile.am (largefile-config.h): Add
3701 stamp-${host_alias} prerequisite.
3702 * include/Makefile.in: Regenerate.
3704 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
3706 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
3707 * include/experimental/bits/fs_ops.h: Likewise.
3708 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
3709 results of absolute and canonical.
3710 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
3711 discarded result to void.
3712 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3713 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3714 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3715 * testsuite/27_io/filesystem/operations/read_symlink.cc:
3717 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3718 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3720 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3722 * testsuite/experimental/filesystem/operations/canonical.cc:
3724 * testsuite/experimental/filesystem/operations/exists.cc:
3726 * testsuite/experimental/filesystem/operations/is_empty.cc:
3728 * testsuite/experimental/filesystem/operations/read_symlink.cc:
3730 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3733 2022-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
3735 * configure: Regnerate.
3736 * configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS
3737 targets except bfin, lm32, mips, moxie, or1k, and v850.
3738 For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT,
3739 HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV,
3740 HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK,
3741 HAVE_TRUNCATE, and HAVE_USLEEP.
3742 * crossconfig.m4 (*-rtems*): Remove.
3744 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
3746 * include/bits/utility.h: Fix comment typos.
3748 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
3750 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
3752 (fs::temp_directory_path(error_code&)): Rearrange to more
3753 closely match the structure of the first overload.
3754 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
3755 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3756 Check that exception contains the path.
3757 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3760 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
3763 * src/filesystem/ops.cc (has_trailing_slash): New helper
3765 (fs::status): Strip trailing slashes.
3766 (fs::symlink_status): Likewise.
3767 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3768 Clean the environment before each test and use TMP instead of
3769 TMPDIR so the test passes on Windows.
3771 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
3773 * src/filesystem/dir-common.h (_Dir_base::_At_path):
3774 Use char_type consistently for paths.
3776 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
3778 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
3779 current() returning _At_path.
3780 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
3781 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
3782 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
3783 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
3784 current() returning _At_path.
3785 (_Dir::_Dir, _Dir::open_subdir): Adjust.
3787 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
3789 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
3790 Always store pathname if we don't have openat or unlinkat,
3791 because the full path is needed to open sub-directories and
3794 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
3796 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
3797 functions are available.
3799 2022-06-27 Alexandre Oliva <oliva@adacore.com>
3801 * testsuite/20_util/to_chars/long_double.cc: Use cmath
3802 long double overloads for nexttoward and ldexp.
3804 2022-06-27 Alexandre Oliva <oliva@adacore.com>
3806 * testsuite/experimental/simd/standard_abi_usable.cc: Require
3808 * testsuite/experimental/simd/standard_abi_usable_2.cc:
3811 2022-06-27 Alexandre Oliva <oliva@adacore.com>
3813 * testsuite/26_numerics/complex/proj.cc: Skip test in the
3814 circumstances in which the implementation of proj is known to
3817 2022-06-27 Alexandre Oliva <oliva@adacore.com>
3819 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
3820 _GLIBCXX_HAVE_OPENAT.
3822 2022-06-27 Alexandre Oliva <oliva@adacore.com>
3824 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
3825 (test06): Don't create symlinks when NO_SYMLINKS is defined.
3827 2022-06-27 Alexandre Oliva <oliva@adacore.com>
3829 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
3830 Add -Wl,--gc-sections for RTEMS targets.
3831 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
3833 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
3834 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
3835 Execution-time xfail on RTEMS.
3836 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
3839 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
3841 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
3843 2022-06-27 Joel Brobecker <brobecker@adacore.com>
3844 Jonathan Wakely <jwakely@redhat.com>
3846 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
3847 Always include a counter in the filename returned.
3849 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
3851 * include/bits/move_only_function.h (_Never_valueless_alt):
3852 Define partial specialization for std::move_only_function.
3854 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
3856 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
3858 (__accepted_index, _Extra_visit_slot_needed): Replace class
3859 templates with variable templates.
3861 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
3863 * include/bits/fs_path.h (__is_path_iter_src): Replace class
3864 template with variable template.
3866 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
3868 * include/bits/chrono.h (is_clock_v): Define to false.
3869 (is_clock_v<T>): Define partial specialization for true cases.
3870 (is_clock): Define in terms of is_clock_v.
3872 2022-06-24 Xi Ruoyao <xry111@xry111.site>
3874 * scripts/extract_symvers.in: Use grep -E instead of egrep.
3875 * scripts/run_doxygen: Likewise.
3877 2022-06-24 Alexandre Oliva <oliva@adacore.com>
3879 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
3881 * configure, config.h.in: Rebuilt.
3882 * src/filesystem/dir-common.h (openat): Use ::openat if
3883 _GLIBCXX_HAVE_OPENAT.
3884 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
3885 _GLIBCXX_HAVE_OPENAT.
3887 2022-06-24 Alexandre Oliva <oliva@adacore.com>
3889 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
3891 * testsuite/experimental/filesystem/operations/rename.cc:
3894 2022-06-24 Alexandre Oliva <oliva@adacore.com>
3896 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
3898 * testsuite/lib/libstdc++.exp
3899 (check_v3_target_fs_last_write_time): New.
3900 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
3902 * testsuite/27_io/filesystem/operations/last_write_time.cc:
3903 Skip the test if the features are unavailable.
3904 * testsuite/experimental/filesystem/operations/last_write_time.cc:
3907 2022-06-24 Alexandre Oliva <oliva@adacore.com>
3909 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
3911 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
3912 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
3914 * testsuite/27_io/filesystem/operations/space.cc: Require
3916 * testsuite/experimental/filesystem/operations/space.cc:
3919 2022-06-24 Alexandre Oliva <oliva@adacore.com>
3921 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
3922 mingw and when create_symlink is a dummy.
3923 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3925 (test01, test02): Don't create symlinks when NO_SYMLINKS is
3927 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
3929 * testsuite/27_io/filesystem/operations/copy.cc (test02):
3931 * testsuite/27_io/filesystem/operations/create_directories.cc
3933 * testsuite/27_io/filesystem/operations/create_directory.cc
3935 * testsuite/27_io/filesystem/operations/permissions.cc
3936 (test03, test04): Likewise.
3937 * testsuite/27_io/filesystem/operations/remove.cc (test01):
3939 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
3941 * testsuite/27_io/filesystem/operations/rename.cc
3942 (test_symlinks): Likewise.
3943 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
3945 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
3947 * testsuite/experimental/filesystem/operations/copy.cc
3949 * testsuite/experimental/filesystem/operations/create_directories.cc
3951 * testsuite/experimental/filesystem/operations/create_directory.cc
3953 * testsuite/experimental/filesystem/operations/permissions.cc
3954 (test03, test04): Likewise.
3955 * testsuite/experimental/filesystem/operations/remove.cc
3957 * testsuite/experimental/filesystem/operations/remove_all.cc
3959 * testsuite/experimental/filesystem/operations/rename.cc
3961 * testsuite/lib/libstdc++.exp
3962 (v3_check_preprocessor_condition): Add optional inc parameter.
3963 Add it to the test program after include bits/c++config.h.
3964 (check_v3_target_fs_symlinks): New.
3965 * testsuite/lib/dg-options.exp
3966 (dg-require-target-fs-symlinks): New.
3967 * testsuite/27_io/filesystem/operations/read_symlink.cc:
3968 Replace mingw xfail with require target-fs-symlinks.
3969 * testsuite/experimental/filesystem/operations/read_symlink.cc:
3972 2022-06-24 Alexandre Oliva <oliva@adacore.com>
3974 * testsuite/27_io/filesystem/operations/copy.cc (test02):
3975 Select TO after creating FROM.
3976 (test03, test04): Likewise.
3977 * testsuite/experimental/filesystem/operations/copy.cc
3978 (test02, test03, test04): Likewise.
3980 2022-06-24 Alexandre Oliva <oliva@adacore.com>
3982 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
3983 explicit cancellation point in case sleep_for lacks one.
3985 2022-06-24 Alexandre Oliva <oliva@adacore.com>
3987 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
3988 -lbsd for RTEMS targets.
3990 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
3992 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
3993 rmdir to remove directories.
3994 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
3997 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
3999 * testsuite/26_numerics/random/random_device/entropy.cc: Use
4000 numeric_limits<unsigned>::digits.
4002 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4004 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
4005 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
4007 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4009 * testsuite/30_threads/this_thread/60421.cc (test02): Call
4012 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4014 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
4016 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4018 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
4019 global struct bitset.
4020 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
4021 * testsuite/23_containers/bitset/input/1.cc: Likewise.
4022 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
4023 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
4025 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
4027 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
4030 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
4033 * include/bits/basic_string.h (_M_use_local_data): Initialize
4034 the entire SSO buffer.
4035 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
4037 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
4040 * include/ext/vstring.h (operator==): Always check lengths
4043 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
4046 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
4047 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
4048 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
4049 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
4050 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
4051 const allocator_type&, true_type)): Use this.insert range.
4052 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
4053 const allocator_type&, false_type)): Use _M_insert.
4054 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
4056 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
4057 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
4059 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
4062 * include/bits/basic_string.h (operator==): Always compare
4063 lengths before checking string contents.
4064 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
4067 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
4070 * include/bits/basic_string.h (compare): Define inline.
4071 * include/bits/basic_string.tcc (compare): Remove out-of-line
4073 * include/bits/cow_string.h (compare): Define inline.
4074 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
4077 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
4079 * include/bits/new_allocator.h: Fix indentation.
4080 * include/ext/malloc_allocator.h: Likewise.
4082 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
4085 * include/bits/allocator.h (allocator::allocate): Check for
4086 overflow in constexpr allocation.
4087 * testsuite/20_util/allocator/105975.cc: New test.
4089 2022-06-13 Mark Mentovai <mark@mentovai.com>
4091 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
4092 Rename to __nul_terminated to avoid colliding with a macro in
4095 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
4097 * include/std/atomic (__atomic_val_t): Use __type_identity_t
4098 instead of atomic<T>::value_type, as per LWG 3220.
4099 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
4101 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
4104 * include/experimental/numeric (experimental::gcd): Simplify
4105 assertions. Use __abs_r instead of __absu.
4106 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
4107 overflow can be detected.
4108 * include/std/numeric (__detail::__absu): Rename to __abs_r and
4109 change to allow signed result type, so overflow can be detected.
4110 (__detail::__lcm): Remove.
4111 (gcd): Simplify assertions. Use __abs_r instead of __absu.
4112 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
4114 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
4115 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4116 * testsuite/26_numerics/gcd/105844.cc: New test.
4117 * testsuite/26_numerics/lcm/105844.cc: New test.
4119 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
4122 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
4123 prevent destruction during termination.
4124 (__eh_globals_init::_M_init): Replace with static member _S_init.
4125 (__cxxabiv1::__cxa_get_globals_fast): Update.
4126 (__cxxabiv1::__cxa_get_globals): Likewise.
4128 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
4130 * include/bits/basic_string.h (__hash_str_base): New class
4132 (hash<basic_string<C, char_traits<C>, A>>): Define partial
4133 specialization for each of the standard character types.
4134 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
4135 (hash<u32string>): Remove explicit specializations.
4136 * include/std/string (__hash_string_base): Remove class
4138 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
4139 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
4141 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
4143 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
4146 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
4149 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
4150 always_inline attribute.
4152 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4155 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
4156 Limit ga_sizes array to values that fit in size_t.
4157 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
4158 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
4159 (sfmt216091_64): Do not declare.
4161 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4163 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
4164 lookup for ios_errc and future_errc check versioned namespace.
4165 (StdAtomicPrinter): Strip versioned namespace from typename.
4167 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4169 * src/c++11/Makefile.am: Add new source file.
4170 * src/c++11/Makefile.in: Regenerate.
4171 * src/c++11/cxx11-ios_failure.cc (iostream_category):
4173 * src/c++11/ios_errcat.cc: New file.
4174 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
4175 std::iostream_category() is defined and used for std::io_errc.
4177 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4179 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
4180 Add 'constexpr' as per LWG 3643.
4181 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
4183 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4185 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
4187 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
4189 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
4190 <bits/functional_hash.h>.
4191 * include/bits/unordered_map.h: Include required headers.
4192 * include/bits/unordered_set.h: Likewise.
4193 * include/std/unordered_map: Do not include headers for indirect
4195 * include/std/unordered_set: Likewise.
4197 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4199 * include/bits/ranges_algobase.h: Do not include
4200 <bits/stl_iterator_base_types.h>.
4201 * include/std/string: Likewise.
4202 * include/std/variant: Likewise.
4204 2022-05-26 Nathan Sidwell <nathan@acm.org>
4206 * include/bits/hashtable.h: Include required headers.
4207 * include/bits/hashtable_policy.h: Likewise.
4208 * include/bits/stl_heap.h: Likewise.
4209 * include/bits/stl_iterator_base_funcs.h: Likewise.
4211 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
4213 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
4214 Strip typename from version namespace.
4216 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4218 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
4219 versioned namespace from the template argument too.
4221 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4223 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
4225 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
4227 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
4229 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
4231 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
4233 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
4235 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
4237 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
4239 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
4241 * testsuite/21_strings/basic_string/operations/contains/char.cc:
4243 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
4245 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
4247 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
4249 * testsuite/21_strings/basic_string/operations/data/char.cc:
4251 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
4253 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
4255 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
4257 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
4259 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
4261 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
4263 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
4265 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
4267 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
4269 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
4271 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
4273 * testsuite/21_strings/basic_string/operations/substr/char.cc:
4275 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
4277 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
4279 * testsuite/21_strings/basic_string/range_access/char/1.cc:
4281 * testsuite/21_strings/basic_string/range_access/char.cc:
4283 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
4285 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
4287 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4289 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
4291 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4293 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
4295 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4297 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
4299 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4301 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
4303 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4305 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
4307 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4309 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
4311 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
4313 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
4315 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
4317 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
4319 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4321 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
4323 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4325 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
4327 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
4329 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
4331 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
4333 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
4335 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
4337 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
4339 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
4341 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
4343 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4345 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
4347 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4349 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
4351 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4353 * testsuite/21_strings/basic_string_view/range_access/char.cc:
4355 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4357 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
4359 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
4361 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
4363 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
4365 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
4367 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
4369 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
4371 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
4373 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
4375 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
4377 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
4379 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
4381 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
4383 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4385 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
4387 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4389 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
4391 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4393 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
4395 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4397 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
4399 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4401 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
4403 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4405 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
4407 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
4409 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
4411 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
4413 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
4415 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
4417 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
4419 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
4421 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
4423 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
4425 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
4427 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
4429 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
4432 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4434 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
4436 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
4437 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
4439 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
4440 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
4442 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
4444 2022-05-25 Jason Merrill <jason@redhat.com>
4446 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
4449 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
4451 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
4452 Run fewer iterations for simulator targets.
4453 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
4455 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
4457 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
4459 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
4461 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
4463 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
4466 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
4468 * include/bits/char_traits.h: Only include <cstdint> when
4470 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
4472 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
4473 * src/c++17/floating_to_chars.cc: Likewise.
4474 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
4475 * testsuite/20_util/assume_aligned/3.cc: Likewise.
4476 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
4478 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
4480 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
4482 * include/bits/cow_string.h: Include it here.
4484 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
4486 * include/Makefile.am: Add new header.
4487 * include/Makefile.in: Regenerate.
4488 * include/bits/memory_resource.h: New file.
4489 * include/std/deque: Include <bits/memory_resource.h>.
4490 * include/std/forward_list: Likewise.
4491 * include/std/list: Likewise.
4492 * include/std/map: Likewise.
4493 * include/std/memory_resource (pmr::memory_resource): Move to
4494 new <bits/memory_resource.h> header.
4495 (pmr::polymorphic_allocator): Likewise.
4496 * include/std/regex: Likewise.
4497 * include/std/set: Likewise.
4498 * include/std/stacktrace: Likewise.
4499 * include/std/string: Likewise.
4500 * include/std/unordered_map: Likewise.
4501 * include/std/unordered_set: Likewise.
4502 * include/std/vector: Likewise.
4503 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4504 Remove <memory_resource> header and check construction.
4505 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4506 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4508 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4509 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4510 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4511 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4512 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4513 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4515 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4517 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4519 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4521 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4522 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4524 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
4526 * include/std/memory_resource (polymorphic_allocator): Add
4527 non-template equality operator, as proposed for LWG 3683.
4528 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
4530 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4532 * src/c++17/memory_resource.cc (set_default_resource): Use
4533 memory_order_acq_rel.
4534 (get_default_resource): Use memory_order_acquire.
4536 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4538 * include/std/memory_resource (new_delete_resource): Add
4539 nodiscard, returns_nonnull and const attributes.
4540 (null_memory_resource): Likewise.
4541 (set_default_resource, get_default_resource): Add returns_nonnull
4543 (memory_resource::is_equal): Add nodiscard attribute.
4544 (operator==, operator!=): Likewise.
4546 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4548 * include/bits/ios_base.h (io_category): Add const and nodiscard
4550 (make_error_code, make_error_condition): Add nodiscard.
4551 * include/std/future (future_category): Add const and nodiscard.
4552 (make_error_code, make_error_condition): Add nodiscard.
4553 * include/std/system_error (generic_category system_category):
4554 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
4555 (error_code::value, error_code::category, error_code::operator bool)
4556 (error_condition::value, error_condition::category)
4557 (error_condition::operator bool, make_error_code)
4558 (make_error_condition, operator==, operator!=, operator<=>): Add
4561 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4563 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
4565 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
4567 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4569 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
4570 Do not build the compatibility*-c++0x.cc objects.
4571 * src/Makefile.in: Regenerate.
4572 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
4573 Refuse to build for the versioned namespace.
4574 * src/c++11/compatibility-chrono.cc: Likewise.
4575 * src/c++11/compatibility-condvar.cc: Likewise.
4576 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
4577 * src/c++11/chrono.cc (system_clock, steady_clock):
4578 Use macros to define in inline namespace _V2, matching the
4579 declarations in <system_error>.
4580 * src/c++11/system_error.cc (system_category, generic_category):
4583 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
4585 * doc/xml/manual/prerequisites.xml: Fix attributes for external
4587 * doc/html/manual/setup.html: Regenerate.
4589 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
4591 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
4592 * doc/html/*: Regenerate.
4594 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
4596 * doc/xml/manual/intro.xml: Include new chapter.
4597 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
4598 * doc/xml/manual/status_cxx2023.xml: New file.
4599 * doc/html/*: Regenerate.
4601 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
4603 * doc/html/manual/status.html: Regenerate.
4604 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
4605 C++20 bit operations.
4607 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4609 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
4610 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
4611 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
4613 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4615 * include/std/future (launch): Make operators noexcept.
4617 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4619 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
4620 with "__unspecified__".
4621 * libsupc++/exception_ptr.h: Improve doxygen docs.
4622 (__exception_ptr::swap): Also declare in namespace std.
4624 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4626 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
4627 if-constexpr instead of tag dispatching.
4628 (rethrow_if_nested) [C++17]: Likewise.
4629 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
4631 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
4634 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4636 * doc/doxygen/user.cfg.in (PREDEFINED): Define
4637 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
4638 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
4640 * include/bits/unique_lock.h (unique_lock): Likewise.
4641 * include/std/mutex (recursive_mutex, timed_mutex)
4642 (recursive_timed_mutex, scoped_lock): Likewise.
4644 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4646 * doc/doxygen/user.cfg.in (PREDEFINED): Define
4647 _GLIBCXX23_CONSTEXPR macro.
4648 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
4649 * include/bits/unique_ptr.h (default_delete): Use @since and
4651 * include/std/scoped_allocator: Remove @ingroup from @file
4654 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4656 * include/bits/std_thread.h (thread, thread::id): Improve
4658 * include/std/future: Likewise.
4659 * include/std/thread (jthread): Likewise.
4661 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4663 * include/bits/ostream_insert.h: Mark helper functions as
4664 undocumented by Doxygen.
4665 * include/bits/stl_algo.h: Use markdown for formatting and mark
4666 helper functions as undocumented.
4667 * include/bits/stl_numeric.h: Likewise.
4668 * include/bits/stl_pair.h (pair): Add @headerfile.
4670 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4672 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
4673 so that Doxygen shows the right base-class for std::allocator.
4674 * include/bits/alloc_traits.h: Improve doxygen docs.
4675 * include/bits/allocator.h: Likewise.
4676 * include/bits/new_allocator.h: Likewise.
4677 * include/ext/new_allocator.h: Likewise.
4679 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4681 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
4682 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
4683 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
4684 * include/bits/regex.h: Improve doxygen docs.
4685 * include/bits/regex_constants.h: Likewise.
4686 * include/bits/regex_error.h: Likewise.
4688 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4690 * include/std/atomic: Suppress doxygen docs for
4691 implementation details.
4692 * include/bits/atomic_base.h: Likewise.
4693 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
4694 so that std::atomic is not added to the pointer abstractions
4697 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4699 * include/std/system_error: Improve doxygen comments.
4701 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4703 * include/bits/ptr_traits.h: Add some doxygen comments.
4705 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4707 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
4709 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
4710 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
4711 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
4713 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
4714 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
4715 * include/std/condition_variable (_V2::condition_variable_any):
4717 * include/std/system_error (_V2::error_category): Likewise.
4719 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4721 * include/bits/mofunc_impl.h: Fix doxygen command.
4723 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4725 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
4726 (CLASS_DIAGRAMS): Remove obsolete option.
4728 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
4730 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
4731 * config/locale/gnu/numeric_members.cc: Likewise.
4732 * include/bits/locale_facets_nonio.h: Likewise.
4733 * libsupc++/typeinfo: Likewise.
4735 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
4738 * include/std/iosfwd: Add declarations for <spanstream> class
4739 templates and typedefs.
4740 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
4741 (basic_ospanstream, basic_spanstream): Remove default template
4743 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
4745 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
4748 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
4751 * include/std/iosfwd: Add declarations for <synstream> class
4752 templates and typedefs.
4753 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
4754 Remove default template arguments.
4755 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
4756 * testsuite/27_io/headers/iosfwd/types.cc: New test.
4758 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
4760 * include/bits/random.tcc (operator==): Only check
4761 normal_distribution::_M_saved_available once.
4762 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
4763 Check equality after state changes.
4764 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4767 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
4770 * include/bits/random.tcc
4771 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
4772 Update state when __state_avail is false.
4773 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
4774 Check that deserialized object equals serialized one.
4776 2022-05-06 Alexandre Oliva <oliva@adacore.com>
4778 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
4779 for double, long long, and 64-bit long intrinsic types.
4780 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
4781 preexisting long double diagnostic, adjust no-VSX double
4782 diagnostic to cover 64-bit long double as well.
4784 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
4787 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
4788 Use a trailing char array as storage for dirent::d_name.
4790 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
4792 * include/std/stacktrace: Do not include <cxxabi.h>.
4793 (__cxa_demangle): Declare.
4795 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
4798 * include/bits/specfun.h: Use visibility attribute on namespace,
4799 instead of pragma push/pop.
4800 * libsupc++/compare: Likewise.
4801 * libsupc++/exception: Likewise.
4802 * libsupc++/exception.h: Likewise.
4803 * libsupc++/exception_ptr.h: Likewise.
4804 * libsupc++/initializer_list: Likewise.
4805 * libsupc++/nested_exception.h: Likewise.
4807 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
4809 * doc/xml/manual/test.xml: Remove requirement for copyright and
4810 GPL notice in tests.
4811 * doc/html/manual/test.html: Regenerate.
4813 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
4815 * include/experimental/memory_resource [!__cpp_rtti]
4816 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
4817 when RTTI is disabled.
4818 * testsuite/17_intro/freestanding.cc: Require RTTI.
4819 * testsuite/18_support/exception/38732.cc: Likewise.
4820 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
4822 * testsuite/18_support/nested_exception/68139.cc: Likewise.
4823 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
4825 * testsuite/18_support/type_info/103240.cc: Likewise.
4826 * testsuite/18_support/type_info/fundamental.cc: Likewise.
4827 * testsuite/18_support/type_info/hash_code.cc: Likewise.
4828 * testsuite/20_util/any/assign/emplace.cc: Likewise.
4829 * testsuite/20_util/any/cons/in_place.cc: Likewise.
4830 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4831 * testsuite/20_util/any/observers/type.cc: Likewise.
4832 * testsuite/20_util/function/1.cc: Likewise.
4833 * testsuite/20_util/function/2.cc: Likewise.
4834 * testsuite/20_util/function/3.cc: Likewise.
4835 * testsuite/20_util/function/4.cc: Likewise.
4836 * testsuite/20_util/function/5.cc: Likewise.
4837 * testsuite/20_util/function/6.cc: Likewise.
4838 * testsuite/20_util/function/7.cc: Likewise.
4839 * testsuite/20_util/function/8.cc: Likewise.
4840 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
4841 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
4842 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
4843 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
4845 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
4846 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
4847 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
4849 * testsuite/20_util/typeindex/hash.cc: Likewise.
4850 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
4851 * testsuite/20_util/typeindex/name.cc: Likewise.
4852 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
4853 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
4855 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
4857 * testsuite/22_locale/locale/13630.cc: Check type without using
4859 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
4861 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
4862 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
4863 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
4864 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
4865 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
4866 * testsuite/experimental/any/observers/type.cc: Likewise.
4867 * testsuite/experimental/memory_resource/resource_adaptor.cc:
4869 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
4871 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
4872 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
4873 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
4874 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
4875 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
4876 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
4877 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
4878 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
4879 * testsuite/tr2/bases/value.cc: Likewise.
4880 * testsuite/tr2/direct_bases/value.cc: Likewise.
4881 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
4884 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
4887 * include/std/array (array::size(), array::max_size())
4888 (array::empty(), array::data()): Add always_inline attribute.
4890 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
4893 * include/std/array (__array_traits::_S_ref): Remove.
4894 (__array_traits::_S_ptr): Remove.
4895 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
4896 to provide an array-like API.
4897 (array::_AT_Type): Remove public typeef.
4898 (array::operator[], array::at, array::front, array::back): Use
4899 index operator to access _M_elems instead of _S_ref.
4900 (array::data): Use implicit conversion from _M_elems to pointer.
4901 (swap(array&, array&)): Use __enable_if_t helper.
4902 (get<I>): Use index operator to access _M_elems.
4903 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
4904 Adjust dg-error line numbers.
4906 2022-05-03 Alexandre Oliva <oliva@adacore.com>
4909 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
4910 with conditional for floating-point overloads of from_char.
4912 2022-05-02 Patrick Palka <ppalka@redhat.com>
4915 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
4916 two delimeters for the exponent part in the form of a possibly
4917 NULL string of length two. Don't use std::tolower.
4918 (pattern): Adjust calls to find_end_of_float accordingly.
4920 2022-05-02 Patrick Palka <ppalka@redhat.com>
4923 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
4924 Also accept 'P' as the start of the exponent.
4925 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
4927 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
4930 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
4932 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
4933 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
4934 symbols as aliases for corresponding symbols without abi-tag.
4936 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4938 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
4939 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
4941 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
4942 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
4945 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
4948 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
4949 directory_iterator constructor, and check on each iteration.
4950 * src/filesystem/ops.cc (fs::copy): Likewise.
4951 * testsuite/27_io/filesystem/operations/copy.cc: Check for
4952 errors during recursion.
4953 * testsuite/experimental/filesystem/operations/copy.cc:
4956 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
4958 * config/abi/pre/gnu-versioned-namespace.ver: Remove
4959 std::random_device::* pattern.
4961 2022-04-27 Jakub Jelinek <jakub@redhat.com>
4963 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4964 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4965 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4966 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
4967 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4968 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
4969 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4970 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
4972 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
4974 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
4975 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
4976 (StdAtomicPrinter): New printer.
4977 (build_libstdcxx_dictionary): Register new printer.
4978 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
4979 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
4982 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
4984 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
4985 constructor for constant initialization from nullptr_t.
4986 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
4987 Check for new constructor.
4989 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
4991 * include/bits/fs_path.h (hash<filesystem::path>): Define.
4992 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
4993 Check std::hash specialization.
4995 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
4997 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
4999 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
5001 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
5002 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
5004 * include/std/version (__cpp_lib_constexpr_memory): Define new
5006 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
5007 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
5008 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
5009 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
5010 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
5011 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
5014 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
5017 * include/std/future (packaged_task): Add deduction guides.
5018 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
5020 2022-04-25 Philipp Fent <fent@in.tum.de>
5022 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
5024 (StdInitializerListPrinter): Define new printer.
5025 (build_libstdcxx_dictionary): Register new printer.
5026 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
5029 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
5032 * include/bits/atomic_base.h (atomic_flag::notify_one,
5033 notify_all): Remove const qualification.
5034 (__atomic_base::notify_one, notify_all): Likewise.
5035 * include/std/atomic (atomic<bool>::notify_one, notify_all):
5037 (atomic::notify_one, notify_all): Likewise.
5038 (atomic<T*>::notify_one, notify_all): Likewise.
5039 (atomic_notify_one, atomic_notify_all): Likewise.
5040 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
5041 to account for change in notify_one/notify_all signature.
5043 2022-04-21 Patrick Palka <ppalka@redhat.com>
5045 * include/std/charconv (__from_chars_alnum_to_val_table):
5046 Simplify initialization of __lower/__upper_letters.
5047 (__from_chars_alnum_to_val): Default the template parameter to
5049 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
5050 assume the uppercase and lowercase letters are contiguous.
5051 (__floating_from_chars_hex): Likewise.
5053 2022-04-21 Patrick Palka <ppalka@redhat.com>
5057 * include/std/charconv (__from_chars_alnum_to_val): Make
5058 initializer for __table dependent in an artificial way.
5060 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
5063 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
5065 * testsuite/20_util/from_chars/pr105324.cc: New test.
5067 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
5069 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
5070 Check correct feature test macro.
5072 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
5075 * doc/xml/manual/prerequisites.xml: Document libiconv
5077 * doc/html/manual/setup.html: Regenerate.
5078 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
5079 * src/Makefile.in: Regenerate.
5081 2022-04-19 Patrick Palka <ppalka@redhat.com>
5083 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
5085 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
5086 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
5088 (__floating_to_chars_precision): Likewise.
5090 2022-04-19 Philipp Fent <fent@in.tum.de>
5092 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
5093 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
5095 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
5097 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
5098 * configure: Regenerate.
5100 2022-04-18 Patrick Palka <ppalka@redhat.com>
5102 * include/std/charconv (__from_chars_pow2_base): Manually
5103 unroll the first iteration of the main loop and simplify
5106 2022-04-15 Patrick Palka <ppalka@redhat.com>
5109 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
5110 __first twice at the start.
5111 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
5113 2022-04-15 Patrick Palka <ppalka@redhat.com>
5115 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
5116 (__from_chars_alnum_to_val): Define.
5117 (__from_chars_binary): Rename to ...
5118 (__from_chars_pow2_base): ... this. Generalize to handle any
5119 power-of-two base using __from_chars_alnum_to_val.
5120 (__from_chars_digit): Optimize digit recognition to a single
5121 test instead of two tests. Use [[__unlikely___]] attribute.
5122 (__from_chars_alpha_to_num): Remove.
5123 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
5124 nested loop for the overflow case. Maintain a lower bound
5125 on the number of available bits in the result and use it to
5126 omit the overflow check.
5127 (from_chars): Adjust appropriately.
5128 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
5129 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
5130 to recognize a hex digit instead.
5132 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
5134 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
5136 * configure: Regenerate.
5138 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
5140 * doc/xml/manual/intro.xml: Fix comment.
5142 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
5144 * include/precompiled/stdc++.h: Include <stacktrace> and
5145 <stdatomic.h> for C++23.
5147 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
5150 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
5152 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
5154 * include/std/optional (__cpp_lib_optional): Define new value
5156 (__cpp_lib_monadic_optional): Remove.
5157 * include/std/version (__cpp_lib_constexpr_vector): Define.
5158 (__cpp_lib_stdatomic_h): Define.
5159 (__cpp_lib_optional): Define new value for C++23.
5160 (__cpp_lib_monadic_optional): Remove.
5161 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
5162 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
5163 * testsuite/20_util/optional/version.cc: Likewise.
5164 * testsuite/23_containers/vector/cons/constexpr.cc: Check
5166 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
5168 * testsuite/20_util/optional/monadic/version.cc: Removed.
5169 * testsuite/23_containers/vector/requirements/version.cc: New test.
5170 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
5172 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5174 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
5175 * config.h.in: Regenerate.
5176 * configure: Regenerate.
5178 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5180 * include/std/stacktrace (basic_stacktrace::current): Reallocate
5181 a smaller container if the unused capacity is larger than the
5184 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5186 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
5187 or _Impl::_M_assign to initialize elements in allocated storage.
5188 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
5190 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
5191 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
5193 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
5194 new element using allocator.
5195 (basic_stacktrace::_Impl::_M_clone): New function.
5196 (basic_stacktrace::_Impl::_M_xclone): New function.
5197 (basic_stacktrace::_Impl::_M_assign): New function.
5199 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5201 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
5202 Use nothrow new instead of try block for std::allocator.
5203 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
5206 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5208 * include/std/stacktrace (basic_stacktrace::current): Replace
5209 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
5210 Check return value of backtrace_simple when max depth given.
5211 (basic_stacktrace::_M_reserve): Remove.
5212 (basic_stacktrace::_S_curr_cb): Remove.
5213 (basic_stacktrace::_M_prepare(size_type)): New function to
5214 reserve initial capacity and return callback.
5215 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
5216 and remove redundant zeroing of _M_frames and _M_capacity.
5217 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
5218 attribute. Assign _Impl instead of swapping.
5219 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
5221 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5223 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
5224 Change [[unlikely]] attribute to [[likely]].
5226 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5229 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
5230 Fix allocator usage in constructors.
5231 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
5232 try to reallocate using const allocator.
5233 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
5234 if-constexpr with non-constant condition. Do not allocate new
5235 storage if allocator propagates. Do not set _M_size if
5237 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
5238 assertion that non-propagating allocators are equal.
5239 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
5241 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5243 * include/std/stacktrace (basic_stacktrace::current): Duplicate
5244 implementation into each overload. Add noinline attribute and
5246 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
5247 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
5248 (basic_stacktrace::_Impl::_S_max_size): New function defining
5249 maximum size in terms of allocator and size_type.
5250 (basic_stacktrace::_Impl::_M_allocate): Check against
5252 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
5253 for non-constexpr checks. Check line number is correct.
5255 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5257 * testsuite/20_util/stacktrace/entry.cc: Moved to...
5258 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
5259 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
5260 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
5261 * testsuite/20_util/stacktrace/version.cc: Moved to...
5262 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
5264 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5266 * include/experimental/bits/fs_path.h (path): Define special
5267 members after path::_Cmpt is complete.
5269 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
5272 * include/std/expected
5273 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
5274 * testsuite/20_util/expected/cons.cc: Check constructor.
5276 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
5279 * include/std/expected (expected<void, E>::swap): Set
5280 _M_has_value to false for objects that previously had a value.
5281 * testsuite/20_util/expected/swap.cc: Fix test to check void
5284 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
5287 * include/std/expected (bad_expected_access): Move constructor
5289 * testsuite/20_util/expected/bad.cc: New test.
5291 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
5293 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
5296 2022-04-02 Jakub Jelinek <jakub@redhat.com>
5299 * include/std/source_location (std::source_location::__impl): Move
5300 definition before using __builtin_ret_type.
5302 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
5304 * include/std/utility (unreachable): Define for C++23.
5305 * include/std/version (__cpp_lib_unreachable): Define.
5306 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
5307 arguments. Handle only the function being given.
5308 * testsuite/20_util/unreachable/1.cc: New test.
5309 * testsuite/20_util/unreachable/version.cc: New test.
5311 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
5313 * include/experimental/bits/fs_fwd.h (copy_file): Remove
5314 incorrect noexcept from declaration.
5315 * include/experimental/bits/fs_path.h (path::begin, path::end):
5316 Add noexcept to declarations, to match definitions.
5318 2022-04-01 Timm Bäder <tbaeder@redhat.com>
5320 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
5321 * include/experimental/bits/fs_ops.h: Likewise.
5323 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
5325 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
5327 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
5329 * testsuite/18_support/exception/38732.cc: Disable for C++23.
5330 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
5331 * testsuite/18_support/unexpected_handler.cc: Likewise.
5333 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
5335 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
5336 static data members for _Fp_fmt enumerators.
5338 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
5340 * include/std/version (__cpp_lib_variant): Fix conditions to
5342 (__cpp_lib_expected): Fix condition to match <expected>.
5344 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
5346 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
5347 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
5348 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
5349 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
5350 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
5351 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
5352 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
5353 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
5355 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
5357 * doc/doxygen/user.cfg.in: Add new header.
5358 * include/Makefile.am: Likewise.
5359 * include/Makefile.in: Regenerate.
5360 * include/precompiled/stdc++.h: Add new header.
5361 * include/std/version (__cpp_lib_expected): Define.
5362 * libsupc++/exception [__cplusplus > 202002] (unexpected)
5363 (unexpected_handler, set_unexpected): Do not declare for C++23.
5364 * include/std/expected: New file.
5365 * testsuite/20_util/expected/assign.cc: New test.
5366 * testsuite/20_util/expected/cons.cc: New test.
5367 * testsuite/20_util/expected/illformed_neg.cc: New test.
5368 * testsuite/20_util/expected/observers.cc: New test.
5369 * testsuite/20_util/expected/requirements.cc: New test.
5370 * testsuite/20_util/expected/swap.cc: New test.
5371 * testsuite/20_util/expected/synopsis.cc: New test.
5372 * testsuite/20_util/expected/unexpected.cc: New test.
5373 * testsuite/20_util/expected/version.cc: New test.
5375 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
5377 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
5380 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
5383 * include/std/bit (bit_cast): Add constraints.
5384 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
5386 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
5388 * include/std/version [!_GLIBCXX_HOSTED]
5389 (__cpp_lib_hardware_interference_size): Define for freestanding.
5390 (__cpp_lib_bit_cast): Likewise.
5391 (__cpp_lib_is_layout_compatible): Likewise.
5392 (__cpp_lib_is_pointer_interconvertible): Likewise.
5393 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
5395 (__cpp_lib_invoke_r): Likewise.
5396 (__cpp_lib_ios_noreplace): Likewise.
5397 (__cpp_lib_monadic_optional): Likewise.
5398 (__cpp_lib_move_only_function): Likewise.
5399 (__cpp_lib_spanstream): Likewise.
5400 (__cpp_lib_stacktrace): Likewise.
5401 (__cpp_lib_string_contains): Likewise.
5402 (__cpp_lib_string_resize_and_overwrite): Likewise.
5403 (__cpp_lib_to_underlying): Likewise.
5405 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
5408 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
5409 <bits/atomic_wait.h> for freestanding.
5411 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
5413 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
5414 Conditionalize call to fesetround.
5416 2022-03-21 Jakub Jelinek <jakub@redhat.com>
5419 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
5420 isn't overloaded if __clang__ is defined.
5422 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
5425 * include/std/any (any(T&&)): Revert change to constraints.
5426 * testsuite/20_util/any/cons/104242.cc: New test.
5428 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
5431 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
5433 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
5434 (__pstl::__internal::__except_handler): Use std::__terminate
5435 instead of std::terminate.
5436 * src/c++17/fs_path.cc: Include <array>.
5437 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
5439 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
5440 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
5441 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
5442 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
5443 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
5444 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
5445 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
5446 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
5448 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
5450 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
5452 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
5454 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
5456 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
5458 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
5460 * testsuite/25_algorithms/max/constrained.cc: Likewise.
5461 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
5462 * testsuite/25_algorithms/min/constrained.cc: Likewise.
5463 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
5464 * testsuite/25_algorithms/minmax_element/constrained.cc:
5466 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
5467 * testsuite/25_algorithms/move/93872.cc: Likewise.
5468 * testsuite/25_algorithms/move_backward/93872.cc: Include
5470 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
5472 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
5473 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
5475 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
5476 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
5477 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
5478 * testsuite/25_algorithms/set_difference/constrained.cc:
5480 * testsuite/25_algorithms/set_intersection/constexpr.cc:
5482 * testsuite/25_algorithms/set_intersection/constrained.cc:
5484 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
5486 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
5487 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
5488 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
5489 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
5490 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
5491 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
5492 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
5493 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
5494 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
5495 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
5496 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
5497 * testsuite/std/ranges/adaptors/split.cc: Likewise.
5499 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
5502 * include/bits/fs_path.h (path::make_preferred): Use
5503 handwritten loop instead of std::replace.
5505 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
5507 PR middle-end/104966
5508 * include/bits/locale_facets_nonio.tcc
5509 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
5510 make all string copies before any stores to *this.
5512 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
5514 * testsuite/util/testsuite_character.h: Fix comment.
5516 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
5519 * config/abi/pre/gnu.ver: Make version for std::from_chars
5520 depend on HAVE_USELOCALE macro.
5521 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
5522 std::from_chars for floating-point types as undesignated if
5523 not found in the baseline symbols file.
5525 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
5527 * include/std/charconv (__cpp_lib_to_chars): Only define when
5528 both from_chars and to_chars are supported for floating-point
5530 (from_chars, to_chars): Adjust preprocessor conditions guarding
5532 * include/std/version (__cpp_lib_to_chars): Adjust condition to
5533 match <charconv> definition.
5534 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
5536 (from_chars): Simplify preprocessor checks and use
5537 from_chars_strtod when appropriate.
5539 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
5542 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
5543 hold octets that will be left-shifted.
5545 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
5548 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
5549 before using fast_float.
5551 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
5554 * include/bits/this_thread_sleep.h: Fix order of #endif and
5555 closing brace of namespace.
5557 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
5559 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
5562 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
5564 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
5567 2022-03-09 Patrick Palka <ppalka@redhat.com>
5570 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5571 Be explicit when narrowing the shifted effective_mantissa,
5572 since it may have an integer-class type.
5574 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
5576 * include/bits/uses_allocator_args.h: Remove incorrect copyright
5579 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
5582 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
5583 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
5584 (__is_constant_evaluated): Add visibility pragma.
5586 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
5588 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
5591 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
5593 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
5595 (__terminate): Likewise.
5597 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
5599 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
5600 inside #if condition.
5602 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
5605 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
5608 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
5610 * testsuite/17_intro/names.cc (func): Undef on AIX.
5612 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
5615 * libsupc++/compare (strong_order): Add missing support for
5616 floating-point types.
5617 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
5620 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
5622 PR middle-end/103984
5623 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
5624 default member initializer.
5626 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
5629 * include/std/source_location (source_location::current): Use
5630 deduced type of __builtin_source_location().
5632 2022-02-22 Patrick Palka <ppalka@redhat.com>
5634 * include/bits/ranges_base.h (__detail::__is_initializer_list):
5636 (viewable_range): Adjust as per P2415R2.
5637 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
5638 * include/std/ranges (owning_view): Define as per P2415R2.
5639 (enable_borrowed_range<owning_view>): Likewise.
5640 (views::__detail::__can_subrange): Replace with ...
5641 (views::__detail::__can_owning_view): ... this.
5642 (views::_All::_S_noexcept): Sync with operator().
5643 (views::_All::operator()): Use owning_view instead of subrange
5645 * include/std/version (__cpp_lib_ranges): Adjust value.
5646 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
5647 views::all uses owning_view instead of subrange.
5649 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
5650 now that rvalue non-view non-borrowed ranges are viewable.
5651 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
5653 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
5656 * doc/xml/manual/evolution.xml: Document deprecation.
5657 * doc/html/manual/api.html: Regenerate.
5658 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
5659 Remove default argument.
5660 (insert(const_iterator)): New overload with deprecated attribute.
5661 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
5664 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
5666 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
5667 code that call cat->name() on std::error_category objects.
5668 Identify known categories by symbol name and use a hardcoded
5669 name. Print error code values as enumerators where appopriate.
5670 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
5671 name of custom category. Check io_errc and future_errc errors.
5673 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
5676 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
5677 (uninitialized_construct_using_allocator): Add constexpr.
5678 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
5679 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
5681 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
5684 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
5685 namespace for IEEE128 long double mode.
5686 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
5687 version and export __gnu_cxx_ieee128::__convert_from_v.
5688 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
5689 Make __ibm128 overload use snprintf directly
5690 * testsuite/util/testsuite_abi.cc: Add new symbol version.
5691 Remove stable IEEE128/LDBL versions.
5693 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
5696 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5698 * include/std/variant: Check feature test macros instead.
5699 * include/std/version: Likewise.
5701 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
5703 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5706 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
5708 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
5709 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
5711 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
5713 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
5716 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
5718 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
5719 Ignore -Walloc-larger-than warning.
5720 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5722 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
5723 to avoid linker error for __atomic_is_lock_free.
5725 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
5727 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
5728 __waiter_base::_S_do_spin_v): Change memory order from relaxed
5731 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
5733 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
5735 (atomic_fetch_xor_explicit): Likewise.
5736 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
5737 arithmetic and logical operations for atomic_int.
5739 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
5741 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
5742 when <dirent.h> is not available.
5743 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
5745 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
5748 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
5749 loop inside do loop so that threads failing the wait, reload
5752 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
5754 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
5755 parameter to _Dir_base&&.
5756 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
5757 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
5758 parameter to _Dir_base&&.
5760 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
5762 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
5763 checking for CAS on correct word size.
5765 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
5767 * testsuite/experimental/filesystem/operations/create_directories.cc:
5768 Adjust expected results for Windows.
5770 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
5773 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
5774 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
5775 instead of checking for errno values indicating a directory.
5776 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
5777 logic to non-throwing overload.
5778 (fs::remove_all(const path&, error_code&)): Add comments.
5779 * src/filesystem/ops-common.h: Likewise.
5781 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
5783 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
5784 type to use portable posix::DIR alias.
5786 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
5788 * include/c_compatibility/stdatomic.h [__clang__]: Use
5789 #include_next <stdatomic.h>.
5791 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
5793 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
5795 (fs::create_directories): Likewise.
5796 (fs::remove_all): Likewise.
5797 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
5798 (fs::create_directories): Likewise.
5799 (fs::remove_all): Likewise.
5801 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
5804 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
5806 * config.h.in: Regenerate.
5807 * configure: Regenerate.
5808 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
5809 remove_all overloads as friends.
5810 (recursive_directory_iterator::__erase): Declare new member
5812 * include/bits/fs_fwd.h (remove, remove_all): Declare.
5813 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
5814 constructor. Pass file descriptor argument to base constructor.
5815 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
5816 (_Dir::unlink, _Dir::rmdir): Define new member functions.
5817 (directory_iterator): Pass filename_only argument to _Dir
5819 (recursive_directory_iterator::_Dir_stack): Adjust constructor
5820 parameters to take a _Dir rvalue instead of creating one.
5821 (_Dir_stack::orig): Add data member for storing original path.
5822 (_Dir_stack::report_error): Define new member function.
5823 (__directory_iterator_nofollow): Move here from dir-common.h and
5824 fix value to be a power of two.
5825 (__directory_iterator_filename_only): Define new constant.
5826 (recursive_directory_iterator): Construct _Dir object and move
5827 into _M_dirs stack. Pass skip_permission_denied argument to first
5829 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
5830 (recursive_directory_iterator::__erase): Define new member
5832 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
5833 (fs::remove_all): Use new recursive_directory_iterator::__erase
5835 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
5836 constructor and use openat to implement nofollow semantics.
5837 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
5838 Define new member functions.
5839 (__directory_iterator_nofollow): Move to fs_dir.cc.
5840 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
5842 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
5844 (recursive_directory_iterator::_Dir_stack): Adjust constructor
5845 parameters to take a _Dir rvalue instead of creating one.
5846 (recursive_directory_iterator): Check for new nofollow option.
5847 Construct _Dir object and move into _M_dirs stack. Pass
5848 skip_permission_denied argument to first advance call.
5849 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
5850 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
5852 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
5854 * include/bits/allocator.h: Qualify std::allocator_traits in
5855 deprecated warnings.
5856 * libsupc++/exception (uncaught_exception): Add suggestion to
5859 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
5861 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
5862 Add [[maybe_unused]] attribute.
5863 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
5866 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
5868 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
5869 custom comparison function for multiset.
5870 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
5871 comparison function for set.
5873 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
5875 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
5876 Change member function to data member of function pointer type.
5878 2022-02-02 Martin Sebor <msebor@redhat.com>
5881 * include/std/array (begin): Declare const member function attribute
5883 (end, rbegin, rend, size, max_size, empty, data): Same.
5884 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
5885 * testsuite/23_containers/array/capacity/max_size.cc: Same.
5886 * testsuite/23_containers/array/capacity/size.cc: Same.
5887 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
5889 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
5891 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
5892 autoconf macro to check whether d_type is present.
5893 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
5896 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
5898 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
5899 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
5900 Check follow_directory_symlink option.
5901 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
5904 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
5906 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
5907 Reset state to past-the-end iterator on error.
5908 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
5909 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
5911 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
5912 for the TS implementation.
5913 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
5914 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
5916 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
5918 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
5920 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
5923 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
5924 for stdio_pure and stdio_posix options.
5925 * configure: Regenerate.
5927 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
5929 * include/bits/atomic_wait.h: Change memory order from
5930 Acquire/Release with relaxed loads to SeqCst+Release for
5931 accesses to the waiter's count.
5933 2022-01-31 Martin Liska <mliska@suse.cz>
5935 * acinclude.m4: Detect *_ld_is_mold and use it.
5936 * configure: Regenerate.
5938 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
5940 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
5942 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
5944 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
5947 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
5948 Add __builtin_unreachable to loop.
5949 * testsuite/23_containers/deque/100516.cc: New test.
5951 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
5953 * include/bits/ranges_base.h (ranges::advance): Avoid signed
5954 overflow. Do nothing if already equal to desired result.
5955 * testsuite/24_iterators/range_operations/advance_overflow.cc:
5958 2022-01-27 Martin Liska <mliska@suse.cz>
5961 * acinclude.m4: Fix typo.
5962 * configure: Regenerate.
5964 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
5967 * include/bits/istream.tcc (basic_istream::sentry): Add braces
5969 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
5970 Add pragmas to disable bogus warnings from PR 61596.
5972 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
5975 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
5976 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
5977 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
5979 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
5982 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
5984 * config.h.in: Regenerate.
5985 * configure: Regenerate.
5986 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
5987 and pass it to base class constructor.
5988 (directory_iterator): Pass nofollow flag to _Dir constructor.
5989 (fs::recursive_directory_iterator::increment): Likewise.
5990 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
5991 directory_iterator constructor. Move error check outside loop.
5992 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
5993 constructor and when it's set use ::open with O_NOFOLLOW and
5995 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
5996 and pass it to base class constructor.
5997 (directory_iterator): Pass nofollow flag to _Dir constructor.
5998 (fs::recursive_directory_iterator::increment): Likewise.
5999 * src/filesystem/ops.cc (remove_all): Use nofollow option for
6000 directory_iterator constructor. Move error check outside loop.
6002 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
6005 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
6006 mem-initializer for _M_buf.
6007 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
6009 * testsuite/27_io/spanstream/2.cc: New test.
6011 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
6013 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
6014 Define macro for case where std::from_chars is implemented in
6015 terms of strtod, strtof or strtold.
6016 (buffer_resource, valid_fmt, find_end_of_float, pattern)
6017 (from_chars_impl, make_result, reserve_string): Do not define
6018 unless USE_STRTOD_FOR_FROM_CHARS is defined.
6019 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
6020 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
6021 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
6024 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
6027 * include/bits/hashtable_policy.h (_Map_base): Add partial
6028 specialization for maps with const key types.
6029 * testsuite/23_containers/unordered_map/104174.cc: New test.
6031 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
6034 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
6035 Set members to zero without type punning.
6037 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
6039 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
6041 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
6045 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
6046 Define as type long.
6047 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
6049 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
6050 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
6051 (__cpp_lib_chrono_udls): Likewise.
6052 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
6053 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
6054 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
6056 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
6058 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
6059 (__cpp_lib_sample): Likewise.
6060 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
6062 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
6064 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
6066 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
6068 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
6070 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
6072 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
6074 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
6075 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
6076 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
6078 * include/std/complex (__cpp_lib_complex_udls): Likewise.
6079 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
6080 * include/std/functional (__cpp_lib_not_fn): Likewise.
6081 (__cpp_lib_boyer_moore_searcher): Likewise.
6082 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
6083 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
6084 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
6085 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
6086 * include/std/tuple (__cpp_lib_apply): Likewise.
6087 (__cpp_lib_make_from_tuple): Likewise.
6088 * include/std/type_traits (__cpp_lib_integral_constant_callable)
6089 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
6090 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
6091 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
6092 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
6093 (__cpp_lib_has_unique_object_representations)
6094 (__cpp_lib_is_aggregate): Likewise.
6095 * include/std/version: Likewise.
6096 * libsupc++/new (__cpp_lib_launder): Likewise.
6098 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
6100 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
6101 condition for C++17 definition.
6103 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
6105 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
6107 (_Sp_atomic::_M_ptr): Add default member-initializer.
6108 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
6109 Check constant initialization.
6110 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
6112 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
6114 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
6115 equivalent attribute for Clang.
6116 * src/c++11/future.cc (__constinit): Likewise.
6117 * src/c++11/system_error.cc (__constinit): Likewise.
6118 * src/c++17/memory_resource.cc (__constinit): Likewise.
6120 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
6122 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
6123 src/libbacktrace/.libs to LDFLAGS if those directories exist.
6125 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6127 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
6129 * configure: Regenerate.
6131 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6134 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
6137 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6139 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
6140 linker search paths.
6141 * src/Makefile.am: Fix src/debug/libbacktrace build.
6142 * src/Makefile.in: Regenerate.
6143 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
6144 variable. Use symlinks for the source files.
6145 * src/libbacktrace/Makefile.in: Regenerate.
6147 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
6149 * include/experimental/bits/simd.h (__floating_point_flags): Do
6150 not rely on math_errhandling to expand to a constant expression.
6152 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6154 * doc/xml/manual/evolution.xml: Document deprecations.
6155 * doc/xml/manual/status_cxx2017.xml: Update status.
6156 * doc/html/*: Regenerate.
6158 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6160 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
6161 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
6163 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6165 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
6168 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6171 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
6172 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
6174 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6177 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
6179 (operator=(nullptr_t)): Likewise.
6180 * include/bits/cow_string.h: Likewise.
6181 * include/std/string_view (basic_string_view(nullptr_t)):
6183 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
6184 expected error. Add examples that become ill-formed in C++23.
6185 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
6186 Adjust expected errors.
6187 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
6190 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6193 * include/bits/stl_iterator.h (reverse_iterator): Check
6194 __cpp_lib_concepts instead of __cplusplus.
6196 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6199 * include/bits/stl_pair.h (pair): Adjust constraints on
6200 deprecated constructors accepting literal zero as null pointer
6201 constant. Improve wording of deprecated attribute.
6202 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
6203 constructors do not cause ambiguities for copyable types.
6205 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6207 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
6208 non-deprecated alternative.
6210 2022-01-18 Tom Honermann <tom@honermann.net>
6212 * acinclude.m4: Define config macros if uchar.h provides
6213 c8rtomb() and mbrtoc8().
6214 * config.h.in: Regenerate.
6215 * configure: Regenerate.
6216 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
6217 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
6218 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
6219 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
6221 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
6224 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6226 * include/Makefile.am: Install new header.
6227 * include/Makefile.in: Regenerate.
6228 * include/c_compatibility/stdatomic.h: New file.
6229 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
6231 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6234 * src/c++17/fast_float/LOCAL_PATCHES: Update.
6235 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
6236 Define in terms of __BYTE_ORDER__.
6238 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6241 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
6242 * src/c++17/fast_float/fast_float.h (round): Use explicit
6243 template argument list for std::min.
6245 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6247 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
6248 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
6250 * doc/html/manual/status.html: Regenerate.
6252 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6254 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
6256 * configure: Regenerate.
6258 2022-01-17 Patrick Palka <ppalka@redhat.com>
6260 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
6261 Conditionally define, and use it to conditionally include
6263 (from_chars): Use fast_float for float and double when
6266 2022-01-17 Patrick Palka <ppalka@redhat.com>
6268 * src/c++17/fast_float/LOCAL_PATCHES: Update.
6269 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
6270 case of over/underflow, return errc::result_out_of_range and don't
6273 2022-01-17 Patrick Palka <ppalka@redhat.com>
6275 * src/c++17/fast_float/LOCAL_PATCHES: Update.
6276 * src/c++17/fast_float/fast_float.h: Apply local modifications.
6278 2022-01-17 Patrick Palka <ppalka@redhat.com>
6280 * src/c++17/fast_float/LOCAL_PATCHES: New file.
6281 * src/c++17/fast_float/MERGE: New file.
6282 * src/c++17/fast_float/README.md: New file, copied from the
6283 fast_float repository.
6284 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
6285 of the fast_float library.
6287 2022-01-17 Patrick Palka <ppalka@redhat.com>
6289 * src/c++17/floating_from_chars.cc: Include <bit>.
6290 (ascii_to_hexit, starts_with_ci): Conditionally define.
6291 (__floating_from_chars_hex): Conditionally define.
6292 (from_chars): Use __floating_from_chars_hex for
6293 chars_format::hex parsing of binary32/64 float/double.
6294 (testsuite/20_util/from_chars/7.cc): New test.
6295 * testsuite/20_util/from_chars/7.cc: New file.
6297 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6299 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
6300 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
6301 * include/Makefile.am: Add new header.
6302 * include/Makefile.in: Regenerate.
6303 * include/std/stacktrace: New header.
6304 * include/std/version (__cpp_lib_stacktrace): Define.
6305 * Makefile.in: Regenerate.
6306 * config.h.in: Regenerate.
6307 * configure: Regenerate.
6308 * doc/Makefile.in: Regenerate.
6309 * libsupc++/Makefile.in: Regenerate.
6310 * po/Makefile.in: Regenerate.
6311 * python/Makefile.in: Regenerate.
6312 * src/Makefile.am: Regenerate.
6313 * src/Makefile.in: Regenerate.
6314 * src/c++11/Makefile.in: Regenerate.
6315 * src/c++17/Makefile.in: Regenerate.
6316 * src/c++20/Makefile.in: Regenerate.
6317 * src/c++98/Makefile.in: Regenerate.
6318 * src/filesystem/Makefile.in: Regenerate.
6319 * testsuite/Makefile.in: Regenerate.
6320 * src/libbacktrace/Makefile.am: New file.
6321 * src/libbacktrace/Makefile.in: New file.
6322 * src/libbacktrace/backtrace-rename.h: New file.
6323 * src/libbacktrace/backtrace-supported.h.in: New file.
6324 * src/libbacktrace/config.h.in: New file.
6325 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
6327 * testsuite/20_util/stacktrace/entry.cc: New test.
6328 * testsuite/20_util/stacktrace/synopsis.cc: New test.
6329 * testsuite/20_util/stacktrace/version.cc: New test.
6331 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6333 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
6335 * doc/html/manual/status.html: Regenerate.
6337 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6340 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
6341 * include/Makefile.in: Regenerate.
6342 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
6344 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
6346 * include/experimental/bits/simd.h (__floating_point_flags): Do
6347 not rely on the presence of the math_errhandling macro.
6349 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6351 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
6352 to qualified-id for dependent type.
6354 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6356 * doc/xml/manual/status_cxx2020.xml: Update.
6357 * doc/html/manual/status.html: Regenerate.
6359 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6360 Thomas Rodgers <trodgers@redhat.com>
6362 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
6364 (_Sp_atomic): New class template.
6365 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
6367 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
6368 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
6369 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
6370 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
6372 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
6374 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
6376 * include/experimental/bits/simd.h: Move feature detection bools
6377 and add __have_avx512bitalg, __have_avx512vbmi2,
6378 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
6379 __have_avx512vnni, __have_avx512vpopcntdq.
6380 (__detail::__machine_flags): New function which returns a unique
6381 uint64 depending on relevant -m and -f flags.
6382 (__detail::__odr_helper): New type alias for either an anonymous
6383 type or a type specialized with the __machine_flags number.
6384 (_SimdIntOperators): Change template parameters from _Impl to
6385 _Tp, _Abi because _Impl now has an __odr_helper parameter which
6386 may be _OdrEnforcer from the anonymous namespace, which makes
6387 for a bad base class.
6388 (many): Either add __odr_helper template parameter or mark as
6390 * include/experimental/bits/simd_detail.h: Add defines for
6391 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
6392 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
6393 * include/experimental/bits/simd_builtin.h: Add __odr_helper
6394 template parameter or mark as always_inline.
6395 * include/experimental/bits/simd_fixed_size.h: Ditto.
6396 * include/experimental/bits/simd_math.h: Ditto.
6397 * include/experimental/bits/simd_scalar.h: Ditto.
6398 * include/experimental/bits/simd_neon.h: Add __odr_helper
6400 * include/experimental/bits/simd_ppc.h: Ditto.
6401 * include/experimental/bits/simd_x86.h: Ditto.
6403 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
6405 * testsuite/22_locale/numpunct/members/char/3.cc:
6406 Require pt_PT locale instead of nl_NL.
6407 (test02): Use pt_PT locale instead of nl_NL.
6409 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6414 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
6416 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
6417 Disable deprecated warnings for base classes.
6418 (_Reference_wrapper_base): Likewise.
6419 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
6420 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
6421 * include/bits/stl_function.h (unary_function, binary_function):
6422 Add deprecated attribute.
6423 (unary_negate, not1, binary_negate, not2, ptr_fun)
6424 (pointer_to_unary_function, pointer_to_binary_function)
6425 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
6426 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
6427 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
6429 * include/bits/stl_iterator.h: Disable deprecated warnings for
6430 std::iterator base classes.
6431 * include/bits/stl_iterator_base_types.h (iterator): Add
6432 deprecated attribute.
6433 * include/bits/stl_map.h (map::value_compare): Disable
6434 deprecated warnings for base class.
6435 * include/bits/stl_multimap.h (multimap::value_compare):
6437 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
6438 Add deprecated attribute.
6439 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
6440 * include/bits/stream_iterator.h: Disable deprecated warnings.
6441 * include/bits/streambuf_iterator.h: Likewise.
6442 * include/ext/bitmap_allocator.h: Remove unary_function base
6444 * include/ext/functional: Disable deprecated warnings.
6445 * include/ext/rope: Likewise.
6446 * include/ext/throw_allocator.h: Likewise.
6447 * include/std/type_traits (result_of): Add deprecated attribute.
6448 * include/tr1/functional: Disable deprecated warnings.
6449 * include/tr1/functional_hash.h: Likewise.
6450 * testsuite/20_util/function_objects/binders/1.cc: Add
6451 -Wno-disable-deprecations.
6452 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
6453 * testsuite/20_util/function_objects/constexpr.cc: Add
6455 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
6456 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
6457 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
6459 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
6461 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
6463 * testsuite/20_util/reference_wrapper/24803.cc:
6465 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
6466 C++20 and check for absence of nested types.
6467 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
6468 std::binary_function base class.
6469 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
6470 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
6471 std::iterator base class.
6472 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
6474 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
6476 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
6478 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
6480 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
6482 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
6484 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
6486 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
6488 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
6490 * testsuite/25_algorithms/copy/34595.cc:
6492 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
6494 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
6495 Disable deprecated warnings.
6496 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
6498 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
6500 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
6502 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
6504 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
6506 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
6508 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
6510 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
6512 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
6514 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
6516 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
6518 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
6520 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
6522 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
6524 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
6526 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
6528 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
6530 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
6532 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
6534 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
6536 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
6538 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
6540 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
6542 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
6544 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
6546 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
6548 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
6550 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
6552 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
6554 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
6556 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
6558 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
6560 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
6562 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
6564 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
6566 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
6568 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
6570 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
6572 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
6574 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
6576 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
6578 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
6580 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
6582 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
6584 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
6586 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
6588 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
6590 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
6592 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
6594 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
6596 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
6597 Disable deprecated warnings.
6598 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
6600 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
6601 std::unary_function base classes.
6602 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
6603 Remove std::iterator base classes.
6605 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6607 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
6608 Correct type of macro value.
6609 (shared_ptr): Add additional friend declarations.
6610 (make_shared, allocate_shared): Constrain existing overloads and
6611 remove static_assert.
6612 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
6614 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
6615 specialization for use with make_shared_for_overwrite.
6616 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
6617 (_Sp_counted_array_base): New class template.
6618 (_Sp_counted_array): New class template.
6619 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
6620 New constructor for allocating shared arrays.
6621 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
6622 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
6624 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
6625 (__cpp_lib_smart_ptr_for_overwrite): New macro.
6626 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
6628 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
6629 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
6630 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
6631 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
6632 feature test macro. Test non-trivial default-initialization.
6634 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6636 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
6637 Also cast away cv-qualifiers when converting pointer to void.
6638 * testsuite/20_util/allocator/void.cc: Test construct function
6639 with cv-qualified types.
6641 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6644 * include/bits/stl_iterator.h (common_iterator): Use
6645 std::construct_at instead of placement new.
6646 * testsuite/24_iterators/common_iterator/1.cc: Check copy
6647 construction is usable in constant expressions.
6649 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6651 * doc/xml/manual/status_cxx2011.xml: Document new tokens
6652 accepted by std::random_device constructor.
6653 * doc/html/manual/status.html: Regenerate.
6655 2022-01-12 Patrick Palka <ppalka@redhat.com>
6657 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
6660 2022-01-12 Patrick Palka <ppalka@redhat.com>
6663 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
6664 Track the excess precision separately from the effective
6665 precision. Avoid overflow in bounds check by splitting it into
6667 (__floating_to_chars_precision): Avoid overflow in bounds checks
6669 * testsuite/20_util/to_chars/103955.cc: New test.
6671 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6674 * include/Makefile.am: Install <source_location> for
6676 * include/Makefile.in: Regenerate.
6677 * include/std/version (__cpp_lib_source_location): Define for
6680 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6682 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
6683 Add neoxcept (LWG 3593).
6685 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6687 * include/std/ranges (ranges::__detail::__box): Add constexpr to
6688 assignment operators (LWG 3572).
6689 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
6690 view that uses copyable-box.
6692 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6695 * include/Makefile.am: Install <coroutine> for freestanding.
6696 * include/Makefile.in: Regenerate.
6697 * include/std/coroutine: Adjust headers and preprocessor
6699 (__coroutine_traits_impl): Use concepts when available.
6700 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
6702 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6704 * include/std/ostream (operator<<(basic_ostream&, charT)):
6705 Use unformatted input if no padding is needed.
6706 (operator<<(basic_ostream<char>&, char)): Likewise.
6708 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6711 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
6713 * include/std/variant (__cpp_lib_variant): Only define C++20
6714 value when the compiler is known to support conditionally
6715 trivial destructors.
6716 * include/std/version (__cpp_lib_variant): Likewise.
6718 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6720 * include/bits/stl_iterator.h (common_iterator): Add constexpr
6721 to all member functions (LWG 3574).
6722 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
6723 tests as constant expressions.
6724 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
6726 2022-01-10 Jakub Jelinek <jakub@redhat.com>
6729 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
6730 (time_get::_M_extract_via_format): Declare new method with
6731 __time_get_state& as an extra argument.
6732 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
6733 __state argument, set various fields in it while parsing. Handle %j,
6734 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
6735 for %p immediately. Add a wrapper around the method without the
6736 __state argument for backwards compatibility.
6737 (_M_extract_num): Remove all __len == 4 special cases.
6738 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
6739 initialize __state, pass it to _M_extract_via_format and finalize it
6741 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
6742 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
6743 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
6744 version, don't call do_get but call _M_extract_via_format instead to
6746 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
6747 with extra __time_get_state and __time_get_state::_M_finalize_state.
6748 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
6749 day_of_the_year): New functions in anon namespace.
6750 (mon_yday): New var in anon namespace.
6751 (__time_get_state::_M_finalize_state): Define.
6752 * testsuite/22_locale/time_get/get/char/4.cc: New test.
6753 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
6754 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
6755 as year 197AD instead of error.
6756 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
6757 year 2001 instead of error.
6758 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
6759 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
6760 197 as year 197AD instead of error.
6761 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
6762 1 as year 2001 instead of error.
6763 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
6765 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
6768 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
6769 nothing for freestanding builds.
6770 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
6771 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
6772 with --without-headers. Do not use GCC_HEADER_STDINT for
6773 freestanding builds.
6774 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
6775 for freestanding builds.
6776 * configure: Regenerate.
6777 * Makefile.in: Regenerate.
6778 * doc/Makefile.in: Regenerate.
6779 * include/Makefile.in: Regenerate.
6780 * libsupc++/Makefile.in: Regenerate.
6781 * po/Makefile.in: Regenerate.
6782 * python/Makefile.in: Regenerate.
6783 * src/Makefile.in: Regenerate.
6784 * src/c++11/Makefile.in: Regenerate.
6785 * src/c++17/Makefile.in: Regenerate.
6786 * src/c++20/Makefile.in: Regenerate.
6787 * src/c++98/Makefile.in: Regenerate.
6788 * src/filesystem/Makefile.in: Regenerate.
6789 * testsuite/Makefile.in: Regenerate.
6791 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
6793 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
6794 Add dg-timeout-factor directive.
6795 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
6796 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
6797 * testsuite/28_regex/match_results/102667.cc: Likewise.
6799 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
6801 * doc/xml/manual/using.xml: Update documentation around default
6803 * doc/html/*: Regenerate.
6805 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
6808 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
6809 * src/c++17/Makefile.in: Regenerate.
6811 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
6813 * testsuite/18_support/type_info/constexpr.cc: Add explicit
6814 -fdelete-null-pointer-checks option.
6816 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
6817 Jonathan Wakely <jwakely@redhat.com>
6820 * include/bits/forward_list.tcc (forward_list::merge): Check for
6822 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
6824 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
6826 * include/bits/regex.h (basic_regex, match_results): Qualify
6827 name in friend declaration, to work around Clang bug.
6829 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
6831 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
6833 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
6836 * include/std/charconv (__from_chars_alpha_to_num): Return
6837 char instead of unsigned char. Change invalid return value to
6838 127 instead of using numeric trait.
6839 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
6840 Change type of variable to char.
6842 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
6845 * include/bits/hashtable_policy.h
6846 (_Hashtable_hash_traits<_Hash>): New.
6847 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
6848 (_Hashtable_base<>::_M_key_equals): New.
6849 (_Hashtable_base<>::_M_equals): Use latter.
6850 (_Hashtable_base<>::_M_key_equals_tr): New.
6851 (_Hashtable_base<>::_M_equals_tr): Use latter.
6852 * include/bits/hashtable.h
6853 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
6854 (_Hashtable<>::find): Loop through elements to look for key if size is lower
6855 than __small_size_threshold().
6856 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
6857 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
6858 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
6859 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
6860 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
6861 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
6862 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
6863 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
6864 * testsuite/util/testsuite_performance.h
6865 (report_performance): Use 9 width to display memory.
6866 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
6867 New performance test case.
6869 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6872 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
6873 Relax constraints on string_view parameter.
6874 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
6876 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
6878 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6880 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
6882 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
6883 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
6884 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
6886 (type_info::__equal): Define alias symbol.
6887 * libsupc++/typeinfo (type_info::before): Combine different
6888 implementations into one.
6889 (type_info::operator==): Likewise. Use address equality for
6890 constant evaluation. Call __equal for targets that require the
6891 definition to be non-inline.
6892 * testsuite/18_support/type_info/constexpr.cc: New test.
6894 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6896 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
6897 class and virtual functions as 'final'.
6898 (io_category_instance): Use constinit union to make the object
6900 * src/c++11/future.cc (future_error_category): Define class and
6901 virtual functions as 'final'.
6902 (future_category_instance): Use constinit union.
6904 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6906 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
6907 versioned namespace from the type name that is printed.
6909 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6911 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
6912 printer for std::regex NFA states.
6914 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6916 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
6917 placeholders in comments.
6918 * testsuite/23_containers/forward_list/operations/2.cc:
6920 * testsuite/23_containers/forward_list/operations/3.cc:
6922 * testsuite/23_containers/forward_list/operations/4.cc:
6924 * testsuite/23_containers/forward_list/operations/5.cc:
6926 * testsuite/23_containers/forward_list/operations/6.cc:
6928 * testsuite/23_containers/forward_list/operations/7.cc:
6931 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6934 * include/bits/stl_deque.h (operator-): Do not use 0 as null
6937 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6939 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
6940 Use std::_Construct for construct.
6942 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6945 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
6946 * doc/html/faq.html: Regenerate.
6948 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6950 * include/bits/regex.h (__regex_algo_impl): Change __policy and
6951 __match_mode template parameters to be function parameters.
6952 (regex_match, regex_search): Pass policy and match mode as
6954 * include/bits/regex.tcc (__regex_algo_impl): Change template
6955 parameters to function parameters.
6956 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
6957 'if constexpr' for conditions using template parameters.
6958 (_RegexTranslator): Likewise.
6959 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
6961 * testsuite/util/testsuite_regex.h (regex_match_debug)
6962 (regex_search_debug): Move template arguments to function
6965 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6967 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
6968 results even if the match failed.
6970 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
6972 * include/bits/regex_compiler.tcc: Adjust all calls to
6973 __throw_regex_error.
6974 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
6976 * include/bits/regex_scanner.tcc: Likewise.
6977 * src/c++11/regex.cc (desc): New helper function.
6978 (regex_error::regex_error(error_type)): Use desc to get a string
6979 corresponding to the error code.
6982 Copyright (C) 2022 Free Software Foundation, Inc.
6984 Copying and distribution of this file, with or without modification,
6985 are permitted in any medium without royalty provided the copyright
6986 notice and this notice are preserved.