]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog-2022
updat_bb_profile_for_threading TLC
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog-2022
CommitLineData
d64f8779
JJ
12022-12-24 Iain Sandoe <iain@sandoe.co.uk>
2
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
5 BSD.
6
72022-12-24 Iain Sandoe <iain@sandoe.co.uk>
8
9 * testsuite/std/time/tzdb/leap_seconds.cc: Initialize the
10 override_used test var to false.
11
122022-12-23 Eric Botcazou <ebotcazou@adacore.com>
13
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):
25 Define to 1.
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
29 with USE_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.
35
362022-12-23 Jonathan Wakely <jwakely@redhat.com>
37
38 * src/c++20/tzdb.cc [__APPLE__] (zoneinfo_dir_override): Add
39 definition.
40
412022-12-23 Jonathan Wakely <jwakely@redhat.com>
42
43 * src/c++20/tzdb.cc: Remove static_assert.
44
452022-12-23 Arsen Arsenović <arsen@aarsen.me>
46 Jonathan Wakely <jwakely@redhat.com>
47
48 PR libstdc++/107792
49 PR libstdc++/107778
50 * src/experimental/contract.cc (handle_contract_violation): Make
51 output more readable.
52
532022-12-22 Jonathan Wakely <jwakely@redhat.com>
54
55 PR libstdc++/105730
56 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
57 Access private data member of base class and call its wait
58 member.
59
602022-12-22 Jonathan Wakely <jwakely@redhat.com>
61
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.
87
882022-12-22 Jonathan Wakely <jwakely@redhat.com>
89
90 * include/std/format (__format::__write_padded_as_spec): New
91 function.
92 (__format::__formatter_str, __format::__formatter_int::format)
93 (formatter<const void*, charT>): Use it.
94
952022-12-22 Jonathan Wakely <jwakely@redhat.com>
96
97 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter)
98 (StdChronoTimePointPrinter, StdChronoZonedTimePrinter)
99 (StdChronoCalendarPrinter, StdChronoTimeZonePrinter)
100 (StdChronoLeapSecondPrinter, StdChronoTzdbPrinter)
101 (StdChronoTimeZoneRulePrinter): New printers.
102
1032022-12-22 Jonathan Wakely <jwakely@redhat.com>
104
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
111 of leap seconds.
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
127 parse.
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.
143
1442022-12-22 Jonathan Wakely <jwakely@redhat.com>
145
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
151 constraints.
152
1532022-12-22 Jonathan Wakely <jwakely@redhat.com>
154
155 * include/std/chrono: Use nodiscard attribute.
156
1572022-12-21 Jakub Jelinek <jakub@redhat.com>
158
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.
163
1642022-12-19 Arsen Arsenović <arsen@aarsen.me>
165
166 * include/experimental/contract: Lowercase the constants in
167 contract_violation_continuation_mode.
168
1692022-12-16 John David Anglin <danglin@gcc.gnu.org>
170
171 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
172
1732022-12-16 Jonathan Wakely <jwakely@redhat.com>
174
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
179 value.
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.
185
1862022-12-16 Jonathan Wakely <jwakely@redhat.com>
187
188 * include/std/expected (expected::_M_swap_val_unex): Guard the
189 correct object.
190 (expected::swap): Move is_swappable
191 requirement from static_assert to constraint.
192 (swap): Likewise.
193 (operator==): Remove noexcept-specifier.
194 * testsuite/20_util/expected/swap.cc: Check swapping of
195 types without non-throwing move constructor. Check constraints
196 on swap.
197 * testsuite/20_util/expected/unexpected.cc: Check constraints on
198 swap.
199 * testsuite/20_util/expected/equality.cc: New test.
200
2012022-12-16 Jonathan Wakely <jwakely@redhat.com>
202
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:
208 New test.
209 * testsuite/20_util/scoped_allocator/outermost.cc: Add rebind to
210 test allocator.
211 * testsuite/23_containers/forward_list/48101_neg.cc: Prune new
212 static assert error.
213 * testsuite/23_containers/unordered_multiset/48101_neg.cc:
214 Likewise.
215 * testsuite/23_containers/unordered_set/48101_neg.cc:
216 Likewise.
217 * testsuite/23_containers/vector/52591.cc: Fix typo in rebind.
218
2192022-12-16 Jonathan Wakely <jwakely@redhat.com>
220
221 PR libstdc++/108118
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.
225
2262022-12-15 Jakub Jelinek <jakub@redhat.com>
227
228 PR libstdc++/108075
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
232 CXXABI_1.3.14.
233
2342022-12-14 Jonathan Wakely <jwakely@redhat.com>
235
236 PR libstdc++/108097
237 * include/std/stacktrace (basic_stracktrace::_Impl): Do not
238 multiply N by sizeof(value_type) when allocating.
239
2402022-12-13 Jakub Jelinek <jakub@redhat.com>
241
242 * src/libbacktrace/backtrace-rename.h (backtrace_uncompress_zstd):
243 Define.
244
2452022-12-12 Jonathan Wakely <jwakely@redhat.com>
246
247 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc: New
248 test.
249
2502022-12-12 Jonathan Wakely <jwakely@redhat.com>
251
252 PR libstdc++/108024
253 * include/std/format (basic_format_string): Fix constraint.
254 * testsuite/std/format/format_string.cc: New test.
255
2562022-12-12 Jonathan Wakely <jwakely@redhat.com>
257
258 * include/std/chrono (hh_mm_ss): Rename __is_unsigned member to
259 _S_is_unsigned.
260 * include/std/format (basic_format_context): Rename _Out_
261 template parameter to _Out2.
262 * testsuite/17_intro/names.cc: Add Windows SAL annotation
263 macros.
264
2652022-12-12 Jonathan Wakely <jwakely@redhat.com>
266
267 PR libstdc++/98034
268 * include/std/atomic (__cpp_lib_atomic_lock_free_type_aliases):
269 Define macro.
270 (atomic_signed_lock_free, atomic_unsigned_lock_free): Define
271 aliases.
272 * include/std/version (__cpp_lib_atomic_lock_free_type_aliases):
273 Define macro.
274 * testsuite/29_atomics/atomic/lock_free_aliases.cc: New test.
275
2762022-12-12 Jonathan Wakely <jwakely@redhat.com>
277
278 * include/std/stacktrace (operator<<): Only output to narrow
279 ostreams (LWG 3515).
280 * testsuite/19_diagnostics/stacktrace/synopsis.cc:
281
2822022-12-09 Jonathan Wakely <jwakely@redhat.com>
283
284 PR libstdc++/108015
285 * include/std/chrono (hh_mm_ss): Remove digit separators.
286
2872022-12-09 Jonathan Wakely <jwakely@redhat.com>
288
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
293
2942022-12-09 Jonathan Wakely <jwakely@redhat.com>
295
296 * include/bits/chrono.h (duration_cast, floor, round, abs, ceil)
297 (time_point_cast): Add [[nodiscard]] attribute and doxygen
298 comments.
299 (treat_as_floating_point): Add doxygen commen.
300
3012022-12-09 Jonathan Wakely <jwakely@redhat.com>
302
303 * include/bits/chrono.h (duration, time_point): Change 'struct'
304 to 'class'.
305
3062022-12-07 Jonathan Wakely <jwakely@redhat.com>
307 François Dumont <frs.dumont@gmail.com>
308
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.
315
3162022-12-06 Jonathan Wakely <jwakely@redhat.com>
317
318 PR libstdc++/107979
319 * testsuite/17_intro/names.cc: Do not check __unused on old
320 Glibc versions.
321
3222022-12-06 Jonathan Wakely <jwakely@redhat.com>
323
324 PR libstdc++/107871
325 * include/std/format (_Iter_sink::_M_overflow): Add cast to
326 size_t.
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.
330
3312022-12-06 Jonathan Wakely <jwakely@redhat.com>
332
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.
340
3412022-12-06 Jonathan Wakely <jwakely@redhat.com>
342
343 PR c++/106434
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.
347
3482022-12-06 Jonathan Wakely <jwakely@redhat.com>
349
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
356 member function.
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:
372 Likewise.
373 * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
374 Likewise.
375 * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
376 Likewise.
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:
381 Likewise.
382
3832022-12-06 Jonathan Wakely <jwakely@redhat.com>
384
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.
390
3912022-12-04 Iain Sandoe <iain@sandoe.co.uk>
392
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.
396
3972022-12-04 Iain Sandoe <iain@sandoe.co.uk>
398
399 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_WEAK_DEFINITION): Use the
400 implementation namespace for the weak attribute.
401
4022022-12-02 Björn Schäpers <bjoern@hazardy.de>
403 Jonathan Wakely <jwakely@redhat.com>
404
405 * include/std/stacktrace (stacktrace_entry::_S_err_handler): New
406 static function.
407 (stacktrace_entry, basic_stacktrace): Pass &_S_err_handler to
408 all calls to libbacktrace.
409
4102022-11-29 Jonathan Wakely <jwakely@redhat.com>
411
412 PR libstdc++/107852
413 PR libstdc++/106199
414 PR libstdc++/100366
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.
419
4202022-11-29 Jonathan Wakely <jwakely@redhat.com>
421
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.
428
4292022-11-29 Jonathan Wakely <jwakely@redhat.com>
430
431 * include/std/format: Rename all variables called __used or
432 __packed.
433 * testsuite/17_intro/badnames.cc: Add no_pch options.
434 * testsuite/17_intro/names.cc: Check __packed, __unused and
435 __used.
436
4372022-11-28 François Dumont <fdumont@gcc.gnu.org>
438
439 * testsuite/20_util/function/cons/70692.cc: Adapt dg-error message.
440
4412022-11-28 Jonathan Wakely <jwakely@redhat.com>
442
443 PR libstdc++/107801
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.
450
4512022-11-28 Jonathan Wakely <jwakely@redhat.com>
452
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.
456
4572022-11-28 Jonathan Wakely <jwakely@redhat.com>
458
459 PR libstdc++/107885
460 * libsupc++/hash_bytes.cc (_Hash_bytes): Convert to size_t
461 instead of implicit integer promotion to 16 bits.
462
4632022-11-28 Jonathan Wakely <jwakely@redhat.com>
464
465 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
466 Replace non-ASCII character.
467
4682022-11-28 Jonathan Wakely <jwakely@redhat.com>
469
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".
473
4742022-11-28 Jonathan Wakely <jwakely@redhat.com>
475
476 PR libstdc++/107466
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:
484 New test.
485
4862022-11-25 Jonathan Wakely <jwakely@redhat.com>
487
488 * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT
489 unless the AC_MSG_CHECKING happened.
490 * configure: Regenerate.
491
4922022-11-25 Jonathan Wakely <jwakely@redhat.com>
493
494 PR libstdc++/107850
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.
514
5152022-11-25 Jonathan Wakely <jwakely@redhat.com>
516
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!=):
521 Likewise.
522
5232022-11-25 Jonathan Wakely <jwakely@redhat.com>
524
525 * include/bits/stl_iterator_base_funcs.h (__distance):
526 Add always_inline attribute to overload for random
527 access iterators.
528 (advance, distance, next, prev): Add always_inline attribute to
529 inline functions that just forward to another function.
530
5312022-11-25 Jonathan Wakely <jwakely@redhat.com>
532
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.
537
5382022-11-24 Jonathan Wakely <jwakely@redhat.com>
539
540 PR libstdc++/106201
541 * testsuite/27_io/filesystem/iterators/106201.cc: Improve test.
542 * testsuite/experimental/filesystem/iterators/106201.cc: New test.
543
5442022-11-24 Jakub Jelinek <jakub@redhat.com>
545
546 PR libstdc++/107468
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.
550
5512022-11-24 Jakub Jelinek <jakub@redhat.com>
552
553 PR libstdc++/107815
554 * testsuite/20_util/to_chars/float128_c++23.cc (test): Disable
555 __FLT128_MAX__ test on Solaris. Fix up commented out debugging
556 printouts.
557
5582022-11-23 Jakub Jelinek <jakub@redhat.com>
559
560 PR libstdc++/107811
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.
564
5652022-11-23 Jonathan Wakely <jwakely@redhat.com>
566
567 PR libstdc++/107814
568 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
569 Use a static buffer with space after it.
570
5712022-11-22 Jonathan Wakely <jwakely@redhat.com>
572
573 PR libstdc++/107817
574 * include/std/charconv (__from_chars_alnum_to_val): Add
575 constexpr for C++20.
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.
579
5802022-11-22 Jonathan Wakely <jwakely@redhat.com>
581
582 PR libstdc++/106201
583 * testsuite/27_io/filesystem/iterators/106201.cc: New test.
584
5852022-11-22 Jonathan Wakely <jwakely@redhat.com>
586
587 PR libstdc++/107801
588 * src/c++17/memory_resource.cc (pool_sizes): Disable large pools
589 for targets with 16-bit int.
590
5912022-11-21 Jonathan Wakely <jwakely@redhat.com>
592
593 * include/std/functional (_Bind_front0): New class template.
594 (_Bind_front_t): Use _Bind_front0 when there are no bound
595 arguments.
596 * testsuite/20_util/function_objects/bind_front/107784.cc:
597 New test.
598
5992022-11-21 Jonathan Wakely <jwakely@redhat.com>
600
601 * include/bits/chrono.h (duration): Check preconditions on
602 template arguments before using them.
603
6042022-11-21 Jonathan Wakely <jwakely@redhat.com>
605
606 * include/std/tuple: Add better Doxygen comments.
607
6082022-11-21 Martin Liska <mliska@suse.cz>
609
610 * src/experimental/Makefile.in: Re-configure.
611
6122022-11-20 François Dumont <fdumont@gcc.gnu.org>
613
614 * include/std/format: Add std qualification on isxdigit calls.
615
6162022-11-19 Jonathan Wakely <jwakely@redhat.com>
617
618 * include/bits/range_access.h: Add always_inline attribute to
619 trivial functions.
620
6212022-11-19 Jonathan Wakely <jwakely@redhat.com>
622
623 * include/std/format: Fix -Wsign-compare warnings.
624
6252022-11-19 Jonathan Wakely <jwakely@redhat.com>
626
627 * include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename
628 parameter.
629
6302022-11-19 Jonathan Wakely <jwakely@redhat.com>
631
632 PR libstdc++/107649
633 * include/std/complex (__complex_proj): Fix requires-clause.
634
6352022-11-19 Jeff Chapman II <jchapman@lock3software.com>
636 Andrew Marmaduke <amarmaduke@lock3software.com>
637 Jason Merrill <jason@redhat.com>
638
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.
649
6502022-11-17 Jonathan Wakely <jwakely@redhat.com>
651
652 PR libstdc++/107720
653 * include/std/format [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]:
654 Declare overloads of std::to_chars for the alternative long
655 double type.
656
6572022-11-16 Jonathan Wakely <jwakely@redhat.com>
658
659 PR libstdc++/107720
660 * include/std/format (__format::_Arg_t): Fix typo in enumerator
661 name.
662 (_Arg_value::_S_get): Fix missing semi-colons.
663
6642022-11-16 Jonathan Wakely <jwakely@redhat.com>
665
666 * include/std/chrono (get_leap_second_info): Optimize.
667
6682022-11-16 Jonathan Wakely <jwakely@redhat.com>
669
670 PR libstdc++/107712
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'.
675
6762022-11-16 Jonathan Wakely <jwakely@redhat.com>
677
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.
681
6822022-11-16 Jonathan Wakely <jwakely@redhat.com>
683
684 * testsuite/std/time/clock/utc/1.cc: Check handling across leap
685 second insertion.
686
6872022-11-16 Patrick Palka <ppalka@redhat.com>
688
689 PR libstdc++/107701
690 * include/std/iostream (__ioinit): Adjust comment.
691 * src/c++98/globals_io.cc: Include "io_base_init.h" here
692 instead of ...
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.
696
6972022-11-16 Jakub Jelinek <jakub@redhat.com>
698 Jonathan Wakely <jwakely@redhat.com>
699
700 PR libstdc++/107649
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
707 float types.
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.
712
7132022-11-16 Jonathan Wakely <jwakely@redhat.com>
714
715 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make
716 expansion of std::string in manager name more robust.
717
7182022-11-16 Jonathan Wakely <jwakely@redhat.com>
719
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,
723 enhance docstring.
724
7252022-11-16 François Dumont <fdumont@gcc.gnu.org>
726
727 * python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field
728 'template'. Add self.targ1 to specify the first template parameter of the instantiation
729 to match.
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.
734
7352022-11-15 Jonathan Wakely <jwakely@redhat.com>
736
737 * testsuite/std/format/functions/format.cc: Do not use
738 std::make_unsigned_t<__int128>.
739
7402022-11-15 Jonathan Wakely <jwakely@redhat.com>
741
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.
748
7492022-11-15 Jonathan Wakely <jwakely@redhat.com>
750
751 PR libstdc++/107693
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.
758
7592022-11-15 Jonathan Wakely <jwakely@redhat.com>
760
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.
764
7652022-11-14 Jonathan Wakely <jwakely@redhat.com>
766
767 * python/Makefile.am (install-data-local): Use mkdirs_p for debug
768 libdir.
769 * python/Makefile.in: Regenerate.
770
7712022-11-14 Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
772
773 * src/Makefile.am (install-debug): Remove use of $(debugdir).
774 * src/Makefile.in: Regenerate.
775
7762022-11-13 Jonathan Wakely <jwakely@redhat.com>
777
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.
790
7912022-11-13 Jonathan Wakely <jwakely@redhat.com>
792
793 PR libstdc++/104166
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.
810
8112022-11-13 Jonathan Wakely <jwakely@redhat.com>
812
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.
819
8202022-11-12 Jakub Jelinek <jakub@redhat.com>
821
822 PR libstdc++/107636
823 * include/std/charconv (to_chars): Fix up powerpc64le _Float128
824 overload __extension__ placement.
825
8262022-11-12 Jonathan Wakely <jwakely@redhat.com>
827
828 * src/Makefile.am: Simplify debug build targets.
829 * src/Makefile.in: Regenerate.
830
8312022-11-12 Jonathan Wakely <jwakely@redhat.com>
832
833 PR libstdc++/103755
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.
840
8412022-11-11 Jonathan Wakely <jwakely@redhat.com>
842
843 PR libstdc++/95048
844 * include/experimental/bits/fs_path.h (path::_Cvt::_S_wconvert):
845 Construct codecvt directly instead of getting it from the
846 locale.
847
8482022-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
849
850 PR libstdc++/103295
851 * include/bits/basic_string.h (_M_use_local_data): Set active
852 member to _M_local_buf.
853
8542022-11-11 Jonathan Wakely <jwakely@redhat.com>
855
856 PR libstdc++/95048
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
872 test.
873
8742022-11-11 Jonathan Wakely <jwakely@redhat.com>
875
876 * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
877 const qualifier.
878 * testsuite/26_numerics/valarray/87641.cc (X::operator==):
879 Likewise.
880
8812022-11-11 Jonathan Wakely <jwakely@redhat.com>
882
883 * include/std/charconv (__from_chars_alnum_to_val_table::value):
884 [!__cpp_inline_variables]: Add non-inline definition.
885
8862022-11-11 Jonathan Wakely <jwakely@redhat.com>
887
888 * testsuite/experimental/propagate_const/observers/107525.cc:
889 Use type trait instead of C++17 variable template.
890
8912022-11-11 Jonathan Wakely <jwakely@redhat.com>
892
893 PR libstdc++/103755
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()):
899 Likewise.
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):
909 Likewise.
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):
913 Likewise.
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
917 defining has_facet.
918 * src/c++98/compatibility-ldbl.cc (__try_use_facet):
919 Instantiate.
920 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust
921 expected errors.
922
9232022-11-10 Jonathan Wakely <jwakely@redhat.com>
924
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.
930
9312022-11-08 Jonathan Wakely <jwakely@redhat.com>
932
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
940 diagnostics.
941 * testsuite/20_util/headers/memory/synopsis.cc: Add missing
942 noexcept.
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:
948 Likewise.
949 * testsuite/23_containers/map/modifiers/emplace/92300.cc:
950 Likewise.
951 * testsuite/23_containers/map/modifiers/insert/92300.cc:
952 Likewise.
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:
956 Likewise.
957 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
958 Likewise.
959
9602022-11-08 Jonathan Wakely <jwakely@redhat.com>
961
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.
973
9742022-11-08 Jonathan Wakely <jwakely@redhat.com>
975
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):
986 Likewise.
987
9882022-11-08 Charles-François Natali <cf.natali@gmail.com>
989
990 PR libstdc++/63746
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.
994
9952022-11-08 Will Hawkins <whh8b@obs.cr>
996 Jonathan Wakely <jwakely@redhat.com>
997
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.
1003
10042022-11-08 Jakub Jelinek <jakub@redhat.com>
1005
1006 * testsuite/20_util/to_chars/float128_c++23.cc (test): Uncomment
1007 denorm_min test.
1008
10092022-11-08 Jonathan Wakely <jwakely@redhat.com>
1010
1011 * doc/xml/authors.xml: Update the blurb listing my doc
1012 contributions.
1013
10142022-11-08 Jonathan Wakely <jwakely@redhat.com>
1015
1016 * doc/xml/authors.xml: Remove empty author element.
1017 * doc/xml/manual/spine.xml: Likewise.
1018 * doc/html/manual/index.html: Regenerate.
1019
10202022-11-08 Joseph Myers <joseph@codesourcery.com>
1021
1022 PR libstdc++/107562
1023 * src/c++17/floating_from_chars.cc (from_chars_impl): Fix syntax
1024 error.
1025
10262022-11-08 Jason Merrill <jason@redhat.com>
1027 Jakub Jelinek <jakub@redhat.com>
1028
1029 * testsuite/18_support/comparisons/algorithms/fallback.cc: Adjust
1030 asserts.
1031
10322022-11-07 Jakub Jelinek <jakub@redhat.com>
1033
1034 PR libstdc++/107562
1035 * src/c++17/floating_from_chars.cc (__strtof128): Put __asm before
1036 __attribute__.
1037 * src/c++17/floating_to_chars.cc (__strfromf128): Likewise.
1038
10392022-11-07 Patrick Palka <ppalka@redhat.com>
1040
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.
1046
10472022-11-07 Patrick Palka <ppalka@redhat.com>
1048
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.
1063
10642022-11-07 Jakub Jelinek <jakub@redhat.com>
1065
1066 PR libstdc++/107468
1067 * src/c++17/fast_float/MERGE: Adjust for merge from upstream.
1068 * src/c++17/fast_float/LOCAL_PATCHES: Remove commits that were
1069 upstreamed.
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.
1074
10752022-11-07 Jakub Jelinek <jakub@redhat.com>
1076
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):
1084 Define if needed.
1085 (__strtof128): Declare.
1086 (from_chars_impl): Handle _Float128.
1087 (from_chars): New _Float128 overload if USE_STRTOF128_FOR_FROM_CHARS
1088 is define.
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
1094 __float128.
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
1099 _Float128 cases.
1100 * testsuite/20_util/to_chars/float128_c++23.cc: New test.
1101
11022022-11-06 Patrick Palka <ppalka@redhat.com>
1103
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.
1132
11332022-11-06 Patrick Palka <ppalka@redhat.com>
1134
1135 PR libstdc++/44952
1136 PR libstdc++/39796
1137 PR libstdc++/98108
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.
1143
11442022-11-05 Jakob Hasse <0xjakob@users.noreply.github.com>
1145
1146 PR libstdc++/105387
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.
1151
11522022-11-05 Jonathan Wakely <jwakely@redhat.com>
1153
1154 PR libstdc++/107525
1155 * include/experimental/propagate_const (operator element_type*()):
1156 Move into base class that can be partially specilized to iompose
1157 constraints.
1158 (operator const element_type*()): Likewise.
1159 * testsuite/experimental/propagate_const/observers/107525.cc: New test.
1160
11612022-11-04 Jonathan Wakely <jwakely@redhat.com>
1162
1163 PR libstdc++/107500
1164 * libsupc++/eh_globals.cc (eh_globals): Remove immortalizing
1165 wrapper.
1166 (__cxxabiv1::__cxa_get_globals_fast): Adjust.
1167 (__cxxabiv1::__cxa_get_globals): Adjust.
1168
11692022-11-04 Jonathan Wakely <jwakely@redhat.com>
1170
1171 PR libstdc++/107511
1172 * libsupc++/eh_alloc.cc (_GNU_SOURCE): Define.
1173
11742022-11-03 Jonathan Wakely <jwakely@redhat.com>
1175
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.
1180
11812022-11-02 Jonathan Wakely <jwakely@redhat.com>
1182
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.
1186
11872022-11-02 Patrick Palka <ppalka@redhat.com>
1188
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.
1192
11932022-11-02 Jonathan Wakely <jwakely@redhat.com>
1194
1195 * include/std/expected (expected::_M_invalid): Remove.
1196
11972022-11-02 Jonathan Wakely <jwakely@redhat.com>
1198
1199 * include/std/variant (__variant::_Multi_array::__untag_result):
1200 Use pragma to suppress warning.
1201
12022022-11-02 Jakub Jelinek <jakub@redhat.com>
1203
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.
1207
12082022-11-02 Jakub Jelinek <jakub@redhat.com>
1209
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
1213 unbiased_exponent.
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):
1219 Likewise.
1220
12212022-11-01 Jakub Jelinek <jakub@redhat.com>
1222
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
1234 specializations.
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.
1245
12462022-11-01 Jakub Jelinek <jakub@redhat.com>
1247
1248 * include/std/charconv (__to_chars_float16_t, __to_chars_bfloat16_t):
1249 Declare.
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.
1269
12702022-11-01 Jakub Jelinek <jakub@redhat.com>
1271
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):
1280 Formatting fixes.
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".
1286
12872022-10-31 Jakub Jelinek <jakub@redhat.com>
1288
1289 * include/std/complex (complex::complex converting ctor): For C++23
1290 use explicit specifier with constant expression. Explicitly cast
1291 both parts to _Tp.
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)
1296 overloads.
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
1301 and explicit casts.
1302 (__complex_type): New template.
1303 (complex): New partial specialization for types with extended floating
1304 point types.
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.
1313
13142022-10-31 Jakub Jelinek <jakub@redhat.com>
1315
1316 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
1317 Uncomment.
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.
1324
13252022-10-28 Jonathan Wakely <jwakely@redhat.com>
1326
1327 * include/bits/fs_path.h (path::filename()): Fix dangling
1328 reference.
1329
13302022-10-28 Arsen Arsenović <arsen@aarsen.me>
1331
1332 * include/std/functional: Make placeholders inline, if possible.
1333
13342022-10-28 Arsen Arsenović <arsen@aarsen.me>
1335
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.
1355
13562022-10-28 Jonathan Wakely <jwakely@redhat.com>
1357
1358 PR libstdc++/107376
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
1363 _M_cur_results.
1364 * testsuite/28_regex/algorithms/regex_match/107376.cc: New test.
1365
13662022-10-26 Marek Polacek <polacek@redhat.com>
1367
1368 PR c++/106393
1369 * include/bits/locale_classes.tcc: Add #pragma to disable
1370 -Wdangling-reference with std::use_facet.
1371
13722022-10-21 Arsen Arsenović <arsen@aarsen.me>
1373
1374 * acinclude.m4: Default hosted to off if building without
1375 headers and without newlib.
1376 * configure: Regenerate.
1377
13782022-10-21 Jonathan Wakely <jwakely@redhat.com>
1379
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.
1384
13852022-10-20 Patrick Palka <ppalka@redhat.com>
1386
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.
1392
13932022-10-19 Patrick Palka <ppalka@redhat.com>
1394
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.
1404
14052022-10-19 Patrick Palka <ppalka@redhat.com>
1406
1407 PR libstdc++/107313
1408 * include/std/ranges (stride_view::_Iterator::operator-): Fix typo.
1409 * testsuite/std/ranges/adaptors/stride/1.cc (test03): New test.
1410
14112022-10-19 LIU Hao <lh_mouse@126.com>
1412
1413 * src/c++11/thread.cc (get_nprocs): Add new implementation
1414 for native Windows targets
1415
14162022-10-19 LIU Hao <lh_mouse@126.com>
1417
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
1422 available
1423 * configure: Regenerate
1424
14252022-10-19 Jakub Jelinek <jakub@redhat.com>
1426
1427 PR c++/106652
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
1434 overload.
1435 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)):
1436 Likewise.
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.
1440
14412022-10-18 Patrick Palka <ppalka@redhat.com>
1442
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.
1448
14492022-10-18 Jakub Jelinek <jakub@redhat.com>
1450
1451 PR c++/106652
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:
1496 New test.
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.
1500
15012022-10-17 Jonathan Wakely <jwakely@redhat.com>
1502
1503 * include/std/charconv (__cpp_lib_constexpr_charconv): Define to
1504 correct value.
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.
1508
15092022-10-15 Jonathan Wakely <jwakely@redhat.com>
1510
1511 * src/c++11/debug.cc (print_raw): Move inside #if block.
1512
15132022-10-15 Jonathan Wakely <jwakely@redhat.com>
1514
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
1519 constexpr.
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.
1529
15302022-10-15 Jonathan Wakely <jwakely@redhat.com>
1531
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.
1539
15402022-10-14 Jonathan Wakely <jwakely@redhat.com>
1541
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
1546 pool.
1547 (__cxxabiv1::__cxa_free_exception) [!USE_POOL]: Likewise.
1548 (__cxxabiv1::__cxa_allocate_dependent_exception) [!USE_POOL]:
1549 Likewise.
1550 (__cxxabiv1::__cxa_free_dependent_exception) [!USE_POOL]:
1551 Likewise.
1552
15532022-10-14 Jonathan Wakely <jwakely@redhat.com>
1554
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
1558 fprintf directly.
1559
15602022-10-14 Jonathan Wakely <jwakely@redhat.com>
1561
1562 * include/std/iostream: Use markdown in Doxygen comment.
1563
15642022-10-12 François Dumont <fdumont@gcc.gnu.org>
1565
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<>&)):
1569 Remove.
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.
1585
15862022-10-12 Patrick Palka <ppalka@redhat.com>
1587
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.
1594
15952022-10-12 Martin Liska <mliska@suse.cz>
1596
1597 * configure: Regenerate.
1598
15992022-10-11 Jonathan Wakely <jwakely@redhat.com>
1600
1601 PR bootstrap/107221
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.
1606
16072022-10-11 Jonathan Wakely <jwakely@redhat.com>
1608
1609 PR libstdc++/68606
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
1627 based on word size.
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.
1647
16482022-10-11 Olivier Hainque <hainque@adacore.com>
1649 Olivier Hainque <hainque@adacore.com>
1650
1651 * configure: Regenerate.
1652
16532022-10-10 Jonathan Wakely <jwakely@redhat.com>
1654
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:
1660 Likewise.
1661 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1662 Likewise.
1663 * testsuite/20_util/make_signed/requirements/uninstantiated.cc:
1664 New test.
1665 * testsuite/20_util/make_unsigned/requirements/uninstantiated.cc:
1666 New test.
1667
16682022-10-10 Jonathan Wakely <jwakely@redhat.com>
1669
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:
1674 Check cv bool.
1675 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1676 Likewise.
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.
1681
16822022-10-07 Jonathan Wakely <jwakely@redhat.com>
1683
1684 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Add libstdcxx-hosted
1685 enable arg as an alias for hosted-libstdcxx enable arg.
1686 * configure: Regenerate.
1687
16882022-10-07 Jonathan Wakely <jwakely@redhat.com>
1689
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>.
1693
16942022-10-07 Jonathan Wakely <jwakely@redhat.com>
1695
1696 * doc/xml/manual/intro.xml: Add role="bold" attribute to
1697 emphasis elements for issue titles.
1698 * doc/html/manual/bugs.html: Regenerate.
1699
17002022-10-05 Jonathan Wakely <jwakely@redhat.com>
1701
1702 * include/Makefile.in: Regenerate.
1703
17042022-10-05 Jonathan Wakely <jwakely@redhat.com>
1705
1706 * include/bits/invoke.h (__invoke_r): Check
1707 __has_builtin(__reference_converts_from_temporary) before using
1708 built-in.
1709
17102022-10-04 Jonathan Wakely <jwakely@redhat.com>
1711
1712 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
1713 <sstream header.
1714 (test04): Remove constexpr for old std::string ABI and test at
1715 runtime.
1716
17172022-10-04 Jonathan Wakely <jwakely@redhat.com>
1718
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.
1723
17242022-10-04 Jonathan Wakely <jwakely@redhat.com>
1725
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.
1729
17302022-10-04 Patrick Palka <ppalka@redhat.com>
1731
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.
1738
17392022-10-04 Jonathan Wakely <jwakely@redhat.com>
1740
1741 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
1742 for freestanding.
1743
17442022-10-04 Jonathan Wakely <jwakely@redhat.com>
1745
1746 PR libstdc++/107139
1747 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
1748 conditionals.
1749
17502022-10-04 Jonathan Wakely <jwakely@redhat.com>
1751
1752 PR libstdc++/107134
1753 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
1754 <stdint-gcc.h> directly.
1755
17562022-10-04 Jonathan Wakely <jwakely@redhat.com>
1757
1758 PR libstdc++/107135
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.
1765
17662022-10-04 Patrick Palka <ppalka@redhat.com>
1767
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.
1777
17782022-10-04 Arsen Arsenović <arsen@aarsen.me>
1779
1780 * include/std/iostream: Use ///< for inline documentation.
1781 * include/std/limits: Likewise.
1782 * include/experimental/internet: Likewise.
1783
17842022-10-03 Jonathan Wakely <jwakely@redhat.com>
1785
1786 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
1787 * doc/html/manual/status.html: Regenerate.
1788
17892022-10-03 Arsen Arsenović <arsen@aarsen.me>
1790
1791 PR libstdc++/103626
1792 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
1793 Require ET hosted.
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:
1804 Likewise.
1805 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
1806 Likewise.
1807 * testsuite/20_util/allocator/requirements/typedefs.cc:
1808 Likewise.
1809 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
1810 Likewise.
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:
1815 Likewise.
1816 * testsuite/20_util/allocator_traits/members/pointers.cc:
1817 Likewise.
1818 * testsuite/20_util/allocator_traits/requirements/typedefs.cc:
1819 Likewise.
1820 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
1821 Likewise.
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:
1836 Likewise.
1837 * testsuite/20_util/enable_shared_from_this/members/const.cc:
1838 Likewise.
1839 * testsuite/20_util/enable_shared_from_this/members/reinit.cc:
1840 Likewise.
1841 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
1842 Likewise.
1843 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1844 Likewise.
1845 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
1846 Likewise.
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:
1881 Likewise.
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:
1888 Likewise.
1889 * testsuite/20_util/function/requirements/explicit_instantiation.cc:
1890 Likewise.
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:
1896 Likewise.
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:
1911 Likewise.
1912 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
1913 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
1914 Likewise.
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:
1919 Likewise.
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:
1925 Likewise.
1926 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
1927 Likewise.
1928 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
1929 Likewise.
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:
1939 Likewise.
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:
1965 Likewise.
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:
1970 Likewise.
1971 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
1972 Likewise.
1973 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
1974 Likewise.
1975 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
1976 Likewise.
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:
1981 Likewise.
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:
1985 Likewise.
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:
1994 Likewise.
1995 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
1996 Likewise.
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:
2007 Likewise.
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:
2014 Likewise.
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:
2018 Likewise.
2019 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
2020 Likewise.
2021 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
2022 Likewise.
2023 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
2024 Likewise.
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:
2032 Likewise.
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:
2036 Likewise.
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:
2041 Likewise.
2042 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
2043 Likewise.
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:
2048 Likewise.
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:
2052 Likewise.
2053 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
2054 * testsuite/20_util/weak_ptr/observers/owner_before.cc:
2055 Likewise.
2056 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
2057 Likewise.
2058 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
2059 Likewise.
2060 * testsuite/21_strings/basic_string/version.cc: Likewise.
2061 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
2062 Likewise.
2063 * testsuite/21_strings/c_strings/char/69626.cc: Likewise.
2064 * testsuite/21_strings/char_traits/requirements/version.cc:
2065 Likewise.
2066 * testsuite/23_containers/vector/requirements/version.cc:
2067 Likewise.
2068 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
2069 Likewise.
2070 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
2071 Likewise.
2072 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
2073 Likewise.
2074 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
2075 Likewise.
2076 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise.
2077 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
2078 Likewise.
2079 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
2080 Likewise.
2081 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
2082 Likewise.
2083 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
2084 Likewise.
2085 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
2086 Likewise.
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:
2090 Likewise.
2091 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
2092 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2093 Likewise.
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:
2099 Likewise.
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:
2103 Likewise.
2104 * testsuite/25_algorithms/stable_partition/mem_check.cc:
2105 Likewise.
2106 * testsuite/25_algorithms/stable_partition/moveable.cc:
2107 Likewise.
2108 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
2109 Likewise.
2110 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
2111 Likewise.
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:
2121 Likewise.
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:
2125 Likewise.
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:
2143 Likewise.
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.
2155
21562022-10-03 Jonathan Wakely <jwakely@redhat.com>
2157
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
2161 throwing.
2162
21632022-10-03 Arsen Arsenović <arsen@aarsen.me>
2164
2165 PR libstdc++/103626
2166 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
2167 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
2168 hosted.
2169 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
2170
21712022-10-03 Jonathan Wakely <jwakely@redhat.com>
2172
2173 PR libstdc++/103626
2174 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2175 Also require hosted.
2176 (check_effective_target_hosted): New proc.
2177
21782022-10-03 Arsen Arsenović <arsen@aarsen.me>
2179 Jonathan Wakely <jwakely@redhat.com>
2180
2181 PR libstdc++/103626
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__]:
2191 Likewise.
2192 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
2193 Likewise.
2194 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
2195 Likewise.
2196 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
2197 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
2198 Likewise.
2199 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
2200 Likewise.
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.
2204
22052022-10-03 Arsen Arsenović <arsen@aarsen.me>
2206
2207 PR libstdc++/106953
2208 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
2209 install-freestanding-headers, unifying it with the usual
2210 install-headers
2211 * include/Makefile.in: Regenerate.
2212
22132022-10-03 Arsen Arsenović <arsen@aarsen.me>
2214 Jonathan Wakely <jwakely@redhat.com>
2215
2216 PR libstdc++/103626
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
2378 freestanding.
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):
2395 Likewise.
2396 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++
2397 tests.
2398
23992022-10-03 Jonathan Wakely <jwakely@redhat.com>
2400 Arsen Arsenović <arsen@aarsen.me>
2401
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.
2405
24062022-10-03 Arsen Arsenović <arsen@aarsen.me>
2407
2408 * configure.ac: Remove any lines that unconditionally include
2409 <stdio.h> from ac_includes_default, when running Autoconf <2.70.
2410 * configure: Regenerate.
2411
24122022-10-03 Jonathan Wakely <jwakely@redhat.com>
2413
2414 PR libstdc++/103626
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
2419 grep pattern.
2420 * include/Makefile.in: Regenerate.
2421 * testsuite/lib/libstdc++.exp (v3-build_support): Use
2422 -fno-freestanding.
2423 * testsuite/libstdc++-abi/abi.exp: Likewise.
2424
24252022-10-03 Jonathan Wakely <jwakely@redhat.com>
2426
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:
2430 Likewise.
2431
24322022-10-03 François Dumont <fdumont@gcc.gnu.org>
2433
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
2443 std::__cxx11::list.
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
2447 and debug mode.
2448 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2449
24502022-09-30 Jonathan Wakely <jwakely@redhat.com>
2451
2452 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
2453 from binary literal instead of using stringstream.
2454
24552022-09-30 Jonathan Wakely <jwakely@redhat.com>
2456
2457 * include/std/bitset (operator>>): Use a simple buffer instead
2458 of std::basic_string.
2459
24602022-09-30 Jonathan Wakely <jwakely@redhat.com>
2461
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)):
2465 Remove.
2466 (_M_copy_to_string(const basic_string&)): Remove.
2467
24682022-09-30 Jonathan Wakely <jwakely@redhat.com>
2469
2470 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
2471 directive.
2472
24732022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
2474 Yvan ROUX <yvan.roux@foss.st.com>
2475
2476 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.
2477
24782022-09-30 Arsen Arsenović <arsen@aarsen.me>
2479
2480 * include/std/bitset: Include <bits/stl_algobase.h>.
2481
24822022-09-29 François Dumont <fdumont@gcc.gnu.org>
2483
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
2486 namespace.
2487
24882022-09-29 Patrick Palka <ppalka@redhat.com>
2489
2490 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
2491 __remove_cv and use __remove_cv_t instead.
2492
24932022-09-29 Jonathan Wakely <jwakely@redhat.com>
2494
2495 * include/std/type_traits (__is_invocable_impl): Check
2496 __has_builtin(__reference_converts_from_temporary) before using
2497 built-in.
2498
24992022-09-28 Jonathan Wakely <jwakely@redhat.com>
2500
2501 * doc/xml/manual/evolution.xml: Document std::bind API
2502 changes.
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
2513 warnings in C++17.
2514 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
2515 ill-formed in C++20.
2516
25172022-09-28 Jonathan Wakely <jwakely@redhat.com>
2518
2519 PR libstdc++/70692
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:
2535 New test.
2536 * testsuite/20_util/is_invocable/dangling_ref.cc: New test.
2537 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
2538 New test.
2539
25402022-09-27 Jonathan Wakely <jwakely@redhat.com>
2541
2542 PR c++/107049
2543 * testsuite/20_util/is_convertible/requirements/access.cc: New
2544 test.
2545
25462022-09-27 Jonathan Wakely <jwakely@redhat.com>
2547
2548 PR c++/106651
2549 * include/bits/std_function.h (__function_guide_t): New alias
2550 template.
2551 [__cpp_static_call_operator] (__function_guide_static_helper):
2552 New class template.
2553 (function): Use __function_guide_t in deduction guide.
2554 * include/std/future (packaged_task): Use __function_guide_t in
2555 deduction guide.
2556 * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
2557 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2558 New test.
2559
25602022-09-26 Jonathan Wakely <jwakely@redhat.com>
2561
2562 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
2563 Also define the __ptr_traits_elem class template for the
2564 concepts case.
2565 (pointer_traits<Ptr>): Remove constrained partial
2566 specialization.
2567 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
2568 ambiguitiy with program-defined partial specialization.
2569
25702022-09-26 Jonathan Wakely <jwakely@redhat.com>
2571
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.
2575
25762022-09-26 Jonathan Wakely <jwakely@redhat.com>
2577
2578 PR libstdc++/107037
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.
2582
25832022-09-24 Jonathan Wakely <jwakely@redhat.com>
2584
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
2591 template.
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.
2598
25992022-09-23 Jonathan Wakely <jwakely@redhat.com>
2600
2601 * testsuite/20_util/is_assignable/requirements/access.cc:
2602 New test.
2603
26042022-09-23 Jonathan Wakely <jwakely@redhat.com>
2605
2606 PR libstdc++/91456
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.
2617
26182022-09-23 Marek Polacek <polacek@redhat.com>
2619
2620 PR c++/106784
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.
2624
26252022-09-23 Jonathan Wakely <jwakely@redhat.com>
2626
2627 * include/std/bitset (operator>>): Do not copy for N==0.
2628 * testsuite/20_util/bitset/io/input.cc: Add comment.
2629
26302022-09-23 Jonathan Wakely <jwakely@redhat.com>
2631
2632 * include/debug/bitset (__debug::bitset): Add constexpr to all
2633 member functions.
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
2640 for C++23.
2641
26422022-09-23 Jonathan Wakely <jwakely@redhat.com>
2643
2644 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
2645 instead of iterating over individual bits.
2646
26472022-09-22 Jonathan Wakely <jwakely@redhat.com>
2648
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.
2658
26592022-09-22 Jonathan Wakely <jwakely@redhat.com>
2660
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.
2729
27302022-09-22 François Dumont <fdumont@gcc.gnu.org>
2731
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.
2735
27362022-09-21 Jonathan Wakely <jwakely@redhat.com>
2737
2738 PR libstdc++/91456
2739 * testsuite/20_util/function/91456.cc: Add comment with PR
2740 number.
2741 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
2742 std::function checks with std::is_invocable_r checks.
2743
27442022-09-21 Jonathan Wakely <jwakely@redhat.com>
2745
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:
2749 Likewise.
2750 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2751 Likewise.
2752 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2753 Likewise.
2754 * testsuite/17_intro/headers/c++2020/all_attributes.cc:
2755 Likewise.
2756
27572022-09-21 Jonathan Wakely <jwakely@redhat.com>
2758
2759 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
2760 from C++11 and later.
2761
27622022-09-21 Jonathan Wakely <jwakely@redhat.com>
2763
2764 * doc/xml/manual/documentation_hacking.xml: Remove trailing
2765 whitespace.
2766 * doc/xml/manual/policy_data_structures.xml: Likewise.
2767
27682022-09-21 Jonathan Wakely <jwakely@redhat.com>
2769
2770 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
2771 using-declaration for _Exit.
2772
27732022-09-21 Jonathan Wakely <jwakely@redhat.com>
2774
2775 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
2776 call to std::abort.
2777
27782022-09-21 Jonathan Wakely <jwakely@redhat.com>
2779
2780 * include/bits/ranges_base.h: Include <initializer_list>.
2781
27822022-09-20 Jonathan Wakely <jwakely@redhat.com>
2783
2784 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
2785 missing space.
2786
27872022-09-16 Jonathan Wakely <jwakely@redhat.com>
2788
2789 PR libstdc++/106953
2790 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
2791 shared_ptr members.
2792 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
2793 std::allocator_traits<std::allocator<T>> specializations for
2794 freestanding.
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
2807 freestanding.
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.
2826
28272022-09-16 Jonathan Wakely <jwakely@redhat.com>
2828
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.
2833
28342022-09-16 Jonathan Wakely <jwakely@redhat.com>
2835
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
2842 std::iterator.
2843 * include/std/iterator: Do not include <iosfwd>.
2844
28452022-09-16 Jonathan Wakely <jwakely@redhat.com>
2846
2847 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
2848 Store value with non-zero padding bits after construction.
2849
28502022-09-16 Jonathan Wakely <jwakely@redhat.com>
2851
2852 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
2853 (__detail::_Adaptor::_M_g): Make public.
2854 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial
2855 specialization.
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
2861 of adaptor.
2862 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
2863 Fix comment.
2864 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
2865 Check member typedefs have the correct types.
2866
28672022-09-16 Jonathan Wakely <jwakely@redhat.com>
2868
2869 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
2870 (_Error_formatter): Use 0 as null pointer constant.
2871
28722022-09-16 Jonathan Wakely <jwakely@redhat.com>
2873
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.
2877
28782022-09-16 Jonathan Wakely <jwakely@redhat.com>
2879
2880 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
2881 * include/bits/allocator.h: Fix nesting of Doxygen commands.
2882
28832022-09-16 Jonathan Wakely <jwakely@redhat.com>
2884
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.
2888
28892022-09-15 Jonathan Wakely <jwakely@redhat.com>
2890
2891 * include/std/memory: Do not include <bits/stl_algobase.h>.
2892
28932022-09-15 Jonathan Wakely <jwakely@redhat.com>
2894
2895 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
2896 Replace with ...
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.
2905
29062022-09-15 Patrick Palka <ppalka@redhat.com>
2907
2908 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
2909 Move to ...
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.
2916
29172022-09-15 François Dumont <fdumont@gcc.gnu.org>
2918
2919 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
2920 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.
2921
29222022-09-15 François Dumont <fdumont@gcc.gnu.org>
2923
2924 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
2925 symbols.
2926
29272022-09-14 Jonathan Wakely <jwakely@redhat.com>
2928
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.
2935
29362022-09-14 Jonathan Wakely <jwakely@redhat.com>
2937
2938 * include/bits/stl_tempbuf.h: Include <new>.
2939
29402022-09-14 Jonathan Wakely <jwakely@redhat.com>
2941
2942 * testsuite/17_intro/names.cc: Explain why poison pragma can't
2943 be used.
2944
29452022-09-14 Jonathan Wakely <jwakely@redhat.com>
2946
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:
2951 New test.
2952
29532022-09-14 Jonathan Wakely <jwakely@redhat.com>
2954
2955 * doc/xml/manual/intro.xml: Document LWG 1203.
2956 * doc/html/*: Regenerate.
2957
29582022-09-14 Philipp Fent <fent@in.tum.de>
2959
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
2965 streams.
2966 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
2967 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2968
29692022-09-13 Patrick Palka <ppalka@redhat.com>
2970
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.
2981
29822022-09-13 Patrick Palka <ppalka@redhat.com>
2983
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
2990 ranges.
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.
2996
29972022-09-13 Patrick Palka <ppalka@redhat.com>
2998
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
3002 as per LWG 3569.
3003 (join_view::_Iterator::_Iterator): Relax constraints as
3004 per LWG 3569.
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.
3012
30132022-09-13 Patrick Palka <ppalka@redhat.com>
3014
3015 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
3016 Add parentheses to avoid -Wparentheses warning.
3017
30182022-09-12 Patrick Palka <ppalka@redhat.com>
3019
3020 PR libstdc++/106320
3021 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
3022
30232022-09-12 Jonathan Wakely <jwakely@redhat.com>
3024
3025 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
3026 comments.
3027 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
3028 Likewise.
3029
30302022-09-12 Jakub Jelinek <jakub@redhat.com>
3031
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
3038 GLIBCXX_3.4.31.
3039 * include/bits/basic_string.h (std::basic_string::_M_replace_cold):
3040 Declare.
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.
3046
30472022-09-09 Jonathan Wakely <jwakely@redhat.com>
3048
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.
3052
30532022-09-09 Patrick Palka <ppalka@redhat.com>
3054
3055 PR libstdc++/106803
3056 * include/std/ranges (views::_ZipTransform::operator()): Correct
3057 return type in the empty case.
3058 (views::_AdjacentTransform::operator()): Likewise.
3059
30602022-09-09 Patrick Palka <ppalka@redhat.com>
3061
3062 PR libstdc++/106798
3063 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
3064 typo.
3065 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.
3066
30672022-09-09 Patrick Palka <ppalka@redhat.com>
3068
3069 PR libstdc++/106766
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.
3074
30752022-09-08 François Dumont <fdumont@gcc.gnu.org>
3076
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.
3080
30812022-09-08 Jonathan Wakely <jwakely@redhat.com>
3082
3083 PR c++/106838
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:
3087 Likewise.
3088 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
3089 Likewise.
3090 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
3091 Likewise.
3092 * testsuite/20_util/is_swappable_with/incomplete_neg.cc:
3093 Likewise.
3094
30952022-09-08 Jonathan Wakely <jwakely@redhat.com>
3096
3097 * include/c_global/cstddef (byte): Add always_inline attribute
3098 to all operator overloads.
3099 (to_integer): Add always_inline attribute.
3100
31012022-09-08 Thomas Rodgers <trodgers@redhat.com>
3102 Jakub Jelinek <jakub@redhat.com>
3103 Jonathan Wakely <jwakely@redhat.com>
3104
3105 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
3106 New function.
3107 (__atomic_impl::clear_padding): Likewise.
3108 (__atomic_impl::__compare_exchange): Likewise.
3109 (__atomic_impl::compare_exchange_weak): Delegate to
3110 __compare_exchange.
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
3119 test.
3120 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
3121 New test.
3122
31232022-09-08 Jonathan Wakely <jwakely@redhat.com>
3124
3125 * include/std/system_error (__adl_only::make_error_code): Add
3126 deleted function.
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)):
3131 Likewise.
3132 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
3133 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
3134
31352022-09-07 Jonathan Wakely <jwakely@redhat.com>
3136
3137 * include/std/barrier: Add missing runtime exception.
3138
31392022-09-07 Patrick Palka <ppalka@redhat.com>
3140
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.
3144
31452022-09-07 Patrick Palka <ppalka@redhat.com>
3146
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
3150 true_type.
3151 (__is_null_pointer_helper, is_null_pointer): Likewise.
3152
31532022-09-07 Jason Merrill <jason@redhat.com>
3154
3155 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
3156 call in simple success case.
3157
31582022-09-06 Philipp Fent <fent@in.tum.de>
3159
3160 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
3161 tuple indices.
3162 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
3163
31642022-09-05 Jonathan Wakely <jwakely@redhat.com>
3165
3166 * include/std/type_traits (__success_type, __failure_type): Move
3167 definitions later in the file.
3168
31692022-09-05 Jonathan Wakely <jwakely@redhat.com>
3170
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.
3175
31762022-09-02 Patrick Palka <ppalka@redhat.com>
3177
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.
3185
31862022-09-02 Jonathan Wakely <jwakely@redhat.com>
3187
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.
3209
32102022-09-02 Patrick Palka <ppalka@redhat.com>
3211
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_.
3217
32182022-09-01 Jonathan Wakely <jwakely@redhat.com>
3219
3220 * include/std/ranges (adjacent_transform_view::_Iterator): Add
3221 typename keyword before dependent qualified-id.
3222
32232022-09-01 Jonathan Wakely <jwakely@redhat.com>
3224
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.
3230
32312022-09-01 Jonathan Wakely <jwakely@redhat.com>
3232
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
3256 new alias template.
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
3260 new alias template.
3261 (__add_lval_ref_t, __add_rval_ref_t): New alias templates.
3262 (add_lvalue_reference, add_rvalue_reference): Use new alias
3263 templates.
3264
32652022-09-01 Jonathan Wakely <jwakely@redhat.com>
3266
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.
3271
32722022-09-01 Jonathan Wakely <jwakely@redhat.com>
3273
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.
3278
32792022-09-01 Jonathan Wakely <jwakely@redhat.com>
3280
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.
3285
32862022-09-01 Jonathan Wakely <jwakely@redhat.com>
3287
3288 * include/std/type_traits (is_scoped_enum): Remove workaround.
3289
32902022-09-01 Patrick Palka <ppalka@redhat.com>
3291
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.
3302
33032022-09-01 Jonathan Wakely <jwakely@redhat.com>
3304
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
3315 variable templates.
3316
33172022-08-31 Patrick Palka <ppalka@redhat.com>
3318
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.
3329
33302022-08-31 Martin Liska <mliska@suse.cz>
3331
3332 * configure: Regenerate.
3333 * crossconfig.m4: Remove deprecated ports.
3334
33352022-08-31 François Dumont <fdumont@gcc.gnu.org>
3336
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..
3345
33462022-08-31 Patrick Palka <ppalka@redhat.com>
3347
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.
3358
33592022-08-31 François Dumont <fdumont@gcc.gnu.org>
3360
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.
3378
33792022-08-31 Patrick Palka <ppalka@redhat.com>
3380
3381 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
3382
33832022-08-31 Jonathan Wakely <jwakely@redhat.com>
3384
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.
3388
33892022-08-31 Jonathan Wakely <jwakely@redhat.com>
3390
3391 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
3392 comments.
3393 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
3394 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
3395
33962022-08-31 Jonathan Wakely <jwakely@redhat.com>
3397
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
3402 results to void.
3403 * testsuite/21_strings/basic_string/capacity/char/1.cc:
3404 Likewise.
3405 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
3406 Likewise.
3407 * testsuite/21_strings/basic_string/cons/char/self_move.cc:
3408 Likewise.
3409 * testsuite/21_strings/basic_string/element_access/char/1.cc:
3410 Likewise.
3411 * testsuite/21_strings/basic_string/element_access/char/21674.cc:
3412 Likewise.
3413 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
3414 Likewise.
3415 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
3416 Likewise.
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:
3422 Likewise.
3423 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
3424 Likewise.
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:
3428 Likewise.
3429 * testsuite/21_strings/basic_string_view/capacity/1.cc:
3430 Likewise.
3431 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3432 Likewise.
3433 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3434 Likewise.
3435 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3436 Likewise.
3437 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3438 Likewise.
3439 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
3440 Likewise.
3441 Add -Wno-unused-result to options.
3442 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
3443 Likewise.
3444 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
3445 Likewise.
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:
3449 Likewise.
3450 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
3451 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
3452 Likewise.
3453
34542022-08-27 Patrick Palka <ppalka@redhat.com>
3455
3456 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
3457
34582022-08-26 Patrick Palka <ppalka@redhat.com>
3459
3460 * include/std/ranges (zip_view::_Iterator::operator<): Remove
3461 as per LWG 3692.
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.
3468
34692022-08-26 Patrick Palka <ppalka@redhat.com>
3470
3471 * include/std/ranges (zip_view::_Iterator): Befriend
3472 zip_transform_view.
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.
3481
34822022-08-26 Patrick Palka <ppalka@redhat.com>
3483
3484 * include/std/type_traits (enable_if, __enable_if_t): Define them
3485 earlier.
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
3489 and __and_fn.
3490 (__not_): Redefine as an alias template.
3491 (__detail::__disjunction_impl, __detail::__conjunction_impl):
3492 Define.
3493 (conjuction, disjunction): Redefine in terms of __disjunction_impl
3494 and __conjunction_impl.
3495
34962022-08-26 Jonathan Wakely <jwakely@redhat.com>
3497
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.
3508
35092022-08-26 Jonathan Wakely <jwakely@redhat.com>
3510
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):
3514 Likewise.
3515 * include/std/string_view (starts_with, ends_with, contains):
3516 Likewise.
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
3523
35242022-08-25 Patrick Palka <ppalka@redhat.com>
3525
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'.
3532
35332022-08-24 Patrick Palka <ppalka@redhat.com>
3534
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.
3553
35542022-08-24 Jonathan Wakely <jwakely@redhat.com>
3555
3556 Revert:
3557 2022-08-24 Will Hawkins <whh8b@obs.cr>
3558
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.
3563
35642022-08-24 Patrick Palka <ppalka@redhat.com>
3565
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.
3571
35722022-08-24 Jonathan Wakely <jwakely@redhat.com>
3573
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.
3577
35782022-08-24 Will Hawkins <whh8b@obs.cr>
3579
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.
3584
35852022-08-24 Jonathan Wakely <jwakely@redhat.com>
3586
3587 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
3588 non-reduced duration.
3589
35902022-08-23 Patrick Palka <ppalka@redhat.com>
3591
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
3598 P2321R2.
3599 (swap): Define overload taking const pair& for C++23 as per
3600 P2321R2.
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
3610 as per P2321R2.
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
3618 P2321R2.
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.
3626
36272022-08-23 Patrick Palka <ppalka@redhat.com>
3628
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.
3634
36352022-08-23 Jonathan Wakely <jwakely@redhat.com>
3636
3637 PR libstdc++/106589
3638 * include/std/variant (__do_visit): Handle is_void<R> for zero
3639 argument case.
3640 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
3641
36422022-08-22 Jonathan Wakely <jwakely@redhat.com>
3643
3644 PR libstdc++/105678
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.
3649
36502022-08-22 Jonathan Wakely <jwakely@redhat.com>
3651
3652 PR libstdc++/106695
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.
3661
36622022-08-22 Jonathan Wakely <jwakely@redhat.com>
3663
3664 PR libstdc++/106607
3665 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
3666 Use built-ins to check for integer overflow in back-reference
3667 number.
3668 * testsuite/28_regex/basic_regex/106607.cc: New test.
3669
36702022-08-17 Keef Aragon <keef.aragon@konscious.net>
3671
3672 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
3673
36742022-08-08 François Dumont <fdumont@gcc.gnu.org>
3675
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
3681 checks.
3682 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
3683 Adapt checks.
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.
3691
36922022-08-05 Jonathan Wakely <jwakely@redhat.com>
3693
3694 * include/experimental/scope (__cpp_lib_experimental_scope):
3695 Define.
3696 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro.
3697
36982022-08-05 Jonathan Wakely <jwakely@redhat.com>
3699
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.
3705
37062022-08-04 Jonathan Wakely <jwakely@redhat.com>
3707
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:
3713 Likewise.
3714
37152022-08-04 Jonathan Wakely <jwakely@redhat.com>
3716
3717 * include/bits/fs_dir.h (directory_iterator): Add comparison
3718 with std::default_sentinel_t. Remove redundant operator!= for
3719 C++20.
3720 * (recursive_directory_iterator): Likewise.
3721 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
3722 (default_sentinel_t, default_sentinel): Define even if concepts
3723 are not supported.
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:
3730 New test.
3731 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
3732 New test.
3733
37342022-08-04 Jonathan Wakely <jwakely@redhat.com>
3735
3736 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
3737 (bad_expected_access::_M_val): Likewise.
3738
37392022-08-04 Jonathan Wakely <jwakely@redhat.com>
3740
3741 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
3742 value to 202207L.
3743 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
3744 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
3745 for new value.
3746 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3747 Likewise.
3748
37492022-08-04 Jonathan Wakely <jwakely@redhat.com>
3750
3751 PR libstdc++/106183
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.
3759
37602022-08-04 Ulrich Drepper <drepper@gmail.com>
3761
3762 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
3763 zero-based indeces just like std:get takes.
3764
37652022-07-29 Jonathan Wakely <jwakely@redhat.com>
3766
3767 PR libstdc++/104443
3768 * include/bits/stl_iterator.h (common_iterator::operator->):
3769 Change return type to just auto.
3770
37712022-07-26 Thomas Rodgers <trodgers@redhat.com>
3772
3773 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
3774
37752022-07-20 Jonathan Wakely <jwakely@redhat.com>
3776
3777 PR libstdc++/100823
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.
3783
37842022-07-20 Jonathan Wakely <jwakely@redhat.com>
3785
3786 PR libstdc++/100823
3787 * include/bits/stl_iterator.h (common_iterator): Define move
3788 constructor and move assignment operator.
3789 (common_iterator::_M_assign): New function implementing
3790 assignment.
3791 (common_iterator::operator=): Use _M_assign.
3792 (common_iterator::_S_valueless): New constant.
3793 * testsuite/24_iterators/common_iterator/100823.cc: New test.
3794
37952022-07-20 Jonathan Wakely <jwakely@redhat.com>
3796
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.
3802
38032022-07-19 François Dumont <fdumont@gcc.gnu.org>
3804
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.
3833
38342022-07-19 Jonathan Wakely <jwakely@redhat.com>
3835
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.
3840
38412022-07-19 Marco Falke <falke.marco@gmail.com>
3842
3843 * include/std/charconv (__from_chars_alnum_to_val): Replace
3844 implicit conversion from int to unsigned char with explicit
3845 cast.
3846
38472022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
3848
3849 * configure: Regnerate.
3850 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
3851
38522022-07-18 François Dumont <fdumont@gcc.gnu.org>
3853
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.
3861
38622022-07-15 Marek Polacek <polacek@redhat.com>
3863
3864 PR c++/104477
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
3871 C++23.
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.
3878
38792022-07-12 Jonathan Wakely <jwakely@redhat.com>
3880
3881 PR libstdc++/106248
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:
3885 New test.
3886 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
3887 New test.
3888
38892022-07-12 Jonathan Wakely <jwakely@redhat.com>
3890
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
3894 all cv-qualifiers.
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.
3900
39012022-07-09 François Dumont <fdumont@gcc.gnu.org>
3902
3903 * include/std/string: Remove obsolete comment about char_traits.h including
3904 stl_algobase.h.
3905
39062022-07-07 Jonathan Wakely <jwakely@redhat.com>
3907
3908 PR c++/89074
3909 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
3910 Remove workaround for front-end bug.
3911
39122022-07-05 Alexandre Oliva <oliva@adacore.com>
3913
3914 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
3915 why we need the typecast.
3916
39172022-07-05 Alexandre Oliva <oliva@adacore.com>
3918
3919 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert
3920 the getpid result to an integral type.
3921
39222022-07-01 Jonathan Wakely <jwakely@redhat.com>
3923
3924 PR libstdc++/106162
3925 * include/Makefile.am (largefile-config.h): Add
3926 stamp-${host_alias} prerequisite.
3927 * include/Makefile.in: Regenerate.
3928
39292022-07-01 Jonathan Wakely <jwakely@redhat.com>
3930
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:
3941 Likewise.
3942 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3943 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3944 Likewise.
3945 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3946 Likewise.
3947 * testsuite/experimental/filesystem/operations/canonical.cc:
3948 Likewise.
3949 * testsuite/experimental/filesystem/operations/exists.cc:
3950 Likewise.
3951 * testsuite/experimental/filesystem/operations/is_empty.cc:
3952 Likewise.
3953 * testsuite/experimental/filesystem/operations/read_symlink.cc:
3954 Likewise.
3955 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3956 Likewise.
3957
39582022-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
3959
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.
3968
39692022-06-30 Jonathan Wakely <jwakely@redhat.com>
3970
3971 * include/bits/utility.h: Fix comment typos.
3972
39732022-06-30 Jonathan Wakely <jwakely@redhat.com>
3974
3975 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
3976 in exception.
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:
3983 Likewise.
3984
39852022-06-30 Jonathan Wakely <jwakely@redhat.com>
3986
3987 PR libstdc++/88881
3988 * src/filesystem/ops.cc (has_trailing_slash): New helper
3989 function.
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.
3995
39962022-06-28 Jonathan Wakely <jwakely@redhat.com>
3997
3998 * src/filesystem/dir-common.h (_Dir_base::_At_path):
3999 Use char_type consistently for paths.
4000
40012022-06-28 Jonathan Wakely <jwakely@redhat.com>
4002
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.
4011
40122022-06-28 Jonathan Wakely <jwakely@redhat.com>
4013
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
4017 remove entries.
4018
40192022-06-28 Jonathan Wakely <jwakely@redhat.com>
4020
4021 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
4022 functions are available.
4023
40242022-06-27 Alexandre Oliva <oliva@adacore.com>
4025
4026 * testsuite/20_util/to_chars/long_double.cc: Use cmath
4027 long double overloads for nexttoward and ldexp.
4028
40292022-06-27 Alexandre Oliva <oliva@adacore.com>
4030
4031 * testsuite/experimental/simd/standard_abi_usable.cc: Require
4032 cmath support.
4033 * testsuite/experimental/simd/standard_abi_usable_2.cc:
4034 Likewise.
4035
40362022-06-27 Alexandre Oliva <oliva@adacore.com>
4037
4038 * testsuite/26_numerics/complex/proj.cc: Skip test in the
4039 circumstances in which the implementation of proj is known to
4040 be broken.
4041
40422022-06-27 Alexandre Oliva <oliva@adacore.com>
4043
4044 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
4045 _GLIBCXX_HAVE_OPENAT.
4046
40472022-06-27 Alexandre Oliva <oliva@adacore.com>
4048
4049 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
4050 (test06): Don't create symlinks when NO_SYMLINKS is defined.
4051
40522022-06-27 Alexandre Oliva <oliva@adacore.com>
4053
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
4057 xfail on RTEMS.
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:
4062 Likewise.
4063
40642022-06-27 Jonathan Wakely <jwakely@redhat.com>
4065
4066 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
4067
40682022-06-27 Joel Brobecker <brobecker@adacore.com>
4069 Jonathan Wakely <jwakely@redhat.com>
4070
4071 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
4072 Always include a counter in the filename returned.
4073
40742022-06-27 Jonathan Wakely <jwakely@redhat.com>
4075
4076 * include/bits/move_only_function.h (_Never_valueless_alt):
4077 Define partial specialization for std::move_only_function.
4078
40792022-06-27 Jonathan Wakely <jwakely@redhat.com>
4080
4081 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
4082 as deleted.
4083 (__accepted_index, _Extra_visit_slot_needed): Replace class
4084 templates with variable templates.
4085
40862022-06-27 Jonathan Wakely <jwakely@redhat.com>
4087
4088 * include/bits/fs_path.h (__is_path_iter_src): Replace class
4089 template with variable template.
4090
40912022-06-27 Jonathan Wakely <jwakely@redhat.com>
4092
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.
4096
40972022-06-24 Xi Ruoyao <xry111@xry111.site>
4098
4099 * scripts/extract_symvers.in: Use grep -E instead of egrep.
4100 * scripts/run_doxygen: Likewise.
4101
41022022-06-24 Alexandre Oliva <oliva@adacore.com>
4103
4104 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4105 openat.
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.
4111
41122022-06-24 Alexandre Oliva <oliva@adacore.com>
4113
4114 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
4115 rtems.
4116 * testsuite/experimental/filesystem/operations/rename.cc:
4117 Likewise.
4118
41192022-06-24 Alexandre Oliva <oliva@adacore.com>
4120
4121 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
4122 when appropriate.
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):
4126 New.
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:
4130 Likewise.
4131
41322022-06-24 Alexandre Oliva <oliva@adacore.com>
4133
4134 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
4135 appropriate.
4136 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
4137 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
4138 New.
4139 * testsuite/27_io/filesystem/operations/space.cc: Require
4140 target-fs-space.
4141 * testsuite/experimental/filesystem/operations/space.cc:
4142 Likewise.
4143
41442022-06-24 Alexandre Oliva <oliva@adacore.com>
4145
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:
4149 Drop mingw xfail.
4150 (test01, test02): Don't create symlinks when NO_SYMLINKS is
4151 defined.
4152 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
4153 Likewise.
4154 * testsuite/27_io/filesystem/operations/copy.cc (test02):
4155 Likewise.
4156 * testsuite/27_io/filesystem/operations/create_directories.cc
4157 (test04): Likewise.
4158 * testsuite/27_io/filesystem/operations/create_directory.cc
4159 (test01): Likewise.
4160 * testsuite/27_io/filesystem/operations/permissions.cc
4161 (test03, test04): Likewise.
4162 * testsuite/27_io/filesystem/operations/remove.cc (test01):
4163 Likewise.
4164 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
4165 Likewise.
4166 * testsuite/27_io/filesystem/operations/rename.cc
4167 (test_symlinks): Likewise.
4168 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
4169 (test01): Likewise.
4170 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
4171 (test06): Likewise.
4172 * testsuite/experimental/filesystem/operations/copy.cc
4173 (test01): Likewise.
4174 * testsuite/experimental/filesystem/operations/create_directories.cc
4175 (test04): Likewise.
4176 * testsuite/experimental/filesystem/operations/create_directory.cc
4177 (test01): Likewise.
4178 * testsuite/experimental/filesystem/operations/permissions.cc
4179 (test03, test04): Likewise.
4180 * testsuite/experimental/filesystem/operations/remove.cc
4181 (test01): Likewise.
4182 * testsuite/experimental/filesystem/operations/remove_all.cc
4183 (test01): Likewise.
4184 * testsuite/experimental/filesystem/operations/rename.cc
4185 (test01): Likewise.
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:
4195 Likewise.
4196
41972022-06-24 Alexandre Oliva <oliva@adacore.com>
4198
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.
4204
42052022-06-24 Alexandre Oliva <oliva@adacore.com>
4206
4207 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
4208 explicit cancellation point in case sleep_for lacks one.
4209
42102022-06-24 Alexandre Oliva <oliva@adacore.com>
4211
4212 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
4213 -lbsd for RTEMS targets.
4214
42152022-06-23 Jonathan Wakely <jwakely@redhat.com>
4216
4217 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4218 rmdir to remove directories.
4219 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
4220 Likewise.
4221
42222022-06-23 Jonathan Wakely <jwakely@redhat.com>
4223
4224 * testsuite/26_numerics/random/random_device/entropy.cc: Use
4225 numeric_limits<unsigned>::digits.
4226
42272022-06-22 Alexandre Oliva <oliva@adacore.com>
4228
4229 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
4230 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
4231
42322022-06-22 Alexandre Oliva <oliva@adacore.com>
4233
4234 * testsuite/30_threads/this_thread/60421.cc (test02): Call
4235 sched_yield.
4236
42372022-06-22 Alexandre Oliva <oliva@adacore.com>
4238
4239 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
4240
42412022-06-22 Alexandre Oliva <oliva@adacore.com>
4242
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.
4249
42502022-06-17 Jonathan Wakely <jwakely@redhat.com>
4251
4252 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
4253 missing #include.
4254
42552022-06-16 Jonathan Wakely <jwakely@redhat.com>
4256
4257 PR libstdc++/105995
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.
4261
42622022-06-16 Jonathan Wakely <jwakely@redhat.com>
4263
4264 PR libstdc++/101482
4265 * include/ext/vstring.h (operator==): Always check lengths
4266 before comparing.
4267
42682022-06-15 François Dumont <fdumont@gcc.gnu.org>
4269
4270 PR libstdc++/105717
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
4280 is done.
4281 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
4282 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
4283
42842022-06-14 Jonathan Wakely <jwakely@redhat.com>
4285
4286 PR libstdc++/62187
4287 * include/bits/basic_string.h (operator==): Always compare
4288 lengths before checking string contents.
4289 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
4290 Reorder arguments.
4291
42922022-06-14 Jonathan Wakely <jwakely@redhat.com>
4293
4294 PR libstdc++/59048
4295 * include/bits/basic_string.h (compare): Define inline.
4296 * include/bits/basic_string.tcc (compare): Remove out-of-line
4297 definitions.
4298 * include/bits/cow_string.h (compare): Define inline.
4299 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
4300 New test.
4301
43022022-06-14 Jonathan Wakely <jwakely@redhat.com>
4303
4304 * include/bits/new_allocator.h: Fix indentation.
4305 * include/ext/malloc_allocator.h: Likewise.
4306
43072022-06-14 Jonathan Wakely <jwakely@redhat.com>
4308
4309 PR libstdc++/105957
4310 * include/bits/allocator.h (allocator::allocate): Check for
4311 overflow in constexpr allocation.
4312 * testsuite/20_util/allocator/105975.cc: New test.
4313
43142022-06-13 Mark Mentovai <mark@mentovai.com>
4315
4316 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
4317 Rename to __nul_terminated to avoid colliding with a macro in
4318 Apple's SDK.
4319
43202022-06-13 Jonathan Wakely <jwakely@redhat.com>
4321
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.
4325
43262022-06-10 Jonathan Wakely <jwakely@redhat.com>
4327
4328 PR libstdc++/105844
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
4338 be detected.
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.
4343
43442022-06-10 Jonathan Wakely <jwakely@redhat.com>
4345
4346 PR libstdc++/105880
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.
4352
43532022-06-10 Jonathan Wakely <jwakely@redhat.com>
4354
4355 * include/bits/basic_string.h (__hash_str_base): New class
4356 template.
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
4362 template.
4363 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
4364 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
4365 specializations.
4366 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
4367 custom allocators.
4368 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
4369 Likewise.
4370
43712022-05-27 Jonathan Wakely <jwakely@redhat.com>
4372
4373 PR libstdc++/105671
4374 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
4375 always_inline attribute.
4376
43772022-05-26 Jonathan Wakely <jwakely@redhat.com>
4378
4379 PR libstdc++/105681
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.
4385
43862022-05-26 Jonathan Wakely <jwakely@redhat.com>
4387
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.
4391
43922022-05-26 Jonathan Wakely <jwakely@redhat.com>
4393
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):
4397 Move to ...
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.
4401
44022022-05-26 Jonathan Wakely <jwakely@redhat.com>
4403
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.
4407
44082022-05-26 Jonathan Wakely <jwakely@redhat.com>
4409
4410 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
4411 comment.
4412 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
4413 here.
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
4419 dependencies.
4420 * include/std/unordered_set: Likewise.
4421
44222022-05-26 Jonathan Wakely <jwakely@redhat.com>
4423
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.
4428
44292022-05-26 Nathan Sidwell <nathan@acm.org>
4430
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.
4435
44362022-05-26 François Dumont <fdumont@gcc.gnu.org>
4437
4438 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
4439 Strip typename from version namespace.
4440
44412022-05-26 Jonathan Wakely <jwakely@redhat.com>
4442
4443 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
4444 versioned namespace from the template argument too.
4445
44462022-05-26 Jonathan Wakely <jwakely@redhat.com>
4447
4448 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
4449 Moved to...
4450 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
4451 ...here.
4452 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
4453 Moved to...
4454 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
4455 ...here.
4456 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
4457 Moved to...
4458 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
4459 ...here.
4460 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
4461 Moved to...
4462 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
4463 ...here.
4464 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
4465 Moved to...
4466 * testsuite/21_strings/basic_string/operations/contains/char.cc:
4467 ...here.
4468 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
4469 Moved to...
4470 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
4471 ...here.
4472 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
4473 Moved to...
4474 * testsuite/21_strings/basic_string/operations/data/char.cc:
4475 ...here.
4476 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
4477 Moved to...
4478 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
4479 ...here.
4480 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
4481 Moved to...
4482 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
4483 ...here.
4484 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
4485 Moved to...
4486 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
4487 ...here.
4488 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
4489 Moved to...
4490 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
4491 ...here.
4492 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
4493 Moved to...
4494 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
4495 ...here.
4496 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
4497 Moved to...
4498 * testsuite/21_strings/basic_string/operations/substr/char.cc:
4499 ...here.
4500 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
4501 Moved to...
4502 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
4503 ...here.
4504 * testsuite/21_strings/basic_string/range_access/char/1.cc:
4505 Moved to...
4506 * testsuite/21_strings/basic_string/range_access/char.cc:
4507 ...here.
4508 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
4509 Moved to...
4510 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
4511 ...here.
4512 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4513 Moved to...
4514 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
4515 ...here.
4516 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4517 Moved to...
4518 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
4519 ...here.
4520 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4521 Moved to...
4522 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
4523 ...here.
4524 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4525 Moved to...
4526 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
4527 ...here.
4528 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4529 Moved to...
4530 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
4531 ...here.
4532 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4533 Moved to...
4534 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
4535 ...here.
4536 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
4537 Moved to...
4538 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
4539 ...here.
4540 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
4541 Moved to...
4542 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
4543 ...here.
4544 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4545 Moved to...
4546 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
4547 ...here.
4548 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4549 Moved to...
4550 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
4551 ...here.
4552 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
4553 Moved to...
4554 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
4555 ...here.
4556 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
4557 Moved to...
4558 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
4559 ...here.
4560 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
4561 Moved to...
4562 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
4563 ...here.
4564 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
4565 Moved to...
4566 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
4567 ...here.
4568 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4569 Moved to...
4570 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
4571 ...here.
4572 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4573 Moved to...
4574 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
4575 ...here.
4576 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4577 Moved to...
4578 * testsuite/21_strings/basic_string_view/range_access/char.cc:
4579 ...here.
4580 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4581 Moved to...
4582 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
4583 ...here.
4584 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
4585 Moved to...
4586 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
4587 ...here.
4588 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
4589 Moved to...
4590 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
4591 ...here.
4592 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
4593 Moved to...
4594 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
4595 ...here.
4596 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
4597 Moved to...
4598 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
4599 ...here.
4600 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
4601 Moved to...
4602 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
4603 ...here.
4604 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
4605 Moved to...
4606 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
4607 ...here.
4608 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4609 Moved to...
4610 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
4611 ...here.
4612 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4613 Moved to...
4614 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
4615 ...here.
4616 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4617 Moved to...
4618 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
4619 ...here.
4620 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4621 Moved to...
4622 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
4623 ...here.
4624 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4625 Moved to...
4626 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
4627 ...here.
4628 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4629 Moved to...
4630 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
4631 ...here.
4632 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
4633 Moved to...
4634 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
4635 ...here.
4636 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
4637 Moved to...
4638 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
4639 ...here.
4640 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
4641 Moved to...
4642 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
4643 ...here.
4644 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
4645 Moved to...
4646 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
4647 ...here.
4648 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
4649 Moved to...
4650 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
4651 ...here.
4652 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
4653 Moved to...
4654 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
4655 ...here.
4656
46572022-05-26 Jonathan Wakely <jwakely@redhat.com>
4658
4659 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
4660 Moved to...
4661 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
4662 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
4663 Moved to...
4664 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
4665 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
4666 Moved to...
4667 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
4668
46692022-05-25 Jason Merrill <jason@redhat.com>
4670
4671 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
4672 constexpr.
4673
46742022-05-20 Jonathan Wakely <jwakely@redhat.com>
4675
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:
4679 Likewise.
4680 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
4681 Likewise.
4682 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
4683 Likewise.
4684 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
4685 Likewise.
4686 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
4687 Likewise.
4688 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
4689 Likewise.
4690
46912022-05-19 Jonathan Wakely <jwakely@redhat.com>
4692
4693 * include/bits/char_traits.h: Only include <cstdint> when
4694 necessary.
4695 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
4696 uintptr_t.
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.
4702
47032022-05-19 Jonathan Wakely <jwakely@redhat.com>
4704
4705 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
4706 here.
4707 * include/bits/cow_string.h: Include it here.
4708
47092022-05-19 Jonathan Wakely <jwakely@redhat.com>
4710
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:
4732 Likewise.
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:
4739 Likewise.
4740 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4741 Likewise.
4742 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4743 Likewise.
4744 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4745 Likewise.
4746 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4747 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4748
47492022-05-19 Jonathan Wakely <jwakely@redhat.com>
4750
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.
4754
47552022-05-17 Jonathan Wakely <jwakely@redhat.com>
4756
4757 * src/c++17/memory_resource.cc (set_default_resource): Use
4758 memory_order_acq_rel.
4759 (get_default_resource): Use memory_order_acquire.
4760
47612022-05-17 Jonathan Wakely <jwakely@redhat.com>
4762
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
4767 attribute.
4768 (memory_resource::is_equal): Add nodiscard attribute.
4769 (operator==, operator!=): Likewise.
4770
47712022-05-17 Jonathan Wakely <jwakely@redhat.com>
4772
4773 * include/bits/ios_base.h (io_category): Add const and nodiscard
4774 attributes.
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
4784 nodiscard.
4785
47862022-05-17 Jonathan Wakely <jwakely@redhat.com>
4787
4788 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
4789 namespace.
4790 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
4791
47922022-05-17 Jonathan Wakely <jwakely@redhat.com>
4793
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):
4806 Likewise.
4807
48082022-05-16 Jonathan Wakely <jwakely@redhat.com>
4809
4810 * doc/xml/manual/prerequisites.xml: Fix attributes for external
4811 hyperlink.
4812 * doc/html/manual/setup.html: Regenerate.
4813
48142022-05-16 Jonathan Wakely <jwakely@redhat.com>
4815
4816 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
4817 * doc/html/*: Regenerate.
4818
48192022-05-16 Jonathan Wakely <jwakely@redhat.com>
4820
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.
4825
48262022-05-16 Jonathan Wakely <jwakely@redhat.com>
4827
4828 * doc/html/manual/status.html: Regenerate.
4829 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
4830 C++20 bit operations.
4831
48322022-05-13 Jonathan Wakely <jwakely@redhat.com>
4833
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.
4837
48382022-05-13 Jonathan Wakely <jwakely@redhat.com>
4839
4840 * include/std/future (launch): Make operators noexcept.
4841
48422022-05-13 Jonathan Wakely <jwakely@redhat.com>
4843
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.
4848
48492022-05-13 Jonathan Wakely <jwakely@redhat.com>
4850
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
4855 would require RTTI.
4856 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
4857 New test.
4858
48592022-05-13 Jonathan Wakely <jwakely@redhat.com>
4860
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
4864 @headerfile.
4865 * include/bits/unique_lock.h (unique_lock): Likewise.
4866 * include/std/mutex (recursive_mutex, timed_mutex)
4867 (recursive_timed_mutex, scoped_lock): Likewise.
4868
48692022-05-13 Jonathan Wakely <jwakely@redhat.com>
4870
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
4875 @headerfile.
4876 * include/std/scoped_allocator: Remove @ingroup from @file
4877 block.
4878
48792022-05-13 Jonathan Wakely <jwakely@redhat.com>
4880
4881 * include/bits/std_thread.h (thread, thread::id): Improve
4882 doxygen docs.
4883 * include/std/future: Likewise.
4884 * include/std/thread (jthread): Likewise.
4885
48862022-05-13 Jonathan Wakely <jwakely@redhat.com>
4887
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.
4894
48952022-05-13 Jonathan Wakely <jwakely@redhat.com>
4896
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.
4903
49042022-05-13 Jonathan Wakely <jwakely@redhat.com>
4905
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.
4912
49132022-05-13 Jonathan Wakely <jwakely@redhat.com>
4914
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
4920 group.
4921
49222022-05-13 Jonathan Wakely <jwakely@redhat.com>
4923
4924 * include/std/system_error: Improve doxygen comments.
4925
49262022-05-13 Jonathan Wakely <jwakely@redhat.com>
4927
4928 * include/bits/ptr_traits.h: Add some doxygen comments.
4929
49302022-05-13 Jonathan Wakely <jwakely@redhat.com>
4931
4932 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
4933 nothing.
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
4937 for the namespace.
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):
4941 Likewise.
4942 * include/std/system_error (_V2::error_category): Likewise.
4943
49442022-05-13 Jonathan Wakely <jwakely@redhat.com>
4945
4946 * include/bits/mofunc_impl.h: Fix doxygen command.
4947
49482022-05-13 Jonathan Wakely <jwakely@redhat.com>
4949
4950 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
4951 (CLASS_DIAGRAMS): Remove obsolete option.
4952
49532022-05-12 Jonathan Wakely <jwakely@redhat.com>
4954
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.
4959
49602022-05-10 Jonathan Wakely <jwakely@redhat.com>
4961
4962 PR libstdc++/105284
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
4967 arguments.
4968 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
4969 declarations.
4970 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
4971 default arguments.
4972
49732022-05-10 Jonathan Wakely <jwakely@redhat.com>
4974
4975 PR libstdc++/105284
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.
4982
49832022-05-06 Jonathan Wakely <jwakely@redhat.com>
4984
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
4990 lineno.
4991
49922022-05-06 Jonathan Wakely <jwakely@redhat.com>
4993
4994 PR libstdc++/105502
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.
5000
50012022-05-06 Alexandre Oliva <oliva@adacore.com>
5002
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.
5008
50092022-05-06 Jonathan Wakely <jwakely@redhat.com>
5010
5011 PR libstdc++/104731
5012 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
5013 Use a trailing char array as storage for dirent::d_name.
5014
50152022-05-06 Jonathan Wakely <jwakely@redhat.com>
5016
5017 * include/std/stacktrace: Do not include <cxxabi.h>.
5018 (__cxa_demangle): Declare.
5019
50202022-05-06 Jonathan Wakely <jwakely@redhat.com>
5021
5022 PR libstdc++/99871
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.
5031
50322022-05-06 Jonathan Wakely <jwakely@redhat.com>
5033
5034 * doc/xml/manual/test.xml: Remove requirement for copyright and
5035 GPL notice in tests.
5036 * doc/html/manual/test.html: Regenerate.
5037
50382022-05-05 Jonathan Wakely <jwakely@redhat.com>
5039
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:
5046 Likewise.
5047 * testsuite/18_support/nested_exception/68139.cc: Likewise.
5048 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
5049 Likewise.
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:
5069 Likewise.
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:
5073 Likewise.
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:
5079 Likewise.
5080 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
5081 Likewise.
5082 * testsuite/22_locale/locale/13630.cc: Check type without using
5083 RTTI.
5084 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
5085 Require RTTI.
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:
5093 Likewise.
5094 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
5095 Define new proc.
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
5107 types without RTTI.
5108
51092022-05-04 Jonathan Wakely <jwakely@redhat.com>
5110
5111 PR libstdc++/104719
5112 * include/std/array (array::size(), array::max_size())
5113 (array::empty(), array::data()): Add always_inline attribute.
5114
51152022-05-04 Jonathan Wakely <jwakely@redhat.com>
5116
5117 PR libstdc++/104719
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.
5130
51312022-05-03 Alexandre Oliva <oliva@adacore.com>
5132
5133 PR c++/105324
5134 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
5135 with conditional for floating-point overloads of from_char.
5136
51372022-05-02 Patrick Palka <ppalka@redhat.com>
5138
5139 PR libstdc++/103911
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.
5144
51452022-05-02 Patrick Palka <ppalka@redhat.com>
5146
5147 PR libstdc++/105441
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.
5151
51522022-04-29 Jonathan Wakely <jwakely@redhat.com>
5153
5154 PR libstdc++/105417
5155 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5156 Regenerate.
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.
5160
51612022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5162
5163 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5164 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5165 Likewise.
5166 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5167 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5168 Likewise.
5169
51702022-04-28 Jonathan Wakely <jwakely@redhat.com>
5171
5172 PR libstdc++/99290
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:
5179 Likewise.
5180
51812022-04-28 François Dumont <fdumont@gcc.gnu.org>
5182
5183 * config/abi/pre/gnu-versioned-namespace.ver: Remove
5184 std::random_device::* pattern.
5185
51862022-04-27 Jakub Jelinek <jakub@redhat.com>
5187
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.
5196
51972022-04-27 Jonathan Wakely <jwakely@redhat.com>
5198
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
5205 pointers.
5206
52072022-04-26 Jonathan Wakely <jwakely@redhat.com>
5208
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.
5213
52142022-04-26 Jonathan Wakely <jwakely@redhat.com>
5215
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.
5219
52202022-04-25 Jonathan Wakely <jwakely@redhat.com>
5221
5222 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
5223 conditionally.
5224 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
5225 Define for C++23.
5226 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
5227 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
5228 functions.
5229 * include/std/version (__cpp_lib_constexpr_memory): Define new
5230 value for C++23.
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:
5237 New test.
5238
52392022-04-25 Jonathan Wakely <jwakely@redhat.com>
5240
5241 PR libstdc++/105375
5242 * include/std/future (packaged_task): Add deduction guides.
5243 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
5244
52452022-04-25 Philipp Fent <fent@in.tum.de>
5246
5247 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
5248 Rename as iterator.
5249 (StdInitializerListPrinter): Define new printer.
5250 (build_libstdcxx_dictionary): Register new printer.
5251 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
5252 initializer_list.
5253
52542022-04-22 Thomas W Rodgers <trodgers@redhat.com>
5255
5256 PR libstdc++/102994
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):
5261 Likewise.
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.
5267
52682022-04-21 Patrick Palka <ppalka@redhat.com>
5269
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
5273 false.
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.
5277
52782022-04-21 Patrick Palka <ppalka@redhat.com>
5279
5280 PR c++/105297
5281 PR c++/105322
5282 * include/std/charconv (__from_chars_alnum_to_val): Make
5283 initializer for __table dependent in an artificial way.
5284
52852022-04-21 Jonathan Wakely <jwakely@redhat.com>
5286
5287 PR libstdc++/105324
5288 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
5289 Remove assertion.
5290 * testsuite/20_util/from_chars/pr105324.cc: New test.
5291
52922022-04-20 Jonathan Wakely <jwakely@redhat.com>
5293
5294 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
5295 Check correct feature test macro.
5296
52972022-04-20 Jonathan Wakely <jwakely@redhat.com>
5298
5299 PR libstdc++/93602
5300 * doc/xml/manual/prerequisites.xml: Document libiconv
5301 workarounds.
5302 * doc/html/manual/setup.html: Regenerate.
5303 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
5304 * src/Makefile.in: Regenerate.
5305
53062022-04-19 Patrick Palka <ppalka@redhat.com>
5307
5308 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
5309 define.
5310 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
5311 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
5312 warnings.
5313 (__floating_to_chars_precision): Likewise.
5314
53152022-04-19 Philipp Fent <fent@in.tum.de>
5316
5317 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
5318 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
5319
53202022-04-19 Jonathan Wakely <jwakely@redhat.com>
5321
5322 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
5323 * configure: Regenerate.
5324
53252022-04-18 Patrick Palka <ppalka@redhat.com>
5326
5327 * include/std/charconv (__from_chars_pow2_base): Manually
5328 unroll the first iteration of the main loop and simplify
5329 accordingly.
5330
53312022-04-15 Patrick Palka <ppalka@redhat.com>
5332
5333 PR libstdc++/104858
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.
5337
53382022-04-15 Patrick Palka <ppalka@redhat.com>
5339
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.
5356
53572022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
5358
5359 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
5360 for RISC-V.
5361 * configure: Regenerate.
5362
53632022-04-14 Jonathan Wakely <jwakely@redhat.com>
5364
5365 * doc/xml/manual/intro.xml: Fix comment.
5366
53672022-04-14 Jonathan Wakely <jwakely@redhat.com>
5368
5369 * include/precompiled/stdc++.h: Include <stacktrace> and
5370 <stdatomic.h> for C++23.
5371
53722022-04-14 Jonathan Wakely <jwakely@redhat.com>
5373
5374 PR libstdc++/105269
5375 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
5376 Define.
5377 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
5378 Define.
5379 * include/std/optional (__cpp_lib_optional): Define new value
5380 for C++23.
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
5390 feature test macro.
5391 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
5392 Likewise.
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.
5396
53972022-04-12 Jonathan Wakely <jwakely@redhat.com>
5398
5399 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
5400 * config.h.in: Regenerate.
5401 * configure: Regenerate.
5402
54032022-04-12 Jonathan Wakely <jwakely@redhat.com>
5404
5405 * include/std/stacktrace (basic_stacktrace::current): Reallocate
5406 a smaller container if the unused capacity is larger than the
5407 used size.
5408
54092022-04-12 Jonathan Wakely <jwakely@redhat.com>
5410
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
5414 _Impl::_M_destroy.
5415 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
5416 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
5417 function.
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.
5423
54242022-04-12 Jonathan Wakely <jwakely@redhat.com>
5425
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
5429 std::allocator.
5430
54312022-04-12 Jonathan Wakely <jwakely@redhat.com>
5432
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.
5445
54462022-04-11 Jonathan Wakely <jwakely@redhat.com>
5447
5448 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
5449 Change [[unlikely]] attribute to [[likely]].
5450
54512022-04-11 Jonathan Wakely <jwakely@redhat.com>
5452
5453 PR libstdc++/105031
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
5461 allocation fails.
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.
5465
54662022-04-11 Jonathan Wakely <jwakely@redhat.com>
5467
5468 * include/std/stacktrace (basic_stacktrace::current): Duplicate
5469 implementation into each overload. Add noinline attribute and
5470 skip current frame.
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
5476 max_size().
5477 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
5478 for non-constexpr checks. Check line number is correct.
5479
54802022-04-11 Jonathan Wakely <jwakely@redhat.com>
5481
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.
5488
54892022-04-11 Jonathan Wakely <jwakely@redhat.com>
5490
5491 * include/experimental/bits/fs_path.h (path): Define special
5492 members after path::_Cmpt is complete.
5493
54942022-04-08 Jonathan Wakely <jwakely@redhat.com>
5495
5496 PR libstdc++/105153
5497 * include/std/expected
5498 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
5499 * testsuite/20_util/expected/cons.cc: Check constructor.
5500
55012022-04-08 Jonathan Wakely <jwakely@redhat.com>
5502
5503 PR libstdc++/105154
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
5507 specialization.
5508
55092022-04-08 Jonathan Wakely <jwakely@redhat.com>
5510
5511 PR libstdc++/105146
5512 * include/std/expected (bad_expected_access): Move constructor
5513 parameter.
5514 * testsuite/20_util/expected/bad.cc: New test.
5515
55162022-04-07 Hans-Peter Nilsson <hp@axis.com>
5517
5518 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
5519 test.
5520
55212022-04-02 Jakub Jelinek <jakub@redhat.com>
5522
5523 PR libstdc++/105128
5524 * include/std/source_location (std::source_location::__impl): Move
5525 definition before using __builtin_ret_type.
5526
55272022-04-01 Jonathan Wakely <jwakely@redhat.com>
5528
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.
5535
55362022-04-01 Jonathan Wakely <jwakely@redhat.com>
5537
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.
5542
55432022-04-01 Timm Bäder <tbaeder@redhat.com>
5544
5545 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
5546 * include/experimental/bits/fs_ops.h: Likewise.
5547
55482022-03-31 Jonathan Wakely <jwakely@redhat.com>
5549
5550 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
5551
55522022-03-29 Jonathan Wakely <jwakely@redhat.com>
5553
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.
5557
55582022-03-29 Jonathan Wakely <jwakely@redhat.com>
5559
5560 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
5561 static data members for _Fp_fmt enumerators.
5562
55632022-03-29 Jonathan Wakely <jwakely@redhat.com>
5564
5565 * include/std/version (__cpp_lib_variant): Fix conditions to
5566 match <variant>.
5567 (__cpp_lib_expected): Fix condition to match <expected>.
5568
55692022-03-28 Jonathan Wakely <jwakely@redhat.com>
5570
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.
5579
55802022-03-27 Jonathan Wakely <jwakely@redhat.com>
5581
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.
5599
56002022-03-25 Jonathan Wakely <jwakely@redhat.com>
5601
5602 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
5603 comments.
5604
56052022-03-23 Jonathan Wakely <jwakely@redhat.com>
5606
5607 PR libstdc++/105027
5608 * include/std/bit (bit_cast): Add constraints.
5609 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
5610
56112022-03-23 Jonathan Wakely <jwakely@redhat.com>
5612
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
5619 freestanding.
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.
5629
56302022-03-23 Jonathan Wakely <jwakely@redhat.com>
5631
5632 PR libstdc++/105021
5633 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
5634 <bits/atomic_wait.h> for freestanding.
5635
56362022-03-22 Hans-Peter Nilsson <hp@axis.com>
5637
5638 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
5639 Conditionalize call to fesetround.
5640
56412022-03-21 Jakub Jelinek <jakub@redhat.com>
5642
5643 PR libstdc++/104990
5644 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
5645 isn't overloaded if __clang__ is defined.
5646
56472022-03-18 Jonathan Wakely <jwakely@redhat.com>
5648
5649 PR libstdc++/104242
5650 * include/std/any (any(T&&)): Revert change to constraints.
5651 * testsuite/20_util/any/cons/104242.cc: New test.
5652
56532022-03-18 Jonathan Wakely <jwakely@redhat.com>
5654
5655 PR libstdc++/92546
5656 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
5657 <bits/stl_pair.h>.
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
5663 <functional>.
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
5672 <iterator>.
5673 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
5674 <functional>.
5675 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
5676 Likewise.
5677 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
5678 Likewise.
5679 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
5680 Likewise.
5681 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
5682 Include <array>.
5683 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
5684 <functional>.
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:
5690 Likewise.
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
5694 <iterator>.
5695 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
5696 <functional>.
5697 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
5698 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
5699 Likewise.
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:
5704 Likewise.
5705 * testsuite/25_algorithms/set_intersection/constexpr.cc:
5706 Likewise.
5707 * testsuite/25_algorithms/set_intersection/constrained.cc:
5708 Likewise.
5709 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
5710 Likewise.
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.
5723
57242022-03-17 Jonathan Wakely <jwakely@redhat.com>
5725
5726 PR libstdc++/92546
5727 * include/bits/fs_path.h (path::make_preferred): Use
5728 handwritten loop instead of std::replace.
5729
57302022-03-17 Jonathan Wakely <jwakely@redhat.com>
5731
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.
5736
57372022-03-17 Jonathan Wakely <jwakely@redhat.com>
5738
5739 * testsuite/util/testsuite_character.h: Fix comment.
5740
57412022-03-16 Jonathan Wakely <jwakely@redhat.com>
5742
5743 PR libstdc++/103407
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.
5749
57502022-03-16 Jonathan Wakely <jwakely@redhat.com>
5751
5752 * include/std/charconv (__cpp_lib_to_chars): Only define when
5753 both from_chars and to_chars are supported for floating-point
5754 types.
5755 (from_chars, to_chars): Adjust preprocessor conditions guarding
5756 declarations.
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
5760 function template.
5761 (from_chars): Simplify preprocessor checks and use
5762 from_chars_strtod when appropriate.
5763
57642022-03-14 Jonathan Wakely <jwakely@redhat.com>
5765
5766 PR libstdc++/104875
5767 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
5768 hold octets that will be left-shifted.
5769
57702022-03-10 Jonathan Wakely <jwakely@redhat.com>
5771
5772 PR libstdc++/104870
5773 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
5774 before using fast_float.
5775
57762022-03-10 Detlef Vollmann <dv@vollmann.ch>
5777
5778 PR libstdc++/104866
5779 * include/bits/this_thread_sleep.h: Fix order of #endif and
5780 closing brace of namespace.
5781
57822022-03-10 Jonathan Wakely <jwakely@redhat.com>
5783
5784 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
5785 Handle NaN.
5786
57872022-03-10 Jonathan Wakely <jwakely@redhat.com>
5788
5789 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
5790 <=> comparison.
5791
57922022-03-09 Patrick Palka <ppalka@redhat.com>
5793
5794 PR libstdc++/104859
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.
5798
57992022-03-08 Jonathan Wakely <jwakely@redhat.com>
5800
5801 * include/bits/uses_allocator_args.h: Remove incorrect copyright
5802 notice.
5803
58042022-03-07 Jonathan Wakely <jwakely@redhat.com>
5805
5806 PR libstdc++/104807
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.
5810
58112022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
5812
5813 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
5814 include.
5815
58162022-03-05 Jonathan Wakely <jwakely@redhat.com>
5817
5818 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
5819 attribute.
5820 (__terminate): Likewise.
5821
58222022-03-04 Jonathan Wakely <jwakely@redhat.com>
5823
5824 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
5825 inside #if condition.
5826
58272022-03-03 Jonathan Wakely <jwakely@redhat.com>
5828
5829 PR libstdc++/104748
5830 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
5831 constexpr test.
5832
58332022-03-03 Jonathan Wakely <jwakely@redhat.com>
5834
5835 * testsuite/17_intro/names.cc (func): Undef on AIX.
5836
58372022-03-03 Jonathan Wakely <jwakely@redhat.com>
5838
5839 PR libstdc++/96526
5840 * libsupc++/compare (strong_order): Add missing support for
5841 floating-point types.
5842 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
5843 New test.
5844
58452022-03-01 Jonathan Wakely <jwakely@redhat.com>
5846
5847 PR middle-end/103984
5848 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
5849 default member initializer.
5850
58512022-02-24 Jonathan Wakely <jwakely@redhat.com>
5852
5853 PR libstdc++/104602
5854 * include/std/source_location (source_location::current): Use
5855 deduced type of __builtin_source_location().
5856
58572022-02-22 Patrick Palka <ppalka@redhat.com>
5858
5859 * include/bits/ranges_base.h (__detail::__is_initializer_list):
5860 Define.
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
5869 as per P2415R2.
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.
5873 (test08): New test.
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.
5877
58782022-02-17 Jonathan Wakely <jwakely@redhat.com>
5879
5880 PR libstdc++/104559
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:
5887 New test.
5888
58892022-02-17 Jonathan Wakely <jwakely@redhat.com>
5890
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.
5897
58982022-02-15 Jonathan Wakely <jwakely@redhat.com>
5899
5900 PR libstdc++/104542
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.
5905
59062022-02-14 Jonathan Wakely <jwakely@redhat.com>
5907
5908 PR libstdc++/100912
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.
5917
59182022-02-14 Jonathan Wakely <jwakely@redhat.com>
5919
5920 PR libstdc++/103891
5921 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5922 Remove.
5923 * include/std/variant: Check feature test macros instead.
5924 * include/std/version: Likewise.
5925
59262022-02-14 Jonathan Wakely <jwakely@redhat.com>
5927
5928 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5929 Fix typo.
5930
59312022-02-14 Jonathan Wakely <jwakely@redhat.com>
5932
5933 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
5934 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
5935
59362022-02-11 Jonathan Wakely <jwakely@redhat.com>
5937
5938 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
5939 selector.
5940
59412022-02-11 Jonathan Wakely <jwakely@redhat.com>
5942
5943 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
5944 Ignore -Walloc-larger-than warning.
5945 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5946 Likewise.
5947 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
5948 to avoid linker error for __atomic_is_lock_free.
5949
59502022-02-10 Thomas Rodgers <rodgert@appliantology.com>
5951
5952 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
5953 __waiter_base::_S_do_spin_v): Change memory order from relaxed
5954 to acquire.
5955
59562022-02-10 Jonathan Wakely <jwakely@redhat.com>
5957
5958 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
5959 using-declaration.
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.
5963
59642022-02-10 Jonathan Wakely <jwakely@redhat.com>
5965
5966 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
5967 when <dirent.h> is not available.
5968 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
5969
59702022-02-09 Thomas Rodgers <rodgert@appliantology.com>
5971
5972 PR libstdc++/104442
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
5975 _M_ver.
5976
59772022-02-08 Jonathan Wakely <jwakely@redhat.com>
5978
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&&.
5984
59852022-02-08 Jonathan Wakely <jwakely@redhat.com>
5986
5987 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
5988 checking for CAS on correct word size.
5989
59902022-02-08 Jonathan Wakely <jwakely@redhat.com>
5991
5992 * testsuite/experimental/filesystem/operations/create_directories.cc:
5993 Adjust expected results for Windows.
5994
59952022-02-08 Jonathan Wakely <jwakely@redhat.com>
5996
5997 PR libstdc++/104161
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.
6005
60062022-02-04 Jonathan Wakely <jwakely@redhat.com>
6007
6008 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
6009 type to use portable posix::DIR alias.
6010
60112022-02-04 Jonathan Wakely <jwakely@redhat.com>
6012
6013 * include/c_compatibility/stdatomic.h [__clang__]: Use
6014 #include_next <stdatomic.h>.
6015
60162022-02-04 Jonathan Wakely <jwakely@redhat.com>
6017
6018 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
6019 noexcept.
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.
6025
60262022-02-04 Jonathan Wakely <jwakely@redhat.com>
6027
6028 PR libstdc++/104161
6029 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
6030 and unlinkat.
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
6036 function.
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
6043 constructor.
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
6053 advance call.
6054 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
6055 (recursive_directory_iterator::__erase): Define new member
6056 function.
6057 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
6058 (fs::remove_all): Use new recursive_directory_iterator::__erase
6059 member function.
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
6066 base constructor.
6067 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
6068 functions.
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.
6076
60772022-02-04 Jonathan Wakely <jwakely@redhat.com>
6078
6079 * include/bits/allocator.h: Qualify std::allocator_traits in
6080 deprecated warnings.
6081 * libsupc++/exception (uncaught_exception): Add suggestion to
6082 deprecated warning.
6083
60842022-02-02 Jonathan Wakely <jwakely@redhat.com>
6085
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):
6089 Likewise.
6090
60912022-02-02 Jonathan Wakely <jwakely@redhat.com>
6092
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.
6097
60982022-02-02 Jonathan Wakely <jwakely@redhat.com>
6099
6100 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
6101 Change member function to data member of function pointer type.
6102
61032022-02-02 Martin Sebor <msebor@redhat.com>
6104
6105 PR libstdc++/101831
6106 * include/std/array (begin): Declare const member function attribute
6107 const.
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.
6113
61142022-02-02 Jonathan Wakely <jwakely@redhat.com>
6115
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:
6119 Likewise.
6120
61212022-02-01 Jonathan Wakely <jwakely@redhat.com>
6122
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:
6127 Likewise.
6128
61292022-02-01 Jonathan Wakely <jwakely@redhat.com>
6130
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
6135 it might get reset.
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.
6140
61412022-02-01 Jonathan Wakely <jwakely@redhat.com>
6142
6143 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
6144
61452022-02-01 Jonathan Wakely <jwakely@redhat.com>
6146
6147 PR libstdc++/104301
6148 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
6149 for stdio_pure and stdio_posix options.
6150 * configure: Regenerate.
6151
61522022-02-01 Thomas Rodgers <rodgert@appliantology.com>
6153
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.
6157
61582022-01-31 Martin Liska <mliska@suse.cz>
6159
6160 * acinclude.m4: Detect *_ld_is_mold and use it.
6161 * configure: Regenerate.
6162
61632022-01-30 Hans-Peter Nilsson <hp@axis.com>
6164
6165 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
6166 simulator targets.
6167 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
6168
61692022-01-27 Jonathan Wakely <jwakely@redhat.com>
6170
6171 PR libstdc++/100516
6172 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
6173 Add __builtin_unreachable to loop.
6174 * testsuite/23_containers/deque/100516.cc: New test.
6175
61762022-01-27 Jonathan Wakely <jwakely@redhat.com>
6177
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:
6181 New test.
6182
61832022-01-27 Martin Liska <mliska@suse.cz>
6184
6185 PR libstdc++/104259
6186 * acinclude.m4: Fix typo.
6187 * configure: Regenerate.
6188
61892022-01-25 Jonathan Wakely <jwakely@redhat.com>
6190
6191 PR libstdc++/104019
6192 * include/bits/istream.tcc (basic_istream::sentry): Add braces
6193 around try-block.
6194 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
6195 Add pragmas to disable bogus warnings from PR 61596.
6196
61972022-01-25 Jonathan Wakely <jwakely@redhat.com>
6198
6199 PR libstdc++/104217
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.
6203
62042022-01-25 Jonathan Wakely <jwakely@redhat.com>
6205
6206 PR libstdc++/104161
6207 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
6208 fdopendir.
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
6219 O_DIRECTORY.
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.
6226
62272022-01-23 Jonathan Wakely <jwakely@redhat.com>
6228
6229 PR libstdc++/104032
6230 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
6231 mem-initializer for _M_buf.
6232 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
6233 member access.
6234 * testsuite/27_io/spanstream/2.cc: New test.
6235
62362022-01-23 Jonathan Wakely <jwakely@redhat.com>
6237
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
6247 is binary64.
6248
62492022-01-23 Jonathan Wakely <jwakely@redhat.com>
6250
6251 PR libstdc++/104174
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.
6255
62562022-01-23 Jonathan Wakely <jwakely@redhat.com>
6257
6258 PR libstdc++/104019
6259 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
6260 Set members to zero without type punning.
6261
62622022-01-21 Jonathan Wakely <jwakely@redhat.com>
6263
6264 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
6265
62662022-01-21 Jonathan Wakely <jwakely@redhat.com>
6267
6268 PR libstdc++/87193
6269 PR libstdc++/104019
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):
6273 Likewise.
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):
6280 Likewise.
6281 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
6282 Likewise.
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):
6286 Likewise.
6287 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
6288 Likewise.
6289 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
6290 Likewise.
6291 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
6292 Likewise.
6293 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
6294 Likewise.
6295 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
6296 Likewise.
6297 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
6298 Likewise.
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):
6302 Likewise.
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.
6322
63232022-01-21 Jonathan Wakely <jwakely@redhat.com>
6324
6325 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
6326 condition for C++17 definition.
6327
63282022-01-21 Jonathan Wakely <jwakely@redhat.com>
6329
6330 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
6331 Add constexpr.
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.
6336
63372022-01-20 Jonathan Wakely <jwakely@redhat.com>
6338
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.
6344
63452022-01-20 Jonathan Wakely <jwakely@redhat.com>
6346
6347 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
6348 src/libbacktrace/.libs to LDFLAGS if those directories exist.
6349
63502022-01-19 Jonathan Wakely <jwakely@redhat.com>
6351
6352 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
6353 from default flags.
6354 * configure: Regenerate.
6355
63562022-01-19 Jonathan Wakely <jwakely@redhat.com>
6357
6358 PR libstdc++/104123
6359 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
6360 <stddef.h>.
6361
63622022-01-19 Jonathan Wakely <jwakely@redhat.com>
6363
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.
6371
63722022-01-19 Matthias Kretz <m.kretz@gsi.de>
6373
6374 * include/experimental/bits/simd.h (__floating_point_flags): Do
6375 not rely on math_errhandling to expand to a constant expression.
6376
63772022-01-19 Jonathan Wakely <jwakely@redhat.com>
6378
6379 * doc/xml/manual/evolution.xml: Document deprecations.
6380 * doc/xml/manual/status_cxx2017.xml: Update status.
6381 * doc/html/*: Regenerate.
6382
63832022-01-19 Jonathan Wakely <jwakely@redhat.com>
6384
6385 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
6386 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
6387
63882022-01-19 Jonathan Wakely <jwakely@redhat.com>
6389
6390 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
6391 function.
6392
63932022-01-19 Jonathan Wakely <jwakely@redhat.com>
6394
6395 PR libstdc++/104101
6396 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
6397 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
6398
63992022-01-18 Jonathan Wakely <jwakely@redhat.com>
6400
6401 PR libstdc++/104099
6402 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
6403 define for C++23.
6404 (operator=(nullptr_t)): Likewise.
6405 * include/bits/cow_string.h: Likewise.
6406 * include/std/string_view (basic_string_view(nullptr_t)):
6407 Likewise.
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:
6413 Likewise.
6414
64152022-01-18 Jonathan Wakely <jwakely@redhat.com>
6416
6417 PR libstdc++/104098
6418 * include/bits/stl_iterator.h (reverse_iterator): Check
6419 __cpp_lib_concepts instead of __cplusplus.
6420
64212022-01-18 Jonathan Wakely <jwakely@redhat.com>
6422
6423 PR libstdc++/101124
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.
6429
64302022-01-18 Jonathan Wakely <jwakely@redhat.com>
6431
6432 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
6433 non-deprecated alternative.
6434
64352022-01-18 Tom Honermann <tom@honermann.net>
6436
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:
6445 New test.
6446 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
6447 New test.
6448
64492022-01-18 Jonathan Wakely <jwakely@redhat.com>
6450
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.
6455
64562022-01-18 Jonathan Wakely <jwakely@redhat.com>
6457
6458 PR libstdc++/104080
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__.
6462
64632022-01-18 Jonathan Wakely <jwakely@redhat.com>
6464
6465 PR libstdc++/104080
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.
6469
64702022-01-18 Jonathan Wakely <jwakely@redhat.com>
6471
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
6474 upcoming release.
6475 * doc/html/manual/status.html: Regenerate.
6476
64772022-01-18 Jonathan Wakely <jwakely@redhat.com>
6478
6479 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
6480 comments.
6481 * configure: Regenerate.
6482
64832022-01-17 Patrick Palka <ppalka@redhat.com>
6484
6485 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
6486 Conditionally define, and use it to conditionally include
6487 fast_float.
6488 (from_chars): Use fast_float for float and double when
6489 USE_LIB_FAST_FLOAT.
6490
64912022-01-17 Patrick Palka <ppalka@redhat.com>
6492
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
6496 modify 'value'.
6497
64982022-01-17 Patrick Palka <ppalka@redhat.com>
6499
6500 * src/c++17/fast_float/LOCAL_PATCHES: Update.
6501 * src/c++17/fast_float/fast_float.h: Apply local modifications.
6502
65032022-01-17 Patrick Palka <ppalka@redhat.com>
6504
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.
6511
65122022-01-17 Patrick Palka <ppalka@redhat.com>
6513
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.
6521
65222022-01-17 Jonathan Wakely <jwakely@redhat.com>
6523
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):
6551 New proc.
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.
6555
65562022-01-17 Jonathan Wakely <jwakely@redhat.com>
6557
6558 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
6559 names.
6560 * doc/html/manual/status.html: Regenerate.
6561
65622022-01-17 Jonathan Wakely <jwakely@redhat.com>
6563
6564 PR libstdc++/103650
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.
6568
65692022-01-17 Matthias Kretz <m.kretz@gsi.de>
6570
6571 * include/experimental/bits/simd.h (__floating_point_flags): Do
6572 not rely on the presence of the math_errhandling macro.
6573
65742022-01-17 Jonathan Wakely <jwakely@redhat.com>
6575
6576 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
6577 to qualified-id for dependent type.
6578
65792022-01-17 Jonathan Wakely <jwakely@redhat.com>
6580
6581 * doc/xml/manual/status_cxx2020.xml: Update.
6582 * doc/html/manual/status.html: Regenerate.
6583
65842022-01-17 Jonathan Wakely <jwakely@redhat.com>
6585 Thomas Rodgers <trodgers@redhat.com>
6586
6587 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
6588 New macro.
6589 (_Sp_atomic): New class template.
6590 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
6591 specializations.
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
6596 test.
6597 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
6598
65992022-01-15 Matthias Kretz <m.kretz@gsi.de>
6600
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
6614 always_inline.
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
6624 template parameter.
6625 * include/experimental/bits/simd_ppc.h: Ditto.
6626 * include/experimental/bits/simd_x86.h: Ditto.
6627
66282022-01-14 Uroš Bizjak <ubizjak@gmail.com>
6629
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.
6633
66342022-01-14 Jonathan Wakely <jwakely@redhat.com>
6635
6636 PR libstdc++/91260
6637 PR libstdc++/91383
6638 PR libstdc++/95065
6639 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
6640 attribute.
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
6653 attributes.
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):
6661 Likewise.
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
6668 classes.
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
6679 dg-warning.
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:
6683 Likewise.
6684 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
6685 Likewise.
6686 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
6687 Likewise.
6688 * testsuite/20_util/reference_wrapper/24803.cc:
6689 Likewise.
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:
6698 Likewise.
6699 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
6700 Likewise.
6701 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
6702 Likewise.
6703 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
6704 Likewise.
6705 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
6706 Likewise.
6707 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
6708 Likewise.
6709 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
6710 Likewise.
6711 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
6712 Likewise.
6713 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
6714 Likewise.
6715 * testsuite/25_algorithms/copy/34595.cc:
6716 Likewise.
6717 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
6718 base class.
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:
6722 Likewise.
6723 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
6724 Likewise.
6725 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
6726 Likewise.
6727 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
6728 Likewise.
6729 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
6730 Likewise.
6731 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
6732 Likewise.
6733 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
6734 Likewise.
6735 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
6736 Likewise.
6737 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
6738 Likewise.
6739 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
6740 Likewise.
6741 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
6742 Likewise.
6743 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
6744 Likewise.
6745 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
6746 Likewise.
6747 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
6748 Likewise.
6749 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
6750 Likewise.
6751 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
6752 Likewise.
6753 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
6754 Likewise.
6755 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
6756 Likewise.
6757 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
6758 Likewise.
6759 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
6760 Likewise.
6761 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
6762 Likewise.
6763 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
6764 Likewise.
6765 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
6766 Likewise.
6767 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
6768 Likewise.
6769 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
6770 Likewise.
6771 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
6772 Likewise.
6773 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
6774 Likewise.
6775 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
6776 Likewise.
6777 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
6778 Likewise.
6779 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
6780 Likewise.
6781 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
6782 Likewise.
6783 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
6784 Likewise.
6785 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
6786 Likewise.
6787 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
6788 Likewise.
6789 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
6790 Likewise.
6791 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
6792 Likewise.
6793 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
6794 Likewise.
6795 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
6796 Likewise.
6797 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
6798 Likewise.
6799 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
6800 Likewise.
6801 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
6802 Likewise.
6803 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
6804 Likewise.
6805 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
6806 Likewise.
6807 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
6808 Likewise.
6809 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
6810 Likewise.
6811 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
6812 Likewise.
6813 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
6814 Likewise.
6815 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
6816 dg-warning.
6817 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
6818 Likewise.
6819 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
6820 Likewise.
6821 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
6822 Disable deprecated warnings.
6823 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
6824 Likewise.
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.
6829
68302022-01-14 Jonathan Wakely <jwakely@redhat.com>
6831
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):
6838 New macro.
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
6848 type.
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
6852 expected errors.
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.
6858
68592022-01-14 Jonathan Wakely <jwakely@redhat.com>
6860
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.
6865
68662022-01-14 Jonathan Wakely <jwakely@redhat.com>
6867
6868 PR libstdc++/103992
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.
6873
68742022-01-14 Jonathan Wakely <jwakely@redhat.com>
6875
6876 * doc/xml/manual/status_cxx2011.xml: Document new tokens
6877 accepted by std::random_device constructor.
6878 * doc/html/manual/status.html: Regenerate.
6879
68802022-01-12 Patrick Palka <ppalka@redhat.com>
6881
6882 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
6883 directive.
6884
68852022-01-12 Patrick Palka <ppalka@redhat.com>
6886
6887 PR libstdc++/103955
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
6891 two checks.
6892 (__floating_to_chars_precision): Avoid overflow in bounds checks
6893 similarly.
6894 * testsuite/20_util/to_chars/103955.cc: New test.
6895
68962022-01-11 Jonathan Wakely <jwakely@redhat.com>
6897
6898 PR libstdc++/103726
6899 * include/Makefile.am: Install <source_location> for
6900 freestanding.
6901 * include/Makefile.in: Regenerate.
6902 * include/std/version (__cpp_lib_source_location): Define for
6903 freestanding.
6904
69052022-01-11 Jonathan Wakely <jwakely@redhat.com>
6906
6907 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
6908 Add neoxcept (LWG 3593).
6909
69102022-01-11 Jonathan Wakely <jwakely@redhat.com>
6911
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.
6916
69172022-01-11 Jonathan Wakely <jwakely@redhat.com>
6918
6919 PR libstdc++/103726
6920 * include/Makefile.am: Install <coroutine> for freestanding.
6921 * include/Makefile.in: Regenerate.
6922 * include/std/coroutine: Adjust headers and preprocessor
6923 conditions.
6924 (__coroutine_traits_impl): Use concepts when available.
6925 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
6926
69272022-01-11 Jonathan Wakely <jwakely@redhat.com>
6928
6929 * include/std/ostream (operator<<(basic_ostream&, charT)):
6930 Use unformatted input if no padding is needed.
6931 (operator<<(basic_ostream<char>&, char)): Likewise.
6932
69332022-01-11 Jonathan Wakely <jwakely@redhat.com>
6934
6935 PR libstdc++/103891
6936 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
6937 Define.
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.
6942
69432022-01-11 Jonathan Wakely <jwakely@redhat.com>
6944
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.
6950
69512022-01-10 Jakub Jelinek <jakub@redhat.com>
6952
6953 PR libstdc++/77760
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
6965 at the end.
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
6970 pass around state.
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.
6989
69902022-01-10 Jonathan Wakely <jwakely@redhat.com>
6991
6992 PR libstdc++/103866
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.
7015
70162022-01-10 Jonathan Wakely <jwakely@redhat.com>
7017
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.
7023
70242022-01-10 Jonathan Wakely <jwakely@redhat.com>
7025
7026 * doc/xml/manual/using.xml: Update documentation around default
7027 -std option.
7028 * doc/html/*: Regenerate.
7029
70302022-01-10 Jonathan Wakely <jwakely@redhat.com>
7031
7032 PR libstdc++/100017
7033 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
7034 * src/c++17/Makefile.in: Regenerate.
7035
70362022-01-09 Sandra Loosemore <sandra@codesourcery.com>
7037
7038 * testsuite/18_support/type_info/constexpr.cc: Add explicit
7039 -fdelete-null-pointer-checks option.
7040
70412022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
7042 Jonathan Wakely <jwakely@redhat.com>
7043
7044 PR libstdc++/103853
7045 * include/bits/forward_list.tcc (forward_list::merge): Check for
7046 self-merge.
7047 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
7048
70492022-01-06 Jonathan Wakely <jwakely@redhat.com>
7050
7051 * include/bits/regex.h (basic_regex, match_results): Qualify
7052 name in friend declaration, to work around Clang bug.
7053
70542022-01-06 Jonathan Wakely <jwakely@redhat.com>
7055
7056 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
7057
70582022-01-06 Jonathan Wakely <jwakely@redhat.com>
7059
7060 PR libstdc++/103911
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.
7066
70672022-01-05 François Dumont <fdumont@gcc.gnu.org>
7068
7069 PR libstdc++/68303
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.
7093
70942022-01-05 Jonathan Wakely <jwakely@redhat.com>
7095
7096 PR libstdc++/103919
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)):
7100 Likewise.
7101 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
7102
71032022-01-05 Jonathan Wakely <jwakely@redhat.com>
7104
7105 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
7106 ARM EABI.
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
7110 is emitted.
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.
7118
71192022-01-05 Jonathan Wakely <jwakely@redhat.com>
7120
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
7124 immortal.
7125 * src/c++11/future.cc (future_error_category): Define class and
7126 virtual functions as 'final'.
7127 (future_category_instance): Use constinit union.
7128
71292022-01-05 Jonathan Wakely <jwakely@redhat.com>
7130
7131 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
7132 versioned namespace from the type name that is printed.
7133
71342022-01-05 Jonathan Wakely <jwakely@redhat.com>
7135
7136 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
7137 printer for std::regex NFA states.
7138
71392022-01-05 Jonathan Wakely <jwakely@redhat.com>
7140
7141 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
7142 placeholders in comments.
7143 * testsuite/23_containers/forward_list/operations/2.cc:
7144 Likewise.
7145 * testsuite/23_containers/forward_list/operations/3.cc:
7146 Likewise.
7147 * testsuite/23_containers/forward_list/operations/4.cc:
7148 Likewise.
7149 * testsuite/23_containers/forward_list/operations/5.cc:
7150 Likewise.
7151 * testsuite/23_containers/forward_list/operations/6.cc:
7152 Likewise.
7153 * testsuite/23_containers/forward_list/operations/7.cc:
7154 Likewise.
7155
71562022-01-05 Jonathan Wakely <jwakely@redhat.com>
7157
7158 PR libstdc++/103848
7159 * include/bits/stl_deque.h (operator-): Do not use 0 as null
7160 pointer constant.
7161
71622022-01-05 Jonathan Wakely <jwakely@redhat.com>
7163
7164 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
7165 Use std::_Construct for construct.
7166
71672022-01-05 Jonathan Wakely <jwakely@redhat.com>
7168
7169 PR libstdc++/103877
7170 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
7171 * doc/html/faq.html: Regenerate.
7172
71732022-01-05 Jonathan Wakely <jwakely@redhat.com>
7174
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
7178 function arguments.
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):
7185 Likewise.
7186 * testsuite/util/testsuite_regex.h (regex_match_debug)
7187 (regex_search_debug): Move template arguments to function
7188 arguments.
7189
71902022-01-05 Jonathan Wakely <jwakely@redhat.com>
7191
7192 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
7193 results even if the match failed.
7194
71952022-01-05 Jonathan Wakely <jwakely@redhat.com>
7196
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
7200 attribute.
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.
7205
7206\f
7207Copyright (C) 2022 Free Software Foundation, Inc.
7208
7209Copying and distribution of this file, with or without modification,
7210are permitted in any medium without royalty provided the copyright
7211notice and this notice are preserved.