]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog-2022
i386: Wrong code with __builtin_parityl [PR112672]
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog-2022
1 2022-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
7 2022-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
12 2022-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
36 2022-12-23 Jonathan Wakely <jwakely@redhat.com>
37
38 * src/c++20/tzdb.cc [__APPLE__] (zoneinfo_dir_override): Add
39 definition.
40
41 2022-12-23 Jonathan Wakely <jwakely@redhat.com>
42
43 * src/c++20/tzdb.cc: Remove static_assert.
44
45 2022-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
53 2022-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
60 2022-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
88 2022-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
95 2022-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
103 2022-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
144 2022-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
153 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
154
155 * include/std/chrono: Use nodiscard attribute.
156
157 2022-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
164 2022-12-19 Arsen Arsenović <arsen@aarsen.me>
165
166 * include/experimental/contract: Lowercase the constants in
167 contract_violation_continuation_mode.
168
169 2022-12-16 John David Anglin <danglin@gcc.gnu.org>
170
171 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
172
173 2022-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
186 2022-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
201 2022-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
219 2022-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
226 2022-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
234 2022-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
240 2022-12-13 Jakub Jelinek <jakub@redhat.com>
241
242 * src/libbacktrace/backtrace-rename.h (backtrace_uncompress_zstd):
243 Define.
244
245 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
246
247 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc: New
248 test.
249
250 2022-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
256 2022-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
265 2022-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
276 2022-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
282 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
283
284 PR libstdc++/108015
285 * include/std/chrono (hh_mm_ss): Remove digit separators.
286
287 2022-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
294 2022-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
301 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
302
303 * include/bits/chrono.h (duration, time_point): Change 'struct'
304 to 'class'.
305
306 2022-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
316 2022-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
322 2022-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
331 2022-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
341 2022-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
348 2022-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
383 2022-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
391 2022-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
397 2022-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
402 2022-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
410 2022-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
420 2022-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
429 2022-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
437 2022-11-28 François Dumont <fdumont@gcc.gnu.org>
438
439 * testsuite/20_util/function/cons/70692.cc: Adapt dg-error message.
440
441 2022-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
451 2022-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
457 2022-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
463 2022-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
468 2022-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
474 2022-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
486 2022-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
492 2022-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
515 2022-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
523 2022-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
531 2022-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
538 2022-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
544 2022-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
551 2022-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
558 2022-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
565 2022-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
571 2022-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
580 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
581
582 PR libstdc++/106201
583 * testsuite/27_io/filesystem/iterators/106201.cc: New test.
584
585 2022-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
591 2022-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
599 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
600
601 * include/bits/chrono.h (duration): Check preconditions on
602 template arguments before using them.
603
604 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
605
606 * include/std/tuple: Add better Doxygen comments.
607
608 2022-11-21 Martin Liska <mliska@suse.cz>
609
610 * src/experimental/Makefile.in: Re-configure.
611
612 2022-11-20 François Dumont <fdumont@gcc.gnu.org>
613
614 * include/std/format: Add std qualification on isxdigit calls.
615
616 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
617
618 * include/bits/range_access.h: Add always_inline attribute to
619 trivial functions.
620
621 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
622
623 * include/std/format: Fix -Wsign-compare warnings.
624
625 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
626
627 * include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename
628 parameter.
629
630 2022-11-19 Jonathan Wakely <jwakely@redhat.com>
631
632 PR libstdc++/107649
633 * include/std/complex (__complex_proj): Fix requires-clause.
634
635 2022-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
650 2022-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
657 2022-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
664 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
665
666 * include/std/chrono (get_leap_second_info): Optimize.
667
668 2022-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
676 2022-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
682 2022-11-16 Jonathan Wakely <jwakely@redhat.com>
683
684 * testsuite/std/time/clock/utc/1.cc: Check handling across leap
685 second insertion.
686
687 2022-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
697 2022-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
713 2022-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
718 2022-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
725 2022-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
735 2022-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
740 2022-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
749 2022-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
759 2022-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
765 2022-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
771 2022-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
776 2022-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
791 2022-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
811 2022-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
820 2022-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
826 2022-11-12 Jonathan Wakely <jwakely@redhat.com>
827
828 * src/Makefile.am: Simplify debug build targets.
829 * src/Makefile.in: Regenerate.
830
831 2022-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
841 2022-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
848 2022-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
854 2022-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
874 2022-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
881 2022-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
886 2022-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
891 2022-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
923 2022-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
931 2022-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
960 2022-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
974 2022-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
988 2022-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
995 2022-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
1004 2022-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
1009 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
1010
1011 * doc/xml/authors.xml: Update the blurb listing my doc
1012 contributions.
1013
1014 2022-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
1020 2022-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
1026 2022-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
1032 2022-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
1039 2022-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
1047 2022-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
1064 2022-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
1075 2022-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
1102 2022-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
1133 2022-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
1144 2022-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
1152 2022-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
1161 2022-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
1169 2022-11-04 Jonathan Wakely <jwakely@redhat.com>
1170
1171 PR libstdc++/107511
1172 * libsupc++/eh_alloc.cc (_GNU_SOURCE): Define.
1173
1174 2022-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
1181 2022-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
1187 2022-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
1193 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
1194
1195 * include/std/expected (expected::_M_invalid): Remove.
1196
1197 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
1198
1199 * include/std/variant (__variant::_Multi_array::__untag_result):
1200 Use pragma to suppress warning.
1201
1202 2022-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
1208 2022-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
1221 2022-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
1246 2022-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
1270 2022-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
1287 2022-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
1314 2022-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
1325 2022-10-28 Jonathan Wakely <jwakely@redhat.com>
1326
1327 * include/bits/fs_path.h (path::filename()): Fix dangling
1328 reference.
1329
1330 2022-10-28 Arsen Arsenović <arsen@aarsen.me>
1331
1332 * include/std/functional: Make placeholders inline, if possible.
1333
1334 2022-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
1356 2022-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
1366 2022-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
1372 2022-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
1378 2022-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
1385 2022-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
1393 2022-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
1405 2022-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
1411 2022-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
1416 2022-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
1425 2022-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
1441 2022-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
1449 2022-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
1501 2022-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
1509 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
1510
1511 * src/c++11/debug.cc (print_raw): Move inside #if block.
1512
1513 2022-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
1530 2022-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
1540 2022-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
1553 2022-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
1560 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
1561
1562 * include/std/iostream: Use markdown in Doxygen comment.
1563
1564 2022-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
1586 2022-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
1595 2022-10-12 Martin Liska <mliska@suse.cz>
1596
1597 * configure: Regenerate.
1598
1599 2022-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
1607 2022-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
1648 2022-10-11 Olivier Hainque <hainque@adacore.com>
1649 Olivier Hainque <hainque@adacore.com>
1650
1651 * configure: Regenerate.
1652
1653 2022-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
1668 2022-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
1682 2022-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
1688 2022-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
1694 2022-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
1700 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
1701
1702 * include/Makefile.in: Regenerate.
1703
1704 2022-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
1710 2022-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
1717 2022-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
1724 2022-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
1730 2022-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
1739 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1740
1741 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
1742 for freestanding.
1743
1744 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
1745
1746 PR libstdc++/107139
1747 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
1748 conditionals.
1749
1750 2022-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
1756 2022-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
1766 2022-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
1778 2022-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
1784 2022-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
1789 2022-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
2156 2022-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
2163 2022-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
2171 2022-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
2178 2022-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
2205 2022-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
2213 2022-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
2399 2022-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
2406 2022-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
2412 2022-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
2425 2022-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
2432 2022-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
2450 2022-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
2455 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2456
2457 * include/std/bitset (operator>>): Use a simple buffer instead
2458 of std::basic_string.
2459
2460 2022-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
2468 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
2469
2470 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
2471 directive.
2472
2473 2022-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
2478 2022-09-30 Arsen Arsenović <arsen@aarsen.me>
2479
2480 * include/std/bitset: Include <bits/stl_algobase.h>.
2481
2482 2022-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
2488 2022-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
2493 2022-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
2499 2022-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
2517 2022-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
2540 2022-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
2546 2022-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
2560 2022-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
2570 2022-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
2576 2022-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
2583 2022-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
2599 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
2600
2601 * testsuite/20_util/is_assignable/requirements/access.cc:
2602 New test.
2603
2604 2022-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
2618 2022-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
2625 2022-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
2630 2022-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
2642 2022-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
2647 2022-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
2659 2022-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
2730 2022-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
2736 2022-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
2744 2022-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
2757 2022-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
2762 2022-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
2768 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2769
2770 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
2771 using-declaration for _Exit.
2772
2773 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2774
2775 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
2776 call to std::abort.
2777
2778 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
2779
2780 * include/bits/ranges_base.h: Include <initializer_list>.
2781
2782 2022-09-20 Jonathan Wakely <jwakely@redhat.com>
2783
2784 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
2785 missing space.
2786
2787 2022-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
2827 2022-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
2834 2022-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
2845 2022-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
2850 2022-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
2867 2022-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
2872 2022-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
2878 2022-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
2883 2022-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
2889 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
2890
2891 * include/std/memory: Do not include <bits/stl_algobase.h>.
2892
2893 2022-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
2906 2022-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
2917 2022-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
2922 2022-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
2927 2022-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
2936 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2937
2938 * include/bits/stl_tempbuf.h: Include <new>.
2939
2940 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2941
2942 * testsuite/17_intro/names.cc: Explain why poison pragma can't
2943 be used.
2944
2945 2022-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
2953 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
2954
2955 * doc/xml/manual/intro.xml: Document LWG 1203.
2956 * doc/html/*: Regenerate.
2957
2958 2022-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
2969 2022-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
2982 2022-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
2997 2022-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
3013 2022-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
3018 2022-09-12 Patrick Palka <ppalka@redhat.com>
3019
3020 PR libstdc++/106320
3021 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
3022
3023 2022-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
3030 2022-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
3047 2022-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
3053 2022-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
3060 2022-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
3067 2022-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
3075 2022-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
3081 2022-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
3095 2022-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
3101 2022-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
3123 2022-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
3135 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
3136
3137 * include/std/barrier: Add missing runtime exception.
3138
3139 2022-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
3145 2022-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
3153 2022-09-07 Jason Merrill <jason@redhat.com>
3154
3155 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
3156 call in simple success case.
3157
3158 2022-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
3164 2022-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
3169 2022-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
3176 2022-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
3186 2022-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
3210 2022-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
3218 2022-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
3223 2022-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
3231 2022-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
3265 2022-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
3272 2022-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
3279 2022-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
3286 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
3287
3288 * include/std/type_traits (is_scoped_enum): Remove workaround.
3289
3290 2022-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
3303 2022-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
3317 2022-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
3330 2022-08-31 Martin Liska <mliska@suse.cz>
3331
3332 * configure: Regenerate.
3333 * crossconfig.m4: Remove deprecated ports.
3334
3335 2022-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
3346 2022-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
3359 2022-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
3379 2022-08-31 Patrick Palka <ppalka@redhat.com>
3380
3381 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
3382
3383 2022-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
3389 2022-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
3396 2022-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
3454 2022-08-27 Patrick Palka <ppalka@redhat.com>
3455
3456 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
3457
3458 2022-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
3469 2022-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
3482 2022-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
3496 2022-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
3509 2022-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
3524 2022-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
3533 2022-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
3554 2022-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
3564 2022-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
3572 2022-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
3578 2022-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
3585 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
3586
3587 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
3588 non-reduced duration.
3589
3590 2022-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
3627 2022-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
3635 2022-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
3642 2022-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
3650 2022-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
3662 2022-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
3670 2022-08-17 Keef Aragon <keef.aragon@konscious.net>
3671
3672 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
3673
3674 2022-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
3692 2022-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
3698 2022-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
3706 2022-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
3715 2022-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
3734 2022-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
3739 2022-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
3749 2022-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
3760 2022-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
3765 2022-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
3771 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
3772
3773 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
3774
3775 2022-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
3784 2022-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
3795 2022-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
3803 2022-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
3834 2022-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
3841 2022-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
3847 2022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
3848
3849 * configure: Regnerate.
3850 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
3851
3852 2022-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
3862 2022-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
3879 2022-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
3889 2022-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
3901 2022-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
3906 2022-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
3912 2022-07-05 Alexandre Oliva <oliva@adacore.com>
3913
3914 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
3915 why we need the typecast.
3916
3917 2022-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
3922 2022-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
3929 2022-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
3958 2022-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
3969 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
3970
3971 * include/bits/utility.h: Fix comment typos.
3972
3973 2022-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
3985 2022-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
3996 2022-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
4001 2022-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
4012 2022-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
4019 2022-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
4024 2022-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
4029 2022-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
4036 2022-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
4042 2022-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
4047 2022-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
4052 2022-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
4064 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
4065
4066 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
4067
4068 2022-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
4074 2022-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
4079 2022-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
4086 2022-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
4091 2022-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
4097 2022-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
4102 2022-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
4112 2022-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
4119 2022-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
4132 2022-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
4144 2022-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
4197 2022-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
4205 2022-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
4210 2022-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
4215 2022-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
4222 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
4223
4224 * testsuite/26_numerics/random/random_device/entropy.cc: Use
4225 numeric_limits<unsigned>::digits.
4226
4227 2022-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
4232 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4233
4234 * testsuite/30_threads/this_thread/60421.cc (test02): Call
4235 sched_yield.
4236
4237 2022-06-22 Alexandre Oliva <oliva@adacore.com>
4238
4239 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
4240
4241 2022-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
4250 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
4251
4252 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
4253 missing #include.
4254
4255 2022-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
4262 2022-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
4268 2022-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
4284 2022-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
4292 2022-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
4302 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
4303
4304 * include/bits/new_allocator.h: Fix indentation.
4305 * include/ext/malloc_allocator.h: Likewise.
4306
4307 2022-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
4314 2022-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
4320 2022-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
4326 2022-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
4344 2022-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
4353 2022-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
4371 2022-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
4377 2022-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
4386 2022-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
4392 2022-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
4402 2022-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
4408 2022-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
4422 2022-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
4429 2022-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
4436 2022-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
4441 2022-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
4446 2022-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
4657 2022-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
4669 2022-05-25 Jason Merrill <jason@redhat.com>
4670
4671 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
4672 constexpr.
4673
4674 2022-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
4691 2022-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
4703 2022-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
4709 2022-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
4749 2022-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
4755 2022-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
4761 2022-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
4771 2022-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
4786 2022-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
4792 2022-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
4808 2022-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
4814 2022-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
4819 2022-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
4826 2022-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
4832 2022-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
4838 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4839
4840 * include/std/future (launch): Make operators noexcept.
4841
4842 2022-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
4849 2022-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
4859 2022-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
4869 2022-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
4879 2022-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
4886 2022-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
4895 2022-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
4904 2022-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
4913 2022-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
4922 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4923
4924 * include/std/system_error: Improve doxygen comments.
4925
4926 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4927
4928 * include/bits/ptr_traits.h: Add some doxygen comments.
4929
4930 2022-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
4944 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
4945
4946 * include/bits/mofunc_impl.h: Fix doxygen command.
4947
4948 2022-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
4953 2022-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
4960 2022-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
4973 2022-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
4983 2022-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
4992 2022-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
5001 2022-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
5009 2022-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
5015 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
5016
5017 * include/std/stacktrace: Do not include <cxxabi.h>.
5018 (__cxa_demangle): Declare.
5019
5020 2022-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
5032 2022-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
5038 2022-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
5109 2022-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
5115 2022-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
5131 2022-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
5137 2022-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
5145 2022-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
5152 2022-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
5161 2022-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
5170 2022-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
5181 2022-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
5186 2022-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
5197 2022-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
5207 2022-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
5214 2022-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
5220 2022-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
5239 2022-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
5245 2022-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
5254 2022-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
5268 2022-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
5278 2022-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
5285 2022-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
5292 2022-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
5297 2022-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
5306 2022-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
5315 2022-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
5320 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
5321
5322 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
5323 * configure: Regenerate.
5324
5325 2022-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
5331 2022-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
5338 2022-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
5357 2022-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
5363 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
5364
5365 * doc/xml/manual/intro.xml: Fix comment.
5366
5367 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
5368
5369 * include/precompiled/stdc++.h: Include <stacktrace> and
5370 <stdatomic.h> for C++23.
5371
5372 2022-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
5397 2022-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
5403 2022-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
5409 2022-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
5424 2022-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
5431 2022-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
5446 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
5447
5448 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
5449 Change [[unlikely]] attribute to [[likely]].
5450
5451 2022-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
5466 2022-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
5480 2022-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
5489 2022-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
5494 2022-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
5501 2022-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
5509 2022-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
5516 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
5517
5518 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
5519 test.
5520
5521 2022-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
5527 2022-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
5536 2022-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
5543 2022-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
5548 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
5549
5550 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
5551
5552 2022-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
5558 2022-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
5563 2022-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
5569 2022-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
5580 2022-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
5600 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
5601
5602 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
5603 comments.
5604
5605 2022-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
5611 2022-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
5630 2022-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
5636 2022-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
5641 2022-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
5647 2022-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
5653 2022-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
5724 2022-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
5730 2022-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
5737 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
5738
5739 * testsuite/util/testsuite_character.h: Fix comment.
5740
5741 2022-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
5750 2022-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
5764 2022-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
5770 2022-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
5776 2022-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
5782 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
5783
5784 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
5785 Handle NaN.
5786
5787 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
5788
5789 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
5790 <=> comparison.
5791
5792 2022-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
5799 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
5800
5801 * include/bits/uses_allocator_args.h: Remove incorrect copyright
5802 notice.
5803
5804 2022-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
5811 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
5812
5813 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
5814 include.
5815
5816 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
5817
5818 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
5819 attribute.
5820 (__terminate): Likewise.
5821
5822 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
5823
5824 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
5825 inside #if condition.
5826
5827 2022-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
5833 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
5834
5835 * testsuite/17_intro/names.cc (func): Undef on AIX.
5836
5837 2022-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
5845 2022-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
5851 2022-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
5857 2022-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
5878 2022-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
5889 2022-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
5898 2022-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
5906 2022-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
5918 2022-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
5926 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
5927
5928 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
5929 Fix typo.
5930
5931 2022-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
5936 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
5937
5938 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
5939 selector.
5940
5941 2022-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
5950 2022-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
5956 2022-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
5964 2022-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
5970 2022-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
5977 2022-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
5985 2022-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
5990 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
5991
5992 * testsuite/experimental/filesystem/operations/create_directories.cc:
5993 Adjust expected results for Windows.
5994
5995 2022-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
6006 2022-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
6011 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
6012
6013 * include/c_compatibility/stdatomic.h [__clang__]: Use
6014 #include_next <stdatomic.h>.
6015
6016 2022-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
6026 2022-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
6077 2022-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
6084 2022-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
6091 2022-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
6098 2022-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
6103 2022-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
6114 2022-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
6121 2022-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
6129 2022-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
6141 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
6142
6143 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
6144
6145 2022-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
6152 2022-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
6158 2022-01-31 Martin Liska <mliska@suse.cz>
6159
6160 * acinclude.m4: Detect *_ld_is_mold and use it.
6161 * configure: Regenerate.
6162
6163 2022-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
6169 2022-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
6176 2022-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
6183 2022-01-27 Martin Liska <mliska@suse.cz>
6184
6185 PR libstdc++/104259
6186 * acinclude.m4: Fix typo.
6187 * configure: Regenerate.
6188
6189 2022-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
6197 2022-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
6204 2022-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
6227 2022-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
6236 2022-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
6249 2022-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
6256 2022-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
6262 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
6263
6264 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
6265
6266 2022-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
6323 2022-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
6328 2022-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
6337 2022-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
6345 2022-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
6350 2022-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
6356 2022-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
6362 2022-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
6372 2022-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
6377 2022-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
6383 2022-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
6388 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
6389
6390 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
6391 function.
6392
6393 2022-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
6399 2022-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
6415 2022-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
6421 2022-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
6430 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6431
6432 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
6433 non-deprecated alternative.
6434
6435 2022-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
6449 2022-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
6456 2022-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
6463 2022-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
6470 2022-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
6477 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
6478
6479 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
6480 comments.
6481 * configure: Regenerate.
6482
6483 2022-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
6491 2022-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
6498 2022-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
6503 2022-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
6512 2022-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
6522 2022-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
6556 2022-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
6562 2022-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
6569 2022-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
6574 2022-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
6579 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
6580
6581 * doc/xml/manual/status_cxx2020.xml: Update.
6582 * doc/html/manual/status.html: Regenerate.
6583
6584 2022-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
6599 2022-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
6628 2022-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
6634 2022-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
6830 2022-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
6859 2022-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
6866 2022-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
6874 2022-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
6880 2022-01-12 Patrick Palka <ppalka@redhat.com>
6881
6882 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
6883 directive.
6884
6885 2022-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
6896 2022-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
6905 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
6906
6907 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
6908 Add neoxcept (LWG 3593).
6909
6910 2022-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
6917 2022-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
6927 2022-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
6933 2022-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
6943 2022-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
6951 2022-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
6990 2022-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
7016 2022-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
7024 2022-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
7030 2022-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
7036 2022-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
7041 2022-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
7049 2022-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
7054 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
7055
7056 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
7057
7058 2022-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
7067 2022-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
7094 2022-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
7103 2022-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
7119 2022-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
7129 2022-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
7134 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
7135
7136 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
7137 printer for std::regex NFA states.
7138
7139 2022-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
7156 2022-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
7162 2022-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
7167 2022-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
7173 2022-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
7190 2022-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
7195 2022-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
7207 Copyright (C) 2022 Free Software Foundation, Inc.
7208
7209 Copying and distribution of this file, with or without modification,
7210 are permitted in any medium without royalty provided the copyright
7211 notice and this notice are preserved.