1 2022-10-20 Patrick Palka <ppalka@redhat.com>
3 * include/std/charconv (__detail::__from_chars_alnum_to_val_table):
4 Redefine as a class template containing the members type, value and
5 _S_make_table. Don't use a local class as the table type.
6 (__detail::__table): Remove.
7 (__detail::__from_chars_alnum_to_val): Adjust after the above.
9 2022-10-19 Patrick Palka <ppalka@redhat.com>
11 * include/std/ranges (views::__detail::__is_repeat_view): Define
12 and later define a partial specialization.
13 (views::__detail::__take_of_repeat_view): Declare and later define.
14 (views::__detail::__drop_of_repeat_view): Likewise.
15 (views::_Take::operator()): Return a repeat_view if the argument
16 is a repeat_view as per P2474R2.
17 (views::_Drop::operator()): Likewise.
18 (repeat_view): Befriend __take/drop_of_repeat_view.
19 * testsuite/std/ranges/repeat/1.cc (test04): New test.
21 2022-10-19 Patrick Palka <ppalka@redhat.com>
24 * include/std/ranges (stride_view::_Iterator::operator-): Fix typo.
25 * testsuite/std/ranges/adaptors/stride/1.cc (test03): New test.
27 2022-10-19 LIU Hao <lh_mouse@126.com>
29 * src/c++11/thread.cc (get_nprocs): Add new implementation
30 for native Windows targets
32 2022-10-19 LIU Hao <lh_mouse@126.com>
34 * libsupc++/atexit_thread.cc (__cxa_thread_atexit): Use
35 implementation from mcfgthread if available
36 * libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_release,
37 __cxa_guard_abort): Use implementations from mcfgthread if
39 * configure: Regenerate
41 2022-10-19 Jakub Jelinek <jakub@redhat.com>
44 * include/std/limits: Fix a typo, 202202L -> 202002L.
45 (numeric_limits::<_Float16>::radix, numeric_limits::<_Float32>::radix,
46 numeric_limits::<_Float64>::radix, numeric_limits::<_Float128>::radix,
47 numeric_limits::<__gnu_cxx::__bfloat16_t>::radix): Use __FLT_RADIX__
48 macro instead of type specific macros.
49 * include/c_global/cmath (nextafter(_Float16, _Float16)): New
51 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)):
53 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
54 (test_functions): Uncomment nextafter test. Fix up sph_neumann call.
55 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc: New test.
57 2022-10-18 Patrick Palka <ppalka@redhat.com>
59 * include/std/ranges (stride_view): Define.
60 (stride_view::_Iterator): Define.
61 (views::__detail::__can_stride_view): Define.
62 (views::_Stride, views::stride): Define.
63 * testsuite/std/ranges/adaptors/stride/1.cc: New test.
65 2022-10-18 Jakub Jelinek <jakub@redhat.com>
68 * include/std/stdfloat: New file.
69 * include/std/numbers (__glibcxx_numbers): Define and use it
70 for __float128 explicit instantiations as well as
71 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
72 * include/std/atomic (atomic<_Float16>, atomic<_Float32>,
73 atomic<_Float64>, atomic<_Float128>, atomic<__gnu_cxx::__bfloat16_t>):
74 New explicit instantiations.
75 * include/std/type_traits (__is_floating_point_helper<_Float16>,
76 __is_floating_point_helper<_Float32>,
77 __is_floating_point_helper<_Float64>,
78 __is_floating_point_helper<_Float128>,
79 __is_floating_point_helper<__gnu_cxx::__bfloat16_t>): Likewise.
80 * include/std/limits (__glibcxx_concat3_, __glibcxx_concat3,
81 __glibcxx_float_n): Define.
82 (numeric_limits<_Float16>, numeric_limits<_Float32>,
83 numeric_limits<_Float64>, numeric_limits<_Float128>,
84 numeric_limits<__gnu_cxx::__bfloat16_t>): New explicit instantiations.
85 * include/bits/std_abs.h (abs): New overloads for
86 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
87 * include/bits/c++config (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128): Define
88 if long double is IEEE quad.
89 (__gnu_cxx::__bfloat16_t): New using.
90 * include/c_global/cmath (acos, asin, atan, atan2, ceil, cos, cosh,
91 exp, fabs, floor, fmod, frexp, ldexp, log, log10, modf, pow, sin,
92 sinh, sqrt, tan, tanh, fpclassify, isfinite, isinf, isnan, isnormal,
93 signbit, isgreater, isgreaterequal, isless, islessequal,
94 islessgreater, isunordered, acosh, asinh, atanh, cbrt, copysign, erf,
95 erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma,
96 llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
97 nextafter, remainder, rint, round, scalbln, scalbn, tgamma, trunc,
98 lerp): New overloads with _Float{16,32,64,128} or
99 __gnu_cxx::__bfloat16_t types.
100 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
101 Prepare for definition if glibc 2.26 and later implements *f128 APIs
102 but comment out the actual definition for now.
103 * include/ext/type_traits.h (__promote<_Float16>, __promote<_Float32>,
104 __promote<_Float64>, __promote<_Float128>,
105 __promote<__gnu_cxx::__bfloat16_t>): New specializations.
106 * include/Makefile.am (std_headers): Add stdfloat.
107 * include/Makefile.in: Regenerated.
108 * include/precompiled/stdc++.h: Include stdfloat.
109 * testsuite/18_support/headers/stdfloat/types_std.cc: New test.
110 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: New test.
111 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc:
113 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: New test.
114 * testsuite/26_numerics/numbers/4.cc: New test.
115 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc: New test.
117 2022-10-17 Jonathan Wakely <jwakely@redhat.com>
119 * include/std/charconv (__cpp_lib_constexpr_charconv): Define to
121 * include/std/version (__cpp_lib_constexpr_charconv): Likewise.
122 * testsuite/20_util/to_chars/constexpr.cc: Check correct value.
123 * testsuite/20_util/to_chars/version.cc: Likewise.
125 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
127 * src/c++11/debug.cc (print_raw): Move inside #if block.
129 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
131 * include/bits/charconv.h (__to_chars_10_impl): Add constexpr
132 for C++23. Remove 'static' from array.
133 * include/std/charconv (__cpp_lib_constexpr_charconv): Define.
134 (__to_chars, __to_chars_16): Remove 'static' from array, add
136 (__to_chars_10, __to_chars_8, __to_chars_2, __to_chars_i)
137 (to_chars, __raise_and_add, __from_chars_pow2_base)
138 (__from_chars_alnum, from_chars): Add constexpr.
139 (__from_chars_alnum_to_val): Avoid local static during constant
140 evaluation. Add constexpr.
141 * include/std/version (__cpp_lib_constexpr_charconv): Define.
142 * testsuite/20_util/from_chars/constexpr.cc: New test.
143 * testsuite/20_util/to_chars/constexpr.cc: New test.
144 * testsuite/20_util/to_chars/version.cc: New test.
146 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
148 * include/bits/stl_map.h (map::insert(Pair&&)): Use
149 remove_const_t on argument to __is_pair.
150 * include/bits/stl_pair.h (__is_pair<const pair<T,U>>): Remove
151 partial specialization.
152 * include/bits/uses_allocator_args.h (_Std_pair): Use
153 remove_cv_t as per LWG 3677.
154 * testsuite/20_util/uses_allocator/lwg3677.cc: New test.
156 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
158 * libsupc++/eh_alloc.cc [USE_POOL]: New macro.
159 [!USE_POOL] (__gnu_cxx::__freeres, pool): Do not define.
160 [_GLIBCXX_EH_POOL_STATIC] (pool::arena): Do not use std::max.
161 (__cxxabiv1::__cxa_allocate_exception) [!USE_POOL]: Do not use
163 (__cxxabiv1::__cxa_free_exception) [!USE_POOL]: Likewise.
164 (__cxxabiv1::__cxa_allocate_dependent_exception) [!USE_POOL]:
166 (__cxxabiv1::__cxa_free_dependent_exception) [!USE_POOL]:
169 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
171 * src/c++11/debug.cc (print_raw): Simplify.
172 (print_word): Print indentation by calling fprintf directly.
173 (_Error_formatter::_M_error): Print unindented string by calling
176 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
178 * include/std/iostream: Use markdown in Doxygen comment.
180 2022-10-12 François Dumont <fdumont@gcc.gnu.org>
182 * include/debug/string: Add using _Base::compare.
183 (__gnu_debug::basic_string<>::compare(const basic_string<>&)): Remove.
184 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&)):
186 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&,
187 size_type, size_type)): Remove.
188 * testsuite/util/testsuite_string.h [_GLIBCXX_TEST_DEBUG_STRING]: Include <debug/string>.
189 * testsuite/21_strings/basic_string/operations/compare/char/1.cc: Include testsuite_string.h
190 and use __gnu_test::string.
191 * testsuite/21_strings/basic_string/operations/compare/char/13650.cc: Likewise.
192 * testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise.
193 * testsuite/21_strings/basic_string/operations/rfind/char/1.cc: Likewise.
194 * testsuite/21_strings/basic_string/operations/rfind/char/2.cc: Likewise.
195 * testsuite/21_strings/basic_string/operations/rfind/char/3.cc: Likewise.
196 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
197 Include testsuite_string.h
198 and use __gnu_test::wstring.
199 * testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc: Likewise.
200 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise.
202 2022-10-12 Patrick Palka <ppalka@redhat.com>
204 * include/std/ranges (repeat_view): Define.
205 (repeat_view::_Iterator): Define.
206 (views::__detail::__can_repeat_view): Define.
207 (views::__detail::__can_bounded_repeat_view): Define.
208 (views::_Repeat, views::repeat): Define.
209 * testsuite/std/ranges/repeat/1.cc: New test.
211 2022-10-12 Martin Liska <mliska@suse.cz>
213 * configure: Regenerate.
215 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
218 * libsupc++/eh_alloc.cc (pool): Change preprocessor condition
219 for using __mutex from __GTHREADS to _GLIBCXX_HOSTED.
220 (pool::allocate): Remove namespace qualification to use
221 pool::__scoped_lock instead of __gnu_cxx::__scoped_lock.
223 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
226 * Makefile.in: Regenerate.
227 * acinclude.m4 (GLIBCXX_EMERGENCY_EH_ALLOC): New macro.
228 * configure: Regenerate.
229 * configure.ac: Use GLIBCXX_EMERGENCY_EH_ALLOC.
230 * crossconfig.m4: Check for secure_getenv.
231 * doc/Makefile.in: Regenerate.
232 * doc/xml/manual/configure.xml: Document new configure options.
233 * doc/xml/manual/evolution.xml: Document addition of tunables.
234 * doc/xml/manual/using_exceptions.xml: Document emergency
236 * doc/html/*: Regenerate.
237 * include/Makefile.in: Regenerate.
238 * libsupc++/Makefile.am: Use EH_POOL_FLAGS.
239 * libsupc++/Makefile.in: Regenerate.
240 * libsupc++/eh_alloc.cc (EMERGENCY_OBJ_SIZE): Define in units
241 of sizeof(void*) not including the ABI's exception header.
242 (EMERGENCY_OBJ_COUNT): Define as target-independent calculation
244 (MAX_OBJ_COUNT): Define macro for upper limit on pool size.
245 (pool) [_GLIBCXX_EH_POOL_STATIC]: Use fixed-size buffer.
246 (pool::buffer_size_in_bytes): New static member function.
247 (pool::pool): Parse GLIBCXX_TUNABLES environment variable to set
248 pool size at runtime.
249 (pool::in_pool): Use std::less<void*> for total order.
250 (__freeres) [_GLIBCXX_EH_POOL_STATIC]: Do nothing.
251 (__cxa_free_exception, __cxa_free_dependent_exception): Add
252 [[unlikely]] attributes.
253 * po/Makefile.in: Regenerate.
254 * python/Makefile.in: Regenerate.
255 * src/Makefile.in: Regenerate.
256 * src/c++11/Makefile.in: Regenerate.
257 * src/c++17/Makefile.in: Regenerate.
258 * src/c++20/Makefile.in: Regenerate.
259 * src/c++98/Makefile.in: Regenerate.
260 * src/filesystem/Makefile.in: Regenerate.
261 * src/libbacktrace/Makefile.in: Regenerate.
262 * testsuite/Makefile.in: Regenerate.
264 2022-10-11 Olivier Hainque <hainque@adacore.com>
265 Olivier Hainque <hainque@adacore.com>
267 * configure: Regenerate.
269 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
271 * include/std/type_traits (make_signed, make_unsigned): Remove
272 constraints on primary template.
273 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
274 Undo changes to expected error in C++20 mode.
275 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
277 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
279 * testsuite/20_util/make_signed/requirements/uninstantiated.cc:
281 * testsuite/20_util/make_unsigned/requirements/uninstantiated.cc:
284 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
286 * include/std/type_traits (make_signed, make_unsigned): Add
287 specializations for cv bool. Add requires-clause for C++20 to
288 improve diagnostics for non-integral, non-enum cases.
289 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
291 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
293 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
294 Adjust expected errors for C++20 and later.
295 * testsuite/lib/prune.exp: Prune "in requirements [with ...]"
296 lines from diagnostics.
298 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
300 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Add libstdcxx-hosted
301 enable arg as an alias for hosted-libstdcxx enable arg.
302 * configure: Regenerate.
304 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
306 * include/bits/std_function.h: Include <new> but do not include
307 <bits/stl_function.h>.
308 * include/std/functional: Do not include <new>.
310 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
312 * doc/xml/manual/intro.xml: Add role="bold" attribute to
313 emphasis elements for issue titles.
314 * doc/html/manual/bugs.html: Regenerate.
316 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
318 * include/Makefile.in: Regenerate.
320 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
322 * include/bits/invoke.h (__invoke_r): Check
323 __has_builtin(__reference_converts_from_temporary) before using
326 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
328 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
330 (test04): Remove constexpr for old std::string ABI and test at
333 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
335 * include/std/type_traits (remove_cv): Use __remove_cv built-in.
336 (remove_reference): Use __remove_reference built-in.
337 (remove_cvref): Use __remove_cvref built-in. Remove inheritance
338 for fallback implementation.
340 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
342 * include/bits/random.h (__is_seed_seq): Replace with ...
343 (_If_seed_seq_for): ... this.
344 * include/ext/random: Adjust to use _If_seed_seq_for.
346 2022-10-04 Patrick Palka <ppalka@redhat.com>
348 * include/std/ranges (join_with_view::_Iterator::operator*):
349 Replace use of std::visit with manual visitation.
350 (join_with_view::_Iterator::operator++): Likewise.
351 (join_with_view::_Iterator::operator--): Likewise.
352 (join_with_view::_Iterator::iter_move): Likewise.
353 (join_with_view::_Iterator::iter_swap): Likewise.
355 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
357 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
360 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
363 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
366 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
369 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
370 <stdint-gcc.h> directly.
372 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
375 * include/bits/functexcept.h [!_GLIBCXX_HOSTED]
376 (__throw_invalid_argument, __throw_out_of_range)
377 (__throw_out_of_range_fmt, __throw_runtime_error)
378 (__throw_overflow_error): Define inline.
379 * include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]:
380 Replace __builtin_abort with __throw_invalid_argument.
382 2022-10-04 Patrick Palka <ppalka@redhat.com>
384 * include/std/ranges: Include <variant> for C++23.
385 (__detail::__compatible_joinable_ranges): Define.
386 (__detail::__bidirectional_common): Define.
387 (join_with_view): Define.
388 (join_with_view::_Iterator): Define.
389 (join_with_view::_Sentinel): Define.
390 (views::__detail::__can_join_with_view): Define.
391 (views::_JoinWith, views::join_with): Define.
392 * testsuite/std/ranges/adaptors/join_with/1.cc: New test.
394 2022-10-04 Arsen Arsenović <arsen@aarsen.me>
396 * include/std/iostream: Use ///< for inline documentation.
397 * include/std/limits: Likewise.
398 * include/experimental/internet: Likewise.
400 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
402 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
403 * doc/html/manual/status.html: Regenerate.
405 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
408 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
410 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
411 * testsuite/18_support/new_nothrow.cc: Likewise.
412 * testsuite/20_util/allocator/105975.cc: Likewise.
413 * testsuite/20_util/allocator/14176.cc: Likewise.
414 * testsuite/20_util/allocator/64135.cc: Likewise.
415 * testsuite/20_util/allocator/89510.cc: Likewise.
416 * testsuite/20_util/allocator/lwg3190.cc: Likewise.
417 * testsuite/20_util/allocator/overaligned.cc: Likewise.
418 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
419 * testsuite/20_util/allocator/requirements/constexpr.cc:
421 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
423 * testsuite/20_util/allocator/requirements/typedefs.cc:
425 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
427 * testsuite/20_util/allocator/void.cc: Likewise.
428 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
429 * testsuite/20_util/allocator_traits/header.cc: Likewise.
430 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
432 * testsuite/20_util/allocator_traits/members/pointers.cc:
434 * testsuite/20_util/allocator_traits/requirements/typedefs.cc:
436 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
438 * testsuite/20_util/bind/42593.cc: Likewise.
439 * testsuite/20_util/bitset/access/dr396.cc: Likewise.
440 * testsuite/20_util/bitset/access/to_string.cc: Likewise.
441 * testsuite/20_util/bitset/cons/16020.cc: Likewise.
442 * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
443 * testsuite/20_util/bitset/cons/dr396.cc: Likewise.
444 * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
445 * testsuite/20_util/bitset/ext/15361.cc: Likewise.
446 * testsuite/20_util/bitset/operations/13838.cc: Likewise.
447 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
448 * testsuite/20_util/bitset/version.cc: Likewise.
449 * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
450 * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
451 * testsuite/20_util/enable_shared_from_this/members/assign.cc:
453 * testsuite/20_util/enable_shared_from_this/members/const.cc:
455 * testsuite/20_util/enable_shared_from_this/members/reinit.cc:
457 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
459 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
461 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
463 * testsuite/20_util/forward/1.cc: Likewise.
464 * testsuite/20_util/forward/1_neg.cc: Likewise.
465 * testsuite/20_util/function/1.cc: Likewise.
466 * testsuite/20_util/function/10.cc: Likewise.
467 * testsuite/20_util/function/2.cc: Likewise.
468 * testsuite/20_util/function/3.cc: Likewise.
469 * testsuite/20_util/function/4.cc: Likewise.
470 * testsuite/20_util/function/43397.cc: Likewise.
471 * testsuite/20_util/function/48541.cc: Likewise.
472 * testsuite/20_util/function/5.cc: Likewise.
473 * testsuite/20_util/function/58569.cc: Likewise.
474 * testsuite/20_util/function/6.cc: Likewise.
475 * testsuite/20_util/function/60594.cc: Likewise.
476 * testsuite/20_util/function/65760.cc: Likewise.
477 * testsuite/20_util/function/69222.cc: Likewise.
478 * testsuite/20_util/function/7.cc: Likewise.
479 * testsuite/20_util/function/77322.cc: Likewise.
480 * testsuite/20_util/function/8.cc: Likewise.
481 * testsuite/20_util/function/9.cc: Likewise.
482 * testsuite/20_util/function/91456.cc: Likewise.
483 * testsuite/20_util/function/assign/move.cc: Likewise.
484 * testsuite/20_util/function/assign/move_target.cc: Likewise.
485 * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
486 * testsuite/20_util/function/cons/55320.cc: Likewise.
487 * testsuite/20_util/function/cons/57465.cc: Likewise.
488 * testsuite/20_util/function/cons/72820.cc: Likewise.
489 * testsuite/20_util/function/cons/addressof.cc: Likewise.
490 * testsuite/20_util/function/cons/callable.cc: Likewise.
491 * testsuite/20_util/function/cons/deduction.cc: Likewise.
492 * testsuite/20_util/function/cons/lwg2774.cc: Likewise.
493 * testsuite/20_util/function/cons/move.cc: Likewise.
494 * testsuite/20_util/function/cons/move_target.cc: Likewise.
495 * testsuite/20_util/function/cons/noexcept.cc: Likewise.
496 * testsuite/20_util/function/cons/non_copyconstructible.cc:
498 * testsuite/20_util/function/cons/refqual.cc: Likewise.
499 * testsuite/20_util/function/cons/70692.cc: Likewise.
500 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
501 * testsuite/20_util/function/invoke/forwarding.cc: Likewise.
502 * testsuite/20_util/function/invoke/move_only.cc: Likewise.
503 * testsuite/20_util/function/null_pointer_comparisons.cc:
505 * testsuite/20_util/function/requirements/explicit_instantiation.cc:
507 * testsuite/20_util/function/target_no_rtti.cc: Likewise.
508 * testsuite/20_util/function_objects/83607.cc: Likewise.
509 * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
510 * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise.
511 * testsuite/20_util/headers/functional/types_std_c++0x.cc:
513 * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
514 * testsuite/20_util/is_function/35637.cc: Likewise.
515 * testsuite/20_util/move/1.cc: Likewise.
516 * testsuite/20_util/move_only_function/call.cc: Likewise.
517 * testsuite/20_util/move_only_function/cons.cc: Likewise.
518 * testsuite/20_util/move_only_function/move.cc: Likewise.
519 * testsuite/20_util/move_only_function/version.cc: Likewise.
520 * testsuite/20_util/owner_less/cmp.cc: Likewise.
521 * testsuite/20_util/owner_less/noexcept.cc: Likewise.
522 * testsuite/20_util/owner_less/void.cc: Likewise.
523 * testsuite/20_util/pointer_safety/1.cc: Likewise.
524 * testsuite/20_util/scoped_allocator/65279.cc: Likewise.
525 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
526 * testsuite/20_util/scoped_allocator/construct_pair.cc:
528 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
529 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
531 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
532 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
533 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
534 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
536 * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
537 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
538 * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise.
539 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
540 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc:
542 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
544 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
546 * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise.
547 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
548 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
549 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
550 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
551 * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
552 * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise.
553 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
554 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
556 * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
557 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
558 * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
559 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
560 * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
561 * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
562 * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
563 * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
564 * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise.
565 * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise.
566 * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise.
567 * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise.
568 * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise.
569 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
570 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
571 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
572 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
573 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
574 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
575 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
576 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
577 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise.
578 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise.
579 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
580 * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
582 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
583 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
584 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
585 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc:
587 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
589 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
591 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
593 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
594 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
595 * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
596 * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc:
598 * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise.
599 * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise.
600 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
602 * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise.
603 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
604 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
605 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
606 * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise.
607 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
608 * testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
609 * testsuite/20_util/shared_ptr/creation/single_allocation.cc:
611 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
613 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
614 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
615 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
616 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
617 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
618 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
619 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
620 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
621 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
622 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc:
624 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
625 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
626 * testsuite/20_util/shared_ptr/observers/array.cc: Likewise.
627 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
628 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
629 * testsuite/20_util/shared_ptr/observers/owner_before.cc:
631 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
632 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
633 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
635 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
637 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
639 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
641 * testsuite/20_util/temporary_buffer.cc: Likewise.
642 * testsuite/20_util/tuple/48476.cc: Likewise.
643 * testsuite/20_util/tuple/cons/90700.cc: Likewise.
644 * testsuite/20_util/tuple/cons/96803.cc: Likewise.
645 * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise.
646 * testsuite/20_util/tuple/cons/allocators.cc: Likewise.
647 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
649 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
650 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
651 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
653 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
654 * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
655 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
656 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
658 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
660 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
661 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
662 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
663 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
665 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
666 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
667 * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
669 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
670 * testsuite/20_util/weak_ptr/observers/owner_before.cc:
672 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
674 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
676 * testsuite/21_strings/basic_string/version.cc: Likewise.
677 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
679 * testsuite/21_strings/c_strings/char/69626.cc: Likewise.
680 * testsuite/21_strings/char_traits/requirements/version.cc:
682 * testsuite/23_containers/vector/requirements/version.cc:
684 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
686 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
688 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
690 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
692 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise.
693 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
695 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
697 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
699 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
701 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
703 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
704 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
705 * testsuite/25_algorithms/headers/cstdlib/functions_std.cc:
707 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
708 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
710 * testsuite/25_algorithms/make_heap/movable.cc: Likewise.
711 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
712 * testsuite/25_algorithms/random_shuffle/1.cc: Likewise.
713 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
714 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
716 * testsuite/25_algorithms/sort/35588.cc: Likewise.
717 * testsuite/25_algorithms/stable_partition/1.cc: Likewise.
718 * testsuite/25_algorithms/stable_partition/constrained.cc:
720 * testsuite/25_algorithms/stable_partition/mem_check.cc:
722 * testsuite/25_algorithms/stable_partition/moveable.cc:
724 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
726 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
728 * testsuite/25_algorithms/stable_sort/1.cc: Likewise.
729 * testsuite/26_numerics/complex/2.cc: Likewise.
730 * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise.
731 * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise.
732 * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise.
733 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise.
734 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise.
735 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise.
736 * testsuite/26_numerics/headers/cstdlib/functions_std.cc:
738 * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise.
739 * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise.
740 * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc:
742 * testsuite/26_numerics/lerp/version.cc: Likewise.
743 * testsuite/26_numerics/midpoint/version.cc: Likewise.
744 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
745 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
746 * testsuite/27_io/fpos/14320-1.cc: Likewise.
747 * testsuite/27_io/fpos/14320-2.cc: Likewise.
748 * testsuite/27_io/fpos/14320-3.cc: Likewise.
749 * testsuite/27_io/fpos/14320-4.cc: Likewise.
750 * testsuite/27_io/spanstream/version.cc: Likewise.
751 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
752 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
753 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
754 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
755 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
756 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
757 * testsuite/30_threads/barrier/2.cc: Likewise.
758 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
760 * testsuite/30_threads/jthread/version.cc: Likewise.
761 * testsuite/30_threads/latch/2.cc: Likewise.
762 * testsuite/30_threads/semaphore/2.cc: Likewise.
763 * testsuite/30_threads/stop_token/2.cc: Likewise.
764 * testsuite/abi/pr42230.cc: Likewise.
765 * testsuite/ext/shared_ptr/1.cc: Likewise.
766 * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise.
767 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
768 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
769 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
770 * testsuite/std/ranges/p2325.cc: Likewise.
772 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
774 * include/std/bitset (bitset(const C*, size_type n, C, C))
775 [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency.
776 (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of
779 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
782 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
783 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
785 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
787 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
790 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
792 (check_effective_target_hosted): New proc.
794 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
795 Jonathan Wakely <jwakely@redhat.com>
798 * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
799 Do not include C headers that aren't valid for freestanding.
800 * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
801 Do not test tag types that aren't defined for freestanding.
802 * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
803 check for std::getenv and std::system for freestanding.
804 * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]:
805 Do not test hosted parts of the standard library.
806 * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]:
808 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
810 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
812 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
813 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
815 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
817 * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise.
818 * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise.
819 * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise.
821 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
824 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
825 install-freestanding-headers, unifying it with the usual
827 * include/Makefile.in: Regenerate.
829 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
830 Jonathan Wakely <jwakely@redhat.com>
833 * include/Makefile.am: Add new header.
834 * include/Makefile.in: Regenerate.
835 * include/bits/requires_hosted.h: New header.
836 * include/experimental/algorithm: Include
837 <bits/requires_hosted.h>.
838 * include/experimental/any: Likewise.
839 * include/experimental/array: Likewise.
840 * include/experimental/buffer: Likewise.
841 * include/experimental/chrono: Likewise.
842 * include/experimental/deque: Likewise.
843 * include/experimental/executor: Likewise.
844 * include/experimental/filesystem: Likewise.
845 * include/experimental/forward_list: Likewise.
846 * include/experimental/functional: Likewise.
847 * include/experimental/internet: Likewise.
848 * include/experimental/io_context: Likewise.
849 * include/experimental/iterator: Likewise.
850 * include/experimental/list: Likewise.
851 * include/experimental/map: Likewise.
852 * include/experimental/memory: Likewise.
853 * include/experimental/memory_resource: Likewise.
854 * include/experimental/net: Likewise.
855 * include/experimental/netfwd: Likewise.
856 * include/experimental/numeric: Likewise.
857 * include/experimental/optional: Likewise.
858 * include/experimental/propagate_const: Likewise.
859 * include/experimental/random: Likewise.
860 * include/experimental/ratio: Likewise.
861 * include/experimental/regex: Likewise.
862 * include/experimental/scope: Likewise.
863 * include/experimental/set: Likewise.
864 * include/experimental/simd: Likewise.
865 * include/experimental/socket: Likewise.
866 * include/experimental/source_location: Likewise.
867 * include/experimental/string: Likewise.
868 * include/experimental/string_view: Likewise.
869 * include/experimental/system_error: Likewise.
870 * include/experimental/timer: Likewise.
871 * include/experimental/tuple: Likewise.
872 * include/experimental/unordered_map: Likewise.
873 * include/experimental/unordered_set: Likewise.
874 * include/experimental/utility: Likewise.
875 * include/experimental/vector: Likewise.
876 * include/std/barrier: Likewise.
877 * include/std/chrono: Likewise.
878 * include/std/condition_variable: Likewise.
879 * include/std/deque: Likewise.
880 * include/std/execution: Likewise.
881 * include/std/filesystem: Likewise.
882 * include/std/forward_list: Likewise.
883 * include/std/fstream: Likewise.
884 * include/std/future: Likewise.
885 * include/std/iomanip: Likewise.
886 * include/std/ios: Likewise.
887 * include/std/iosfwd: Likewise.
888 * include/std/iostream: Likewise.
889 * include/std/istream: Likewise.
890 * include/std/latch: Likewise.
891 * include/std/list: Likewise.
892 * include/std/locale: Likewise.
893 * include/std/map: Likewise.
894 * include/std/memory_resource: Likewise.
895 * include/std/mutex: Likewise.
896 * include/std/ostream: Likewise.
897 * include/std/queue: Likewise.
898 * include/std/random: Likewise.
899 * include/std/regex: Likewise.
900 * include/std/semaphore: Likewise.
901 * include/std/set: Likewise.
902 * include/std/shared_mutex: Likewise.
903 * include/std/spanstream: Likewise.
904 * include/std/sstream: Likewise.
905 * include/std/stack: Likewise.
906 * include/std/stacktrace: Likewise.
907 * include/std/stop_token: Likewise.
908 * include/std/streambuf: Likewise.
909 * include/std/string: Likewise.
910 * include/std/syncstream: Likewise.
911 * include/std/system_error: Likewise.
912 * include/std/thread: Likewise.
913 * include/std/unordered_map: Likewise.
914 * include/std/unordered_set: Likewise.
915 * include/std/valarray: Likewise.
916 * include/std/vector: Likewise.
917 * include/tr1/array: Likewise.
918 * include/tr1/ccomplex: Likewise.
919 * include/tr1/cctype: Likewise.
920 * include/tr1/cfenv: Likewise.
921 * include/tr1/cfloat: Likewise.
922 * include/tr1/cinttypes: Likewise.
923 * include/tr1/climits: Likewise.
924 * include/tr1/cmath: Likewise.
925 * include/tr1/complex: Likewise.
926 * include/tr1/complex.h: Likewise.
927 * include/tr1/cstdarg: Likewise.
928 * include/tr1/cstdbool: Likewise.
929 * include/tr1/cstdint: Likewise.
930 * include/tr1/cstdio: Likewise.
931 * include/tr1/cstdlib: Likewise.
932 * include/tr1/ctgmath: Likewise.
933 * include/tr1/ctime: Likewise.
934 * include/tr1/ctype.h: Likewise.
935 * include/tr1/cwchar: Likewise.
936 * include/tr1/cwctype: Likewise.
937 * include/tr1/fenv.h: Likewise.
938 * include/tr1/float.h: Likewise.
939 * include/tr1/functional: Likewise.
940 * include/tr1/inttypes.h: Likewise.
941 * include/tr1/limits.h: Likewise.
942 * include/tr1/math.h: Likewise.
943 * include/tr1/memory: Likewise.
944 * include/tr1/random: Likewise.
945 * include/tr1/regex: Likewise.
946 * include/tr1/stdarg.h: Likewise.
947 * include/tr1/stdbool.h: Likewise.
948 * include/tr1/stdint.h: Likewise.
949 * include/tr1/stdio.h: Likewise.
950 * include/tr1/stdlib.h: Likewise.
951 * include/tr1/tgmath.h: Likewise.
952 * include/tr1/tuple: Likewise.
953 * include/tr1/type_traits: Likewise.
954 * include/tr1/unordered_map: Likewise.
955 * include/tr1/unordered_set: Likewise.
956 * include/tr1/utility: Likewise.
957 * include/tr1/wchar.h: Likewise.
958 * include/tr1/wctype.h: Likewise.
959 * include/c_global/cmath: Likewise.
960 * include/ext/algorithm: Include <bits/requires_hosted.h>.
961 * include/ext/bitmap_allocator.h: Likewise.
962 * include/ext/cmath: Likewise.
963 * include/ext/codecvt_specializations.h: Likewise.
964 * include/ext/debug_allocator.h: Likewise.
965 * include/ext/enc_filebuf.h: Likewise.
966 * include/ext/extptr_allocator.h: Likewise.
967 * include/ext/functional: Likewise.
968 * include/ext/malloc_allocator.h: Likewise.
969 * include/ext/memory: Likewise.
970 * include/ext/mt_allocator.h: Likewise.
971 * include/ext/new_allocator.h: Likewise.
972 * include/ext/numeric: Likewise.
973 * include/ext/pod_char_traits.h: Likewise.
974 * include/ext/pool_allocator.h: Likewise.
975 * include/ext/random: Likewise.
976 * include/ext/random.tcc: Likewise.
977 * include/ext/rb_tree: Likewise.
978 * include/ext/rc_string_base.h: Likewise.
979 * include/ext/rope: Likewise.
980 * include/ext/ropeimpl.h: Likewise.
981 * include/ext/slist: Likewise.
982 * include/ext/sso_string_base.h: Likewise.
983 * include/ext/stdio_filebuf.h: Likewise.
984 * include/ext/stdio_sync_filebuf.h: Likewise.
985 * include/ext/string_conversions.h: Likewise.
986 * include/ext/throw_allocator.h: Likewise.
987 * include/ext/vstring.h: Likewise.
988 * include/ext/vstring.tcc: Likewise.
989 * include/ext/vstring_fwd.h: Likewise.
990 * include/ext/vstring_util.h: Likewise.
991 * include/std/charconv: Likewise.
992 (__cpp_lib_to_chars): Do not define for freestanding.
993 * include/std/version: Adjust which macros get defined in
995 * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
996 functionality from freestanding.
997 * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
998 * include/std/memory [!_GLIBCXX_HOSTED]: Omit
999 <bits/stl_tempbuf.h> in freestanding
1000 * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
1001 random_shuffle and stable_partition definition.
1002 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
1003 random_shuffle and stable_partition from freestanding.
1004 * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
1005 stable_partition from freestanding.
1006 * include/bits/concept_check.h: Remove needless HOSTED check.
1007 * include/std/iterator: Include <bits/ranges_base.h>.
1008 * include/std/numeric (__cpp_lib_parallel_algorithms): Do not
1009 define for freestanding.
1010 * include/std/functional (__cpp_lib_boyer_moore_searcher):
1012 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++
1015 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1016 Arsen Arsenović <arsen@aarsen.me>
1018 * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not
1019 include headers that aren't valid for freestanding.
1020 * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise.
1022 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
1024 * configure.ac: Remove any lines that unconditionally include
1025 <stdio.h> from ac_includes_default, when running Autoconf <2.70.
1026 * configure: Regenerate.
1028 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1031 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
1032 to __STDC_HOSTED__ for non-freestanding installations.
1033 * configure: Regenerate.
1034 * include/Makefile.am (${host_builddir}/c++config.h): Adjust
1036 * include/Makefile.in: Regenerate.
1037 * testsuite/lib/libstdc++.exp (v3-build_support): Use
1039 * testsuite/libstdc++-abi/abi.exp: Likewise.
1041 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1043 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
1044 Change body of unused operator<< overload to throw if called.
1045 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
1048 2022-10-03 François Dumont <fdumont@gcc.gnu.org>
1050 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
1051 namespace for __cxx11 symbols.
1052 (add_one_template_type_printer): Likewise.
1053 (add_one_type_printer): Likewise.
1054 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
1055 ambiguous typedef matching both std:: and std::__cxx11:: symbols.
1056 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
1057 \#define _GLIBCXX_USE_CXX11_ABI 0.
1058 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
1060 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1061 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1062 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
1064 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1066 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1068 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
1069 from binary literal instead of using stringstream.
1071 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1073 * include/std/bitset (operator>>): Use a simple buffer instead
1074 of std::basic_string.
1076 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1078 * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string)
1079 (_M_copy_to_string): Change access to private.
1080 (_M_copy_from_string(const basic_string&, size_t, size_t)):
1082 (_M_copy_to_string(const basic_string&)): Remove.
1084 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1086 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
1089 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
1090 Yvan ROUX <yvan.roux@foss.st.com>
1092 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.
1094 2022-09-30 Arsen Arsenović <arsen@aarsen.me>
1096 * include/std/bitset: Include <bits/stl_algobase.h>.
1098 2022-09-29 François Dumont <fdumont@gcc.gnu.org>
1100 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register
1101 printer for types in std::__debug namespace with template parameters in std::__8
1104 2022-09-29 Patrick Palka <ppalka@redhat.com>
1106 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
1107 __remove_cv and use __remove_cv_t instead.
1109 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
1111 * include/std/type_traits (__is_invocable_impl): Check
1112 __has_builtin(__reference_converts_from_temporary) before using
1115 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
1117 * doc/xml/manual/evolution.xml: Document std::bind API
1119 * doc/xml/manual/intro.xml: Document LWG 2487 status.
1120 * doc/xml/manual/using.xml: Clarify default value of
1121 _GLIBCXX_USE_DEPRECATED.
1122 * doc/html/*: Regenerate.
1123 * include/std/functional (_Bind::operator()(Args&&...) volatile)
1124 (_Bind::operator()(Args&&...) const volatile)
1125 (_Bind_result::operator()(Args&&...) volatile)
1126 (_Bind_result::operator()(Args&&...) const volatile): Replace
1127 with deleted overload for C++20 and later.
1128 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
1130 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
1131 ill-formed in C++20.
1133 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
1136 * include/bits/invoke.h [__cplusplus < 201703] (__invoke_r):
1137 Remove is_invocable and is_convertible constraints.
1138 * include/std/type_traits (__is_invocable_impl::_S_conv): Use
1139 non-deduced context for parameter.
1140 (__is_invocable_impl::_S_test): Remove _Check_noex template
1141 parameter and use deduced noexcept value in its place. Add bool
1142 parameter to detect dangling references.
1143 (__is_invocable_impl::type): Adjust call to _S_test to avoid
1144 deducing unnecessary noexcept property..
1145 (__is_invocable_impl::__nothrow_type): Rename to ...
1146 (__is_invocable_impl::__nothrow_conv): ... this. Adjust call
1147 to _S_test to deduce noexcept property.
1148 * testsuite/20_util/bind/dangling_ref.cc: New test.
1149 * testsuite/20_util/function/cons/70692.cc: New test.
1150 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
1152 * testsuite/20_util/is_invocable/dangling_ref.cc: New test.
1153 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
1156 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
1159 * testsuite/20_util/is_convertible/requirements/access.cc: New
1162 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
1165 * include/bits/std_function.h (__function_guide_t): New alias
1167 [__cpp_static_call_operator] (__function_guide_static_helper):
1169 (function): Use __function_guide_t in deduction guide.
1170 * include/std/future (packaged_task): Use __function_guide_t in
1172 * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
1173 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
1176 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1178 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
1179 Also define the __ptr_traits_elem class template for the
1181 (pointer_traits<Ptr>): Remove constrained partial
1183 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
1184 ambiguitiy with program-defined partial specialization.
1186 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1188 * include/std/type_traits (is_convertible, is_convertible_v):
1189 Define using new built-in.
1190 (is_nothrow_convertible is_nothrow_convertible_v): Likewise.
1192 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1195 * include/std/bitset (_Base_bitset::_M_do_reset): Use
1196 preprocessor conditional around non-C++03 code.
1197 * testsuite/20_util/bitset/107037.cc: New test.
1199 2022-09-24 Jonathan Wakely <jwakely@redhat.com>
1201 * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
1202 Only instantiate is_empty if needed.
1203 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
1204 (__ptr_traits_impl::rebind): Use __detected_or.
1205 * include/experimental/type_traits (is_same_v): Add a partial
1206 specialization instead of instantiating the std::is_same class
1208 (detected_t): Redefine in terms of detected_or_t.
1209 (is_detected, is_detected_v): Redefine in terms of detected_t.
1210 * include/std/type_traits [__cpp_concepts] (__detected_or): Add
1211 new definition using concepts.
1212 (__detector::value_t): Rename to __is_detected.
1213 * testsuite/17_intro/names.cc: Check value_t isn't used.
1215 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1217 * testsuite/20_util/is_assignable/requirements/access.cc:
1220 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1223 * include/std/type_traits (__is_nothrow_invocable_lib): Remove.
1224 (__is_invocable_impl::__nothrow_type): New member type which
1225 checks if the conversion can throw.
1226 (__is_nt_invocable_impl): Replace class template with alias
1227 template to __is_nt_invocable_impl::__nothrow_type.
1228 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
1229 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
1230 macro used by value_ext.cc test.
1231 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
1232 test for non-standard __is_nothrow_invocable_lib trait.
1234 2022-09-23 Marek Polacek <polacek@redhat.com>
1237 * include/std/type_traits: Rename __is_nothrow_convertible to
1238 __is_nothrow_convertible_lib.
1239 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise.
1241 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1243 * include/std/bitset (operator>>): Do not copy for N==0.
1244 * testsuite/20_util/bitset/io/input.cc: Add comment.
1246 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1248 * include/debug/bitset (__debug::bitset): Add constexpr to all
1250 (operator&, operator|, operator^): Add inline and constexpr.
1251 (operator>>, operator<<): Add inline.
1252 * testsuite/20_util/bitset/access/constexpr.cc: Only check using
1253 constexpr std::string for the cxx11 ABI.
1254 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
1255 * testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr
1258 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1260 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
1261 instead of iterating over individual bits.
1263 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
1265 * include/std/bitset (bitset): Add constexpr for C++23. Guard
1266 members using std::string with _GLIBCXX_HOSTED.
1267 * include/std/version (__cpp_lib_constexpr_bitset): Define.
1268 * testsuite/20_util/bitset/access/constexpr.cc: New test.
1269 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test.
1270 * testsuite/20_util/bitset/count/constexpr.cc: New test.
1271 * testsuite/20_util/bitset/ext/constexpr.cc: New test.
1272 * testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test.
1273 * testsuite/20_util/bitset/version.cc: New test.
1275 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
1277 * testsuite/23_containers/bitset/18604.cc: Moved to...
1278 * testsuite/20_util/bitset/18604.cc: ...here.
1279 * testsuite/23_containers/bitset/45713.cc: Moved to...
1280 * testsuite/20_util/bitset/45713.cc: ...here.
1281 * testsuite/23_containers/bitset/to_string/dr396.cc: Moved to...
1282 * testsuite/20_util/bitset/access/dr396.cc: ...here.
1283 * testsuite/23_containers/bitset/to_string/1.cc: Moved to...
1284 * testsuite/20_util/bitset/access/to_string.cc: ...here.
1285 * testsuite/23_containers/bitset/to_ullong/1.cc: Moved to...
1286 * testsuite/20_util/bitset/access/to_ullong.cc: ...here.
1287 * testsuite/23_containers/bitset/to_ulong/1.cc: Moved to...
1288 * testsuite/20_util/bitset/access/to_ulong.cc: ...here.
1289 * testsuite/23_containers/bitset/cons/1.cc: Moved to...
1290 * testsuite/20_util/bitset/cons/1.cc: ...here.
1291 * testsuite/23_containers/bitset/cons/16020.cc: Moved to...
1292 * testsuite/20_util/bitset/cons/16020.cc: ...here.
1293 * testsuite/23_containers/bitset/cons/2.cc: Moved to...
1294 * testsuite/20_util/bitset/cons/2.cc: ...here.
1295 * testsuite/23_containers/bitset/cons/3.cc: Moved to...
1296 * testsuite/20_util/bitset/cons/3.cc: ...here.
1297 * testsuite/23_containers/bitset/cons/38244.cc: Moved to...
1298 * testsuite/20_util/bitset/cons/38244.cc: ...here.
1299 * testsuite/23_containers/bitset/cons/50268.cc: Moved to...
1300 * testsuite/20_util/bitset/cons/50268.cc: ...here.
1301 * testsuite/23_containers/bitset/cons/6282.cc: Moved to...
1302 * testsuite/20_util/bitset/cons/6282.cc: ...here.
1303 * testsuite/23_containers/bitset/cons/constexpr.cc: Moved to...
1304 * testsuite/20_util/bitset/cons/constexpr.cc: ...here.
1305 * testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to...
1306 * testsuite/20_util/bitset/cons/dr1325-1.cc: ...here.
1307 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to...
1308 * testsuite/20_util/bitset/cons/dr1325-2.cc: ...here.
1309 * testsuite/23_containers/bitset/cons/dr396.cc: Moved to...
1310 * testsuite/20_util/bitset/cons/dr396.cc: ...here.
1311 * testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to...
1312 * testsuite/20_util/bitset/debug/invalidation/1.cc: ...here.
1313 * testsuite/23_containers/bitset/ext/15361.cc: Moved to...
1314 * testsuite/20_util/bitset/ext/15361.cc: ...here.
1315 * testsuite/23_containers/bitset/hash/1.cc: Moved to...
1316 * testsuite/20_util/bitset/hash/1.cc: ...here.
1317 * testsuite/23_containers/bitset/input/1.cc: Moved to...
1318 * testsuite/20_util/bitset/io/input.cc: ...here.
1319 * testsuite/23_containers/bitset/count/6124.cc: Moved to...
1320 * testsuite/20_util/bitset/observers/6124.cc: ...here.
1321 * testsuite/23_containers/bitset/all/1.cc: Moved to...
1322 * testsuite/20_util/bitset/observers/all.cc: ...here.
1323 * testsuite/23_containers/bitset/test/1.cc: Moved to...
1324 * testsuite/20_util/bitset/observers/test.cc: ...here.
1325 * testsuite/23_containers/bitset/operations/1.cc: Moved to...
1326 * testsuite/20_util/bitset/operations/1.cc: ...here.
1327 * testsuite/23_containers/bitset/operations/13838.cc: Moved to...
1328 * testsuite/20_util/bitset/operations/13838.cc: ...here.
1329 * testsuite/23_containers/bitset/operations/2.cc: Moved to...
1330 * testsuite/20_util/bitset/operations/2.cc: ...here.
1331 * testsuite/23_containers/bitset/operations/96303.cc: Moved to...
1332 * testsuite/20_util/bitset/operations/96303.cc: ...here.
1333 * testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to...
1334 * testsuite/20_util/bitset/operations/constexpr-2.cc: ...here.
1335 * testsuite/23_containers/bitset/operations/constexpr.cc: Moved to...
1336 * testsuite/20_util/bitset/operations/constexpr.cc: ...here.
1337 * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to...
1338 * testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here.
1339 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to...
1340 * testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here.
1341 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to...
1342 * testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here.
1343 * testsuite/23_containers/headers/bitset/synopsis.cc: Moved to...
1344 * testsuite/20_util/headers/bitset/synopsis.cc: ...here.
1346 2022-09-22 François Dumont <fdumont@gcc.gnu.org>
1348 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
1349 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
1350 std::__debug::priority_queue.
1352 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1355 * testsuite/20_util/function/91456.cc: Add comment with PR
1357 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
1358 std::function checks with std::is_invocable_r checks.
1360 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1362 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
1363 unnecessary main function.
1364 * testsuite/17_intro/headers/c++2011/all_attributes.cc:
1366 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1368 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1370 * testsuite/17_intro/headers/c++2020/all_attributes.cc:
1373 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1375 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
1376 from C++11 and later.
1378 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1380 * doc/xml/manual/documentation_hacking.xml: Remove trailing
1382 * doc/xml/manual/policy_data_structures.xml: Likewise.
1384 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1386 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
1387 using-declaration for _Exit.
1389 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1391 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
1394 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1396 * include/bits/ranges_base.h: Include <initializer_list>.
1398 2022-09-20 Jonathan Wakely <jwakely@redhat.com>
1400 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
1403 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1406 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
1408 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
1409 std::allocator_traits<std::allocator<T>> specializations for
1411 * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
1412 not declare for freestanding.
1413 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
1414 Do not define for freestanding.
1415 [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
1416 buffers for freestanding.
1417 * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
1418 streambuf iterators and overloaded algorithms using them.
1419 * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
1420 define specialized overloads for std::allocator.
1421 * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
1422 (make_unique_for_overwrite, operator<<): Do not define for
1424 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
1425 Use _GLIBCXX_NOTHROW instead of throw().
1426 * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
1427 _GLIBCXX_DEBUG for freestanding.
1428 * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
1429 * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
1430 __int_traits if <ext/numeric_traits.h> is available.
1431 * include/std/functional [!_GLIBCXX_HOSTED]: Do not include
1432 headers that aren't valid for freestanding.
1433 (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
1434 define for freestanding.
1435 * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
1436 headers that aren't valid for freestanding.
1437 * include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
1438 * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
1439 define for freestanding.
1440 (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
1441 Do not define partial specialization for freestanding.
1443 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1445 * include/bits/alloc_traits.h (__alloc_swap)
1446 (__shrink_to_fit_aux): Move here, from ...
1447 * include/bits/allocator.h: ... here.
1448 * include/ext/alloc_traits.h: Do not include allocator.h.
1450 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1452 * include/bits/stl_algo.h: Include <bits/stl_algobase.h>.
1453 * include/bits/stl_tempbuf.h: Include headers for __try and
1454 __catch macros, std::pair, and __gnu_cxx::__numeric_traits.
1455 * include/bits/stream_iterator.h: Include <iosfwd> and headers
1456 for std::addressof and std::iterator.
1457 * include/bits/streambuf_iterator.h: Include header for
1459 * include/std/iterator: Do not include <iosfwd>.
1461 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1463 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1464 Store value with non-zero padding bits after construction.
1466 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1468 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
1469 (__detail::_Adaptor::_M_g): Make public.
1470 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial
1472 (variate_generate::_Value): New helper to simplify handling of
1473 _Engine* and _Engine& template arguments.
1474 (variate_generate::engine_value_type): Define to underlying
1475 engine type, not adapted type.
1476 (variate_generate::engine()): Return underlying engine instead
1478 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
1480 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
1481 Check member typedefs have the correct types.
1483 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1485 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
1486 (_Error_formatter): Use 0 as null pointer constant.
1488 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1490 * include/bits/allocator.h (__alloc_neq): Remove.
1491 * include/bits/stl_list.h (list::_M_check_equal_allocators):
1492 Compare allocators directly, without __alloc_neq.
1494 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1496 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
1497 * include/bits/allocator.h: Fix nesting of Doxygen commands.
1499 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1501 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and
1502 GLIBCXX_3.4.31 versions.
1503 * doc/html/manual/abi.html: Regenerate.
1505 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1507 * include/std/memory: Do not include <bits/stl_algobase.h>.
1509 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1511 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
1513 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
1514 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
1515 try_lock_failed flag
1516 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
1517 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
1518 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
1519 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
1520 (_Sp_atomic::_Atomic_count::lock): Use new macros.
1522 2022-09-15 Patrick Palka <ppalka@redhat.com>
1524 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
1526 * include/bits/ranges_util.h: ... here.
1527 * include/std/ranges (chunk_by_view): Define.
1528 (chunk_by_view::_Iterator): Define.
1529 (__detail::__can_chunk_by_view): Define.
1530 (_ChunkBy, chunk_by): Define.
1531 * testsuite/std/ranges/adaptors/chunk_by/1.cc: New test.
1533 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1535 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1536 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.
1538 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1540 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
1543 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1545 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
1546 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
1547 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
1548 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
1549 Define macros for TSan annotation functions.
1550 (_Sp_atomic::_Atomic_count): Add annotations.
1552 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1554 * include/bits/stl_tempbuf.h: Include <new>.
1556 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1558 * testsuite/17_intro/names.cc: Explain why poison pragma can't
1561 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1563 * include/std/future
1564 (_State_baseV2::__setter(exception_ptr&, promise&)): Add
1565 assertion for LWG 2276 precondition.
1566 * testsuite/30_threads/promise/members/set_exception_neg.cc:
1569 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1571 * doc/xml/manual/intro.xml: Document LWG 1203.
1572 * doc/html/*: Regenerate.
1574 2022-09-14 Philipp Fent <fent@in.tum.de>
1576 * python/libstdcxx/v6/printers.py (access_streambuf_ptrs):
1577 New helper function.
1578 (StdStringBufPrinter, StdStringStreamPrinter): New printers.
1579 (build_libstdcxx_dictionary): Register stringstream printers.
1580 * testsuite/libstdc++-prettyprinters/debug.cc: Check string
1582 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1583 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1585 2022-09-13 Patrick Palka <ppalka@redhat.com>
1587 * include/std/ranges (__detail::__slide_caches_nothing): Define.
1588 (__detail::__slide_caches_last): Define.
1589 (__detail::__slide_caches_first): Define.
1590 (slide_view): Define.
1591 (enable_borrowed_range<slide_view>): Define.
1592 (slide_view::_Iterator): Define.
1593 (slide_view::_Sentinel): Define.
1594 (views::__detail::__can_slide_view): Define.
1595 (views::_Slide, views::slide): Define.
1596 * testsuite/std/ranges/adaptors/slide/1.cc: New test.
1598 2022-09-13 Patrick Palka <ppalka@redhat.com>
1600 * include/std/ranges (__detail::__div_ceil): Define.
1601 (chunk_view): Define.
1602 (chunk_view::_OuterIter): Define.
1603 (chunk_view::_OuterIter::value_type): Define.
1604 (chunk_view::_InnerIter): Define.
1605 (chunk_view<_Vp>): Define partial specialization for forward
1607 (enable_borrowed_range<chunk_view>): Define.
1608 (chunk_view<_Vp>::_Iterator): Define.
1609 (views::__detail::__can_chunk_view): Define.
1610 (views::_Chunk, views::chunk): Define.
1611 * testsuite/std/ranges/adaptors/chunk/1.cc: New test.
1613 2022-09-13 Patrick Palka <ppalka@redhat.com>
1615 * include/std/ranges (join_view::_Iterator::_M_satisfy):
1616 Adjust resetting _M_inner as per LWG 3569.
1617 (join_view::_Iterator::_M_inner): Wrap in std::optional
1619 (join_view::_Iterator::_Iterator): Relax constraints as
1621 (join_view::_Iterator::operator*): Adjust as per LWG 3569.
1622 (join_view::_Iterator::operator->): Likewise.
1623 (join_view::_Iterator::operator++): Likewise.
1624 (join_view::_Iterator::operator--): Likewise.
1625 (join_view::_Iterator::iter_move): Likewise.
1626 (join_view::_Iterator::iter_swap): Likewise.
1627 * testsuite/std/ranges/adaptors/join.cc (test14): New test.
1629 2022-09-13 Patrick Palka <ppalka@redhat.com>
1631 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1632 Add parentheses to avoid -Wparentheses warning.
1634 2022-09-12 Patrick Palka <ppalka@redhat.com>
1637 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
1639 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
1641 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
1643 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
1646 2022-09-12 Jakub Jelinek <jakub@redhat.com>
1648 PR tree-optimization/105329
1649 * acinclude.m4 (libtool_VERSION): Change to 6:31:0.
1650 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
1651 std::basic_string methods with name length of 15.
1652 (GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
1653 * testsuite/util/testsuite_abi.cc (check_version): Handle
1655 * include/bits/basic_string.h (std::basic_string::_M_replace_cold):
1657 * include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
1658 Define and export even for C++20.
1659 (std::basic_string::_M_replace): Use __builtin_expect, outline
1660 the overlapping case to _M_replace_cold.
1661 * configure: Regenerated.
1663 2022-09-09 Jonathan Wakely <jwakely@redhat.com>
1665 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
1666 Rename __weak to __is_weak.
1667 * testsuite/17_intro/names.cc: Add __weak and __strong.
1669 2022-09-09 Patrick Palka <ppalka@redhat.com>
1672 * include/std/ranges (views::_ZipTransform::operator()): Correct
1673 return type in the empty case.
1674 (views::_AdjacentTransform::operator()): Likewise.
1676 2022-09-09 Patrick Palka <ppalka@redhat.com>
1679 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
1681 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.
1683 2022-09-09 Patrick Palka <ppalka@redhat.com>
1686 * include/std/ranges (zip_view::_Iterator::operator-): Use
1687 __to_unsigned_like instead of make_unsigned_t.
1688 (zip_view::_Sentinel::operator-): Likewise.
1689 * testsuite/std/ranges/zip/1.cc (test04): New test.
1691 2022-09-08 François Dumont <fdumont@gcc.gnu.org>
1693 * testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New.
1694 (__gnu_test::malloc_info): New, replace mallinfo on current platform
1695 supporting it and use mallinfo2 when glibc >= 2.33.
1697 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1700 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1701 Prune additional errors from front-end.
1702 * testsuite/20_util/is_move_constructible/incomplete_neg.cc:
1704 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
1706 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
1708 * testsuite/20_util/is_swappable_with/incomplete_neg.cc:
1711 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1713 * include/c_global/cstddef (byte): Add always_inline attribute
1714 to all operator overloads.
1715 (to_integer): Add always_inline attribute.
1717 2022-09-08 Thomas Rodgers <trodgers@redhat.com>
1718 Jakub Jelinek <jakub@redhat.com>
1719 Jonathan Wakely <jwakely@redhat.com>
1721 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
1723 (__atomic_impl::clear_padding): Likewise.
1724 (__atomic_impl::__compare_exchange): Likewise.
1725 (__atomic_impl::compare_exchange_weak): Delegate to
1727 (__atomic_impl::compare_exchange_strong): Likewise.
1728 * include/std/atomic (atomic<T>::atomic(T)): Clear padding when
1729 possible in a constexpr function.
1730 (atomic::store): Clear padding.
1731 (atomic::exchange): Likewise.
1732 (atomic::compare_exchange_weak): Use __compare_exchange.
1733 (atomic::compare_exchange_strong): Likewise.
1734 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: New
1736 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1739 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1741 * include/std/system_error (__adl_only::make_error_code): Add
1743 (__adl_only::make_error_condition): Likewise.
1744 (error_code::error_code(ErrorCodeEnum)): Add using-declaration
1745 for deleted function.
1746 (error_condition::error_condition(ErrorConditionEnum)):
1748 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
1749 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
1751 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
1753 * include/std/barrier: Add missing runtime exception.
1755 2022-09-07 Patrick Palka <ppalka@redhat.com>
1757 * include/std/type_traits (is_reference): Make the primary
1758 template derive from false_type. Define two partial
1759 specializations that derive from true_type.
1761 2022-09-07 Patrick Palka <ppalka@redhat.com>
1763 * include/std/type_traits (__is_void_helper): Remove.
1764 (is_void): Make the primary template derive from false_type,
1765 and define four explicit specializations that derive from
1767 (__is_null_pointer_helper, is_null_pointer): Likewise.
1769 2022-09-07 Jason Merrill <jason@redhat.com>
1771 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
1772 call in simple success case.
1774 2022-09-06 Philipp Fent <fent@in.tum.de>
1776 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
1778 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1780 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1782 * include/std/type_traits (__success_type, __failure_type): Move
1783 definitions later in the file.
1785 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1787 * include/std/type_traits (is_trivial_v, is_trivially_copyable_v)
1788 (is_standard_layout_v, is_pod_v, is_literal_type_v): Use
1789 built-in instead of class template.
1790 (is_same_v): Add partial specialization for true case.
1792 2022-09-02 Patrick Palka <ppalka@redhat.com>
1794 * include/std/tuple (tuple::_UseOtherCtor): Use ::type when
1795 deriving from __and_, __or_ or __not_.
1796 * include/std/type_traits (negation): Likewise.
1797 (is_unsigned): Likewise.
1798 (__is_implicitly_default_constructible): Likewise.
1799 (is_trivially_destructible): Likewise.
1800 (__is_nt_invocable_impl): Likewise.
1802 2022-09-02 Jonathan Wakely <jwakely@redhat.com>
1804 * include/std/type_traits (is_constructible_v)
1805 (is_default_constructible_v, is_copy_constructible_v)
1806 (is_move_constructible_v): Define using __is_constructible.
1807 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v):
1808 Define using __is_assignable.
1809 (is_trivially_constructible_v)
1810 (is_trivially_default_constructible_v)
1811 (is_trivially_copy_constructible_v)
1812 (is_trivially_move_constructible_v): Define using
1813 __is_trivially_constructible.
1814 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1815 (is_trivially_move_assignable_v): Define using
1816 __is_trivially_assignable.
1817 (is_nothrow_constructible_v)
1818 (is_nothrow_default_constructible_v)
1819 (is_nothrow_copy_constructible_v)
1820 (is_nothrow_move_constructible_v): Define using
1821 __is_nothrow_constructible.
1822 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1823 (is_nothrow_move_assignable_v): Define using
1824 __is_nothrow_assignable.
1826 2022-09-02 Patrick Palka <ppalka@redhat.com>
1828 * include/std/type_traits (__or_, __and_, __not_): Redefine as a
1829 class template instead of as an alias template.
1830 * testsuite/20_util/logical_traits/requirements/short_circuit.cc:
1831 Add more tests for conjunction and disjunction. Add corresponding
1832 tests for __and_ and __or_.
1834 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1836 * include/std/ranges (adjacent_transform_view::_Iterator): Add
1837 typename keyword before dependent qualified-id.
1839 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1841 * include/std/type_traits (__is_referenceable): Remove.
1842 (__add_lvalue_reference_helper, __add_rvalue_reference_helper):
1843 Use __void_t instead of __is_referenceable.
1844 (__add_pointer_helper): Likewise.
1845 (add_pointer): Add partial specializations for reference types.
1847 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1849 * include/std/type_traits (__is_constructible_impl): Replace
1850 class template with alias template.
1851 (is_default_constructible, is_nothrow_constructible)
1852 (is_nothrow_constructible): Simplify base-specifier.
1853 (__is_copy_constructible_impl, __is_move_constructible_impl)
1854 (__is_nothrow_copy_constructible_impl)
1855 (__is_nothrow_move_constructible_impl): Remove class templates.
1856 (is_copy_constructible, is_move_constructible)
1857 (is_nothrow_constructible, is_nothrow_default_constructible)
1858 (is_nothrow_copy_constructible, is_nothrow_move_constructible):
1859 Adjust base-specifiers to use __is_constructible_impl.
1860 (__is_copy_assignable_impl, __is_move_assignable_impl)
1861 (__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl):
1862 Remove class templates.
1863 (__is_assignable_impl): New alias template.
1864 (is_assignable, is_copy_assignable, is_move_assignable):
1865 Adjust base-specifiers to use new alias template.
1866 (is_nothrow_copy_assignable, is_nothrow_move_assignable):
1867 Adjust base-specifiers to use existing alias template.
1868 (__is_trivially_constructible_impl): New alias template.
1869 (is_trivially_constructible, is_trivially_default_constructible)
1870 (is_trivially_copy_constructible)
1871 (is_trivially_move_constructible): Adjust base-specifiers to use
1873 (__is_trivially_assignable_impl): New alias template.
1874 (is_trivially_assignable, is_trivially_copy_assignable)
1875 (is_trivially_move_assignable): Adjust base-specifier to use
1877 (__add_lval_ref_t, __add_rval_ref_t): New alias templates.
1878 (add_lvalue_reference, add_rvalue_reference): Use new alias
1881 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1883 * include/std/type_traits (__decay_selector): Add partial
1884 specializations for array types. Only check for function types
1885 when not dealing with an array.
1886 (decay): Add partial specializations for reference types.
1888 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1890 * include/std/type_traits (is_lvalue_reference_v)
1891 (is_rvalue_reference_v, is_reference_v, is_const_v)
1892 (is_volatile_v): Define using partial specializations instead
1893 of instantiating class templates.
1895 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1897 * include/std/type_traits (is_enum_v, is_class_v, is_union_v)
1898 (is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v)
1899 (is_base_of_v, is_aggregate_v): Use built-in directly instead of
1900 instantiating class template.
1902 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1904 * include/std/type_traits (is_scoped_enum): Remove workaround.
1906 2022-09-01 Patrick Palka <ppalka@redhat.com>
1908 * include/std/ranges (__detail::__unarize): Define.
1909 (adjacent_view::_Iterator): Befriend adjacent_transform_view.
1910 (adjacent_transform_view): Define.
1911 (adjacent_transform_view::_Iterator): Define.
1912 (adjacent_transform_view::_Sentinel): Define.
1913 (views::__detail::__can_adjacent_transform_view): Define.
1914 (views::_AdjacentTransform): Define.
1915 (views::adjacent_transform): Define.
1916 (views::pairwise_transform): Define.
1917 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test.
1919 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1921 * include/std/type_traits (__is_array_known_bounds): Add partial
1922 specialization instead of using std::extent.
1923 (__is_array_unknown_bounds): Likewise.
1924 (extent): Add partial specializations to stop recursion after
1925 the result is found.
1926 (is_array_v): Add partial specializations instead of
1927 instantiating the class template.
1928 (rank_v, extent_v): Likewise.
1929 (is_bounded_array_v, is_unbounded_array_v): Likewise.
1930 (is_bounded_array, is_unbounded_array): Define in terms of the
1933 2022-08-31 Patrick Palka <ppalka@redhat.com>
1935 * include/bits/ranges_base.h (__advance_fn::operator()): Add
1936 parentheses in assert condition to avoid -Wparentheses warning.
1937 * include/std/ranges: (take_view::take_view): Uglify 'base'.
1938 (take_while_view::take_while_view): Likewise.
1939 (elements_view::elements_view): Likewise.
1940 (views::_Zip::operator()): Adjust position of [[nodiscard]] for
1941 compatibility with -fconcepts-ts.
1942 (zip_transform_view::_Sentinel): Uglify 'OtherConst'.
1943 (views::_ZipTransform::operator()): Adjust position of
1944 [[nodiscard]] for compatibilty with -fconcepts-ts.
1946 2022-08-31 Martin Liska <mliska@suse.cz>
1948 * configure: Regenerate.
1949 * crossconfig.m4: Remove deprecated ports.
1951 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1953 * include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11.
1954 * include/debug/string: Likewise.
1955 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string.
1956 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise.
1957 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise.
1958 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise.
1959 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise.
1960 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise..
1962 2022-08-31 Patrick Palka <ppalka@redhat.com>
1964 * include/std/ranges (adjacent_view): Define.
1965 (enable_borrowed_range<adjacent_view>): Define.
1966 (__detail::__repeated_tuple): Define.
1967 (adjacent_view::_Iterator): Define.
1968 (adjacent_view::_Sentinel): Define.
1969 (views::__detail::__can_adjacent_view): Define.
1970 (views::_Adjacent): Define.
1971 (views::adjacent): Define.
1972 (views::pairwise): Define.
1973 * testsuite/std/ranges/adaptors/adjacent/1.cc: New test.
1975 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1977 * include/debug/formatter.h
1978 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
1979 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
1980 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
1981 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
1982 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
1983 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
1984 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
1985 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
1986 * src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
1987 (_Error_formatter::_M_error()): Adapt.
1988 * src/libbacktrace/Makefile.am: Add backtrace.c.
1989 * src/libbacktrace/Makefile.in: Regenerate.
1990 * src/libbacktrace/backtrace-rename.h (backtrace_full): New.
1991 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test.
1992 * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
1993 * doc/xml/manual/using.xml: Likewise.
1995 2022-08-31 Patrick Palka <ppalka@redhat.com>
1997 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
1999 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
2001 * include/bits/refwrap.h (reference_wrapper::operator()): Add
2002 noexcept-specifier and use __invoke_result instead of result_of.
2003 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
2005 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
2007 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
2009 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
2010 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
2012 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
2014 * include/bits/basic_string.h (basic_string): Add nodiscard
2015 attribute to all relevant functions.
2016 * include/std/string_view (basic_string_view): Likewise.
2017 * testsuite/21_strings/basic_string/capacity/1.cc: Cast unused
2019 * testsuite/21_strings/basic_string/capacity/char/1.cc:
2021 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
2023 * testsuite/21_strings/basic_string/cons/char/self_move.cc:
2025 * testsuite/21_strings/basic_string/element_access/char/1.cc:
2027 * testsuite/21_strings/basic_string/element_access/char/21674.cc:
2029 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
2031 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
2033 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
2034 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
2035 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc:
2036 Add -Wno-unused-result to options.
2037 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
2039 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
2041 * testsuite/21_strings/basic_string/operators/char/1.cc: Cast
2042 unused results to void.
2043 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc:
2045 * testsuite/21_strings/basic_string_view/capacity/1.cc:
2047 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2049 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2051 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2053 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2055 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
2057 Add -Wno-unused-result to options.
2058 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
2060 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
2062 * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast
2063 unused results to void.
2064 * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc:
2066 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
2067 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
2070 2022-08-27 Patrick Palka <ppalka@redhat.com>
2072 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
2074 2022-08-26 Patrick Palka <ppalka@redhat.com>
2076 * include/std/ranges (zip_view::_Iterator::operator<): Remove
2078 (zip_view::_Iterator::operator>): Likewise.
2079 (zip_view::_Iterator::operator<=): Likewise.
2080 (zip_view::_Iterator::operator>=): Likewise.
2081 (zip_view::_Iterator::operator<=>): Remove three_way_comparable
2082 constraint as per LWG 3692.
2083 (zip_transform_view::_Iterator): Ditto as per LWG 3702.
2085 2022-08-26 Patrick Palka <ppalka@redhat.com>
2087 * include/std/ranges (zip_view::_Iterator): Befriend
2089 (__detail::__range_iter_cat): Define.
2090 (zip_transform_view): Define.
2091 (zip_transform_view::_Iterator): Define.
2092 (zip_transform_view::_Sentinel): Define.
2093 (views::__detail::__can_zip_transform_view): Define.
2094 (views::_ZipTransform): Define.
2095 (views::zip_transform): Define.
2096 * testsuite/std/ranges/zip_transform/1.cc: New test.
2098 2022-08-26 Patrick Palka <ppalka@redhat.com>
2100 * include/std/type_traits (enable_if, __enable_if_t): Define them
2102 (__detail::__first_t): Define.
2103 (__detail::__or_fn, __detail::__and_fn): Declare.
2104 (__or_, __and_): Redefine as alias templates in terms of __or_fn
2106 (__not_): Redefine as an alias template.
2107 (__detail::__disjunction_impl, __detail::__conjunction_impl):
2109 (conjuction, disjunction): Redefine in terms of __disjunction_impl
2110 and __conjunction_impl.
2112 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
2114 * include/std/system_error (error_code::_Check): New alias
2115 template for constructor SFINAE constraint.
2116 (error_code::error_code(ErrorCodeEnum)): Use it.
2117 (error_code::operator=(ErrorCodeEnum)): Remove.
2118 (error_condition::_Check): New alias template for constraint.
2119 (error_condition::error_condition(ErrorConditionEnum)): Use it.
2120 (error_condition::operator=(ErrorConditionEnum)): Remove.
2121 * testsuite/19_diagnostics/error_code/cons/1.cc: Check
2122 constructor taking user-defined error enum.
2123 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
2125 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
2127 * include/bits/basic_string.h (starts_with, ends_with, contains):
2128 Add nonnull attribute.
2129 * include/bits/cow_string.h (starts_with, ends_with, contains):
2131 * include/std/string_view (starts_with, ends_with, contains):
2133 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc
2134 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
2135 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
2136 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
2137 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
2138 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
2140 2022-08-25 Patrick Palka <ppalka@redhat.com>
2142 * include/std/ranges (lazy_split_view::_OuterIter::_M_current):
2143 Remove redundant comment.
2144 (lazy_split_view::_M_current): Likewise.
2145 (common_view::common_view): Remove commented out view-converting
2146 constructor as per LWG3405.
2147 (elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'.
2149 2022-08-24 Patrick Palka <ppalka@redhat.com>
2151 * include/bits/ranges_algo.h (__min_fn, min): Move to ...
2152 * include/bits/ranges_util.h: ... here, in order to avoid
2153 including all of ranges_algo.h from <ranges>.
2154 * include/std/ranges (__detail::__zip_is_common): Define for
2155 C++23 as per P2321R2.
2156 (__detail::__tuple_or_pair): Likewise.
2157 (__detail::__tuple_or_pair_t): Likewise.
2158 (__detail::__tuple_transform): Likewise.
2159 (__detail::__tuple_for_each): Likewise.
2160 (zip_view): Likewise.
2161 (enable_borrowed_range<zip_view>): Likewise.
2162 (__detail::__all_random_access): Likewise.
2163 (__detail::__all_bidirectional): Likewise.
2164 (__detail::__all_forward): Likewise.
2165 (__detail::__zip_view_iter_cat): Likewise.
2166 (zip_view::_Iterator): Likewise.
2167 (zip_view::_Sentinel): Likewise.
2168 * testsuite/std/ranges/zip/1.cc: New test.
2170 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2173 2022-08-24 Will Hawkins <whh8b@obs.cr>
2175 * include/bits/basic_string.h (operator+(const string&, const char*)):
2176 Remove naive implementation.
2177 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
2178 Add single-allocation implementation.
2180 2022-08-24 Patrick Palka <ppalka@redhat.com>
2182 * include/bits/stl_pair.h (pair::swap const): Add non-standard
2183 is_swappable_v constraints.
2184 * include/std/tuple (tuple::swap const): Likewise.
2185 * testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some
2186 asserts in C++23 mode.
2188 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2190 * include/bits/stl_algo.h (__stable_sort): Cast size to
2191 iterator's difference type.
2192 * testsuite/25_algorithms/stable_sort/4.cc: New test.
2194 2022-08-24 Will Hawkins <whh8b@obs.cr>
2196 * include/bits/basic_string.h (operator+(const string&, const char*)):
2197 Remove naive implementation.
2198 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
2199 Add single-allocation implementation.
2201 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2203 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
2204 non-reduced duration.
2206 2022-08-23 Patrick Palka <ppalka@redhat.com>
2208 * include/bits/stl_bvector.h (_Bit_reference::operator=): Define
2209 const overload for C++23 as per P2321R2.
2210 * include/bits/stl_pair.h (pair::swap): Likewise.
2211 (pair::pair): Define additional converting constructors for
2212 C++23 as per P2321R2.
2213 (pair::operator=): Define const overloads for C++23 as per
2215 (swap): Define overload taking const pair& for C++23 as per
2217 (basic_common_reference): Define partial specialization for
2218 pair for C++23 as per P2321R2.
2219 (common_type): Likewise.
2220 * include/bits/uses_allocator_args.h
2221 (uses_allocator_construction_args): Define additional pair
2222 overloads for C++23 as per P2321R2.
2223 * include/std/tuple (_Tuple_impl::_Tuple_impl): Define
2224 additional converting constructors for C++23 as per P2321R2.
2225 (_Tuple_impl::_M_assign): Define const overloads for C++23
2227 (_Tuple_impl::_M_swap): Likewise.
2228 (tuple::__constructible): Define as a convenient renaming of
2229 _TCC<true>::__constructible.
2230 (tuple::__convertible): As above but for _TCC<true>::__convertible.
2231 (tuple::tuple): Define additional converting constructors for
2232 C++23 as per P2321R2.
2233 (tuple::operator=): Define const overloads for C++23 as per
2235 (tuple::swap): Likewise.
2236 (basic_common_reference): Define partial specialization for
2237 tuple for C++23 as per P2321R2.
2238 (common_type): Likewise.
2239 * testsuite/20_util/pair/p2321r2.cc: New test.
2240 * testsuite/20_util/tuple/p2321r2.cc: New test.
2241 * testsuite/23_containers/vector/bool/element_access/1.cc: New test.
2243 2022-08-23 Patrick Palka <ppalka@redhat.com>
2245 * include/std/tuple (_TupleConstraints::__convertible): Define.
2246 (_TupleConstraints::__constructible): Define.
2247 (_TupleConstraints::__is_explicitly_constructible): Redefine this
2248 in terms of __convertible and __constructible.
2249 (_TupleConstraints::__is_implicitly_constructible): Likewise.
2251 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
2254 * include/std/variant (__do_visit): Handle is_void<R> for zero
2256 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
2258 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2261 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
2262 requirement for using std::stacktrace. Also adjust -frtti and
2263 -fexceptions to document non-default (i.e. negative) forms.
2264 * doc/html/*: Regenerate.
2266 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2269 * include/bits/std_thread.h (thread::_State_impl): Forward
2270 individual arguments to _Invoker constructor.
2271 (thread::_Invoker): Add constructor. Delete copies.
2272 * include/std/future (__future_base::_Deferred_state): Forward
2273 individual arguments to _Invoker constructor.
2274 (__future_base::_Async_state_impl): Likewise.
2275 * testsuite/30_threads/async/106695.cc: New test.
2276 * testsuite/30_threads/thread/106695.cc: New test.
2278 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2281 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
2282 Use built-ins to check for integer overflow in back-reference
2284 * testsuite/28_regex/basic_regex/106607.cc: New test.
2286 2022-08-17 Keef Aragon <keef.aragon@konscious.net>
2288 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
2290 2022-08-08 François Dumont <fdumont@gcc.gnu.org>
2292 * include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry.
2293 (_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator
2294 parameter is value-initialized.
2295 (_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise.
2296 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt
2298 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
2300 * src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version.
2301 (print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names.
2302 * testsuite/23_containers/deque/debug/iterator1_neg.cc: New test.
2303 * testsuite/23_containers/deque/debug/iterator2_neg.cc: New test.
2304 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test.
2305 * testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test.
2306 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test.
2308 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
2310 * include/experimental/scope (__cpp_lib_experimental_scope):
2312 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro.
2314 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
2316 * include/Makefile.am: Add new header.
2317 * include/Makefile.in: Regenerate.
2318 * include/experimental/scope: New file.
2319 * testsuite/experimental/scopeguard/uniqueres.cc: New test.
2320 * testsuite/experimental/scopeguard/exit.cc: New test.
2322 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2324 * include/std/string_view (basic_string_view(Range&&)): Add
2325 explicit as per P2499R0.
2326 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
2327 Adjust implicit conversions. Check implicit conversions fail.
2328 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
2331 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2333 * include/bits/fs_dir.h (directory_iterator): Add comparison
2334 with std::default_sentinel_t. Remove redundant operator!= for
2336 * (recursive_directory_iterator): Likewise.
2337 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
2338 (default_sentinel_t, default_sentinel): Define even if concepts
2340 * include/bits/regex.h (regex_iterator): Add comparison with
2341 std::default_sentinel_t. Remove redundant operator!= for C++20.
2342 (regex_token_iterator): Likewise.
2343 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
2344 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
2345 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
2347 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
2350 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2352 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
2353 (bad_expected_access::_M_val): Likewise.
2355 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2357 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
2359 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
2360 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
2362 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
2365 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2368 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
2369 Move increment of _M_ver here.
2370 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
2371 Use relaxed memory order and always notify all waiters.
2372 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
2373 Check value again after locking mutex.
2374 (__waiter_base::_M_notify): Remove increment of _M_ver.
2376 2022-08-04 Ulrich Drepper <drepper@gmail.com>
2378 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
2379 zero-based indeces just like std:get takes.
2381 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
2384 * include/bits/stl_iterator.h (common_iterator::operator->):
2385 Change return type to just auto.
2387 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
2389 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
2391 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2394 * include/bits/stl_iterator.h (common_iterator): Define
2395 destructor, copy constructor and move constructor as trivial
2396 when the underlying types allow.
2397 * testsuite/24_iterators/common_iterator/100823.cc: Check
2398 triviality of special members.
2400 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2403 * include/bits/stl_iterator.h (common_iterator): Define move
2404 constructor and move assignment operator.
2405 (common_iterator::_M_assign): New function implementing
2407 (common_iterator::operator=): Use _M_assign.
2408 (common_iterator::_S_valueless): New constant.
2409 * testsuite/24_iterators/common_iterator/100823.cc: New test.
2411 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2413 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
2414 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
2415 friend declaration. Do not move argument in copy constructor.
2416 * testsuite/24_iterators/common_iterator/1.cc: Check for
2417 noexcept constructibnle/assignable.
2419 2022-07-19 François Dumont <fdumont@gcc.gnu.org>
2421 * include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define
2422 using _GLIBCXX_DEBUG_PEDASSERT.
2423 [_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise.
2424 * include/debug/macros.h
2425 (__glibcxx_check_string, __glibcxx_check_string_len): Move...
2426 * include/debug/string
2427 (__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending
2428 on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined.
2429 Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of
2430 and find_last_not_of. Remove debug implementations having no debug assertion.
2431 * testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and
2432 __gnu_test::wtring which definition depends on _GLIBCXX_DEBUG.
2433 * testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case.
2434 * testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case.
2435 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
2436 Include <testsuite_string.h> and use __gnu_test::string.
2437 * testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise.
2438 * testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise.
2439 * testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise.
2440 * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise.
2441 * testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise.
2442 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
2443 Include <testsuite_string.h> and use __gnu_test::wstring.
2444 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise.
2445 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise.
2446 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise.
2447 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise.
2448 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise.
2450 2022-07-19 Jonathan Wakely <jwakely@redhat.com>
2452 * include/std/type_traits (__cpp_lib_reference_from_temporary)
2453 (reference_constructs_from_temporary)
2454 (reference_converts_from_temporary): Only define when the
2455 built-ins are available.
2457 2022-07-19 Marco Falke <falke.marco@gmail.com>
2459 * include/std/charconv (__from_chars_alnum_to_val): Replace
2460 implicit conversion from int to unsigned char with explicit
2463 2022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
2465 * configure: Regnerate.
2466 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
2468 2022-07-18 François Dumont <fdumont@gcc.gnu.org>
2470 * include/bits/stl_algo.h
2471 (__merge_adaptive): Adapt to merge only when buffer is large enough..
2472 (__merge_adaptive_resize): New, adapt merge when buffer is too small.
2473 (__inplace_merge): Adapt, use latter.
2474 (__stable_sort_adaptive): Adapt to sort only when buffer is large enough.
2475 (__stable_sort_adaptive_resize): New, adapt sort when buffer is too small.
2476 (__stable_sort): Adapt, use latter.
2478 2022-07-15 Marek Polacek <polacek@redhat.com>
2481 * include/std/type_traits (reference_constructs_from_temporary,
2482 reference_converts_from_temporary): New class templates.
2483 (reference_constructs_from_temporary_v,
2484 reference_converts_from_temporary_v): New variable templates.
2485 (__cpp_lib_reference_from_temporary): Define for C++23.
2486 * include/std/version (__cpp_lib_reference_from_temporary): Define for
2488 * testsuite/20_util/variable_templates_for_traits.cc: Test
2489 reference_constructs_from_temporary_v and
2490 reference_converts_from_temporary_v.
2491 * testsuite/20_util/reference_from_temporary/value.cc: New test.
2492 * testsuite/20_util/reference_from_temporary/value2.cc: New test.
2493 * testsuite/20_util/reference_from_temporary/version.cc: New test.
2495 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2498 * include/std/istream [C++17] (operator>>(istream&, char*)):
2499 Set eofbit if we stopped extracting at EOF.
2500 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
2502 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
2505 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2507 * include/bits/stl_iterator.h (__iter_to_alloc_t): Replace
2508 add_const_t with const-qualifier.
2509 * include/bits/utility.h (tuple_element<N, cv T>): Likewise for
2511 * include/std/type_traits (add_const, add_volatile): Replace
2512 typedef-declaration with using-declaration.
2513 (add_cv): Replace add_const and add_volatile with cv-qualifiers.
2514 * include/std/variant (variant_alternative<N, cv T>): Replace
2515 add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers.
2517 2022-07-09 François Dumont <fdumont@gcc.gnu.org>
2519 * include/std/string: Remove obsolete comment about char_traits.h including
2522 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
2525 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
2526 Remove workaround for front-end bug.
2528 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2530 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
2531 why we need the typecast.
2533 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2535 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert
2536 the getpid result to an integral type.
2538 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2541 * include/Makefile.am (largefile-config.h): Add
2542 stamp-${host_alias} prerequisite.
2543 * include/Makefile.in: Regenerate.
2545 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2547 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
2548 * include/experimental/bits/fs_ops.h: Likewise.
2549 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
2550 results of absolute and canonical.
2551 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
2552 discarded result to void.
2553 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
2554 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2555 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2556 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2558 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2559 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2561 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2563 * testsuite/experimental/filesystem/operations/canonical.cc:
2565 * testsuite/experimental/filesystem/operations/exists.cc:
2567 * testsuite/experimental/filesystem/operations/is_empty.cc:
2569 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2571 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2574 2022-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
2576 * configure: Regnerate.
2577 * configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS
2578 targets except bfin, lm32, mips, moxie, or1k, and v850.
2579 For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT,
2580 HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV,
2581 HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK,
2582 HAVE_TRUNCATE, and HAVE_USLEEP.
2583 * crossconfig.m4 (*-rtems*): Remove.
2585 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2587 * include/bits/utility.h: Fix comment typos.
2589 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2591 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
2593 (fs::temp_directory_path(error_code&)): Rearrange to more
2594 closely match the structure of the first overload.
2595 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2596 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2597 Check that exception contains the path.
2598 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2601 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2604 * src/filesystem/ops.cc (has_trailing_slash): New helper
2606 (fs::status): Strip trailing slashes.
2607 (fs::symlink_status): Likewise.
2608 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2609 Clean the environment before each test and use TMP instead of
2610 TMPDIR so the test passes on Windows.
2612 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2614 * src/filesystem/dir-common.h (_Dir_base::_At_path):
2615 Use char_type consistently for paths.
2617 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2619 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
2620 current() returning _At_path.
2621 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
2622 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
2623 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
2624 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
2625 current() returning _At_path.
2626 (_Dir::_Dir, _Dir::open_subdir): Adjust.
2628 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2630 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
2631 Always store pathname if we don't have openat or unlinkat,
2632 because the full path is needed to open sub-directories and
2635 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2637 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
2638 functions are available.
2640 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2642 * testsuite/20_util/to_chars/long_double.cc: Use cmath
2643 long double overloads for nexttoward and ldexp.
2645 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2647 * testsuite/experimental/simd/standard_abi_usable.cc: Require
2649 * testsuite/experimental/simd/standard_abi_usable_2.cc:
2652 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2654 * testsuite/26_numerics/complex/proj.cc: Skip test in the
2655 circumstances in which the implementation of proj is known to
2658 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2660 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
2661 _GLIBCXX_HAVE_OPENAT.
2663 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2665 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
2666 (test06): Don't create symlinks when NO_SYMLINKS is defined.
2668 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2670 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
2671 Add -Wl,--gc-sections for RTEMS targets.
2672 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
2674 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
2675 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2676 Execution-time xfail on RTEMS.
2677 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2680 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2682 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
2684 2022-06-27 Joel Brobecker <brobecker@adacore.com>
2685 Jonathan Wakely <jwakely@redhat.com>
2687 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
2688 Always include a counter in the filename returned.
2690 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2692 * include/bits/move_only_function.h (_Never_valueless_alt):
2693 Define partial specialization for std::move_only_function.
2695 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2697 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
2699 (__accepted_index, _Extra_visit_slot_needed): Replace class
2700 templates with variable templates.
2702 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2704 * include/bits/fs_path.h (__is_path_iter_src): Replace class
2705 template with variable template.
2707 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2709 * include/bits/chrono.h (is_clock_v): Define to false.
2710 (is_clock_v<T>): Define partial specialization for true cases.
2711 (is_clock): Define in terms of is_clock_v.
2713 2022-06-24 Xi Ruoyao <xry111@xry111.site>
2715 * scripts/extract_symvers.in: Use grep -E instead of egrep.
2716 * scripts/run_doxygen: Likewise.
2718 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2720 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2722 * configure, config.h.in: Rebuilt.
2723 * src/filesystem/dir-common.h (openat): Use ::openat if
2724 _GLIBCXX_HAVE_OPENAT.
2725 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
2726 _GLIBCXX_HAVE_OPENAT.
2728 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2730 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
2732 * testsuite/experimental/filesystem/operations/rename.cc:
2735 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2737 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
2739 * testsuite/lib/libstdc++.exp
2740 (check_v3_target_fs_last_write_time): New.
2741 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
2743 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2744 Skip the test if the features are unavailable.
2745 * testsuite/experimental/filesystem/operations/last_write_time.cc:
2748 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2750 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
2752 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
2753 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
2755 * testsuite/27_io/filesystem/operations/space.cc: Require
2757 * testsuite/experimental/filesystem/operations/space.cc:
2760 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2762 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
2763 mingw and when create_symlink is a dummy.
2764 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2766 (test01, test02): Don't create symlinks when NO_SYMLINKS is
2768 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
2770 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2772 * testsuite/27_io/filesystem/operations/create_directories.cc
2774 * testsuite/27_io/filesystem/operations/create_directory.cc
2776 * testsuite/27_io/filesystem/operations/permissions.cc
2777 (test03, test04): Likewise.
2778 * testsuite/27_io/filesystem/operations/remove.cc (test01):
2780 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
2782 * testsuite/27_io/filesystem/operations/rename.cc
2783 (test_symlinks): Likewise.
2784 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
2786 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
2788 * testsuite/experimental/filesystem/operations/copy.cc
2790 * testsuite/experimental/filesystem/operations/create_directories.cc
2792 * testsuite/experimental/filesystem/operations/create_directory.cc
2794 * testsuite/experimental/filesystem/operations/permissions.cc
2795 (test03, test04): Likewise.
2796 * testsuite/experimental/filesystem/operations/remove.cc
2798 * testsuite/experimental/filesystem/operations/remove_all.cc
2800 * testsuite/experimental/filesystem/operations/rename.cc
2802 * testsuite/lib/libstdc++.exp
2803 (v3_check_preprocessor_condition): Add optional inc parameter.
2804 Add it to the test program after include bits/c++config.h.
2805 (check_v3_target_fs_symlinks): New.
2806 * testsuite/lib/dg-options.exp
2807 (dg-require-target-fs-symlinks): New.
2808 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2809 Replace mingw xfail with require target-fs-symlinks.
2810 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2813 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2815 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2816 Select TO after creating FROM.
2817 (test03, test04): Likewise.
2818 * testsuite/experimental/filesystem/operations/copy.cc
2819 (test02, test03, test04): Likewise.
2821 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2823 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
2824 explicit cancellation point in case sleep_for lacks one.
2826 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2828 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
2829 -lbsd for RTEMS targets.
2831 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2833 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2834 rmdir to remove directories.
2835 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2838 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2840 * testsuite/26_numerics/random/random_device/entropy.cc: Use
2841 numeric_limits<unsigned>::digits.
2843 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2845 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
2846 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
2848 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2850 * testsuite/30_threads/this_thread/60421.cc (test02): Call
2853 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2855 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
2857 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2859 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
2860 global struct bitset.
2861 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
2862 * testsuite/23_containers/bitset/input/1.cc: Likewise.
2863 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
2864 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
2866 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
2868 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
2871 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2874 * include/bits/basic_string.h (_M_use_local_data): Initialize
2875 the entire SSO buffer.
2876 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
2878 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2881 * include/ext/vstring.h (operator==): Always check lengths
2884 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
2887 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
2888 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
2889 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
2890 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
2891 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2892 const allocator_type&, true_type)): Use this.insert range.
2893 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2894 const allocator_type&, false_type)): Use _M_insert.
2895 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
2897 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
2898 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
2900 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2903 * include/bits/basic_string.h (operator==): Always compare
2904 lengths before checking string contents.
2905 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
2908 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2911 * include/bits/basic_string.h (compare): Define inline.
2912 * include/bits/basic_string.tcc (compare): Remove out-of-line
2914 * include/bits/cow_string.h (compare): Define inline.
2915 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
2918 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2920 * include/bits/new_allocator.h: Fix indentation.
2921 * include/ext/malloc_allocator.h: Likewise.
2923 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2926 * include/bits/allocator.h (allocator::allocate): Check for
2927 overflow in constexpr allocation.
2928 * testsuite/20_util/allocator/105975.cc: New test.
2930 2022-06-13 Mark Mentovai <mark@mentovai.com>
2932 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
2933 Rename to __nul_terminated to avoid colliding with a macro in
2936 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
2938 * include/std/atomic (__atomic_val_t): Use __type_identity_t
2939 instead of atomic<T>::value_type, as per LWG 3220.
2940 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
2942 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2945 * include/experimental/numeric (experimental::gcd): Simplify
2946 assertions. Use __abs_r instead of __absu.
2947 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
2948 overflow can be detected.
2949 * include/std/numeric (__detail::__absu): Rename to __abs_r and
2950 change to allow signed result type, so overflow can be detected.
2951 (__detail::__lcm): Remove.
2952 (gcd): Simplify assertions. Use __abs_r instead of __absu.
2953 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
2955 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
2956 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2957 * testsuite/26_numerics/gcd/105844.cc: New test.
2958 * testsuite/26_numerics/lcm/105844.cc: New test.
2960 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2963 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
2964 prevent destruction during termination.
2965 (__eh_globals_init::_M_init): Replace with static member _S_init.
2966 (__cxxabiv1::__cxa_get_globals_fast): Update.
2967 (__cxxabiv1::__cxa_get_globals): Likewise.
2969 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2971 * include/bits/basic_string.h (__hash_str_base): New class
2973 (hash<basic_string<C, char_traits<C>, A>>): Define partial
2974 specialization for each of the standard character types.
2975 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
2976 (hash<u32string>): Remove explicit specializations.
2977 * include/std/string (__hash_string_base): Remove class
2979 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
2980 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
2982 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
2984 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
2987 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
2990 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
2991 always_inline attribute.
2993 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2996 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
2997 Limit ga_sizes array to values that fit in size_t.
2998 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
2999 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
3000 (sfmt216091_64): Do not declare.
3002 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3004 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
3005 lookup for ios_errc and future_errc check versioned namespace.
3006 (StdAtomicPrinter): Strip versioned namespace from typename.
3008 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3010 * src/c++11/Makefile.am: Add new source file.
3011 * src/c++11/Makefile.in: Regenerate.
3012 * src/c++11/cxx11-ios_failure.cc (iostream_category):
3014 * src/c++11/ios_errcat.cc: New file.
3015 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
3016 std::iostream_category() is defined and used for std::io_errc.
3018 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3020 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
3021 Add 'constexpr' as per LWG 3643.
3022 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
3024 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3026 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
3028 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
3030 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
3031 <bits/functional_hash.h>.
3032 * include/bits/unordered_map.h: Include required headers.
3033 * include/bits/unordered_set.h: Likewise.
3034 * include/std/unordered_map: Do not include headers for indirect
3036 * include/std/unordered_set: Likewise.
3038 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3040 * include/bits/ranges_algobase.h: Do not include
3041 <bits/stl_iterator_base_types.h>.
3042 * include/std/string: Likewise.
3043 * include/std/variant: Likewise.
3045 2022-05-26 Nathan Sidwell <nathan@acm.org>
3047 * include/bits/hashtable.h: Include required headers.
3048 * include/bits/hashtable_policy.h: Likewise.
3049 * include/bits/stl_heap.h: Likewise.
3050 * include/bits/stl_iterator_base_funcs.h: Likewise.
3052 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
3054 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
3055 Strip typename from version namespace.
3057 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3059 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
3060 versioned namespace from the template argument too.
3062 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3064 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
3066 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
3068 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
3070 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
3072 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
3074 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
3076 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
3078 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
3080 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
3082 * testsuite/21_strings/basic_string/operations/contains/char.cc:
3084 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
3086 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
3088 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
3090 * testsuite/21_strings/basic_string/operations/data/char.cc:
3092 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
3094 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
3096 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
3098 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
3100 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
3102 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
3104 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
3106 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
3108 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
3110 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
3112 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
3114 * testsuite/21_strings/basic_string/operations/substr/char.cc:
3116 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
3118 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
3120 * testsuite/21_strings/basic_string/range_access/char/1.cc:
3122 * testsuite/21_strings/basic_string/range_access/char.cc:
3124 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
3126 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
3128 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3130 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
3132 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3134 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
3136 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3138 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
3140 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3142 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
3144 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3146 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
3148 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3150 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
3152 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
3154 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
3156 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
3158 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
3160 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3162 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
3164 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3166 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
3168 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
3170 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
3172 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
3174 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
3176 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
3178 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
3180 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
3182 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
3184 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3186 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
3188 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3190 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
3192 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3194 * testsuite/21_strings/basic_string_view/range_access/char.cc:
3196 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3198 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
3200 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
3202 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
3204 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
3206 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
3208 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
3210 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
3212 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
3214 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
3216 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
3218 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
3220 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
3222 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
3224 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3226 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
3228 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3230 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
3232 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3234 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
3236 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3238 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
3240 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3242 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
3244 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3246 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
3248 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
3250 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
3252 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
3254 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
3256 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
3258 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
3260 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
3262 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
3264 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
3266 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
3268 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
3270 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
3273 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3275 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
3277 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
3278 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
3280 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
3281 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
3283 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
3285 2022-05-25 Jason Merrill <jason@redhat.com>
3287 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
3290 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
3292 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
3293 Run fewer iterations for simulator targets.
3294 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
3296 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
3298 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
3300 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
3302 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
3304 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
3307 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3309 * include/bits/char_traits.h: Only include <cstdint> when
3311 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
3313 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
3314 * src/c++17/floating_to_chars.cc: Likewise.
3315 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
3316 * testsuite/20_util/assume_aligned/3.cc: Likewise.
3317 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
3319 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3321 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
3323 * include/bits/cow_string.h: Include it here.
3325 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3327 * include/Makefile.am: Add new header.
3328 * include/Makefile.in: Regenerate.
3329 * include/bits/memory_resource.h: New file.
3330 * include/std/deque: Include <bits/memory_resource.h>.
3331 * include/std/forward_list: Likewise.
3332 * include/std/list: Likewise.
3333 * include/std/map: Likewise.
3334 * include/std/memory_resource (pmr::memory_resource): Move to
3335 new <bits/memory_resource.h> header.
3336 (pmr::polymorphic_allocator): Likewise.
3337 * include/std/regex: Likewise.
3338 * include/std/set: Likewise.
3339 * include/std/stacktrace: Likewise.
3340 * include/std/string: Likewise.
3341 * include/std/unordered_map: Likewise.
3342 * include/std/unordered_set: Likewise.
3343 * include/std/vector: Likewise.
3344 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3345 Remove <memory_resource> header and check construction.
3346 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3347 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3349 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3350 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3351 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3352 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3353 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3354 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3356 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3358 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3360 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3362 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3363 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3365 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3367 * include/std/memory_resource (polymorphic_allocator): Add
3368 non-template equality operator, as proposed for LWG 3683.
3369 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
3371 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3373 * src/c++17/memory_resource.cc (set_default_resource): Use
3374 memory_order_acq_rel.
3375 (get_default_resource): Use memory_order_acquire.
3377 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3379 * include/std/memory_resource (new_delete_resource): Add
3380 nodiscard, returns_nonnull and const attributes.
3381 (null_memory_resource): Likewise.
3382 (set_default_resource, get_default_resource): Add returns_nonnull
3384 (memory_resource::is_equal): Add nodiscard attribute.
3385 (operator==, operator!=): Likewise.
3387 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3389 * include/bits/ios_base.h (io_category): Add const and nodiscard
3391 (make_error_code, make_error_condition): Add nodiscard.
3392 * include/std/future (future_category): Add const and nodiscard.
3393 (make_error_code, make_error_condition): Add nodiscard.
3394 * include/std/system_error (generic_category system_category):
3395 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
3396 (error_code::value, error_code::category, error_code::operator bool)
3397 (error_condition::value, error_condition::category)
3398 (error_condition::operator bool, make_error_code)
3399 (make_error_condition, operator==, operator!=, operator<=>): Add
3402 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3404 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
3406 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
3408 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3410 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
3411 Do not build the compatibility*-c++0x.cc objects.
3412 * src/Makefile.in: Regenerate.
3413 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
3414 Refuse to build for the versioned namespace.
3415 * src/c++11/compatibility-chrono.cc: Likewise.
3416 * src/c++11/compatibility-condvar.cc: Likewise.
3417 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
3418 * src/c++11/chrono.cc (system_clock, steady_clock):
3419 Use macros to define in inline namespace _V2, matching the
3420 declarations in <system_error>.
3421 * src/c++11/system_error.cc (system_category, generic_category):
3424 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3426 * doc/xml/manual/prerequisites.xml: Fix attributes for external
3428 * doc/html/manual/setup.html: Regenerate.
3430 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3432 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
3433 * doc/html/*: Regenerate.
3435 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3437 * doc/xml/manual/intro.xml: Include new chapter.
3438 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
3439 * doc/xml/manual/status_cxx2023.xml: New file.
3440 * doc/html/*: Regenerate.
3442 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3444 * doc/html/manual/status.html: Regenerate.
3445 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
3446 C++20 bit operations.
3448 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3450 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
3451 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
3452 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
3454 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3456 * include/std/future (launch): Make operators noexcept.
3458 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3460 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
3461 with "__unspecified__".
3462 * libsupc++/exception_ptr.h: Improve doxygen docs.
3463 (__exception_ptr::swap): Also declare in namespace std.
3465 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3467 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
3468 if-constexpr instead of tag dispatching.
3469 (rethrow_if_nested) [C++17]: Likewise.
3470 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
3472 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3475 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3477 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3478 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
3479 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
3481 * include/bits/unique_lock.h (unique_lock): Likewise.
3482 * include/std/mutex (recursive_mutex, timed_mutex)
3483 (recursive_timed_mutex, scoped_lock): Likewise.
3485 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3487 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3488 _GLIBCXX23_CONSTEXPR macro.
3489 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
3490 * include/bits/unique_ptr.h (default_delete): Use @since and
3492 * include/std/scoped_allocator: Remove @ingroup from @file
3495 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3497 * include/bits/std_thread.h (thread, thread::id): Improve
3499 * include/std/future: Likewise.
3500 * include/std/thread (jthread): Likewise.
3502 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3504 * include/bits/ostream_insert.h: Mark helper functions as
3505 undocumented by Doxygen.
3506 * include/bits/stl_algo.h: Use markdown for formatting and mark
3507 helper functions as undocumented.
3508 * include/bits/stl_numeric.h: Likewise.
3509 * include/bits/stl_pair.h (pair): Add @headerfile.
3511 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3513 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
3514 so that Doxygen shows the right base-class for std::allocator.
3515 * include/bits/alloc_traits.h: Improve doxygen docs.
3516 * include/bits/allocator.h: Likewise.
3517 * include/bits/new_allocator.h: Likewise.
3518 * include/ext/new_allocator.h: Likewise.
3520 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3522 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
3523 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
3524 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
3525 * include/bits/regex.h: Improve doxygen docs.
3526 * include/bits/regex_constants.h: Likewise.
3527 * include/bits/regex_error.h: Likewise.
3529 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3531 * include/std/atomic: Suppress doxygen docs for
3532 implementation details.
3533 * include/bits/atomic_base.h: Likewise.
3534 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
3535 so that std::atomic is not added to the pointer abstractions
3538 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3540 * include/std/system_error: Improve doxygen comments.
3542 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3544 * include/bits/ptr_traits.h: Add some doxygen comments.
3546 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3548 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
3550 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
3551 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
3552 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
3554 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
3555 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
3556 * include/std/condition_variable (_V2::condition_variable_any):
3558 * include/std/system_error (_V2::error_category): Likewise.
3560 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3562 * include/bits/mofunc_impl.h: Fix doxygen command.
3564 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3566 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
3567 (CLASS_DIAGRAMS): Remove obsolete option.
3569 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
3571 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
3572 * config/locale/gnu/numeric_members.cc: Likewise.
3573 * include/bits/locale_facets_nonio.h: Likewise.
3574 * libsupc++/typeinfo: Likewise.
3576 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3579 * include/std/iosfwd: Add declarations for <spanstream> class
3580 templates and typedefs.
3581 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
3582 (basic_ospanstream, basic_spanstream): Remove default template
3584 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
3586 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
3589 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3592 * include/std/iosfwd: Add declarations for <synstream> class
3593 templates and typedefs.
3594 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
3595 Remove default template arguments.
3596 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
3597 * testsuite/27_io/headers/iosfwd/types.cc: New test.
3599 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3601 * include/bits/random.tcc (operator==): Only check
3602 normal_distribution::_M_saved_available once.
3603 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
3604 Check equality after state changes.
3605 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3608 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3611 * include/bits/random.tcc
3612 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
3613 Update state when __state_avail is false.
3614 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
3615 Check that deserialized object equals serialized one.
3617 2022-05-06 Alexandre Oliva <oliva@adacore.com>
3619 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
3620 for double, long long, and 64-bit long intrinsic types.
3621 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
3622 preexisting long double diagnostic, adjust no-VSX double
3623 diagnostic to cover 64-bit long double as well.
3625 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3628 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
3629 Use a trailing char array as storage for dirent::d_name.
3631 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3633 * include/std/stacktrace: Do not include <cxxabi.h>.
3634 (__cxa_demangle): Declare.
3636 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3639 * include/bits/specfun.h: Use visibility attribute on namespace,
3640 instead of pragma push/pop.
3641 * libsupc++/compare: Likewise.
3642 * libsupc++/exception: Likewise.
3643 * libsupc++/exception.h: Likewise.
3644 * libsupc++/exception_ptr.h: Likewise.
3645 * libsupc++/initializer_list: Likewise.
3646 * libsupc++/nested_exception.h: Likewise.
3648 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3650 * doc/xml/manual/test.xml: Remove requirement for copyright and
3651 GPL notice in tests.
3652 * doc/html/manual/test.html: Regenerate.
3654 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
3656 * include/experimental/memory_resource [!__cpp_rtti]
3657 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
3658 when RTTI is disabled.
3659 * testsuite/17_intro/freestanding.cc: Require RTTI.
3660 * testsuite/18_support/exception/38732.cc: Likewise.
3661 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
3663 * testsuite/18_support/nested_exception/68139.cc: Likewise.
3664 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
3666 * testsuite/18_support/type_info/103240.cc: Likewise.
3667 * testsuite/18_support/type_info/fundamental.cc: Likewise.
3668 * testsuite/18_support/type_info/hash_code.cc: Likewise.
3669 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3670 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3671 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3672 * testsuite/20_util/any/observers/type.cc: Likewise.
3673 * testsuite/20_util/function/1.cc: Likewise.
3674 * testsuite/20_util/function/2.cc: Likewise.
3675 * testsuite/20_util/function/3.cc: Likewise.
3676 * testsuite/20_util/function/4.cc: Likewise.
3677 * testsuite/20_util/function/5.cc: Likewise.
3678 * testsuite/20_util/function/6.cc: Likewise.
3679 * testsuite/20_util/function/7.cc: Likewise.
3680 * testsuite/20_util/function/8.cc: Likewise.
3681 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3682 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
3683 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
3684 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
3686 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
3687 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
3688 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
3690 * testsuite/20_util/typeindex/hash.cc: Likewise.
3691 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
3692 * testsuite/20_util/typeindex/name.cc: Likewise.
3693 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
3694 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
3696 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
3698 * testsuite/22_locale/locale/13630.cc: Check type without using
3700 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
3702 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
3703 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
3704 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
3705 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
3706 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3707 * testsuite/experimental/any/observers/type.cc: Likewise.
3708 * testsuite/experimental/memory_resource/resource_adaptor.cc:
3710 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
3712 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
3713 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
3714 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
3715 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
3716 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
3717 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
3718 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
3719 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
3720 * testsuite/tr2/bases/value.cc: Likewise.
3721 * testsuite/tr2/direct_bases/value.cc: Likewise.
3722 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
3725 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3728 * include/std/array (array::size(), array::max_size())
3729 (array::empty(), array::data()): Add always_inline attribute.
3731 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3734 * include/std/array (__array_traits::_S_ref): Remove.
3735 (__array_traits::_S_ptr): Remove.
3736 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
3737 to provide an array-like API.
3738 (array::_AT_Type): Remove public typeef.
3739 (array::operator[], array::at, array::front, array::back): Use
3740 index operator to access _M_elems instead of _S_ref.
3741 (array::data): Use implicit conversion from _M_elems to pointer.
3742 (swap(array&, array&)): Use __enable_if_t helper.
3743 (get<I>): Use index operator to access _M_elems.
3744 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3745 Adjust dg-error line numbers.
3747 2022-05-03 Alexandre Oliva <oliva@adacore.com>
3750 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
3751 with conditional for floating-point overloads of from_char.
3753 2022-05-02 Patrick Palka <ppalka@redhat.com>
3756 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
3757 two delimeters for the exponent part in the form of a possibly
3758 NULL string of length two. Don't use std::tolower.
3759 (pattern): Adjust calls to find_end_of_float accordingly.
3761 2022-05-02 Patrick Palka <ppalka@redhat.com>
3764 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
3765 Also accept 'P' as the start of the exponent.
3766 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
3768 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
3771 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
3773 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
3774 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
3775 symbols as aliases for corresponding symbols without abi-tag.
3777 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3779 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3780 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3782 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3783 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3786 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
3789 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
3790 directory_iterator constructor, and check on each iteration.
3791 * src/filesystem/ops.cc (fs::copy): Likewise.
3792 * testsuite/27_io/filesystem/operations/copy.cc: Check for
3793 errors during recursion.
3794 * testsuite/experimental/filesystem/operations/copy.cc:
3797 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
3799 * config/abi/pre/gnu-versioned-namespace.ver: Remove
3800 std::random_device::* pattern.
3802 2022-04-27 Jakub Jelinek <jakub@redhat.com>
3804 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3805 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3806 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3807 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3808 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3809 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3810 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3811 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3813 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
3815 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
3816 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
3817 (StdAtomicPrinter): New printer.
3818 (build_libstdcxx_dictionary): Register new printer.
3819 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
3820 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
3823 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3825 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
3826 constructor for constant initialization from nullptr_t.
3827 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3828 Check for new constructor.
3830 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3832 * include/bits/fs_path.h (hash<filesystem::path>): Define.
3833 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3834 Check std::hash specialization.
3836 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3838 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
3840 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3842 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
3843 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
3845 * include/std/version (__cpp_lib_constexpr_memory): Define new
3847 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
3848 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
3849 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
3850 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
3851 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
3852 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
3855 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3858 * include/std/future (packaged_task): Add deduction guides.
3859 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
3861 2022-04-25 Philipp Fent <fent@in.tum.de>
3863 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
3865 (StdInitializerListPrinter): Define new printer.
3866 (build_libstdcxx_dictionary): Register new printer.
3867 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
3870 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
3873 * include/bits/atomic_base.h (atomic_flag::notify_one,
3874 notify_all): Remove const qualification.
3875 (__atomic_base::notify_one, notify_all): Likewise.
3876 * include/std/atomic (atomic<bool>::notify_one, notify_all):
3878 (atomic::notify_one, notify_all): Likewise.
3879 (atomic<T*>::notify_one, notify_all): Likewise.
3880 (atomic_notify_one, atomic_notify_all): Likewise.
3881 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
3882 to account for change in notify_one/notify_all signature.
3884 2022-04-21 Patrick Palka <ppalka@redhat.com>
3886 * include/std/charconv (__from_chars_alnum_to_val_table):
3887 Simplify initialization of __lower/__upper_letters.
3888 (__from_chars_alnum_to_val): Default the template parameter to
3890 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
3891 assume the uppercase and lowercase letters are contiguous.
3892 (__floating_from_chars_hex): Likewise.
3894 2022-04-21 Patrick Palka <ppalka@redhat.com>
3898 * include/std/charconv (__from_chars_alnum_to_val): Make
3899 initializer for __table dependent in an artificial way.
3901 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
3904 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
3906 * testsuite/20_util/from_chars/pr105324.cc: New test.
3908 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3910 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
3911 Check correct feature test macro.
3913 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3916 * doc/xml/manual/prerequisites.xml: Document libiconv
3918 * doc/html/manual/setup.html: Regenerate.
3919 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
3920 * src/Makefile.in: Regenerate.
3922 2022-04-19 Patrick Palka <ppalka@redhat.com>
3924 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
3926 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
3927 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
3929 (__floating_to_chars_precision): Likewise.
3931 2022-04-19 Philipp Fent <fent@in.tum.de>
3933 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
3934 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
3936 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
3938 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
3939 * configure: Regenerate.
3941 2022-04-18 Patrick Palka <ppalka@redhat.com>
3943 * include/std/charconv (__from_chars_pow2_base): Manually
3944 unroll the first iteration of the main loop and simplify
3947 2022-04-15 Patrick Palka <ppalka@redhat.com>
3950 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
3951 __first twice at the start.
3952 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
3954 2022-04-15 Patrick Palka <ppalka@redhat.com>
3956 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
3957 (__from_chars_alnum_to_val): Define.
3958 (__from_chars_binary): Rename to ...
3959 (__from_chars_pow2_base): ... this. Generalize to handle any
3960 power-of-two base using __from_chars_alnum_to_val.
3961 (__from_chars_digit): Optimize digit recognition to a single
3962 test instead of two tests. Use [[__unlikely___]] attribute.
3963 (__from_chars_alpha_to_num): Remove.
3964 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
3965 nested loop for the overflow case. Maintain a lower bound
3966 on the number of available bits in the result and use it to
3967 omit the overflow check.
3968 (from_chars): Adjust appropriately.
3969 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
3970 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
3971 to recognize a hex digit instead.
3973 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
3975 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
3977 * configure: Regenerate.
3979 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3981 * doc/xml/manual/intro.xml: Fix comment.
3983 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3985 * include/precompiled/stdc++.h: Include <stacktrace> and
3986 <stdatomic.h> for C++23.
3988 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3991 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
3993 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
3995 * include/std/optional (__cpp_lib_optional): Define new value
3997 (__cpp_lib_monadic_optional): Remove.
3998 * include/std/version (__cpp_lib_constexpr_vector): Define.
3999 (__cpp_lib_stdatomic_h): Define.
4000 (__cpp_lib_optional): Define new value for C++23.
4001 (__cpp_lib_monadic_optional): Remove.
4002 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
4003 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
4004 * testsuite/20_util/optional/version.cc: Likewise.
4005 * testsuite/23_containers/vector/cons/constexpr.cc: Check
4007 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
4009 * testsuite/20_util/optional/monadic/version.cc: Removed.
4010 * testsuite/23_containers/vector/requirements/version.cc: New test.
4011 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
4013 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4015 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
4016 * config.h.in: Regenerate.
4017 * configure: Regenerate.
4019 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4021 * include/std/stacktrace (basic_stacktrace::current): Reallocate
4022 a smaller container if the unused capacity is larger than the
4025 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4027 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
4028 or _Impl::_M_assign to initialize elements in allocated storage.
4029 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
4031 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
4032 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
4034 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
4035 new element using allocator.
4036 (basic_stacktrace::_Impl::_M_clone): New function.
4037 (basic_stacktrace::_Impl::_M_xclone): New function.
4038 (basic_stacktrace::_Impl::_M_assign): New function.
4040 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4042 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
4043 Use nothrow new instead of try block for std::allocator.
4044 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
4047 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4049 * include/std/stacktrace (basic_stacktrace::current): Replace
4050 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
4051 Check return value of backtrace_simple when max depth given.
4052 (basic_stacktrace::_M_reserve): Remove.
4053 (basic_stacktrace::_S_curr_cb): Remove.
4054 (basic_stacktrace::_M_prepare(size_type)): New function to
4055 reserve initial capacity and return callback.
4056 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
4057 and remove redundant zeroing of _M_frames and _M_capacity.
4058 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
4059 attribute. Assign _Impl instead of swapping.
4060 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
4062 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4064 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
4065 Change [[unlikely]] attribute to [[likely]].
4067 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4070 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
4071 Fix allocator usage in constructors.
4072 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
4073 try to reallocate using const allocator.
4074 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
4075 if-constexpr with non-constant condition. Do not allocate new
4076 storage if allocator propagates. Do not set _M_size if
4078 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
4079 assertion that non-propagating allocators are equal.
4080 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
4082 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4084 * include/std/stacktrace (basic_stacktrace::current): Duplicate
4085 implementation into each overload. Add noinline attribute and
4087 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
4088 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
4089 (basic_stacktrace::_Impl::_S_max_size): New function defining
4090 maximum size in terms of allocator and size_type.
4091 (basic_stacktrace::_Impl::_M_allocate): Check against
4093 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
4094 for non-constexpr checks. Check line number is correct.
4096 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4098 * testsuite/20_util/stacktrace/entry.cc: Moved to...
4099 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
4100 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
4101 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
4102 * testsuite/20_util/stacktrace/version.cc: Moved to...
4103 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
4105 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4107 * include/experimental/bits/fs_path.h (path): Define special
4108 members after path::_Cmpt is complete.
4110 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
4113 * include/std/expected
4114 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
4115 * testsuite/20_util/expected/cons.cc: Check constructor.
4117 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
4120 * include/std/expected (expected<void, E>::swap): Set
4121 _M_has_value to false for objects that previously had a value.
4122 * testsuite/20_util/expected/swap.cc: Fix test to check void
4125 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
4128 * include/std/expected (bad_expected_access): Move constructor
4130 * testsuite/20_util/expected/bad.cc: New test.
4132 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
4134 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
4137 2022-04-02 Jakub Jelinek <jakub@redhat.com>
4140 * include/std/source_location (std::source_location::__impl): Move
4141 definition before using __builtin_ret_type.
4143 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
4145 * include/std/utility (unreachable): Define for C++23.
4146 * include/std/version (__cpp_lib_unreachable): Define.
4147 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
4148 arguments. Handle only the function being given.
4149 * testsuite/20_util/unreachable/1.cc: New test.
4150 * testsuite/20_util/unreachable/version.cc: New test.
4152 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
4154 * include/experimental/bits/fs_fwd.h (copy_file): Remove
4155 incorrect noexcept from declaration.
4156 * include/experimental/bits/fs_path.h (path::begin, path::end):
4157 Add noexcept to declarations, to match definitions.
4159 2022-04-01 Timm Bäder <tbaeder@redhat.com>
4161 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
4162 * include/experimental/bits/fs_ops.h: Likewise.
4164 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
4166 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
4168 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4170 * testsuite/18_support/exception/38732.cc: Disable for C++23.
4171 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
4172 * testsuite/18_support/unexpected_handler.cc: Likewise.
4174 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4176 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
4177 static data members for _Fp_fmt enumerators.
4179 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4181 * include/std/version (__cpp_lib_variant): Fix conditions to
4183 (__cpp_lib_expected): Fix condition to match <expected>.
4185 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
4187 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
4188 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
4189 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
4190 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
4191 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
4192 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
4193 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
4194 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
4196 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
4198 * doc/doxygen/user.cfg.in: Add new header.
4199 * include/Makefile.am: Likewise.
4200 * include/Makefile.in: Regenerate.
4201 * include/precompiled/stdc++.h: Add new header.
4202 * include/std/version (__cpp_lib_expected): Define.
4203 * libsupc++/exception [__cplusplus > 202002] (unexpected)
4204 (unexpected_handler, set_unexpected): Do not declare for C++23.
4205 * include/std/expected: New file.
4206 * testsuite/20_util/expected/assign.cc: New test.
4207 * testsuite/20_util/expected/cons.cc: New test.
4208 * testsuite/20_util/expected/illformed_neg.cc: New test.
4209 * testsuite/20_util/expected/observers.cc: New test.
4210 * testsuite/20_util/expected/requirements.cc: New test.
4211 * testsuite/20_util/expected/swap.cc: New test.
4212 * testsuite/20_util/expected/synopsis.cc: New test.
4213 * testsuite/20_util/expected/unexpected.cc: New test.
4214 * testsuite/20_util/expected/version.cc: New test.
4216 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
4218 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
4221 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4224 * include/std/bit (bit_cast): Add constraints.
4225 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
4227 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4229 * include/std/version [!_GLIBCXX_HOSTED]
4230 (__cpp_lib_hardware_interference_size): Define for freestanding.
4231 (__cpp_lib_bit_cast): Likewise.
4232 (__cpp_lib_is_layout_compatible): Likewise.
4233 (__cpp_lib_is_pointer_interconvertible): Likewise.
4234 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
4236 (__cpp_lib_invoke_r): Likewise.
4237 (__cpp_lib_ios_noreplace): Likewise.
4238 (__cpp_lib_monadic_optional): Likewise.
4239 (__cpp_lib_move_only_function): Likewise.
4240 (__cpp_lib_spanstream): Likewise.
4241 (__cpp_lib_stacktrace): Likewise.
4242 (__cpp_lib_string_contains): Likewise.
4243 (__cpp_lib_string_resize_and_overwrite): Likewise.
4244 (__cpp_lib_to_underlying): Likewise.
4246 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4249 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
4250 <bits/atomic_wait.h> for freestanding.
4252 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
4254 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
4255 Conditionalize call to fesetround.
4257 2022-03-21 Jakub Jelinek <jakub@redhat.com>
4260 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
4261 isn't overloaded if __clang__ is defined.
4263 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
4266 * include/std/any (any(T&&)): Revert change to constraints.
4267 * testsuite/20_util/any/cons/104242.cc: New test.
4269 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
4272 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
4274 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
4275 (__pstl::__internal::__except_handler): Use std::__terminate
4276 instead of std::terminate.
4277 * src/c++17/fs_path.cc: Include <array>.
4278 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
4280 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
4281 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
4282 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
4283 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
4284 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
4285 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
4286 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
4287 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
4289 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
4291 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
4293 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
4295 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
4297 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
4299 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
4301 * testsuite/25_algorithms/max/constrained.cc: Likewise.
4302 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
4303 * testsuite/25_algorithms/min/constrained.cc: Likewise.
4304 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
4305 * testsuite/25_algorithms/minmax_element/constrained.cc:
4307 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
4308 * testsuite/25_algorithms/move/93872.cc: Likewise.
4309 * testsuite/25_algorithms/move_backward/93872.cc: Include
4311 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
4313 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
4314 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
4316 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
4317 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
4318 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
4319 * testsuite/25_algorithms/set_difference/constrained.cc:
4321 * testsuite/25_algorithms/set_intersection/constexpr.cc:
4323 * testsuite/25_algorithms/set_intersection/constrained.cc:
4325 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
4327 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
4328 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
4329 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
4330 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
4331 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
4332 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
4333 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
4334 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
4335 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
4336 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
4337 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
4338 * testsuite/std/ranges/adaptors/split.cc: Likewise.
4340 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4343 * include/bits/fs_path.h (path::make_preferred): Use
4344 handwritten loop instead of std::replace.
4346 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4348 PR middle-end/104966
4349 * include/bits/locale_facets_nonio.tcc
4350 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
4351 make all string copies before any stores to *this.
4353 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4355 * testsuite/util/testsuite_character.h: Fix comment.
4357 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4360 * config/abi/pre/gnu.ver: Make version for std::from_chars
4361 depend on HAVE_USELOCALE macro.
4362 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
4363 std::from_chars for floating-point types as undesignated if
4364 not found in the baseline symbols file.
4366 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4368 * include/std/charconv (__cpp_lib_to_chars): Only define when
4369 both from_chars and to_chars are supported for floating-point
4371 (from_chars, to_chars): Adjust preprocessor conditions guarding
4373 * include/std/version (__cpp_lib_to_chars): Adjust condition to
4374 match <charconv> definition.
4375 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
4377 (from_chars): Simplify preprocessor checks and use
4378 from_chars_strtod when appropriate.
4380 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
4383 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
4384 hold octets that will be left-shifted.
4386 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4389 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
4390 before using fast_float.
4392 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
4395 * include/bits/this_thread_sleep.h: Fix order of #endif and
4396 closing brace of namespace.
4398 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4400 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
4403 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4405 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
4408 2022-03-09 Patrick Palka <ppalka@redhat.com>
4411 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
4412 Be explicit when narrowing the shifted effective_mantissa,
4413 since it may have an integer-class type.
4415 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
4417 * include/bits/uses_allocator_args.h: Remove incorrect copyright
4420 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
4423 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
4424 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
4425 (__is_constant_evaluated): Add visibility pragma.
4427 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4429 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
4432 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
4434 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
4436 (__terminate): Likewise.
4438 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
4440 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
4441 inside #if condition.
4443 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4446 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
4449 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4451 * testsuite/17_intro/names.cc (func): Undef on AIX.
4453 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4456 * libsupc++/compare (strong_order): Add missing support for
4457 floating-point types.
4458 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
4461 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
4463 PR middle-end/103984
4464 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
4465 default member initializer.
4467 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
4470 * include/std/source_location (source_location::current): Use
4471 deduced type of __builtin_source_location().
4473 2022-02-22 Patrick Palka <ppalka@redhat.com>
4475 * include/bits/ranges_base.h (__detail::__is_initializer_list):
4477 (viewable_range): Adjust as per P2415R2.
4478 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4479 * include/std/ranges (owning_view): Define as per P2415R2.
4480 (enable_borrowed_range<owning_view>): Likewise.
4481 (views::__detail::__can_subrange): Replace with ...
4482 (views::__detail::__can_owning_view): ... this.
4483 (views::_All::_S_noexcept): Sync with operator().
4484 (views::_All::operator()): Use owning_view instead of subrange
4486 * include/std/version (__cpp_lib_ranges): Adjust value.
4487 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
4488 views::all uses owning_view instead of subrange.
4490 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
4491 now that rvalue non-view non-borrowed ranges are viewable.
4492 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
4494 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4497 * doc/xml/manual/evolution.xml: Document deprecation.
4498 * doc/html/manual/api.html: Regenerate.
4499 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
4500 Remove default argument.
4501 (insert(const_iterator)): New overload with deprecated attribute.
4502 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
4505 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4507 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
4508 code that call cat->name() on std::error_category objects.
4509 Identify known categories by symbol name and use a hardcoded
4510 name. Print error code values as enumerators where appopriate.
4511 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
4512 name of custom category. Check io_errc and future_errc errors.
4514 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
4517 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
4518 (uninitialized_construct_using_allocator): Add constexpr.
4519 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
4520 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
4522 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4525 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
4526 namespace for IEEE128 long double mode.
4527 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
4528 version and export __gnu_cxx_ieee128::__convert_from_v.
4529 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
4530 Make __ibm128 overload use snprintf directly
4531 * testsuite/util/testsuite_abi.cc: Add new symbol version.
4532 Remove stable IEEE128/LDBL versions.
4534 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4537 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
4539 * include/std/variant: Check feature test macros instead.
4540 * include/std/version: Likewise.
4542 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4544 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4547 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4549 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
4550 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
4552 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4554 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
4557 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4559 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4560 Ignore -Walloc-larger-than warning.
4561 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4563 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
4564 to avoid linker error for __atomic_is_lock_free.
4566 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
4568 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
4569 __waiter_base::_S_do_spin_v): Change memory order from relaxed
4572 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4574 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
4576 (atomic_fetch_xor_explicit): Likewise.
4577 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
4578 arithmetic and logical operations for atomic_int.
4580 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4582 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
4583 when <dirent.h> is not available.
4584 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
4586 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
4589 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
4590 loop inside do loop so that threads failing the wait, reload
4593 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4595 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
4596 parameter to _Dir_base&&.
4597 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
4598 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
4599 parameter to _Dir_base&&.
4601 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4603 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
4604 checking for CAS on correct word size.
4606 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4608 * testsuite/experimental/filesystem/operations/create_directories.cc:
4609 Adjust expected results for Windows.
4611 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4614 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
4615 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
4616 instead of checking for errno values indicating a directory.
4617 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
4618 logic to non-throwing overload.
4619 (fs::remove_all(const path&, error_code&)): Add comments.
4620 * src/filesystem/ops-common.h: Likewise.
4622 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4624 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
4625 type to use portable posix::DIR alias.
4627 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4629 * include/c_compatibility/stdatomic.h [__clang__]: Use
4630 #include_next <stdatomic.h>.
4632 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4634 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
4636 (fs::create_directories): Likewise.
4637 (fs::remove_all): Likewise.
4638 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
4639 (fs::create_directories): Likewise.
4640 (fs::remove_all): Likewise.
4642 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4645 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
4647 * config.h.in: Regenerate.
4648 * configure: Regenerate.
4649 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
4650 remove_all overloads as friends.
4651 (recursive_directory_iterator::__erase): Declare new member
4653 * include/bits/fs_fwd.h (remove, remove_all): Declare.
4654 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
4655 constructor. Pass file descriptor argument to base constructor.
4656 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
4657 (_Dir::unlink, _Dir::rmdir): Define new member functions.
4658 (directory_iterator): Pass filename_only argument to _Dir
4660 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4661 parameters to take a _Dir rvalue instead of creating one.
4662 (_Dir_stack::orig): Add data member for storing original path.
4663 (_Dir_stack::report_error): Define new member function.
4664 (__directory_iterator_nofollow): Move here from dir-common.h and
4665 fix value to be a power of two.
4666 (__directory_iterator_filename_only): Define new constant.
4667 (recursive_directory_iterator): Construct _Dir object and move
4668 into _M_dirs stack. Pass skip_permission_denied argument to first
4670 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4671 (recursive_directory_iterator::__erase): Define new member
4673 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
4674 (fs::remove_all): Use new recursive_directory_iterator::__erase
4676 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
4677 constructor and use openat to implement nofollow semantics.
4678 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
4679 Define new member functions.
4680 (__directory_iterator_nofollow): Move to fs_dir.cc.
4681 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
4683 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
4685 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4686 parameters to take a _Dir rvalue instead of creating one.
4687 (recursive_directory_iterator): Check for new nofollow option.
4688 Construct _Dir object and move into _M_dirs stack. Pass
4689 skip_permission_denied argument to first advance call.
4690 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4691 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
4693 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4695 * include/bits/allocator.h: Qualify std::allocator_traits in
4696 deprecated warnings.
4697 * libsupc++/exception (uncaught_exception): Add suggestion to
4700 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4702 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
4703 Add [[maybe_unused]] attribute.
4704 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
4707 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4709 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
4710 custom comparison function for multiset.
4711 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
4712 comparison function for set.
4714 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4716 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
4717 Change member function to data member of function pointer type.
4719 2022-02-02 Martin Sebor <msebor@redhat.com>
4722 * include/std/array (begin): Declare const member function attribute
4724 (end, rbegin, rend, size, max_size, empty, data): Same.
4725 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
4726 * testsuite/23_containers/array/capacity/max_size.cc: Same.
4727 * testsuite/23_containers/array/capacity/size.cc: Same.
4728 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
4730 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4732 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4733 autoconf macro to check whether d_type is present.
4734 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
4737 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4739 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
4740 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4741 Check follow_directory_symlink option.
4742 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
4745 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4747 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
4748 Reset state to past-the-end iterator on error.
4749 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
4750 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
4752 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
4753 for the TS implementation.
4754 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
4755 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
4757 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4759 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
4761 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4764 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
4765 for stdio_pure and stdio_posix options.
4766 * configure: Regenerate.
4768 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
4770 * include/bits/atomic_wait.h: Change memory order from
4771 Acquire/Release with relaxed loads to SeqCst+Release for
4772 accesses to the waiter's count.
4774 2022-01-31 Martin Liska <mliska@suse.cz>
4776 * acinclude.m4: Detect *_ld_is_mold and use it.
4777 * configure: Regenerate.
4779 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
4781 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
4783 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
4785 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4788 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
4789 Add __builtin_unreachable to loop.
4790 * testsuite/23_containers/deque/100516.cc: New test.
4792 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4794 * include/bits/ranges_base.h (ranges::advance): Avoid signed
4795 overflow. Do nothing if already equal to desired result.
4796 * testsuite/24_iterators/range_operations/advance_overflow.cc:
4799 2022-01-27 Martin Liska <mliska@suse.cz>
4802 * acinclude.m4: Fix typo.
4803 * configure: Regenerate.
4805 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4808 * include/bits/istream.tcc (basic_istream::sentry): Add braces
4810 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
4811 Add pragmas to disable bogus warnings from PR 61596.
4813 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4816 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
4817 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
4818 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
4820 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4823 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4825 * config.h.in: Regenerate.
4826 * configure: Regenerate.
4827 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
4828 and pass it to base class constructor.
4829 (directory_iterator): Pass nofollow flag to _Dir constructor.
4830 (fs::recursive_directory_iterator::increment): Likewise.
4831 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
4832 directory_iterator constructor. Move error check outside loop.
4833 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
4834 constructor and when it's set use ::open with O_NOFOLLOW and
4836 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
4837 and pass it to base class constructor.
4838 (directory_iterator): Pass nofollow flag to _Dir constructor.
4839 (fs::recursive_directory_iterator::increment): Likewise.
4840 * src/filesystem/ops.cc (remove_all): Use nofollow option for
4841 directory_iterator constructor. Move error check outside loop.
4843 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4846 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
4847 mem-initializer for _M_buf.
4848 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
4850 * testsuite/27_io/spanstream/2.cc: New test.
4852 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4854 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
4855 Define macro for case where std::from_chars is implemented in
4856 terms of strtod, strtof or strtold.
4857 (buffer_resource, valid_fmt, find_end_of_float, pattern)
4858 (from_chars_impl, make_result, reserve_string): Do not define
4859 unless USE_STRTOD_FOR_FROM_CHARS is defined.
4860 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
4861 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
4862 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
4865 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4868 * include/bits/hashtable_policy.h (_Map_base): Add partial
4869 specialization for maps with const key types.
4870 * testsuite/23_containers/unordered_map/104174.cc: New test.
4872 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4875 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
4876 Set members to zero without type punning.
4878 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4880 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
4882 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4886 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
4887 Define as type long.
4888 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
4890 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
4891 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
4892 (__cpp_lib_chrono_udls): Likewise.
4893 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
4894 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
4895 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
4897 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
4899 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
4900 (__cpp_lib_sample): Likewise.
4901 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
4903 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
4905 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
4907 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
4909 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
4911 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
4913 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
4915 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
4916 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
4917 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
4919 * include/std/complex (__cpp_lib_complex_udls): Likewise.
4920 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
4921 * include/std/functional (__cpp_lib_not_fn): Likewise.
4922 (__cpp_lib_boyer_moore_searcher): Likewise.
4923 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
4924 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
4925 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
4926 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
4927 * include/std/tuple (__cpp_lib_apply): Likewise.
4928 (__cpp_lib_make_from_tuple): Likewise.
4929 * include/std/type_traits (__cpp_lib_integral_constant_callable)
4930 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
4931 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
4932 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
4933 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
4934 (__cpp_lib_has_unique_object_representations)
4935 (__cpp_lib_is_aggregate): Likewise.
4936 * include/std/version: Likewise.
4937 * libsupc++/new (__cpp_lib_launder): Likewise.
4939 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4941 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
4942 condition for C++17 definition.
4944 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4946 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
4948 (_Sp_atomic::_M_ptr): Add default member-initializer.
4949 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
4950 Check constant initialization.
4951 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
4953 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4955 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
4956 equivalent attribute for Clang.
4957 * src/c++11/future.cc (__constinit): Likewise.
4958 * src/c++11/system_error.cc (__constinit): Likewise.
4959 * src/c++17/memory_resource.cc (__constinit): Likewise.
4961 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4963 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
4964 src/libbacktrace/.libs to LDFLAGS if those directories exist.
4966 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4968 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
4970 * configure: Regenerate.
4972 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4975 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
4978 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4980 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
4981 linker search paths.
4982 * src/Makefile.am: Fix src/debug/libbacktrace build.
4983 * src/Makefile.in: Regenerate.
4984 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
4985 variable. Use symlinks for the source files.
4986 * src/libbacktrace/Makefile.in: Regenerate.
4988 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
4990 * include/experimental/bits/simd.h (__floating_point_flags): Do
4991 not rely on math_errhandling to expand to a constant expression.
4993 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4995 * doc/xml/manual/evolution.xml: Document deprecations.
4996 * doc/xml/manual/status_cxx2017.xml: Update status.
4997 * doc/html/*: Regenerate.
4999 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5001 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
5002 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
5004 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5006 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
5009 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5012 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
5013 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
5015 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5018 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
5020 (operator=(nullptr_t)): Likewise.
5021 * include/bits/cow_string.h: Likewise.
5022 * include/std/string_view (basic_string_view(nullptr_t)):
5024 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
5025 expected error. Add examples that become ill-formed in C++23.
5026 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
5027 Adjust expected errors.
5028 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
5031 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5034 * include/bits/stl_iterator.h (reverse_iterator): Check
5035 __cpp_lib_concepts instead of __cplusplus.
5037 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5040 * include/bits/stl_pair.h (pair): Adjust constraints on
5041 deprecated constructors accepting literal zero as null pointer
5042 constant. Improve wording of deprecated attribute.
5043 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
5044 constructors do not cause ambiguities for copyable types.
5046 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5048 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
5049 non-deprecated alternative.
5051 2022-01-18 Tom Honermann <tom@honermann.net>
5053 * acinclude.m4: Define config macros if uchar.h provides
5054 c8rtomb() and mbrtoc8().
5055 * config.h.in: Regenerate.
5056 * configure: Regenerate.
5057 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
5058 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
5059 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
5060 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
5062 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
5065 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5067 * include/Makefile.am: Install new header.
5068 * include/Makefile.in: Regenerate.
5069 * include/c_compatibility/stdatomic.h: New file.
5070 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
5072 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5075 * src/c++17/fast_float/LOCAL_PATCHES: Update.
5076 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
5077 Define in terms of __BYTE_ORDER__.
5079 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5082 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
5083 * src/c++17/fast_float/fast_float.h (round): Use explicit
5084 template argument list for std::min.
5086 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5088 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
5089 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
5091 * doc/html/manual/status.html: Regenerate.
5093 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5095 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
5097 * configure: Regenerate.
5099 2022-01-17 Patrick Palka <ppalka@redhat.com>
5101 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
5102 Conditionally define, and use it to conditionally include
5104 (from_chars): Use fast_float for float and double when
5107 2022-01-17 Patrick Palka <ppalka@redhat.com>
5109 * src/c++17/fast_float/LOCAL_PATCHES: Update.
5110 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
5111 case of over/underflow, return errc::result_out_of_range and don't
5114 2022-01-17 Patrick Palka <ppalka@redhat.com>
5116 * src/c++17/fast_float/LOCAL_PATCHES: Update.
5117 * src/c++17/fast_float/fast_float.h: Apply local modifications.
5119 2022-01-17 Patrick Palka <ppalka@redhat.com>
5121 * src/c++17/fast_float/LOCAL_PATCHES: New file.
5122 * src/c++17/fast_float/MERGE: New file.
5123 * src/c++17/fast_float/README.md: New file, copied from the
5124 fast_float repository.
5125 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
5126 of the fast_float library.
5128 2022-01-17 Patrick Palka <ppalka@redhat.com>
5130 * src/c++17/floating_from_chars.cc: Include <bit>.
5131 (ascii_to_hexit, starts_with_ci): Conditionally define.
5132 (__floating_from_chars_hex): Conditionally define.
5133 (from_chars): Use __floating_from_chars_hex for
5134 chars_format::hex parsing of binary32/64 float/double.
5135 (testsuite/20_util/from_chars/7.cc): New test.
5136 * testsuite/20_util/from_chars/7.cc: New file.
5138 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5140 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
5141 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
5142 * include/Makefile.am: Add new header.
5143 * include/Makefile.in: Regenerate.
5144 * include/std/stacktrace: New header.
5145 * include/std/version (__cpp_lib_stacktrace): Define.
5146 * Makefile.in: Regenerate.
5147 * config.h.in: Regenerate.
5148 * configure: Regenerate.
5149 * doc/Makefile.in: Regenerate.
5150 * libsupc++/Makefile.in: Regenerate.
5151 * po/Makefile.in: Regenerate.
5152 * python/Makefile.in: Regenerate.
5153 * src/Makefile.am: Regenerate.
5154 * src/Makefile.in: Regenerate.
5155 * src/c++11/Makefile.in: Regenerate.
5156 * src/c++17/Makefile.in: Regenerate.
5157 * src/c++20/Makefile.in: Regenerate.
5158 * src/c++98/Makefile.in: Regenerate.
5159 * src/filesystem/Makefile.in: Regenerate.
5160 * testsuite/Makefile.in: Regenerate.
5161 * src/libbacktrace/Makefile.am: New file.
5162 * src/libbacktrace/Makefile.in: New file.
5163 * src/libbacktrace/backtrace-rename.h: New file.
5164 * src/libbacktrace/backtrace-supported.h.in: New file.
5165 * src/libbacktrace/config.h.in: New file.
5166 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
5168 * testsuite/20_util/stacktrace/entry.cc: New test.
5169 * testsuite/20_util/stacktrace/synopsis.cc: New test.
5170 * testsuite/20_util/stacktrace/version.cc: New test.
5172 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5174 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
5176 * doc/html/manual/status.html: Regenerate.
5178 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5181 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
5182 * include/Makefile.in: Regenerate.
5183 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
5185 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
5187 * include/experimental/bits/simd.h (__floating_point_flags): Do
5188 not rely on the presence of the math_errhandling macro.
5190 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5192 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
5193 to qualified-id for dependent type.
5195 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5197 * doc/xml/manual/status_cxx2020.xml: Update.
5198 * doc/html/manual/status.html: Regenerate.
5200 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5201 Thomas Rodgers <trodgers@redhat.com>
5203 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
5205 (_Sp_atomic): New class template.
5206 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
5208 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
5209 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
5210 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
5211 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
5213 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
5215 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
5217 * include/experimental/bits/simd.h: Move feature detection bools
5218 and add __have_avx512bitalg, __have_avx512vbmi2,
5219 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
5220 __have_avx512vnni, __have_avx512vpopcntdq.
5221 (__detail::__machine_flags): New function which returns a unique
5222 uint64 depending on relevant -m and -f flags.
5223 (__detail::__odr_helper): New type alias for either an anonymous
5224 type or a type specialized with the __machine_flags number.
5225 (_SimdIntOperators): Change template parameters from _Impl to
5226 _Tp, _Abi because _Impl now has an __odr_helper parameter which
5227 may be _OdrEnforcer from the anonymous namespace, which makes
5228 for a bad base class.
5229 (many): Either add __odr_helper template parameter or mark as
5231 * include/experimental/bits/simd_detail.h: Add defines for
5232 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
5233 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
5234 * include/experimental/bits/simd_builtin.h: Add __odr_helper
5235 template parameter or mark as always_inline.
5236 * include/experimental/bits/simd_fixed_size.h: Ditto.
5237 * include/experimental/bits/simd_math.h: Ditto.
5238 * include/experimental/bits/simd_scalar.h: Ditto.
5239 * include/experimental/bits/simd_neon.h: Add __odr_helper
5241 * include/experimental/bits/simd_ppc.h: Ditto.
5242 * include/experimental/bits/simd_x86.h: Ditto.
5244 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
5246 * testsuite/22_locale/numpunct/members/char/3.cc:
5247 Require pt_PT locale instead of nl_NL.
5248 (test02): Use pt_PT locale instead of nl_NL.
5250 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5255 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
5257 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
5258 Disable deprecated warnings for base classes.
5259 (_Reference_wrapper_base): Likewise.
5260 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
5261 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
5262 * include/bits/stl_function.h (unary_function, binary_function):
5263 Add deprecated attribute.
5264 (unary_negate, not1, binary_negate, not2, ptr_fun)
5265 (pointer_to_unary_function, pointer_to_binary_function)
5266 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
5267 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
5268 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
5270 * include/bits/stl_iterator.h: Disable deprecated warnings for
5271 std::iterator base classes.
5272 * include/bits/stl_iterator_base_types.h (iterator): Add
5273 deprecated attribute.
5274 * include/bits/stl_map.h (map::value_compare): Disable
5275 deprecated warnings for base class.
5276 * include/bits/stl_multimap.h (multimap::value_compare):
5278 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
5279 Add deprecated attribute.
5280 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
5281 * include/bits/stream_iterator.h: Disable deprecated warnings.
5282 * include/bits/streambuf_iterator.h: Likewise.
5283 * include/ext/bitmap_allocator.h: Remove unary_function base
5285 * include/ext/functional: Disable deprecated warnings.
5286 * include/ext/rope: Likewise.
5287 * include/ext/throw_allocator.h: Likewise.
5288 * include/std/type_traits (result_of): Add deprecated attribute.
5289 * include/tr1/functional: Disable deprecated warnings.
5290 * include/tr1/functional_hash.h: Likewise.
5291 * testsuite/20_util/function_objects/binders/1.cc: Add
5292 -Wno-disable-deprecations.
5293 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
5294 * testsuite/20_util/function_objects/constexpr.cc: Add
5296 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
5297 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
5298 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
5300 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
5302 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
5304 * testsuite/20_util/reference_wrapper/24803.cc:
5306 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
5307 C++20 and check for absence of nested types.
5308 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
5309 std::binary_function base class.
5310 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
5311 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
5312 std::iterator base class.
5313 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
5315 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
5317 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
5319 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
5321 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
5323 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
5325 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
5327 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
5329 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
5331 * testsuite/25_algorithms/copy/34595.cc:
5333 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
5335 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
5336 Disable deprecated warnings.
5337 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
5339 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
5341 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
5343 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
5345 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
5347 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
5349 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
5351 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
5353 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
5355 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
5357 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
5359 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
5361 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
5363 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
5365 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
5367 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
5369 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
5371 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
5373 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
5375 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
5377 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
5379 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
5381 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
5383 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
5385 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
5387 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
5389 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
5391 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
5393 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
5395 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
5397 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
5399 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
5401 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
5403 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
5405 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
5407 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
5409 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
5411 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
5413 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
5415 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
5417 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
5419 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
5421 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
5423 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
5425 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
5427 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
5429 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
5431 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
5433 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
5435 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
5437 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
5438 Disable deprecated warnings.
5439 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
5441 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
5442 std::unary_function base classes.
5443 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5444 Remove std::iterator base classes.
5446 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5448 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
5449 Correct type of macro value.
5450 (shared_ptr): Add additional friend declarations.
5451 (make_shared, allocate_shared): Constrain existing overloads and
5452 remove static_assert.
5453 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
5455 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
5456 specialization for use with make_shared_for_overwrite.
5457 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5458 (_Sp_counted_array_base): New class template.
5459 (_Sp_counted_array): New class template.
5460 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
5461 New constructor for allocating shared arrays.
5462 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
5463 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
5465 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5466 (__cpp_lib_smart_ptr_for_overwrite): New macro.
5467 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
5469 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
5470 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
5471 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
5472 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
5473 feature test macro. Test non-trivial default-initialization.
5475 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5477 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
5478 Also cast away cv-qualifiers when converting pointer to void.
5479 * testsuite/20_util/allocator/void.cc: Test construct function
5480 with cv-qualified types.
5482 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5485 * include/bits/stl_iterator.h (common_iterator): Use
5486 std::construct_at instead of placement new.
5487 * testsuite/24_iterators/common_iterator/1.cc: Check copy
5488 construction is usable in constant expressions.
5490 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5492 * doc/xml/manual/status_cxx2011.xml: Document new tokens
5493 accepted by std::random_device constructor.
5494 * doc/html/manual/status.html: Regenerate.
5496 2022-01-12 Patrick Palka <ppalka@redhat.com>
5498 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
5501 2022-01-12 Patrick Palka <ppalka@redhat.com>
5504 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5505 Track the excess precision separately from the effective
5506 precision. Avoid overflow in bounds check by splitting it into
5508 (__floating_to_chars_precision): Avoid overflow in bounds checks
5510 * testsuite/20_util/to_chars/103955.cc: New test.
5512 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5515 * include/Makefile.am: Install <source_location> for
5517 * include/Makefile.in: Regenerate.
5518 * include/std/version (__cpp_lib_source_location): Define for
5521 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5523 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
5524 Add neoxcept (LWG 3593).
5526 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5528 * include/std/ranges (ranges::__detail::__box): Add constexpr to
5529 assignment operators (LWG 3572).
5530 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
5531 view that uses copyable-box.
5533 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5536 * include/Makefile.am: Install <coroutine> for freestanding.
5537 * include/Makefile.in: Regenerate.
5538 * include/std/coroutine: Adjust headers and preprocessor
5540 (__coroutine_traits_impl): Use concepts when available.
5541 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
5543 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5545 * include/std/ostream (operator<<(basic_ostream&, charT)):
5546 Use unformatted input if no padding is needed.
5547 (operator<<(basic_ostream<char>&, char)): Likewise.
5549 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5552 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5554 * include/std/variant (__cpp_lib_variant): Only define C++20
5555 value when the compiler is known to support conditionally
5556 trivial destructors.
5557 * include/std/version (__cpp_lib_variant): Likewise.
5559 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5561 * include/bits/stl_iterator.h (common_iterator): Add constexpr
5562 to all member functions (LWG 3574).
5563 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
5564 tests as constant expressions.
5565 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
5567 2022-01-10 Jakub Jelinek <jakub@redhat.com>
5570 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
5571 (time_get::_M_extract_via_format): Declare new method with
5572 __time_get_state& as an extra argument.
5573 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
5574 __state argument, set various fields in it while parsing. Handle %j,
5575 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
5576 for %p immediately. Add a wrapper around the method without the
5577 __state argument for backwards compatibility.
5578 (_M_extract_num): Remove all __len == 4 special cases.
5579 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
5580 initialize __state, pass it to _M_extract_via_format and finalize it
5582 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
5583 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
5584 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
5585 version, don't call do_get but call _M_extract_via_format instead to
5587 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
5588 with extra __time_get_state and __time_get_state::_M_finalize_state.
5589 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
5590 day_of_the_year): New functions in anon namespace.
5591 (mon_yday): New var in anon namespace.
5592 (__time_get_state::_M_finalize_state): Define.
5593 * testsuite/22_locale/time_get/get/char/4.cc: New test.
5594 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
5595 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
5596 as year 197AD instead of error.
5597 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
5598 year 2001 instead of error.
5599 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
5600 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
5601 197 as year 197AD instead of error.
5602 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
5603 1 as year 2001 instead of error.
5604 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
5606 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5609 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
5610 nothing for freestanding builds.
5611 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
5612 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
5613 with --without-headers. Do not use GCC_HEADER_STDINT for
5614 freestanding builds.
5615 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
5616 for freestanding builds.
5617 * configure: Regenerate.
5618 * Makefile.in: Regenerate.
5619 * doc/Makefile.in: Regenerate.
5620 * include/Makefile.in: Regenerate.
5621 * libsupc++/Makefile.in: Regenerate.
5622 * po/Makefile.in: Regenerate.
5623 * python/Makefile.in: Regenerate.
5624 * src/Makefile.in: Regenerate.
5625 * src/c++11/Makefile.in: Regenerate.
5626 * src/c++17/Makefile.in: Regenerate.
5627 * src/c++20/Makefile.in: Regenerate.
5628 * src/c++98/Makefile.in: Regenerate.
5629 * src/filesystem/Makefile.in: Regenerate.
5630 * testsuite/Makefile.in: Regenerate.
5632 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5634 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
5635 Add dg-timeout-factor directive.
5636 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
5637 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
5638 * testsuite/28_regex/match_results/102667.cc: Likewise.
5640 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5642 * doc/xml/manual/using.xml: Update documentation around default
5644 * doc/html/*: Regenerate.
5646 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5649 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
5650 * src/c++17/Makefile.in: Regenerate.
5652 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
5654 * testsuite/18_support/type_info/constexpr.cc: Add explicit
5655 -fdelete-null-pointer-checks option.
5657 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
5658 Jonathan Wakely <jwakely@redhat.com>
5661 * include/bits/forward_list.tcc (forward_list::merge): Check for
5663 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
5665 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5667 * include/bits/regex.h (basic_regex, match_results): Qualify
5668 name in friend declaration, to work around Clang bug.
5670 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5672 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
5674 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5677 * include/std/charconv (__from_chars_alpha_to_num): Return
5678 char instead of unsigned char. Change invalid return value to
5679 127 instead of using numeric trait.
5680 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
5681 Change type of variable to char.
5683 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
5686 * include/bits/hashtable_policy.h
5687 (_Hashtable_hash_traits<_Hash>): New.
5688 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
5689 (_Hashtable_base<>::_M_key_equals): New.
5690 (_Hashtable_base<>::_M_equals): Use latter.
5691 (_Hashtable_base<>::_M_key_equals_tr): New.
5692 (_Hashtable_base<>::_M_equals_tr): Use latter.
5693 * include/bits/hashtable.h
5694 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
5695 (_Hashtable<>::find): Loop through elements to look for key if size is lower
5696 than __small_size_threshold().
5697 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
5698 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
5699 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
5700 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
5701 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
5702 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
5703 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
5704 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
5705 * testsuite/util/testsuite_performance.h
5706 (report_performance): Use 9 width to display memory.
5707 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
5708 New performance test case.
5710 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5713 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
5714 Relax constraints on string_view parameter.
5715 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
5717 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
5719 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5721 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
5723 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
5724 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
5725 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
5727 (type_info::__equal): Define alias symbol.
5728 * libsupc++/typeinfo (type_info::before): Combine different
5729 implementations into one.
5730 (type_info::operator==): Likewise. Use address equality for
5731 constant evaluation. Call __equal for targets that require the
5732 definition to be non-inline.
5733 * testsuite/18_support/type_info/constexpr.cc: New test.
5735 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5737 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
5738 class and virtual functions as 'final'.
5739 (io_category_instance): Use constinit union to make the object
5741 * src/c++11/future.cc (future_error_category): Define class and
5742 virtual functions as 'final'.
5743 (future_category_instance): Use constinit union.
5745 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5747 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
5748 versioned namespace from the type name that is printed.
5750 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5752 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
5753 printer for std::regex NFA states.
5755 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5757 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
5758 placeholders in comments.
5759 * testsuite/23_containers/forward_list/operations/2.cc:
5761 * testsuite/23_containers/forward_list/operations/3.cc:
5763 * testsuite/23_containers/forward_list/operations/4.cc:
5765 * testsuite/23_containers/forward_list/operations/5.cc:
5767 * testsuite/23_containers/forward_list/operations/6.cc:
5769 * testsuite/23_containers/forward_list/operations/7.cc:
5772 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5775 * include/bits/stl_deque.h (operator-): Do not use 0 as null
5778 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5780 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
5781 Use std::_Construct for construct.
5783 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5786 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
5787 * doc/html/faq.html: Regenerate.
5789 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5791 * include/bits/regex.h (__regex_algo_impl): Change __policy and
5792 __match_mode template parameters to be function parameters.
5793 (regex_match, regex_search): Pass policy and match mode as
5795 * include/bits/regex.tcc (__regex_algo_impl): Change template
5796 parameters to function parameters.
5797 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
5798 'if constexpr' for conditions using template parameters.
5799 (_RegexTranslator): Likewise.
5800 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
5802 * testsuite/util/testsuite_regex.h (regex_match_debug)
5803 (regex_search_debug): Move template arguments to function
5806 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5808 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
5809 results even if the match failed.
5811 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5813 * include/bits/regex_compiler.tcc: Adjust all calls to
5814 __throw_regex_error.
5815 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
5817 * include/bits/regex_scanner.tcc: Likewise.
5818 * src/c++11/regex.cc (desc): New helper function.
5819 (regex_error::regex_error(error_type)): Use desc to get a string
5820 corresponding to the error code.
5823 Copyright (C) 2022 Free Software Foundation, Inc.
5825 Copying and distribution of this file, with or without modification,
5826 are permitted in any medium without royalty provided the copyright
5827 notice and this notice are preserved.