1 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3 Backported from master:
4 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
7 between scalars requires the __bit_cast helper function instead
10 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
12 Backported from master:
13 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
15 * include/experimental/bits/simd_x86.h
16 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
17 (_SimdImplX86::_S_less_equal): Do not call
18 __builtin_is_constant_evaluated in constexpr-if.
20 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
22 Backported from master:
23 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
25 * testsuite/experimental/simd/tests/bits/verify.h
26 (verify::verify): Use %zx for size_t in format string.
28 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
30 Backported from master:
31 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
33 * testsuite/experimental/simd/README.md: Document the timeout
34 and timeout-factor directives. Minor typo fixed.
36 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
38 Backported from master:
39 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
41 * include/experimental/bits/simd.h
42 (_SimdWrapper::_M_is_constprop_none_of)
43 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
44 computed result still satisfies __builtin_constant_p.
46 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
48 Backported from master:
49 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
52 * include/std/atomic (atomic_flag_test): Add.
53 (atomic_flag_test_explicit): Add.
54 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
55 test case to cover missing atomic_flag free functions.
56 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
59 2023-02-10 Jakub Jelinek <jakub@redhat.com>
61 Backported from master:
62 2022-11-24 Jakub Jelinek <jakub@redhat.com>
65 * src/c++17/fast_float/fast_float.h: Partial merge from fast_float
66 2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit.
68 2023-02-10 Jakub Jelinek <jakub@redhat.com>
70 Backported from master:
71 2022-11-07 Jakub Jelinek <jakub@redhat.com>
74 * src/c++17/fast_float/fast_float.h: Partial merge from fast_float
75 662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
76 * testsuite/20_util/from_chars/pr107468.cc: New test.
78 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
80 Backported from master:
81 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
83 * src/c++11/random.cc (random_device::_M_fini): Do not try to
84 close the file handle if the target doesn't support the
85 /dev/random and /dev/urandom files.
87 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
89 Backported from master:
90 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
92 * config/os/generic/error_constants.h (errc::value_too_large)
94 * src/c++11/system_error.cc
95 (system_category::default_error_condition) [__AVR__]: Only match
96 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
97 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
98 for ENOENT etc. in switch.
99 (fs::remove_all) [__AVR__]: Likewise.
100 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
103 2023-02-02 Patrick Palka <ppalka@redhat.com>
105 Backported from master:
106 2022-11-06 Patrick Palka <ppalka@redhat.com>
108 * include/bits/atomic_wait.h (_detail::__platform_wait_alignment):
109 Declare inline. Remove redundant static specifier.
110 (__detail::__atomic_spin_count_relax): Declare inline.
111 (__detail::__atomic_spin_count): Likewise.
112 * include/bits/regex_automaton.h (__detail::_S_invalid_state_id):
113 Declare inline for C++17. Declare constexpr. Remove
114 redundant const and static specifiers.
115 * include/bits/regex_error.h (regex_constants::error_collate):
116 Declare inline for C++17 as per P0607R0.
117 (regex_constants::error_ctype): Likewise.
118 (regex_constants::error_escape): Likewise.
119 (regex_constants::error_backref): Likewise.
120 (regex_constants::error_brack): Likewise.
121 (regex_constants::error_paren): Likewise.
122 (regex_constants::error_brace): Likewise.
123 (regex_constants::error_badbrace): Likewise.
124 (regex_constants::error_range): Likewise.
125 (regex_constants::error_space): Likewise.
126 (regex_constants::error_badrepeat): Likewise.
127 (regex_constants::error_complexity): Likewise.
128 (regex_constants::error_stack): Likewise.
129 * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy):
130 Likewise. Remove redundant static specifier.
131 * include/pstl/execution_defs.h (execution::seq): Declare inline
132 for C++17 as per P0607R0.
133 (execution::par): Likewise.
134 (execution::par_unseq): Likewise.
135 (execution::unseq): Likewise.
137 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
139 Backported from master:
140 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
143 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
144 Access private data member of base class and call its wait
147 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
149 Backported from master:
150 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
153 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
154 Move increment of _M_ver here.
155 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
156 Use relaxed memory order and always notify all waiters.
157 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
158 Check value again after locking mutex.
159 (__waiter_base::_M_notify): Remove increment of _M_ver.
161 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
163 Backported from master:
164 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
167 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
168 duration rep is unsigned. Remove incorrect noexcept-specifier.
169 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check
170 floating-point representations. Check default construction.
172 2022-12-21 Jonathan Wakely <jwakely@redhat.com>
174 Backported from master:
175 2022-11-23 Jonathan Wakely <jwakely@redhat.com>
178 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
179 Use a static buffer with space after it.
181 2022-12-21 Jonathan Wakely <jwakely@redhat.com>
183 Backported from master:
184 2022-12-16 Jonathan Wakely <jwakely@redhat.com>
186 * include/std/expected (expected::_M_swap_val_unex): Guard the
188 (expected::swap): Move is_swappable
189 requirement from static_assert to constraint.
191 (operator==): Remove noexcept-specifier.
192 * testsuite/20_util/expected/swap.cc: Check swapping of
193 types without non-throwing move constructor. Check constraints
195 * testsuite/20_util/expected/unexpected.cc: Check constraints on
197 * testsuite/20_util/expected/equality.cc: New test.
199 2022-12-14 Jonathan Wakely <jwakely@redhat.com>
201 Backported from master:
202 2022-12-14 Jonathan Wakely <jwakely@redhat.com>
205 * include/std/stacktrace (basic_stracktrace::_Impl): Do not
206 multiply N by sizeof(value_type) when allocating.
208 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
210 Backported from master:
211 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
213 * include/std/memory: Do not include <bits/stl_algobase.h>.
215 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
217 Backported from master:
218 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
220 * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
222 * testsuite/26_numerics/valarray/87641.cc (X::operator==):
225 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
227 Backported from master:
228 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
230 * include/std/expected (expected::_M_invalid): Remove.
232 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
234 Backported from master:
235 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
237 * include/bits/chrono.h (duration): Check preconditions on
238 template arguments before using them.
240 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
242 Backported from master:
243 2022-10-28 Jonathan Wakely <jwakely@redhat.com>
245 * include/bits/fs_path.h (path::filename()): Fix dangling
248 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
250 Backported from master:
251 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
253 * doc/xml/manual/intro.xml: Document LWG 1203.
254 * doc/html/*: Regenerate.
256 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
258 Backported from master:
259 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
261 * include/std/barrier: Add missing runtime exception.
263 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
265 Backported from master:
266 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
268 * include/bits/fs_dir.h (directory_iterator): Add comparison
269 with std::default_sentinel_t. Remove redundant operator!= for
271 * (recursive_directory_iterator): Likewise.
272 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
273 (default_sentinel_t, default_sentinel): Define even if concepts
275 * include/bits/regex.h (regex_iterator): Add comparison with
276 std::default_sentinel_t. Remove redundant operator!= for C++20.
277 (regex_token_iterator): Likewise.
278 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
279 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
280 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
282 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
285 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
287 Backported from master:
288 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
291 * include/std/type_traits (__is_nothrow_invocable): Remove.
292 (__is_invocable_impl::__nothrow_type): New member type which
293 checks if the conversion can throw.
294 (__is_nt_invocable_impl): Replace class template with alias
295 template to __is_nt_invocable_impl::__nothrow_type.
296 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
297 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
298 macro used by value_ext.cc test.
299 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
300 test for non-standard __is_nothrow_invocable trait.
302 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
305 * include/bits/fs_path.h (filesystem::swap(path&, path&)):
306 Replace with abbreviated function template.
307 * include/experimental/bits/fs_path.h (filesystem::swap):
309 * testsuite/27_io/filesystem/iterators/106201.cc: New test.
310 * testsuite/experimental/filesystem/iterators/106201.cc: New test.
312 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
314 Backported from master:
315 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
318 * src/c++17/memory_resource.cc (pool_sizes): Disable large pools
319 for targets with 16-bit int.
321 2022-11-14 Jonathan Wakely <jwakely@redhat.com>
323 * include/bits/mofunc_impl.h (move_only_function::__param_t):
324 Use __is_scalar instead of is_trivially_copyable.
325 * testsuite/20_util/move_only_function/call.cc: Check parameters
326 involving incomplete types.
328 2022-11-14 Jonathan Wakely <jwakely@redhat.com>
330 Backported from master:
331 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
334 * include/bits/fs_path.h (path::_Codecvt): New class template
335 that selects the kind of code conversion done.
336 (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t).
337 (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to
338 be used for Windows and POSIX.
339 (path::_S_convert(const EcharT*, const EcharT*)): Simplify by
340 using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions.
341 (path::_S_str_convert(basic_string_view<value_type>, const A&)):
342 Simplify nested conditions.
343 * include/experimental/bits/fs_path.h (path::_Cvt): Define
344 nested typedef controlling type of code conversion done.
345 (path::_Cvt::_S_wconvert): Use new typedef.
346 (path::string(const A&)): Likewise.
347 * testsuite/27_io/filesystem/path/construct/95048.cc: New test.
348 * testsuite/experimental/filesystem/path/construct/95048.cc: New
351 2022-11-14 Nathaniel Shead <nathanieloshead@gmail.com>
353 Backported from master:
354 2022-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
357 * include/bits/basic_string.h (_M_use_local_data): Set active
358 member to _M_local_buf.
360 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
362 Backported from master:
363 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
365 * doc/xml/authors.xml: Remove empty author element.
366 * doc/xml/manual/spine.xml: Likewise.
367 * doc/html/manual/index.html: Regenerate.
369 2022-10-19 Alexandre Oliva <oliva@adacore.com>
371 Backported from master:
372 2022-06-22 Alexandre Oliva <oliva@adacore.com>
374 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
375 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
377 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
379 Backported from master:
380 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
382 * doc/xml/manual/evolution.xml: Document std::bind API
384 * doc/xml/manual/intro.xml: Document LWG 2487 status.
385 * doc/xml/manual/using.xml: Clarify default value of
386 _GLIBCXX_USE_DEPRECATED.
387 * doc/html/*: Regenerate.
388 * include/std/functional (_Bind::operator()(Args&&...) volatile)
389 (_Bind::operator()(Args&&...) const volatile)
390 (_Bind_result::operator()(Args&&...) volatile)
391 (_Bind_result::operator()(Args&&...) const volatile): Replace
392 with deleted overload for C++20 and later.
393 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
395 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
398 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
400 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version.
401 * doc/html/manual/abi.html: Regenerate.
403 2022-09-12 Patrick Palka <ppalka@redhat.com>
405 Backported from master:
406 2022-09-12 Patrick Palka <ppalka@redhat.com>
409 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
411 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
413 Backported from master:
414 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
417 * include/bits/std_thread.h (thread::_State_impl): Forward
418 individual arguments to _Invoker constructor.
419 (thread::_Invoker): Add constructor. Delete copies.
420 * include/std/future (__future_base::_Deferred_state): Forward
421 individual arguments to _Invoker constructor.
422 (__future_base::_Async_state_impl): Likewise.
423 * testsuite/30_threads/async/106695.cc: New test.
424 * testsuite/30_threads/thread/106695.cc: New test.
426 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
428 Backported from master:
429 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
432 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
433 Use built-ins to check for integer overflow in back-reference
435 * testsuite/28_regex/basic_regex/106607.cc: New test.
437 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
439 Backported from master:
440 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
443 * include/std/variant (__do_visit): Handle is_void<R> for zero
445 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
447 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
449 Backported from master:
450 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
453 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
454 requirement for using std::stacktrace. Also adjust -frtti and
455 -fexceptions to document non-default (i.e. negative) forms.
456 * doc/html/*: Regenerate.
458 2022-08-19 Release Manager
460 * GCC 12.2.0 released.
462 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
464 Backported from master:
465 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
467 * include/std/string_view (basic_string_view(Range&&)): Add
468 explicit as per P2499R0.
469 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
470 Adjust implicit conversions. Check implicit conversions fail.
471 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
474 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
476 Backported from master:
477 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
479 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
480 (bad_expected_access::_M_val): Likewise.
482 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
484 Backported from master:
485 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
487 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
489 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
490 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
492 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
495 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
497 Backported from master:
498 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
500 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
501 current() returning _At_path.
502 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
503 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
504 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
505 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
506 current() returning _At_path.
507 (_Dir::_Dir, _Dir::open_subdir): Adjust.
509 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
511 Backported from master:
512 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
515 * include/bits/stl_iterator.h (common_iterator::operator->):
516 Change return type to just auto.
518 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
520 Backported from master:
521 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
524 * include/std/istream [C++17] (operator>>(istream&, char*)):
525 Set eofbit if we stopped extracting at EOF.
526 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
528 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
531 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
533 Backported from master:
534 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
536 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
537 * include/experimental/bits/fs_ops.h: Likewise.
538 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
539 results of absolute and canonical.
540 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
541 discarded result to void.
542 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
543 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
544 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
545 * testsuite/27_io/filesystem/operations/read_symlink.cc:
547 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
548 * testsuite/27_io/filesystem/operations/symlink_status.cc:
550 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
552 * testsuite/experimental/filesystem/operations/canonical.cc:
554 * testsuite/experimental/filesystem/operations/exists.cc:
556 * testsuite/experimental/filesystem/operations/is_empty.cc:
558 * testsuite/experimental/filesystem/operations/read_symlink.cc:
560 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
563 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
565 Backported from master:
566 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
569 * include/bits/basic_string.h (_M_use_local_data): Initialize
570 the entire SSO buffer.
571 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
573 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
575 Backported from master:
576 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
578 * include/bits/new_allocator.h: Fix indentation.
579 * include/ext/malloc_allocator.h: Likewise.
581 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
583 Backported from master:
584 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
587 * include/bits/allocator.h (allocator::allocate): Check for
588 overflow in constexpr allocation.
589 * testsuite/20_util/allocator/105975.cc: New test.
591 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
593 Backported from master:
594 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
597 * include/experimental/numeric (experimental::gcd): Simplify
598 assertions. Use __abs_r instead of __absu.
599 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
600 overflow can be detected.
601 * include/std/numeric (__detail::__absu): Rename to __abs_r and
602 change to allow signed result type, so overflow can be detected.
603 (__detail::__lcm): Remove.
604 (gcd): Simplify assertions. Use __abs_r instead of __absu.
605 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
607 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
608 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
609 * testsuite/26_numerics/gcd/105844.cc: New test.
610 * testsuite/26_numerics/lcm/105844.cc: New test.
612 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
614 Backported from master:
615 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
617 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
619 2022-07-22 Jonathan Wakely <jwakely@redhat.com>
621 Backported from master:
622 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
624 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
625 Always store pathname if we don't have openat or unlinkat,
626 because the full path is needed to open sub-directories and
629 2022-07-22 Alexandre Oliva <oliva@adacore.com>
631 Backported from master:
632 2022-06-27 Alexandre Oliva <oliva@adacore.com>
634 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
635 _GLIBCXX_HAVE_OPENAT.
637 2022-07-22 Alexandre Oliva <oliva@adacore.com>
639 Backported from master:
640 2022-06-24 Alexandre Oliva <oliva@adacore.com>
642 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
644 * configure, config.h.in: Rebuilt.
645 * src/filesystem/dir-common.h (openat): Use ::openat if
646 _GLIBCXX_HAVE_OPENAT.
647 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
648 _GLIBCXX_HAVE_OPENAT.
650 2022-07-22 Jonathan Wakely <jwakely@redhat.com>
652 Backported from master:
653 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
655 * include/std/stacktrace: Do not include <cxxabi.h>.
656 (__cxa_demangle): Declare.
658 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
660 Backported from master:
661 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
664 * include/bits/stl_iterator.h (common_iterator): Define move
665 constructor and move assignment operator.
666 (common_iterator::_M_assign): New function implementing
668 (common_iterator::operator=): Use _M_assign.
669 (common_iterator::_S_valueless): New constant.
670 * testsuite/24_iterators/common_iterator/100823.cc: New test.
672 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
674 Backported from master:
675 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
677 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
678 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
679 friend declaration. Do not move argument in copy constructor.
680 * testsuite/24_iterators/common_iterator/1.cc: Check for
681 noexcept constructibnle/assignable.
683 2022-07-21 Nathan Sidwell <nathan@acm.org>
685 Backported from master:
686 2022-05-26 Nathan Sidwell <nathan@acm.org>
688 * include/bits/hashtable.h: Include required headers.
689 * include/bits/hashtable_policy.h: Likewise.
690 * include/bits/stl_heap.h: Likewise.
691 * include/bits/stl_iterator_base_funcs.h: Likewise.
693 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
695 Backported from master:
696 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
698 * include/bits/utility.h: Fix comment typos.
700 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
702 Backported from master:
703 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
705 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
706 functions are available.
708 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
710 Backported from master:
711 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
713 * testsuite/26_numerics/random/random_device/entropy.cc: Use
714 numeric_limits<unsigned>::digits.
716 2022-07-21 Marco Falke <falke.marco@gmail.com>
718 Backported from master:
719 2022-07-19 Marco Falke <falke.marco@gmail.com>
721 * include/std/charconv (__from_chars_alnum_to_val): Replace
722 implicit conversion from int to unsigned char with explicit
725 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
727 Backported from master:
728 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
731 * src/filesystem/ops.cc (has_trailing_slash): New helper
733 (fs::status): Strip trailing slashes.
734 (fs::symlink_status): Likewise.
735 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
736 Clean the environment before each test and use TMP instead of
737 TMPDIR so the test passes on Windows.
739 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
741 Backported from master:
742 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
745 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
746 prevent destruction during termination.
747 (__eh_globals_init::_M_init): Replace with static member _S_init.
748 (__cxxabiv1::__cxa_get_globals_fast): Update.
749 (__cxxabiv1::__cxa_get_globals): Likewise.
751 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
753 Backported from master:
754 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
757 * include/Makefile.am (largefile-config.h): Add
758 stamp-${host_alias} prerequisite.
759 * include/Makefile.in: Regenerate.
761 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
763 Backported from master:
764 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
766 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
767 rmdir to remove directories.
768 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
771 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
773 Backported from master:
774 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
776 * include/std/atomic (__atomic_val_t): Use __type_identity_t
777 instead of atomic<T>::value_type, as per LWG 3220.
778 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
780 2022-06-14 Mark Mentovai <mark@mentovai.com>
782 Backported from master:
783 2022-06-13 Mark Mentovai <mark@mentovai.com>
785 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
786 Rename to __nul_terminated to avoid colliding with a macro in
789 2022-06-08 Jonathan Wakely <jwakely@redhat.com>
791 Backported from master:
792 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
795 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
796 always_inline attribute.
798 2022-06-08 Jonathan Wakely <jwakely@redhat.com>
800 Backported from master:
801 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
804 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
805 Limit ga_sizes array to values that fit in size_t.
806 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
807 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
808 (sfmt216091_64): Do not declare.
810 2022-06-08 Jonathan Wakely <jwakely@redhat.com>
812 Backported from master:
813 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
815 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
817 * include/bits/cow_string.h: Include it here.
819 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
821 Backported from master:
822 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
824 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
825 lookup for ios_errc and future_errc check versioned namespace.
826 (StdAtomicPrinter): Strip versioned namespace from typename.
828 2022-05-27 François Dumont <fdumont@gcc.gnu.org>
830 Backported from master:
831 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
833 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
834 Strip typename from version namespace.
836 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
838 Backported from master:
839 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
841 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
842 versioned namespace from the template argument too.
844 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
846 Backported from master:
847 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
849 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
850 Add 'constexpr' as per LWG 3643.
851 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
853 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
855 Backported from master:
856 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
858 * include/std/memory_resource (polymorphic_allocator): Add
859 non-template equality operator, as proposed for LWG 3683.
860 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
862 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
864 Backported from master:
865 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
867 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
868 Run fewer iterations for simulator targets.
869 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
871 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
873 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
875 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
877 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
879 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
882 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
884 Backported from master:
885 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
887 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
889 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
891 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
893 Backported from master:
894 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
896 * include/bits/mofunc_impl.h: Fix doxygen command.
898 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
900 Backported from master:
901 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
903 * include/std/future (launch): Make operators noexcept.
905 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
907 Backported from master:
908 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
910 * doc/xml/manual/prerequisites.xml: Fix attributes for external
912 * doc/html/manual/setup.html: Regenerate.
914 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
916 Backported from master:
917 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
919 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
920 * doc/html/*: Regenerate.
922 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
924 Backported from master:
925 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
927 * doc/xml/manual/intro.xml: Include new chapter.
928 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
929 * doc/xml/manual/status_cxx2023.xml: New file.
930 * doc/html/*: Regenerate.
932 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
934 Backported from master:
935 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
937 * doc/html/manual/status.html: Regenerate.
938 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
939 C++20 bit operations.
941 2022-05-13 Alexandre Oliva <oliva@adacore.com>
943 Backported from master:
944 2022-05-06 Alexandre Oliva <oliva@adacore.com>
946 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
947 for double, long long, and 64-bit long intrinsic types.
948 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
949 preexisting long double diagnostic, adjust no-VSX double
950 diagnostic to cover 64-bit long double as well.
952 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
954 Backported from master:
955 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
958 * include/std/iosfwd: Add declarations for <spanstream> class
959 templates and typedefs.
960 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
961 (basic_ospanstream, basic_spanstream): Remove default template
963 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
965 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
968 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
970 Backported from master:
971 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
974 * include/std/iosfwd: Add declarations for <synstream> class
975 templates and typedefs.
976 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
977 Remove default template arguments.
978 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
979 * testsuite/27_io/headers/iosfwd/types.cc: New test.
981 2022-05-09 Jonathan Wakely <jwakely@redhat.com>
983 Backported from master:
984 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
987 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
988 Use a trailing char array as storage for dirent::d_name.
990 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
992 Backported from master:
993 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
996 * include/bits/random.tcc
997 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
998 Update state when __state_avail is false.
999 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
1000 Check that deserialized object equals serialized one.
1002 2022-05-06 Patrick Palka <ppalka@redhat.com>
1004 Backported from master:
1005 2022-05-02 Patrick Palka <ppalka@redhat.com>
1008 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
1009 two delimeters for the exponent part in the form of a possibly
1010 NULL string of length two. Don't use std::tolower.
1011 (pattern): Adjust calls to find_end_of_float accordingly.
1013 2022-05-06 Alexandre Oliva <oliva@adacore.com>
1015 Backported from master:
1016 2022-05-03 Alexandre Oliva <oliva@adacore.com>
1019 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
1020 with conditional for floating-point overloads of from_char.
1022 2022-05-06 Release Manager
1024 * GCC 12.1.0 released.
1026 2022-05-02 Patrick Palka <ppalka@redhat.com>
1028 Backported from master:
1029 2022-05-02 Patrick Palka <ppalka@redhat.com>
1032 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
1033 Also accept 'P' as the start of the exponent.
1034 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
1036 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
1038 Backported from master:
1039 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
1042 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
1044 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
1045 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
1046 symbols as aliases for corresponding symbols without abi-tag.
1048 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1050 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1051 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1053 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1054 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1057 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
1059 * doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not
1061 * doc/xml/manual/status_cxx2011.xml: Likewise.
1062 * doc/xml/manual/status_cxx2014.xml: Likewise.
1063 * doc/xml/manual/status_cxx2017.xml: Likewise.
1064 * doc/xml/manual/status_cxx2020.xml: Likewise.
1065 * doc/xml/manual/status_cxxtr1.xml: Likewise.
1066 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
1067 * doc/html/manual/status.html: Regenerate.
1069 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
1072 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
1073 directory_iterator constructor, and check on each iteration.
1074 * src/filesystem/ops.cc (fs::copy): Likewise.
1075 * testsuite/27_io/filesystem/operations/copy.cc: Check for
1076 errors during recursion.
1077 * testsuite/experimental/filesystem/operations/copy.cc:
1080 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
1082 * config/abi/pre/gnu-versioned-namespace.ver: Remove
1083 std::random_device::* pattern.
1085 2022-04-27 Jakub Jelinek <jakub@redhat.com>
1087 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1088 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1089 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1090 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1091 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1092 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1093 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1094 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1096 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
1098 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
1099 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
1100 (StdAtomicPrinter): New printer.
1101 (build_libstdcxx_dictionary): Register new printer.
1102 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
1103 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
1106 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
1108 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
1109 constructor for constant initialization from nullptr_t.
1110 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1111 Check for new constructor.
1113 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
1115 * include/bits/fs_path.h (hash<filesystem::path>): Define.
1116 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1117 Check std::hash specialization.
1119 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1121 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
1123 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1125 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
1126 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
1128 * include/std/version (__cpp_lib_constexpr_memory): Define new
1130 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
1131 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
1132 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
1133 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
1134 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
1135 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
1138 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1141 * include/std/future (packaged_task): Add deduction guides.
1142 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
1144 2022-04-25 Philipp Fent <fent@in.tum.de>
1146 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
1148 (StdInitializerListPrinter): Define new printer.
1149 (build_libstdcxx_dictionary): Register new printer.
1150 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
1153 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
1156 * include/bits/atomic_base.h (atomic_flag::notify_one,
1157 notify_all): Remove const qualification.
1158 (__atomic_base::notify_one, notify_all): Likewise.
1159 * include/std/atomic (atomic<bool>::notify_one, notify_all):
1161 (atomic::notify_one, notify_all): Likewise.
1162 (atomic<T*>::notify_one, notify_all): Likewise.
1163 (atomic_notify_one, atomic_notify_all): Likewise.
1164 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
1165 to account for change in notify_one/notify_all signature.
1167 2022-04-21 Patrick Palka <ppalka@redhat.com>
1169 * include/std/charconv (__from_chars_alnum_to_val_table):
1170 Simplify initialization of __lower/__upper_letters.
1171 (__from_chars_alnum_to_val): Default the template parameter to
1173 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
1174 assume the uppercase and lowercase letters are contiguous.
1175 (__floating_from_chars_hex): Likewise.
1177 2022-04-21 Patrick Palka <ppalka@redhat.com>
1181 * include/std/charconv (__from_chars_alnum_to_val): Make
1182 initializer for __table dependent in an artificial way.
1184 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
1187 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
1189 * testsuite/20_util/from_chars/pr105324.cc: New test.
1191 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1193 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1194 Check correct feature test macro.
1196 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1199 * doc/xml/manual/prerequisites.xml: Document libiconv
1201 * doc/html/manual/setup.html: Regenerate.
1202 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
1203 * src/Makefile.in: Regenerate.
1205 2022-04-19 Patrick Palka <ppalka@redhat.com>
1207 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
1209 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
1210 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
1212 (__floating_to_chars_precision): Likewise.
1214 2022-04-19 Philipp Fent <fent@in.tum.de>
1216 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
1217 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
1219 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
1221 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
1222 * configure: Regenerate.
1224 2022-04-18 Patrick Palka <ppalka@redhat.com>
1226 * include/std/charconv (__from_chars_pow2_base): Manually
1227 unroll the first iteration of the main loop and simplify
1230 2022-04-15 Patrick Palka <ppalka@redhat.com>
1233 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
1234 __first twice at the start.
1235 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
1237 2022-04-15 Patrick Palka <ppalka@redhat.com>
1239 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
1240 (__from_chars_alnum_to_val): Define.
1241 (__from_chars_binary): Rename to ...
1242 (__from_chars_pow2_base): ... this. Generalize to handle any
1243 power-of-two base using __from_chars_alnum_to_val.
1244 (__from_chars_digit): Optimize digit recognition to a single
1245 test instead of two tests. Use [[__unlikely___]] attribute.
1246 (__from_chars_alpha_to_num): Remove.
1247 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
1248 nested loop for the overflow case. Maintain a lower bound
1249 on the number of available bits in the result and use it to
1250 omit the overflow check.
1251 (from_chars): Adjust appropriately.
1252 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
1253 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
1254 to recognize a hex digit instead.
1256 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
1258 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
1260 * configure: Regenerate.
1262 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1264 * doc/xml/manual/intro.xml: Fix comment.
1266 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1268 * include/precompiled/stdc++.h: Include <stacktrace> and
1269 <stdatomic.h> for C++23.
1271 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1274 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
1276 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
1278 * include/std/optional (__cpp_lib_optional): Define new value
1280 (__cpp_lib_monadic_optional): Remove.
1281 * include/std/version (__cpp_lib_constexpr_vector): Define.
1282 (__cpp_lib_stdatomic_h): Define.
1283 (__cpp_lib_optional): Define new value for C++23.
1284 (__cpp_lib_monadic_optional): Remove.
1285 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
1286 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
1287 * testsuite/20_util/optional/version.cc: Likewise.
1288 * testsuite/23_containers/vector/cons/constexpr.cc: Check
1290 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1292 * testsuite/20_util/optional/monadic/version.cc: Removed.
1293 * testsuite/23_containers/vector/requirements/version.cc: New test.
1294 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
1296 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1298 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
1299 * config.h.in: Regenerate.
1300 * configure: Regenerate.
1302 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1304 * include/std/stacktrace (basic_stacktrace::current): Reallocate
1305 a smaller container if the unused capacity is larger than the
1308 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1310 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
1311 or _Impl::_M_assign to initialize elements in allocated storage.
1312 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
1314 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
1315 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
1317 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
1318 new element using allocator.
1319 (basic_stacktrace::_Impl::_M_clone): New function.
1320 (basic_stacktrace::_Impl::_M_xclone): New function.
1321 (basic_stacktrace::_Impl::_M_assign): New function.
1323 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1325 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1326 Use nothrow new instead of try block for std::allocator.
1327 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
1330 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1332 * include/std/stacktrace (basic_stacktrace::current): Replace
1333 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
1334 Check return value of backtrace_simple when max depth given.
1335 (basic_stacktrace::_M_reserve): Remove.
1336 (basic_stacktrace::_S_curr_cb): Remove.
1337 (basic_stacktrace::_M_prepare(size_type)): New function to
1338 reserve initial capacity and return callback.
1339 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
1340 and remove redundant zeroing of _M_frames and _M_capacity.
1341 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
1342 attribute. Assign _Impl instead of swapping.
1343 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
1345 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1347 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1348 Change [[unlikely]] attribute to [[likely]].
1350 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1353 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
1354 Fix allocator usage in constructors.
1355 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
1356 try to reallocate using const allocator.
1357 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
1358 if-constexpr with non-constant condition. Do not allocate new
1359 storage if allocator propagates. Do not set _M_size if
1361 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
1362 assertion that non-propagating allocators are equal.
1363 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
1365 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1367 * include/std/stacktrace (basic_stacktrace::current): Duplicate
1368 implementation into each overload. Add noinline attribute and
1370 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
1371 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
1372 (basic_stacktrace::_Impl::_S_max_size): New function defining
1373 maximum size in terms of allocator and size_type.
1374 (basic_stacktrace::_Impl::_M_allocate): Check against
1376 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
1377 for non-constexpr checks. Check line number is correct.
1379 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1381 * testsuite/20_util/stacktrace/entry.cc: Moved to...
1382 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
1383 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
1384 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
1385 * testsuite/20_util/stacktrace/version.cc: Moved to...
1386 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
1388 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1390 * include/experimental/bits/fs_path.h (path): Define special
1391 members after path::_Cmpt is complete.
1393 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1396 * include/std/expected
1397 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
1398 * testsuite/20_util/expected/cons.cc: Check constructor.
1400 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1403 * include/std/expected (expected<void, E>::swap): Set
1404 _M_has_value to false for objects that previously had a value.
1405 * testsuite/20_util/expected/swap.cc: Fix test to check void
1408 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1411 * include/std/expected (bad_expected_access): Move constructor
1413 * testsuite/20_util/expected/bad.cc: New test.
1415 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
1417 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
1420 2022-04-02 Jakub Jelinek <jakub@redhat.com>
1423 * include/std/source_location (std::source_location::__impl): Move
1424 definition before using __builtin_ret_type.
1426 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1428 * include/std/utility (unreachable): Define for C++23.
1429 * include/std/version (__cpp_lib_unreachable): Define.
1430 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
1431 arguments. Handle only the function being given.
1432 * testsuite/20_util/unreachable/1.cc: New test.
1433 * testsuite/20_util/unreachable/version.cc: New test.
1435 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1437 * include/experimental/bits/fs_fwd.h (copy_file): Remove
1438 incorrect noexcept from declaration.
1439 * include/experimental/bits/fs_path.h (path::begin, path::end):
1440 Add noexcept to declarations, to match definitions.
1442 2022-04-01 Timm Bäder <tbaeder@redhat.com>
1444 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
1445 * include/experimental/bits/fs_ops.h: Likewise.
1447 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
1449 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
1451 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1453 * testsuite/18_support/exception/38732.cc: Disable for C++23.
1454 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
1455 * testsuite/18_support/unexpected_handler.cc: Likewise.
1457 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1459 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
1460 static data members for _Fp_fmt enumerators.
1462 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1464 * include/std/version (__cpp_lib_variant): Fix conditions to
1466 (__cpp_lib_expected): Fix condition to match <expected>.
1468 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
1470 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
1471 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1472 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
1473 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
1474 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
1475 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
1476 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
1477 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
1479 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
1481 * doc/doxygen/user.cfg.in: Add new header.
1482 * include/Makefile.am: Likewise.
1483 * include/Makefile.in: Regenerate.
1484 * include/precompiled/stdc++.h: Add new header.
1485 * include/std/version (__cpp_lib_expected): Define.
1486 * libsupc++/exception [__cplusplus > 202002] (unexpected)
1487 (unexpected_handler, set_unexpected): Do not declare for C++23.
1488 * include/std/expected: New file.
1489 * testsuite/20_util/expected/assign.cc: New test.
1490 * testsuite/20_util/expected/cons.cc: New test.
1491 * testsuite/20_util/expected/illformed_neg.cc: New test.
1492 * testsuite/20_util/expected/observers.cc: New test.
1493 * testsuite/20_util/expected/requirements.cc: New test.
1494 * testsuite/20_util/expected/swap.cc: New test.
1495 * testsuite/20_util/expected/synopsis.cc: New test.
1496 * testsuite/20_util/expected/unexpected.cc: New test.
1497 * testsuite/20_util/expected/version.cc: New test.
1499 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
1501 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
1504 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1507 * include/std/bit (bit_cast): Add constraints.
1508 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
1510 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1512 * include/std/version [!_GLIBCXX_HOSTED]
1513 (__cpp_lib_hardware_interference_size): Define for freestanding.
1514 (__cpp_lib_bit_cast): Likewise.
1515 (__cpp_lib_is_layout_compatible): Likewise.
1516 (__cpp_lib_is_pointer_interconvertible): Likewise.
1517 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
1519 (__cpp_lib_invoke_r): Likewise.
1520 (__cpp_lib_ios_noreplace): Likewise.
1521 (__cpp_lib_monadic_optional): Likewise.
1522 (__cpp_lib_move_only_function): Likewise.
1523 (__cpp_lib_spanstream): Likewise.
1524 (__cpp_lib_stacktrace): Likewise.
1525 (__cpp_lib_string_contains): Likewise.
1526 (__cpp_lib_string_resize_and_overwrite): Likewise.
1527 (__cpp_lib_to_underlying): Likewise.
1529 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1532 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
1533 <bits/atomic_wait.h> for freestanding.
1535 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
1537 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
1538 Conditionalize call to fesetround.
1540 2022-03-21 Jakub Jelinek <jakub@redhat.com>
1543 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
1544 isn't overloaded if __clang__ is defined.
1546 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
1549 * include/std/any (any(T&&)): Revert change to constraints.
1550 * testsuite/20_util/any/cons/104242.cc: New test.
1552 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
1555 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
1557 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
1558 (__pstl::__internal::__except_handler): Use std::__terminate
1559 instead of std::terminate.
1560 * src/c++17/fs_path.cc: Include <array>.
1561 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
1563 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
1564 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
1565 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
1566 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
1567 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
1568 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
1569 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
1570 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
1572 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
1574 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
1576 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
1578 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
1580 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
1582 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
1584 * testsuite/25_algorithms/max/constrained.cc: Likewise.
1585 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
1586 * testsuite/25_algorithms/min/constrained.cc: Likewise.
1587 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
1588 * testsuite/25_algorithms/minmax_element/constrained.cc:
1590 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
1591 * testsuite/25_algorithms/move/93872.cc: Likewise.
1592 * testsuite/25_algorithms/move_backward/93872.cc: Include
1594 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
1596 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
1597 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
1599 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
1600 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
1601 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
1602 * testsuite/25_algorithms/set_difference/constrained.cc:
1604 * testsuite/25_algorithms/set_intersection/constexpr.cc:
1606 * testsuite/25_algorithms/set_intersection/constrained.cc:
1608 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
1610 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
1611 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
1612 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
1613 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
1614 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
1615 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
1616 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
1617 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
1618 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
1619 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
1620 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
1621 * testsuite/std/ranges/adaptors/split.cc: Likewise.
1623 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1626 * include/bits/fs_path.h (path::make_preferred): Use
1627 handwritten loop instead of std::replace.
1629 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1631 PR middle-end/104966
1632 * include/bits/locale_facets_nonio.tcc
1633 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
1634 make all string copies before any stores to *this.
1636 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1638 * testsuite/util/testsuite_character.h: Fix comment.
1640 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
1643 * config/abi/pre/gnu.ver: Make version for std::from_chars
1644 depend on HAVE_USELOCALE macro.
1645 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
1646 std::from_chars for floating-point types as undesignated if
1647 not found in the baseline symbols file.
1649 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
1651 * include/std/charconv (__cpp_lib_to_chars): Only define when
1652 both from_chars and to_chars are supported for floating-point
1654 (from_chars, to_chars): Adjust preprocessor conditions guarding
1656 * include/std/version (__cpp_lib_to_chars): Adjust condition to
1657 match <charconv> definition.
1658 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
1660 (from_chars): Simplify preprocessor checks and use
1661 from_chars_strtod when appropriate.
1663 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
1666 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
1667 hold octets that will be left-shifted.
1669 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1672 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
1673 before using fast_float.
1675 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
1678 * include/bits/this_thread_sleep.h: Fix order of #endif and
1679 closing brace of namespace.
1681 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1683 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
1686 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1688 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
1691 2022-03-09 Patrick Palka <ppalka@redhat.com>
1694 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
1695 Be explicit when narrowing the shifted effective_mantissa,
1696 since it may have an integer-class type.
1698 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
1700 * include/bits/uses_allocator_args.h: Remove incorrect copyright
1703 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
1706 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
1707 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
1708 (__is_constant_evaluated): Add visibility pragma.
1710 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
1712 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
1715 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
1717 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
1719 (__terminate): Likewise.
1721 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
1723 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
1724 inside #if condition.
1726 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1729 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
1732 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1734 * testsuite/17_intro/names.cc (func): Undef on AIX.
1736 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1739 * libsupc++/compare (strong_order): Add missing support for
1740 floating-point types.
1741 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1744 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
1746 PR middle-end/103984
1747 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
1748 default member initializer.
1750 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
1753 * include/std/source_location (source_location::current): Use
1754 deduced type of __builtin_source_location().
1756 2022-02-22 Patrick Palka <ppalka@redhat.com>
1758 * include/bits/ranges_base.h (__detail::__is_initializer_list):
1760 (viewable_range): Adjust as per P2415R2.
1761 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1762 * include/std/ranges (owning_view): Define as per P2415R2.
1763 (enable_borrowed_range<owning_view>): Likewise.
1764 (views::__detail::__can_subrange): Replace with ...
1765 (views::__detail::__can_owning_view): ... this.
1766 (views::_All::_S_noexcept): Sync with operator().
1767 (views::_All::operator()): Use owning_view instead of subrange
1769 * include/std/version (__cpp_lib_ranges): Adjust value.
1770 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
1771 views::all uses owning_view instead of subrange.
1773 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
1774 now that rvalue non-view non-borrowed ranges are viewable.
1775 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
1777 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
1780 * doc/xml/manual/evolution.xml: Document deprecation.
1781 * doc/html/manual/api.html: Regenerate.
1782 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
1783 Remove default argument.
1784 (insert(const_iterator)): New overload with deprecated attribute.
1785 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
1788 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
1790 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
1791 code that call cat->name() on std::error_category objects.
1792 Identify known categories by symbol name and use a hardcoded
1793 name. Print error code values as enumerators where appopriate.
1794 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
1795 name of custom category. Check io_errc and future_errc errors.
1797 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
1800 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
1801 (uninitialized_construct_using_allocator): Add constexpr.
1802 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
1803 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
1805 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1808 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
1809 namespace for IEEE128 long double mode.
1810 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
1811 version and export __gnu_cxx_ieee128::__convert_from_v.
1812 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
1813 Make __ibm128 overload use snprintf directly
1814 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1815 Remove stable IEEE128/LDBL versions.
1817 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1820 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
1822 * include/std/variant: Check feature test macros instead.
1823 * include/std/version: Likewise.
1825 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1827 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1830 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1832 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
1833 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
1835 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
1837 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
1840 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
1842 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1843 Ignore -Walloc-larger-than warning.
1844 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1846 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
1847 to avoid linker error for __atomic_is_lock_free.
1849 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
1851 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
1852 __waiter_base::_S_do_spin_v): Change memory order from relaxed
1855 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
1857 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
1859 (atomic_fetch_xor_explicit): Likewise.
1860 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
1861 arithmetic and logical operations for atomic_int.
1863 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
1865 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
1866 when <dirent.h> is not available.
1867 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
1869 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
1872 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
1873 loop inside do loop so that threads failing the wait, reload
1876 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1878 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
1879 parameter to _Dir_base&&.
1880 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
1881 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
1882 parameter to _Dir_base&&.
1884 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1886 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
1887 checking for CAS on correct word size.
1889 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1891 * testsuite/experimental/filesystem/operations/create_directories.cc:
1892 Adjust expected results for Windows.
1894 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1897 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
1898 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
1899 instead of checking for errno values indicating a directory.
1900 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
1901 logic to non-throwing overload.
1902 (fs::remove_all(const path&, error_code&)): Add comments.
1903 * src/filesystem/ops-common.h: Likewise.
1905 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1907 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
1908 type to use portable posix::DIR alias.
1910 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1912 * include/c_compatibility/stdatomic.h [__clang__]: Use
1913 #include_next <stdatomic.h>.
1915 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1917 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
1919 (fs::create_directories): Likewise.
1920 (fs::remove_all): Likewise.
1921 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
1922 (fs::create_directories): Likewise.
1923 (fs::remove_all): Likewise.
1925 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1928 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
1930 * config.h.in: Regenerate.
1931 * configure: Regenerate.
1932 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
1933 remove_all overloads as friends.
1934 (recursive_directory_iterator::__erase): Declare new member
1936 * include/bits/fs_fwd.h (remove, remove_all): Declare.
1937 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
1938 constructor. Pass file descriptor argument to base constructor.
1939 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
1940 (_Dir::unlink, _Dir::rmdir): Define new member functions.
1941 (directory_iterator): Pass filename_only argument to _Dir
1943 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1944 parameters to take a _Dir rvalue instead of creating one.
1945 (_Dir_stack::orig): Add data member for storing original path.
1946 (_Dir_stack::report_error): Define new member function.
1947 (__directory_iterator_nofollow): Move here from dir-common.h and
1948 fix value to be a power of two.
1949 (__directory_iterator_filename_only): Define new constant.
1950 (recursive_directory_iterator): Construct _Dir object and move
1951 into _M_dirs stack. Pass skip_permission_denied argument to first
1953 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1954 (recursive_directory_iterator::__erase): Define new member
1956 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
1957 (fs::remove_all): Use new recursive_directory_iterator::__erase
1959 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
1960 constructor and use openat to implement nofollow semantics.
1961 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
1962 Define new member functions.
1963 (__directory_iterator_nofollow): Move to fs_dir.cc.
1964 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
1966 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
1968 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1969 parameters to take a _Dir rvalue instead of creating one.
1970 (recursive_directory_iterator): Check for new nofollow option.
1971 Construct _Dir object and move into _M_dirs stack. Pass
1972 skip_permission_denied argument to first advance call.
1973 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1974 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
1976 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1978 * include/bits/allocator.h: Qualify std::allocator_traits in
1979 deprecated warnings.
1980 * libsupc++/exception (uncaught_exception): Add suggestion to
1983 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1985 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
1986 Add [[maybe_unused]] attribute.
1987 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
1990 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1992 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
1993 custom comparison function for multiset.
1994 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
1995 comparison function for set.
1997 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1999 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
2000 Change member function to data member of function pointer type.
2002 2022-02-02 Martin Sebor <msebor@redhat.com>
2005 * include/std/array (begin): Declare const member function attribute
2007 (end, rbegin, rend, size, max_size, empty, data): Same.
2008 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
2009 * testsuite/23_containers/array/capacity/max_size.cc: Same.
2010 * testsuite/23_containers/array/capacity/size.cc: Same.
2011 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
2013 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2015 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2016 autoconf macro to check whether d_type is present.
2017 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2020 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2022 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
2023 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2024 Check follow_directory_symlink option.
2025 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2028 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2030 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
2031 Reset state to past-the-end iterator on error.
2032 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
2033 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
2035 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
2036 for the TS implementation.
2037 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
2038 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
2040 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2042 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
2044 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2047 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
2048 for stdio_pure and stdio_posix options.
2049 * configure: Regenerate.
2051 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
2053 * include/bits/atomic_wait.h: Change memory order from
2054 Acquire/Release with relaxed loads to SeqCst+Release for
2055 accesses to the waiter's count.
2057 2022-01-31 Martin Liska <mliska@suse.cz>
2059 * acinclude.m4: Detect *_ld_is_mold and use it.
2060 * configure: Regenerate.
2062 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
2064 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
2066 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
2068 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
2071 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
2072 Add __builtin_unreachable to loop.
2073 * testsuite/23_containers/deque/100516.cc: New test.
2075 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
2077 * include/bits/ranges_base.h (ranges::advance): Avoid signed
2078 overflow. Do nothing if already equal to desired result.
2079 * testsuite/24_iterators/range_operations/advance_overflow.cc:
2082 2022-01-27 Martin Liska <mliska@suse.cz>
2085 * acinclude.m4: Fix typo.
2086 * configure: Regenerate.
2088 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2091 * include/bits/istream.tcc (basic_istream::sentry): Add braces
2093 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
2094 Add pragmas to disable bogus warnings from PR 61596.
2096 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2099 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
2100 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
2101 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
2103 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2106 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2108 * config.h.in: Regenerate.
2109 * configure: Regenerate.
2110 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
2111 and pass it to base class constructor.
2112 (directory_iterator): Pass nofollow flag to _Dir constructor.
2113 (fs::recursive_directory_iterator::increment): Likewise.
2114 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
2115 directory_iterator constructor. Move error check outside loop.
2116 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
2117 constructor and when it's set use ::open with O_NOFOLLOW and
2119 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
2120 and pass it to base class constructor.
2121 (directory_iterator): Pass nofollow flag to _Dir constructor.
2122 (fs::recursive_directory_iterator::increment): Likewise.
2123 * src/filesystem/ops.cc (remove_all): Use nofollow option for
2124 directory_iterator constructor. Move error check outside loop.
2126 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2129 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
2130 mem-initializer for _M_buf.
2131 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
2133 * testsuite/27_io/spanstream/2.cc: New test.
2135 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2137 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
2138 Define macro for case where std::from_chars is implemented in
2139 terms of strtod, strtof or strtold.
2140 (buffer_resource, valid_fmt, find_end_of_float, pattern)
2141 (from_chars_impl, make_result, reserve_string): Do not define
2142 unless USE_STRTOD_FOR_FROM_CHARS is defined.
2143 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
2144 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
2145 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
2148 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2151 * include/bits/hashtable_policy.h (_Map_base): Add partial
2152 specialization for maps with const key types.
2153 * testsuite/23_containers/unordered_map/104174.cc: New test.
2155 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2158 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
2159 Set members to zero without type punning.
2161 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2163 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
2165 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2169 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
2170 Define as type long.
2171 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
2173 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
2174 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
2175 (__cpp_lib_chrono_udls): Likewise.
2176 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
2177 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
2178 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
2180 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
2182 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
2183 (__cpp_lib_sample): Likewise.
2184 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
2186 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
2188 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
2190 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
2192 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
2194 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
2196 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
2198 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
2199 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
2200 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
2202 * include/std/complex (__cpp_lib_complex_udls): Likewise.
2203 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
2204 * include/std/functional (__cpp_lib_not_fn): Likewise.
2205 (__cpp_lib_boyer_moore_searcher): Likewise.
2206 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
2207 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
2208 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
2209 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
2210 * include/std/tuple (__cpp_lib_apply): Likewise.
2211 (__cpp_lib_make_from_tuple): Likewise.
2212 * include/std/type_traits (__cpp_lib_integral_constant_callable)
2213 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
2214 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
2215 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
2216 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
2217 (__cpp_lib_has_unique_object_representations)
2218 (__cpp_lib_is_aggregate): Likewise.
2219 * include/std/version: Likewise.
2220 * libsupc++/new (__cpp_lib_launder): Likewise.
2222 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2224 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
2225 condition for C++17 definition.
2227 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2229 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
2231 (_Sp_atomic::_M_ptr): Add default member-initializer.
2232 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2233 Check constant initialization.
2234 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2236 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2238 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
2239 equivalent attribute for Clang.
2240 * src/c++11/future.cc (__constinit): Likewise.
2241 * src/c++11/system_error.cc (__constinit): Likewise.
2242 * src/c++17/memory_resource.cc (__constinit): Likewise.
2244 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2246 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
2247 src/libbacktrace/.libs to LDFLAGS if those directories exist.
2249 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2251 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
2253 * configure: Regenerate.
2255 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2258 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
2261 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2263 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
2264 linker search paths.
2265 * src/Makefile.am: Fix src/debug/libbacktrace build.
2266 * src/Makefile.in: Regenerate.
2267 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
2268 variable. Use symlinks for the source files.
2269 * src/libbacktrace/Makefile.in: Regenerate.
2271 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
2273 * include/experimental/bits/simd.h (__floating_point_flags): Do
2274 not rely on math_errhandling to expand to a constant expression.
2276 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2278 * doc/xml/manual/evolution.xml: Document deprecations.
2279 * doc/xml/manual/status_cxx2017.xml: Update status.
2280 * doc/html/*: Regenerate.
2282 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2284 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
2285 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
2287 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2289 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
2292 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2295 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
2296 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
2298 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2301 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
2303 (operator=(nullptr_t)): Likewise.
2304 * include/bits/cow_string.h: Likewise.
2305 * include/std/string_view (basic_string_view(nullptr_t)):
2307 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
2308 expected error. Add examples that become ill-formed in C++23.
2309 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2310 Adjust expected errors.
2311 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2314 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2317 * include/bits/stl_iterator.h (reverse_iterator): Check
2318 __cpp_lib_concepts instead of __cplusplus.
2320 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2323 * include/bits/stl_pair.h (pair): Adjust constraints on
2324 deprecated constructors accepting literal zero as null pointer
2325 constant. Improve wording of deprecated attribute.
2326 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
2327 constructors do not cause ambiguities for copyable types.
2329 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2331 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
2332 non-deprecated alternative.
2334 2022-01-18 Tom Honermann <tom@honermann.net>
2336 * acinclude.m4: Define config macros if uchar.h provides
2337 c8rtomb() and mbrtoc8().
2338 * config.h.in: Regenerate.
2339 * configure: Regenerate.
2340 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
2341 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
2342 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
2343 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2345 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
2348 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2350 * include/Makefile.am: Install new header.
2351 * include/Makefile.in: Regenerate.
2352 * include/c_compatibility/stdatomic.h: New file.
2353 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
2355 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2358 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2359 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
2360 Define in terms of __BYTE_ORDER__.
2362 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2365 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
2366 * src/c++17/fast_float/fast_float.h (round): Use explicit
2367 template argument list for std::min.
2369 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2371 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
2372 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
2374 * doc/html/manual/status.html: Regenerate.
2376 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2378 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
2380 * configure: Regenerate.
2382 2022-01-17 Patrick Palka <ppalka@redhat.com>
2384 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
2385 Conditionally define, and use it to conditionally include
2387 (from_chars): Use fast_float for float and double when
2390 2022-01-17 Patrick Palka <ppalka@redhat.com>
2392 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2393 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
2394 case of over/underflow, return errc::result_out_of_range and don't
2397 2022-01-17 Patrick Palka <ppalka@redhat.com>
2399 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2400 * src/c++17/fast_float/fast_float.h: Apply local modifications.
2402 2022-01-17 Patrick Palka <ppalka@redhat.com>
2404 * src/c++17/fast_float/LOCAL_PATCHES: New file.
2405 * src/c++17/fast_float/MERGE: New file.
2406 * src/c++17/fast_float/README.md: New file, copied from the
2407 fast_float repository.
2408 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
2409 of the fast_float library.
2411 2022-01-17 Patrick Palka <ppalka@redhat.com>
2413 * src/c++17/floating_from_chars.cc: Include <bit>.
2414 (ascii_to_hexit, starts_with_ci): Conditionally define.
2415 (__floating_from_chars_hex): Conditionally define.
2416 (from_chars): Use __floating_from_chars_hex for
2417 chars_format::hex parsing of binary32/64 float/double.
2418 (testsuite/20_util/from_chars/7.cc): New test.
2419 * testsuite/20_util/from_chars/7.cc: New file.
2421 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2423 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
2424 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
2425 * include/Makefile.am: Add new header.
2426 * include/Makefile.in: Regenerate.
2427 * include/std/stacktrace: New header.
2428 * include/std/version (__cpp_lib_stacktrace): Define.
2429 * Makefile.in: Regenerate.
2430 * config.h.in: Regenerate.
2431 * configure: Regenerate.
2432 * doc/Makefile.in: Regenerate.
2433 * libsupc++/Makefile.in: Regenerate.
2434 * po/Makefile.in: Regenerate.
2435 * python/Makefile.in: Regenerate.
2436 * src/Makefile.am: Regenerate.
2437 * src/Makefile.in: Regenerate.
2438 * src/c++11/Makefile.in: Regenerate.
2439 * src/c++17/Makefile.in: Regenerate.
2440 * src/c++20/Makefile.in: Regenerate.
2441 * src/c++98/Makefile.in: Regenerate.
2442 * src/filesystem/Makefile.in: Regenerate.
2443 * testsuite/Makefile.in: Regenerate.
2444 * src/libbacktrace/Makefile.am: New file.
2445 * src/libbacktrace/Makefile.in: New file.
2446 * src/libbacktrace/backtrace-rename.h: New file.
2447 * src/libbacktrace/backtrace-supported.h.in: New file.
2448 * src/libbacktrace/config.h.in: New file.
2449 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2451 * testsuite/20_util/stacktrace/entry.cc: New test.
2452 * testsuite/20_util/stacktrace/synopsis.cc: New test.
2453 * testsuite/20_util/stacktrace/version.cc: New test.
2455 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2457 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
2459 * doc/html/manual/status.html: Regenerate.
2461 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2464 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
2465 * include/Makefile.in: Regenerate.
2466 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
2468 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
2470 * include/experimental/bits/simd.h (__floating_point_flags): Do
2471 not rely on the presence of the math_errhandling macro.
2473 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2475 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
2476 to qualified-id for dependent type.
2478 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2480 * doc/xml/manual/status_cxx2020.xml: Update.
2481 * doc/html/manual/status.html: Regenerate.
2483 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2484 Thomas Rodgers <trodgers@redhat.com>
2486 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
2488 (_Sp_atomic): New class template.
2489 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
2491 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
2492 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
2493 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
2494 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
2496 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
2498 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
2500 * include/experimental/bits/simd.h: Move feature detection bools
2501 and add __have_avx512bitalg, __have_avx512vbmi2,
2502 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
2503 __have_avx512vnni, __have_avx512vpopcntdq.
2504 (__detail::__machine_flags): New function which returns a unique
2505 uint64 depending on relevant -m and -f flags.
2506 (__detail::__odr_helper): New type alias for either an anonymous
2507 type or a type specialized with the __machine_flags number.
2508 (_SimdIntOperators): Change template parameters from _Impl to
2509 _Tp, _Abi because _Impl now has an __odr_helper parameter which
2510 may be _OdrEnforcer from the anonymous namespace, which makes
2511 for a bad base class.
2512 (many): Either add __odr_helper template parameter or mark as
2514 * include/experimental/bits/simd_detail.h: Add defines for
2515 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
2516 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
2517 * include/experimental/bits/simd_builtin.h: Add __odr_helper
2518 template parameter or mark as always_inline.
2519 * include/experimental/bits/simd_fixed_size.h: Ditto.
2520 * include/experimental/bits/simd_math.h: Ditto.
2521 * include/experimental/bits/simd_scalar.h: Ditto.
2522 * include/experimental/bits/simd_neon.h: Add __odr_helper
2524 * include/experimental/bits/simd_ppc.h: Ditto.
2525 * include/experimental/bits/simd_x86.h: Ditto.
2527 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
2529 * testsuite/22_locale/numpunct/members/char/3.cc:
2530 Require pt_PT locale instead of nl_NL.
2531 (test02): Use pt_PT locale instead of nl_NL.
2533 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2538 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
2540 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
2541 Disable deprecated warnings for base classes.
2542 (_Reference_wrapper_base): Likewise.
2543 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
2544 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
2545 * include/bits/stl_function.h (unary_function, binary_function):
2546 Add deprecated attribute.
2547 (unary_negate, not1, binary_negate, not2, ptr_fun)
2548 (pointer_to_unary_function, pointer_to_binary_function)
2549 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
2550 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
2551 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
2553 * include/bits/stl_iterator.h: Disable deprecated warnings for
2554 std::iterator base classes.
2555 * include/bits/stl_iterator_base_types.h (iterator): Add
2556 deprecated attribute.
2557 * include/bits/stl_map.h (map::value_compare): Disable
2558 deprecated warnings for base class.
2559 * include/bits/stl_multimap.h (multimap::value_compare):
2561 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
2562 Add deprecated attribute.
2563 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
2564 * include/bits/stream_iterator.h: Disable deprecated warnings.
2565 * include/bits/streambuf_iterator.h: Likewise.
2566 * include/ext/bitmap_allocator.h: Remove unary_function base
2568 * include/ext/functional: Disable deprecated warnings.
2569 * include/ext/rope: Likewise.
2570 * include/ext/throw_allocator.h: Likewise.
2571 * include/std/type_traits (result_of): Add deprecated attribute.
2572 * include/tr1/functional: Disable deprecated warnings.
2573 * include/tr1/functional_hash.h: Likewise.
2574 * testsuite/20_util/function_objects/binders/1.cc: Add
2575 -Wno-disable-deprecations.
2576 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
2577 * testsuite/20_util/function_objects/constexpr.cc: Add
2579 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
2580 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
2581 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
2583 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
2585 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
2587 * testsuite/20_util/reference_wrapper/24803.cc:
2589 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
2590 C++20 and check for absence of nested types.
2591 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
2592 std::binary_function base class.
2593 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
2594 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
2595 std::iterator base class.
2596 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
2598 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
2600 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
2602 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
2604 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
2606 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
2608 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
2610 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
2612 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
2614 * testsuite/25_algorithms/copy/34595.cc:
2616 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
2618 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
2619 Disable deprecated warnings.
2620 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
2622 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
2624 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
2626 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
2628 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
2630 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
2632 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
2634 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
2636 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
2638 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
2640 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
2642 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
2644 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
2646 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
2648 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
2650 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
2652 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
2654 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
2656 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
2658 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
2660 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
2662 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
2664 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
2666 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
2668 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
2670 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
2672 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
2674 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
2676 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
2678 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2680 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2682 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
2684 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
2686 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
2688 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
2690 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
2692 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
2694 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
2696 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
2698 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
2700 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
2702 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
2704 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
2706 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
2708 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
2710 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
2712 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
2714 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
2716 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2718 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2720 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
2721 Disable deprecated warnings.
2722 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
2724 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
2725 std::unary_function base classes.
2726 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2727 Remove std::iterator base classes.
2729 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2731 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
2732 Correct type of macro value.
2733 (shared_ptr): Add additional friend declarations.
2734 (make_shared, allocate_shared): Constrain existing overloads and
2735 remove static_assert.
2736 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
2738 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
2739 specialization for use with make_shared_for_overwrite.
2740 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2741 (_Sp_counted_array_base): New class template.
2742 (_Sp_counted_array): New class template.
2743 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
2744 New constructor for allocating shared arrays.
2745 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
2746 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
2748 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2749 (__cpp_lib_smart_ptr_for_overwrite): New macro.
2750 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
2752 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
2753 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
2754 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
2755 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
2756 feature test macro. Test non-trivial default-initialization.
2758 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2760 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
2761 Also cast away cv-qualifiers when converting pointer to void.
2762 * testsuite/20_util/allocator/void.cc: Test construct function
2763 with cv-qualified types.
2765 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2768 * include/bits/stl_iterator.h (common_iterator): Use
2769 std::construct_at instead of placement new.
2770 * testsuite/24_iterators/common_iterator/1.cc: Check copy
2771 construction is usable in constant expressions.
2773 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2775 * doc/xml/manual/status_cxx2011.xml: Document new tokens
2776 accepted by std::random_device constructor.
2777 * doc/html/manual/status.html: Regenerate.
2779 2022-01-12 Patrick Palka <ppalka@redhat.com>
2781 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
2784 2022-01-12 Patrick Palka <ppalka@redhat.com>
2787 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
2788 Track the excess precision separately from the effective
2789 precision. Avoid overflow in bounds check by splitting it into
2791 (__floating_to_chars_precision): Avoid overflow in bounds checks
2793 * testsuite/20_util/to_chars/103955.cc: New test.
2795 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2798 * include/Makefile.am: Install <source_location> for
2800 * include/Makefile.in: Regenerate.
2801 * include/std/version (__cpp_lib_source_location): Define for
2804 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2806 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
2807 Add neoxcept (LWG 3593).
2809 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2811 * include/std/ranges (ranges::__detail::__box): Add constexpr to
2812 assignment operators (LWG 3572).
2813 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
2814 view that uses copyable-box.
2816 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2819 * include/Makefile.am: Install <coroutine> for freestanding.
2820 * include/Makefile.in: Regenerate.
2821 * include/std/coroutine: Adjust headers and preprocessor
2823 (__coroutine_traits_impl): Use concepts when available.
2824 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
2826 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2828 * include/std/ostream (operator<<(basic_ostream&, charT)):
2829 Use unformatted input if no padding is needed.
2830 (operator<<(basic_ostream<char>&, char)): Likewise.
2832 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2835 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
2837 * include/std/variant (__cpp_lib_variant): Only define C++20
2838 value when the compiler is known to support conditionally
2839 trivial destructors.
2840 * include/std/version (__cpp_lib_variant): Likewise.
2842 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2844 * include/bits/stl_iterator.h (common_iterator): Add constexpr
2845 to all member functions (LWG 3574).
2846 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
2847 tests as constant expressions.
2848 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
2850 2022-01-10 Jakub Jelinek <jakub@redhat.com>
2853 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
2854 (time_get::_M_extract_via_format): Declare new method with
2855 __time_get_state& as an extra argument.
2856 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
2857 __state argument, set various fields in it while parsing. Handle %j,
2858 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
2859 for %p immediately. Add a wrapper around the method without the
2860 __state argument for backwards compatibility.
2861 (_M_extract_num): Remove all __len == 4 special cases.
2862 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
2863 initialize __state, pass it to _M_extract_via_format and finalize it
2865 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
2866 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
2867 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
2868 version, don't call do_get but call _M_extract_via_format instead to
2870 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
2871 with extra __time_get_state and __time_get_state::_M_finalize_state.
2872 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
2873 day_of_the_year): New functions in anon namespace.
2874 (mon_yday): New var in anon namespace.
2875 (__time_get_state::_M_finalize_state): Define.
2876 * testsuite/22_locale/time_get/get/char/4.cc: New test.
2877 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
2878 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
2879 as year 197AD instead of error.
2880 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
2881 year 2001 instead of error.
2882 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
2883 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
2884 197 as year 197AD instead of error.
2885 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
2886 1 as year 2001 instead of error.
2887 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
2889 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2892 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
2893 nothing for freestanding builds.
2894 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
2895 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
2896 with --without-headers. Do not use GCC_HEADER_STDINT for
2897 freestanding builds.
2898 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
2899 for freestanding builds.
2900 * configure: Regenerate.
2901 * Makefile.in: Regenerate.
2902 * doc/Makefile.in: Regenerate.
2903 * include/Makefile.in: Regenerate.
2904 * libsupc++/Makefile.in: Regenerate.
2905 * po/Makefile.in: Regenerate.
2906 * python/Makefile.in: Regenerate.
2907 * src/Makefile.in: Regenerate.
2908 * src/c++11/Makefile.in: Regenerate.
2909 * src/c++17/Makefile.in: Regenerate.
2910 * src/c++20/Makefile.in: Regenerate.
2911 * src/c++98/Makefile.in: Regenerate.
2912 * src/filesystem/Makefile.in: Regenerate.
2913 * testsuite/Makefile.in: Regenerate.
2915 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2917 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
2918 Add dg-timeout-factor directive.
2919 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
2920 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
2921 * testsuite/28_regex/match_results/102667.cc: Likewise.
2923 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2925 * doc/xml/manual/using.xml: Update documentation around default
2927 * doc/html/*: Regenerate.
2929 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2932 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
2933 * src/c++17/Makefile.in: Regenerate.
2935 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
2937 * testsuite/18_support/type_info/constexpr.cc: Add explicit
2938 -fdelete-null-pointer-checks option.
2940 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
2941 Jonathan Wakely <jwakely@redhat.com>
2944 * include/bits/forward_list.tcc (forward_list::merge): Check for
2946 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
2948 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2950 * include/bits/regex.h (basic_regex, match_results): Qualify
2951 name in friend declaration, to work around Clang bug.
2953 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2955 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
2957 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2960 * include/std/charconv (__from_chars_alpha_to_num): Return
2961 char instead of unsigned char. Change invalid return value to
2962 127 instead of using numeric trait.
2963 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
2964 Change type of variable to char.
2966 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
2969 * include/bits/hashtable_policy.h
2970 (_Hashtable_hash_traits<_Hash>): New.
2971 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
2972 (_Hashtable_base<>::_M_key_equals): New.
2973 (_Hashtable_base<>::_M_equals): Use latter.
2974 (_Hashtable_base<>::_M_key_equals_tr): New.
2975 (_Hashtable_base<>::_M_equals_tr): Use latter.
2976 * include/bits/hashtable.h
2977 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
2978 (_Hashtable<>::find): Loop through elements to look for key if size is lower
2979 than __small_size_threshold().
2980 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
2981 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
2982 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
2983 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
2984 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
2985 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
2986 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
2987 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
2988 * testsuite/util/testsuite_performance.h
2989 (report_performance): Use 9 width to display memory.
2990 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
2991 New performance test case.
2993 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2996 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
2997 Relax constraints on string_view parameter.
2998 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
3000 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
3002 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3004 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
3006 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
3007 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
3008 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
3010 (type_info::__equal): Define alias symbol.
3011 * libsupc++/typeinfo (type_info::before): Combine different
3012 implementations into one.
3013 (type_info::operator==): Likewise. Use address equality for
3014 constant evaluation. Call __equal for targets that require the
3015 definition to be non-inline.
3016 * testsuite/18_support/type_info/constexpr.cc: New test.
3018 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3020 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
3021 class and virtual functions as 'final'.
3022 (io_category_instance): Use constinit union to make the object
3024 * src/c++11/future.cc (future_error_category): Define class and
3025 virtual functions as 'final'.
3026 (future_category_instance): Use constinit union.
3028 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3030 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
3031 versioned namespace from the type name that is printed.
3033 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3035 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
3036 printer for std::regex NFA states.
3038 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3040 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
3041 placeholders in comments.
3042 * testsuite/23_containers/forward_list/operations/2.cc:
3044 * testsuite/23_containers/forward_list/operations/3.cc:
3046 * testsuite/23_containers/forward_list/operations/4.cc:
3048 * testsuite/23_containers/forward_list/operations/5.cc:
3050 * testsuite/23_containers/forward_list/operations/6.cc:
3052 * testsuite/23_containers/forward_list/operations/7.cc:
3055 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3058 * include/bits/stl_deque.h (operator-): Do not use 0 as null
3061 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3063 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
3064 Use std::_Construct for construct.
3066 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3069 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
3070 * doc/html/faq.html: Regenerate.
3072 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3074 * include/bits/regex.h (__regex_algo_impl): Change __policy and
3075 __match_mode template parameters to be function parameters.
3076 (regex_match, regex_search): Pass policy and match mode as
3078 * include/bits/regex.tcc (__regex_algo_impl): Change template
3079 parameters to function parameters.
3080 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
3081 'if constexpr' for conditions using template parameters.
3082 (_RegexTranslator): Likewise.
3083 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
3085 * testsuite/util/testsuite_regex.h (regex_match_debug)
3086 (regex_search_debug): Move template arguments to function
3089 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3091 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
3092 results even if the match failed.
3094 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3096 * include/bits/regex_compiler.tcc: Adjust all calls to
3097 __throw_regex_error.
3098 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
3100 * include/bits/regex_scanner.tcc: Likewise.
3101 * src/c++11/regex.cc (desc): New helper function.
3102 (regex_error::regex_error(error_type)): Use desc to get a string
3103 corresponding to the error code.
3106 Copyright (C) 2022 Free Software Foundation, Inc.
3108 Copying and distribution of this file, with or without modification,
3109 are permitted in any medium without royalty provided the copyright
3110 notice and this notice are preserved.