1 2022-12-24 Iain Sandoe <iain@sandoe.co.uk>
3 * src/c++20/tzdb.cc (remote_version): Look for the tzdata.zi
4 file before falling back to system-specific ones on Darwin and
7 2022-12-24 Iain Sandoe <iain@sandoe.co.uk>
9 * testsuite/std/time/tzdb/leap_seconds.cc: Initialize the
10 override_used test var to false.
12 2022-12-23 Eric Botcazou <ebotcazou@adacore.com>
14 * acinclude.m4 (GLIBCXX_EXPORT_FLAGS): Substitute CPPFLAGS.
15 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Set ac_has_sched_yield and
16 ac_has_win32_sleep to yes for MinGW. Change HAVE_WIN32_SLEEP
17 into _GLIBCXX_USE_WIN32_SLEEP.
18 (GLIBCXX_CHECK_GTHREADS): Add _WIN32_THREADS to compilation flags for
19 Win32 threads and force _GTHREAD_USE_MUTEX_TIMEDLOCK to 0 for them.
20 Add -D_WIN32_WINNT=0x0600 to compilation flags if yes was configured
21 and add it to CPPFLAGS on success.
22 * config.h.in: Regenerate.
23 * configure: Likewise.
24 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_GET_NPROCS_WIN32):
26 * config/os/mingw32/os_defines.h (_GLIBCXX_USE_GET_NPROCS_WIN32): Ditto
27 * src/c++11/thread.cc (get_nprocs): Provide Win32 implementation if
28 _GLIBCXX_USE_GET_NPROCS_WIN32 is defined. Replace HAVE_WIN32_SLEEP
30 * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: Add
31 missing conditional compilation.
32 * testsuite/lib/libstdc++.exp (check_v3_target_sleep): Add support for
33 _GLIBCXX_USE_WIN32_SLEEP.
34 (check_v3_target_nprocs): Likewise for _GLIBCXX_USE_GET_NPROCS_WIN32.
36 2022-12-23 Jonathan Wakely <jwakely@redhat.com>
38 * src/c++20/tzdb.cc [__APPLE__] (zoneinfo_dir_override): Add
41 2022-12-23 Jonathan Wakely <jwakely@redhat.com>
43 * src/c++20/tzdb.cc: Remove static_assert.
45 2022-12-23 Arsen Arsenović <arsen@aarsen.me>
46 Jonathan Wakely <jwakely@redhat.com>
50 * src/experimental/contract.cc (handle_contract_violation): Make
53 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
56 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
57 Access private data member of base class and call its wait
60 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
62 * include/Makefile.am: Add new header.
63 * include/Makefile.in: Regenerate.
64 * include/std/chrono (operator<<): Move to new header.
65 (nonexistent_local_time::_M_make_what_str): Define correctly.
66 (ambiguous_local_time::_M_make_what_str): Likewise.
67 * include/bits/chrono_io.h: New file.
68 * src/c++20/tzdb.cc (operator<<(ostream&, const Rule&)): Use
69 new ostream output for month and weekday types.
70 * testsuite/20_util/duration/io.cc: Test std::format support.
71 * testsuite/std/time/exceptions.cc: Check what() strings.
72 * testsuite/std/time/syn_c++20.cc: Uncomment local_time_format.
73 * testsuite/std/time/time_zone/get_info_local.cc: Enable check
74 for formatted output of local_info objects.
75 * testsuite/std/time/clock/file/io.cc: New test.
76 * testsuite/std/time/clock/gps/io.cc: New test.
77 * testsuite/std/time/clock/system/io.cc: New test.
78 * testsuite/std/time/clock/tai/io.cc: New test.
79 * testsuite/std/time/clock/utc/io.cc: New test.
80 * testsuite/std/time/day/io.cc: New test.
81 * testsuite/std/time/format.cc: New test.
82 * testsuite/std/time/hh_mm_ss/io.cc: New test.
83 * testsuite/std/time/month/io.cc: New test.
84 * testsuite/std/time/weekday/io.cc: New test.
85 * testsuite/std/time/year/io.cc: New test.
86 * testsuite/std/time/year_month_day/io.cc: New test.
88 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
90 * include/std/format (__format::__write_padded_as_spec): New
92 (__format::__formatter_str, __format::__formatter_int::format)
93 (formatter<const void*, charT>): Use it.
95 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
97 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter)
98 (StdChronoTimePointPrinter, StdChronoZonedTimePrinter)
99 (StdChronoCalendarPrinter, StdChronoTimeZonePrinter)
100 (StdChronoLeapSecondPrinter, StdChronoTzdbPrinter)
101 (StdChronoTimeZoneRulePrinter): New printers.
103 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
105 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): New macro.
106 * config.h.in: Regenerate.
107 * config/abi/pre/gnu.ver: Export new symbols.
108 * configure: Regenerate.
109 * configure.ac (GLIBCXX_ZONEINFO_DIR): Use new macro.
110 * include/std/chrono (utc_clock::from_sys): Correct handling
112 (nonexistent_local_time::_M_make_what_str): Define.
113 (ambiguous_local_time::_M_make_what_str): Define.
114 (__throw_bad_local_time): Define new function.
115 (time_zone, tzdb_list, tzdb): Implement all members.
116 (remote_version, zoned_time, get_leap_second_info): Define.
117 * include/std/version: Add comment for __cpp_lib_chrono.
118 * src/c++20/Makefile.am: Add new file.
119 * src/c++20/Makefile.in: Regenerate.
120 * src/c++20/tzdb.cc: New file.
121 * testsuite/lib/libstdc++.exp: Define effective target tzdb.
122 * testsuite/std/time/clock/file/members.cc: Check file_time
123 alias and file_clock::now() member.
124 * testsuite/std/time/clock/gps/1.cc: Likewise for gps_clock.
125 * testsuite/std/time/clock/tai/1.cc: Likewise for tai_clock.
126 * testsuite/std/time/syn_c++20.cc: Uncomment everything except
128 * testsuite/std/time/clock/utc/leap_second_info.cc: New test.
129 * testsuite/std/time/exceptions.cc: New test.
130 * testsuite/std/time/time_zone/get_info_local.cc: New test.
131 * testsuite/std/time/time_zone/get_info_sys.cc: New test.
132 * testsuite/std/time/time_zone/requirements.cc: New test.
133 * testsuite/std/time/tzdb/1.cc: New test.
134 * testsuite/std/time/tzdb/leap_seconds.cc: New test.
135 * testsuite/std/time/tzdb_list/1.cc: New test.
136 * testsuite/std/time/tzdb_list/requirements.cc: New test.
137 * testsuite/std/time/zoned_time/1.cc: New test.
138 * testsuite/std/time/zoned_time/custom.cc: New test.
139 * testsuite/std/time/zoned_time/deduction.cc: New test.
140 * testsuite/std/time/zoned_time/req_neg.cc: New test.
141 * testsuite/std/time/zoned_time/requirements.cc: New test.
142 * testsuite/std/time/zoned_traits.cc: New test.
144 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
146 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
147 New variable templates.
148 (duration_cast): Add simplified definition for noconv case.
149 (treat_as_floating_point_v): Add explicit specializations.
150 (duration::operator%=, floor, ceil, round): Simplify SFINAE
153 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
155 * include/std/chrono: Use nodiscard attribute.
157 2022-12-21 Jakub Jelinek <jakub@redhat.com>
159 * testsuite/20_util/to_chars/float16_c++23.cc (test): Use 3 argument
160 std::to_chars if fmt is std::chars_format{}, rather than 4 argument.
161 * testsuite/20_util/to_chars/float128_c++23.cc (test): Likewise, and
162 skip second part of testing that requires 5 argument std::to_chars.
164 2022-12-19 Arsen Arsenović <arsen@aarsen.me>
166 * include/experimental/contract: Lowercase the constants in
167 contract_violation_continuation_mode.
169 2022-12-16 John David Anglin <danglin@gcc.gnu.org>
171 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
173 2022-12-16 Jonathan Wakely <jwakely@redhat.com>
175 * include/std/expected (expected): Add monadic operations.
176 (expected<void, E>): Likewise.
177 * include/std/version (__cpp_lib_expected): Bump value.
178 * testsuite/20_util/expected/synopsis.cc: Adjust expected macro
180 * testsuite/20_util/expected/version.cc: Likewise.
181 * testsuite/20_util/expected/illformed_neg.cc: Prune additional
182 errors from ill-formed monadic operations.
183 * testsuite/20_util/expected/observers.cc: Check error_or.
184 * testsuite/20_util/expected/monadic.cc: New test.
186 2022-12-16 Jonathan Wakely <jwakely@redhat.com>
188 * include/std/expected (expected::_M_swap_val_unex): Guard the
190 (expected::swap): Move is_swappable
191 requirement from static_assert to constraint.
193 (operator==): Remove noexcept-specifier.
194 * testsuite/20_util/expected/swap.cc: Check swapping of
195 types without non-throwing move constructor. Check constraints
197 * testsuite/20_util/expected/unexpected.cc: Check constraints on
199 * testsuite/20_util/expected/equality.cc: New test.
201 2022-12-16 Jonathan Wakely <jwakely@redhat.com>
203 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
204 Add static assert for rebind requirement.
205 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc:
206 Fix invalid rebind member in test allocator.
207 * testsuite/20_util/allocator_traits/requirements/rebind_neg.cc:
209 * testsuite/20_util/scoped_allocator/outermost.cc: Add rebind to
211 * testsuite/23_containers/forward_list/48101_neg.cc: Prune new
213 * testsuite/23_containers/unordered_multiset/48101_neg.cc:
215 * testsuite/23_containers/unordered_set/48101_neg.cc:
217 * testsuite/23_containers/vector/52591.cc: Fix typo in rebind.
219 2022-12-16 Jonathan Wakely <jwakely@redhat.com>
222 * include/bits/shared_ptr_base.h (weak_ptr::operator=):
223 Implement as move-and-swap exactly as specified in the standard.
224 * testsuite/20_util/weak_ptr/cons/self_move.cc: New test.
226 2022-12-15 Jakub Jelinek <jakub@redhat.com>
229 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Export
230 _ZTIDF[0-9]*[_bx], _ZTIPDF[0-9]*[_bx] and _ZTIPKDF[0-9]*[_bx].
231 * testsuite/util/testsuite_abi.cc (check_version): Handle
234 2022-12-14 Jonathan Wakely <jwakely@redhat.com>
237 * include/std/stacktrace (basic_stracktrace::_Impl): Do not
238 multiply N by sizeof(value_type) when allocating.
240 2022-12-13 Jakub Jelinek <jakub@redhat.com>
242 * src/libbacktrace/backtrace-rename.h (backtrace_uncompress_zstd):
245 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
247 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc: New
250 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
253 * include/std/format (basic_format_string): Fix constraint.
254 * testsuite/std/format/format_string.cc: New test.
256 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
258 * include/std/chrono (hh_mm_ss): Rename __is_unsigned member to
260 * include/std/format (basic_format_context): Rename _Out_
261 template parameter to _Out2.
262 * testsuite/17_intro/names.cc: Add Windows SAL annotation
265 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
268 * include/std/atomic (__cpp_lib_atomic_lock_free_type_aliases):
270 (atomic_signed_lock_free, atomic_unsigned_lock_free): Define
272 * include/std/version (__cpp_lib_atomic_lock_free_type_aliases):
274 * testsuite/29_atomics/atomic/lock_free_aliases.cc: New test.
276 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
278 * include/std/stacktrace (operator<<): Only output to narrow
280 * testsuite/19_diagnostics/stacktrace/synopsis.cc:
282 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
285 * include/std/chrono (hh_mm_ss): Remove digit separators.
287 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
289 * include/ext/pb_ds/detail/type_utils.hpp (PB_DS_STATIC_ASSERT):
290 Add unused attribute to avoid -Wunused-local-typedef warnings.
291 * testsuite/17_intro/tag_type_explicit_ctor.cc: Add pragma to
292 ignore -Wunused-variable warnings
294 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
296 * include/bits/chrono.h (duration_cast, floor, round, abs, ceil)
297 (time_point_cast): Add [[nodiscard]] attribute and doxygen
299 (treat_as_floating_point): Add doxygen commen.
301 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
303 * include/bits/chrono.h (duration, time_point): Change 'struct'
306 2022-12-07 Jonathan Wakely <jwakely@redhat.com>
307 François Dumont <frs.dumont@gmail.com>
309 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
310 (_Error_formatter::_Error_formatter): Pass error handler to
311 __glibcxx_backtrace_create_state. Pass 1 for threaded argument.
312 (_Error_formatter::_S_err): Define empty function.
313 * src/c++11/debug.cc (_Error_formatter::_M_error): Pass error
314 handler to __glibcxx_backtrace_full.
316 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
319 * testsuite/17_intro/names.cc: Do not check __unused on old
322 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
325 * include/std/format (_Iter_sink::_M_overflow): Add cast to
327 (_Iter_sink<CharT, contiguous_iterator auto>::_M_make_span): Use
328 typedef instead of decltype.
329 * testsuite/std/format/functions/107871.cc: New test.
331 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
333 * include/std/chrono (chrono::hh_mm_ss): Do not use 64-bit
334 representations for all four duration members. Reorder members.
335 (hh_mm_ss::hh_mm_ss()): Define as defaulted.
336 (hh_mm_ss::hh_mm_ss(Duration)): Delegate to a new private
337 constructor, instead of calling chrono::abs repeatedly.
338 * testsuite/std/time/hh_mm_ss/1.cc: Check floating-point
339 representations. Check default constructor. Check sizes.
341 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
344 * include/bits/vector.tcc (insert(const_iterator, const T&)):
345 Add assertion and optimization hint that the iterator for the
346 insertion point must be non-null.
348 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
350 * include/bits/std_mutex.h (mutex): Add nodiscard attribute to
351 try_lock member function.
352 * include/bits/unique_lock.h (unique_lock): Likewise for
353 try_lock, try_lock_until, try_lock_for member functions, and
354 owns_lock and mutex member functions.
355 * include/std/mutex (recursive_mutex): Likewise for try_lock
357 (timed_mutex, recursive_timed_mutex, try_lock): Likewise for
358 try_lock, try_lock_until, try_lock_for member functions.
359 (try_lock): Likewise for non-member function.
360 * include/std/shared_mutex (shared_mutex): Likewise for try_lock
361 and try_lock_shared member functions.
362 (shared_timed_mutex): Likewise for try_lock, try_lock_for,
363 try_lock_shared, try_lock_shared_for, try_lock_until, and
364 try_lock_shared_until member functions.
365 (shared_lock): Likewise for try_lock, try_lock, try_lock_for,
366 try_lock_until, owns_lock, and mutex member functions.
367 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
368 Cast discarded value expression to void.
369 * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
370 * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
371 * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
373 * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
375 * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
377 * testsuite/30_threads/try_lock/4.cc: Likewise.
378 * testsuite/30_threads/unique_lock/cons/60497.cc: Likewise.
379 * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
380 * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
383 2022-12-06 Jonathan Wakely <jwakely@redhat.com>
385 * include/std/format (basic_format_parse_context::next_arg_id):
386 Only check arg-id is in range during constant evaluation.
387 * testsuite/std/format/functions/format.cc: Check "{:#Lx}".
388 * testsuite/std/format/parse_ctx.cc: Adjust expected results for
389 format-strings using an out-of-range arg-id.
391 2022-12-04 Iain Sandoe <iain@sandoe.co.uk>
393 * config/os/bsd/darwin/os_defines.h
394 (_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro
395 to OS versions that need it.
397 2022-12-04 Iain Sandoe <iain@sandoe.co.uk>
399 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_WEAK_DEFINITION): Use the
400 implementation namespace for the weak attribute.
402 2022-12-02 Björn Schäpers <bjoern@hazardy.de>
403 Jonathan Wakely <jwakely@redhat.com>
405 * include/std/stacktrace (stacktrace_entry::_S_err_handler): New
407 (stacktrace_entry, basic_stacktrace): Pass &_S_err_handler to
408 all calls to libbacktrace.
410 2022-11-29 Jonathan Wakely <jwakely@redhat.com>
415 * include/bits/vector.tcc (vector::_M_fill_insert): Copy
416 _M_start and _M_finish members before allocating.
417 (vector::_M_default_append): Likewise.
418 (vector::_M_range_insert): Likewise.
420 2022-11-29 Jonathan Wakely <jwakely@redhat.com>
422 * include/bits/stl_iterator_base_types.h (__iterator_category):
423 Add always_inline attribute.
424 * include/bits/stl_vector.h (assign(Iter, Iter)): Call
425 _M_assign_aux directly, instead of _M_assign_dispatch.
426 (insert(const_iterator, Iter, Iter)): Call _M_range_insert
427 directly instead of _M_insert_dispatch.
429 2022-11-29 Jonathan Wakely <jwakely@redhat.com>
431 * include/std/format: Rename all variables called __used or
433 * testsuite/17_intro/badnames.cc: Add no_pch options.
434 * testsuite/17_intro/names.cc: Check __packed, __unused and
437 2022-11-28 François Dumont <fdumont@gcc.gnu.org>
439 * testsuite/20_util/function/cons/70692.cc: Adapt dg-error message.
441 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
444 * src/c++17/memory_resource.cc (chunk::_M_bytes): Change type
445 from uint32_t to bitset::size_type. Adjust static assertion.
446 (__pool_resource::_Pool::replenish): Cast to size_t after
447 multiplication instead of before.
448 (__pool_resource::_M_alloc_pools): Ensure both arguments to
449 std::max have type size_t.
451 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
453 * include/std/string_view (basic_string_view::copy) Use explicit
454 template argument for call to std::min<size_t>.
455 (basic_string_view::substr): Likewise.
457 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
460 * libsupc++/hash_bytes.cc (_Hash_bytes): Convert to size_t
461 instead of implicit integer promotion to 16 bits.
463 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
465 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
466 Replace non-ASCII character.
468 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
470 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
471 Simplify dg-prune-output pattern.
472 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune "::__8".
474 2022-11-28 Jonathan Wakely <jwakely@redhat.com>
477 * include/bits/random.h (subtract_with_carry_engine): Use 32-bit
478 type for default seed. Use 0u as default argument for
479 subtract_with_carry_engine(result_type) constructor and
480 seed(result_type) member function.
481 * include/bits/random.tcc (subtract_with_carry_engine): Use
482 32-bit type for default seed and engine used for initial state.
483 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
486 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
488 * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT
489 unless the AC_MSG_CHECKING happened.
490 * configure: Regenerate.
492 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
495 * include/bits/erase_if.h (__erase_nodes_if): Use non-const
496 reference to the container.
497 * include/experimental/map (erase_if): Likewise.
498 * include/experimental/set (erase_if): Likewise.
499 * include/experimental/unordered_map (erase_if): Likewise.
500 * include/experimental/unordered_set (erase_if): Likewise.
501 * include/std/map (erase_if): Likewise.
502 * include/std/set (erase_if): Likewise.
503 * include/std/unordered_map (erase_if): Likewise.
504 * include/std/unordered_set (erase_if): Likewise.
505 * testsuite/23_containers/map/erasure.cc: Check with
506 const-incorrect predicate.
507 * testsuite/23_containers/set/erasure.cc: Likewise.
508 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
509 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
510 * testsuite/experimental/map/erasure.cc: Likewise.
511 * testsuite/experimental/set/erasure.cc: Likewise.
512 * testsuite/experimental/unordered_map/erasure.cc: Likewise.
513 * testsuite/experimental/unordered_set/erasure.cc: Likewise.
515 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
517 * include/bits/random.h [three_way_comparison] (operator!=):
518 Do not define inequality operators when C++20 three way
519 comparisons are supported.
520 * include/ext/random [three_way_comparison] (operator!=):
523 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
525 * include/bits/stl_iterator_base_funcs.h (__distance):
526 Add always_inline attribute to overload for random
528 (advance, distance, next, prev): Add always_inline attribute to
529 inline functions that just forward to another function.
531 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
533 * doc/html/manual/bugs.html: Regenerate.
534 * doc/xml/manual/intro.xml: Document LWG 3656 change.
535 * include/std/bit (__bit_width, bit_width): Return int.
536 * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: New test.
538 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
541 * testsuite/27_io/filesystem/iterators/106201.cc: Improve test.
542 * testsuite/experimental/filesystem/iterators/106201.cc: New test.
544 2022-11-24 Jakub Jelinek <jakub@redhat.com>
547 * src/c++17/fast_float/MERGE: Adjust for merge from upstream.
548 * src/c++17/fast_float/fast_float.h: Merge from fast_float
549 2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit.
551 2022-11-24 Jakub Jelinek <jakub@redhat.com>
554 * testsuite/20_util/to_chars/float128_c++23.cc (test): Disable
555 __FLT128_MAX__ test on Solaris. Fix up commented out debugging
558 2022-11-23 Jakub Jelinek <jakub@redhat.com>
561 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): Guard
562 fast_float uses with #if USE_LIB_FAST_FLOAT and for mantissa_bits and
563 exponent_bits provide a fallback.
565 2022-11-23 Jonathan Wakely <jwakely@redhat.com>
568 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
569 Use a static buffer with space after it.
571 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
574 * include/std/charconv (__from_chars_alnum_to_val): Add
576 * include/std/format (__is_digit, __is_xdigit): New functions.
577 (_Spec::_S_parse_width_or_precision): Use __is_digit.
578 (__formatter_fp::parse): Use __is_xdigit.
580 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
583 * testsuite/27_io/filesystem/iterators/106201.cc: New test.
585 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
588 * src/c++17/memory_resource.cc (pool_sizes): Disable large pools
589 for targets with 16-bit int.
591 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
593 * include/std/functional (_Bind_front0): New class template.
594 (_Bind_front_t): Use _Bind_front0 when there are no bound
596 * testsuite/20_util/function_objects/bind_front/107784.cc:
599 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
601 * include/bits/chrono.h (duration): Check preconditions on
602 template arguments before using them.
604 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
606 * include/std/tuple: Add better Doxygen comments.
608 2022-11-21 Martin Liska <mliska@suse.cz>
610 * src/experimental/Makefile.in: Re-configure.
612 2022-11-20 François Dumont <fdumont@gcc.gnu.org>
614 * include/std/format: Add std qualification on isxdigit calls.
616 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
618 * include/bits/range_access.h: Add always_inline attribute to
621 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
623 * include/std/format: Fix -Wsign-compare warnings.
625 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
627 * include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename
630 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
633 * include/std/complex (__complex_proj): Fix requires-clause.
635 2022-11-19 Jeff Chapman II <jchapman@lock3software.com>
636 Andrew Marmaduke <amarmaduke@lock3software.com>
637 Jason Merrill <jason@redhat.com>
639 * acinclude.m4 (glibcxx_SUBDIRS): Add src/experimental.
640 * include/Makefile.am (experimental_headers): Add contract.
641 * include/Makefile.in: Regenerate.
642 * src/Makefile.am (SUBDIRS): Add experimental.
643 * src/Makefile.in: Regenerate.
644 * configure: Regenerate.
645 * src/experimental/contract.cc: New file.
646 * src/experimental/Makefile.am: New file.
647 * src/experimental/Makefile.in: New file.
648 * include/experimental/contract: New file.
650 2022-11-17 Jonathan Wakely <jwakely@redhat.com>
653 * include/std/format [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]:
654 Declare overloads of std::to_chars for the alternative long
657 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
660 * include/std/format (__format::_Arg_t): Fix typo in enumerator
662 (_Arg_value::_S_get): Fix missing semi-colons.
664 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
666 * include/std/chrono (get_leap_second_info): Optimize.
668 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
671 * include/std/format (__format::__formatter_int::format): Use
672 std::toupper when __builtin_toupper isn't available.
673 (basic_format_arg::handle): Add 'typename'.
674 * include/std/complex (complex<T>): Add 'typename'.
676 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
678 * include/std/format [__FLT128_DIG__] (_GLIBCXX_FORMAT_F128):
679 Only support formatting _Float128 when glibc provides the
680 functionality needed for accurate std::to_chars.
682 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
684 * testsuite/std/time/clock/utc/1.cc: Check handling across leap
687 2022-11-16 Patrick Palka <ppalka@redhat.com>
690 * include/std/iostream (__ioinit): Adjust comment.
691 * src/c++98/globals_io.cc: Include "io_base_init.h" here
693 * src/c++98/ios_init.cc: ... here.
694 * src/c++98/ios_base_init.h (__ioinit): More comments.
695 * testsuite/17_intro/static.cc: dg-do run instead of just link.
697 2022-11-16 Jakub Jelinek <jakub@redhat.com>
698 Jonathan Wakely <jwakely@redhat.com>
701 * include/std/complex (__complex_abs, __complex_arg, __complex_cos,
702 __complex_cosh, __complex_exp, __complex_log, __complex_sin,
703 __complex_sinh, __complex_sqrt, __complex_tan, __complex_tanh,
704 __complex_pow): Move __complex__ _Float{16,32,64,128} and
705 __complex__ decltype(0.0bf16) overloads earlier in the file.
706 (complex): Fix up requires on the partial specialization for extended
708 (__complex_acos, __complex_asin, __complex_atan, __complex_acosh,
709 __complex_asinh, __complex_atanh): Move
710 __complex__ _Float{16,32,64,128} and __complex__ decltype(0.0bf16)
711 overloads earlier in the file.
713 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
715 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make
716 expansion of std::string in manager name more robust.
718 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
720 * python/libstdcxx/v6/printers.py (is_specialization_of): Fix
721 incorrect terminology in docstring and describe arguments.
722 (FilteringTypePrinter): Add default argument for new parameter,
725 2022-11-16 François Dumont <fdumont@gcc.gnu.org>
727 * python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field
728 'template'. Add self.targ1 to specify the first template parameter of the instantiation
730 (add_one_type_printer): Add targ1 optional parameter, default to None.
731 Use gdb.types.get_basic_type to compare the type to recognize and the type
732 returned from the typedef lookup.
733 (register_type_printers): Adapt calls to add_one_type_printers.
735 2022-11-15 Jonathan Wakely <jwakely@redhat.com>
737 * testsuite/std/format/functions/format.cc: Do not use
738 std::make_unsigned_t<__int128>.
740 2022-11-15 Jonathan Wakely <jwakely@redhat.com>
742 * include/std/format (formattable): Only define for C++23/
743 * testsuite/std/format/formatter.cc: Moved to...
744 * testsuite/std/format/formatter/requirements.cc: ...here.
745 * testsuite/std/format/formatter/concept.cc: New test.
746 * testsuite/std/format/functions/format.cc: Replace use of
747 std::formattable in C++20.
749 2022-11-15 Jonathan Wakely <jwakely@redhat.com>
752 * include/std/format (_GLIBCXX_FORMAT_F128): Define to 2 when
753 basic_format_arg needs to use its _M_f128 member.
754 (__extended_floating_point, __floating_point): Replace with ...
755 (__formattable_floating_point): New concept.
756 * testsuite/std/format/functions/format.cc: Check whether
757 __float128 is supported. Also test _Float128.
759 2022-11-15 Jonathan Wakely <jwakely@redhat.com>
761 * doc/xml/manual/documentation_hacking.xml: Document use of
762 Markdown for Doxygen comments. Tweak formatting.
763 * doc/html/manual/documentation_hacking.html: Regenerate.
765 2022-11-14 Jonathan Wakely <jwakely@redhat.com>
767 * python/Makefile.am (install-data-local): Use mkdirs_p for debug
769 * python/Makefile.in: Regenerate.
771 2022-11-14 Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
773 * src/Makefile.am (install-debug): Remove use of $(debugdir).
774 * src/Makefile.in: Regenerate.
776 2022-11-13 Jonathan Wakely <jwakely@redhat.com>
778 * include/std/chrono (utc_clock, tai_clock, gps_clock): Define.
779 (clock_time_conversion, clock_cast): Define.
780 (sys_info, local_info): Define structs for timezone information.
781 (nonexistent_local_time, ambiguous_local_time): Define
782 exceptions for invalid times.
783 (time_zone, time_zone_link, leap_second, zoned_traits, tzdb)
784 (tzdb_list): Define classes representing time zones.
785 (get_leap_second_info): Define new function returning leap
786 second offset for a given time point.
787 * testsuite/std/time/clock/gps/1.cc: New test.
788 * testsuite/std/time/clock/tai/1.cc: New test.
789 * testsuite/std/time/clock/utc/1.cc: New test.
791 2022-11-13 Jonathan Wakely <jwakely@redhat.com>
794 * include/Makefile.am (std_headers): Add <format>.
795 * include/Makefile.in: Regenerate.
796 * include/precompiled/stdc++.h: Add <format>.
797 * include/std/format: New file.
798 * python/libstdcxx/v6/printers.py (StdFormatArgsPrinter): New
799 printer for std::format_args.
800 * testsuite/std/format/arguments/args.cc: New test.
801 * testsuite/std/format/error.cc: New test.
802 * testsuite/std/format/formatter.cc: New test.
803 * testsuite/std/format/functions/format.cc: New test.
804 * testsuite/std/format/functions/format_to_n.cc: New test.
805 * testsuite/std/format/functions/size.cc: New test.
806 * testsuite/std/format/functions/vformat_to.cc: New test.
807 * testsuite/std/format/parse_ctx.cc: New test.
808 * testsuite/std/format/string.cc: New test.
809 * testsuite/std/format/string_neg.cc: New test.
811 2022-11-13 Jonathan Wakely <jwakely@redhat.com>
813 * include/bits/charconv.h (__integer_to_chars_is_unsigned):
814 New variable template.
815 (__to_chars_len, __to_chars_10_impl): Use variable template in
816 assertions to allow unsigned __int128 in strict mode.
817 * include/std/charconv (__to_chars, __to_chars_16)
818 (__to_chars_10, __to_chars_8, __to_chars_2): Likewise.
820 2022-11-12 Jakub Jelinek <jakub@redhat.com>
823 * include/std/charconv (to_chars): Fix up powerpc64le _Float128
824 overload __extension__ placement.
826 2022-11-12 Jonathan Wakely <jwakely@redhat.com>
828 * src/Makefile.am: Simplify debug build targets.
829 * src/Makefile.in: Regenerate.
831 2022-11-12 Jonathan Wakely <jwakely@redhat.com>
834 * src/c++11/locale-inst-monetary.h: Include new header.
835 * src/c++11/locale-inst-numeric.h: Likewise.
836 * src/c++11/locale-inst.cc: Likewise.
837 (INSTANTIATE_USE_FACET, INSTANTIATE_FACET_ACCESSORS): Move
838 macro definitions to ...
839 * src/c++11/facet_inst_macros.h: New file.
841 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
844 * include/experimental/bits/fs_path.h (path::_Cvt::_S_wconvert):
845 Construct codecvt directly instead of getting it from the
848 2022-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
851 * include/bits/basic_string.h (_M_use_local_data): Set active
852 member to _M_local_buf.
854 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
857 * include/bits/fs_path.h (path::_Codecvt): New class template
858 that selects the kind of code conversion done.
859 (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t).
860 (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to
861 be used for Windows and POSIX.
862 (path::_S_convert(const EcharT*, const EcharT*)): Simplify by
863 using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions.
864 (path::_S_str_convert(basic_string_view<value_type>, const A&)):
865 Simplify nested conditions.
866 * include/experimental/bits/fs_path.h (path::_Cvt): Define
867 nested typedef controlling type of code conversion done.
868 (path::_Cvt::_S_wconvert): Use new typedef.
869 (path::string(const A&)): Likewise.
870 * testsuite/27_io/filesystem/path/construct/95048.cc: New test.
871 * testsuite/experimental/filesystem/path/construct/95048.cc: New
874 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
876 * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
878 * testsuite/26_numerics/valarray/87641.cc (X::operator==):
881 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
883 * include/std/charconv (__from_chars_alnum_to_val_table::value):
884 [!__cpp_inline_variables]: Add non-inline definition.
886 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
888 * testsuite/experimental/propagate_const/observers/107525.cc:
889 Use type trait instead of C++17 variable template.
891 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
894 * config/abi/pre/gnu.ver: Tighten patterns for facets in the
895 base version. Add exports for __try_use_facet.
896 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
897 __try_use_facet instead of has_facet and use_facet.
898 * include/bits/fstream.tcc (basic_filebuf::basic_filebuf()):
900 (basic_filebuf::imbue): Likewise.
901 * include/bits/locale_classes.h (locale, locale::id)
902 (locale::_Impl): Declare __try_use_facet as a friend.
903 * include/bits/locale_classes.tcc (__try_use_facet): Define new
904 function template with special cases for default facets.
905 (has_facet, use_facet): Call __try_use_facet.
906 * include/bits/locale_facets.tcc (__try_use_facet): Declare
907 explicit instantiations.
908 * include/bits/locale_facets_nonio.tcc (__try_use_facet):
910 * src/c++11/locale-inst-monetary.h (INSTANTIATE_FACET_ACCESSORS):
911 Use new macro for facet accessor instantiations.
912 * src/c++11/locale-inst-numeric.h (INSTANTIATE_FACET_ACCESSORS):
914 * src/c++11/locale-inst.cc (INSTANTIATE_USE_FACET): Define new
915 macro for instantiating __try_use_facet and use_facet.
916 (INSTANTIATE_FACET_ACCESSORS): Define new macro for also
918 * src/c++98/compatibility-ldbl.cc (__try_use_facet):
920 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust
923 2022-11-10 Jonathan Wakely <jwakely@redhat.com>
925 * include/std/concepts (__detail::__destructible_impl)
926 (__detail::__destructible): New variable templates.
927 (destructible): Use __detail::__destructible.
928 * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc:
929 Add more checks for array and reference types.
931 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
933 * testsuite/18_support/new_nothrow.cc: Add missing noexcept
934 to operator delete replacements.
935 * testsuite/20_util/any/cons/92156.cc: Disable
936 -Winit-list-lifetime warnings from instantiating invalid
937 specialization of manager function.
938 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
939 * testsuite/20_util/default_delete/void_neg.cc: Prune additional
941 * testsuite/20_util/headers/memory/synopsis.cc: Add missing
943 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Prune
944 additional diagnostic.
945 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Add
946 missing noexcept to operator delete replacements.
947 * testsuite/21_strings/basic_string/cons/char/103919.cc:
949 * testsuite/23_containers/map/modifiers/emplace/92300.cc:
951 * testsuite/23_containers/map/modifiers/insert/92300.cc:
953 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
954 Add missing noexcept to synopsis declarations.
955 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
957 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
960 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
962 * include/bits/stl_tempbuf.h (_Temporary_buffer): Disable
963 warnings about get_temporary_buffer being deprecated.
964 * include/ext/functional (mem_fun1, mem_fun1_ref): Disable
965 warnings about mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t and
966 const_mem_fun1_ref_t being deprecated.
967 * include/std/array (__array_traits<T, 0>): Remove artificial
968 attributes which give warnings about being ignored.
969 * include/std/spanstream (basic_spanbuf::setbuf): Add assertion
970 and adjust to avoid narrowing warning.
971 * libsupc++/exception_ptr.h [!__cpp_rtti && !__cpp_exceptions]
972 (make_exception_ptr): Add missing inline specifier.
974 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
976 * include/bits/alloc_traits.h (allocator_traits): Add
977 always_inline attribute to all member functions.
978 (__do_alloc_on_copy, __alloc_on_copy, __do_alloc_on_move)
979 (__alloc_on_move, __do_alloc_on_swap, __alloc_on_swap)
980 (_Destroy(FwdIter, FwdIter, allocator<T>&)): : Add
981 always_inline attribute.
982 * include/bits/allocator.h (allocator): Add always_inline
983 attribute to all member functions and equality operators.
984 * include/bits/new_allocator.h (__new_allocator): Likewise.
985 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits):
988 2022-11-08 Charles-François Natali <cf.natali@gmail.com>
991 * include/bits/fstream.tcc (basic_filbuf::xsputn): Remove
992 1024-byte chunking that bypasses the buffer for large writes.
993 * testsuite/27_io/basic_filebuf/sputn/char/63746.cc: New test.
995 2022-11-08 Will Hawkins <whh8b@obs.cr>
996 Jonathan Wakely <jwakely@redhat.com>
998 * include/bits/basic_string.h (__str_cat): Add common function
999 that performs single-allocation string concatenation.
1000 (operator+): Use __str_cat.
1001 * include/bits/basic_string.tcc (operator+): Move to .h and
1002 define inline using __str_cat.
1004 2022-11-08 Jakub Jelinek <jakub@redhat.com>
1006 * testsuite/20_util/to_chars/float128_c++23.cc (test): Uncomment
1009 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
1011 * doc/xml/authors.xml: Update the blurb listing my doc
1014 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
1016 * doc/xml/authors.xml: Remove empty author element.
1017 * doc/xml/manual/spine.xml: Likewise.
1018 * doc/html/manual/index.html: Regenerate.
1020 2022-11-08 Joseph Myers <joseph@codesourcery.com>
1023 * src/c++17/floating_from_chars.cc (from_chars_impl): Fix syntax
1026 2022-11-08 Jason Merrill <jason@redhat.com>
1027 Jakub Jelinek <jakub@redhat.com>
1029 * testsuite/18_support/comparisons/algorithms/fallback.cc: Adjust
1032 2022-11-07 Jakub Jelinek <jakub@redhat.com>
1035 * src/c++17/floating_from_chars.cc (__strtof128): Put __asm before
1037 * src/c++17/floating_to_chars.cc (__strfromf128): Likewise.
1039 2022-11-07 Patrick Palka <ppalka@redhat.com>
1041 * include/std/ranges (as_rvalue_view): Define.
1042 (enable_borrowed_range<as_rvalue_view>): Define.
1043 (views::__detail::__can_as_rvalue_view): Define.
1044 (views::_AsRvalue, views::as_rvalue): Define.
1045 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: New test.
1047 2022-11-07 Patrick Palka <ppalka@redhat.com>
1049 * include/std/ranges (__maybe_const_t): New alias for
1050 __detail::__maybe_const_t.
1051 (__detail::__cartesian_product_is_random_access): Define.
1052 (__detail::__cartesian_product_common_arg): Define.
1053 (__detail::__cartesian_product_is_bidirectional): Define.
1054 (__detail::__cartesian_product_is_common): Define.
1055 (__detail::__cartesian_product_is_sized): Define.
1056 (__detail::__cartesian_is_sized_sentinel): Define.
1057 (__detail::__cartesian_common_arg_end): Define.
1058 (cartesian_product_view): Define.
1059 (cartesian_product_view::_Iterator): Define.
1060 (views::__detail::__can_cartesian_product_view): Define.
1061 (views::_CartesianProduct, views::cartesian_product): Define.
1062 * testsuite/std/ranges/cartesian_product/1.cc: New test.
1064 2022-11-07 Jakub Jelinek <jakub@redhat.com>
1067 * src/c++17/fast_float/MERGE: Adjust for merge from upstream.
1068 * src/c++17/fast_float/LOCAL_PATCHES: Remove commits that were
1070 * src/c++17/fast_float/README.md: Merge from fast_float
1071 662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
1072 * src/c++17/fast_float/fast_float.h: Likewise.
1073 * testsuite/20_util/from_chars/pr107468.cc: New test.
1075 2022-11-07 Jakub Jelinek <jakub@redhat.com>
1077 * include/std/charconv (from_chars, to_chars): Add _Float128
1078 overfloads if _GLIBCXX_HAVE_FLOAT128_MATH is defined.
1079 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
1080 _ZSt8to_charsPcS_DF128_, _ZSt8to_charsPcS_DF128_St12chars_format,
1081 _ZSt8to_charsPcS_DF128_St12chars_formati and
1082 _ZSt10from_charsPKcS0_RDF128_St12chars_format.
1083 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
1085 (__strtof128): Declare.
1086 (from_chars_impl): Handle _Float128.
1087 (from_chars): New _Float128 overload if USE_STRTOF128_FOR_FROM_CHARS
1089 * src/c++17/floating_to_chars.cc (__strfromf128): Declare.
1090 (FLOAT128_TO_CHARS): Define even when _Float128 is supported and
1091 wider than long double.
1092 (F128_type): Use _Float128 for that case.
1093 (floating_type_traits): Specialize for F128_type rather than
1095 (sprintf_ld): Add length argument. Handle _Float128.
1096 (__floating_to_chars_shortest, __floating_to_chars_precision):
1097 Pass length to sprintf_ld.
1098 (to_chars): Add _Float128 overloads for the F128_type being
1100 * testsuite/20_util/to_chars/float128_c++23.cc: New test.
1102 2022-11-06 Patrick Palka <ppalka@redhat.com>
1104 * include/bits/atomic_wait.h (_detail::__platform_wait_alignment):
1105 Declare inline. Remove redundant static specifier.
1106 (__detail::__atomic_spin_count_relax): Declare inline.
1107 (__detail::__atomic_spin_count): Likewise.
1108 * include/bits/regex_automaton.h (__detail::_S_invalid_state_id):
1109 Declare inline for C++17. Declare constexpr. Remove
1110 redundant const and static specifiers.
1111 * include/bits/regex_error.h (regex_constants::error_collate):
1112 Declare inline for C++17 as per P0607R0.
1113 (regex_constants::error_ctype): Likewise.
1114 (regex_constants::error_escape): Likewise.
1115 (regex_constants::error_backref): Likewise.
1116 (regex_constants::error_brack): Likewise.
1117 (regex_constants::error_paren): Likewise.
1118 (regex_constants::error_brace): Likewise.
1119 (regex_constants::error_badbrace): Likewise.
1120 (regex_constants::error_range): Likewise.
1121 (regex_constants::error_space): Likewise.
1122 (regex_constants::error_badrepeat): Likewise.
1123 (regex_constants::error_complexity): Likewise.
1124 (regex_constants::error_stack): Likewise.
1125 * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy):
1126 Likewise. Remove redundant static specifier.
1127 * include/pstl/execution_defs.h (execution::seq): Declare inline
1128 for C++17 as per P0607R0.
1129 (execution::par): Likewise.
1130 (execution::par_unseq): Likewise.
1131 (execution::unseq): Likewise.
1133 2022-11-06 Patrick Palka <ppalka@redhat.com>
1138 * include/std/iostream (__ioinit): No longer define here if
1139 the init_priority attribute is usable.
1140 * src/c++98/ios_init.cc (__ioinit): Define here instead if
1141 init_priority is usable, via ...
1142 * src/c++98/ios_base_init.h: ... this new file.
1144 2022-11-05 Jakob Hasse <0xjakob@users.noreply.github.com>
1147 * libsupc++/pbase_type_info.cc (__do_catch) [!__cpp_rtti]: Add
1148 check that the thrown type is actually a pointer.
1149 * testsuite/18_support/105387.cc: New test.
1150 * testsuite/18_support/105387_memptr.cc: New test.
1152 2022-11-05 Jonathan Wakely <jwakely@redhat.com>
1155 * include/experimental/propagate_const (operator element_type*()):
1156 Move into base class that can be partially specilized to iompose
1158 (operator const element_type*()): Likewise.
1159 * testsuite/experimental/propagate_const/observers/107525.cc: New test.
1161 2022-11-04 Jonathan Wakely <jwakely@redhat.com>
1164 * libsupc++/eh_globals.cc (eh_globals): Remove immortalizing
1166 (__cxxabiv1::__cxa_get_globals_fast): Adjust.
1167 (__cxxabiv1::__cxa_get_globals): Adjust.
1169 2022-11-04 Jonathan Wakely <jwakely@redhat.com>
1172 * libsupc++/eh_alloc.cc (_GNU_SOURCE): Define.
1174 2022-11-03 Jonathan Wakely <jwakely@redhat.com>
1176 * include/bits/ranges_algobase.h (__detail::__copy_or_move):
1177 Move output iterator.
1178 * testsuite/25_algorithms/copy/constrained.cc: Check copying to
1179 move-only output iterator.
1181 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
1183 * libsupc++/eh_globals.cc (constant_init::unused): Remove.
1184 * src/c++11/system_error.cc (constant_init::unused): Remove.
1185 * src/c++17/memory_resource.cc (constant_init::unused): Remove.
1187 2022-11-02 Patrick Palka <ppalka@redhat.com>
1189 * src/c++17/floating_from_chars.cc (from_chars_impl): In the
1190 ERANGE case, distinguish between a denormal result and true
1191 underflow by checking if the return value is 0.
1193 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
1195 * include/std/expected (expected::_M_invalid): Remove.
1197 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
1199 * include/std/variant (__variant::_Multi_array::__untag_result):
1200 Use pragma to suppress warning.
1202 2022-11-02 Jakub Jelinek <jakub@redhat.com>
1204 * libsupc++/compare (_Strong_order::_Fp_fmt): Add _Bfloat16.
1205 (_Strong_order::_Bfloat16): New static data member.
1206 (_Strong_order::_S_fp_fmt): Return _Bfloat16 for std::bfloat16_t.
1208 2022-11-02 Jakub Jelinek <jakub@redhat.com>
1210 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): Drop const
1211 from unbiased_exponent. Canonicalize denormals such that they have
1212 the leading bit set by shifting effective mantissa up and decreasing
1214 (__floating_to_chars_shortest): Don't instantiate
1215 __floating_to_chars_hex for float16_t either and use float instead.
1216 * testsuite/20_util/to_chars/float.cc (float_to_chars_test_cases):
1217 Adjust testcases for shortest hex denormals.
1218 * testsuite/20_util/to_chars/double.cc (double_to_chars_test_cases):
1221 2022-11-01 Jakub Jelinek <jakub@redhat.com>
1223 * include/std/charconv (__from_chars_float16_t,
1224 __from_chars_bfloat16_t): Declare.
1225 (from_chars): Add _Float16 and __gnu_cxx::__bfloat16_t overloads.
1226 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
1227 _ZSt22__from_chars_float16_tPKcS0_RfSt12chars_format and
1228 _ZSt23__from_chars_bfloat16_tPKcS0_RfSt12chars_format.
1229 * src/c++17/floating_from_chars.cc
1230 (fast_float::floating_type_float16_t,
1231 fast_float::floating_type_bfloat16_t): New classes.
1232 (fast_float::binary_format<floating_type_float16_t>,
1233 fast_float::binary_format<floating_type_bfloat16_t>): New
1235 (fast_float::to_float<floating_type_float16_t>,
1236 fast_float::to_float<floating_type_bfloat16_t>,
1237 fast_float::to_extended<floating_type_float16_t>,
1238 fast_float::to_extended<floating_type_bfloat16_t>): Likewise.
1239 (fast_float::from_chars_16): New template function.
1240 (__floating_from_chars_hex): Allow instantiation with
1241 fast_float::floating_type_{,b}float16_t.
1242 (from_chars): Formatting fixes for float/double/long double overloads.
1243 (__from_chars_float16_t, __from_chars_bfloat16_t): New functions.
1244 * testsuite/20_util/to_chars/float16_c++23.cc: New test.
1246 2022-11-01 Jakub Jelinek <jakub@redhat.com>
1248 * include/std/charconv (__to_chars_float16_t, __to_chars_bfloat16_t):
1250 (to_chars): Add _Float16 and __gnu_cxx::__bfloat16_t overloads.
1251 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
1252 _ZSt20__to_chars_float16_tPcS_fSt12chars_format and
1253 _ZSt21__to_chars_bfloat16_tPcS_fSt12chars_format.
1254 * src/c++17/floating_to_chars.cc (floating_type_float16_t,
1255 floating_type_bfloat16_t): New types.
1256 (floating_type_traits<floating_type_float16_t>,
1257 floating_type_traits<floating_type_bfloat16_t>,
1258 get_ieee_repr<floating_type_float16_t>,
1259 get_ieee_repr<floating_type_bfloat16_t>,
1260 __handle_special_value<floating_type_float16_t>,
1261 __handle_special_value<floating_type_bfloat16_t>): New specializations.
1262 (floating_to_shortest_scientific): Handle floating_type_float16_t
1263 and floating_type_bfloat16_t like IEEE quad.
1264 (__floating_to_chars_shortest): For floating_type_bfloat16_t call
1265 __floating_to_chars_hex<float> rather than
1266 __floating_to_chars_hex<floating_type_bfloat16_t> to avoid
1267 instantiating the latter.
1268 (__to_chars_float16_t, __to_chars_bfloat16_t): New functions.
1270 2022-11-01 Jakub Jelinek <jakub@redhat.com>
1272 * include/std/charconv (from_chars, to_chars): Add _Float{32,64,128}
1273 overloads for cases where those types match {float,double,long double}.
1274 * include/std/istream (basic_istream::operator>>): Add
1275 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
1276 * include/std/ostream (basic_ostream::operator<<): Add
1277 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
1278 * testsuite/20_util/from_chars/8.cc: New test.
1279 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc (test):
1281 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: Add
1282 dg-options "-std=gnu++2b".
1283 (test_functions, main): Formatting fixes.
1284 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc:
1285 Add dg-options "-std=gnu++2b".
1287 2022-10-31 Jakub Jelinek <jakub@redhat.com>
1289 * include/std/complex (complex::complex converting ctor): For C++23
1290 use explicit specifier with constant expression. Explicitly cast
1292 (__complex_abs, __complex_arg, __complex_cos, __complex_cosh,
1293 __complex_exp, __complex_log, __complex_sin, __complex_sinh,
1294 __complex_sqrt, __complex_tan, __complex_tanh, __complex_pow): Add
1295 __complex__ _Float{16,32,64,128} and __complex__ decltype(0.0bf16)
1297 (complex<float>::complex converting ctor,
1298 complex<double>::complex converting ctor,
1299 complex<long double>::complex converting ctor): For C++23 implement
1300 as template with explicit specifier with constant expression
1302 (__complex_type): New template.
1303 (complex): New partial specialization for types with extended floating
1305 (__complex_acos, __complex_asin, __complex_atan, __complex_acosh,
1306 __complex_asinh, __complex_atanh): Add __complex__ _Float{16,32,64,128}
1307 and __complex__ decltype(0.0bf16) overloads.
1308 (__complex_proj): Likewise. Add template for complex of extended
1309 floating point types.
1310 * include/bits/cpp_type_traits.h (__is_floating): Specialize for
1311 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
1312 * testsuite/26_numerics/complex/ext_c++23.cc: New test.
1314 2022-10-31 Jakub Jelinek <jakub@redhat.com>
1316 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
1318 * include/c_global/cmath (nextafter(_Float16, _Float16)): Make it constexpr.
1319 If std::__is_constant_evaluated() call __builtin_nextafterf16.
1320 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Similarly
1321 but call __builtin_nextafterf16b.
1322 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc (test): Add
1323 static assertions to test constexpr nextafter.
1325 2022-10-28 Jonathan Wakely <jwakely@redhat.com>
1327 * include/bits/fs_path.h (path::filename()): Fix dangling
1330 2022-10-28 Arsen Arsenović <arsen@aarsen.me>
1332 * include/std/functional: Make placeholders inline, if possible.
1334 2022-10-28 Arsen Arsenović <arsen@aarsen.me>
1336 * configure.ac: Stop generating gstdint.h.
1337 * src/c++11/compatibility-atomic-c++0x.cc: Stop using gstdint.h.
1338 * Makefile.in: Regenerate.
1339 * aclocal.m4: Regenerate.
1340 * config.h.in: Regenerate.
1341 * configure: Regenerate.
1342 * doc/Makefile.in: Regenerate.
1343 * include/Makefile.in: Regenerate.
1344 * libsupc++/Makefile.in: Regenerate.
1345 * po/Makefile.in: Regenerate.
1346 * python/Makefile.in: Regenerate.
1347 * src/Makefile.in: Regenerate.
1348 * src/c++11/Makefile.in: Regenerate.
1349 * src/c++17/Makefile.in: Regenerate.
1350 * src/c++20/Makefile.in: Regenerate.
1351 * src/c++98/Makefile.in: Regenerate.
1352 * src/filesystem/Makefile.in: Regenerate.
1353 * src/libbacktrace/Makefile.in: Regenerate.
1354 * testsuite/Makefile.in: Regenerate.
1356 2022-10-28 Jonathan Wakely <jwakely@redhat.com>
1359 * include/bits/regex_executor.h (_Executor::_Executor): Use same
1360 allocator for _M_cur_results and _M_results.
1361 * include/bits/regex_executor.tcc (_Executor::_M_main_dispatch):
1362 Prevent possibly incorrect allocator propagating to
1364 * testsuite/28_regex/algorithms/regex_match/107376.cc: New test.
1366 2022-10-26 Marek Polacek <polacek@redhat.com>
1369 * include/bits/locale_classes.tcc: Add #pragma to disable
1370 -Wdangling-reference with std::use_facet.
1372 2022-10-21 Arsen Arsenović <arsen@aarsen.me>
1374 * acinclude.m4: Default hosted to off if building without
1375 headers and without newlib.
1376 * configure: Regenerate.
1378 2022-10-21 Jonathan Wakely <jwakely@redhat.com>
1380 * include/bits/mofunc_impl.h (move_only_function::__param_t):
1381 Use __is_scalar instead of is_trivially_copyable.
1382 * testsuite/20_util/move_only_function/call.cc: Check parameters
1383 involving incomplete types.
1385 2022-10-20 Patrick Palka <ppalka@redhat.com>
1387 * include/std/charconv (__detail::__from_chars_alnum_to_val_table):
1388 Redefine as a class template containing the members type, value and
1389 _S_make_table. Don't use a local class as the table type.
1390 (__detail::__table): Remove.
1391 (__detail::__from_chars_alnum_to_val): Adjust after the above.
1393 2022-10-19 Patrick Palka <ppalka@redhat.com>
1395 * include/std/ranges (views::__detail::__is_repeat_view): Define
1396 and later define a partial specialization.
1397 (views::__detail::__take_of_repeat_view): Declare and later define.
1398 (views::__detail::__drop_of_repeat_view): Likewise.
1399 (views::_Take::operator()): Return a repeat_view if the argument
1400 is a repeat_view as per P2474R2.
1401 (views::_Drop::operator()): Likewise.
1402 (repeat_view): Befriend __take/drop_of_repeat_view.
1403 * testsuite/std/ranges/repeat/1.cc (test04): New test.
1405 2022-10-19 Patrick Palka <ppalka@redhat.com>
1408 * include/std/ranges (stride_view::_Iterator::operator-): Fix typo.
1409 * testsuite/std/ranges/adaptors/stride/1.cc (test03): New test.
1411 2022-10-19 LIU Hao <lh_mouse@126.com>
1413 * src/c++11/thread.cc (get_nprocs): Add new implementation
1414 for native Windows targets
1416 2022-10-19 LIU Hao <lh_mouse@126.com>
1418 * libsupc++/atexit_thread.cc (__cxa_thread_atexit): Use
1419 implementation from mcfgthread if available
1420 * libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_release,
1421 __cxa_guard_abort): Use implementations from mcfgthread if
1423 * configure: Regenerate
1425 2022-10-19 Jakub Jelinek <jakub@redhat.com>
1428 * include/std/limits: Fix a typo, 202202L -> 202002L.
1429 (numeric_limits::<_Float16>::radix, numeric_limits::<_Float32>::radix,
1430 numeric_limits::<_Float64>::radix, numeric_limits::<_Float128>::radix,
1431 numeric_limits::<__gnu_cxx::__bfloat16_t>::radix): Use __FLT_RADIX__
1432 macro instead of type specific macros.
1433 * include/c_global/cmath (nextafter(_Float16, _Float16)): New
1435 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)):
1437 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
1438 (test_functions): Uncomment nextafter test. Fix up sph_neumann call.
1439 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc: New test.
1441 2022-10-18 Patrick Palka <ppalka@redhat.com>
1443 * include/std/ranges (stride_view): Define.
1444 (stride_view::_Iterator): Define.
1445 (views::__detail::__can_stride_view): Define.
1446 (views::_Stride, views::stride): Define.
1447 * testsuite/std/ranges/adaptors/stride/1.cc: New test.
1449 2022-10-18 Jakub Jelinek <jakub@redhat.com>
1452 * include/std/stdfloat: New file.
1453 * include/std/numbers (__glibcxx_numbers): Define and use it
1454 for __float128 explicit instantiations as well as
1455 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
1456 * include/std/atomic (atomic<_Float16>, atomic<_Float32>,
1457 atomic<_Float64>, atomic<_Float128>, atomic<__gnu_cxx::__bfloat16_t>):
1458 New explicit instantiations.
1459 * include/std/type_traits (__is_floating_point_helper<_Float16>,
1460 __is_floating_point_helper<_Float32>,
1461 __is_floating_point_helper<_Float64>,
1462 __is_floating_point_helper<_Float128>,
1463 __is_floating_point_helper<__gnu_cxx::__bfloat16_t>): Likewise.
1464 * include/std/limits (__glibcxx_concat3_, __glibcxx_concat3,
1465 __glibcxx_float_n): Define.
1466 (numeric_limits<_Float16>, numeric_limits<_Float32>,
1467 numeric_limits<_Float64>, numeric_limits<_Float128>,
1468 numeric_limits<__gnu_cxx::__bfloat16_t>): New explicit instantiations.
1469 * include/bits/std_abs.h (abs): New overloads for
1470 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
1471 * include/bits/c++config (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128): Define
1472 if long double is IEEE quad.
1473 (__gnu_cxx::__bfloat16_t): New using.
1474 * include/c_global/cmath (acos, asin, atan, atan2, ceil, cos, cosh,
1475 exp, fabs, floor, fmod, frexp, ldexp, log, log10, modf, pow, sin,
1476 sinh, sqrt, tan, tanh, fpclassify, isfinite, isinf, isnan, isnormal,
1477 signbit, isgreater, isgreaterequal, isless, islessequal,
1478 islessgreater, isunordered, acosh, asinh, atanh, cbrt, copysign, erf,
1479 erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma,
1480 llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
1481 nextafter, remainder, rint, round, scalbln, scalbn, tgamma, trunc,
1482 lerp): New overloads with _Float{16,32,64,128} or
1483 __gnu_cxx::__bfloat16_t types.
1484 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
1485 Prepare for definition if glibc 2.26 and later implements *f128 APIs
1486 but comment out the actual definition for now.
1487 * include/ext/type_traits.h (__promote<_Float16>, __promote<_Float32>,
1488 __promote<_Float64>, __promote<_Float128>,
1489 __promote<__gnu_cxx::__bfloat16_t>): New specializations.
1490 * include/Makefile.am (std_headers): Add stdfloat.
1491 * include/Makefile.in: Regenerated.
1492 * include/precompiled/stdc++.h: Include stdfloat.
1493 * testsuite/18_support/headers/stdfloat/types_std.cc: New test.
1494 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: New test.
1495 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc:
1497 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: New test.
1498 * testsuite/26_numerics/numbers/4.cc: New test.
1499 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc: New test.
1501 2022-10-17 Jonathan Wakely <jwakely@redhat.com>
1503 * include/std/charconv (__cpp_lib_constexpr_charconv): Define to
1505 * include/std/version (__cpp_lib_constexpr_charconv): Likewise.
1506 * testsuite/20_util/to_chars/constexpr.cc: Check correct value.
1507 * testsuite/20_util/to_chars/version.cc: Likewise.
1509 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
1511 * src/c++11/debug.cc (print_raw): Move inside #if block.
1513 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
1515 * include/bits/charconv.h (__to_chars_10_impl): Add constexpr
1516 for C++23. Remove 'static' from array.
1517 * include/std/charconv (__cpp_lib_constexpr_charconv): Define.
1518 (__to_chars, __to_chars_16): Remove 'static' from array, add
1520 (__to_chars_10, __to_chars_8, __to_chars_2, __to_chars_i)
1521 (to_chars, __raise_and_add, __from_chars_pow2_base)
1522 (__from_chars_alnum, from_chars): Add constexpr.
1523 (__from_chars_alnum_to_val): Avoid local static during constant
1524 evaluation. Add constexpr.
1525 * include/std/version (__cpp_lib_constexpr_charconv): Define.
1526 * testsuite/20_util/from_chars/constexpr.cc: New test.
1527 * testsuite/20_util/to_chars/constexpr.cc: New test.
1528 * testsuite/20_util/to_chars/version.cc: New test.
1530 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
1532 * include/bits/stl_map.h (map::insert(Pair&&)): Use
1533 remove_const_t on argument to __is_pair.
1534 * include/bits/stl_pair.h (__is_pair<const pair<T,U>>): Remove
1535 partial specialization.
1536 * include/bits/uses_allocator_args.h (_Std_pair): Use
1537 remove_cv_t as per LWG 3677.
1538 * testsuite/20_util/uses_allocator/lwg3677.cc: New test.
1540 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
1542 * libsupc++/eh_alloc.cc [USE_POOL]: New macro.
1543 [!USE_POOL] (__gnu_cxx::__freeres, pool): Do not define.
1544 [_GLIBCXX_EH_POOL_STATIC] (pool::arena): Do not use std::max.
1545 (__cxxabiv1::__cxa_allocate_exception) [!USE_POOL]: Do not use
1547 (__cxxabiv1::__cxa_free_exception) [!USE_POOL]: Likewise.
1548 (__cxxabiv1::__cxa_allocate_dependent_exception) [!USE_POOL]:
1550 (__cxxabiv1::__cxa_free_dependent_exception) [!USE_POOL]:
1553 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
1555 * src/c++11/debug.cc (print_raw): Simplify.
1556 (print_word): Print indentation by calling fprintf directly.
1557 (_Error_formatter::_M_error): Print unindented string by calling
1560 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
1562 * include/std/iostream: Use markdown in Doxygen comment.
1564 2022-10-12 François Dumont <fdumont@gcc.gnu.org>
1566 * include/debug/string: Add using _Base::compare.
1567 (__gnu_debug::basic_string<>::compare(const basic_string<>&)): Remove.
1568 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&)):
1570 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&,
1571 size_type, size_type)): Remove.
1572 * testsuite/util/testsuite_string.h [_GLIBCXX_TEST_DEBUG_STRING]: Include <debug/string>.
1573 * testsuite/21_strings/basic_string/operations/compare/char/1.cc: Include testsuite_string.h
1574 and use __gnu_test::string.
1575 * testsuite/21_strings/basic_string/operations/compare/char/13650.cc: Likewise.
1576 * testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise.
1577 * testsuite/21_strings/basic_string/operations/rfind/char/1.cc: Likewise.
1578 * testsuite/21_strings/basic_string/operations/rfind/char/2.cc: Likewise.
1579 * testsuite/21_strings/basic_string/operations/rfind/char/3.cc: Likewise.
1580 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
1581 Include testsuite_string.h
1582 and use __gnu_test::wstring.
1583 * testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc: Likewise.
1584 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise.
1586 2022-10-12 Patrick Palka <ppalka@redhat.com>
1588 * include/std/ranges (repeat_view): Define.
1589 (repeat_view::_Iterator): Define.
1590 (views::__detail::__can_repeat_view): Define.
1591 (views::__detail::__can_bounded_repeat_view): Define.
1592 (views::_Repeat, views::repeat): Define.
1593 * testsuite/std/ranges/repeat/1.cc: New test.
1595 2022-10-12 Martin Liska <mliska@suse.cz>
1597 * configure: Regenerate.
1599 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
1602 * libsupc++/eh_alloc.cc (pool): Change preprocessor condition
1603 for using __mutex from __GTHREADS to _GLIBCXX_HOSTED.
1604 (pool::allocate): Remove namespace qualification to use
1605 pool::__scoped_lock instead of __gnu_cxx::__scoped_lock.
1607 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
1610 * Makefile.in: Regenerate.
1611 * acinclude.m4 (GLIBCXX_EMERGENCY_EH_ALLOC): New macro.
1612 * configure: Regenerate.
1613 * configure.ac: Use GLIBCXX_EMERGENCY_EH_ALLOC.
1614 * crossconfig.m4: Check for secure_getenv.
1615 * doc/Makefile.in: Regenerate.
1616 * doc/xml/manual/configure.xml: Document new configure options.
1617 * doc/xml/manual/evolution.xml: Document addition of tunables.
1618 * doc/xml/manual/using_exceptions.xml: Document emergency
1619 buffer and tunables.
1620 * doc/html/*: Regenerate.
1621 * include/Makefile.in: Regenerate.
1622 * libsupc++/Makefile.am: Use EH_POOL_FLAGS.
1623 * libsupc++/Makefile.in: Regenerate.
1624 * libsupc++/eh_alloc.cc (EMERGENCY_OBJ_SIZE): Define in units
1625 of sizeof(void*) not including the ABI's exception header.
1626 (EMERGENCY_OBJ_COUNT): Define as target-independent calculation
1628 (MAX_OBJ_COUNT): Define macro for upper limit on pool size.
1629 (pool) [_GLIBCXX_EH_POOL_STATIC]: Use fixed-size buffer.
1630 (pool::buffer_size_in_bytes): New static member function.
1631 (pool::pool): Parse GLIBCXX_TUNABLES environment variable to set
1632 pool size at runtime.
1633 (pool::in_pool): Use std::less<void*> for total order.
1634 (__freeres) [_GLIBCXX_EH_POOL_STATIC]: Do nothing.
1635 (__cxa_free_exception, __cxa_free_dependent_exception): Add
1636 [[unlikely]] attributes.
1637 * po/Makefile.in: Regenerate.
1638 * python/Makefile.in: Regenerate.
1639 * src/Makefile.in: Regenerate.
1640 * src/c++11/Makefile.in: Regenerate.
1641 * src/c++17/Makefile.in: Regenerate.
1642 * src/c++20/Makefile.in: Regenerate.
1643 * src/c++98/Makefile.in: Regenerate.
1644 * src/filesystem/Makefile.in: Regenerate.
1645 * src/libbacktrace/Makefile.in: Regenerate.
1646 * testsuite/Makefile.in: Regenerate.
1648 2022-10-11 Olivier Hainque <hainque@adacore.com>
1649 Olivier Hainque <hainque@adacore.com>
1651 * configure: Regenerate.
1653 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
1655 * include/std/type_traits (make_signed, make_unsigned): Remove
1656 constraints on primary template.
1657 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1658 Undo changes to expected error in C++20 mode.
1659 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1661 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1663 * testsuite/20_util/make_signed/requirements/uninstantiated.cc:
1665 * testsuite/20_util/make_unsigned/requirements/uninstantiated.cc:
1668 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
1670 * include/std/type_traits (make_signed, make_unsigned): Add
1671 specializations for cv bool. Add requires-clause for C++20 to
1672 improve diagnostics for non-integral, non-enum cases.
1673 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1675 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1677 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1678 Adjust expected errors for C++20 and later.
1679 * testsuite/lib/prune.exp: Prune "in requirements [with ...]"
1680 lines from diagnostics.
1682 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
1684 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Add libstdcxx-hosted
1685 enable arg as an alias for hosted-libstdcxx enable arg.
1686 * configure: Regenerate.
1688 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
1690 * include/bits/std_function.h: Include <new> but do not include
1691 <bits/stl_function.h>.
1692 * include/std/functional: Do not include <new>.
1694 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
1696 * doc/xml/manual/intro.xml: Add role="bold" attribute to
1697 emphasis elements for issue titles.
1698 * doc/html/manual/bugs.html: Regenerate.
1700 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
1702 * include/Makefile.in: Regenerate.
1704 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
1706 * include/bits/invoke.h (__invoke_r): Check
1707 __has_builtin(__reference_converts_from_temporary) before using
1710 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1712 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
1714 (test04): Remove constexpr for old std::string ABI and test at
1717 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1719 * include/std/type_traits (remove_cv): Use __remove_cv built-in.
1720 (remove_reference): Use __remove_reference built-in.
1721 (remove_cvref): Use __remove_cvref built-in. Remove inheritance
1722 for fallback implementation.
1724 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1726 * include/bits/random.h (__is_seed_seq): Replace with ...
1727 (_If_seed_seq_for): ... this.
1728 * include/ext/random: Adjust to use _If_seed_seq_for.
1730 2022-10-04 Patrick Palka <ppalka@redhat.com>
1732 * include/std/ranges (join_with_view::_Iterator::operator*):
1733 Replace use of std::visit with manual visitation.
1734 (join_with_view::_Iterator::operator++): Likewise.
1735 (join_with_view::_Iterator::operator--): Likewise.
1736 (join_with_view::_Iterator::iter_move): Likewise.
1737 (join_with_view::_Iterator::iter_swap): Likewise.
1739 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1741 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
1744 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1747 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
1750 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1753 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
1754 <stdint-gcc.h> directly.
1756 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1759 * include/bits/functexcept.h [!_GLIBCXX_HOSTED]
1760 (__throw_invalid_argument, __throw_out_of_range)
1761 (__throw_out_of_range_fmt, __throw_runtime_error)
1762 (__throw_overflow_error): Define inline.
1763 * include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]:
1764 Replace __builtin_abort with __throw_invalid_argument.
1766 2022-10-04 Patrick Palka <ppalka@redhat.com>
1768 * include/std/ranges: Include <variant> for C++23.
1769 (__detail::__compatible_joinable_ranges): Define.
1770 (__detail::__bidirectional_common): Define.
1771 (join_with_view): Define.
1772 (join_with_view::_Iterator): Define.
1773 (join_with_view::_Sentinel): Define.
1774 (views::__detail::__can_join_with_view): Define.
1775 (views::_JoinWith, views::join_with): Define.
1776 * testsuite/std/ranges/adaptors/join_with/1.cc: New test.
1778 2022-10-04 Arsen Arsenović <arsen@aarsen.me>
1780 * include/std/iostream: Use ///< for inline documentation.
1781 * include/std/limits: Likewise.
1782 * include/experimental/internet: Likewise.
1784 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1786 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
1787 * doc/html/manual/status.html: Regenerate.
1789 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
1792 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
1794 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
1795 * testsuite/18_support/new_nothrow.cc: Likewise.
1796 * testsuite/20_util/allocator/105975.cc: Likewise.
1797 * testsuite/20_util/allocator/14176.cc: Likewise.
1798 * testsuite/20_util/allocator/64135.cc: Likewise.
1799 * testsuite/20_util/allocator/89510.cc: Likewise.
1800 * testsuite/20_util/allocator/lwg3190.cc: Likewise.
1801 * testsuite/20_util/allocator/overaligned.cc: Likewise.
1802 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
1803 * testsuite/20_util/allocator/requirements/constexpr.cc:
1805 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
1807 * testsuite/20_util/allocator/requirements/typedefs.cc:
1809 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
1811 * testsuite/20_util/allocator/void.cc: Likewise.
1812 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
1813 * testsuite/20_util/allocator_traits/header.cc: Likewise.
1814 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
1816 * testsuite/20_util/allocator_traits/members/pointers.cc:
1818 * testsuite/20_util/allocator_traits/requirements/typedefs.cc:
1820 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
1822 * testsuite/20_util/bind/42593.cc: Likewise.
1823 * testsuite/20_util/bitset/access/dr396.cc: Likewise.
1824 * testsuite/20_util/bitset/access/to_string.cc: Likewise.
1825 * testsuite/20_util/bitset/cons/16020.cc: Likewise.
1826 * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
1827 * testsuite/20_util/bitset/cons/dr396.cc: Likewise.
1828 * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
1829 * testsuite/20_util/bitset/ext/15361.cc: Likewise.
1830 * testsuite/20_util/bitset/operations/13838.cc: Likewise.
1831 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
1832 * testsuite/20_util/bitset/version.cc: Likewise.
1833 * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
1834 * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
1835 * testsuite/20_util/enable_shared_from_this/members/assign.cc:
1837 * testsuite/20_util/enable_shared_from_this/members/const.cc:
1839 * testsuite/20_util/enable_shared_from_this/members/reinit.cc:
1841 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
1843 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1845 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
1847 * testsuite/20_util/forward/1.cc: Likewise.
1848 * testsuite/20_util/forward/1_neg.cc: Likewise.
1849 * testsuite/20_util/function/1.cc: Likewise.
1850 * testsuite/20_util/function/10.cc: Likewise.
1851 * testsuite/20_util/function/2.cc: Likewise.
1852 * testsuite/20_util/function/3.cc: Likewise.
1853 * testsuite/20_util/function/4.cc: Likewise.
1854 * testsuite/20_util/function/43397.cc: Likewise.
1855 * testsuite/20_util/function/48541.cc: Likewise.
1856 * testsuite/20_util/function/5.cc: Likewise.
1857 * testsuite/20_util/function/58569.cc: Likewise.
1858 * testsuite/20_util/function/6.cc: Likewise.
1859 * testsuite/20_util/function/60594.cc: Likewise.
1860 * testsuite/20_util/function/65760.cc: Likewise.
1861 * testsuite/20_util/function/69222.cc: Likewise.
1862 * testsuite/20_util/function/7.cc: Likewise.
1863 * testsuite/20_util/function/77322.cc: Likewise.
1864 * testsuite/20_util/function/8.cc: Likewise.
1865 * testsuite/20_util/function/9.cc: Likewise.
1866 * testsuite/20_util/function/91456.cc: Likewise.
1867 * testsuite/20_util/function/assign/move.cc: Likewise.
1868 * testsuite/20_util/function/assign/move_target.cc: Likewise.
1869 * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
1870 * testsuite/20_util/function/cons/55320.cc: Likewise.
1871 * testsuite/20_util/function/cons/57465.cc: Likewise.
1872 * testsuite/20_util/function/cons/72820.cc: Likewise.
1873 * testsuite/20_util/function/cons/addressof.cc: Likewise.
1874 * testsuite/20_util/function/cons/callable.cc: Likewise.
1875 * testsuite/20_util/function/cons/deduction.cc: Likewise.
1876 * testsuite/20_util/function/cons/lwg2774.cc: Likewise.
1877 * testsuite/20_util/function/cons/move.cc: Likewise.
1878 * testsuite/20_util/function/cons/move_target.cc: Likewise.
1879 * testsuite/20_util/function/cons/noexcept.cc: Likewise.
1880 * testsuite/20_util/function/cons/non_copyconstructible.cc:
1882 * testsuite/20_util/function/cons/refqual.cc: Likewise.
1883 * testsuite/20_util/function/cons/70692.cc: Likewise.
1884 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
1885 * testsuite/20_util/function/invoke/forwarding.cc: Likewise.
1886 * testsuite/20_util/function/invoke/move_only.cc: Likewise.
1887 * testsuite/20_util/function/null_pointer_comparisons.cc:
1889 * testsuite/20_util/function/requirements/explicit_instantiation.cc:
1891 * testsuite/20_util/function/target_no_rtti.cc: Likewise.
1892 * testsuite/20_util/function_objects/83607.cc: Likewise.
1893 * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
1894 * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise.
1895 * testsuite/20_util/headers/functional/types_std_c++0x.cc:
1897 * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
1898 * testsuite/20_util/is_function/35637.cc: Likewise.
1899 * testsuite/20_util/move/1.cc: Likewise.
1900 * testsuite/20_util/move_only_function/call.cc: Likewise.
1901 * testsuite/20_util/move_only_function/cons.cc: Likewise.
1902 * testsuite/20_util/move_only_function/move.cc: Likewise.
1903 * testsuite/20_util/move_only_function/version.cc: Likewise.
1904 * testsuite/20_util/owner_less/cmp.cc: Likewise.
1905 * testsuite/20_util/owner_less/noexcept.cc: Likewise.
1906 * testsuite/20_util/owner_less/void.cc: Likewise.
1907 * testsuite/20_util/pointer_safety/1.cc: Likewise.
1908 * testsuite/20_util/scoped_allocator/65279.cc: Likewise.
1909 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
1910 * testsuite/20_util/scoped_allocator/construct_pair.cc:
1912 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
1913 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
1915 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
1916 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1917 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1918 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1920 * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
1921 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
1922 * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise.
1923 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
1924 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc:
1926 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
1928 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
1930 * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise.
1931 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
1932 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
1933 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1934 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
1935 * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
1936 * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise.
1937 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
1938 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
1940 * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
1941 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
1942 * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
1943 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1944 * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
1945 * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
1946 * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
1947 * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
1948 * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise.
1949 * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise.
1950 * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise.
1951 * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise.
1952 * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise.
1953 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
1954 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
1955 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
1956 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1957 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1958 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
1959 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1960 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
1961 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise.
1962 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise.
1963 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
1964 * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
1966 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
1967 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
1968 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
1969 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc:
1971 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
1973 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
1975 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
1977 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1978 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
1979 * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
1980 * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc:
1982 * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise.
1983 * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise.
1984 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
1986 * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise.
1987 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
1988 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1989 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
1990 * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise.
1991 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
1992 * testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
1993 * testsuite/20_util/shared_ptr/creation/single_allocation.cc:
1995 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
1997 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
1998 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
1999 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
2000 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
2001 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
2002 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
2003 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
2004 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
2005 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
2006 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc:
2008 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
2009 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
2010 * testsuite/20_util/shared_ptr/observers/array.cc: Likewise.
2011 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
2012 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
2013 * testsuite/20_util/shared_ptr/observers/owner_before.cc:
2015 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
2016 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
2017 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
2019 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
2021 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
2023 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
2025 * testsuite/20_util/temporary_buffer.cc: Likewise.
2026 * testsuite/20_util/tuple/48476.cc: Likewise.
2027 * testsuite/20_util/tuple/cons/90700.cc: Likewise.
2028 * testsuite/20_util/tuple/cons/96803.cc: Likewise.
2029 * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise.
2030 * testsuite/20_util/tuple/cons/allocators.cc: Likewise.
2031 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
2033 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
2034 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
2035 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
2037 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
2038 * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
2039 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
2040 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
2042 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
2044 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
2045 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2046 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
2047 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
2049 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
2050 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
2051 * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
2053 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
2054 * testsuite/20_util/weak_ptr/observers/owner_before.cc:
2056 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
2058 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
2060 * testsuite/21_strings/basic_string/version.cc: Likewise.
2061 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
2063 * testsuite/21_strings/c_strings/char/69626.cc: Likewise.
2064 * testsuite/21_strings/char_traits/requirements/version.cc:
2066 * testsuite/23_containers/vector/requirements/version.cc:
2068 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
2070 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
2072 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
2074 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
2076 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise.
2077 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
2079 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
2081 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
2083 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
2085 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
2087 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
2088 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
2089 * testsuite/25_algorithms/headers/cstdlib/functions_std.cc:
2091 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
2092 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2094 * testsuite/25_algorithms/make_heap/movable.cc: Likewise.
2095 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
2096 * testsuite/25_algorithms/random_shuffle/1.cc: Likewise.
2097 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2098 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2100 * testsuite/25_algorithms/sort/35588.cc: Likewise.
2101 * testsuite/25_algorithms/stable_partition/1.cc: Likewise.
2102 * testsuite/25_algorithms/stable_partition/constrained.cc:
2104 * testsuite/25_algorithms/stable_partition/mem_check.cc:
2106 * testsuite/25_algorithms/stable_partition/moveable.cc:
2108 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
2110 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
2112 * testsuite/25_algorithms/stable_sort/1.cc: Likewise.
2113 * testsuite/26_numerics/complex/2.cc: Likewise.
2114 * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise.
2115 * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise.
2116 * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise.
2117 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise.
2118 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise.
2119 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise.
2120 * testsuite/26_numerics/headers/cstdlib/functions_std.cc:
2122 * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise.
2123 * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise.
2124 * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc:
2126 * testsuite/26_numerics/lerp/version.cc: Likewise.
2127 * testsuite/26_numerics/midpoint/version.cc: Likewise.
2128 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
2129 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
2130 * testsuite/27_io/fpos/14320-1.cc: Likewise.
2131 * testsuite/27_io/fpos/14320-2.cc: Likewise.
2132 * testsuite/27_io/fpos/14320-3.cc: Likewise.
2133 * testsuite/27_io/fpos/14320-4.cc: Likewise.
2134 * testsuite/27_io/spanstream/version.cc: Likewise.
2135 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
2136 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
2137 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
2138 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
2139 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
2140 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
2141 * testsuite/30_threads/barrier/2.cc: Likewise.
2142 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
2144 * testsuite/30_threads/jthread/version.cc: Likewise.
2145 * testsuite/30_threads/latch/2.cc: Likewise.
2146 * testsuite/30_threads/semaphore/2.cc: Likewise.
2147 * testsuite/30_threads/stop_token/2.cc: Likewise.
2148 * testsuite/abi/pr42230.cc: Likewise.
2149 * testsuite/ext/shared_ptr/1.cc: Likewise.
2150 * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise.
2151 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
2152 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
2153 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
2154 * testsuite/std/ranges/p2325.cc: Likewise.
2156 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
2158 * include/std/bitset (bitset(const C*, size_type n, C, C))
2159 [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency.
2160 (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of
2163 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
2166 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
2167 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
2169 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
2171 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
2174 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2175 Also require hosted.
2176 (check_effective_target_hosted): New proc.
2178 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
2179 Jonathan Wakely <jwakely@redhat.com>
2182 * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
2183 Do not include C headers that aren't valid for freestanding.
2184 * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
2185 Do not test tag types that aren't defined for freestanding.
2186 * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
2187 check for std::getenv and std::system for freestanding.
2188 * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]:
2189 Do not test hosted parts of the standard library.
2190 * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]:
2192 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
2194 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
2196 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
2197 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
2199 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
2201 * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise.
2202 * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise.
2203 * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise.
2205 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
2208 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
2209 install-freestanding-headers, unifying it with the usual
2211 * include/Makefile.in: Regenerate.
2213 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
2214 Jonathan Wakely <jwakely@redhat.com>
2217 * include/Makefile.am: Add new header.
2218 * include/Makefile.in: Regenerate.
2219 * include/bits/requires_hosted.h: New header.
2220 * include/experimental/algorithm: Include
2221 <bits/requires_hosted.h>.
2222 * include/experimental/any: Likewise.
2223 * include/experimental/array: Likewise.
2224 * include/experimental/buffer: Likewise.
2225 * include/experimental/chrono: Likewise.
2226 * include/experimental/deque: Likewise.
2227 * include/experimental/executor: Likewise.
2228 * include/experimental/filesystem: Likewise.
2229 * include/experimental/forward_list: Likewise.
2230 * include/experimental/functional: Likewise.
2231 * include/experimental/internet: Likewise.
2232 * include/experimental/io_context: Likewise.
2233 * include/experimental/iterator: Likewise.
2234 * include/experimental/list: Likewise.
2235 * include/experimental/map: Likewise.
2236 * include/experimental/memory: Likewise.
2237 * include/experimental/memory_resource: Likewise.
2238 * include/experimental/net: Likewise.
2239 * include/experimental/netfwd: Likewise.
2240 * include/experimental/numeric: Likewise.
2241 * include/experimental/optional: Likewise.
2242 * include/experimental/propagate_const: Likewise.
2243 * include/experimental/random: Likewise.
2244 * include/experimental/ratio: Likewise.
2245 * include/experimental/regex: Likewise.
2246 * include/experimental/scope: Likewise.
2247 * include/experimental/set: Likewise.
2248 * include/experimental/simd: Likewise.
2249 * include/experimental/socket: Likewise.
2250 * include/experimental/source_location: Likewise.
2251 * include/experimental/string: Likewise.
2252 * include/experimental/string_view: Likewise.
2253 * include/experimental/system_error: Likewise.
2254 * include/experimental/timer: Likewise.
2255 * include/experimental/tuple: Likewise.
2256 * include/experimental/unordered_map: Likewise.
2257 * include/experimental/unordered_set: Likewise.
2258 * include/experimental/utility: Likewise.
2259 * include/experimental/vector: Likewise.
2260 * include/std/barrier: Likewise.
2261 * include/std/chrono: Likewise.
2262 * include/std/condition_variable: Likewise.
2263 * include/std/deque: Likewise.
2264 * include/std/execution: Likewise.
2265 * include/std/filesystem: Likewise.
2266 * include/std/forward_list: Likewise.
2267 * include/std/fstream: Likewise.
2268 * include/std/future: Likewise.
2269 * include/std/iomanip: Likewise.
2270 * include/std/ios: Likewise.
2271 * include/std/iosfwd: Likewise.
2272 * include/std/iostream: Likewise.
2273 * include/std/istream: Likewise.
2274 * include/std/latch: Likewise.
2275 * include/std/list: Likewise.
2276 * include/std/locale: Likewise.
2277 * include/std/map: Likewise.
2278 * include/std/memory_resource: Likewise.
2279 * include/std/mutex: Likewise.
2280 * include/std/ostream: Likewise.
2281 * include/std/queue: Likewise.
2282 * include/std/random: Likewise.
2283 * include/std/regex: Likewise.
2284 * include/std/semaphore: Likewise.
2285 * include/std/set: Likewise.
2286 * include/std/shared_mutex: Likewise.
2287 * include/std/spanstream: Likewise.
2288 * include/std/sstream: Likewise.
2289 * include/std/stack: Likewise.
2290 * include/std/stacktrace: Likewise.
2291 * include/std/stop_token: Likewise.
2292 * include/std/streambuf: Likewise.
2293 * include/std/string: Likewise.
2294 * include/std/syncstream: Likewise.
2295 * include/std/system_error: Likewise.
2296 * include/std/thread: Likewise.
2297 * include/std/unordered_map: Likewise.
2298 * include/std/unordered_set: Likewise.
2299 * include/std/valarray: Likewise.
2300 * include/std/vector: Likewise.
2301 * include/tr1/array: Likewise.
2302 * include/tr1/ccomplex: Likewise.
2303 * include/tr1/cctype: Likewise.
2304 * include/tr1/cfenv: Likewise.
2305 * include/tr1/cfloat: Likewise.
2306 * include/tr1/cinttypes: Likewise.
2307 * include/tr1/climits: Likewise.
2308 * include/tr1/cmath: Likewise.
2309 * include/tr1/complex: Likewise.
2310 * include/tr1/complex.h: Likewise.
2311 * include/tr1/cstdarg: Likewise.
2312 * include/tr1/cstdbool: Likewise.
2313 * include/tr1/cstdint: Likewise.
2314 * include/tr1/cstdio: Likewise.
2315 * include/tr1/cstdlib: Likewise.
2316 * include/tr1/ctgmath: Likewise.
2317 * include/tr1/ctime: Likewise.
2318 * include/tr1/ctype.h: Likewise.
2319 * include/tr1/cwchar: Likewise.
2320 * include/tr1/cwctype: Likewise.
2321 * include/tr1/fenv.h: Likewise.
2322 * include/tr1/float.h: Likewise.
2323 * include/tr1/functional: Likewise.
2324 * include/tr1/inttypes.h: Likewise.
2325 * include/tr1/limits.h: Likewise.
2326 * include/tr1/math.h: Likewise.
2327 * include/tr1/memory: Likewise.
2328 * include/tr1/random: Likewise.
2329 * include/tr1/regex: Likewise.
2330 * include/tr1/stdarg.h: Likewise.
2331 * include/tr1/stdbool.h: Likewise.
2332 * include/tr1/stdint.h: Likewise.
2333 * include/tr1/stdio.h: Likewise.
2334 * include/tr1/stdlib.h: Likewise.
2335 * include/tr1/tgmath.h: Likewise.
2336 * include/tr1/tuple: Likewise.
2337 * include/tr1/type_traits: Likewise.
2338 * include/tr1/unordered_map: Likewise.
2339 * include/tr1/unordered_set: Likewise.
2340 * include/tr1/utility: Likewise.
2341 * include/tr1/wchar.h: Likewise.
2342 * include/tr1/wctype.h: Likewise.
2343 * include/c_global/cmath: Likewise.
2344 * include/ext/algorithm: Include <bits/requires_hosted.h>.
2345 * include/ext/bitmap_allocator.h: Likewise.
2346 * include/ext/cmath: Likewise.
2347 * include/ext/codecvt_specializations.h: Likewise.
2348 * include/ext/debug_allocator.h: Likewise.
2349 * include/ext/enc_filebuf.h: Likewise.
2350 * include/ext/extptr_allocator.h: Likewise.
2351 * include/ext/functional: Likewise.
2352 * include/ext/malloc_allocator.h: Likewise.
2353 * include/ext/memory: Likewise.
2354 * include/ext/mt_allocator.h: Likewise.
2355 * include/ext/new_allocator.h: Likewise.
2356 * include/ext/numeric: Likewise.
2357 * include/ext/pod_char_traits.h: Likewise.
2358 * include/ext/pool_allocator.h: Likewise.
2359 * include/ext/random: Likewise.
2360 * include/ext/random.tcc: Likewise.
2361 * include/ext/rb_tree: Likewise.
2362 * include/ext/rc_string_base.h: Likewise.
2363 * include/ext/rope: Likewise.
2364 * include/ext/ropeimpl.h: Likewise.
2365 * include/ext/slist: Likewise.
2366 * include/ext/sso_string_base.h: Likewise.
2367 * include/ext/stdio_filebuf.h: Likewise.
2368 * include/ext/stdio_sync_filebuf.h: Likewise.
2369 * include/ext/string_conversions.h: Likewise.
2370 * include/ext/throw_allocator.h: Likewise.
2371 * include/ext/vstring.h: Likewise.
2372 * include/ext/vstring.tcc: Likewise.
2373 * include/ext/vstring_fwd.h: Likewise.
2374 * include/ext/vstring_util.h: Likewise.
2375 * include/std/charconv: Likewise.
2376 (__cpp_lib_to_chars): Do not define for freestanding.
2377 * include/std/version: Adjust which macros get defined in
2379 * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
2380 functionality from freestanding.
2381 * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
2382 * include/std/memory [!_GLIBCXX_HOSTED]: Omit
2383 <bits/stl_tempbuf.h> in freestanding
2384 * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
2385 random_shuffle and stable_partition definition.
2386 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
2387 random_shuffle and stable_partition from freestanding.
2388 * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
2389 stable_partition from freestanding.
2390 * include/bits/concept_check.h: Remove needless HOSTED check.
2391 * include/std/iterator: Include <bits/ranges_base.h>.
2392 * include/std/numeric (__cpp_lib_parallel_algorithms): Do not
2393 define for freestanding.
2394 * include/std/functional (__cpp_lib_boyer_moore_searcher):
2396 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++
2399 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
2400 Arsen Arsenović <arsen@aarsen.me>
2402 * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not
2403 include headers that aren't valid for freestanding.
2404 * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise.
2406 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
2408 * configure.ac: Remove any lines that unconditionally include
2409 <stdio.h> from ac_includes_default, when running Autoconf <2.70.
2410 * configure: Regenerate.
2412 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
2415 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
2416 to __STDC_HOSTED__ for non-freestanding installations.
2417 * configure: Regenerate.
2418 * include/Makefile.am (${host_builddir}/c++config.h): Adjust
2420 * include/Makefile.in: Regenerate.
2421 * testsuite/lib/libstdc++.exp (v3-build_support): Use
2423 * testsuite/libstdc++-abi/abi.exp: Likewise.
2425 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
2427 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2428 Change body of unused operator<< overload to throw if called.
2429 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2432 2022-10-03 François Dumont <fdumont@gcc.gnu.org>
2434 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
2435 namespace for __cxx11 symbols.
2436 (add_one_template_type_printer): Likewise.
2437 (add_one_type_printer): Likewise.
2438 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
2439 ambiguous typedef matching both std:: and std::__cxx11:: symbols.
2440 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
2441 \#define _GLIBCXX_USE_CXX11_ABI 0.
2442 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
2444 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2445 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2446 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
2448 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2450 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2452 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
2453 from binary literal instead of using stringstream.
2455 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2457 * include/std/bitset (operator>>): Use a simple buffer instead
2458 of std::basic_string.
2460 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2462 * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string)
2463 (_M_copy_to_string): Change access to private.
2464 (_M_copy_from_string(const basic_string&, size_t, size_t)):
2466 (_M_copy_to_string(const basic_string&)): Remove.
2468 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2470 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
2473 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
2474 Yvan ROUX <yvan.roux@foss.st.com>
2476 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.
2478 2022-09-30 Arsen Arsenović <arsen@aarsen.me>
2480 * include/std/bitset: Include <bits/stl_algobase.h>.
2482 2022-09-29 François Dumont <fdumont@gcc.gnu.org>
2484 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register
2485 printer for types in std::__debug namespace with template parameters in std::__8
2488 2022-09-29 Patrick Palka <ppalka@redhat.com>
2490 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
2491 __remove_cv and use __remove_cv_t instead.
2493 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
2495 * include/std/type_traits (__is_invocable_impl): Check
2496 __has_builtin(__reference_converts_from_temporary) before using
2499 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
2501 * doc/xml/manual/evolution.xml: Document std::bind API
2503 * doc/xml/manual/intro.xml: Document LWG 2487 status.
2504 * doc/xml/manual/using.xml: Clarify default value of
2505 _GLIBCXX_USE_DEPRECATED.
2506 * doc/html/*: Regenerate.
2507 * include/std/functional (_Bind::operator()(Args&&...) volatile)
2508 (_Bind::operator()(Args&&...) const volatile)
2509 (_Bind_result::operator()(Args&&...) volatile)
2510 (_Bind_result::operator()(Args&&...) const volatile): Replace
2511 with deleted overload for C++20 and later.
2512 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
2514 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
2515 ill-formed in C++20.
2517 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
2520 * include/bits/invoke.h [__cplusplus < 201703] (__invoke_r):
2521 Remove is_invocable and is_convertible constraints.
2522 * include/std/type_traits (__is_invocable_impl::_S_conv): Use
2523 non-deduced context for parameter.
2524 (__is_invocable_impl::_S_test): Remove _Check_noex template
2525 parameter and use deduced noexcept value in its place. Add bool
2526 parameter to detect dangling references.
2527 (__is_invocable_impl::type): Adjust call to _S_test to avoid
2528 deducing unnecessary noexcept property..
2529 (__is_invocable_impl::__nothrow_type): Rename to ...
2530 (__is_invocable_impl::__nothrow_conv): ... this. Adjust call
2531 to _S_test to deduce noexcept property.
2532 * testsuite/20_util/bind/dangling_ref.cc: New test.
2533 * testsuite/20_util/function/cons/70692.cc: New test.
2534 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
2536 * testsuite/20_util/is_invocable/dangling_ref.cc: New test.
2537 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
2540 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
2543 * testsuite/20_util/is_convertible/requirements/access.cc: New
2546 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
2549 * include/bits/std_function.h (__function_guide_t): New alias
2551 [__cpp_static_call_operator] (__function_guide_static_helper):
2553 (function): Use __function_guide_t in deduction guide.
2554 * include/std/future (packaged_task): Use __function_guide_t in
2556 * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
2557 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2560 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
2562 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
2563 Also define the __ptr_traits_elem class template for the
2565 (pointer_traits<Ptr>): Remove constrained partial
2567 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
2568 ambiguitiy with program-defined partial specialization.
2570 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
2572 * include/std/type_traits (is_convertible, is_convertible_v):
2573 Define using new built-in.
2574 (is_nothrow_convertible is_nothrow_convertible_v): Likewise.
2576 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
2579 * include/std/bitset (_Base_bitset::_M_do_reset): Use
2580 preprocessor conditional around non-C++03 code.
2581 * testsuite/20_util/bitset/107037.cc: New test.
2583 2022-09-24 Jonathan Wakely <jwakely@redhat.com>
2585 * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
2586 Only instantiate is_empty if needed.
2587 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
2588 (__ptr_traits_impl::rebind): Use __detected_or.
2589 * include/experimental/type_traits (is_same_v): Add a partial
2590 specialization instead of instantiating the std::is_same class
2592 (detected_t): Redefine in terms of detected_or_t.
2593 (is_detected, is_detected_v): Redefine in terms of detected_t.
2594 * include/std/type_traits [__cpp_concepts] (__detected_or): Add
2595 new definition using concepts.
2596 (__detector::value_t): Rename to __is_detected.
2597 * testsuite/17_intro/names.cc: Check value_t isn't used.
2599 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2601 * testsuite/20_util/is_assignable/requirements/access.cc:
2604 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2607 * include/std/type_traits (__is_nothrow_invocable_lib): Remove.
2608 (__is_invocable_impl::__nothrow_type): New member type which
2609 checks if the conversion can throw.
2610 (__is_nt_invocable_impl): Replace class template with alias
2611 template to __is_nt_invocable_impl::__nothrow_type.
2612 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
2613 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
2614 macro used by value_ext.cc test.
2615 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
2616 test for non-standard __is_nothrow_invocable_lib trait.
2618 2022-09-23 Marek Polacek <polacek@redhat.com>
2621 * include/std/type_traits: Rename __is_nothrow_convertible to
2622 __is_nothrow_convertible_lib.
2623 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise.
2625 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2627 * include/std/bitset (operator>>): Do not copy for N==0.
2628 * testsuite/20_util/bitset/io/input.cc: Add comment.
2630 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2632 * include/debug/bitset (__debug::bitset): Add constexpr to all
2634 (operator&, operator|, operator^): Add inline and constexpr.
2635 (operator>>, operator<<): Add inline.
2636 * testsuite/20_util/bitset/access/constexpr.cc: Only check using
2637 constexpr std::string for the cxx11 ABI.
2638 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
2639 * testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr
2642 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2644 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
2645 instead of iterating over individual bits.
2647 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
2649 * include/std/bitset (bitset): Add constexpr for C++23. Guard
2650 members using std::string with _GLIBCXX_HOSTED.
2651 * include/std/version (__cpp_lib_constexpr_bitset): Define.
2652 * testsuite/20_util/bitset/access/constexpr.cc: New test.
2653 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test.
2654 * testsuite/20_util/bitset/count/constexpr.cc: New test.
2655 * testsuite/20_util/bitset/ext/constexpr.cc: New test.
2656 * testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test.
2657 * testsuite/20_util/bitset/version.cc: New test.
2659 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
2661 * testsuite/23_containers/bitset/18604.cc: Moved to...
2662 * testsuite/20_util/bitset/18604.cc: ...here.
2663 * testsuite/23_containers/bitset/45713.cc: Moved to...
2664 * testsuite/20_util/bitset/45713.cc: ...here.
2665 * testsuite/23_containers/bitset/to_string/dr396.cc: Moved to...
2666 * testsuite/20_util/bitset/access/dr396.cc: ...here.
2667 * testsuite/23_containers/bitset/to_string/1.cc: Moved to...
2668 * testsuite/20_util/bitset/access/to_string.cc: ...here.
2669 * testsuite/23_containers/bitset/to_ullong/1.cc: Moved to...
2670 * testsuite/20_util/bitset/access/to_ullong.cc: ...here.
2671 * testsuite/23_containers/bitset/to_ulong/1.cc: Moved to...
2672 * testsuite/20_util/bitset/access/to_ulong.cc: ...here.
2673 * testsuite/23_containers/bitset/cons/1.cc: Moved to...
2674 * testsuite/20_util/bitset/cons/1.cc: ...here.
2675 * testsuite/23_containers/bitset/cons/16020.cc: Moved to...
2676 * testsuite/20_util/bitset/cons/16020.cc: ...here.
2677 * testsuite/23_containers/bitset/cons/2.cc: Moved to...
2678 * testsuite/20_util/bitset/cons/2.cc: ...here.
2679 * testsuite/23_containers/bitset/cons/3.cc: Moved to...
2680 * testsuite/20_util/bitset/cons/3.cc: ...here.
2681 * testsuite/23_containers/bitset/cons/38244.cc: Moved to...
2682 * testsuite/20_util/bitset/cons/38244.cc: ...here.
2683 * testsuite/23_containers/bitset/cons/50268.cc: Moved to...
2684 * testsuite/20_util/bitset/cons/50268.cc: ...here.
2685 * testsuite/23_containers/bitset/cons/6282.cc: Moved to...
2686 * testsuite/20_util/bitset/cons/6282.cc: ...here.
2687 * testsuite/23_containers/bitset/cons/constexpr.cc: Moved to...
2688 * testsuite/20_util/bitset/cons/constexpr.cc: ...here.
2689 * testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to...
2690 * testsuite/20_util/bitset/cons/dr1325-1.cc: ...here.
2691 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to...
2692 * testsuite/20_util/bitset/cons/dr1325-2.cc: ...here.
2693 * testsuite/23_containers/bitset/cons/dr396.cc: Moved to...
2694 * testsuite/20_util/bitset/cons/dr396.cc: ...here.
2695 * testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to...
2696 * testsuite/20_util/bitset/debug/invalidation/1.cc: ...here.
2697 * testsuite/23_containers/bitset/ext/15361.cc: Moved to...
2698 * testsuite/20_util/bitset/ext/15361.cc: ...here.
2699 * testsuite/23_containers/bitset/hash/1.cc: Moved to...
2700 * testsuite/20_util/bitset/hash/1.cc: ...here.
2701 * testsuite/23_containers/bitset/input/1.cc: Moved to...
2702 * testsuite/20_util/bitset/io/input.cc: ...here.
2703 * testsuite/23_containers/bitset/count/6124.cc: Moved to...
2704 * testsuite/20_util/bitset/observers/6124.cc: ...here.
2705 * testsuite/23_containers/bitset/all/1.cc: Moved to...
2706 * testsuite/20_util/bitset/observers/all.cc: ...here.
2707 * testsuite/23_containers/bitset/test/1.cc: Moved to...
2708 * testsuite/20_util/bitset/observers/test.cc: ...here.
2709 * testsuite/23_containers/bitset/operations/1.cc: Moved to...
2710 * testsuite/20_util/bitset/operations/1.cc: ...here.
2711 * testsuite/23_containers/bitset/operations/13838.cc: Moved to...
2712 * testsuite/20_util/bitset/operations/13838.cc: ...here.
2713 * testsuite/23_containers/bitset/operations/2.cc: Moved to...
2714 * testsuite/20_util/bitset/operations/2.cc: ...here.
2715 * testsuite/23_containers/bitset/operations/96303.cc: Moved to...
2716 * testsuite/20_util/bitset/operations/96303.cc: ...here.
2717 * testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to...
2718 * testsuite/20_util/bitset/operations/constexpr-2.cc: ...here.
2719 * testsuite/23_containers/bitset/operations/constexpr.cc: Moved to...
2720 * testsuite/20_util/bitset/operations/constexpr.cc: ...here.
2721 * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to...
2722 * testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here.
2723 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to...
2724 * testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here.
2725 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to...
2726 * testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here.
2727 * testsuite/23_containers/headers/bitset/synopsis.cc: Moved to...
2728 * testsuite/20_util/headers/bitset/synopsis.cc: ...here.
2730 2022-09-22 François Dumont <fdumont@gcc.gnu.org>
2732 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
2733 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
2734 std::__debug::priority_queue.
2736 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2739 * testsuite/20_util/function/91456.cc: Add comment with PR
2741 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
2742 std::function checks with std::is_invocable_r checks.
2744 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2746 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
2747 unnecessary main function.
2748 * testsuite/17_intro/headers/c++2011/all_attributes.cc:
2750 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2752 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2754 * testsuite/17_intro/headers/c++2020/all_attributes.cc:
2757 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2759 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
2760 from C++11 and later.
2762 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2764 * doc/xml/manual/documentation_hacking.xml: Remove trailing
2766 * doc/xml/manual/policy_data_structures.xml: Likewise.
2768 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2770 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
2771 using-declaration for _Exit.
2773 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2775 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
2778 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2780 * include/bits/ranges_base.h: Include <initializer_list>.
2782 2022-09-20 Jonathan Wakely <jwakely@redhat.com>
2784 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
2787 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2790 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
2792 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
2793 std::allocator_traits<std::allocator<T>> specializations for
2795 * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
2796 not declare for freestanding.
2797 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
2798 Do not define for freestanding.
2799 [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
2800 buffers for freestanding.
2801 * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
2802 streambuf iterators and overloaded algorithms using them.
2803 * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
2804 define specialized overloads for std::allocator.
2805 * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
2806 (make_unique_for_overwrite, operator<<): Do not define for
2808 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
2809 Use _GLIBCXX_NOTHROW instead of throw().
2810 * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
2811 _GLIBCXX_DEBUG for freestanding.
2812 * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
2813 * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
2814 __int_traits if <ext/numeric_traits.h> is available.
2815 * include/std/functional [!_GLIBCXX_HOSTED]: Do not include
2816 headers that aren't valid for freestanding.
2817 (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
2818 define for freestanding.
2819 * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
2820 headers that aren't valid for freestanding.
2821 * include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
2822 * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
2823 define for freestanding.
2824 (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
2825 Do not define partial specialization for freestanding.
2827 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2829 * include/bits/alloc_traits.h (__alloc_swap)
2830 (__shrink_to_fit_aux): Move here, from ...
2831 * include/bits/allocator.h: ... here.
2832 * include/ext/alloc_traits.h: Do not include allocator.h.
2834 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2836 * include/bits/stl_algo.h: Include <bits/stl_algobase.h>.
2837 * include/bits/stl_tempbuf.h: Include headers for __try and
2838 __catch macros, std::pair, and __gnu_cxx::__numeric_traits.
2839 * include/bits/stream_iterator.h: Include <iosfwd> and headers
2840 for std::addressof and std::iterator.
2841 * include/bits/streambuf_iterator.h: Include header for
2843 * include/std/iterator: Do not include <iosfwd>.
2845 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2847 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
2848 Store value with non-zero padding bits after construction.
2850 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2852 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
2853 (__detail::_Adaptor::_M_g): Make public.
2854 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial
2856 (variate_generate::_Value): New helper to simplify handling of
2857 _Engine* and _Engine& template arguments.
2858 (variate_generate::engine_value_type): Define to underlying
2859 engine type, not adapted type.
2860 (variate_generate::engine()): Return underlying engine instead
2862 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
2864 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
2865 Check member typedefs have the correct types.
2867 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2869 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
2870 (_Error_formatter): Use 0 as null pointer constant.
2872 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2874 * include/bits/allocator.h (__alloc_neq): Remove.
2875 * include/bits/stl_list.h (list::_M_check_equal_allocators):
2876 Compare allocators directly, without __alloc_neq.
2878 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2880 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
2881 * include/bits/allocator.h: Fix nesting of Doxygen commands.
2883 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
2885 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and
2886 GLIBCXX_3.4.31 versions.
2887 * doc/html/manual/abi.html: Regenerate.
2889 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
2891 * include/std/memory: Do not include <bits/stl_algobase.h>.
2893 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
2895 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
2897 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
2898 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
2899 try_lock_failed flag
2900 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
2901 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
2902 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
2903 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
2904 (_Sp_atomic::_Atomic_count::lock): Use new macros.
2906 2022-09-15 Patrick Palka <ppalka@redhat.com>
2908 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
2910 * include/bits/ranges_util.h: ... here.
2911 * include/std/ranges (chunk_by_view): Define.
2912 (chunk_by_view::_Iterator): Define.
2913 (__detail::__can_chunk_by_view): Define.
2914 (_ChunkBy, chunk_by): Define.
2915 * testsuite/std/ranges/adaptors/chunk_by/1.cc: New test.
2917 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
2919 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
2920 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.
2922 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
2924 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
2927 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2929 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
2930 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
2931 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
2932 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
2933 Define macros for TSan annotation functions.
2934 (_Sp_atomic::_Atomic_count): Add annotations.
2936 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2938 * include/bits/stl_tempbuf.h: Include <new>.
2940 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2942 * testsuite/17_intro/names.cc: Explain why poison pragma can't
2945 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2947 * include/std/future
2948 (_State_baseV2::__setter(exception_ptr&, promise&)): Add
2949 assertion for LWG 2276 precondition.
2950 * testsuite/30_threads/promise/members/set_exception_neg.cc:
2953 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2955 * doc/xml/manual/intro.xml: Document LWG 1203.
2956 * doc/html/*: Regenerate.
2958 2022-09-14 Philipp Fent <fent@in.tum.de>
2960 * python/libstdcxx/v6/printers.py (access_streambuf_ptrs):
2961 New helper function.
2962 (StdStringBufPrinter, StdStringStreamPrinter): New printers.
2963 (build_libstdcxx_dictionary): Register stringstream printers.
2964 * testsuite/libstdc++-prettyprinters/debug.cc: Check string
2966 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
2967 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2969 2022-09-13 Patrick Palka <ppalka@redhat.com>
2971 * include/std/ranges (__detail::__slide_caches_nothing): Define.
2972 (__detail::__slide_caches_last): Define.
2973 (__detail::__slide_caches_first): Define.
2974 (slide_view): Define.
2975 (enable_borrowed_range<slide_view>): Define.
2976 (slide_view::_Iterator): Define.
2977 (slide_view::_Sentinel): Define.
2978 (views::__detail::__can_slide_view): Define.
2979 (views::_Slide, views::slide): Define.
2980 * testsuite/std/ranges/adaptors/slide/1.cc: New test.
2982 2022-09-13 Patrick Palka <ppalka@redhat.com>
2984 * include/std/ranges (__detail::__div_ceil): Define.
2985 (chunk_view): Define.
2986 (chunk_view::_OuterIter): Define.
2987 (chunk_view::_OuterIter::value_type): Define.
2988 (chunk_view::_InnerIter): Define.
2989 (chunk_view<_Vp>): Define partial specialization for forward
2991 (enable_borrowed_range<chunk_view>): Define.
2992 (chunk_view<_Vp>::_Iterator): Define.
2993 (views::__detail::__can_chunk_view): Define.
2994 (views::_Chunk, views::chunk): Define.
2995 * testsuite/std/ranges/adaptors/chunk/1.cc: New test.
2997 2022-09-13 Patrick Palka <ppalka@redhat.com>
2999 * include/std/ranges (join_view::_Iterator::_M_satisfy):
3000 Adjust resetting _M_inner as per LWG 3569.
3001 (join_view::_Iterator::_M_inner): Wrap in std::optional
3003 (join_view::_Iterator::_Iterator): Relax constraints as
3005 (join_view::_Iterator::operator*): Adjust as per LWG 3569.
3006 (join_view::_Iterator::operator->): Likewise.
3007 (join_view::_Iterator::operator++): Likewise.
3008 (join_view::_Iterator::operator--): Likewise.
3009 (join_view::_Iterator::iter_move): Likewise.
3010 (join_view::_Iterator::iter_swap): Likewise.
3011 * testsuite/std/ranges/adaptors/join.cc (test14): New test.
3013 2022-09-13 Patrick Palka <ppalka@redhat.com>
3015 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
3016 Add parentheses to avoid -Wparentheses warning.
3018 2022-09-12 Patrick Palka <ppalka@redhat.com>
3021 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
3023 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
3025 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
3027 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
3030 2022-09-12 Jakub Jelinek <jakub@redhat.com>
3032 PR tree-optimization/105329
3033 * acinclude.m4 (libtool_VERSION): Change to 6:31:0.
3034 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
3035 std::basic_string methods with name length of 15.
3036 (GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
3037 * testsuite/util/testsuite_abi.cc (check_version): Handle
3039 * include/bits/basic_string.h (std::basic_string::_M_replace_cold):
3041 * include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
3042 Define and export even for C++20.
3043 (std::basic_string::_M_replace): Use __builtin_expect, outline
3044 the overlapping case to _M_replace_cold.
3045 * configure: Regenerated.
3047 2022-09-09 Jonathan Wakely <jwakely@redhat.com>
3049 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
3050 Rename __weak to __is_weak.
3051 * testsuite/17_intro/names.cc: Add __weak and __strong.
3053 2022-09-09 Patrick Palka <ppalka@redhat.com>
3056 * include/std/ranges (views::_ZipTransform::operator()): Correct
3057 return type in the empty case.
3058 (views::_AdjacentTransform::operator()): Likewise.
3060 2022-09-09 Patrick Palka <ppalka@redhat.com>
3063 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
3065 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.
3067 2022-09-09 Patrick Palka <ppalka@redhat.com>
3070 * include/std/ranges (zip_view::_Iterator::operator-): Use
3071 __to_unsigned_like instead of make_unsigned_t.
3072 (zip_view::_Sentinel::operator-): Likewise.
3073 * testsuite/std/ranges/zip/1.cc (test04): New test.
3075 2022-09-08 François Dumont <fdumont@gcc.gnu.org>
3077 * testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New.
3078 (__gnu_test::malloc_info): New, replace mallinfo on current platform
3079 supporting it and use mallinfo2 when glibc >= 2.33.
3081 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
3084 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
3085 Prune additional errors from front-end.
3086 * testsuite/20_util/is_move_constructible/incomplete_neg.cc:
3088 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
3090 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
3092 * testsuite/20_util/is_swappable_with/incomplete_neg.cc:
3095 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
3097 * include/c_global/cstddef (byte): Add always_inline attribute
3098 to all operator overloads.
3099 (to_integer): Add always_inline attribute.
3101 2022-09-08 Thomas Rodgers <trodgers@redhat.com>
3102 Jakub Jelinek <jakub@redhat.com>
3103 Jonathan Wakely <jwakely@redhat.com>
3105 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
3107 (__atomic_impl::clear_padding): Likewise.
3108 (__atomic_impl::__compare_exchange): Likewise.
3109 (__atomic_impl::compare_exchange_weak): Delegate to
3111 (__atomic_impl::compare_exchange_strong): Likewise.
3112 * include/std/atomic (atomic<T>::atomic(T)): Clear padding when
3113 possible in a constexpr function.
3114 (atomic::store): Clear padding.
3115 (atomic::exchange): Likewise.
3116 (atomic::compare_exchange_weak): Use __compare_exchange.
3117 (atomic::compare_exchange_strong): Likewise.
3118 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: New
3120 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
3123 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
3125 * include/std/system_error (__adl_only::make_error_code): Add
3127 (__adl_only::make_error_condition): Likewise.
3128 (error_code::error_code(ErrorCodeEnum)): Add using-declaration
3129 for deleted function.
3130 (error_condition::error_condition(ErrorConditionEnum)):
3132 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
3133 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
3135 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
3137 * include/std/barrier: Add missing runtime exception.
3139 2022-09-07 Patrick Palka <ppalka@redhat.com>
3141 * include/std/type_traits (is_reference): Make the primary
3142 template derive from false_type. Define two partial
3143 specializations that derive from true_type.
3145 2022-09-07 Patrick Palka <ppalka@redhat.com>
3147 * include/std/type_traits (__is_void_helper): Remove.
3148 (is_void): Make the primary template derive from false_type,
3149 and define four explicit specializations that derive from
3151 (__is_null_pointer_helper, is_null_pointer): Likewise.
3153 2022-09-07 Jason Merrill <jason@redhat.com>
3155 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
3156 call in simple success case.
3158 2022-09-06 Philipp Fent <fent@in.tum.de>
3160 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
3162 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
3164 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
3166 * include/std/type_traits (__success_type, __failure_type): Move
3167 definitions later in the file.
3169 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
3171 * include/std/type_traits (is_trivial_v, is_trivially_copyable_v)
3172 (is_standard_layout_v, is_pod_v, is_literal_type_v): Use
3173 built-in instead of class template.
3174 (is_same_v): Add partial specialization for true case.
3176 2022-09-02 Patrick Palka <ppalka@redhat.com>
3178 * include/std/tuple (tuple::_UseOtherCtor): Use ::type when
3179 deriving from __and_, __or_ or __not_.
3180 * include/std/type_traits (negation): Likewise.
3181 (is_unsigned): Likewise.
3182 (__is_implicitly_default_constructible): Likewise.
3183 (is_trivially_destructible): Likewise.
3184 (__is_nt_invocable_impl): Likewise.
3186 2022-09-02 Jonathan Wakely <jwakely@redhat.com>
3188 * include/std/type_traits (is_constructible_v)
3189 (is_default_constructible_v, is_copy_constructible_v)
3190 (is_move_constructible_v): Define using __is_constructible.
3191 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v):
3192 Define using __is_assignable.
3193 (is_trivially_constructible_v)
3194 (is_trivially_default_constructible_v)
3195 (is_trivially_copy_constructible_v)
3196 (is_trivially_move_constructible_v): Define using
3197 __is_trivially_constructible.
3198 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
3199 (is_trivially_move_assignable_v): Define using
3200 __is_trivially_assignable.
3201 (is_nothrow_constructible_v)
3202 (is_nothrow_default_constructible_v)
3203 (is_nothrow_copy_constructible_v)
3204 (is_nothrow_move_constructible_v): Define using
3205 __is_nothrow_constructible.
3206 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
3207 (is_nothrow_move_assignable_v): Define using
3208 __is_nothrow_assignable.
3210 2022-09-02 Patrick Palka <ppalka@redhat.com>
3212 * include/std/type_traits (__or_, __and_, __not_): Redefine as a
3213 class template instead of as an alias template.
3214 * testsuite/20_util/logical_traits/requirements/short_circuit.cc:
3215 Add more tests for conjunction and disjunction. Add corresponding
3216 tests for __and_ and __or_.
3218 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3220 * include/std/ranges (adjacent_transform_view::_Iterator): Add
3221 typename keyword before dependent qualified-id.
3223 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3225 * include/std/type_traits (__is_referenceable): Remove.
3226 (__add_lvalue_reference_helper, __add_rvalue_reference_helper):
3227 Use __void_t instead of __is_referenceable.
3228 (__add_pointer_helper): Likewise.
3229 (add_pointer): Add partial specializations for reference types.
3231 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3233 * include/std/type_traits (__is_constructible_impl): Replace
3234 class template with alias template.
3235 (is_default_constructible, is_nothrow_constructible)
3236 (is_nothrow_constructible): Simplify base-specifier.
3237 (__is_copy_constructible_impl, __is_move_constructible_impl)
3238 (__is_nothrow_copy_constructible_impl)
3239 (__is_nothrow_move_constructible_impl): Remove class templates.
3240 (is_copy_constructible, is_move_constructible)
3241 (is_nothrow_constructible, is_nothrow_default_constructible)
3242 (is_nothrow_copy_constructible, is_nothrow_move_constructible):
3243 Adjust base-specifiers to use __is_constructible_impl.
3244 (__is_copy_assignable_impl, __is_move_assignable_impl)
3245 (__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl):
3246 Remove class templates.
3247 (__is_assignable_impl): New alias template.
3248 (is_assignable, is_copy_assignable, is_move_assignable):
3249 Adjust base-specifiers to use new alias template.
3250 (is_nothrow_copy_assignable, is_nothrow_move_assignable):
3251 Adjust base-specifiers to use existing alias template.
3252 (__is_trivially_constructible_impl): New alias template.
3253 (is_trivially_constructible, is_trivially_default_constructible)
3254 (is_trivially_copy_constructible)
3255 (is_trivially_move_constructible): Adjust base-specifiers to use
3257 (__is_trivially_assignable_impl): New alias template.
3258 (is_trivially_assignable, is_trivially_copy_assignable)
3259 (is_trivially_move_assignable): Adjust base-specifier to use
3261 (__add_lval_ref_t, __add_rval_ref_t): New alias templates.
3262 (add_lvalue_reference, add_rvalue_reference): Use new alias
3265 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3267 * include/std/type_traits (__decay_selector): Add partial
3268 specializations for array types. Only check for function types
3269 when not dealing with an array.
3270 (decay): Add partial specializations for reference types.
3272 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3274 * include/std/type_traits (is_lvalue_reference_v)
3275 (is_rvalue_reference_v, is_reference_v, is_const_v)
3276 (is_volatile_v): Define using partial specializations instead
3277 of instantiating class templates.
3279 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3281 * include/std/type_traits (is_enum_v, is_class_v, is_union_v)
3282 (is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v)
3283 (is_base_of_v, is_aggregate_v): Use built-in directly instead of
3284 instantiating class template.
3286 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3288 * include/std/type_traits (is_scoped_enum): Remove workaround.
3290 2022-09-01 Patrick Palka <ppalka@redhat.com>
3292 * include/std/ranges (__detail::__unarize): Define.
3293 (adjacent_view::_Iterator): Befriend adjacent_transform_view.
3294 (adjacent_transform_view): Define.
3295 (adjacent_transform_view::_Iterator): Define.
3296 (adjacent_transform_view::_Sentinel): Define.
3297 (views::__detail::__can_adjacent_transform_view): Define.
3298 (views::_AdjacentTransform): Define.
3299 (views::adjacent_transform): Define.
3300 (views::pairwise_transform): Define.
3301 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test.
3303 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3305 * include/std/type_traits (__is_array_known_bounds): Add partial
3306 specialization instead of using std::extent.
3307 (__is_array_unknown_bounds): Likewise.
3308 (extent): Add partial specializations to stop recursion after
3309 the result is found.
3310 (is_array_v): Add partial specializations instead of
3311 instantiating the class template.
3312 (rank_v, extent_v): Likewise.
3313 (is_bounded_array_v, is_unbounded_array_v): Likewise.
3314 (is_bounded_array, is_unbounded_array): Define in terms of the
3317 2022-08-31 Patrick Palka <ppalka@redhat.com>
3319 * include/bits/ranges_base.h (__advance_fn::operator()): Add
3320 parentheses in assert condition to avoid -Wparentheses warning.
3321 * include/std/ranges: (take_view::take_view): Uglify 'base'.
3322 (take_while_view::take_while_view): Likewise.
3323 (elements_view::elements_view): Likewise.
3324 (views::_Zip::operator()): Adjust position of [[nodiscard]] for
3325 compatibility with -fconcepts-ts.
3326 (zip_transform_view::_Sentinel): Uglify 'OtherConst'.
3327 (views::_ZipTransform::operator()): Adjust position of
3328 [[nodiscard]] for compatibilty with -fconcepts-ts.
3330 2022-08-31 Martin Liska <mliska@suse.cz>
3332 * configure: Regenerate.
3333 * crossconfig.m4: Remove deprecated ports.
3335 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
3337 * include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11.
3338 * include/debug/string: Likewise.
3339 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string.
3340 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise.
3341 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise.
3342 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise.
3343 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise.
3344 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise..
3346 2022-08-31 Patrick Palka <ppalka@redhat.com>
3348 * include/std/ranges (adjacent_view): Define.
3349 (enable_borrowed_range<adjacent_view>): Define.
3350 (__detail::__repeated_tuple): Define.
3351 (adjacent_view::_Iterator): Define.
3352 (adjacent_view::_Sentinel): Define.
3353 (views::__detail::__can_adjacent_view): Define.
3354 (views::_Adjacent): Define.
3355 (views::adjacent): Define.
3356 (views::pairwise): Define.
3357 * testsuite/std/ranges/adaptors/adjacent/1.cc: New test.
3359 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
3361 * include/debug/formatter.h
3362 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
3363 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
3364 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
3365 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
3366 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
3367 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
3368 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
3369 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
3370 * src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
3371 (_Error_formatter::_M_error()): Adapt.
3372 * src/libbacktrace/Makefile.am: Add backtrace.c.
3373 * src/libbacktrace/Makefile.in: Regenerate.
3374 * src/libbacktrace/backtrace-rename.h (backtrace_full): New.
3375 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test.
3376 * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
3377 * doc/xml/manual/using.xml: Likewise.
3379 2022-08-31 Patrick Palka <ppalka@redhat.com>
3381 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
3383 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
3385 * include/bits/refwrap.h (reference_wrapper::operator()): Add
3386 noexcept-specifier and use __invoke_result instead of result_of.
3387 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
3389 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
3391 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
3393 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
3394 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
3396 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
3398 * include/bits/basic_string.h (basic_string): Add nodiscard
3399 attribute to all relevant functions.
3400 * include/std/string_view (basic_string_view): Likewise.
3401 * testsuite/21_strings/basic_string/capacity/1.cc: Cast unused
3403 * testsuite/21_strings/basic_string/capacity/char/1.cc:
3405 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
3407 * testsuite/21_strings/basic_string/cons/char/self_move.cc:
3409 * testsuite/21_strings/basic_string/element_access/char/1.cc:
3411 * testsuite/21_strings/basic_string/element_access/char/21674.cc:
3413 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
3415 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
3417 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3418 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3419 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc:
3420 Add -Wno-unused-result to options.
3421 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
3423 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
3425 * testsuite/21_strings/basic_string/operators/char/1.cc: Cast
3426 unused results to void.
3427 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc:
3429 * testsuite/21_strings/basic_string_view/capacity/1.cc:
3431 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3433 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3435 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3437 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3439 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
3441 Add -Wno-unused-result to options.
3442 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
3444 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
3446 * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast
3447 unused results to void.
3448 * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc:
3450 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
3451 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
3454 2022-08-27 Patrick Palka <ppalka@redhat.com>
3456 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
3458 2022-08-26 Patrick Palka <ppalka@redhat.com>
3460 * include/std/ranges (zip_view::_Iterator::operator<): Remove
3462 (zip_view::_Iterator::operator>): Likewise.
3463 (zip_view::_Iterator::operator<=): Likewise.
3464 (zip_view::_Iterator::operator>=): Likewise.
3465 (zip_view::_Iterator::operator<=>): Remove three_way_comparable
3466 constraint as per LWG 3692.
3467 (zip_transform_view::_Iterator): Ditto as per LWG 3702.
3469 2022-08-26 Patrick Palka <ppalka@redhat.com>
3471 * include/std/ranges (zip_view::_Iterator): Befriend
3473 (__detail::__range_iter_cat): Define.
3474 (zip_transform_view): Define.
3475 (zip_transform_view::_Iterator): Define.
3476 (zip_transform_view::_Sentinel): Define.
3477 (views::__detail::__can_zip_transform_view): Define.
3478 (views::_ZipTransform): Define.
3479 (views::zip_transform): Define.
3480 * testsuite/std/ranges/zip_transform/1.cc: New test.
3482 2022-08-26 Patrick Palka <ppalka@redhat.com>
3484 * include/std/type_traits (enable_if, __enable_if_t): Define them
3486 (__detail::__first_t): Define.
3487 (__detail::__or_fn, __detail::__and_fn): Declare.
3488 (__or_, __and_): Redefine as alias templates in terms of __or_fn
3490 (__not_): Redefine as an alias template.
3491 (__detail::__disjunction_impl, __detail::__conjunction_impl):
3493 (conjuction, disjunction): Redefine in terms of __disjunction_impl
3494 and __conjunction_impl.
3496 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
3498 * include/std/system_error (error_code::_Check): New alias
3499 template for constructor SFINAE constraint.
3500 (error_code::error_code(ErrorCodeEnum)): Use it.
3501 (error_code::operator=(ErrorCodeEnum)): Remove.
3502 (error_condition::_Check): New alias template for constraint.
3503 (error_condition::error_condition(ErrorConditionEnum)): Use it.
3504 (error_condition::operator=(ErrorConditionEnum)): Remove.
3505 * testsuite/19_diagnostics/error_code/cons/1.cc: Check
3506 constructor taking user-defined error enum.
3507 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
3509 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
3511 * include/bits/basic_string.h (starts_with, ends_with, contains):
3512 Add nonnull attribute.
3513 * include/bits/cow_string.h (starts_with, ends_with, contains):
3515 * include/std/string_view (starts_with, ends_with, contains):
3517 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc
3518 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
3519 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
3520 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
3521 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
3522 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
3524 2022-08-25 Patrick Palka <ppalka@redhat.com>
3526 * include/std/ranges (lazy_split_view::_OuterIter::_M_current):
3527 Remove redundant comment.
3528 (lazy_split_view::_M_current): Likewise.
3529 (common_view::common_view): Remove commented out view-converting
3530 constructor as per LWG3405.
3531 (elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'.
3533 2022-08-24 Patrick Palka <ppalka@redhat.com>
3535 * include/bits/ranges_algo.h (__min_fn, min): Move to ...
3536 * include/bits/ranges_util.h: ... here, in order to avoid
3537 including all of ranges_algo.h from <ranges>.
3538 * include/std/ranges (__detail::__zip_is_common): Define for
3539 C++23 as per P2321R2.
3540 (__detail::__tuple_or_pair): Likewise.
3541 (__detail::__tuple_or_pair_t): Likewise.
3542 (__detail::__tuple_transform): Likewise.
3543 (__detail::__tuple_for_each): Likewise.
3544 (zip_view): Likewise.
3545 (enable_borrowed_range<zip_view>): Likewise.
3546 (__detail::__all_random_access): Likewise.
3547 (__detail::__all_bidirectional): Likewise.
3548 (__detail::__all_forward): Likewise.
3549 (__detail::__zip_view_iter_cat): Likewise.
3550 (zip_view::_Iterator): Likewise.
3551 (zip_view::_Sentinel): Likewise.
3552 * testsuite/std/ranges/zip/1.cc: New test.
3554 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
3557 2022-08-24 Will Hawkins <whh8b@obs.cr>
3559 * include/bits/basic_string.h (operator+(const string&, const char*)):
3560 Remove naive implementation.
3561 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
3562 Add single-allocation implementation.
3564 2022-08-24 Patrick Palka <ppalka@redhat.com>
3566 * include/bits/stl_pair.h (pair::swap const): Add non-standard
3567 is_swappable_v constraints.
3568 * include/std/tuple (tuple::swap const): Likewise.
3569 * testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some
3570 asserts in C++23 mode.
3572 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
3574 * include/bits/stl_algo.h (__stable_sort): Cast size to
3575 iterator's difference type.
3576 * testsuite/25_algorithms/stable_sort/4.cc: New test.
3578 2022-08-24 Will Hawkins <whh8b@obs.cr>
3580 * include/bits/basic_string.h (operator+(const string&, const char*)):
3581 Remove naive implementation.
3582 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
3583 Add single-allocation implementation.
3585 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
3587 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
3588 non-reduced duration.
3590 2022-08-23 Patrick Palka <ppalka@redhat.com>
3592 * include/bits/stl_bvector.h (_Bit_reference::operator=): Define
3593 const overload for C++23 as per P2321R2.
3594 * include/bits/stl_pair.h (pair::swap): Likewise.
3595 (pair::pair): Define additional converting constructors for
3596 C++23 as per P2321R2.
3597 (pair::operator=): Define const overloads for C++23 as per
3599 (swap): Define overload taking const pair& for C++23 as per
3601 (basic_common_reference): Define partial specialization for
3602 pair for C++23 as per P2321R2.
3603 (common_type): Likewise.
3604 * include/bits/uses_allocator_args.h
3605 (uses_allocator_construction_args): Define additional pair
3606 overloads for C++23 as per P2321R2.
3607 * include/std/tuple (_Tuple_impl::_Tuple_impl): Define
3608 additional converting constructors for C++23 as per P2321R2.
3609 (_Tuple_impl::_M_assign): Define const overloads for C++23
3611 (_Tuple_impl::_M_swap): Likewise.
3612 (tuple::__constructible): Define as a convenient renaming of
3613 _TCC<true>::__constructible.
3614 (tuple::__convertible): As above but for _TCC<true>::__convertible.
3615 (tuple::tuple): Define additional converting constructors for
3616 C++23 as per P2321R2.
3617 (tuple::operator=): Define const overloads for C++23 as per
3619 (tuple::swap): Likewise.
3620 (basic_common_reference): Define partial specialization for
3621 tuple for C++23 as per P2321R2.
3622 (common_type): Likewise.
3623 * testsuite/20_util/pair/p2321r2.cc: New test.
3624 * testsuite/20_util/tuple/p2321r2.cc: New test.
3625 * testsuite/23_containers/vector/bool/element_access/1.cc: New test.
3627 2022-08-23 Patrick Palka <ppalka@redhat.com>
3629 * include/std/tuple (_TupleConstraints::__convertible): Define.
3630 (_TupleConstraints::__constructible): Define.
3631 (_TupleConstraints::__is_explicitly_constructible): Redefine this
3632 in terms of __convertible and __constructible.
3633 (_TupleConstraints::__is_implicitly_constructible): Likewise.
3635 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
3638 * include/std/variant (__do_visit): Handle is_void<R> for zero
3640 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
3642 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
3645 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
3646 requirement for using std::stacktrace. Also adjust -frtti and
3647 -fexceptions to document non-default (i.e. negative) forms.
3648 * doc/html/*: Regenerate.
3650 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
3653 * include/bits/std_thread.h (thread::_State_impl): Forward
3654 individual arguments to _Invoker constructor.
3655 (thread::_Invoker): Add constructor. Delete copies.
3656 * include/std/future (__future_base::_Deferred_state): Forward
3657 individual arguments to _Invoker constructor.
3658 (__future_base::_Async_state_impl): Likewise.
3659 * testsuite/30_threads/async/106695.cc: New test.
3660 * testsuite/30_threads/thread/106695.cc: New test.
3662 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
3665 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
3666 Use built-ins to check for integer overflow in back-reference
3668 * testsuite/28_regex/basic_regex/106607.cc: New test.
3670 2022-08-17 Keef Aragon <keef.aragon@konscious.net>
3672 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
3674 2022-08-08 François Dumont <fdumont@gcc.gnu.org>
3676 * include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry.
3677 (_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator
3678 parameter is value-initialized.
3679 (_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise.
3680 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt
3682 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
3684 * src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version.
3685 (print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names.
3686 * testsuite/23_containers/deque/debug/iterator1_neg.cc: New test.
3687 * testsuite/23_containers/deque/debug/iterator2_neg.cc: New test.
3688 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test.
3689 * testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test.
3690 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test.
3692 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
3694 * include/experimental/scope (__cpp_lib_experimental_scope):
3696 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro.
3698 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
3700 * include/Makefile.am: Add new header.
3701 * include/Makefile.in: Regenerate.
3702 * include/experimental/scope: New file.
3703 * testsuite/experimental/scopeguard/uniqueres.cc: New test.
3704 * testsuite/experimental/scopeguard/exit.cc: New test.
3706 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3708 * include/std/string_view (basic_string_view(Range&&)): Add
3709 explicit as per P2499R0.
3710 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
3711 Adjust implicit conversions. Check implicit conversions fail.
3712 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
3715 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3717 * include/bits/fs_dir.h (directory_iterator): Add comparison
3718 with std::default_sentinel_t. Remove redundant operator!= for
3720 * (recursive_directory_iterator): Likewise.
3721 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
3722 (default_sentinel_t, default_sentinel): Define even if concepts
3724 * include/bits/regex.h (regex_iterator): Add comparison with
3725 std::default_sentinel_t. Remove redundant operator!= for C++20.
3726 (regex_token_iterator): Likewise.
3727 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
3728 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
3729 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
3731 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
3734 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3736 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
3737 (bad_expected_access::_M_val): Likewise.
3739 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3741 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
3743 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
3744 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
3746 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3749 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
3752 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
3753 Move increment of _M_ver here.
3754 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
3755 Use relaxed memory order and always notify all waiters.
3756 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
3757 Check value again after locking mutex.
3758 (__waiter_base::_M_notify): Remove increment of _M_ver.
3760 2022-08-04 Ulrich Drepper <drepper@gmail.com>
3762 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
3763 zero-based indeces just like std:get takes.
3765 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
3768 * include/bits/stl_iterator.h (common_iterator::operator->):
3769 Change return type to just auto.
3771 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
3773 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
3775 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
3778 * include/bits/stl_iterator.h (common_iterator): Define
3779 destructor, copy constructor and move constructor as trivial
3780 when the underlying types allow.
3781 * testsuite/24_iterators/common_iterator/100823.cc: Check
3782 triviality of special members.
3784 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
3787 * include/bits/stl_iterator.h (common_iterator): Define move
3788 constructor and move assignment operator.
3789 (common_iterator::_M_assign): New function implementing
3791 (common_iterator::operator=): Use _M_assign.
3792 (common_iterator::_S_valueless): New constant.
3793 * testsuite/24_iterators/common_iterator/100823.cc: New test.
3795 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
3797 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
3798 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
3799 friend declaration. Do not move argument in copy constructor.
3800 * testsuite/24_iterators/common_iterator/1.cc: Check for
3801 noexcept constructibnle/assignable.
3803 2022-07-19 François Dumont <fdumont@gcc.gnu.org>
3805 * include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define
3806 using _GLIBCXX_DEBUG_PEDASSERT.
3807 [_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise.
3808 * include/debug/macros.h
3809 (__glibcxx_check_string, __glibcxx_check_string_len): Move...
3810 * include/debug/string
3811 (__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending
3812 on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined.
3813 Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of
3814 and find_last_not_of. Remove debug implementations having no debug assertion.
3815 * testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and
3816 __gnu_test::wtring which definition depends on _GLIBCXX_DEBUG.
3817 * testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case.
3818 * testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case.
3819 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
3820 Include <testsuite_string.h> and use __gnu_test::string.
3821 * testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise.
3822 * testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise.
3823 * testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise.
3824 * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise.
3825 * testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise.
3826 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
3827 Include <testsuite_string.h> and use __gnu_test::wstring.
3828 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise.
3829 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise.
3830 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise.
3831 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise.
3832 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise.
3834 2022-07-19 Jonathan Wakely <jwakely@redhat.com>
3836 * include/std/type_traits (__cpp_lib_reference_from_temporary)
3837 (reference_constructs_from_temporary)
3838 (reference_converts_from_temporary): Only define when the
3839 built-ins are available.
3841 2022-07-19 Marco Falke <falke.marco@gmail.com>
3843 * include/std/charconv (__from_chars_alnum_to_val): Replace
3844 implicit conversion from int to unsigned char with explicit
3847 2022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
3849 * configure: Regnerate.
3850 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
3852 2022-07-18 François Dumont <fdumont@gcc.gnu.org>
3854 * include/bits/stl_algo.h
3855 (__merge_adaptive): Adapt to merge only when buffer is large enough..
3856 (__merge_adaptive_resize): New, adapt merge when buffer is too small.
3857 (__inplace_merge): Adapt, use latter.
3858 (__stable_sort_adaptive): Adapt to sort only when buffer is large enough.
3859 (__stable_sort_adaptive_resize): New, adapt sort when buffer is too small.
3860 (__stable_sort): Adapt, use latter.
3862 2022-07-15 Marek Polacek <polacek@redhat.com>
3865 * include/std/type_traits (reference_constructs_from_temporary,
3866 reference_converts_from_temporary): New class templates.
3867 (reference_constructs_from_temporary_v,
3868 reference_converts_from_temporary_v): New variable templates.
3869 (__cpp_lib_reference_from_temporary): Define for C++23.
3870 * include/std/version (__cpp_lib_reference_from_temporary): Define for
3872 * testsuite/20_util/variable_templates_for_traits.cc: Test
3873 reference_constructs_from_temporary_v and
3874 reference_converts_from_temporary_v.
3875 * testsuite/20_util/reference_from_temporary/value.cc: New test.
3876 * testsuite/20_util/reference_from_temporary/value2.cc: New test.
3877 * testsuite/20_util/reference_from_temporary/version.cc: New test.
3879 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
3882 * include/std/istream [C++17] (operator>>(istream&, char*)):
3883 Set eofbit if we stopped extracting at EOF.
3884 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
3886 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
3889 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
3891 * include/bits/stl_iterator.h (__iter_to_alloc_t): Replace
3892 add_const_t with const-qualifier.
3893 * include/bits/utility.h (tuple_element<N, cv T>): Likewise for
3895 * include/std/type_traits (add_const, add_volatile): Replace
3896 typedef-declaration with using-declaration.
3897 (add_cv): Replace add_const and add_volatile with cv-qualifiers.
3898 * include/std/variant (variant_alternative<N, cv T>): Replace
3899 add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers.
3901 2022-07-09 François Dumont <fdumont@gcc.gnu.org>
3903 * include/std/string: Remove obsolete comment about char_traits.h including
3906 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
3909 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
3910 Remove workaround for front-end bug.
3912 2022-07-05 Alexandre Oliva <oliva@adacore.com>
3914 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
3915 why we need the typecast.
3917 2022-07-05 Alexandre Oliva <oliva@adacore.com>
3919 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert
3920 the getpid result to an integral type.
3922 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
3925 * include/Makefile.am (largefile-config.h): Add
3926 stamp-${host_alias} prerequisite.
3927 * include/Makefile.in: Regenerate.
3929 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
3931 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
3932 * include/experimental/bits/fs_ops.h: Likewise.
3933 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
3934 results of absolute and canonical.
3935 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
3936 discarded result to void.
3937 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3938 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3939 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3940 * testsuite/27_io/filesystem/operations/read_symlink.cc:
3942 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3943 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3945 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3947 * testsuite/experimental/filesystem/operations/canonical.cc:
3949 * testsuite/experimental/filesystem/operations/exists.cc:
3951 * testsuite/experimental/filesystem/operations/is_empty.cc:
3953 * testsuite/experimental/filesystem/operations/read_symlink.cc:
3955 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3958 2022-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
3960 * configure: Regnerate.
3961 * configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS
3962 targets except bfin, lm32, mips, moxie, or1k, and v850.
3963 For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT,
3964 HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV,
3965 HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK,
3966 HAVE_TRUNCATE, and HAVE_USLEEP.
3967 * crossconfig.m4 (*-rtems*): Remove.
3969 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
3971 * include/bits/utility.h: Fix comment typos.
3973 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
3975 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
3977 (fs::temp_directory_path(error_code&)): Rearrange to more
3978 closely match the structure of the first overload.
3979 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
3980 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3981 Check that exception contains the path.
3982 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3985 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
3988 * src/filesystem/ops.cc (has_trailing_slash): New helper
3990 (fs::status): Strip trailing slashes.
3991 (fs::symlink_status): Likewise.
3992 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3993 Clean the environment before each test and use TMP instead of
3994 TMPDIR so the test passes on Windows.
3996 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
3998 * src/filesystem/dir-common.h (_Dir_base::_At_path):
3999 Use char_type consistently for paths.
4001 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
4003 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
4004 current() returning _At_path.
4005 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
4006 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
4007 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
4008 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
4009 current() returning _At_path.
4010 (_Dir::_Dir, _Dir::open_subdir): Adjust.
4012 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
4014 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
4015 Always store pathname if we don't have openat or unlinkat,
4016 because the full path is needed to open sub-directories and
4019 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
4021 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
4022 functions are available.
4024 2022-06-27 Alexandre Oliva <oliva@adacore.com>
4026 * testsuite/20_util/to_chars/long_double.cc: Use cmath
4027 long double overloads for nexttoward and ldexp.
4029 2022-06-27 Alexandre Oliva <oliva@adacore.com>
4031 * testsuite/experimental/simd/standard_abi_usable.cc: Require
4033 * testsuite/experimental/simd/standard_abi_usable_2.cc:
4036 2022-06-27 Alexandre Oliva <oliva@adacore.com>
4038 * testsuite/26_numerics/complex/proj.cc: Skip test in the
4039 circumstances in which the implementation of proj is known to
4042 2022-06-27 Alexandre Oliva <oliva@adacore.com>
4044 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
4045 _GLIBCXX_HAVE_OPENAT.
4047 2022-06-27 Alexandre Oliva <oliva@adacore.com>
4049 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
4050 (test06): Don't create symlinks when NO_SYMLINKS is defined.
4052 2022-06-27 Alexandre Oliva <oliva@adacore.com>
4054 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
4055 Add -Wl,--gc-sections for RTEMS targets.
4056 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
4058 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
4059 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
4060 Execution-time xfail on RTEMS.
4061 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
4064 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
4066 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
4068 2022-06-27 Joel Brobecker <brobecker@adacore.com>
4069 Jonathan Wakely <jwakely@redhat.com>
4071 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
4072 Always include a counter in the filename returned.
4074 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
4076 * include/bits/move_only_function.h (_Never_valueless_alt):
4077 Define partial specialization for std::move_only_function.
4079 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
4081 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
4083 (__accepted_index, _Extra_visit_slot_needed): Replace class
4084 templates with variable templates.
4086 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
4088 * include/bits/fs_path.h (__is_path_iter_src): Replace class
4089 template with variable template.
4091 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
4093 * include/bits/chrono.h (is_clock_v): Define to false.
4094 (is_clock_v<T>): Define partial specialization for true cases.
4095 (is_clock): Define in terms of is_clock_v.
4097 2022-06-24 Xi Ruoyao <xry111@xry111.site>
4099 * scripts/extract_symvers.in: Use grep -E instead of egrep.
4100 * scripts/run_doxygen: Likewise.
4102 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4104 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4106 * configure, config.h.in: Rebuilt.
4107 * src/filesystem/dir-common.h (openat): Use ::openat if
4108 _GLIBCXX_HAVE_OPENAT.
4109 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
4110 _GLIBCXX_HAVE_OPENAT.
4112 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4114 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
4116 * testsuite/experimental/filesystem/operations/rename.cc:
4119 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4121 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
4123 * testsuite/lib/libstdc++.exp
4124 (check_v3_target_fs_last_write_time): New.
4125 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
4127 * testsuite/27_io/filesystem/operations/last_write_time.cc:
4128 Skip the test if the features are unavailable.
4129 * testsuite/experimental/filesystem/operations/last_write_time.cc:
4132 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4134 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
4136 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
4137 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
4139 * testsuite/27_io/filesystem/operations/space.cc: Require
4141 * testsuite/experimental/filesystem/operations/space.cc:
4144 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4146 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
4147 mingw and when create_symlink is a dummy.
4148 * testsuite/27_io/filesystem/operations/symlink_status.cc:
4150 (test01, test02): Don't create symlinks when NO_SYMLINKS is
4152 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
4154 * testsuite/27_io/filesystem/operations/copy.cc (test02):
4156 * testsuite/27_io/filesystem/operations/create_directories.cc
4158 * testsuite/27_io/filesystem/operations/create_directory.cc
4160 * testsuite/27_io/filesystem/operations/permissions.cc
4161 (test03, test04): Likewise.
4162 * testsuite/27_io/filesystem/operations/remove.cc (test01):
4164 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
4166 * testsuite/27_io/filesystem/operations/rename.cc
4167 (test_symlinks): Likewise.
4168 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
4170 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
4172 * testsuite/experimental/filesystem/operations/copy.cc
4174 * testsuite/experimental/filesystem/operations/create_directories.cc
4176 * testsuite/experimental/filesystem/operations/create_directory.cc
4178 * testsuite/experimental/filesystem/operations/permissions.cc
4179 (test03, test04): Likewise.
4180 * testsuite/experimental/filesystem/operations/remove.cc
4182 * testsuite/experimental/filesystem/operations/remove_all.cc
4184 * testsuite/experimental/filesystem/operations/rename.cc
4186 * testsuite/lib/libstdc++.exp
4187 (v3_check_preprocessor_condition): Add optional inc parameter.
4188 Add it to the test program after include bits/c++config.h.
4189 (check_v3_target_fs_symlinks): New.
4190 * testsuite/lib/dg-options.exp
4191 (dg-require-target-fs-symlinks): New.
4192 * testsuite/27_io/filesystem/operations/read_symlink.cc:
4193 Replace mingw xfail with require target-fs-symlinks.
4194 * testsuite/experimental/filesystem/operations/read_symlink.cc:
4197 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4199 * testsuite/27_io/filesystem/operations/copy.cc (test02):
4200 Select TO after creating FROM.
4201 (test03, test04): Likewise.
4202 * testsuite/experimental/filesystem/operations/copy.cc
4203 (test02, test03, test04): Likewise.
4205 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4207 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
4208 explicit cancellation point in case sleep_for lacks one.
4210 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4212 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
4213 -lbsd for RTEMS targets.
4215 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
4217 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4218 rmdir to remove directories.
4219 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
4222 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
4224 * testsuite/26_numerics/random/random_device/entropy.cc: Use
4225 numeric_limits<unsigned>::digits.
4227 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4229 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
4230 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
4232 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4234 * testsuite/30_threads/this_thread/60421.cc (test02): Call
4237 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4239 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
4241 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4243 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
4244 global struct bitset.
4245 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
4246 * testsuite/23_containers/bitset/input/1.cc: Likewise.
4247 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
4248 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
4250 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
4252 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
4255 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
4258 * include/bits/basic_string.h (_M_use_local_data): Initialize
4259 the entire SSO buffer.
4260 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
4262 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
4265 * include/ext/vstring.h (operator==): Always check lengths
4268 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
4271 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
4272 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
4273 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
4274 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
4275 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
4276 const allocator_type&, true_type)): Use this.insert range.
4277 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
4278 const allocator_type&, false_type)): Use _M_insert.
4279 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
4281 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
4282 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
4284 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
4287 * include/bits/basic_string.h (operator==): Always compare
4288 lengths before checking string contents.
4289 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
4292 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
4295 * include/bits/basic_string.h (compare): Define inline.
4296 * include/bits/basic_string.tcc (compare): Remove out-of-line
4298 * include/bits/cow_string.h (compare): Define inline.
4299 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
4302 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
4304 * include/bits/new_allocator.h: Fix indentation.
4305 * include/ext/malloc_allocator.h: Likewise.
4307 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
4310 * include/bits/allocator.h (allocator::allocate): Check for
4311 overflow in constexpr allocation.
4312 * testsuite/20_util/allocator/105975.cc: New test.
4314 2022-06-13 Mark Mentovai <mark@mentovai.com>
4316 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
4317 Rename to __nul_terminated to avoid colliding with a macro in
4320 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
4322 * include/std/atomic (__atomic_val_t): Use __type_identity_t
4323 instead of atomic<T>::value_type, as per LWG 3220.
4324 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
4326 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
4329 * include/experimental/numeric (experimental::gcd): Simplify
4330 assertions. Use __abs_r instead of __absu.
4331 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
4332 overflow can be detected.
4333 * include/std/numeric (__detail::__absu): Rename to __abs_r and
4334 change to allow signed result type, so overflow can be detected.
4335 (__detail::__lcm): Remove.
4336 (gcd): Simplify assertions. Use __abs_r instead of __absu.
4337 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
4339 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
4340 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4341 * testsuite/26_numerics/gcd/105844.cc: New test.
4342 * testsuite/26_numerics/lcm/105844.cc: New test.
4344 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
4347 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
4348 prevent destruction during termination.
4349 (__eh_globals_init::_M_init): Replace with static member _S_init.
4350 (__cxxabiv1::__cxa_get_globals_fast): Update.
4351 (__cxxabiv1::__cxa_get_globals): Likewise.
4353 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
4355 * include/bits/basic_string.h (__hash_str_base): New class
4357 (hash<basic_string<C, char_traits<C>, A>>): Define partial
4358 specialization for each of the standard character types.
4359 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
4360 (hash<u32string>): Remove explicit specializations.
4361 * include/std/string (__hash_string_base): Remove class
4363 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
4364 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
4366 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
4368 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
4371 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
4374 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
4375 always_inline attribute.
4377 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4380 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
4381 Limit ga_sizes array to values that fit in size_t.
4382 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
4383 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
4384 (sfmt216091_64): Do not declare.
4386 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4388 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
4389 lookup for ios_errc and future_errc check versioned namespace.
4390 (StdAtomicPrinter): Strip versioned namespace from typename.
4392 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4394 * src/c++11/Makefile.am: Add new source file.
4395 * src/c++11/Makefile.in: Regenerate.
4396 * src/c++11/cxx11-ios_failure.cc (iostream_category):
4398 * src/c++11/ios_errcat.cc: New file.
4399 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
4400 std::iostream_category() is defined and used for std::io_errc.
4402 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4404 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
4405 Add 'constexpr' as per LWG 3643.
4406 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
4408 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4410 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
4412 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
4414 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
4415 <bits/functional_hash.h>.
4416 * include/bits/unordered_map.h: Include required headers.
4417 * include/bits/unordered_set.h: Likewise.
4418 * include/std/unordered_map: Do not include headers for indirect
4420 * include/std/unordered_set: Likewise.
4422 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4424 * include/bits/ranges_algobase.h: Do not include
4425 <bits/stl_iterator_base_types.h>.
4426 * include/std/string: Likewise.
4427 * include/std/variant: Likewise.
4429 2022-05-26 Nathan Sidwell <nathan@acm.org>
4431 * include/bits/hashtable.h: Include required headers.
4432 * include/bits/hashtable_policy.h: Likewise.
4433 * include/bits/stl_heap.h: Likewise.
4434 * include/bits/stl_iterator_base_funcs.h: Likewise.
4436 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
4438 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
4439 Strip typename from version namespace.
4441 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4443 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
4444 versioned namespace from the template argument too.
4446 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4448 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
4450 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
4452 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
4454 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
4456 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
4458 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
4460 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
4462 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
4464 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
4466 * testsuite/21_strings/basic_string/operations/contains/char.cc:
4468 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
4470 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
4472 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
4474 * testsuite/21_strings/basic_string/operations/data/char.cc:
4476 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
4478 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
4480 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
4482 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
4484 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
4486 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
4488 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
4490 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
4492 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
4494 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
4496 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
4498 * testsuite/21_strings/basic_string/operations/substr/char.cc:
4500 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
4502 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
4504 * testsuite/21_strings/basic_string/range_access/char/1.cc:
4506 * testsuite/21_strings/basic_string/range_access/char.cc:
4508 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
4510 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
4512 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4514 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
4516 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4518 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
4520 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4522 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
4524 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4526 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
4528 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4530 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
4532 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4534 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
4536 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
4538 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
4540 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
4542 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
4544 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4546 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
4548 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4550 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
4552 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
4554 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
4556 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
4558 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
4560 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
4562 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
4564 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
4566 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
4568 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4570 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
4572 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4574 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
4576 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4578 * testsuite/21_strings/basic_string_view/range_access/char.cc:
4580 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4582 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
4584 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
4586 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
4588 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
4590 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
4592 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
4594 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
4596 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
4598 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
4600 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
4602 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
4604 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
4606 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
4608 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4610 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
4612 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4614 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
4616 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4618 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
4620 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4622 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
4624 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4626 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
4628 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4630 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
4632 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
4634 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
4636 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
4638 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
4640 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
4642 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
4644 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
4646 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
4648 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
4650 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
4652 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
4654 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
4657 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
4659 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
4661 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
4662 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
4664 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
4665 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
4667 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
4669 2022-05-25 Jason Merrill <jason@redhat.com>
4671 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
4674 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
4676 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
4677 Run fewer iterations for simulator targets.
4678 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
4680 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
4682 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
4684 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
4686 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
4688 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
4691 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
4693 * include/bits/char_traits.h: Only include <cstdint> when
4695 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
4697 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
4698 * src/c++17/floating_to_chars.cc: Likewise.
4699 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
4700 * testsuite/20_util/assume_aligned/3.cc: Likewise.
4701 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
4703 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
4705 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
4707 * include/bits/cow_string.h: Include it here.
4709 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
4711 * include/Makefile.am: Add new header.
4712 * include/Makefile.in: Regenerate.
4713 * include/bits/memory_resource.h: New file.
4714 * include/std/deque: Include <bits/memory_resource.h>.
4715 * include/std/forward_list: Likewise.
4716 * include/std/list: Likewise.
4717 * include/std/map: Likewise.
4718 * include/std/memory_resource (pmr::memory_resource): Move to
4719 new <bits/memory_resource.h> header.
4720 (pmr::polymorphic_allocator): Likewise.
4721 * include/std/regex: Likewise.
4722 * include/std/set: Likewise.
4723 * include/std/stacktrace: Likewise.
4724 * include/std/string: Likewise.
4725 * include/std/unordered_map: Likewise.
4726 * include/std/unordered_set: Likewise.
4727 * include/std/vector: Likewise.
4728 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4729 Remove <memory_resource> header and check construction.
4730 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4731 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4733 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4734 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4735 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4736 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4737 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4738 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4740 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4742 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4744 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4746 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4747 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4749 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
4751 * include/std/memory_resource (polymorphic_allocator): Add
4752 non-template equality operator, as proposed for LWG 3683.
4753 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
4755 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4757 * src/c++17/memory_resource.cc (set_default_resource): Use
4758 memory_order_acq_rel.
4759 (get_default_resource): Use memory_order_acquire.
4761 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4763 * include/std/memory_resource (new_delete_resource): Add
4764 nodiscard, returns_nonnull and const attributes.
4765 (null_memory_resource): Likewise.
4766 (set_default_resource, get_default_resource): Add returns_nonnull
4768 (memory_resource::is_equal): Add nodiscard attribute.
4769 (operator==, operator!=): Likewise.
4771 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4773 * include/bits/ios_base.h (io_category): Add const and nodiscard
4775 (make_error_code, make_error_condition): Add nodiscard.
4776 * include/std/future (future_category): Add const and nodiscard.
4777 (make_error_code, make_error_condition): Add nodiscard.
4778 * include/std/system_error (generic_category system_category):
4779 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
4780 (error_code::value, error_code::category, error_code::operator bool)
4781 (error_condition::value, error_condition::category)
4782 (error_condition::operator bool, make_error_code)
4783 (make_error_condition, operator==, operator!=, operator<=>): Add
4786 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4788 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
4790 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
4792 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
4794 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
4795 Do not build the compatibility*-c++0x.cc objects.
4796 * src/Makefile.in: Regenerate.
4797 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
4798 Refuse to build for the versioned namespace.
4799 * src/c++11/compatibility-chrono.cc: Likewise.
4800 * src/c++11/compatibility-condvar.cc: Likewise.
4801 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
4802 * src/c++11/chrono.cc (system_clock, steady_clock):
4803 Use macros to define in inline namespace _V2, matching the
4804 declarations in <system_error>.
4805 * src/c++11/system_error.cc (system_category, generic_category):
4808 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
4810 * doc/xml/manual/prerequisites.xml: Fix attributes for external
4812 * doc/html/manual/setup.html: Regenerate.
4814 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
4816 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
4817 * doc/html/*: Regenerate.
4819 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
4821 * doc/xml/manual/intro.xml: Include new chapter.
4822 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
4823 * doc/xml/manual/status_cxx2023.xml: New file.
4824 * doc/html/*: Regenerate.
4826 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
4828 * doc/html/manual/status.html: Regenerate.
4829 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
4830 C++20 bit operations.
4832 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4834 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
4835 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
4836 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
4838 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4840 * include/std/future (launch): Make operators noexcept.
4842 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4844 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
4845 with "__unspecified__".
4846 * libsupc++/exception_ptr.h: Improve doxygen docs.
4847 (__exception_ptr::swap): Also declare in namespace std.
4849 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4851 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
4852 if-constexpr instead of tag dispatching.
4853 (rethrow_if_nested) [C++17]: Likewise.
4854 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
4856 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
4859 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4861 * doc/doxygen/user.cfg.in (PREDEFINED): Define
4862 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
4863 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
4865 * include/bits/unique_lock.h (unique_lock): Likewise.
4866 * include/std/mutex (recursive_mutex, timed_mutex)
4867 (recursive_timed_mutex, scoped_lock): Likewise.
4869 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4871 * doc/doxygen/user.cfg.in (PREDEFINED): Define
4872 _GLIBCXX23_CONSTEXPR macro.
4873 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
4874 * include/bits/unique_ptr.h (default_delete): Use @since and
4876 * include/std/scoped_allocator: Remove @ingroup from @file
4879 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4881 * include/bits/std_thread.h (thread, thread::id): Improve
4883 * include/std/future: Likewise.
4884 * include/std/thread (jthread): Likewise.
4886 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4888 * include/bits/ostream_insert.h: Mark helper functions as
4889 undocumented by Doxygen.
4890 * include/bits/stl_algo.h: Use markdown for formatting and mark
4891 helper functions as undocumented.
4892 * include/bits/stl_numeric.h: Likewise.
4893 * include/bits/stl_pair.h (pair): Add @headerfile.
4895 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4897 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
4898 so that Doxygen shows the right base-class for std::allocator.
4899 * include/bits/alloc_traits.h: Improve doxygen docs.
4900 * include/bits/allocator.h: Likewise.
4901 * include/bits/new_allocator.h: Likewise.
4902 * include/ext/new_allocator.h: Likewise.
4904 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4906 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
4907 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
4908 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
4909 * include/bits/regex.h: Improve doxygen docs.
4910 * include/bits/regex_constants.h: Likewise.
4911 * include/bits/regex_error.h: Likewise.
4913 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4915 * include/std/atomic: Suppress doxygen docs for
4916 implementation details.
4917 * include/bits/atomic_base.h: Likewise.
4918 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
4919 so that std::atomic is not added to the pointer abstractions
4922 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4924 * include/std/system_error: Improve doxygen comments.
4926 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4928 * include/bits/ptr_traits.h: Add some doxygen comments.
4930 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4932 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
4934 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
4935 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
4936 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
4938 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
4939 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
4940 * include/std/condition_variable (_V2::condition_variable_any):
4942 * include/std/system_error (_V2::error_category): Likewise.
4944 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4946 * include/bits/mofunc_impl.h: Fix doxygen command.
4948 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4950 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
4951 (CLASS_DIAGRAMS): Remove obsolete option.
4953 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
4955 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
4956 * config/locale/gnu/numeric_members.cc: Likewise.
4957 * include/bits/locale_facets_nonio.h: Likewise.
4958 * libsupc++/typeinfo: Likewise.
4960 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
4963 * include/std/iosfwd: Add declarations for <spanstream> class
4964 templates and typedefs.
4965 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
4966 (basic_ospanstream, basic_spanstream): Remove default template
4968 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
4970 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
4973 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
4976 * include/std/iosfwd: Add declarations for <synstream> class
4977 templates and typedefs.
4978 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
4979 Remove default template arguments.
4980 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
4981 * testsuite/27_io/headers/iosfwd/types.cc: New test.
4983 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
4985 * include/bits/random.tcc (operator==): Only check
4986 normal_distribution::_M_saved_available once.
4987 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
4988 Check equality after state changes.
4989 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4992 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
4995 * include/bits/random.tcc
4996 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
4997 Update state when __state_avail is false.
4998 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
4999 Check that deserialized object equals serialized one.
5001 2022-05-06 Alexandre Oliva <oliva@adacore.com>
5003 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
5004 for double, long long, and 64-bit long intrinsic types.
5005 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
5006 preexisting long double diagnostic, adjust no-VSX double
5007 diagnostic to cover 64-bit long double as well.
5009 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
5012 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
5013 Use a trailing char array as storage for dirent::d_name.
5015 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
5017 * include/std/stacktrace: Do not include <cxxabi.h>.
5018 (__cxa_demangle): Declare.
5020 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
5023 * include/bits/specfun.h: Use visibility attribute on namespace,
5024 instead of pragma push/pop.
5025 * libsupc++/compare: Likewise.
5026 * libsupc++/exception: Likewise.
5027 * libsupc++/exception.h: Likewise.
5028 * libsupc++/exception_ptr.h: Likewise.
5029 * libsupc++/initializer_list: Likewise.
5030 * libsupc++/nested_exception.h: Likewise.
5032 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
5034 * doc/xml/manual/test.xml: Remove requirement for copyright and
5035 GPL notice in tests.
5036 * doc/html/manual/test.html: Regenerate.
5038 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
5040 * include/experimental/memory_resource [!__cpp_rtti]
5041 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
5042 when RTTI is disabled.
5043 * testsuite/17_intro/freestanding.cc: Require RTTI.
5044 * testsuite/18_support/exception/38732.cc: Likewise.
5045 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
5047 * testsuite/18_support/nested_exception/68139.cc: Likewise.
5048 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
5050 * testsuite/18_support/type_info/103240.cc: Likewise.
5051 * testsuite/18_support/type_info/fundamental.cc: Likewise.
5052 * testsuite/18_support/type_info/hash_code.cc: Likewise.
5053 * testsuite/20_util/any/assign/emplace.cc: Likewise.
5054 * testsuite/20_util/any/cons/in_place.cc: Likewise.
5055 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
5056 * testsuite/20_util/any/observers/type.cc: Likewise.
5057 * testsuite/20_util/function/1.cc: Likewise.
5058 * testsuite/20_util/function/2.cc: Likewise.
5059 * testsuite/20_util/function/3.cc: Likewise.
5060 * testsuite/20_util/function/4.cc: Likewise.
5061 * testsuite/20_util/function/5.cc: Likewise.
5062 * testsuite/20_util/function/6.cc: Likewise.
5063 * testsuite/20_util/function/7.cc: Likewise.
5064 * testsuite/20_util/function/8.cc: Likewise.
5065 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
5066 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
5067 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
5068 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
5070 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
5071 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
5072 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
5074 * testsuite/20_util/typeindex/hash.cc: Likewise.
5075 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
5076 * testsuite/20_util/typeindex/name.cc: Likewise.
5077 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
5078 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
5080 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
5082 * testsuite/22_locale/locale/13630.cc: Check type without using
5084 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
5086 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
5087 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
5088 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
5089 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
5090 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
5091 * testsuite/experimental/any/observers/type.cc: Likewise.
5092 * testsuite/experimental/memory_resource/resource_adaptor.cc:
5094 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
5096 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
5097 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
5098 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
5099 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
5100 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
5101 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
5102 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
5103 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
5104 * testsuite/tr2/bases/value.cc: Likewise.
5105 * testsuite/tr2/direct_bases/value.cc: Likewise.
5106 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
5109 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
5112 * include/std/array (array::size(), array::max_size())
5113 (array::empty(), array::data()): Add always_inline attribute.
5115 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
5118 * include/std/array (__array_traits::_S_ref): Remove.
5119 (__array_traits::_S_ptr): Remove.
5120 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
5121 to provide an array-like API.
5122 (array::_AT_Type): Remove public typeef.
5123 (array::operator[], array::at, array::front, array::back): Use
5124 index operator to access _M_elems instead of _S_ref.
5125 (array::data): Use implicit conversion from _M_elems to pointer.
5126 (swap(array&, array&)): Use __enable_if_t helper.
5127 (get<I>): Use index operator to access _M_elems.
5128 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
5129 Adjust dg-error line numbers.
5131 2022-05-03 Alexandre Oliva <oliva@adacore.com>
5134 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
5135 with conditional for floating-point overloads of from_char.
5137 2022-05-02 Patrick Palka <ppalka@redhat.com>
5140 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
5141 two delimeters for the exponent part in the form of a possibly
5142 NULL string of length two. Don't use std::tolower.
5143 (pattern): Adjust calls to find_end_of_float accordingly.
5145 2022-05-02 Patrick Palka <ppalka@redhat.com>
5148 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
5149 Also accept 'P' as the start of the exponent.
5150 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
5152 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
5155 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5157 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
5158 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
5159 symbols as aliases for corresponding symbols without abi-tag.
5161 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5163 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5164 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5166 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5167 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5170 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
5173 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
5174 directory_iterator constructor, and check on each iteration.
5175 * src/filesystem/ops.cc (fs::copy): Likewise.
5176 * testsuite/27_io/filesystem/operations/copy.cc: Check for
5177 errors during recursion.
5178 * testsuite/experimental/filesystem/operations/copy.cc:
5181 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
5183 * config/abi/pre/gnu-versioned-namespace.ver: Remove
5184 std::random_device::* pattern.
5186 2022-04-27 Jakub Jelinek <jakub@redhat.com>
5188 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5189 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5190 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5191 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5192 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5193 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5194 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5195 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5197 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
5199 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
5200 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
5201 (StdAtomicPrinter): New printer.
5202 (build_libstdcxx_dictionary): Register new printer.
5203 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
5204 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
5207 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
5209 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
5210 constructor for constant initialization from nullptr_t.
5211 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
5212 Check for new constructor.
5214 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
5216 * include/bits/fs_path.h (hash<filesystem::path>): Define.
5217 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
5218 Check std::hash specialization.
5220 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
5222 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
5224 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
5226 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
5227 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
5229 * include/std/version (__cpp_lib_constexpr_memory): Define new
5231 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
5232 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
5233 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
5234 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
5235 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
5236 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
5239 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
5242 * include/std/future (packaged_task): Add deduction guides.
5243 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
5245 2022-04-25 Philipp Fent <fent@in.tum.de>
5247 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
5249 (StdInitializerListPrinter): Define new printer.
5250 (build_libstdcxx_dictionary): Register new printer.
5251 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
5254 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
5257 * include/bits/atomic_base.h (atomic_flag::notify_one,
5258 notify_all): Remove const qualification.
5259 (__atomic_base::notify_one, notify_all): Likewise.
5260 * include/std/atomic (atomic<bool>::notify_one, notify_all):
5262 (atomic::notify_one, notify_all): Likewise.
5263 (atomic<T*>::notify_one, notify_all): Likewise.
5264 (atomic_notify_one, atomic_notify_all): Likewise.
5265 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
5266 to account for change in notify_one/notify_all signature.
5268 2022-04-21 Patrick Palka <ppalka@redhat.com>
5270 * include/std/charconv (__from_chars_alnum_to_val_table):
5271 Simplify initialization of __lower/__upper_letters.
5272 (__from_chars_alnum_to_val): Default the template parameter to
5274 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
5275 assume the uppercase and lowercase letters are contiguous.
5276 (__floating_from_chars_hex): Likewise.
5278 2022-04-21 Patrick Palka <ppalka@redhat.com>
5282 * include/std/charconv (__from_chars_alnum_to_val): Make
5283 initializer for __table dependent in an artificial way.
5285 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
5288 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
5290 * testsuite/20_util/from_chars/pr105324.cc: New test.
5292 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
5294 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
5295 Check correct feature test macro.
5297 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
5300 * doc/xml/manual/prerequisites.xml: Document libiconv
5302 * doc/html/manual/setup.html: Regenerate.
5303 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
5304 * src/Makefile.in: Regenerate.
5306 2022-04-19 Patrick Palka <ppalka@redhat.com>
5308 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
5310 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
5311 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
5313 (__floating_to_chars_precision): Likewise.
5315 2022-04-19 Philipp Fent <fent@in.tum.de>
5317 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
5318 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
5320 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
5322 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
5323 * configure: Regenerate.
5325 2022-04-18 Patrick Palka <ppalka@redhat.com>
5327 * include/std/charconv (__from_chars_pow2_base): Manually
5328 unroll the first iteration of the main loop and simplify
5331 2022-04-15 Patrick Palka <ppalka@redhat.com>
5334 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
5335 __first twice at the start.
5336 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
5338 2022-04-15 Patrick Palka <ppalka@redhat.com>
5340 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
5341 (__from_chars_alnum_to_val): Define.
5342 (__from_chars_binary): Rename to ...
5343 (__from_chars_pow2_base): ... this. Generalize to handle any
5344 power-of-two base using __from_chars_alnum_to_val.
5345 (__from_chars_digit): Optimize digit recognition to a single
5346 test instead of two tests. Use [[__unlikely___]] attribute.
5347 (__from_chars_alpha_to_num): Remove.
5348 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
5349 nested loop for the overflow case. Maintain a lower bound
5350 on the number of available bits in the result and use it to
5351 omit the overflow check.
5352 (from_chars): Adjust appropriately.
5353 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
5354 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
5355 to recognize a hex digit instead.
5357 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
5359 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
5361 * configure: Regenerate.
5363 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
5365 * doc/xml/manual/intro.xml: Fix comment.
5367 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
5369 * include/precompiled/stdc++.h: Include <stacktrace> and
5370 <stdatomic.h> for C++23.
5372 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
5375 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
5377 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
5379 * include/std/optional (__cpp_lib_optional): Define new value
5381 (__cpp_lib_monadic_optional): Remove.
5382 * include/std/version (__cpp_lib_constexpr_vector): Define.
5383 (__cpp_lib_stdatomic_h): Define.
5384 (__cpp_lib_optional): Define new value for C++23.
5385 (__cpp_lib_monadic_optional): Remove.
5386 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
5387 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
5388 * testsuite/20_util/optional/version.cc: Likewise.
5389 * testsuite/23_containers/vector/cons/constexpr.cc: Check
5391 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
5393 * testsuite/20_util/optional/monadic/version.cc: Removed.
5394 * testsuite/23_containers/vector/requirements/version.cc: New test.
5395 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
5397 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5399 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
5400 * config.h.in: Regenerate.
5401 * configure: Regenerate.
5403 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5405 * include/std/stacktrace (basic_stacktrace::current): Reallocate
5406 a smaller container if the unused capacity is larger than the
5409 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5411 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
5412 or _Impl::_M_assign to initialize elements in allocated storage.
5413 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
5415 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
5416 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
5418 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
5419 new element using allocator.
5420 (basic_stacktrace::_Impl::_M_clone): New function.
5421 (basic_stacktrace::_Impl::_M_xclone): New function.
5422 (basic_stacktrace::_Impl::_M_assign): New function.
5424 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5426 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
5427 Use nothrow new instead of try block for std::allocator.
5428 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
5431 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
5433 * include/std/stacktrace (basic_stacktrace::current): Replace
5434 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
5435 Check return value of backtrace_simple when max depth given.
5436 (basic_stacktrace::_M_reserve): Remove.
5437 (basic_stacktrace::_S_curr_cb): Remove.
5438 (basic_stacktrace::_M_prepare(size_type)): New function to
5439 reserve initial capacity and return callback.
5440 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
5441 and remove redundant zeroing of _M_frames and _M_capacity.
5442 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
5443 attribute. Assign _Impl instead of swapping.
5444 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
5446 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5448 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
5449 Change [[unlikely]] attribute to [[likely]].
5451 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5454 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
5455 Fix allocator usage in constructors.
5456 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
5457 try to reallocate using const allocator.
5458 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
5459 if-constexpr with non-constant condition. Do not allocate new
5460 storage if allocator propagates. Do not set _M_size if
5462 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
5463 assertion that non-propagating allocators are equal.
5464 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
5466 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5468 * include/std/stacktrace (basic_stacktrace::current): Duplicate
5469 implementation into each overload. Add noinline attribute and
5471 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
5472 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
5473 (basic_stacktrace::_Impl::_S_max_size): New function defining
5474 maximum size in terms of allocator and size_type.
5475 (basic_stacktrace::_Impl::_M_allocate): Check against
5477 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
5478 for non-constexpr checks. Check line number is correct.
5480 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5482 * testsuite/20_util/stacktrace/entry.cc: Moved to...
5483 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
5484 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
5485 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
5486 * testsuite/20_util/stacktrace/version.cc: Moved to...
5487 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
5489 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5491 * include/experimental/bits/fs_path.h (path): Define special
5492 members after path::_Cmpt is complete.
5494 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
5497 * include/std/expected
5498 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
5499 * testsuite/20_util/expected/cons.cc: Check constructor.
5501 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
5504 * include/std/expected (expected<void, E>::swap): Set
5505 _M_has_value to false for objects that previously had a value.
5506 * testsuite/20_util/expected/swap.cc: Fix test to check void
5509 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
5512 * include/std/expected (bad_expected_access): Move constructor
5514 * testsuite/20_util/expected/bad.cc: New test.
5516 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
5518 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
5521 2022-04-02 Jakub Jelinek <jakub@redhat.com>
5524 * include/std/source_location (std::source_location::__impl): Move
5525 definition before using __builtin_ret_type.
5527 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
5529 * include/std/utility (unreachable): Define for C++23.
5530 * include/std/version (__cpp_lib_unreachable): Define.
5531 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
5532 arguments. Handle only the function being given.
5533 * testsuite/20_util/unreachable/1.cc: New test.
5534 * testsuite/20_util/unreachable/version.cc: New test.
5536 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
5538 * include/experimental/bits/fs_fwd.h (copy_file): Remove
5539 incorrect noexcept from declaration.
5540 * include/experimental/bits/fs_path.h (path::begin, path::end):
5541 Add noexcept to declarations, to match definitions.
5543 2022-04-01 Timm Bäder <tbaeder@redhat.com>
5545 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
5546 * include/experimental/bits/fs_ops.h: Likewise.
5548 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
5550 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
5552 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
5554 * testsuite/18_support/exception/38732.cc: Disable for C++23.
5555 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
5556 * testsuite/18_support/unexpected_handler.cc: Likewise.
5558 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
5560 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
5561 static data members for _Fp_fmt enumerators.
5563 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
5565 * include/std/version (__cpp_lib_variant): Fix conditions to
5567 (__cpp_lib_expected): Fix condition to match <expected>.
5569 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
5571 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
5572 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
5573 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
5574 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
5575 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
5576 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
5577 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
5578 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
5580 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
5582 * doc/doxygen/user.cfg.in: Add new header.
5583 * include/Makefile.am: Likewise.
5584 * include/Makefile.in: Regenerate.
5585 * include/precompiled/stdc++.h: Add new header.
5586 * include/std/version (__cpp_lib_expected): Define.
5587 * libsupc++/exception [__cplusplus > 202002] (unexpected)
5588 (unexpected_handler, set_unexpected): Do not declare for C++23.
5589 * include/std/expected: New file.
5590 * testsuite/20_util/expected/assign.cc: New test.
5591 * testsuite/20_util/expected/cons.cc: New test.
5592 * testsuite/20_util/expected/illformed_neg.cc: New test.
5593 * testsuite/20_util/expected/observers.cc: New test.
5594 * testsuite/20_util/expected/requirements.cc: New test.
5595 * testsuite/20_util/expected/swap.cc: New test.
5596 * testsuite/20_util/expected/synopsis.cc: New test.
5597 * testsuite/20_util/expected/unexpected.cc: New test.
5598 * testsuite/20_util/expected/version.cc: New test.
5600 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
5602 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
5605 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
5608 * include/std/bit (bit_cast): Add constraints.
5609 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
5611 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
5613 * include/std/version [!_GLIBCXX_HOSTED]
5614 (__cpp_lib_hardware_interference_size): Define for freestanding.
5615 (__cpp_lib_bit_cast): Likewise.
5616 (__cpp_lib_is_layout_compatible): Likewise.
5617 (__cpp_lib_is_pointer_interconvertible): Likewise.
5618 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
5620 (__cpp_lib_invoke_r): Likewise.
5621 (__cpp_lib_ios_noreplace): Likewise.
5622 (__cpp_lib_monadic_optional): Likewise.
5623 (__cpp_lib_move_only_function): Likewise.
5624 (__cpp_lib_spanstream): Likewise.
5625 (__cpp_lib_stacktrace): Likewise.
5626 (__cpp_lib_string_contains): Likewise.
5627 (__cpp_lib_string_resize_and_overwrite): Likewise.
5628 (__cpp_lib_to_underlying): Likewise.
5630 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
5633 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
5634 <bits/atomic_wait.h> for freestanding.
5636 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
5638 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
5639 Conditionalize call to fesetround.
5641 2022-03-21 Jakub Jelinek <jakub@redhat.com>
5644 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
5645 isn't overloaded if __clang__ is defined.
5647 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
5650 * include/std/any (any(T&&)): Revert change to constraints.
5651 * testsuite/20_util/any/cons/104242.cc: New test.
5653 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
5656 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
5658 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
5659 (__pstl::__internal::__except_handler): Use std::__terminate
5660 instead of std::terminate.
5661 * src/c++17/fs_path.cc: Include <array>.
5662 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
5664 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
5665 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
5666 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
5667 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
5668 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
5669 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
5670 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
5671 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
5673 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
5675 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
5677 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
5679 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
5681 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
5683 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
5685 * testsuite/25_algorithms/max/constrained.cc: Likewise.
5686 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
5687 * testsuite/25_algorithms/min/constrained.cc: Likewise.
5688 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
5689 * testsuite/25_algorithms/minmax_element/constrained.cc:
5691 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
5692 * testsuite/25_algorithms/move/93872.cc: Likewise.
5693 * testsuite/25_algorithms/move_backward/93872.cc: Include
5695 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
5697 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
5698 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
5700 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
5701 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
5702 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
5703 * testsuite/25_algorithms/set_difference/constrained.cc:
5705 * testsuite/25_algorithms/set_intersection/constexpr.cc:
5707 * testsuite/25_algorithms/set_intersection/constrained.cc:
5709 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
5711 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
5712 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
5713 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
5714 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
5715 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
5716 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
5717 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
5718 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
5719 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
5720 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
5721 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
5722 * testsuite/std/ranges/adaptors/split.cc: Likewise.
5724 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
5727 * include/bits/fs_path.h (path::make_preferred): Use
5728 handwritten loop instead of std::replace.
5730 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
5732 PR middle-end/104966
5733 * include/bits/locale_facets_nonio.tcc
5734 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
5735 make all string copies before any stores to *this.
5737 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
5739 * testsuite/util/testsuite_character.h: Fix comment.
5741 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
5744 * config/abi/pre/gnu.ver: Make version for std::from_chars
5745 depend on HAVE_USELOCALE macro.
5746 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
5747 std::from_chars for floating-point types as undesignated if
5748 not found in the baseline symbols file.
5750 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
5752 * include/std/charconv (__cpp_lib_to_chars): Only define when
5753 both from_chars and to_chars are supported for floating-point
5755 (from_chars, to_chars): Adjust preprocessor conditions guarding
5757 * include/std/version (__cpp_lib_to_chars): Adjust condition to
5758 match <charconv> definition.
5759 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
5761 (from_chars): Simplify preprocessor checks and use
5762 from_chars_strtod when appropriate.
5764 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
5767 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
5768 hold octets that will be left-shifted.
5770 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
5773 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
5774 before using fast_float.
5776 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
5779 * include/bits/this_thread_sleep.h: Fix order of #endif and
5780 closing brace of namespace.
5782 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
5784 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
5787 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
5789 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
5792 2022-03-09 Patrick Palka <ppalka@redhat.com>
5795 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5796 Be explicit when narrowing the shifted effective_mantissa,
5797 since it may have an integer-class type.
5799 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
5801 * include/bits/uses_allocator_args.h: Remove incorrect copyright
5804 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
5807 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
5808 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
5809 (__is_constant_evaluated): Add visibility pragma.
5811 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
5813 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
5816 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
5818 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
5820 (__terminate): Likewise.
5822 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
5824 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
5825 inside #if condition.
5827 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
5830 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
5833 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
5835 * testsuite/17_intro/names.cc (func): Undef on AIX.
5837 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
5840 * libsupc++/compare (strong_order): Add missing support for
5841 floating-point types.
5842 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
5845 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
5847 PR middle-end/103984
5848 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
5849 default member initializer.
5851 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
5854 * include/std/source_location (source_location::current): Use
5855 deduced type of __builtin_source_location().
5857 2022-02-22 Patrick Palka <ppalka@redhat.com>
5859 * include/bits/ranges_base.h (__detail::__is_initializer_list):
5861 (viewable_range): Adjust as per P2415R2.
5862 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
5863 * include/std/ranges (owning_view): Define as per P2415R2.
5864 (enable_borrowed_range<owning_view>): Likewise.
5865 (views::__detail::__can_subrange): Replace with ...
5866 (views::__detail::__can_owning_view): ... this.
5867 (views::_All::_S_noexcept): Sync with operator().
5868 (views::_All::operator()): Use owning_view instead of subrange
5870 * include/std/version (__cpp_lib_ranges): Adjust value.
5871 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
5872 views::all uses owning_view instead of subrange.
5874 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
5875 now that rvalue non-view non-borrowed ranges are viewable.
5876 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
5878 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
5881 * doc/xml/manual/evolution.xml: Document deprecation.
5882 * doc/html/manual/api.html: Regenerate.
5883 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
5884 Remove default argument.
5885 (insert(const_iterator)): New overload with deprecated attribute.
5886 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
5889 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
5891 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
5892 code that call cat->name() on std::error_category objects.
5893 Identify known categories by symbol name and use a hardcoded
5894 name. Print error code values as enumerators where appopriate.
5895 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
5896 name of custom category. Check io_errc and future_errc errors.
5898 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
5901 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
5902 (uninitialized_construct_using_allocator): Add constexpr.
5903 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
5904 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
5906 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
5909 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
5910 namespace for IEEE128 long double mode.
5911 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
5912 version and export __gnu_cxx_ieee128::__convert_from_v.
5913 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
5914 Make __ibm128 overload use snprintf directly
5915 * testsuite/util/testsuite_abi.cc: Add new symbol version.
5916 Remove stable IEEE128/LDBL versions.
5918 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
5921 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5923 * include/std/variant: Check feature test macros instead.
5924 * include/std/version: Likewise.
5926 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
5928 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5931 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
5933 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
5934 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
5936 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
5938 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
5941 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
5943 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
5944 Ignore -Walloc-larger-than warning.
5945 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5947 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
5948 to avoid linker error for __atomic_is_lock_free.
5950 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
5952 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
5953 __waiter_base::_S_do_spin_v): Change memory order from relaxed
5956 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
5958 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
5960 (atomic_fetch_xor_explicit): Likewise.
5961 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
5962 arithmetic and logical operations for atomic_int.
5964 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
5966 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
5967 when <dirent.h> is not available.
5968 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
5970 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
5973 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
5974 loop inside do loop so that threads failing the wait, reload
5977 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
5979 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
5980 parameter to _Dir_base&&.
5981 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
5982 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
5983 parameter to _Dir_base&&.
5985 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
5987 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
5988 checking for CAS on correct word size.
5990 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
5992 * testsuite/experimental/filesystem/operations/create_directories.cc:
5993 Adjust expected results for Windows.
5995 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
5998 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
5999 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
6000 instead of checking for errno values indicating a directory.
6001 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
6002 logic to non-throwing overload.
6003 (fs::remove_all(const path&, error_code&)): Add comments.
6004 * src/filesystem/ops-common.h: Likewise.
6006 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
6008 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
6009 type to use portable posix::DIR alias.
6011 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
6013 * include/c_compatibility/stdatomic.h [__clang__]: Use
6014 #include_next <stdatomic.h>.
6016 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
6018 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
6020 (fs::create_directories): Likewise.
6021 (fs::remove_all): Likewise.
6022 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
6023 (fs::create_directories): Likewise.
6024 (fs::remove_all): Likewise.
6026 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
6029 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
6031 * config.h.in: Regenerate.
6032 * configure: Regenerate.
6033 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
6034 remove_all overloads as friends.
6035 (recursive_directory_iterator::__erase): Declare new member
6037 * include/bits/fs_fwd.h (remove, remove_all): Declare.
6038 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
6039 constructor. Pass file descriptor argument to base constructor.
6040 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
6041 (_Dir::unlink, _Dir::rmdir): Define new member functions.
6042 (directory_iterator): Pass filename_only argument to _Dir
6044 (recursive_directory_iterator::_Dir_stack): Adjust constructor
6045 parameters to take a _Dir rvalue instead of creating one.
6046 (_Dir_stack::orig): Add data member for storing original path.
6047 (_Dir_stack::report_error): Define new member function.
6048 (__directory_iterator_nofollow): Move here from dir-common.h and
6049 fix value to be a power of two.
6050 (__directory_iterator_filename_only): Define new constant.
6051 (recursive_directory_iterator): Construct _Dir object and move
6052 into _M_dirs stack. Pass skip_permission_denied argument to first
6054 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
6055 (recursive_directory_iterator::__erase): Define new member
6057 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
6058 (fs::remove_all): Use new recursive_directory_iterator::__erase
6060 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
6061 constructor and use openat to implement nofollow semantics.
6062 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
6063 Define new member functions.
6064 (__directory_iterator_nofollow): Move to fs_dir.cc.
6065 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
6067 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
6069 (recursive_directory_iterator::_Dir_stack): Adjust constructor
6070 parameters to take a _Dir rvalue instead of creating one.
6071 (recursive_directory_iterator): Check for new nofollow option.
6072 Construct _Dir object and move into _M_dirs stack. Pass
6073 skip_permission_denied argument to first advance call.
6074 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
6075 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
6077 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
6079 * include/bits/allocator.h: Qualify std::allocator_traits in
6080 deprecated warnings.
6081 * libsupc++/exception (uncaught_exception): Add suggestion to
6084 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
6086 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
6087 Add [[maybe_unused]] attribute.
6088 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
6091 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
6093 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
6094 custom comparison function for multiset.
6095 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
6096 comparison function for set.
6098 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
6100 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
6101 Change member function to data member of function pointer type.
6103 2022-02-02 Martin Sebor <msebor@redhat.com>
6106 * include/std/array (begin): Declare const member function attribute
6108 (end, rbegin, rend, size, max_size, empty, data): Same.
6109 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
6110 * testsuite/23_containers/array/capacity/max_size.cc: Same.
6111 * testsuite/23_containers/array/capacity/size.cc: Same.
6112 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
6114 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
6116 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
6117 autoconf macro to check whether d_type is present.
6118 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
6121 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
6123 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
6124 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
6125 Check follow_directory_symlink option.
6126 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
6129 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
6131 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
6132 Reset state to past-the-end iterator on error.
6133 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
6134 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
6136 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
6137 for the TS implementation.
6138 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
6139 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
6141 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
6143 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
6145 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
6148 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
6149 for stdio_pure and stdio_posix options.
6150 * configure: Regenerate.
6152 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
6154 * include/bits/atomic_wait.h: Change memory order from
6155 Acquire/Release with relaxed loads to SeqCst+Release for
6156 accesses to the waiter's count.
6158 2022-01-31 Martin Liska <mliska@suse.cz>
6160 * acinclude.m4: Detect *_ld_is_mold and use it.
6161 * configure: Regenerate.
6163 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
6165 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
6167 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
6169 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
6172 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
6173 Add __builtin_unreachable to loop.
6174 * testsuite/23_containers/deque/100516.cc: New test.
6176 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
6178 * include/bits/ranges_base.h (ranges::advance): Avoid signed
6179 overflow. Do nothing if already equal to desired result.
6180 * testsuite/24_iterators/range_operations/advance_overflow.cc:
6183 2022-01-27 Martin Liska <mliska@suse.cz>
6186 * acinclude.m4: Fix typo.
6187 * configure: Regenerate.
6189 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
6192 * include/bits/istream.tcc (basic_istream::sentry): Add braces
6194 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
6195 Add pragmas to disable bogus warnings from PR 61596.
6197 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
6200 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
6201 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
6202 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
6204 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
6207 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
6209 * config.h.in: Regenerate.
6210 * configure: Regenerate.
6211 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
6212 and pass it to base class constructor.
6213 (directory_iterator): Pass nofollow flag to _Dir constructor.
6214 (fs::recursive_directory_iterator::increment): Likewise.
6215 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
6216 directory_iterator constructor. Move error check outside loop.
6217 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
6218 constructor and when it's set use ::open with O_NOFOLLOW and
6220 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
6221 and pass it to base class constructor.
6222 (directory_iterator): Pass nofollow flag to _Dir constructor.
6223 (fs::recursive_directory_iterator::increment): Likewise.
6224 * src/filesystem/ops.cc (remove_all): Use nofollow option for
6225 directory_iterator constructor. Move error check outside loop.
6227 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
6230 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
6231 mem-initializer for _M_buf.
6232 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
6234 * testsuite/27_io/spanstream/2.cc: New test.
6236 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
6238 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
6239 Define macro for case where std::from_chars is implemented in
6240 terms of strtod, strtof or strtold.
6241 (buffer_resource, valid_fmt, find_end_of_float, pattern)
6242 (from_chars_impl, make_result, reserve_string): Do not define
6243 unless USE_STRTOD_FOR_FROM_CHARS is defined.
6244 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
6245 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
6246 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
6249 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
6252 * include/bits/hashtable_policy.h (_Map_base): Add partial
6253 specialization for maps with const key types.
6254 * testsuite/23_containers/unordered_map/104174.cc: New test.
6256 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
6259 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
6260 Set members to zero without type punning.
6262 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
6264 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
6266 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
6270 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
6271 Define as type long.
6272 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
6274 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
6275 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
6276 (__cpp_lib_chrono_udls): Likewise.
6277 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
6278 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
6279 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
6281 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
6283 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
6284 (__cpp_lib_sample): Likewise.
6285 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
6287 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
6289 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
6291 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
6293 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
6295 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
6297 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
6299 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
6300 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
6301 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
6303 * include/std/complex (__cpp_lib_complex_udls): Likewise.
6304 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
6305 * include/std/functional (__cpp_lib_not_fn): Likewise.
6306 (__cpp_lib_boyer_moore_searcher): Likewise.
6307 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
6308 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
6309 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
6310 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
6311 * include/std/tuple (__cpp_lib_apply): Likewise.
6312 (__cpp_lib_make_from_tuple): Likewise.
6313 * include/std/type_traits (__cpp_lib_integral_constant_callable)
6314 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
6315 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
6316 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
6317 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
6318 (__cpp_lib_has_unique_object_representations)
6319 (__cpp_lib_is_aggregate): Likewise.
6320 * include/std/version: Likewise.
6321 * libsupc++/new (__cpp_lib_launder): Likewise.
6323 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
6325 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
6326 condition for C++17 definition.
6328 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
6330 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
6332 (_Sp_atomic::_M_ptr): Add default member-initializer.
6333 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
6334 Check constant initialization.
6335 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
6337 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
6339 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
6340 equivalent attribute for Clang.
6341 * src/c++11/future.cc (__constinit): Likewise.
6342 * src/c++11/system_error.cc (__constinit): Likewise.
6343 * src/c++17/memory_resource.cc (__constinit): Likewise.
6345 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
6347 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
6348 src/libbacktrace/.libs to LDFLAGS if those directories exist.
6350 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6352 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
6354 * configure: Regenerate.
6356 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6359 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
6362 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6364 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
6365 linker search paths.
6366 * src/Makefile.am: Fix src/debug/libbacktrace build.
6367 * src/Makefile.in: Regenerate.
6368 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
6369 variable. Use symlinks for the source files.
6370 * src/libbacktrace/Makefile.in: Regenerate.
6372 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
6374 * include/experimental/bits/simd.h (__floating_point_flags): Do
6375 not rely on math_errhandling to expand to a constant expression.
6377 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6379 * doc/xml/manual/evolution.xml: Document deprecations.
6380 * doc/xml/manual/status_cxx2017.xml: Update status.
6381 * doc/html/*: Regenerate.
6383 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6385 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
6386 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
6388 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6390 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
6393 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6396 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
6397 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
6399 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6402 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
6404 (operator=(nullptr_t)): Likewise.
6405 * include/bits/cow_string.h: Likewise.
6406 * include/std/string_view (basic_string_view(nullptr_t)):
6408 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
6409 expected error. Add examples that become ill-formed in C++23.
6410 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
6411 Adjust expected errors.
6412 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
6415 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6418 * include/bits/stl_iterator.h (reverse_iterator): Check
6419 __cpp_lib_concepts instead of __cplusplus.
6421 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6424 * include/bits/stl_pair.h (pair): Adjust constraints on
6425 deprecated constructors accepting literal zero as null pointer
6426 constant. Improve wording of deprecated attribute.
6427 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
6428 constructors do not cause ambiguities for copyable types.
6430 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6432 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
6433 non-deprecated alternative.
6435 2022-01-18 Tom Honermann <tom@honermann.net>
6437 * acinclude.m4: Define config macros if uchar.h provides
6438 c8rtomb() and mbrtoc8().
6439 * config.h.in: Regenerate.
6440 * configure: Regenerate.
6441 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
6442 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
6443 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
6444 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
6446 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
6449 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6451 * include/Makefile.am: Install new header.
6452 * include/Makefile.in: Regenerate.
6453 * include/c_compatibility/stdatomic.h: New file.
6454 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
6456 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6459 * src/c++17/fast_float/LOCAL_PATCHES: Update.
6460 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
6461 Define in terms of __BYTE_ORDER__.
6463 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6466 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
6467 * src/c++17/fast_float/fast_float.h (round): Use explicit
6468 template argument list for std::min.
6470 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6472 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
6473 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
6475 * doc/html/manual/status.html: Regenerate.
6477 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6479 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
6481 * configure: Regenerate.
6483 2022-01-17 Patrick Palka <ppalka@redhat.com>
6485 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
6486 Conditionally define, and use it to conditionally include
6488 (from_chars): Use fast_float for float and double when
6491 2022-01-17 Patrick Palka <ppalka@redhat.com>
6493 * src/c++17/fast_float/LOCAL_PATCHES: Update.
6494 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
6495 case of over/underflow, return errc::result_out_of_range and don't
6498 2022-01-17 Patrick Palka <ppalka@redhat.com>
6500 * src/c++17/fast_float/LOCAL_PATCHES: Update.
6501 * src/c++17/fast_float/fast_float.h: Apply local modifications.
6503 2022-01-17 Patrick Palka <ppalka@redhat.com>
6505 * src/c++17/fast_float/LOCAL_PATCHES: New file.
6506 * src/c++17/fast_float/MERGE: New file.
6507 * src/c++17/fast_float/README.md: New file, copied from the
6508 fast_float repository.
6509 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
6510 of the fast_float library.
6512 2022-01-17 Patrick Palka <ppalka@redhat.com>
6514 * src/c++17/floating_from_chars.cc: Include <bit>.
6515 (ascii_to_hexit, starts_with_ci): Conditionally define.
6516 (__floating_from_chars_hex): Conditionally define.
6517 (from_chars): Use __floating_from_chars_hex for
6518 chars_format::hex parsing of binary32/64 float/double.
6519 (testsuite/20_util/from_chars/7.cc): New test.
6520 * testsuite/20_util/from_chars/7.cc: New file.
6522 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6524 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
6525 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
6526 * include/Makefile.am: Add new header.
6527 * include/Makefile.in: Regenerate.
6528 * include/std/stacktrace: New header.
6529 * include/std/version (__cpp_lib_stacktrace): Define.
6530 * Makefile.in: Regenerate.
6531 * config.h.in: Regenerate.
6532 * configure: Regenerate.
6533 * doc/Makefile.in: Regenerate.
6534 * libsupc++/Makefile.in: Regenerate.
6535 * po/Makefile.in: Regenerate.
6536 * python/Makefile.in: Regenerate.
6537 * src/Makefile.am: Regenerate.
6538 * src/Makefile.in: Regenerate.
6539 * src/c++11/Makefile.in: Regenerate.
6540 * src/c++17/Makefile.in: Regenerate.
6541 * src/c++20/Makefile.in: Regenerate.
6542 * src/c++98/Makefile.in: Regenerate.
6543 * src/filesystem/Makefile.in: Regenerate.
6544 * testsuite/Makefile.in: Regenerate.
6545 * src/libbacktrace/Makefile.am: New file.
6546 * src/libbacktrace/Makefile.in: New file.
6547 * src/libbacktrace/backtrace-rename.h: New file.
6548 * src/libbacktrace/backtrace-supported.h.in: New file.
6549 * src/libbacktrace/config.h.in: New file.
6550 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
6552 * testsuite/20_util/stacktrace/entry.cc: New test.
6553 * testsuite/20_util/stacktrace/synopsis.cc: New test.
6554 * testsuite/20_util/stacktrace/version.cc: New test.
6556 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6558 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
6560 * doc/html/manual/status.html: Regenerate.
6562 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6565 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
6566 * include/Makefile.in: Regenerate.
6567 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
6569 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
6571 * include/experimental/bits/simd.h (__floating_point_flags): Do
6572 not rely on the presence of the math_errhandling macro.
6574 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6576 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
6577 to qualified-id for dependent type.
6579 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6581 * doc/xml/manual/status_cxx2020.xml: Update.
6582 * doc/html/manual/status.html: Regenerate.
6584 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6585 Thomas Rodgers <trodgers@redhat.com>
6587 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
6589 (_Sp_atomic): New class template.
6590 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
6592 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
6593 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
6594 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
6595 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
6597 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
6599 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
6601 * include/experimental/bits/simd.h: Move feature detection bools
6602 and add __have_avx512bitalg, __have_avx512vbmi2,
6603 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
6604 __have_avx512vnni, __have_avx512vpopcntdq.
6605 (__detail::__machine_flags): New function which returns a unique
6606 uint64 depending on relevant -m and -f flags.
6607 (__detail::__odr_helper): New type alias for either an anonymous
6608 type or a type specialized with the __machine_flags number.
6609 (_SimdIntOperators): Change template parameters from _Impl to
6610 _Tp, _Abi because _Impl now has an __odr_helper parameter which
6611 may be _OdrEnforcer from the anonymous namespace, which makes
6612 for a bad base class.
6613 (many): Either add __odr_helper template parameter or mark as
6615 * include/experimental/bits/simd_detail.h: Add defines for
6616 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
6617 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
6618 * include/experimental/bits/simd_builtin.h: Add __odr_helper
6619 template parameter or mark as always_inline.
6620 * include/experimental/bits/simd_fixed_size.h: Ditto.
6621 * include/experimental/bits/simd_math.h: Ditto.
6622 * include/experimental/bits/simd_scalar.h: Ditto.
6623 * include/experimental/bits/simd_neon.h: Add __odr_helper
6625 * include/experimental/bits/simd_ppc.h: Ditto.
6626 * include/experimental/bits/simd_x86.h: Ditto.
6628 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
6630 * testsuite/22_locale/numpunct/members/char/3.cc:
6631 Require pt_PT locale instead of nl_NL.
6632 (test02): Use pt_PT locale instead of nl_NL.
6634 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6639 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
6641 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
6642 Disable deprecated warnings for base classes.
6643 (_Reference_wrapper_base): Likewise.
6644 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
6645 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
6646 * include/bits/stl_function.h (unary_function, binary_function):
6647 Add deprecated attribute.
6648 (unary_negate, not1, binary_negate, not2, ptr_fun)
6649 (pointer_to_unary_function, pointer_to_binary_function)
6650 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
6651 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
6652 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
6654 * include/bits/stl_iterator.h: Disable deprecated warnings for
6655 std::iterator base classes.
6656 * include/bits/stl_iterator_base_types.h (iterator): Add
6657 deprecated attribute.
6658 * include/bits/stl_map.h (map::value_compare): Disable
6659 deprecated warnings for base class.
6660 * include/bits/stl_multimap.h (multimap::value_compare):
6662 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
6663 Add deprecated attribute.
6664 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
6665 * include/bits/stream_iterator.h: Disable deprecated warnings.
6666 * include/bits/streambuf_iterator.h: Likewise.
6667 * include/ext/bitmap_allocator.h: Remove unary_function base
6669 * include/ext/functional: Disable deprecated warnings.
6670 * include/ext/rope: Likewise.
6671 * include/ext/throw_allocator.h: Likewise.
6672 * include/std/type_traits (result_of): Add deprecated attribute.
6673 * include/tr1/functional: Disable deprecated warnings.
6674 * include/tr1/functional_hash.h: Likewise.
6675 * testsuite/20_util/function_objects/binders/1.cc: Add
6676 -Wno-disable-deprecations.
6677 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
6678 * testsuite/20_util/function_objects/constexpr.cc: Add
6680 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
6681 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
6682 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
6684 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
6686 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
6688 * testsuite/20_util/reference_wrapper/24803.cc:
6690 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
6691 C++20 and check for absence of nested types.
6692 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
6693 std::binary_function base class.
6694 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
6695 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
6696 std::iterator base class.
6697 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
6699 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
6701 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
6703 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
6705 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
6707 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
6709 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
6711 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
6713 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
6715 * testsuite/25_algorithms/copy/34595.cc:
6717 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
6719 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
6720 Disable deprecated warnings.
6721 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
6723 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
6725 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
6727 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
6729 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
6731 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
6733 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
6735 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
6737 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
6739 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
6741 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
6743 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
6745 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
6747 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
6749 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
6751 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
6753 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
6755 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
6757 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
6759 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
6761 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
6763 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
6765 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
6767 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
6769 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
6771 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
6773 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
6775 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
6777 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
6779 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
6781 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
6783 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
6785 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
6787 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
6789 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
6791 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
6793 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
6795 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
6797 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
6799 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
6801 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
6803 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
6805 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
6807 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
6809 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
6811 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
6813 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
6815 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
6817 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
6819 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
6821 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
6822 Disable deprecated warnings.
6823 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
6825 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
6826 std::unary_function base classes.
6827 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
6828 Remove std::iterator base classes.
6830 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6832 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
6833 Correct type of macro value.
6834 (shared_ptr): Add additional friend declarations.
6835 (make_shared, allocate_shared): Constrain existing overloads and
6836 remove static_assert.
6837 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
6839 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
6840 specialization for use with make_shared_for_overwrite.
6841 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
6842 (_Sp_counted_array_base): New class template.
6843 (_Sp_counted_array): New class template.
6844 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
6845 New constructor for allocating shared arrays.
6846 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
6847 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
6849 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
6850 (__cpp_lib_smart_ptr_for_overwrite): New macro.
6851 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
6853 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
6854 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
6855 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
6856 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
6857 feature test macro. Test non-trivial default-initialization.
6859 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6861 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
6862 Also cast away cv-qualifiers when converting pointer to void.
6863 * testsuite/20_util/allocator/void.cc: Test construct function
6864 with cv-qualified types.
6866 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6869 * include/bits/stl_iterator.h (common_iterator): Use
6870 std::construct_at instead of placement new.
6871 * testsuite/24_iterators/common_iterator/1.cc: Check copy
6872 construction is usable in constant expressions.
6874 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
6876 * doc/xml/manual/status_cxx2011.xml: Document new tokens
6877 accepted by std::random_device constructor.
6878 * doc/html/manual/status.html: Regenerate.
6880 2022-01-12 Patrick Palka <ppalka@redhat.com>
6882 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
6885 2022-01-12 Patrick Palka <ppalka@redhat.com>
6888 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
6889 Track the excess precision separately from the effective
6890 precision. Avoid overflow in bounds check by splitting it into
6892 (__floating_to_chars_precision): Avoid overflow in bounds checks
6894 * testsuite/20_util/to_chars/103955.cc: New test.
6896 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6899 * include/Makefile.am: Install <source_location> for
6901 * include/Makefile.in: Regenerate.
6902 * include/std/version (__cpp_lib_source_location): Define for
6905 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6907 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
6908 Add neoxcept (LWG 3593).
6910 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6912 * include/std/ranges (ranges::__detail::__box): Add constexpr to
6913 assignment operators (LWG 3572).
6914 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
6915 view that uses copyable-box.
6917 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6920 * include/Makefile.am: Install <coroutine> for freestanding.
6921 * include/Makefile.in: Regenerate.
6922 * include/std/coroutine: Adjust headers and preprocessor
6924 (__coroutine_traits_impl): Use concepts when available.
6925 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
6927 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6929 * include/std/ostream (operator<<(basic_ostream&, charT)):
6930 Use unformatted input if no padding is needed.
6931 (operator<<(basic_ostream<char>&, char)): Likewise.
6933 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6936 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
6938 * include/std/variant (__cpp_lib_variant): Only define C++20
6939 value when the compiler is known to support conditionally
6940 trivial destructors.
6941 * include/std/version (__cpp_lib_variant): Likewise.
6943 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6945 * include/bits/stl_iterator.h (common_iterator): Add constexpr
6946 to all member functions (LWG 3574).
6947 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
6948 tests as constant expressions.
6949 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
6951 2022-01-10 Jakub Jelinek <jakub@redhat.com>
6954 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
6955 (time_get::_M_extract_via_format): Declare new method with
6956 __time_get_state& as an extra argument.
6957 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
6958 __state argument, set various fields in it while parsing. Handle %j,
6959 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
6960 for %p immediately. Add a wrapper around the method without the
6961 __state argument for backwards compatibility.
6962 (_M_extract_num): Remove all __len == 4 special cases.
6963 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
6964 initialize __state, pass it to _M_extract_via_format and finalize it
6966 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
6967 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
6968 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
6969 version, don't call do_get but call _M_extract_via_format instead to
6971 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
6972 with extra __time_get_state and __time_get_state::_M_finalize_state.
6973 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
6974 day_of_the_year): New functions in anon namespace.
6975 (mon_yday): New var in anon namespace.
6976 (__time_get_state::_M_finalize_state): Define.
6977 * testsuite/22_locale/time_get/get/char/4.cc: New test.
6978 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
6979 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
6980 as year 197AD instead of error.
6981 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
6982 year 2001 instead of error.
6983 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
6984 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
6985 197 as year 197AD instead of error.
6986 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
6987 1 as year 2001 instead of error.
6988 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
6990 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
6993 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
6994 nothing for freestanding builds.
6995 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
6996 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
6997 with --without-headers. Do not use GCC_HEADER_STDINT for
6998 freestanding builds.
6999 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
7000 for freestanding builds.
7001 * configure: Regenerate.
7002 * Makefile.in: Regenerate.
7003 * doc/Makefile.in: Regenerate.
7004 * include/Makefile.in: Regenerate.
7005 * libsupc++/Makefile.in: Regenerate.
7006 * po/Makefile.in: Regenerate.
7007 * python/Makefile.in: Regenerate.
7008 * src/Makefile.in: Regenerate.
7009 * src/c++11/Makefile.in: Regenerate.
7010 * src/c++17/Makefile.in: Regenerate.
7011 * src/c++20/Makefile.in: Regenerate.
7012 * src/c++98/Makefile.in: Regenerate.
7013 * src/filesystem/Makefile.in: Regenerate.
7014 * testsuite/Makefile.in: Regenerate.
7016 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
7018 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
7019 Add dg-timeout-factor directive.
7020 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
7021 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
7022 * testsuite/28_regex/match_results/102667.cc: Likewise.
7024 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
7026 * doc/xml/manual/using.xml: Update documentation around default
7028 * doc/html/*: Regenerate.
7030 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
7033 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
7034 * src/c++17/Makefile.in: Regenerate.
7036 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
7038 * testsuite/18_support/type_info/constexpr.cc: Add explicit
7039 -fdelete-null-pointer-checks option.
7041 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
7042 Jonathan Wakely <jwakely@redhat.com>
7045 * include/bits/forward_list.tcc (forward_list::merge): Check for
7047 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
7049 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
7051 * include/bits/regex.h (basic_regex, match_results): Qualify
7052 name in friend declaration, to work around Clang bug.
7054 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
7056 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
7058 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
7061 * include/std/charconv (__from_chars_alpha_to_num): Return
7062 char instead of unsigned char. Change invalid return value to
7063 127 instead of using numeric trait.
7064 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
7065 Change type of variable to char.
7067 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
7070 * include/bits/hashtable_policy.h
7071 (_Hashtable_hash_traits<_Hash>): New.
7072 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
7073 (_Hashtable_base<>::_M_key_equals): New.
7074 (_Hashtable_base<>::_M_equals): Use latter.
7075 (_Hashtable_base<>::_M_key_equals_tr): New.
7076 (_Hashtable_base<>::_M_equals_tr): Use latter.
7077 * include/bits/hashtable.h
7078 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
7079 (_Hashtable<>::find): Loop through elements to look for key if size is lower
7080 than __small_size_threshold().
7081 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
7082 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
7083 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
7084 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
7085 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
7086 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
7087 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
7088 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
7089 * testsuite/util/testsuite_performance.h
7090 (report_performance): Use 9 width to display memory.
7091 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
7092 New performance test case.
7094 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7097 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
7098 Relax constraints on string_view parameter.
7099 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
7101 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
7103 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7105 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
7107 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
7108 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
7109 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
7111 (type_info::__equal): Define alias symbol.
7112 * libsupc++/typeinfo (type_info::before): Combine different
7113 implementations into one.
7114 (type_info::operator==): Likewise. Use address equality for
7115 constant evaluation. Call __equal for targets that require the
7116 definition to be non-inline.
7117 * testsuite/18_support/type_info/constexpr.cc: New test.
7119 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7121 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
7122 class and virtual functions as 'final'.
7123 (io_category_instance): Use constinit union to make the object
7125 * src/c++11/future.cc (future_error_category): Define class and
7126 virtual functions as 'final'.
7127 (future_category_instance): Use constinit union.
7129 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7131 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
7132 versioned namespace from the type name that is printed.
7134 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7136 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
7137 printer for std::regex NFA states.
7139 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7141 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
7142 placeholders in comments.
7143 * testsuite/23_containers/forward_list/operations/2.cc:
7145 * testsuite/23_containers/forward_list/operations/3.cc:
7147 * testsuite/23_containers/forward_list/operations/4.cc:
7149 * testsuite/23_containers/forward_list/operations/5.cc:
7151 * testsuite/23_containers/forward_list/operations/6.cc:
7153 * testsuite/23_containers/forward_list/operations/7.cc:
7156 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7159 * include/bits/stl_deque.h (operator-): Do not use 0 as null
7162 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7164 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
7165 Use std::_Construct for construct.
7167 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7170 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
7171 * doc/html/faq.html: Regenerate.
7173 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7175 * include/bits/regex.h (__regex_algo_impl): Change __policy and
7176 __match_mode template parameters to be function parameters.
7177 (regex_match, regex_search): Pass policy and match mode as
7179 * include/bits/regex.tcc (__regex_algo_impl): Change template
7180 parameters to function parameters.
7181 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
7182 'if constexpr' for conditions using template parameters.
7183 (_RegexTranslator): Likewise.
7184 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
7186 * testsuite/util/testsuite_regex.h (regex_match_debug)
7187 (regex_search_debug): Move template arguments to function
7190 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7192 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
7193 results even if the match failed.
7195 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7197 * include/bits/regex_compiler.tcc: Adjust all calls to
7198 __throw_regex_error.
7199 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
7201 * include/bits/regex_scanner.tcc: Likewise.
7202 * src/c++11/regex.cc (desc): New helper function.
7203 (regex_error::regex_error(error_type)): Use desc to get a string
7204 corresponding to the error code.
7207 Copyright (C) 2022 Free Software Foundation, Inc.
7209 Copying and distribution of this file, with or without modification,
7210 are permitted in any medium without royalty provided the copyright
7211 notice and this notice are preserved.