1 2022-10-21 Arsen Arsenović <arsen@aarsen.me>
3 * acinclude.m4: Default hosted to off if building without
4 headers and without newlib.
5 * configure: Regenerate.
7 2022-10-21 Jonathan Wakely <jwakely@redhat.com>
9 * include/bits/mofunc_impl.h (move_only_function::__param_t):
10 Use __is_scalar instead of is_trivially_copyable.
11 * testsuite/20_util/move_only_function/call.cc: Check parameters
12 involving incomplete types.
14 2022-10-20 Patrick Palka <ppalka@redhat.com>
16 * include/std/charconv (__detail::__from_chars_alnum_to_val_table):
17 Redefine as a class template containing the members type, value and
18 _S_make_table. Don't use a local class as the table type.
19 (__detail::__table): Remove.
20 (__detail::__from_chars_alnum_to_val): Adjust after the above.
22 2022-10-19 Patrick Palka <ppalka@redhat.com>
24 * include/std/ranges (views::__detail::__is_repeat_view): Define
25 and later define a partial specialization.
26 (views::__detail::__take_of_repeat_view): Declare and later define.
27 (views::__detail::__drop_of_repeat_view): Likewise.
28 (views::_Take::operator()): Return a repeat_view if the argument
29 is a repeat_view as per P2474R2.
30 (views::_Drop::operator()): Likewise.
31 (repeat_view): Befriend __take/drop_of_repeat_view.
32 * testsuite/std/ranges/repeat/1.cc (test04): New test.
34 2022-10-19 Patrick Palka <ppalka@redhat.com>
37 * include/std/ranges (stride_view::_Iterator::operator-): Fix typo.
38 * testsuite/std/ranges/adaptors/stride/1.cc (test03): New test.
40 2022-10-19 LIU Hao <lh_mouse@126.com>
42 * src/c++11/thread.cc (get_nprocs): Add new implementation
43 for native Windows targets
45 2022-10-19 LIU Hao <lh_mouse@126.com>
47 * libsupc++/atexit_thread.cc (__cxa_thread_atexit): Use
48 implementation from mcfgthread if available
49 * libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_release,
50 __cxa_guard_abort): Use implementations from mcfgthread if
52 * configure: Regenerate
54 2022-10-19 Jakub Jelinek <jakub@redhat.com>
57 * include/std/limits: Fix a typo, 202202L -> 202002L.
58 (numeric_limits::<_Float16>::radix, numeric_limits::<_Float32>::radix,
59 numeric_limits::<_Float64>::radix, numeric_limits::<_Float128>::radix,
60 numeric_limits::<__gnu_cxx::__bfloat16_t>::radix): Use __FLT_RADIX__
61 macro instead of type specific macros.
62 * include/c_global/cmath (nextafter(_Float16, _Float16)): New
64 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)):
66 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
67 (test_functions): Uncomment nextafter test. Fix up sph_neumann call.
68 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc: New test.
70 2022-10-18 Patrick Palka <ppalka@redhat.com>
72 * include/std/ranges (stride_view): Define.
73 (stride_view::_Iterator): Define.
74 (views::__detail::__can_stride_view): Define.
75 (views::_Stride, views::stride): Define.
76 * testsuite/std/ranges/adaptors/stride/1.cc: New test.
78 2022-10-18 Jakub Jelinek <jakub@redhat.com>
81 * include/std/stdfloat: New file.
82 * include/std/numbers (__glibcxx_numbers): Define and use it
83 for __float128 explicit instantiations as well as
84 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
85 * include/std/atomic (atomic<_Float16>, atomic<_Float32>,
86 atomic<_Float64>, atomic<_Float128>, atomic<__gnu_cxx::__bfloat16_t>):
87 New explicit instantiations.
88 * include/std/type_traits (__is_floating_point_helper<_Float16>,
89 __is_floating_point_helper<_Float32>,
90 __is_floating_point_helper<_Float64>,
91 __is_floating_point_helper<_Float128>,
92 __is_floating_point_helper<__gnu_cxx::__bfloat16_t>): Likewise.
93 * include/std/limits (__glibcxx_concat3_, __glibcxx_concat3,
94 __glibcxx_float_n): Define.
95 (numeric_limits<_Float16>, numeric_limits<_Float32>,
96 numeric_limits<_Float64>, numeric_limits<_Float128>,
97 numeric_limits<__gnu_cxx::__bfloat16_t>): New explicit instantiations.
98 * include/bits/std_abs.h (abs): New overloads for
99 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
100 * include/bits/c++config (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128): Define
101 if long double is IEEE quad.
102 (__gnu_cxx::__bfloat16_t): New using.
103 * include/c_global/cmath (acos, asin, atan, atan2, ceil, cos, cosh,
104 exp, fabs, floor, fmod, frexp, ldexp, log, log10, modf, pow, sin,
105 sinh, sqrt, tan, tanh, fpclassify, isfinite, isinf, isnan, isnormal,
106 signbit, isgreater, isgreaterequal, isless, islessequal,
107 islessgreater, isunordered, acosh, asinh, atanh, cbrt, copysign, erf,
108 erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma,
109 llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
110 nextafter, remainder, rint, round, scalbln, scalbn, tgamma, trunc,
111 lerp): New overloads with _Float{16,32,64,128} or
112 __gnu_cxx::__bfloat16_t types.
113 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
114 Prepare for definition if glibc 2.26 and later implements *f128 APIs
115 but comment out the actual definition for now.
116 * include/ext/type_traits.h (__promote<_Float16>, __promote<_Float32>,
117 __promote<_Float64>, __promote<_Float128>,
118 __promote<__gnu_cxx::__bfloat16_t>): New specializations.
119 * include/Makefile.am (std_headers): Add stdfloat.
120 * include/Makefile.in: Regenerated.
121 * include/precompiled/stdc++.h: Include stdfloat.
122 * testsuite/18_support/headers/stdfloat/types_std.cc: New test.
123 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: New test.
124 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc:
126 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: New test.
127 * testsuite/26_numerics/numbers/4.cc: New test.
128 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc: New test.
130 2022-10-17 Jonathan Wakely <jwakely@redhat.com>
132 * include/std/charconv (__cpp_lib_constexpr_charconv): Define to
134 * include/std/version (__cpp_lib_constexpr_charconv): Likewise.
135 * testsuite/20_util/to_chars/constexpr.cc: Check correct value.
136 * testsuite/20_util/to_chars/version.cc: Likewise.
138 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
140 * src/c++11/debug.cc (print_raw): Move inside #if block.
142 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
144 * include/bits/charconv.h (__to_chars_10_impl): Add constexpr
145 for C++23. Remove 'static' from array.
146 * include/std/charconv (__cpp_lib_constexpr_charconv): Define.
147 (__to_chars, __to_chars_16): Remove 'static' from array, add
149 (__to_chars_10, __to_chars_8, __to_chars_2, __to_chars_i)
150 (to_chars, __raise_and_add, __from_chars_pow2_base)
151 (__from_chars_alnum, from_chars): Add constexpr.
152 (__from_chars_alnum_to_val): Avoid local static during constant
153 evaluation. Add constexpr.
154 * include/std/version (__cpp_lib_constexpr_charconv): Define.
155 * testsuite/20_util/from_chars/constexpr.cc: New test.
156 * testsuite/20_util/to_chars/constexpr.cc: New test.
157 * testsuite/20_util/to_chars/version.cc: New test.
159 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
161 * include/bits/stl_map.h (map::insert(Pair&&)): Use
162 remove_const_t on argument to __is_pair.
163 * include/bits/stl_pair.h (__is_pair<const pair<T,U>>): Remove
164 partial specialization.
165 * include/bits/uses_allocator_args.h (_Std_pair): Use
166 remove_cv_t as per LWG 3677.
167 * testsuite/20_util/uses_allocator/lwg3677.cc: New test.
169 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
171 * libsupc++/eh_alloc.cc [USE_POOL]: New macro.
172 [!USE_POOL] (__gnu_cxx::__freeres, pool): Do not define.
173 [_GLIBCXX_EH_POOL_STATIC] (pool::arena): Do not use std::max.
174 (__cxxabiv1::__cxa_allocate_exception) [!USE_POOL]: Do not use
176 (__cxxabiv1::__cxa_free_exception) [!USE_POOL]: Likewise.
177 (__cxxabiv1::__cxa_allocate_dependent_exception) [!USE_POOL]:
179 (__cxxabiv1::__cxa_free_dependent_exception) [!USE_POOL]:
182 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
184 * src/c++11/debug.cc (print_raw): Simplify.
185 (print_word): Print indentation by calling fprintf directly.
186 (_Error_formatter::_M_error): Print unindented string by calling
189 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
191 * include/std/iostream: Use markdown in Doxygen comment.
193 2022-10-12 François Dumont <fdumont@gcc.gnu.org>
195 * include/debug/string: Add using _Base::compare.
196 (__gnu_debug::basic_string<>::compare(const basic_string<>&)): Remove.
197 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&)):
199 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&,
200 size_type, size_type)): Remove.
201 * testsuite/util/testsuite_string.h [_GLIBCXX_TEST_DEBUG_STRING]: Include <debug/string>.
202 * testsuite/21_strings/basic_string/operations/compare/char/1.cc: Include testsuite_string.h
203 and use __gnu_test::string.
204 * testsuite/21_strings/basic_string/operations/compare/char/13650.cc: Likewise.
205 * testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise.
206 * testsuite/21_strings/basic_string/operations/rfind/char/1.cc: Likewise.
207 * testsuite/21_strings/basic_string/operations/rfind/char/2.cc: Likewise.
208 * testsuite/21_strings/basic_string/operations/rfind/char/3.cc: Likewise.
209 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
210 Include testsuite_string.h
211 and use __gnu_test::wstring.
212 * testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc: Likewise.
213 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise.
215 2022-10-12 Patrick Palka <ppalka@redhat.com>
217 * include/std/ranges (repeat_view): Define.
218 (repeat_view::_Iterator): Define.
219 (views::__detail::__can_repeat_view): Define.
220 (views::__detail::__can_bounded_repeat_view): Define.
221 (views::_Repeat, views::repeat): Define.
222 * testsuite/std/ranges/repeat/1.cc: New test.
224 2022-10-12 Martin Liska <mliska@suse.cz>
226 * configure: Regenerate.
228 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
231 * libsupc++/eh_alloc.cc (pool): Change preprocessor condition
232 for using __mutex from __GTHREADS to _GLIBCXX_HOSTED.
233 (pool::allocate): Remove namespace qualification to use
234 pool::__scoped_lock instead of __gnu_cxx::__scoped_lock.
236 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
239 * Makefile.in: Regenerate.
240 * acinclude.m4 (GLIBCXX_EMERGENCY_EH_ALLOC): New macro.
241 * configure: Regenerate.
242 * configure.ac: Use GLIBCXX_EMERGENCY_EH_ALLOC.
243 * crossconfig.m4: Check for secure_getenv.
244 * doc/Makefile.in: Regenerate.
245 * doc/xml/manual/configure.xml: Document new configure options.
246 * doc/xml/manual/evolution.xml: Document addition of tunables.
247 * doc/xml/manual/using_exceptions.xml: Document emergency
249 * doc/html/*: Regenerate.
250 * include/Makefile.in: Regenerate.
251 * libsupc++/Makefile.am: Use EH_POOL_FLAGS.
252 * libsupc++/Makefile.in: Regenerate.
253 * libsupc++/eh_alloc.cc (EMERGENCY_OBJ_SIZE): Define in units
254 of sizeof(void*) not including the ABI's exception header.
255 (EMERGENCY_OBJ_COUNT): Define as target-independent calculation
257 (MAX_OBJ_COUNT): Define macro for upper limit on pool size.
258 (pool) [_GLIBCXX_EH_POOL_STATIC]: Use fixed-size buffer.
259 (pool::buffer_size_in_bytes): New static member function.
260 (pool::pool): Parse GLIBCXX_TUNABLES environment variable to set
261 pool size at runtime.
262 (pool::in_pool): Use std::less<void*> for total order.
263 (__freeres) [_GLIBCXX_EH_POOL_STATIC]: Do nothing.
264 (__cxa_free_exception, __cxa_free_dependent_exception): Add
265 [[unlikely]] attributes.
266 * po/Makefile.in: Regenerate.
267 * python/Makefile.in: Regenerate.
268 * src/Makefile.in: Regenerate.
269 * src/c++11/Makefile.in: Regenerate.
270 * src/c++17/Makefile.in: Regenerate.
271 * src/c++20/Makefile.in: Regenerate.
272 * src/c++98/Makefile.in: Regenerate.
273 * src/filesystem/Makefile.in: Regenerate.
274 * src/libbacktrace/Makefile.in: Regenerate.
275 * testsuite/Makefile.in: Regenerate.
277 2022-10-11 Olivier Hainque <hainque@adacore.com>
278 Olivier Hainque <hainque@adacore.com>
280 * configure: Regenerate.
282 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
284 * include/std/type_traits (make_signed, make_unsigned): Remove
285 constraints on primary template.
286 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
287 Undo changes to expected error in C++20 mode.
288 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
290 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
292 * testsuite/20_util/make_signed/requirements/uninstantiated.cc:
294 * testsuite/20_util/make_unsigned/requirements/uninstantiated.cc:
297 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
299 * include/std/type_traits (make_signed, make_unsigned): Add
300 specializations for cv bool. Add requires-clause for C++20 to
301 improve diagnostics for non-integral, non-enum cases.
302 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
304 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
306 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
307 Adjust expected errors for C++20 and later.
308 * testsuite/lib/prune.exp: Prune "in requirements [with ...]"
309 lines from diagnostics.
311 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
313 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Add libstdcxx-hosted
314 enable arg as an alias for hosted-libstdcxx enable arg.
315 * configure: Regenerate.
317 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
319 * include/bits/std_function.h: Include <new> but do not include
320 <bits/stl_function.h>.
321 * include/std/functional: Do not include <new>.
323 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
325 * doc/xml/manual/intro.xml: Add role="bold" attribute to
326 emphasis elements for issue titles.
327 * doc/html/manual/bugs.html: Regenerate.
329 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
331 * include/Makefile.in: Regenerate.
333 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
335 * include/bits/invoke.h (__invoke_r): Check
336 __has_builtin(__reference_converts_from_temporary) before using
339 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
341 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
343 (test04): Remove constexpr for old std::string ABI and test at
346 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
348 * include/std/type_traits (remove_cv): Use __remove_cv built-in.
349 (remove_reference): Use __remove_reference built-in.
350 (remove_cvref): Use __remove_cvref built-in. Remove inheritance
351 for fallback implementation.
353 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
355 * include/bits/random.h (__is_seed_seq): Replace with ...
356 (_If_seed_seq_for): ... this.
357 * include/ext/random: Adjust to use _If_seed_seq_for.
359 2022-10-04 Patrick Palka <ppalka@redhat.com>
361 * include/std/ranges (join_with_view::_Iterator::operator*):
362 Replace use of std::visit with manual visitation.
363 (join_with_view::_Iterator::operator++): Likewise.
364 (join_with_view::_Iterator::operator--): Likewise.
365 (join_with_view::_Iterator::iter_move): Likewise.
366 (join_with_view::_Iterator::iter_swap): Likewise.
368 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
370 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
373 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
376 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
379 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
382 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
383 <stdint-gcc.h> directly.
385 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
388 * include/bits/functexcept.h [!_GLIBCXX_HOSTED]
389 (__throw_invalid_argument, __throw_out_of_range)
390 (__throw_out_of_range_fmt, __throw_runtime_error)
391 (__throw_overflow_error): Define inline.
392 * include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]:
393 Replace __builtin_abort with __throw_invalid_argument.
395 2022-10-04 Patrick Palka <ppalka@redhat.com>
397 * include/std/ranges: Include <variant> for C++23.
398 (__detail::__compatible_joinable_ranges): Define.
399 (__detail::__bidirectional_common): Define.
400 (join_with_view): Define.
401 (join_with_view::_Iterator): Define.
402 (join_with_view::_Sentinel): Define.
403 (views::__detail::__can_join_with_view): Define.
404 (views::_JoinWith, views::join_with): Define.
405 * testsuite/std/ranges/adaptors/join_with/1.cc: New test.
407 2022-10-04 Arsen Arsenović <arsen@aarsen.me>
409 * include/std/iostream: Use ///< for inline documentation.
410 * include/std/limits: Likewise.
411 * include/experimental/internet: Likewise.
413 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
415 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
416 * doc/html/manual/status.html: Regenerate.
418 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
421 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
423 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
424 * testsuite/18_support/new_nothrow.cc: Likewise.
425 * testsuite/20_util/allocator/105975.cc: Likewise.
426 * testsuite/20_util/allocator/14176.cc: Likewise.
427 * testsuite/20_util/allocator/64135.cc: Likewise.
428 * testsuite/20_util/allocator/89510.cc: Likewise.
429 * testsuite/20_util/allocator/lwg3190.cc: Likewise.
430 * testsuite/20_util/allocator/overaligned.cc: Likewise.
431 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
432 * testsuite/20_util/allocator/requirements/constexpr.cc:
434 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
436 * testsuite/20_util/allocator/requirements/typedefs.cc:
438 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
440 * testsuite/20_util/allocator/void.cc: Likewise.
441 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
442 * testsuite/20_util/allocator_traits/header.cc: Likewise.
443 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
445 * testsuite/20_util/allocator_traits/members/pointers.cc:
447 * testsuite/20_util/allocator_traits/requirements/typedefs.cc:
449 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
451 * testsuite/20_util/bind/42593.cc: Likewise.
452 * testsuite/20_util/bitset/access/dr396.cc: Likewise.
453 * testsuite/20_util/bitset/access/to_string.cc: Likewise.
454 * testsuite/20_util/bitset/cons/16020.cc: Likewise.
455 * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
456 * testsuite/20_util/bitset/cons/dr396.cc: Likewise.
457 * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
458 * testsuite/20_util/bitset/ext/15361.cc: Likewise.
459 * testsuite/20_util/bitset/operations/13838.cc: Likewise.
460 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
461 * testsuite/20_util/bitset/version.cc: Likewise.
462 * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
463 * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
464 * testsuite/20_util/enable_shared_from_this/members/assign.cc:
466 * testsuite/20_util/enable_shared_from_this/members/const.cc:
468 * testsuite/20_util/enable_shared_from_this/members/reinit.cc:
470 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
472 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
474 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
476 * testsuite/20_util/forward/1.cc: Likewise.
477 * testsuite/20_util/forward/1_neg.cc: Likewise.
478 * testsuite/20_util/function/1.cc: Likewise.
479 * testsuite/20_util/function/10.cc: Likewise.
480 * testsuite/20_util/function/2.cc: Likewise.
481 * testsuite/20_util/function/3.cc: Likewise.
482 * testsuite/20_util/function/4.cc: Likewise.
483 * testsuite/20_util/function/43397.cc: Likewise.
484 * testsuite/20_util/function/48541.cc: Likewise.
485 * testsuite/20_util/function/5.cc: Likewise.
486 * testsuite/20_util/function/58569.cc: Likewise.
487 * testsuite/20_util/function/6.cc: Likewise.
488 * testsuite/20_util/function/60594.cc: Likewise.
489 * testsuite/20_util/function/65760.cc: Likewise.
490 * testsuite/20_util/function/69222.cc: Likewise.
491 * testsuite/20_util/function/7.cc: Likewise.
492 * testsuite/20_util/function/77322.cc: Likewise.
493 * testsuite/20_util/function/8.cc: Likewise.
494 * testsuite/20_util/function/9.cc: Likewise.
495 * testsuite/20_util/function/91456.cc: Likewise.
496 * testsuite/20_util/function/assign/move.cc: Likewise.
497 * testsuite/20_util/function/assign/move_target.cc: Likewise.
498 * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
499 * testsuite/20_util/function/cons/55320.cc: Likewise.
500 * testsuite/20_util/function/cons/57465.cc: Likewise.
501 * testsuite/20_util/function/cons/72820.cc: Likewise.
502 * testsuite/20_util/function/cons/addressof.cc: Likewise.
503 * testsuite/20_util/function/cons/callable.cc: Likewise.
504 * testsuite/20_util/function/cons/deduction.cc: Likewise.
505 * testsuite/20_util/function/cons/lwg2774.cc: Likewise.
506 * testsuite/20_util/function/cons/move.cc: Likewise.
507 * testsuite/20_util/function/cons/move_target.cc: Likewise.
508 * testsuite/20_util/function/cons/noexcept.cc: Likewise.
509 * testsuite/20_util/function/cons/non_copyconstructible.cc:
511 * testsuite/20_util/function/cons/refqual.cc: Likewise.
512 * testsuite/20_util/function/cons/70692.cc: Likewise.
513 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
514 * testsuite/20_util/function/invoke/forwarding.cc: Likewise.
515 * testsuite/20_util/function/invoke/move_only.cc: Likewise.
516 * testsuite/20_util/function/null_pointer_comparisons.cc:
518 * testsuite/20_util/function/requirements/explicit_instantiation.cc:
520 * testsuite/20_util/function/target_no_rtti.cc: Likewise.
521 * testsuite/20_util/function_objects/83607.cc: Likewise.
522 * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
523 * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise.
524 * testsuite/20_util/headers/functional/types_std_c++0x.cc:
526 * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
527 * testsuite/20_util/is_function/35637.cc: Likewise.
528 * testsuite/20_util/move/1.cc: Likewise.
529 * testsuite/20_util/move_only_function/call.cc: Likewise.
530 * testsuite/20_util/move_only_function/cons.cc: Likewise.
531 * testsuite/20_util/move_only_function/move.cc: Likewise.
532 * testsuite/20_util/move_only_function/version.cc: Likewise.
533 * testsuite/20_util/owner_less/cmp.cc: Likewise.
534 * testsuite/20_util/owner_less/noexcept.cc: Likewise.
535 * testsuite/20_util/owner_less/void.cc: Likewise.
536 * testsuite/20_util/pointer_safety/1.cc: Likewise.
537 * testsuite/20_util/scoped_allocator/65279.cc: Likewise.
538 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
539 * testsuite/20_util/scoped_allocator/construct_pair.cc:
541 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
542 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
544 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
545 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
546 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
547 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
549 * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
550 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
551 * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise.
552 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
553 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc:
555 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
557 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
559 * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise.
560 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
561 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
562 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
563 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
564 * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
565 * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise.
566 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
567 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
569 * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
570 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
571 * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
572 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
573 * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
574 * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
575 * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
576 * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
577 * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise.
578 * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise.
579 * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise.
580 * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise.
581 * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise.
582 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
583 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
584 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
585 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
586 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
587 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
588 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
589 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
590 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise.
591 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise.
592 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
593 * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
595 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
596 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
597 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
598 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc:
600 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
602 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
604 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
606 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
607 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
608 * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
609 * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc:
611 * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise.
612 * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise.
613 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
615 * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise.
616 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
617 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
618 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
619 * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise.
620 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
621 * testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
622 * testsuite/20_util/shared_ptr/creation/single_allocation.cc:
624 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
626 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
627 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
628 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
629 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
630 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
631 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
632 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
633 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
634 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
635 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc:
637 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
638 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
639 * testsuite/20_util/shared_ptr/observers/array.cc: Likewise.
640 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
641 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
642 * testsuite/20_util/shared_ptr/observers/owner_before.cc:
644 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
645 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
646 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
648 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
650 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
652 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
654 * testsuite/20_util/temporary_buffer.cc: Likewise.
655 * testsuite/20_util/tuple/48476.cc: Likewise.
656 * testsuite/20_util/tuple/cons/90700.cc: Likewise.
657 * testsuite/20_util/tuple/cons/96803.cc: Likewise.
658 * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise.
659 * testsuite/20_util/tuple/cons/allocators.cc: Likewise.
660 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
662 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
663 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
664 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
666 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
667 * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
668 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
669 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
671 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
673 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
674 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
675 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
676 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
678 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
679 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
680 * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
682 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
683 * testsuite/20_util/weak_ptr/observers/owner_before.cc:
685 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
687 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
689 * testsuite/21_strings/basic_string/version.cc: Likewise.
690 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
692 * testsuite/21_strings/c_strings/char/69626.cc: Likewise.
693 * testsuite/21_strings/char_traits/requirements/version.cc:
695 * testsuite/23_containers/vector/requirements/version.cc:
697 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
699 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
701 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
703 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
705 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise.
706 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
708 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
710 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
712 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
714 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
716 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
717 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
718 * testsuite/25_algorithms/headers/cstdlib/functions_std.cc:
720 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
721 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
723 * testsuite/25_algorithms/make_heap/movable.cc: Likewise.
724 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
725 * testsuite/25_algorithms/random_shuffle/1.cc: Likewise.
726 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
727 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
729 * testsuite/25_algorithms/sort/35588.cc: Likewise.
730 * testsuite/25_algorithms/stable_partition/1.cc: Likewise.
731 * testsuite/25_algorithms/stable_partition/constrained.cc:
733 * testsuite/25_algorithms/stable_partition/mem_check.cc:
735 * testsuite/25_algorithms/stable_partition/moveable.cc:
737 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
739 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
741 * testsuite/25_algorithms/stable_sort/1.cc: Likewise.
742 * testsuite/26_numerics/complex/2.cc: Likewise.
743 * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise.
744 * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise.
745 * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise.
746 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise.
747 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise.
748 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise.
749 * testsuite/26_numerics/headers/cstdlib/functions_std.cc:
751 * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise.
752 * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise.
753 * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc:
755 * testsuite/26_numerics/lerp/version.cc: Likewise.
756 * testsuite/26_numerics/midpoint/version.cc: Likewise.
757 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
758 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
759 * testsuite/27_io/fpos/14320-1.cc: Likewise.
760 * testsuite/27_io/fpos/14320-2.cc: Likewise.
761 * testsuite/27_io/fpos/14320-3.cc: Likewise.
762 * testsuite/27_io/fpos/14320-4.cc: Likewise.
763 * testsuite/27_io/spanstream/version.cc: Likewise.
764 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
765 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
766 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
767 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
768 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
769 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
770 * testsuite/30_threads/barrier/2.cc: Likewise.
771 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
773 * testsuite/30_threads/jthread/version.cc: Likewise.
774 * testsuite/30_threads/latch/2.cc: Likewise.
775 * testsuite/30_threads/semaphore/2.cc: Likewise.
776 * testsuite/30_threads/stop_token/2.cc: Likewise.
777 * testsuite/abi/pr42230.cc: Likewise.
778 * testsuite/ext/shared_ptr/1.cc: Likewise.
779 * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise.
780 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
781 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
782 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
783 * testsuite/std/ranges/p2325.cc: Likewise.
785 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
787 * include/std/bitset (bitset(const C*, size_type n, C, C))
788 [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency.
789 (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of
792 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
795 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
796 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
798 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
800 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
803 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
805 (check_effective_target_hosted): New proc.
807 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
808 Jonathan Wakely <jwakely@redhat.com>
811 * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
812 Do not include C headers that aren't valid for freestanding.
813 * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
814 Do not test tag types that aren't defined for freestanding.
815 * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
816 check for std::getenv and std::system for freestanding.
817 * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]:
818 Do not test hosted parts of the standard library.
819 * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]:
821 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
823 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
825 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
826 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
828 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
830 * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise.
831 * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise.
832 * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise.
834 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
837 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
838 install-freestanding-headers, unifying it with the usual
840 * include/Makefile.in: Regenerate.
842 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
843 Jonathan Wakely <jwakely@redhat.com>
846 * include/Makefile.am: Add new header.
847 * include/Makefile.in: Regenerate.
848 * include/bits/requires_hosted.h: New header.
849 * include/experimental/algorithm: Include
850 <bits/requires_hosted.h>.
851 * include/experimental/any: Likewise.
852 * include/experimental/array: Likewise.
853 * include/experimental/buffer: Likewise.
854 * include/experimental/chrono: Likewise.
855 * include/experimental/deque: Likewise.
856 * include/experimental/executor: Likewise.
857 * include/experimental/filesystem: Likewise.
858 * include/experimental/forward_list: Likewise.
859 * include/experimental/functional: Likewise.
860 * include/experimental/internet: Likewise.
861 * include/experimental/io_context: Likewise.
862 * include/experimental/iterator: Likewise.
863 * include/experimental/list: Likewise.
864 * include/experimental/map: Likewise.
865 * include/experimental/memory: Likewise.
866 * include/experimental/memory_resource: Likewise.
867 * include/experimental/net: Likewise.
868 * include/experimental/netfwd: Likewise.
869 * include/experimental/numeric: Likewise.
870 * include/experimental/optional: Likewise.
871 * include/experimental/propagate_const: Likewise.
872 * include/experimental/random: Likewise.
873 * include/experimental/ratio: Likewise.
874 * include/experimental/regex: Likewise.
875 * include/experimental/scope: Likewise.
876 * include/experimental/set: Likewise.
877 * include/experimental/simd: Likewise.
878 * include/experimental/socket: Likewise.
879 * include/experimental/source_location: Likewise.
880 * include/experimental/string: Likewise.
881 * include/experimental/string_view: Likewise.
882 * include/experimental/system_error: Likewise.
883 * include/experimental/timer: Likewise.
884 * include/experimental/tuple: Likewise.
885 * include/experimental/unordered_map: Likewise.
886 * include/experimental/unordered_set: Likewise.
887 * include/experimental/utility: Likewise.
888 * include/experimental/vector: Likewise.
889 * include/std/barrier: Likewise.
890 * include/std/chrono: Likewise.
891 * include/std/condition_variable: Likewise.
892 * include/std/deque: Likewise.
893 * include/std/execution: Likewise.
894 * include/std/filesystem: Likewise.
895 * include/std/forward_list: Likewise.
896 * include/std/fstream: Likewise.
897 * include/std/future: Likewise.
898 * include/std/iomanip: Likewise.
899 * include/std/ios: Likewise.
900 * include/std/iosfwd: Likewise.
901 * include/std/iostream: Likewise.
902 * include/std/istream: Likewise.
903 * include/std/latch: Likewise.
904 * include/std/list: Likewise.
905 * include/std/locale: Likewise.
906 * include/std/map: Likewise.
907 * include/std/memory_resource: Likewise.
908 * include/std/mutex: Likewise.
909 * include/std/ostream: Likewise.
910 * include/std/queue: Likewise.
911 * include/std/random: Likewise.
912 * include/std/regex: Likewise.
913 * include/std/semaphore: Likewise.
914 * include/std/set: Likewise.
915 * include/std/shared_mutex: Likewise.
916 * include/std/spanstream: Likewise.
917 * include/std/sstream: Likewise.
918 * include/std/stack: Likewise.
919 * include/std/stacktrace: Likewise.
920 * include/std/stop_token: Likewise.
921 * include/std/streambuf: Likewise.
922 * include/std/string: Likewise.
923 * include/std/syncstream: Likewise.
924 * include/std/system_error: Likewise.
925 * include/std/thread: Likewise.
926 * include/std/unordered_map: Likewise.
927 * include/std/unordered_set: Likewise.
928 * include/std/valarray: Likewise.
929 * include/std/vector: Likewise.
930 * include/tr1/array: Likewise.
931 * include/tr1/ccomplex: Likewise.
932 * include/tr1/cctype: Likewise.
933 * include/tr1/cfenv: Likewise.
934 * include/tr1/cfloat: Likewise.
935 * include/tr1/cinttypes: Likewise.
936 * include/tr1/climits: Likewise.
937 * include/tr1/cmath: Likewise.
938 * include/tr1/complex: Likewise.
939 * include/tr1/complex.h: Likewise.
940 * include/tr1/cstdarg: Likewise.
941 * include/tr1/cstdbool: Likewise.
942 * include/tr1/cstdint: Likewise.
943 * include/tr1/cstdio: Likewise.
944 * include/tr1/cstdlib: Likewise.
945 * include/tr1/ctgmath: Likewise.
946 * include/tr1/ctime: Likewise.
947 * include/tr1/ctype.h: Likewise.
948 * include/tr1/cwchar: Likewise.
949 * include/tr1/cwctype: Likewise.
950 * include/tr1/fenv.h: Likewise.
951 * include/tr1/float.h: Likewise.
952 * include/tr1/functional: Likewise.
953 * include/tr1/inttypes.h: Likewise.
954 * include/tr1/limits.h: Likewise.
955 * include/tr1/math.h: Likewise.
956 * include/tr1/memory: Likewise.
957 * include/tr1/random: Likewise.
958 * include/tr1/regex: Likewise.
959 * include/tr1/stdarg.h: Likewise.
960 * include/tr1/stdbool.h: Likewise.
961 * include/tr1/stdint.h: Likewise.
962 * include/tr1/stdio.h: Likewise.
963 * include/tr1/stdlib.h: Likewise.
964 * include/tr1/tgmath.h: Likewise.
965 * include/tr1/tuple: Likewise.
966 * include/tr1/type_traits: Likewise.
967 * include/tr1/unordered_map: Likewise.
968 * include/tr1/unordered_set: Likewise.
969 * include/tr1/utility: Likewise.
970 * include/tr1/wchar.h: Likewise.
971 * include/tr1/wctype.h: Likewise.
972 * include/c_global/cmath: Likewise.
973 * include/ext/algorithm: Include <bits/requires_hosted.h>.
974 * include/ext/bitmap_allocator.h: Likewise.
975 * include/ext/cmath: Likewise.
976 * include/ext/codecvt_specializations.h: Likewise.
977 * include/ext/debug_allocator.h: Likewise.
978 * include/ext/enc_filebuf.h: Likewise.
979 * include/ext/extptr_allocator.h: Likewise.
980 * include/ext/functional: Likewise.
981 * include/ext/malloc_allocator.h: Likewise.
982 * include/ext/memory: Likewise.
983 * include/ext/mt_allocator.h: Likewise.
984 * include/ext/new_allocator.h: Likewise.
985 * include/ext/numeric: Likewise.
986 * include/ext/pod_char_traits.h: Likewise.
987 * include/ext/pool_allocator.h: Likewise.
988 * include/ext/random: Likewise.
989 * include/ext/random.tcc: Likewise.
990 * include/ext/rb_tree: Likewise.
991 * include/ext/rc_string_base.h: Likewise.
992 * include/ext/rope: Likewise.
993 * include/ext/ropeimpl.h: Likewise.
994 * include/ext/slist: Likewise.
995 * include/ext/sso_string_base.h: Likewise.
996 * include/ext/stdio_filebuf.h: Likewise.
997 * include/ext/stdio_sync_filebuf.h: Likewise.
998 * include/ext/string_conversions.h: Likewise.
999 * include/ext/throw_allocator.h: Likewise.
1000 * include/ext/vstring.h: Likewise.
1001 * include/ext/vstring.tcc: Likewise.
1002 * include/ext/vstring_fwd.h: Likewise.
1003 * include/ext/vstring_util.h: Likewise.
1004 * include/std/charconv: Likewise.
1005 (__cpp_lib_to_chars): Do not define for freestanding.
1006 * include/std/version: Adjust which macros get defined in
1008 * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
1009 functionality from freestanding.
1010 * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
1011 * include/std/memory [!_GLIBCXX_HOSTED]: Omit
1012 <bits/stl_tempbuf.h> in freestanding
1013 * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
1014 random_shuffle and stable_partition definition.
1015 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
1016 random_shuffle and stable_partition from freestanding.
1017 * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
1018 stable_partition from freestanding.
1019 * include/bits/concept_check.h: Remove needless HOSTED check.
1020 * include/std/iterator: Include <bits/ranges_base.h>.
1021 * include/std/numeric (__cpp_lib_parallel_algorithms): Do not
1022 define for freestanding.
1023 * include/std/functional (__cpp_lib_boyer_moore_searcher):
1025 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++
1028 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1029 Arsen Arsenović <arsen@aarsen.me>
1031 * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not
1032 include headers that aren't valid for freestanding.
1033 * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise.
1035 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
1037 * configure.ac: Remove any lines that unconditionally include
1038 <stdio.h> from ac_includes_default, when running Autoconf <2.70.
1039 * configure: Regenerate.
1041 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1044 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
1045 to __STDC_HOSTED__ for non-freestanding installations.
1046 * configure: Regenerate.
1047 * include/Makefile.am (${host_builddir}/c++config.h): Adjust
1049 * include/Makefile.in: Regenerate.
1050 * testsuite/lib/libstdc++.exp (v3-build_support): Use
1052 * testsuite/libstdc++-abi/abi.exp: Likewise.
1054 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1056 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
1057 Change body of unused operator<< overload to throw if called.
1058 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
1061 2022-10-03 François Dumont <fdumont@gcc.gnu.org>
1063 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
1064 namespace for __cxx11 symbols.
1065 (add_one_template_type_printer): Likewise.
1066 (add_one_type_printer): Likewise.
1067 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
1068 ambiguous typedef matching both std:: and std::__cxx11:: symbols.
1069 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
1070 \#define _GLIBCXX_USE_CXX11_ABI 0.
1071 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
1073 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1074 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1075 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
1077 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1079 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1081 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
1082 from binary literal instead of using stringstream.
1084 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1086 * include/std/bitset (operator>>): Use a simple buffer instead
1087 of std::basic_string.
1089 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1091 * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string)
1092 (_M_copy_to_string): Change access to private.
1093 (_M_copy_from_string(const basic_string&, size_t, size_t)):
1095 (_M_copy_to_string(const basic_string&)): Remove.
1097 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1099 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
1102 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
1103 Yvan ROUX <yvan.roux@foss.st.com>
1105 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.
1107 2022-09-30 Arsen Arsenović <arsen@aarsen.me>
1109 * include/std/bitset: Include <bits/stl_algobase.h>.
1111 2022-09-29 François Dumont <fdumont@gcc.gnu.org>
1113 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register
1114 printer for types in std::__debug namespace with template parameters in std::__8
1117 2022-09-29 Patrick Palka <ppalka@redhat.com>
1119 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
1120 __remove_cv and use __remove_cv_t instead.
1122 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
1124 * include/std/type_traits (__is_invocable_impl): Check
1125 __has_builtin(__reference_converts_from_temporary) before using
1128 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
1130 * doc/xml/manual/evolution.xml: Document std::bind API
1132 * doc/xml/manual/intro.xml: Document LWG 2487 status.
1133 * doc/xml/manual/using.xml: Clarify default value of
1134 _GLIBCXX_USE_DEPRECATED.
1135 * doc/html/*: Regenerate.
1136 * include/std/functional (_Bind::operator()(Args&&...) volatile)
1137 (_Bind::operator()(Args&&...) const volatile)
1138 (_Bind_result::operator()(Args&&...) volatile)
1139 (_Bind_result::operator()(Args&&...) const volatile): Replace
1140 with deleted overload for C++20 and later.
1141 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
1143 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
1144 ill-formed in C++20.
1146 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
1149 * include/bits/invoke.h [__cplusplus < 201703] (__invoke_r):
1150 Remove is_invocable and is_convertible constraints.
1151 * include/std/type_traits (__is_invocable_impl::_S_conv): Use
1152 non-deduced context for parameter.
1153 (__is_invocable_impl::_S_test): Remove _Check_noex template
1154 parameter and use deduced noexcept value in its place. Add bool
1155 parameter to detect dangling references.
1156 (__is_invocable_impl::type): Adjust call to _S_test to avoid
1157 deducing unnecessary noexcept property..
1158 (__is_invocable_impl::__nothrow_type): Rename to ...
1159 (__is_invocable_impl::__nothrow_conv): ... this. Adjust call
1160 to _S_test to deduce noexcept property.
1161 * testsuite/20_util/bind/dangling_ref.cc: New test.
1162 * testsuite/20_util/function/cons/70692.cc: New test.
1163 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
1165 * testsuite/20_util/is_invocable/dangling_ref.cc: New test.
1166 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
1169 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
1172 * testsuite/20_util/is_convertible/requirements/access.cc: New
1175 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
1178 * include/bits/std_function.h (__function_guide_t): New alias
1180 [__cpp_static_call_operator] (__function_guide_static_helper):
1182 (function): Use __function_guide_t in deduction guide.
1183 * include/std/future (packaged_task): Use __function_guide_t in
1185 * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
1186 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
1189 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1191 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
1192 Also define the __ptr_traits_elem class template for the
1194 (pointer_traits<Ptr>): Remove constrained partial
1196 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
1197 ambiguitiy with program-defined partial specialization.
1199 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1201 * include/std/type_traits (is_convertible, is_convertible_v):
1202 Define using new built-in.
1203 (is_nothrow_convertible is_nothrow_convertible_v): Likewise.
1205 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1208 * include/std/bitset (_Base_bitset::_M_do_reset): Use
1209 preprocessor conditional around non-C++03 code.
1210 * testsuite/20_util/bitset/107037.cc: New test.
1212 2022-09-24 Jonathan Wakely <jwakely@redhat.com>
1214 * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
1215 Only instantiate is_empty if needed.
1216 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
1217 (__ptr_traits_impl::rebind): Use __detected_or.
1218 * include/experimental/type_traits (is_same_v): Add a partial
1219 specialization instead of instantiating the std::is_same class
1221 (detected_t): Redefine in terms of detected_or_t.
1222 (is_detected, is_detected_v): Redefine in terms of detected_t.
1223 * include/std/type_traits [__cpp_concepts] (__detected_or): Add
1224 new definition using concepts.
1225 (__detector::value_t): Rename to __is_detected.
1226 * testsuite/17_intro/names.cc: Check value_t isn't used.
1228 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1230 * testsuite/20_util/is_assignable/requirements/access.cc:
1233 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1236 * include/std/type_traits (__is_nothrow_invocable_lib): Remove.
1237 (__is_invocable_impl::__nothrow_type): New member type which
1238 checks if the conversion can throw.
1239 (__is_nt_invocable_impl): Replace class template with alias
1240 template to __is_nt_invocable_impl::__nothrow_type.
1241 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
1242 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
1243 macro used by value_ext.cc test.
1244 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
1245 test for non-standard __is_nothrow_invocable_lib trait.
1247 2022-09-23 Marek Polacek <polacek@redhat.com>
1250 * include/std/type_traits: Rename __is_nothrow_convertible to
1251 __is_nothrow_convertible_lib.
1252 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise.
1254 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1256 * include/std/bitset (operator>>): Do not copy for N==0.
1257 * testsuite/20_util/bitset/io/input.cc: Add comment.
1259 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1261 * include/debug/bitset (__debug::bitset): Add constexpr to all
1263 (operator&, operator|, operator^): Add inline and constexpr.
1264 (operator>>, operator<<): Add inline.
1265 * testsuite/20_util/bitset/access/constexpr.cc: Only check using
1266 constexpr std::string for the cxx11 ABI.
1267 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
1268 * testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr
1271 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1273 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
1274 instead of iterating over individual bits.
1276 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
1278 * include/std/bitset (bitset): Add constexpr for C++23. Guard
1279 members using std::string with _GLIBCXX_HOSTED.
1280 * include/std/version (__cpp_lib_constexpr_bitset): Define.
1281 * testsuite/20_util/bitset/access/constexpr.cc: New test.
1282 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test.
1283 * testsuite/20_util/bitset/count/constexpr.cc: New test.
1284 * testsuite/20_util/bitset/ext/constexpr.cc: New test.
1285 * testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test.
1286 * testsuite/20_util/bitset/version.cc: New test.
1288 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
1290 * testsuite/23_containers/bitset/18604.cc: Moved to...
1291 * testsuite/20_util/bitset/18604.cc: ...here.
1292 * testsuite/23_containers/bitset/45713.cc: Moved to...
1293 * testsuite/20_util/bitset/45713.cc: ...here.
1294 * testsuite/23_containers/bitset/to_string/dr396.cc: Moved to...
1295 * testsuite/20_util/bitset/access/dr396.cc: ...here.
1296 * testsuite/23_containers/bitset/to_string/1.cc: Moved to...
1297 * testsuite/20_util/bitset/access/to_string.cc: ...here.
1298 * testsuite/23_containers/bitset/to_ullong/1.cc: Moved to...
1299 * testsuite/20_util/bitset/access/to_ullong.cc: ...here.
1300 * testsuite/23_containers/bitset/to_ulong/1.cc: Moved to...
1301 * testsuite/20_util/bitset/access/to_ulong.cc: ...here.
1302 * testsuite/23_containers/bitset/cons/1.cc: Moved to...
1303 * testsuite/20_util/bitset/cons/1.cc: ...here.
1304 * testsuite/23_containers/bitset/cons/16020.cc: Moved to...
1305 * testsuite/20_util/bitset/cons/16020.cc: ...here.
1306 * testsuite/23_containers/bitset/cons/2.cc: Moved to...
1307 * testsuite/20_util/bitset/cons/2.cc: ...here.
1308 * testsuite/23_containers/bitset/cons/3.cc: Moved to...
1309 * testsuite/20_util/bitset/cons/3.cc: ...here.
1310 * testsuite/23_containers/bitset/cons/38244.cc: Moved to...
1311 * testsuite/20_util/bitset/cons/38244.cc: ...here.
1312 * testsuite/23_containers/bitset/cons/50268.cc: Moved to...
1313 * testsuite/20_util/bitset/cons/50268.cc: ...here.
1314 * testsuite/23_containers/bitset/cons/6282.cc: Moved to...
1315 * testsuite/20_util/bitset/cons/6282.cc: ...here.
1316 * testsuite/23_containers/bitset/cons/constexpr.cc: Moved to...
1317 * testsuite/20_util/bitset/cons/constexpr.cc: ...here.
1318 * testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to...
1319 * testsuite/20_util/bitset/cons/dr1325-1.cc: ...here.
1320 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to...
1321 * testsuite/20_util/bitset/cons/dr1325-2.cc: ...here.
1322 * testsuite/23_containers/bitset/cons/dr396.cc: Moved to...
1323 * testsuite/20_util/bitset/cons/dr396.cc: ...here.
1324 * testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to...
1325 * testsuite/20_util/bitset/debug/invalidation/1.cc: ...here.
1326 * testsuite/23_containers/bitset/ext/15361.cc: Moved to...
1327 * testsuite/20_util/bitset/ext/15361.cc: ...here.
1328 * testsuite/23_containers/bitset/hash/1.cc: Moved to...
1329 * testsuite/20_util/bitset/hash/1.cc: ...here.
1330 * testsuite/23_containers/bitset/input/1.cc: Moved to...
1331 * testsuite/20_util/bitset/io/input.cc: ...here.
1332 * testsuite/23_containers/bitset/count/6124.cc: Moved to...
1333 * testsuite/20_util/bitset/observers/6124.cc: ...here.
1334 * testsuite/23_containers/bitset/all/1.cc: Moved to...
1335 * testsuite/20_util/bitset/observers/all.cc: ...here.
1336 * testsuite/23_containers/bitset/test/1.cc: Moved to...
1337 * testsuite/20_util/bitset/observers/test.cc: ...here.
1338 * testsuite/23_containers/bitset/operations/1.cc: Moved to...
1339 * testsuite/20_util/bitset/operations/1.cc: ...here.
1340 * testsuite/23_containers/bitset/operations/13838.cc: Moved to...
1341 * testsuite/20_util/bitset/operations/13838.cc: ...here.
1342 * testsuite/23_containers/bitset/operations/2.cc: Moved to...
1343 * testsuite/20_util/bitset/operations/2.cc: ...here.
1344 * testsuite/23_containers/bitset/operations/96303.cc: Moved to...
1345 * testsuite/20_util/bitset/operations/96303.cc: ...here.
1346 * testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to...
1347 * testsuite/20_util/bitset/operations/constexpr-2.cc: ...here.
1348 * testsuite/23_containers/bitset/operations/constexpr.cc: Moved to...
1349 * testsuite/20_util/bitset/operations/constexpr.cc: ...here.
1350 * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to...
1351 * testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here.
1352 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to...
1353 * testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here.
1354 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to...
1355 * testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here.
1356 * testsuite/23_containers/headers/bitset/synopsis.cc: Moved to...
1357 * testsuite/20_util/headers/bitset/synopsis.cc: ...here.
1359 2022-09-22 François Dumont <fdumont@gcc.gnu.org>
1361 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
1362 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
1363 std::__debug::priority_queue.
1365 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1368 * testsuite/20_util/function/91456.cc: Add comment with PR
1370 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
1371 std::function checks with std::is_invocable_r checks.
1373 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1375 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
1376 unnecessary main function.
1377 * testsuite/17_intro/headers/c++2011/all_attributes.cc:
1379 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1381 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1383 * testsuite/17_intro/headers/c++2020/all_attributes.cc:
1386 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1388 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
1389 from C++11 and later.
1391 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1393 * doc/xml/manual/documentation_hacking.xml: Remove trailing
1395 * doc/xml/manual/policy_data_structures.xml: Likewise.
1397 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1399 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
1400 using-declaration for _Exit.
1402 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1404 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
1407 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1409 * include/bits/ranges_base.h: Include <initializer_list>.
1411 2022-09-20 Jonathan Wakely <jwakely@redhat.com>
1413 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
1416 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1419 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
1421 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
1422 std::allocator_traits<std::allocator<T>> specializations for
1424 * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
1425 not declare for freestanding.
1426 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
1427 Do not define for freestanding.
1428 [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
1429 buffers for freestanding.
1430 * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
1431 streambuf iterators and overloaded algorithms using them.
1432 * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
1433 define specialized overloads for std::allocator.
1434 * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
1435 (make_unique_for_overwrite, operator<<): Do not define for
1437 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
1438 Use _GLIBCXX_NOTHROW instead of throw().
1439 * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
1440 _GLIBCXX_DEBUG for freestanding.
1441 * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
1442 * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
1443 __int_traits if <ext/numeric_traits.h> is available.
1444 * include/std/functional [!_GLIBCXX_HOSTED]: Do not include
1445 headers that aren't valid for freestanding.
1446 (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
1447 define for freestanding.
1448 * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
1449 headers that aren't valid for freestanding.
1450 * include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
1451 * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
1452 define for freestanding.
1453 (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
1454 Do not define partial specialization for freestanding.
1456 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1458 * include/bits/alloc_traits.h (__alloc_swap)
1459 (__shrink_to_fit_aux): Move here, from ...
1460 * include/bits/allocator.h: ... here.
1461 * include/ext/alloc_traits.h: Do not include allocator.h.
1463 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1465 * include/bits/stl_algo.h: Include <bits/stl_algobase.h>.
1466 * include/bits/stl_tempbuf.h: Include headers for __try and
1467 __catch macros, std::pair, and __gnu_cxx::__numeric_traits.
1468 * include/bits/stream_iterator.h: Include <iosfwd> and headers
1469 for std::addressof and std::iterator.
1470 * include/bits/streambuf_iterator.h: Include header for
1472 * include/std/iterator: Do not include <iosfwd>.
1474 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1476 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1477 Store value with non-zero padding bits after construction.
1479 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1481 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
1482 (__detail::_Adaptor::_M_g): Make public.
1483 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial
1485 (variate_generate::_Value): New helper to simplify handling of
1486 _Engine* and _Engine& template arguments.
1487 (variate_generate::engine_value_type): Define to underlying
1488 engine type, not adapted type.
1489 (variate_generate::engine()): Return underlying engine instead
1491 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
1493 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
1494 Check member typedefs have the correct types.
1496 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1498 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
1499 (_Error_formatter): Use 0 as null pointer constant.
1501 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1503 * include/bits/allocator.h (__alloc_neq): Remove.
1504 * include/bits/stl_list.h (list::_M_check_equal_allocators):
1505 Compare allocators directly, without __alloc_neq.
1507 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1509 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
1510 * include/bits/allocator.h: Fix nesting of Doxygen commands.
1512 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1514 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and
1515 GLIBCXX_3.4.31 versions.
1516 * doc/html/manual/abi.html: Regenerate.
1518 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1520 * include/std/memory: Do not include <bits/stl_algobase.h>.
1522 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1524 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
1526 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
1527 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
1528 try_lock_failed flag
1529 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
1530 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
1531 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
1532 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
1533 (_Sp_atomic::_Atomic_count::lock): Use new macros.
1535 2022-09-15 Patrick Palka <ppalka@redhat.com>
1537 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
1539 * include/bits/ranges_util.h: ... here.
1540 * include/std/ranges (chunk_by_view): Define.
1541 (chunk_by_view::_Iterator): Define.
1542 (__detail::__can_chunk_by_view): Define.
1543 (_ChunkBy, chunk_by): Define.
1544 * testsuite/std/ranges/adaptors/chunk_by/1.cc: New test.
1546 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1548 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1549 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.
1551 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1553 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
1556 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1558 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
1559 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
1560 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
1561 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
1562 Define macros for TSan annotation functions.
1563 (_Sp_atomic::_Atomic_count): Add annotations.
1565 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1567 * include/bits/stl_tempbuf.h: Include <new>.
1569 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1571 * testsuite/17_intro/names.cc: Explain why poison pragma can't
1574 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1576 * include/std/future
1577 (_State_baseV2::__setter(exception_ptr&, promise&)): Add
1578 assertion for LWG 2276 precondition.
1579 * testsuite/30_threads/promise/members/set_exception_neg.cc:
1582 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1584 * doc/xml/manual/intro.xml: Document LWG 1203.
1585 * doc/html/*: Regenerate.
1587 2022-09-14 Philipp Fent <fent@in.tum.de>
1589 * python/libstdcxx/v6/printers.py (access_streambuf_ptrs):
1590 New helper function.
1591 (StdStringBufPrinter, StdStringStreamPrinter): New printers.
1592 (build_libstdcxx_dictionary): Register stringstream printers.
1593 * testsuite/libstdc++-prettyprinters/debug.cc: Check string
1595 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1596 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1598 2022-09-13 Patrick Palka <ppalka@redhat.com>
1600 * include/std/ranges (__detail::__slide_caches_nothing): Define.
1601 (__detail::__slide_caches_last): Define.
1602 (__detail::__slide_caches_first): Define.
1603 (slide_view): Define.
1604 (enable_borrowed_range<slide_view>): Define.
1605 (slide_view::_Iterator): Define.
1606 (slide_view::_Sentinel): Define.
1607 (views::__detail::__can_slide_view): Define.
1608 (views::_Slide, views::slide): Define.
1609 * testsuite/std/ranges/adaptors/slide/1.cc: New test.
1611 2022-09-13 Patrick Palka <ppalka@redhat.com>
1613 * include/std/ranges (__detail::__div_ceil): Define.
1614 (chunk_view): Define.
1615 (chunk_view::_OuterIter): Define.
1616 (chunk_view::_OuterIter::value_type): Define.
1617 (chunk_view::_InnerIter): Define.
1618 (chunk_view<_Vp>): Define partial specialization for forward
1620 (enable_borrowed_range<chunk_view>): Define.
1621 (chunk_view<_Vp>::_Iterator): Define.
1622 (views::__detail::__can_chunk_view): Define.
1623 (views::_Chunk, views::chunk): Define.
1624 * testsuite/std/ranges/adaptors/chunk/1.cc: New test.
1626 2022-09-13 Patrick Palka <ppalka@redhat.com>
1628 * include/std/ranges (join_view::_Iterator::_M_satisfy):
1629 Adjust resetting _M_inner as per LWG 3569.
1630 (join_view::_Iterator::_M_inner): Wrap in std::optional
1632 (join_view::_Iterator::_Iterator): Relax constraints as
1634 (join_view::_Iterator::operator*): Adjust as per LWG 3569.
1635 (join_view::_Iterator::operator->): Likewise.
1636 (join_view::_Iterator::operator++): Likewise.
1637 (join_view::_Iterator::operator--): Likewise.
1638 (join_view::_Iterator::iter_move): Likewise.
1639 (join_view::_Iterator::iter_swap): Likewise.
1640 * testsuite/std/ranges/adaptors/join.cc (test14): New test.
1642 2022-09-13 Patrick Palka <ppalka@redhat.com>
1644 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1645 Add parentheses to avoid -Wparentheses warning.
1647 2022-09-12 Patrick Palka <ppalka@redhat.com>
1650 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
1652 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
1654 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
1656 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
1659 2022-09-12 Jakub Jelinek <jakub@redhat.com>
1661 PR tree-optimization/105329
1662 * acinclude.m4 (libtool_VERSION): Change to 6:31:0.
1663 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
1664 std::basic_string methods with name length of 15.
1665 (GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
1666 * testsuite/util/testsuite_abi.cc (check_version): Handle
1668 * include/bits/basic_string.h (std::basic_string::_M_replace_cold):
1670 * include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
1671 Define and export even for C++20.
1672 (std::basic_string::_M_replace): Use __builtin_expect, outline
1673 the overlapping case to _M_replace_cold.
1674 * configure: Regenerated.
1676 2022-09-09 Jonathan Wakely <jwakely@redhat.com>
1678 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
1679 Rename __weak to __is_weak.
1680 * testsuite/17_intro/names.cc: Add __weak and __strong.
1682 2022-09-09 Patrick Palka <ppalka@redhat.com>
1685 * include/std/ranges (views::_ZipTransform::operator()): Correct
1686 return type in the empty case.
1687 (views::_AdjacentTransform::operator()): Likewise.
1689 2022-09-09 Patrick Palka <ppalka@redhat.com>
1692 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
1694 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.
1696 2022-09-09 Patrick Palka <ppalka@redhat.com>
1699 * include/std/ranges (zip_view::_Iterator::operator-): Use
1700 __to_unsigned_like instead of make_unsigned_t.
1701 (zip_view::_Sentinel::operator-): Likewise.
1702 * testsuite/std/ranges/zip/1.cc (test04): New test.
1704 2022-09-08 François Dumont <fdumont@gcc.gnu.org>
1706 * testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New.
1707 (__gnu_test::malloc_info): New, replace mallinfo on current platform
1708 supporting it and use mallinfo2 when glibc >= 2.33.
1710 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1713 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1714 Prune additional errors from front-end.
1715 * testsuite/20_util/is_move_constructible/incomplete_neg.cc:
1717 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
1719 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
1721 * testsuite/20_util/is_swappable_with/incomplete_neg.cc:
1724 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1726 * include/c_global/cstddef (byte): Add always_inline attribute
1727 to all operator overloads.
1728 (to_integer): Add always_inline attribute.
1730 2022-09-08 Thomas Rodgers <trodgers@redhat.com>
1731 Jakub Jelinek <jakub@redhat.com>
1732 Jonathan Wakely <jwakely@redhat.com>
1734 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
1736 (__atomic_impl::clear_padding): Likewise.
1737 (__atomic_impl::__compare_exchange): Likewise.
1738 (__atomic_impl::compare_exchange_weak): Delegate to
1740 (__atomic_impl::compare_exchange_strong): Likewise.
1741 * include/std/atomic (atomic<T>::atomic(T)): Clear padding when
1742 possible in a constexpr function.
1743 (atomic::store): Clear padding.
1744 (atomic::exchange): Likewise.
1745 (atomic::compare_exchange_weak): Use __compare_exchange.
1746 (atomic::compare_exchange_strong): Likewise.
1747 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: New
1749 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1752 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1754 * include/std/system_error (__adl_only::make_error_code): Add
1756 (__adl_only::make_error_condition): Likewise.
1757 (error_code::error_code(ErrorCodeEnum)): Add using-declaration
1758 for deleted function.
1759 (error_condition::error_condition(ErrorConditionEnum)):
1761 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
1762 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
1764 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
1766 * include/std/barrier: Add missing runtime exception.
1768 2022-09-07 Patrick Palka <ppalka@redhat.com>
1770 * include/std/type_traits (is_reference): Make the primary
1771 template derive from false_type. Define two partial
1772 specializations that derive from true_type.
1774 2022-09-07 Patrick Palka <ppalka@redhat.com>
1776 * include/std/type_traits (__is_void_helper): Remove.
1777 (is_void): Make the primary template derive from false_type,
1778 and define four explicit specializations that derive from
1780 (__is_null_pointer_helper, is_null_pointer): Likewise.
1782 2022-09-07 Jason Merrill <jason@redhat.com>
1784 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
1785 call in simple success case.
1787 2022-09-06 Philipp Fent <fent@in.tum.de>
1789 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
1791 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1793 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1795 * include/std/type_traits (__success_type, __failure_type): Move
1796 definitions later in the file.
1798 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1800 * include/std/type_traits (is_trivial_v, is_trivially_copyable_v)
1801 (is_standard_layout_v, is_pod_v, is_literal_type_v): Use
1802 built-in instead of class template.
1803 (is_same_v): Add partial specialization for true case.
1805 2022-09-02 Patrick Palka <ppalka@redhat.com>
1807 * include/std/tuple (tuple::_UseOtherCtor): Use ::type when
1808 deriving from __and_, __or_ or __not_.
1809 * include/std/type_traits (negation): Likewise.
1810 (is_unsigned): Likewise.
1811 (__is_implicitly_default_constructible): Likewise.
1812 (is_trivially_destructible): Likewise.
1813 (__is_nt_invocable_impl): Likewise.
1815 2022-09-02 Jonathan Wakely <jwakely@redhat.com>
1817 * include/std/type_traits (is_constructible_v)
1818 (is_default_constructible_v, is_copy_constructible_v)
1819 (is_move_constructible_v): Define using __is_constructible.
1820 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v):
1821 Define using __is_assignable.
1822 (is_trivially_constructible_v)
1823 (is_trivially_default_constructible_v)
1824 (is_trivially_copy_constructible_v)
1825 (is_trivially_move_constructible_v): Define using
1826 __is_trivially_constructible.
1827 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1828 (is_trivially_move_assignable_v): Define using
1829 __is_trivially_assignable.
1830 (is_nothrow_constructible_v)
1831 (is_nothrow_default_constructible_v)
1832 (is_nothrow_copy_constructible_v)
1833 (is_nothrow_move_constructible_v): Define using
1834 __is_nothrow_constructible.
1835 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1836 (is_nothrow_move_assignable_v): Define using
1837 __is_nothrow_assignable.
1839 2022-09-02 Patrick Palka <ppalka@redhat.com>
1841 * include/std/type_traits (__or_, __and_, __not_): Redefine as a
1842 class template instead of as an alias template.
1843 * testsuite/20_util/logical_traits/requirements/short_circuit.cc:
1844 Add more tests for conjunction and disjunction. Add corresponding
1845 tests for __and_ and __or_.
1847 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1849 * include/std/ranges (adjacent_transform_view::_Iterator): Add
1850 typename keyword before dependent qualified-id.
1852 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1854 * include/std/type_traits (__is_referenceable): Remove.
1855 (__add_lvalue_reference_helper, __add_rvalue_reference_helper):
1856 Use __void_t instead of __is_referenceable.
1857 (__add_pointer_helper): Likewise.
1858 (add_pointer): Add partial specializations for reference types.
1860 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1862 * include/std/type_traits (__is_constructible_impl): Replace
1863 class template with alias template.
1864 (is_default_constructible, is_nothrow_constructible)
1865 (is_nothrow_constructible): Simplify base-specifier.
1866 (__is_copy_constructible_impl, __is_move_constructible_impl)
1867 (__is_nothrow_copy_constructible_impl)
1868 (__is_nothrow_move_constructible_impl): Remove class templates.
1869 (is_copy_constructible, is_move_constructible)
1870 (is_nothrow_constructible, is_nothrow_default_constructible)
1871 (is_nothrow_copy_constructible, is_nothrow_move_constructible):
1872 Adjust base-specifiers to use __is_constructible_impl.
1873 (__is_copy_assignable_impl, __is_move_assignable_impl)
1874 (__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl):
1875 Remove class templates.
1876 (__is_assignable_impl): New alias template.
1877 (is_assignable, is_copy_assignable, is_move_assignable):
1878 Adjust base-specifiers to use new alias template.
1879 (is_nothrow_copy_assignable, is_nothrow_move_assignable):
1880 Adjust base-specifiers to use existing alias template.
1881 (__is_trivially_constructible_impl): New alias template.
1882 (is_trivially_constructible, is_trivially_default_constructible)
1883 (is_trivially_copy_constructible)
1884 (is_trivially_move_constructible): Adjust base-specifiers to use
1886 (__is_trivially_assignable_impl): New alias template.
1887 (is_trivially_assignable, is_trivially_copy_assignable)
1888 (is_trivially_move_assignable): Adjust base-specifier to use
1890 (__add_lval_ref_t, __add_rval_ref_t): New alias templates.
1891 (add_lvalue_reference, add_rvalue_reference): Use new alias
1894 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1896 * include/std/type_traits (__decay_selector): Add partial
1897 specializations for array types. Only check for function types
1898 when not dealing with an array.
1899 (decay): Add partial specializations for reference types.
1901 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1903 * include/std/type_traits (is_lvalue_reference_v)
1904 (is_rvalue_reference_v, is_reference_v, is_const_v)
1905 (is_volatile_v): Define using partial specializations instead
1906 of instantiating class templates.
1908 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1910 * include/std/type_traits (is_enum_v, is_class_v, is_union_v)
1911 (is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v)
1912 (is_base_of_v, is_aggregate_v): Use built-in directly instead of
1913 instantiating class template.
1915 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1917 * include/std/type_traits (is_scoped_enum): Remove workaround.
1919 2022-09-01 Patrick Palka <ppalka@redhat.com>
1921 * include/std/ranges (__detail::__unarize): Define.
1922 (adjacent_view::_Iterator): Befriend adjacent_transform_view.
1923 (adjacent_transform_view): Define.
1924 (adjacent_transform_view::_Iterator): Define.
1925 (adjacent_transform_view::_Sentinel): Define.
1926 (views::__detail::__can_adjacent_transform_view): Define.
1927 (views::_AdjacentTransform): Define.
1928 (views::adjacent_transform): Define.
1929 (views::pairwise_transform): Define.
1930 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test.
1932 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1934 * include/std/type_traits (__is_array_known_bounds): Add partial
1935 specialization instead of using std::extent.
1936 (__is_array_unknown_bounds): Likewise.
1937 (extent): Add partial specializations to stop recursion after
1938 the result is found.
1939 (is_array_v): Add partial specializations instead of
1940 instantiating the class template.
1941 (rank_v, extent_v): Likewise.
1942 (is_bounded_array_v, is_unbounded_array_v): Likewise.
1943 (is_bounded_array, is_unbounded_array): Define in terms of the
1946 2022-08-31 Patrick Palka <ppalka@redhat.com>
1948 * include/bits/ranges_base.h (__advance_fn::operator()): Add
1949 parentheses in assert condition to avoid -Wparentheses warning.
1950 * include/std/ranges: (take_view::take_view): Uglify 'base'.
1951 (take_while_view::take_while_view): Likewise.
1952 (elements_view::elements_view): Likewise.
1953 (views::_Zip::operator()): Adjust position of [[nodiscard]] for
1954 compatibility with -fconcepts-ts.
1955 (zip_transform_view::_Sentinel): Uglify 'OtherConst'.
1956 (views::_ZipTransform::operator()): Adjust position of
1957 [[nodiscard]] for compatibilty with -fconcepts-ts.
1959 2022-08-31 Martin Liska <mliska@suse.cz>
1961 * configure: Regenerate.
1962 * crossconfig.m4: Remove deprecated ports.
1964 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1966 * include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11.
1967 * include/debug/string: Likewise.
1968 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string.
1969 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise.
1970 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise.
1971 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise.
1972 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise.
1973 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise..
1975 2022-08-31 Patrick Palka <ppalka@redhat.com>
1977 * include/std/ranges (adjacent_view): Define.
1978 (enable_borrowed_range<adjacent_view>): Define.
1979 (__detail::__repeated_tuple): Define.
1980 (adjacent_view::_Iterator): Define.
1981 (adjacent_view::_Sentinel): Define.
1982 (views::__detail::__can_adjacent_view): Define.
1983 (views::_Adjacent): Define.
1984 (views::adjacent): Define.
1985 (views::pairwise): Define.
1986 * testsuite/std/ranges/adaptors/adjacent/1.cc: New test.
1988 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1990 * include/debug/formatter.h
1991 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
1992 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
1993 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
1994 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
1995 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
1996 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
1997 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
1998 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
1999 * src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
2000 (_Error_formatter::_M_error()): Adapt.
2001 * src/libbacktrace/Makefile.am: Add backtrace.c.
2002 * src/libbacktrace/Makefile.in: Regenerate.
2003 * src/libbacktrace/backtrace-rename.h (backtrace_full): New.
2004 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test.
2005 * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
2006 * doc/xml/manual/using.xml: Likewise.
2008 2022-08-31 Patrick Palka <ppalka@redhat.com>
2010 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
2012 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
2014 * include/bits/refwrap.h (reference_wrapper::operator()): Add
2015 noexcept-specifier and use __invoke_result instead of result_of.
2016 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
2018 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
2020 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
2022 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
2023 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
2025 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
2027 * include/bits/basic_string.h (basic_string): Add nodiscard
2028 attribute to all relevant functions.
2029 * include/std/string_view (basic_string_view): Likewise.
2030 * testsuite/21_strings/basic_string/capacity/1.cc: Cast unused
2032 * testsuite/21_strings/basic_string/capacity/char/1.cc:
2034 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
2036 * testsuite/21_strings/basic_string/cons/char/self_move.cc:
2038 * testsuite/21_strings/basic_string/element_access/char/1.cc:
2040 * testsuite/21_strings/basic_string/element_access/char/21674.cc:
2042 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
2044 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
2046 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
2047 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
2048 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc:
2049 Add -Wno-unused-result to options.
2050 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
2052 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
2054 * testsuite/21_strings/basic_string/operators/char/1.cc: Cast
2055 unused results to void.
2056 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc:
2058 * testsuite/21_strings/basic_string_view/capacity/1.cc:
2060 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2062 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2064 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2066 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2068 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
2070 Add -Wno-unused-result to options.
2071 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
2073 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
2075 * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast
2076 unused results to void.
2077 * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc:
2079 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
2080 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
2083 2022-08-27 Patrick Palka <ppalka@redhat.com>
2085 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
2087 2022-08-26 Patrick Palka <ppalka@redhat.com>
2089 * include/std/ranges (zip_view::_Iterator::operator<): Remove
2091 (zip_view::_Iterator::operator>): Likewise.
2092 (zip_view::_Iterator::operator<=): Likewise.
2093 (zip_view::_Iterator::operator>=): Likewise.
2094 (zip_view::_Iterator::operator<=>): Remove three_way_comparable
2095 constraint as per LWG 3692.
2096 (zip_transform_view::_Iterator): Ditto as per LWG 3702.
2098 2022-08-26 Patrick Palka <ppalka@redhat.com>
2100 * include/std/ranges (zip_view::_Iterator): Befriend
2102 (__detail::__range_iter_cat): Define.
2103 (zip_transform_view): Define.
2104 (zip_transform_view::_Iterator): Define.
2105 (zip_transform_view::_Sentinel): Define.
2106 (views::__detail::__can_zip_transform_view): Define.
2107 (views::_ZipTransform): Define.
2108 (views::zip_transform): Define.
2109 * testsuite/std/ranges/zip_transform/1.cc: New test.
2111 2022-08-26 Patrick Palka <ppalka@redhat.com>
2113 * include/std/type_traits (enable_if, __enable_if_t): Define them
2115 (__detail::__first_t): Define.
2116 (__detail::__or_fn, __detail::__and_fn): Declare.
2117 (__or_, __and_): Redefine as alias templates in terms of __or_fn
2119 (__not_): Redefine as an alias template.
2120 (__detail::__disjunction_impl, __detail::__conjunction_impl):
2122 (conjuction, disjunction): Redefine in terms of __disjunction_impl
2123 and __conjunction_impl.
2125 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
2127 * include/std/system_error (error_code::_Check): New alias
2128 template for constructor SFINAE constraint.
2129 (error_code::error_code(ErrorCodeEnum)): Use it.
2130 (error_code::operator=(ErrorCodeEnum)): Remove.
2131 (error_condition::_Check): New alias template for constraint.
2132 (error_condition::error_condition(ErrorConditionEnum)): Use it.
2133 (error_condition::operator=(ErrorConditionEnum)): Remove.
2134 * testsuite/19_diagnostics/error_code/cons/1.cc: Check
2135 constructor taking user-defined error enum.
2136 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
2138 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
2140 * include/bits/basic_string.h (starts_with, ends_with, contains):
2141 Add nonnull attribute.
2142 * include/bits/cow_string.h (starts_with, ends_with, contains):
2144 * include/std/string_view (starts_with, ends_with, contains):
2146 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc
2147 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
2148 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
2149 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
2150 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
2151 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
2153 2022-08-25 Patrick Palka <ppalka@redhat.com>
2155 * include/std/ranges (lazy_split_view::_OuterIter::_M_current):
2156 Remove redundant comment.
2157 (lazy_split_view::_M_current): Likewise.
2158 (common_view::common_view): Remove commented out view-converting
2159 constructor as per LWG3405.
2160 (elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'.
2162 2022-08-24 Patrick Palka <ppalka@redhat.com>
2164 * include/bits/ranges_algo.h (__min_fn, min): Move to ...
2165 * include/bits/ranges_util.h: ... here, in order to avoid
2166 including all of ranges_algo.h from <ranges>.
2167 * include/std/ranges (__detail::__zip_is_common): Define for
2168 C++23 as per P2321R2.
2169 (__detail::__tuple_or_pair): Likewise.
2170 (__detail::__tuple_or_pair_t): Likewise.
2171 (__detail::__tuple_transform): Likewise.
2172 (__detail::__tuple_for_each): Likewise.
2173 (zip_view): Likewise.
2174 (enable_borrowed_range<zip_view>): Likewise.
2175 (__detail::__all_random_access): Likewise.
2176 (__detail::__all_bidirectional): Likewise.
2177 (__detail::__all_forward): Likewise.
2178 (__detail::__zip_view_iter_cat): Likewise.
2179 (zip_view::_Iterator): Likewise.
2180 (zip_view::_Sentinel): Likewise.
2181 * testsuite/std/ranges/zip/1.cc: New test.
2183 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2186 2022-08-24 Will Hawkins <whh8b@obs.cr>
2188 * include/bits/basic_string.h (operator+(const string&, const char*)):
2189 Remove naive implementation.
2190 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
2191 Add single-allocation implementation.
2193 2022-08-24 Patrick Palka <ppalka@redhat.com>
2195 * include/bits/stl_pair.h (pair::swap const): Add non-standard
2196 is_swappable_v constraints.
2197 * include/std/tuple (tuple::swap const): Likewise.
2198 * testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some
2199 asserts in C++23 mode.
2201 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2203 * include/bits/stl_algo.h (__stable_sort): Cast size to
2204 iterator's difference type.
2205 * testsuite/25_algorithms/stable_sort/4.cc: New test.
2207 2022-08-24 Will Hawkins <whh8b@obs.cr>
2209 * include/bits/basic_string.h (operator+(const string&, const char*)):
2210 Remove naive implementation.
2211 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
2212 Add single-allocation implementation.
2214 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2216 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
2217 non-reduced duration.
2219 2022-08-23 Patrick Palka <ppalka@redhat.com>
2221 * include/bits/stl_bvector.h (_Bit_reference::operator=): Define
2222 const overload for C++23 as per P2321R2.
2223 * include/bits/stl_pair.h (pair::swap): Likewise.
2224 (pair::pair): Define additional converting constructors for
2225 C++23 as per P2321R2.
2226 (pair::operator=): Define const overloads for C++23 as per
2228 (swap): Define overload taking const pair& for C++23 as per
2230 (basic_common_reference): Define partial specialization for
2231 pair for C++23 as per P2321R2.
2232 (common_type): Likewise.
2233 * include/bits/uses_allocator_args.h
2234 (uses_allocator_construction_args): Define additional pair
2235 overloads for C++23 as per P2321R2.
2236 * include/std/tuple (_Tuple_impl::_Tuple_impl): Define
2237 additional converting constructors for C++23 as per P2321R2.
2238 (_Tuple_impl::_M_assign): Define const overloads for C++23
2240 (_Tuple_impl::_M_swap): Likewise.
2241 (tuple::__constructible): Define as a convenient renaming of
2242 _TCC<true>::__constructible.
2243 (tuple::__convertible): As above but for _TCC<true>::__convertible.
2244 (tuple::tuple): Define additional converting constructors for
2245 C++23 as per P2321R2.
2246 (tuple::operator=): Define const overloads for C++23 as per
2248 (tuple::swap): Likewise.
2249 (basic_common_reference): Define partial specialization for
2250 tuple for C++23 as per P2321R2.
2251 (common_type): Likewise.
2252 * testsuite/20_util/pair/p2321r2.cc: New test.
2253 * testsuite/20_util/tuple/p2321r2.cc: New test.
2254 * testsuite/23_containers/vector/bool/element_access/1.cc: New test.
2256 2022-08-23 Patrick Palka <ppalka@redhat.com>
2258 * include/std/tuple (_TupleConstraints::__convertible): Define.
2259 (_TupleConstraints::__constructible): Define.
2260 (_TupleConstraints::__is_explicitly_constructible): Redefine this
2261 in terms of __convertible and __constructible.
2262 (_TupleConstraints::__is_implicitly_constructible): Likewise.
2264 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
2267 * include/std/variant (__do_visit): Handle is_void<R> for zero
2269 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
2271 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2274 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
2275 requirement for using std::stacktrace. Also adjust -frtti and
2276 -fexceptions to document non-default (i.e. negative) forms.
2277 * doc/html/*: Regenerate.
2279 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2282 * include/bits/std_thread.h (thread::_State_impl): Forward
2283 individual arguments to _Invoker constructor.
2284 (thread::_Invoker): Add constructor. Delete copies.
2285 * include/std/future (__future_base::_Deferred_state): Forward
2286 individual arguments to _Invoker constructor.
2287 (__future_base::_Async_state_impl): Likewise.
2288 * testsuite/30_threads/async/106695.cc: New test.
2289 * testsuite/30_threads/thread/106695.cc: New test.
2291 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2294 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
2295 Use built-ins to check for integer overflow in back-reference
2297 * testsuite/28_regex/basic_regex/106607.cc: New test.
2299 2022-08-17 Keef Aragon <keef.aragon@konscious.net>
2301 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
2303 2022-08-08 François Dumont <fdumont@gcc.gnu.org>
2305 * include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry.
2306 (_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator
2307 parameter is value-initialized.
2308 (_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise.
2309 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt
2311 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
2313 * src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version.
2314 (print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names.
2315 * testsuite/23_containers/deque/debug/iterator1_neg.cc: New test.
2316 * testsuite/23_containers/deque/debug/iterator2_neg.cc: New test.
2317 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test.
2318 * testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test.
2319 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test.
2321 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
2323 * include/experimental/scope (__cpp_lib_experimental_scope):
2325 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro.
2327 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
2329 * include/Makefile.am: Add new header.
2330 * include/Makefile.in: Regenerate.
2331 * include/experimental/scope: New file.
2332 * testsuite/experimental/scopeguard/uniqueres.cc: New test.
2333 * testsuite/experimental/scopeguard/exit.cc: New test.
2335 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2337 * include/std/string_view (basic_string_view(Range&&)): Add
2338 explicit as per P2499R0.
2339 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
2340 Adjust implicit conversions. Check implicit conversions fail.
2341 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
2344 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2346 * include/bits/fs_dir.h (directory_iterator): Add comparison
2347 with std::default_sentinel_t. Remove redundant operator!= for
2349 * (recursive_directory_iterator): Likewise.
2350 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
2351 (default_sentinel_t, default_sentinel): Define even if concepts
2353 * include/bits/regex.h (regex_iterator): Add comparison with
2354 std::default_sentinel_t. Remove redundant operator!= for C++20.
2355 (regex_token_iterator): Likewise.
2356 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
2357 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
2358 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
2360 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
2363 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2365 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
2366 (bad_expected_access::_M_val): Likewise.
2368 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2370 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
2372 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
2373 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
2375 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
2378 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2381 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
2382 Move increment of _M_ver here.
2383 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
2384 Use relaxed memory order and always notify all waiters.
2385 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
2386 Check value again after locking mutex.
2387 (__waiter_base::_M_notify): Remove increment of _M_ver.
2389 2022-08-04 Ulrich Drepper <drepper@gmail.com>
2391 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
2392 zero-based indeces just like std:get takes.
2394 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
2397 * include/bits/stl_iterator.h (common_iterator::operator->):
2398 Change return type to just auto.
2400 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
2402 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
2404 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2407 * include/bits/stl_iterator.h (common_iterator): Define
2408 destructor, copy constructor and move constructor as trivial
2409 when the underlying types allow.
2410 * testsuite/24_iterators/common_iterator/100823.cc: Check
2411 triviality of special members.
2413 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2416 * include/bits/stl_iterator.h (common_iterator): Define move
2417 constructor and move assignment operator.
2418 (common_iterator::_M_assign): New function implementing
2420 (common_iterator::operator=): Use _M_assign.
2421 (common_iterator::_S_valueless): New constant.
2422 * testsuite/24_iterators/common_iterator/100823.cc: New test.
2424 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2426 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
2427 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
2428 friend declaration. Do not move argument in copy constructor.
2429 * testsuite/24_iterators/common_iterator/1.cc: Check for
2430 noexcept constructibnle/assignable.
2432 2022-07-19 François Dumont <fdumont@gcc.gnu.org>
2434 * include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define
2435 using _GLIBCXX_DEBUG_PEDASSERT.
2436 [_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise.
2437 * include/debug/macros.h
2438 (__glibcxx_check_string, __glibcxx_check_string_len): Move...
2439 * include/debug/string
2440 (__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending
2441 on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined.
2442 Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of
2443 and find_last_not_of. Remove debug implementations having no debug assertion.
2444 * testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and
2445 __gnu_test::wtring which definition depends on _GLIBCXX_DEBUG.
2446 * testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case.
2447 * testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case.
2448 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
2449 Include <testsuite_string.h> and use __gnu_test::string.
2450 * testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise.
2451 * testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise.
2452 * testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise.
2453 * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise.
2454 * testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise.
2455 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
2456 Include <testsuite_string.h> and use __gnu_test::wstring.
2457 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise.
2458 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise.
2459 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise.
2460 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise.
2461 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise.
2463 2022-07-19 Jonathan Wakely <jwakely@redhat.com>
2465 * include/std/type_traits (__cpp_lib_reference_from_temporary)
2466 (reference_constructs_from_temporary)
2467 (reference_converts_from_temporary): Only define when the
2468 built-ins are available.
2470 2022-07-19 Marco Falke <falke.marco@gmail.com>
2472 * include/std/charconv (__from_chars_alnum_to_val): Replace
2473 implicit conversion from int to unsigned char with explicit
2476 2022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
2478 * configure: Regnerate.
2479 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
2481 2022-07-18 François Dumont <fdumont@gcc.gnu.org>
2483 * include/bits/stl_algo.h
2484 (__merge_adaptive): Adapt to merge only when buffer is large enough..
2485 (__merge_adaptive_resize): New, adapt merge when buffer is too small.
2486 (__inplace_merge): Adapt, use latter.
2487 (__stable_sort_adaptive): Adapt to sort only when buffer is large enough.
2488 (__stable_sort_adaptive_resize): New, adapt sort when buffer is too small.
2489 (__stable_sort): Adapt, use latter.
2491 2022-07-15 Marek Polacek <polacek@redhat.com>
2494 * include/std/type_traits (reference_constructs_from_temporary,
2495 reference_converts_from_temporary): New class templates.
2496 (reference_constructs_from_temporary_v,
2497 reference_converts_from_temporary_v): New variable templates.
2498 (__cpp_lib_reference_from_temporary): Define for C++23.
2499 * include/std/version (__cpp_lib_reference_from_temporary): Define for
2501 * testsuite/20_util/variable_templates_for_traits.cc: Test
2502 reference_constructs_from_temporary_v and
2503 reference_converts_from_temporary_v.
2504 * testsuite/20_util/reference_from_temporary/value.cc: New test.
2505 * testsuite/20_util/reference_from_temporary/value2.cc: New test.
2506 * testsuite/20_util/reference_from_temporary/version.cc: New test.
2508 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2511 * include/std/istream [C++17] (operator>>(istream&, char*)):
2512 Set eofbit if we stopped extracting at EOF.
2513 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
2515 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
2518 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2520 * include/bits/stl_iterator.h (__iter_to_alloc_t): Replace
2521 add_const_t with const-qualifier.
2522 * include/bits/utility.h (tuple_element<N, cv T>): Likewise for
2524 * include/std/type_traits (add_const, add_volatile): Replace
2525 typedef-declaration with using-declaration.
2526 (add_cv): Replace add_const and add_volatile with cv-qualifiers.
2527 * include/std/variant (variant_alternative<N, cv T>): Replace
2528 add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers.
2530 2022-07-09 François Dumont <fdumont@gcc.gnu.org>
2532 * include/std/string: Remove obsolete comment about char_traits.h including
2535 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
2538 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
2539 Remove workaround for front-end bug.
2541 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2543 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
2544 why we need the typecast.
2546 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2548 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert
2549 the getpid result to an integral type.
2551 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2554 * include/Makefile.am (largefile-config.h): Add
2555 stamp-${host_alias} prerequisite.
2556 * include/Makefile.in: Regenerate.
2558 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2560 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
2561 * include/experimental/bits/fs_ops.h: Likewise.
2562 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
2563 results of absolute and canonical.
2564 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
2565 discarded result to void.
2566 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
2567 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2568 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2569 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2571 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2572 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2574 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2576 * testsuite/experimental/filesystem/operations/canonical.cc:
2578 * testsuite/experimental/filesystem/operations/exists.cc:
2580 * testsuite/experimental/filesystem/operations/is_empty.cc:
2582 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2584 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2587 2022-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
2589 * configure: Regnerate.
2590 * configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS
2591 targets except bfin, lm32, mips, moxie, or1k, and v850.
2592 For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT,
2593 HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV,
2594 HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK,
2595 HAVE_TRUNCATE, and HAVE_USLEEP.
2596 * crossconfig.m4 (*-rtems*): Remove.
2598 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2600 * include/bits/utility.h: Fix comment typos.
2602 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2604 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
2606 (fs::temp_directory_path(error_code&)): Rearrange to more
2607 closely match the structure of the first overload.
2608 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2609 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2610 Check that exception contains the path.
2611 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2614 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2617 * src/filesystem/ops.cc (has_trailing_slash): New helper
2619 (fs::status): Strip trailing slashes.
2620 (fs::symlink_status): Likewise.
2621 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2622 Clean the environment before each test and use TMP instead of
2623 TMPDIR so the test passes on Windows.
2625 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2627 * src/filesystem/dir-common.h (_Dir_base::_At_path):
2628 Use char_type consistently for paths.
2630 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2632 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
2633 current() returning _At_path.
2634 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
2635 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
2636 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
2637 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
2638 current() returning _At_path.
2639 (_Dir::_Dir, _Dir::open_subdir): Adjust.
2641 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2643 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
2644 Always store pathname if we don't have openat or unlinkat,
2645 because the full path is needed to open sub-directories and
2648 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2650 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
2651 functions are available.
2653 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2655 * testsuite/20_util/to_chars/long_double.cc: Use cmath
2656 long double overloads for nexttoward and ldexp.
2658 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2660 * testsuite/experimental/simd/standard_abi_usable.cc: Require
2662 * testsuite/experimental/simd/standard_abi_usable_2.cc:
2665 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2667 * testsuite/26_numerics/complex/proj.cc: Skip test in the
2668 circumstances in which the implementation of proj is known to
2671 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2673 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
2674 _GLIBCXX_HAVE_OPENAT.
2676 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2678 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
2679 (test06): Don't create symlinks when NO_SYMLINKS is defined.
2681 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2683 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
2684 Add -Wl,--gc-sections for RTEMS targets.
2685 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
2687 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
2688 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2689 Execution-time xfail on RTEMS.
2690 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2693 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2695 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
2697 2022-06-27 Joel Brobecker <brobecker@adacore.com>
2698 Jonathan Wakely <jwakely@redhat.com>
2700 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
2701 Always include a counter in the filename returned.
2703 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2705 * include/bits/move_only_function.h (_Never_valueless_alt):
2706 Define partial specialization for std::move_only_function.
2708 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2710 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
2712 (__accepted_index, _Extra_visit_slot_needed): Replace class
2713 templates with variable templates.
2715 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2717 * include/bits/fs_path.h (__is_path_iter_src): Replace class
2718 template with variable template.
2720 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2722 * include/bits/chrono.h (is_clock_v): Define to false.
2723 (is_clock_v<T>): Define partial specialization for true cases.
2724 (is_clock): Define in terms of is_clock_v.
2726 2022-06-24 Xi Ruoyao <xry111@xry111.site>
2728 * scripts/extract_symvers.in: Use grep -E instead of egrep.
2729 * scripts/run_doxygen: Likewise.
2731 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2733 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2735 * configure, config.h.in: Rebuilt.
2736 * src/filesystem/dir-common.h (openat): Use ::openat if
2737 _GLIBCXX_HAVE_OPENAT.
2738 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
2739 _GLIBCXX_HAVE_OPENAT.
2741 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2743 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
2745 * testsuite/experimental/filesystem/operations/rename.cc:
2748 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2750 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
2752 * testsuite/lib/libstdc++.exp
2753 (check_v3_target_fs_last_write_time): New.
2754 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
2756 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2757 Skip the test if the features are unavailable.
2758 * testsuite/experimental/filesystem/operations/last_write_time.cc:
2761 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2763 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
2765 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
2766 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
2768 * testsuite/27_io/filesystem/operations/space.cc: Require
2770 * testsuite/experimental/filesystem/operations/space.cc:
2773 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2775 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
2776 mingw and when create_symlink is a dummy.
2777 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2779 (test01, test02): Don't create symlinks when NO_SYMLINKS is
2781 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
2783 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2785 * testsuite/27_io/filesystem/operations/create_directories.cc
2787 * testsuite/27_io/filesystem/operations/create_directory.cc
2789 * testsuite/27_io/filesystem/operations/permissions.cc
2790 (test03, test04): Likewise.
2791 * testsuite/27_io/filesystem/operations/remove.cc (test01):
2793 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
2795 * testsuite/27_io/filesystem/operations/rename.cc
2796 (test_symlinks): Likewise.
2797 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
2799 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
2801 * testsuite/experimental/filesystem/operations/copy.cc
2803 * testsuite/experimental/filesystem/operations/create_directories.cc
2805 * testsuite/experimental/filesystem/operations/create_directory.cc
2807 * testsuite/experimental/filesystem/operations/permissions.cc
2808 (test03, test04): Likewise.
2809 * testsuite/experimental/filesystem/operations/remove.cc
2811 * testsuite/experimental/filesystem/operations/remove_all.cc
2813 * testsuite/experimental/filesystem/operations/rename.cc
2815 * testsuite/lib/libstdc++.exp
2816 (v3_check_preprocessor_condition): Add optional inc parameter.
2817 Add it to the test program after include bits/c++config.h.
2818 (check_v3_target_fs_symlinks): New.
2819 * testsuite/lib/dg-options.exp
2820 (dg-require-target-fs-symlinks): New.
2821 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2822 Replace mingw xfail with require target-fs-symlinks.
2823 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2826 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2828 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2829 Select TO after creating FROM.
2830 (test03, test04): Likewise.
2831 * testsuite/experimental/filesystem/operations/copy.cc
2832 (test02, test03, test04): Likewise.
2834 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2836 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
2837 explicit cancellation point in case sleep_for lacks one.
2839 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2841 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
2842 -lbsd for RTEMS targets.
2844 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2846 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2847 rmdir to remove directories.
2848 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2851 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2853 * testsuite/26_numerics/random/random_device/entropy.cc: Use
2854 numeric_limits<unsigned>::digits.
2856 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2858 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
2859 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
2861 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2863 * testsuite/30_threads/this_thread/60421.cc (test02): Call
2866 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2868 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
2870 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2872 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
2873 global struct bitset.
2874 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
2875 * testsuite/23_containers/bitset/input/1.cc: Likewise.
2876 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
2877 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
2879 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
2881 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
2884 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2887 * include/bits/basic_string.h (_M_use_local_data): Initialize
2888 the entire SSO buffer.
2889 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
2891 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2894 * include/ext/vstring.h (operator==): Always check lengths
2897 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
2900 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
2901 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
2902 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
2903 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
2904 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2905 const allocator_type&, true_type)): Use this.insert range.
2906 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2907 const allocator_type&, false_type)): Use _M_insert.
2908 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
2910 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
2911 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
2913 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2916 * include/bits/basic_string.h (operator==): Always compare
2917 lengths before checking string contents.
2918 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
2921 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2924 * include/bits/basic_string.h (compare): Define inline.
2925 * include/bits/basic_string.tcc (compare): Remove out-of-line
2927 * include/bits/cow_string.h (compare): Define inline.
2928 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
2931 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2933 * include/bits/new_allocator.h: Fix indentation.
2934 * include/ext/malloc_allocator.h: Likewise.
2936 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2939 * include/bits/allocator.h (allocator::allocate): Check for
2940 overflow in constexpr allocation.
2941 * testsuite/20_util/allocator/105975.cc: New test.
2943 2022-06-13 Mark Mentovai <mark@mentovai.com>
2945 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
2946 Rename to __nul_terminated to avoid colliding with a macro in
2949 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
2951 * include/std/atomic (__atomic_val_t): Use __type_identity_t
2952 instead of atomic<T>::value_type, as per LWG 3220.
2953 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
2955 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2958 * include/experimental/numeric (experimental::gcd): Simplify
2959 assertions. Use __abs_r instead of __absu.
2960 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
2961 overflow can be detected.
2962 * include/std/numeric (__detail::__absu): Rename to __abs_r and
2963 change to allow signed result type, so overflow can be detected.
2964 (__detail::__lcm): Remove.
2965 (gcd): Simplify assertions. Use __abs_r instead of __absu.
2966 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
2968 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
2969 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2970 * testsuite/26_numerics/gcd/105844.cc: New test.
2971 * testsuite/26_numerics/lcm/105844.cc: New test.
2973 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2976 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
2977 prevent destruction during termination.
2978 (__eh_globals_init::_M_init): Replace with static member _S_init.
2979 (__cxxabiv1::__cxa_get_globals_fast): Update.
2980 (__cxxabiv1::__cxa_get_globals): Likewise.
2982 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2984 * include/bits/basic_string.h (__hash_str_base): New class
2986 (hash<basic_string<C, char_traits<C>, A>>): Define partial
2987 specialization for each of the standard character types.
2988 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
2989 (hash<u32string>): Remove explicit specializations.
2990 * include/std/string (__hash_string_base): Remove class
2992 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
2993 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
2995 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
2997 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
3000 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
3003 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
3004 always_inline attribute.
3006 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3009 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
3010 Limit ga_sizes array to values that fit in size_t.
3011 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
3012 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
3013 (sfmt216091_64): Do not declare.
3015 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3017 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
3018 lookup for ios_errc and future_errc check versioned namespace.
3019 (StdAtomicPrinter): Strip versioned namespace from typename.
3021 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3023 * src/c++11/Makefile.am: Add new source file.
3024 * src/c++11/Makefile.in: Regenerate.
3025 * src/c++11/cxx11-ios_failure.cc (iostream_category):
3027 * src/c++11/ios_errcat.cc: New file.
3028 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
3029 std::iostream_category() is defined and used for std::io_errc.
3031 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3033 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
3034 Add 'constexpr' as per LWG 3643.
3035 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
3037 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3039 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
3041 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
3043 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
3044 <bits/functional_hash.h>.
3045 * include/bits/unordered_map.h: Include required headers.
3046 * include/bits/unordered_set.h: Likewise.
3047 * include/std/unordered_map: Do not include headers for indirect
3049 * include/std/unordered_set: Likewise.
3051 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3053 * include/bits/ranges_algobase.h: Do not include
3054 <bits/stl_iterator_base_types.h>.
3055 * include/std/string: Likewise.
3056 * include/std/variant: Likewise.
3058 2022-05-26 Nathan Sidwell <nathan@acm.org>
3060 * include/bits/hashtable.h: Include required headers.
3061 * include/bits/hashtable_policy.h: Likewise.
3062 * include/bits/stl_heap.h: Likewise.
3063 * include/bits/stl_iterator_base_funcs.h: Likewise.
3065 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
3067 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
3068 Strip typename from version namespace.
3070 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3072 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
3073 versioned namespace from the template argument too.
3075 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3077 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
3079 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
3081 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
3083 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
3085 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
3087 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
3089 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
3091 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
3093 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
3095 * testsuite/21_strings/basic_string/operations/contains/char.cc:
3097 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
3099 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
3101 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
3103 * testsuite/21_strings/basic_string/operations/data/char.cc:
3105 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
3107 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
3109 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
3111 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
3113 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
3115 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
3117 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
3119 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
3121 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
3123 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
3125 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
3127 * testsuite/21_strings/basic_string/operations/substr/char.cc:
3129 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
3131 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
3133 * testsuite/21_strings/basic_string/range_access/char/1.cc:
3135 * testsuite/21_strings/basic_string/range_access/char.cc:
3137 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
3139 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
3141 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3143 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
3145 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3147 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
3149 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3151 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
3153 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3155 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
3157 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3159 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
3161 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3163 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
3165 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
3167 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
3169 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
3171 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
3173 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3175 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
3177 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3179 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
3181 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
3183 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
3185 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
3187 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
3189 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
3191 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
3193 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
3195 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
3197 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3199 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
3201 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3203 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
3205 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3207 * testsuite/21_strings/basic_string_view/range_access/char.cc:
3209 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3211 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
3213 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
3215 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
3217 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
3219 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
3221 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
3223 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
3225 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
3227 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
3229 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
3231 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
3233 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
3235 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
3237 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3239 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
3241 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3243 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
3245 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3247 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
3249 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3251 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
3253 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3255 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
3257 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3259 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
3261 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
3263 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
3265 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
3267 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
3269 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
3271 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
3273 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
3275 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
3277 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
3279 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
3281 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
3283 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
3286 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3288 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
3290 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
3291 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
3293 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
3294 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
3296 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
3298 2022-05-25 Jason Merrill <jason@redhat.com>
3300 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
3303 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
3305 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
3306 Run fewer iterations for simulator targets.
3307 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
3309 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
3311 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
3313 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
3315 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
3317 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
3320 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3322 * include/bits/char_traits.h: Only include <cstdint> when
3324 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
3326 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
3327 * src/c++17/floating_to_chars.cc: Likewise.
3328 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
3329 * testsuite/20_util/assume_aligned/3.cc: Likewise.
3330 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
3332 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3334 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
3336 * include/bits/cow_string.h: Include it here.
3338 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3340 * include/Makefile.am: Add new header.
3341 * include/Makefile.in: Regenerate.
3342 * include/bits/memory_resource.h: New file.
3343 * include/std/deque: Include <bits/memory_resource.h>.
3344 * include/std/forward_list: Likewise.
3345 * include/std/list: Likewise.
3346 * include/std/map: Likewise.
3347 * include/std/memory_resource (pmr::memory_resource): Move to
3348 new <bits/memory_resource.h> header.
3349 (pmr::polymorphic_allocator): Likewise.
3350 * include/std/regex: Likewise.
3351 * include/std/set: Likewise.
3352 * include/std/stacktrace: Likewise.
3353 * include/std/string: Likewise.
3354 * include/std/unordered_map: Likewise.
3355 * include/std/unordered_set: Likewise.
3356 * include/std/vector: Likewise.
3357 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3358 Remove <memory_resource> header and check construction.
3359 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3360 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3362 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3363 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3364 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3365 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3366 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3367 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3369 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3371 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3373 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3375 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3376 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3378 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3380 * include/std/memory_resource (polymorphic_allocator): Add
3381 non-template equality operator, as proposed for LWG 3683.
3382 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
3384 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3386 * src/c++17/memory_resource.cc (set_default_resource): Use
3387 memory_order_acq_rel.
3388 (get_default_resource): Use memory_order_acquire.
3390 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3392 * include/std/memory_resource (new_delete_resource): Add
3393 nodiscard, returns_nonnull and const attributes.
3394 (null_memory_resource): Likewise.
3395 (set_default_resource, get_default_resource): Add returns_nonnull
3397 (memory_resource::is_equal): Add nodiscard attribute.
3398 (operator==, operator!=): Likewise.
3400 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3402 * include/bits/ios_base.h (io_category): Add const and nodiscard
3404 (make_error_code, make_error_condition): Add nodiscard.
3405 * include/std/future (future_category): Add const and nodiscard.
3406 (make_error_code, make_error_condition): Add nodiscard.
3407 * include/std/system_error (generic_category system_category):
3408 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
3409 (error_code::value, error_code::category, error_code::operator bool)
3410 (error_condition::value, error_condition::category)
3411 (error_condition::operator bool, make_error_code)
3412 (make_error_condition, operator==, operator!=, operator<=>): Add
3415 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3417 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
3419 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
3421 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3423 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
3424 Do not build the compatibility*-c++0x.cc objects.
3425 * src/Makefile.in: Regenerate.
3426 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
3427 Refuse to build for the versioned namespace.
3428 * src/c++11/compatibility-chrono.cc: Likewise.
3429 * src/c++11/compatibility-condvar.cc: Likewise.
3430 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
3431 * src/c++11/chrono.cc (system_clock, steady_clock):
3432 Use macros to define in inline namespace _V2, matching the
3433 declarations in <system_error>.
3434 * src/c++11/system_error.cc (system_category, generic_category):
3437 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3439 * doc/xml/manual/prerequisites.xml: Fix attributes for external
3441 * doc/html/manual/setup.html: Regenerate.
3443 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3445 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
3446 * doc/html/*: Regenerate.
3448 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3450 * doc/xml/manual/intro.xml: Include new chapter.
3451 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
3452 * doc/xml/manual/status_cxx2023.xml: New file.
3453 * doc/html/*: Regenerate.
3455 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3457 * doc/html/manual/status.html: Regenerate.
3458 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
3459 C++20 bit operations.
3461 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3463 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
3464 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
3465 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
3467 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3469 * include/std/future (launch): Make operators noexcept.
3471 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3473 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
3474 with "__unspecified__".
3475 * libsupc++/exception_ptr.h: Improve doxygen docs.
3476 (__exception_ptr::swap): Also declare in namespace std.
3478 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3480 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
3481 if-constexpr instead of tag dispatching.
3482 (rethrow_if_nested) [C++17]: Likewise.
3483 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
3485 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3488 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3490 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3491 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
3492 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
3494 * include/bits/unique_lock.h (unique_lock): Likewise.
3495 * include/std/mutex (recursive_mutex, timed_mutex)
3496 (recursive_timed_mutex, scoped_lock): Likewise.
3498 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3500 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3501 _GLIBCXX23_CONSTEXPR macro.
3502 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
3503 * include/bits/unique_ptr.h (default_delete): Use @since and
3505 * include/std/scoped_allocator: Remove @ingroup from @file
3508 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3510 * include/bits/std_thread.h (thread, thread::id): Improve
3512 * include/std/future: Likewise.
3513 * include/std/thread (jthread): Likewise.
3515 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3517 * include/bits/ostream_insert.h: Mark helper functions as
3518 undocumented by Doxygen.
3519 * include/bits/stl_algo.h: Use markdown for formatting and mark
3520 helper functions as undocumented.
3521 * include/bits/stl_numeric.h: Likewise.
3522 * include/bits/stl_pair.h (pair): Add @headerfile.
3524 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3526 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
3527 so that Doxygen shows the right base-class for std::allocator.
3528 * include/bits/alloc_traits.h: Improve doxygen docs.
3529 * include/bits/allocator.h: Likewise.
3530 * include/bits/new_allocator.h: Likewise.
3531 * include/ext/new_allocator.h: Likewise.
3533 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3535 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
3536 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
3537 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
3538 * include/bits/regex.h: Improve doxygen docs.
3539 * include/bits/regex_constants.h: Likewise.
3540 * include/bits/regex_error.h: Likewise.
3542 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3544 * include/std/atomic: Suppress doxygen docs for
3545 implementation details.
3546 * include/bits/atomic_base.h: Likewise.
3547 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
3548 so that std::atomic is not added to the pointer abstractions
3551 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3553 * include/std/system_error: Improve doxygen comments.
3555 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3557 * include/bits/ptr_traits.h: Add some doxygen comments.
3559 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3561 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
3563 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
3564 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
3565 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
3567 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
3568 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
3569 * include/std/condition_variable (_V2::condition_variable_any):
3571 * include/std/system_error (_V2::error_category): Likewise.
3573 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3575 * include/bits/mofunc_impl.h: Fix doxygen command.
3577 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3579 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
3580 (CLASS_DIAGRAMS): Remove obsolete option.
3582 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
3584 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
3585 * config/locale/gnu/numeric_members.cc: Likewise.
3586 * include/bits/locale_facets_nonio.h: Likewise.
3587 * libsupc++/typeinfo: Likewise.
3589 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3592 * include/std/iosfwd: Add declarations for <spanstream> class
3593 templates and typedefs.
3594 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
3595 (basic_ospanstream, basic_spanstream): Remove default template
3597 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
3599 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
3602 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3605 * include/std/iosfwd: Add declarations for <synstream> class
3606 templates and typedefs.
3607 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
3608 Remove default template arguments.
3609 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
3610 * testsuite/27_io/headers/iosfwd/types.cc: New test.
3612 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3614 * include/bits/random.tcc (operator==): Only check
3615 normal_distribution::_M_saved_available once.
3616 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
3617 Check equality after state changes.
3618 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3621 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3624 * include/bits/random.tcc
3625 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
3626 Update state when __state_avail is false.
3627 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
3628 Check that deserialized object equals serialized one.
3630 2022-05-06 Alexandre Oliva <oliva@adacore.com>
3632 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
3633 for double, long long, and 64-bit long intrinsic types.
3634 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
3635 preexisting long double diagnostic, adjust no-VSX double
3636 diagnostic to cover 64-bit long double as well.
3638 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3641 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
3642 Use a trailing char array as storage for dirent::d_name.
3644 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3646 * include/std/stacktrace: Do not include <cxxabi.h>.
3647 (__cxa_demangle): Declare.
3649 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3652 * include/bits/specfun.h: Use visibility attribute on namespace,
3653 instead of pragma push/pop.
3654 * libsupc++/compare: Likewise.
3655 * libsupc++/exception: Likewise.
3656 * libsupc++/exception.h: Likewise.
3657 * libsupc++/exception_ptr.h: Likewise.
3658 * libsupc++/initializer_list: Likewise.
3659 * libsupc++/nested_exception.h: Likewise.
3661 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3663 * doc/xml/manual/test.xml: Remove requirement for copyright and
3664 GPL notice in tests.
3665 * doc/html/manual/test.html: Regenerate.
3667 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
3669 * include/experimental/memory_resource [!__cpp_rtti]
3670 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
3671 when RTTI is disabled.
3672 * testsuite/17_intro/freestanding.cc: Require RTTI.
3673 * testsuite/18_support/exception/38732.cc: Likewise.
3674 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
3676 * testsuite/18_support/nested_exception/68139.cc: Likewise.
3677 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
3679 * testsuite/18_support/type_info/103240.cc: Likewise.
3680 * testsuite/18_support/type_info/fundamental.cc: Likewise.
3681 * testsuite/18_support/type_info/hash_code.cc: Likewise.
3682 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3683 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3684 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3685 * testsuite/20_util/any/observers/type.cc: Likewise.
3686 * testsuite/20_util/function/1.cc: Likewise.
3687 * testsuite/20_util/function/2.cc: Likewise.
3688 * testsuite/20_util/function/3.cc: Likewise.
3689 * testsuite/20_util/function/4.cc: Likewise.
3690 * testsuite/20_util/function/5.cc: Likewise.
3691 * testsuite/20_util/function/6.cc: Likewise.
3692 * testsuite/20_util/function/7.cc: Likewise.
3693 * testsuite/20_util/function/8.cc: Likewise.
3694 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3695 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
3696 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
3697 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
3699 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
3700 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
3701 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
3703 * testsuite/20_util/typeindex/hash.cc: Likewise.
3704 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
3705 * testsuite/20_util/typeindex/name.cc: Likewise.
3706 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
3707 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
3709 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
3711 * testsuite/22_locale/locale/13630.cc: Check type without using
3713 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
3715 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
3716 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
3717 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
3718 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
3719 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3720 * testsuite/experimental/any/observers/type.cc: Likewise.
3721 * testsuite/experimental/memory_resource/resource_adaptor.cc:
3723 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
3725 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
3726 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
3727 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
3728 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
3729 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
3730 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
3731 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
3732 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
3733 * testsuite/tr2/bases/value.cc: Likewise.
3734 * testsuite/tr2/direct_bases/value.cc: Likewise.
3735 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
3738 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3741 * include/std/array (array::size(), array::max_size())
3742 (array::empty(), array::data()): Add always_inline attribute.
3744 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3747 * include/std/array (__array_traits::_S_ref): Remove.
3748 (__array_traits::_S_ptr): Remove.
3749 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
3750 to provide an array-like API.
3751 (array::_AT_Type): Remove public typeef.
3752 (array::operator[], array::at, array::front, array::back): Use
3753 index operator to access _M_elems instead of _S_ref.
3754 (array::data): Use implicit conversion from _M_elems to pointer.
3755 (swap(array&, array&)): Use __enable_if_t helper.
3756 (get<I>): Use index operator to access _M_elems.
3757 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3758 Adjust dg-error line numbers.
3760 2022-05-03 Alexandre Oliva <oliva@adacore.com>
3763 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
3764 with conditional for floating-point overloads of from_char.
3766 2022-05-02 Patrick Palka <ppalka@redhat.com>
3769 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
3770 two delimeters for the exponent part in the form of a possibly
3771 NULL string of length two. Don't use std::tolower.
3772 (pattern): Adjust calls to find_end_of_float accordingly.
3774 2022-05-02 Patrick Palka <ppalka@redhat.com>
3777 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
3778 Also accept 'P' as the start of the exponent.
3779 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
3781 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
3784 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
3786 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
3787 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
3788 symbols as aliases for corresponding symbols without abi-tag.
3790 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3792 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3793 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3795 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3796 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3799 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
3802 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
3803 directory_iterator constructor, and check on each iteration.
3804 * src/filesystem/ops.cc (fs::copy): Likewise.
3805 * testsuite/27_io/filesystem/operations/copy.cc: Check for
3806 errors during recursion.
3807 * testsuite/experimental/filesystem/operations/copy.cc:
3810 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
3812 * config/abi/pre/gnu-versioned-namespace.ver: Remove
3813 std::random_device::* pattern.
3815 2022-04-27 Jakub Jelinek <jakub@redhat.com>
3817 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3818 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3819 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3820 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3821 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3822 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3823 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3824 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3826 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
3828 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
3829 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
3830 (StdAtomicPrinter): New printer.
3831 (build_libstdcxx_dictionary): Register new printer.
3832 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
3833 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
3836 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3838 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
3839 constructor for constant initialization from nullptr_t.
3840 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3841 Check for new constructor.
3843 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3845 * include/bits/fs_path.h (hash<filesystem::path>): Define.
3846 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3847 Check std::hash specialization.
3849 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3851 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
3853 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3855 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
3856 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
3858 * include/std/version (__cpp_lib_constexpr_memory): Define new
3860 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
3861 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
3862 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
3863 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
3864 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
3865 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
3868 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3871 * include/std/future (packaged_task): Add deduction guides.
3872 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
3874 2022-04-25 Philipp Fent <fent@in.tum.de>
3876 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
3878 (StdInitializerListPrinter): Define new printer.
3879 (build_libstdcxx_dictionary): Register new printer.
3880 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
3883 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
3886 * include/bits/atomic_base.h (atomic_flag::notify_one,
3887 notify_all): Remove const qualification.
3888 (__atomic_base::notify_one, notify_all): Likewise.
3889 * include/std/atomic (atomic<bool>::notify_one, notify_all):
3891 (atomic::notify_one, notify_all): Likewise.
3892 (atomic<T*>::notify_one, notify_all): Likewise.
3893 (atomic_notify_one, atomic_notify_all): Likewise.
3894 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
3895 to account for change in notify_one/notify_all signature.
3897 2022-04-21 Patrick Palka <ppalka@redhat.com>
3899 * include/std/charconv (__from_chars_alnum_to_val_table):
3900 Simplify initialization of __lower/__upper_letters.
3901 (__from_chars_alnum_to_val): Default the template parameter to
3903 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
3904 assume the uppercase and lowercase letters are contiguous.
3905 (__floating_from_chars_hex): Likewise.
3907 2022-04-21 Patrick Palka <ppalka@redhat.com>
3911 * include/std/charconv (__from_chars_alnum_to_val): Make
3912 initializer for __table dependent in an artificial way.
3914 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
3917 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
3919 * testsuite/20_util/from_chars/pr105324.cc: New test.
3921 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3923 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
3924 Check correct feature test macro.
3926 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3929 * doc/xml/manual/prerequisites.xml: Document libiconv
3931 * doc/html/manual/setup.html: Regenerate.
3932 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
3933 * src/Makefile.in: Regenerate.
3935 2022-04-19 Patrick Palka <ppalka@redhat.com>
3937 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
3939 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
3940 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
3942 (__floating_to_chars_precision): Likewise.
3944 2022-04-19 Philipp Fent <fent@in.tum.de>
3946 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
3947 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
3949 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
3951 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
3952 * configure: Regenerate.
3954 2022-04-18 Patrick Palka <ppalka@redhat.com>
3956 * include/std/charconv (__from_chars_pow2_base): Manually
3957 unroll the first iteration of the main loop and simplify
3960 2022-04-15 Patrick Palka <ppalka@redhat.com>
3963 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
3964 __first twice at the start.
3965 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
3967 2022-04-15 Patrick Palka <ppalka@redhat.com>
3969 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
3970 (__from_chars_alnum_to_val): Define.
3971 (__from_chars_binary): Rename to ...
3972 (__from_chars_pow2_base): ... this. Generalize to handle any
3973 power-of-two base using __from_chars_alnum_to_val.
3974 (__from_chars_digit): Optimize digit recognition to a single
3975 test instead of two tests. Use [[__unlikely___]] attribute.
3976 (__from_chars_alpha_to_num): Remove.
3977 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
3978 nested loop for the overflow case. Maintain a lower bound
3979 on the number of available bits in the result and use it to
3980 omit the overflow check.
3981 (from_chars): Adjust appropriately.
3982 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
3983 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
3984 to recognize a hex digit instead.
3986 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
3988 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
3990 * configure: Regenerate.
3992 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3994 * doc/xml/manual/intro.xml: Fix comment.
3996 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3998 * include/precompiled/stdc++.h: Include <stacktrace> and
3999 <stdatomic.h> for C++23.
4001 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
4004 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
4006 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
4008 * include/std/optional (__cpp_lib_optional): Define new value
4010 (__cpp_lib_monadic_optional): Remove.
4011 * include/std/version (__cpp_lib_constexpr_vector): Define.
4012 (__cpp_lib_stdatomic_h): Define.
4013 (__cpp_lib_optional): Define new value for C++23.
4014 (__cpp_lib_monadic_optional): Remove.
4015 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
4016 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
4017 * testsuite/20_util/optional/version.cc: Likewise.
4018 * testsuite/23_containers/vector/cons/constexpr.cc: Check
4020 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
4022 * testsuite/20_util/optional/monadic/version.cc: Removed.
4023 * testsuite/23_containers/vector/requirements/version.cc: New test.
4024 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
4026 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4028 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
4029 * config.h.in: Regenerate.
4030 * configure: Regenerate.
4032 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4034 * include/std/stacktrace (basic_stacktrace::current): Reallocate
4035 a smaller container if the unused capacity is larger than the
4038 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4040 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
4041 or _Impl::_M_assign to initialize elements in allocated storage.
4042 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
4044 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
4045 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
4047 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
4048 new element using allocator.
4049 (basic_stacktrace::_Impl::_M_clone): New function.
4050 (basic_stacktrace::_Impl::_M_xclone): New function.
4051 (basic_stacktrace::_Impl::_M_assign): New function.
4053 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4055 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
4056 Use nothrow new instead of try block for std::allocator.
4057 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
4060 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4062 * include/std/stacktrace (basic_stacktrace::current): Replace
4063 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
4064 Check return value of backtrace_simple when max depth given.
4065 (basic_stacktrace::_M_reserve): Remove.
4066 (basic_stacktrace::_S_curr_cb): Remove.
4067 (basic_stacktrace::_M_prepare(size_type)): New function to
4068 reserve initial capacity and return callback.
4069 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
4070 and remove redundant zeroing of _M_frames and _M_capacity.
4071 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
4072 attribute. Assign _Impl instead of swapping.
4073 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
4075 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4077 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
4078 Change [[unlikely]] attribute to [[likely]].
4080 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4083 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
4084 Fix allocator usage in constructors.
4085 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
4086 try to reallocate using const allocator.
4087 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
4088 if-constexpr with non-constant condition. Do not allocate new
4089 storage if allocator propagates. Do not set _M_size if
4091 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
4092 assertion that non-propagating allocators are equal.
4093 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
4095 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4097 * include/std/stacktrace (basic_stacktrace::current): Duplicate
4098 implementation into each overload. Add noinline attribute and
4100 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
4101 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
4102 (basic_stacktrace::_Impl::_S_max_size): New function defining
4103 maximum size in terms of allocator and size_type.
4104 (basic_stacktrace::_Impl::_M_allocate): Check against
4106 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
4107 for non-constexpr checks. Check line number is correct.
4109 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4111 * testsuite/20_util/stacktrace/entry.cc: Moved to...
4112 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
4113 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
4114 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
4115 * testsuite/20_util/stacktrace/version.cc: Moved to...
4116 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
4118 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4120 * include/experimental/bits/fs_path.h (path): Define special
4121 members after path::_Cmpt is complete.
4123 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
4126 * include/std/expected
4127 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
4128 * testsuite/20_util/expected/cons.cc: Check constructor.
4130 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
4133 * include/std/expected (expected<void, E>::swap): Set
4134 _M_has_value to false for objects that previously had a value.
4135 * testsuite/20_util/expected/swap.cc: Fix test to check void
4138 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
4141 * include/std/expected (bad_expected_access): Move constructor
4143 * testsuite/20_util/expected/bad.cc: New test.
4145 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
4147 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
4150 2022-04-02 Jakub Jelinek <jakub@redhat.com>
4153 * include/std/source_location (std::source_location::__impl): Move
4154 definition before using __builtin_ret_type.
4156 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
4158 * include/std/utility (unreachable): Define for C++23.
4159 * include/std/version (__cpp_lib_unreachable): Define.
4160 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
4161 arguments. Handle only the function being given.
4162 * testsuite/20_util/unreachable/1.cc: New test.
4163 * testsuite/20_util/unreachable/version.cc: New test.
4165 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
4167 * include/experimental/bits/fs_fwd.h (copy_file): Remove
4168 incorrect noexcept from declaration.
4169 * include/experimental/bits/fs_path.h (path::begin, path::end):
4170 Add noexcept to declarations, to match definitions.
4172 2022-04-01 Timm Bäder <tbaeder@redhat.com>
4174 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
4175 * include/experimental/bits/fs_ops.h: Likewise.
4177 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
4179 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
4181 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4183 * testsuite/18_support/exception/38732.cc: Disable for C++23.
4184 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
4185 * testsuite/18_support/unexpected_handler.cc: Likewise.
4187 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4189 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
4190 static data members for _Fp_fmt enumerators.
4192 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4194 * include/std/version (__cpp_lib_variant): Fix conditions to
4196 (__cpp_lib_expected): Fix condition to match <expected>.
4198 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
4200 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
4201 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
4202 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
4203 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
4204 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
4205 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
4206 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
4207 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
4209 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
4211 * doc/doxygen/user.cfg.in: Add new header.
4212 * include/Makefile.am: Likewise.
4213 * include/Makefile.in: Regenerate.
4214 * include/precompiled/stdc++.h: Add new header.
4215 * include/std/version (__cpp_lib_expected): Define.
4216 * libsupc++/exception [__cplusplus > 202002] (unexpected)
4217 (unexpected_handler, set_unexpected): Do not declare for C++23.
4218 * include/std/expected: New file.
4219 * testsuite/20_util/expected/assign.cc: New test.
4220 * testsuite/20_util/expected/cons.cc: New test.
4221 * testsuite/20_util/expected/illformed_neg.cc: New test.
4222 * testsuite/20_util/expected/observers.cc: New test.
4223 * testsuite/20_util/expected/requirements.cc: New test.
4224 * testsuite/20_util/expected/swap.cc: New test.
4225 * testsuite/20_util/expected/synopsis.cc: New test.
4226 * testsuite/20_util/expected/unexpected.cc: New test.
4227 * testsuite/20_util/expected/version.cc: New test.
4229 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
4231 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
4234 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4237 * include/std/bit (bit_cast): Add constraints.
4238 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
4240 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4242 * include/std/version [!_GLIBCXX_HOSTED]
4243 (__cpp_lib_hardware_interference_size): Define for freestanding.
4244 (__cpp_lib_bit_cast): Likewise.
4245 (__cpp_lib_is_layout_compatible): Likewise.
4246 (__cpp_lib_is_pointer_interconvertible): Likewise.
4247 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
4249 (__cpp_lib_invoke_r): Likewise.
4250 (__cpp_lib_ios_noreplace): Likewise.
4251 (__cpp_lib_monadic_optional): Likewise.
4252 (__cpp_lib_move_only_function): Likewise.
4253 (__cpp_lib_spanstream): Likewise.
4254 (__cpp_lib_stacktrace): Likewise.
4255 (__cpp_lib_string_contains): Likewise.
4256 (__cpp_lib_string_resize_and_overwrite): Likewise.
4257 (__cpp_lib_to_underlying): Likewise.
4259 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4262 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
4263 <bits/atomic_wait.h> for freestanding.
4265 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
4267 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
4268 Conditionalize call to fesetround.
4270 2022-03-21 Jakub Jelinek <jakub@redhat.com>
4273 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
4274 isn't overloaded if __clang__ is defined.
4276 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
4279 * include/std/any (any(T&&)): Revert change to constraints.
4280 * testsuite/20_util/any/cons/104242.cc: New test.
4282 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
4285 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
4287 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
4288 (__pstl::__internal::__except_handler): Use std::__terminate
4289 instead of std::terminate.
4290 * src/c++17/fs_path.cc: Include <array>.
4291 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
4293 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
4294 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
4295 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
4296 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
4297 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
4298 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
4299 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
4300 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
4302 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
4304 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
4306 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
4308 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
4310 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
4312 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
4314 * testsuite/25_algorithms/max/constrained.cc: Likewise.
4315 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
4316 * testsuite/25_algorithms/min/constrained.cc: Likewise.
4317 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
4318 * testsuite/25_algorithms/minmax_element/constrained.cc:
4320 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
4321 * testsuite/25_algorithms/move/93872.cc: Likewise.
4322 * testsuite/25_algorithms/move_backward/93872.cc: Include
4324 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
4326 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
4327 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
4329 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
4330 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
4331 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
4332 * testsuite/25_algorithms/set_difference/constrained.cc:
4334 * testsuite/25_algorithms/set_intersection/constexpr.cc:
4336 * testsuite/25_algorithms/set_intersection/constrained.cc:
4338 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
4340 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
4341 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
4342 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
4343 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
4344 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
4345 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
4346 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
4347 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
4348 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
4349 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
4350 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
4351 * testsuite/std/ranges/adaptors/split.cc: Likewise.
4353 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4356 * include/bits/fs_path.h (path::make_preferred): Use
4357 handwritten loop instead of std::replace.
4359 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4361 PR middle-end/104966
4362 * include/bits/locale_facets_nonio.tcc
4363 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
4364 make all string copies before any stores to *this.
4366 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4368 * testsuite/util/testsuite_character.h: Fix comment.
4370 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4373 * config/abi/pre/gnu.ver: Make version for std::from_chars
4374 depend on HAVE_USELOCALE macro.
4375 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
4376 std::from_chars for floating-point types as undesignated if
4377 not found in the baseline symbols file.
4379 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4381 * include/std/charconv (__cpp_lib_to_chars): Only define when
4382 both from_chars and to_chars are supported for floating-point
4384 (from_chars, to_chars): Adjust preprocessor conditions guarding
4386 * include/std/version (__cpp_lib_to_chars): Adjust condition to
4387 match <charconv> definition.
4388 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
4390 (from_chars): Simplify preprocessor checks and use
4391 from_chars_strtod when appropriate.
4393 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
4396 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
4397 hold octets that will be left-shifted.
4399 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4402 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
4403 before using fast_float.
4405 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
4408 * include/bits/this_thread_sleep.h: Fix order of #endif and
4409 closing brace of namespace.
4411 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4413 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
4416 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4418 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
4421 2022-03-09 Patrick Palka <ppalka@redhat.com>
4424 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
4425 Be explicit when narrowing the shifted effective_mantissa,
4426 since it may have an integer-class type.
4428 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
4430 * include/bits/uses_allocator_args.h: Remove incorrect copyright
4433 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
4436 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
4437 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
4438 (__is_constant_evaluated): Add visibility pragma.
4440 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4442 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
4445 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
4447 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
4449 (__terminate): Likewise.
4451 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
4453 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
4454 inside #if condition.
4456 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4459 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
4462 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4464 * testsuite/17_intro/names.cc (func): Undef on AIX.
4466 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4469 * libsupc++/compare (strong_order): Add missing support for
4470 floating-point types.
4471 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
4474 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
4476 PR middle-end/103984
4477 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
4478 default member initializer.
4480 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
4483 * include/std/source_location (source_location::current): Use
4484 deduced type of __builtin_source_location().
4486 2022-02-22 Patrick Palka <ppalka@redhat.com>
4488 * include/bits/ranges_base.h (__detail::__is_initializer_list):
4490 (viewable_range): Adjust as per P2415R2.
4491 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4492 * include/std/ranges (owning_view): Define as per P2415R2.
4493 (enable_borrowed_range<owning_view>): Likewise.
4494 (views::__detail::__can_subrange): Replace with ...
4495 (views::__detail::__can_owning_view): ... this.
4496 (views::_All::_S_noexcept): Sync with operator().
4497 (views::_All::operator()): Use owning_view instead of subrange
4499 * include/std/version (__cpp_lib_ranges): Adjust value.
4500 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
4501 views::all uses owning_view instead of subrange.
4503 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
4504 now that rvalue non-view non-borrowed ranges are viewable.
4505 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
4507 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4510 * doc/xml/manual/evolution.xml: Document deprecation.
4511 * doc/html/manual/api.html: Regenerate.
4512 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
4513 Remove default argument.
4514 (insert(const_iterator)): New overload with deprecated attribute.
4515 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
4518 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4520 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
4521 code that call cat->name() on std::error_category objects.
4522 Identify known categories by symbol name and use a hardcoded
4523 name. Print error code values as enumerators where appopriate.
4524 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
4525 name of custom category. Check io_errc and future_errc errors.
4527 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
4530 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
4531 (uninitialized_construct_using_allocator): Add constexpr.
4532 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
4533 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
4535 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4538 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
4539 namespace for IEEE128 long double mode.
4540 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
4541 version and export __gnu_cxx_ieee128::__convert_from_v.
4542 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
4543 Make __ibm128 overload use snprintf directly
4544 * testsuite/util/testsuite_abi.cc: Add new symbol version.
4545 Remove stable IEEE128/LDBL versions.
4547 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4550 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
4552 * include/std/variant: Check feature test macros instead.
4553 * include/std/version: Likewise.
4555 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4557 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4560 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4562 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
4563 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
4565 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4567 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
4570 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4572 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4573 Ignore -Walloc-larger-than warning.
4574 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4576 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
4577 to avoid linker error for __atomic_is_lock_free.
4579 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
4581 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
4582 __waiter_base::_S_do_spin_v): Change memory order from relaxed
4585 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4587 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
4589 (atomic_fetch_xor_explicit): Likewise.
4590 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
4591 arithmetic and logical operations for atomic_int.
4593 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4595 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
4596 when <dirent.h> is not available.
4597 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
4599 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
4602 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
4603 loop inside do loop so that threads failing the wait, reload
4606 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4608 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
4609 parameter to _Dir_base&&.
4610 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
4611 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
4612 parameter to _Dir_base&&.
4614 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4616 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
4617 checking for CAS on correct word size.
4619 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4621 * testsuite/experimental/filesystem/operations/create_directories.cc:
4622 Adjust expected results for Windows.
4624 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4627 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
4628 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
4629 instead of checking for errno values indicating a directory.
4630 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
4631 logic to non-throwing overload.
4632 (fs::remove_all(const path&, error_code&)): Add comments.
4633 * src/filesystem/ops-common.h: Likewise.
4635 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4637 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
4638 type to use portable posix::DIR alias.
4640 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4642 * include/c_compatibility/stdatomic.h [__clang__]: Use
4643 #include_next <stdatomic.h>.
4645 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4647 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
4649 (fs::create_directories): Likewise.
4650 (fs::remove_all): Likewise.
4651 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
4652 (fs::create_directories): Likewise.
4653 (fs::remove_all): Likewise.
4655 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4658 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
4660 * config.h.in: Regenerate.
4661 * configure: Regenerate.
4662 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
4663 remove_all overloads as friends.
4664 (recursive_directory_iterator::__erase): Declare new member
4666 * include/bits/fs_fwd.h (remove, remove_all): Declare.
4667 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
4668 constructor. Pass file descriptor argument to base constructor.
4669 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
4670 (_Dir::unlink, _Dir::rmdir): Define new member functions.
4671 (directory_iterator): Pass filename_only argument to _Dir
4673 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4674 parameters to take a _Dir rvalue instead of creating one.
4675 (_Dir_stack::orig): Add data member for storing original path.
4676 (_Dir_stack::report_error): Define new member function.
4677 (__directory_iterator_nofollow): Move here from dir-common.h and
4678 fix value to be a power of two.
4679 (__directory_iterator_filename_only): Define new constant.
4680 (recursive_directory_iterator): Construct _Dir object and move
4681 into _M_dirs stack. Pass skip_permission_denied argument to first
4683 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4684 (recursive_directory_iterator::__erase): Define new member
4686 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
4687 (fs::remove_all): Use new recursive_directory_iterator::__erase
4689 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
4690 constructor and use openat to implement nofollow semantics.
4691 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
4692 Define new member functions.
4693 (__directory_iterator_nofollow): Move to fs_dir.cc.
4694 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
4696 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
4698 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4699 parameters to take a _Dir rvalue instead of creating one.
4700 (recursive_directory_iterator): Check for new nofollow option.
4701 Construct _Dir object and move into _M_dirs stack. Pass
4702 skip_permission_denied argument to first advance call.
4703 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4704 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
4706 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4708 * include/bits/allocator.h: Qualify std::allocator_traits in
4709 deprecated warnings.
4710 * libsupc++/exception (uncaught_exception): Add suggestion to
4713 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4715 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
4716 Add [[maybe_unused]] attribute.
4717 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
4720 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4722 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
4723 custom comparison function for multiset.
4724 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
4725 comparison function for set.
4727 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4729 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
4730 Change member function to data member of function pointer type.
4732 2022-02-02 Martin Sebor <msebor@redhat.com>
4735 * include/std/array (begin): Declare const member function attribute
4737 (end, rbegin, rend, size, max_size, empty, data): Same.
4738 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
4739 * testsuite/23_containers/array/capacity/max_size.cc: Same.
4740 * testsuite/23_containers/array/capacity/size.cc: Same.
4741 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
4743 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4745 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4746 autoconf macro to check whether d_type is present.
4747 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
4750 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4752 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
4753 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4754 Check follow_directory_symlink option.
4755 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
4758 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4760 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
4761 Reset state to past-the-end iterator on error.
4762 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
4763 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
4765 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
4766 for the TS implementation.
4767 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
4768 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
4770 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4772 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
4774 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4777 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
4778 for stdio_pure and stdio_posix options.
4779 * configure: Regenerate.
4781 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
4783 * include/bits/atomic_wait.h: Change memory order from
4784 Acquire/Release with relaxed loads to SeqCst+Release for
4785 accesses to the waiter's count.
4787 2022-01-31 Martin Liska <mliska@suse.cz>
4789 * acinclude.m4: Detect *_ld_is_mold and use it.
4790 * configure: Regenerate.
4792 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
4794 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
4796 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
4798 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4801 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
4802 Add __builtin_unreachable to loop.
4803 * testsuite/23_containers/deque/100516.cc: New test.
4805 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4807 * include/bits/ranges_base.h (ranges::advance): Avoid signed
4808 overflow. Do nothing if already equal to desired result.
4809 * testsuite/24_iterators/range_operations/advance_overflow.cc:
4812 2022-01-27 Martin Liska <mliska@suse.cz>
4815 * acinclude.m4: Fix typo.
4816 * configure: Regenerate.
4818 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4821 * include/bits/istream.tcc (basic_istream::sentry): Add braces
4823 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
4824 Add pragmas to disable bogus warnings from PR 61596.
4826 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4829 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
4830 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
4831 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
4833 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4836 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4838 * config.h.in: Regenerate.
4839 * configure: Regenerate.
4840 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
4841 and pass it to base class constructor.
4842 (directory_iterator): Pass nofollow flag to _Dir constructor.
4843 (fs::recursive_directory_iterator::increment): Likewise.
4844 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
4845 directory_iterator constructor. Move error check outside loop.
4846 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
4847 constructor and when it's set use ::open with O_NOFOLLOW and
4849 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
4850 and pass it to base class constructor.
4851 (directory_iterator): Pass nofollow flag to _Dir constructor.
4852 (fs::recursive_directory_iterator::increment): Likewise.
4853 * src/filesystem/ops.cc (remove_all): Use nofollow option for
4854 directory_iterator constructor. Move error check outside loop.
4856 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4859 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
4860 mem-initializer for _M_buf.
4861 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
4863 * testsuite/27_io/spanstream/2.cc: New test.
4865 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4867 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
4868 Define macro for case where std::from_chars is implemented in
4869 terms of strtod, strtof or strtold.
4870 (buffer_resource, valid_fmt, find_end_of_float, pattern)
4871 (from_chars_impl, make_result, reserve_string): Do not define
4872 unless USE_STRTOD_FOR_FROM_CHARS is defined.
4873 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
4874 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
4875 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
4878 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4881 * include/bits/hashtable_policy.h (_Map_base): Add partial
4882 specialization for maps with const key types.
4883 * testsuite/23_containers/unordered_map/104174.cc: New test.
4885 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4888 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
4889 Set members to zero without type punning.
4891 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4893 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
4895 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4899 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
4900 Define as type long.
4901 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
4903 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
4904 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
4905 (__cpp_lib_chrono_udls): Likewise.
4906 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
4907 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
4908 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
4910 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
4912 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
4913 (__cpp_lib_sample): Likewise.
4914 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
4916 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
4918 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
4920 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
4922 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
4924 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
4926 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
4928 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
4929 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
4930 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
4932 * include/std/complex (__cpp_lib_complex_udls): Likewise.
4933 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
4934 * include/std/functional (__cpp_lib_not_fn): Likewise.
4935 (__cpp_lib_boyer_moore_searcher): Likewise.
4936 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
4937 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
4938 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
4939 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
4940 * include/std/tuple (__cpp_lib_apply): Likewise.
4941 (__cpp_lib_make_from_tuple): Likewise.
4942 * include/std/type_traits (__cpp_lib_integral_constant_callable)
4943 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
4944 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
4945 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
4946 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
4947 (__cpp_lib_has_unique_object_representations)
4948 (__cpp_lib_is_aggregate): Likewise.
4949 * include/std/version: Likewise.
4950 * libsupc++/new (__cpp_lib_launder): Likewise.
4952 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4954 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
4955 condition for C++17 definition.
4957 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4959 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
4961 (_Sp_atomic::_M_ptr): Add default member-initializer.
4962 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
4963 Check constant initialization.
4964 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
4966 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4968 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
4969 equivalent attribute for Clang.
4970 * src/c++11/future.cc (__constinit): Likewise.
4971 * src/c++11/system_error.cc (__constinit): Likewise.
4972 * src/c++17/memory_resource.cc (__constinit): Likewise.
4974 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4976 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
4977 src/libbacktrace/.libs to LDFLAGS if those directories exist.
4979 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4981 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
4983 * configure: Regenerate.
4985 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4988 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
4991 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4993 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
4994 linker search paths.
4995 * src/Makefile.am: Fix src/debug/libbacktrace build.
4996 * src/Makefile.in: Regenerate.
4997 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
4998 variable. Use symlinks for the source files.
4999 * src/libbacktrace/Makefile.in: Regenerate.
5001 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
5003 * include/experimental/bits/simd.h (__floating_point_flags): Do
5004 not rely on math_errhandling to expand to a constant expression.
5006 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5008 * doc/xml/manual/evolution.xml: Document deprecations.
5009 * doc/xml/manual/status_cxx2017.xml: Update status.
5010 * doc/html/*: Regenerate.
5012 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5014 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
5015 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
5017 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5019 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
5022 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5025 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
5026 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
5028 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5031 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
5033 (operator=(nullptr_t)): Likewise.
5034 * include/bits/cow_string.h: Likewise.
5035 * include/std/string_view (basic_string_view(nullptr_t)):
5037 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
5038 expected error. Add examples that become ill-formed in C++23.
5039 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
5040 Adjust expected errors.
5041 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
5044 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5047 * include/bits/stl_iterator.h (reverse_iterator): Check
5048 __cpp_lib_concepts instead of __cplusplus.
5050 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5053 * include/bits/stl_pair.h (pair): Adjust constraints on
5054 deprecated constructors accepting literal zero as null pointer
5055 constant. Improve wording of deprecated attribute.
5056 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
5057 constructors do not cause ambiguities for copyable types.
5059 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5061 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
5062 non-deprecated alternative.
5064 2022-01-18 Tom Honermann <tom@honermann.net>
5066 * acinclude.m4: Define config macros if uchar.h provides
5067 c8rtomb() and mbrtoc8().
5068 * config.h.in: Regenerate.
5069 * configure: Regenerate.
5070 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
5071 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
5072 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
5073 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
5075 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
5078 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5080 * include/Makefile.am: Install new header.
5081 * include/Makefile.in: Regenerate.
5082 * include/c_compatibility/stdatomic.h: New file.
5083 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
5085 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5088 * src/c++17/fast_float/LOCAL_PATCHES: Update.
5089 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
5090 Define in terms of __BYTE_ORDER__.
5092 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5095 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
5096 * src/c++17/fast_float/fast_float.h (round): Use explicit
5097 template argument list for std::min.
5099 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5101 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
5102 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
5104 * doc/html/manual/status.html: Regenerate.
5106 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5108 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
5110 * configure: Regenerate.
5112 2022-01-17 Patrick Palka <ppalka@redhat.com>
5114 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
5115 Conditionally define, and use it to conditionally include
5117 (from_chars): Use fast_float for float and double when
5120 2022-01-17 Patrick Palka <ppalka@redhat.com>
5122 * src/c++17/fast_float/LOCAL_PATCHES: Update.
5123 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
5124 case of over/underflow, return errc::result_out_of_range and don't
5127 2022-01-17 Patrick Palka <ppalka@redhat.com>
5129 * src/c++17/fast_float/LOCAL_PATCHES: Update.
5130 * src/c++17/fast_float/fast_float.h: Apply local modifications.
5132 2022-01-17 Patrick Palka <ppalka@redhat.com>
5134 * src/c++17/fast_float/LOCAL_PATCHES: New file.
5135 * src/c++17/fast_float/MERGE: New file.
5136 * src/c++17/fast_float/README.md: New file, copied from the
5137 fast_float repository.
5138 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
5139 of the fast_float library.
5141 2022-01-17 Patrick Palka <ppalka@redhat.com>
5143 * src/c++17/floating_from_chars.cc: Include <bit>.
5144 (ascii_to_hexit, starts_with_ci): Conditionally define.
5145 (__floating_from_chars_hex): Conditionally define.
5146 (from_chars): Use __floating_from_chars_hex for
5147 chars_format::hex parsing of binary32/64 float/double.
5148 (testsuite/20_util/from_chars/7.cc): New test.
5149 * testsuite/20_util/from_chars/7.cc: New file.
5151 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5153 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
5154 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
5155 * include/Makefile.am: Add new header.
5156 * include/Makefile.in: Regenerate.
5157 * include/std/stacktrace: New header.
5158 * include/std/version (__cpp_lib_stacktrace): Define.
5159 * Makefile.in: Regenerate.
5160 * config.h.in: Regenerate.
5161 * configure: Regenerate.
5162 * doc/Makefile.in: Regenerate.
5163 * libsupc++/Makefile.in: Regenerate.
5164 * po/Makefile.in: Regenerate.
5165 * python/Makefile.in: Regenerate.
5166 * src/Makefile.am: Regenerate.
5167 * src/Makefile.in: Regenerate.
5168 * src/c++11/Makefile.in: Regenerate.
5169 * src/c++17/Makefile.in: Regenerate.
5170 * src/c++20/Makefile.in: Regenerate.
5171 * src/c++98/Makefile.in: Regenerate.
5172 * src/filesystem/Makefile.in: Regenerate.
5173 * testsuite/Makefile.in: Regenerate.
5174 * src/libbacktrace/Makefile.am: New file.
5175 * src/libbacktrace/Makefile.in: New file.
5176 * src/libbacktrace/backtrace-rename.h: New file.
5177 * src/libbacktrace/backtrace-supported.h.in: New file.
5178 * src/libbacktrace/config.h.in: New file.
5179 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
5181 * testsuite/20_util/stacktrace/entry.cc: New test.
5182 * testsuite/20_util/stacktrace/synopsis.cc: New test.
5183 * testsuite/20_util/stacktrace/version.cc: New test.
5185 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5187 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
5189 * doc/html/manual/status.html: Regenerate.
5191 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5194 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
5195 * include/Makefile.in: Regenerate.
5196 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
5198 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
5200 * include/experimental/bits/simd.h (__floating_point_flags): Do
5201 not rely on the presence of the math_errhandling macro.
5203 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5205 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
5206 to qualified-id for dependent type.
5208 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5210 * doc/xml/manual/status_cxx2020.xml: Update.
5211 * doc/html/manual/status.html: Regenerate.
5213 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5214 Thomas Rodgers <trodgers@redhat.com>
5216 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
5218 (_Sp_atomic): New class template.
5219 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
5221 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
5222 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
5223 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
5224 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
5226 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
5228 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
5230 * include/experimental/bits/simd.h: Move feature detection bools
5231 and add __have_avx512bitalg, __have_avx512vbmi2,
5232 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
5233 __have_avx512vnni, __have_avx512vpopcntdq.
5234 (__detail::__machine_flags): New function which returns a unique
5235 uint64 depending on relevant -m and -f flags.
5236 (__detail::__odr_helper): New type alias for either an anonymous
5237 type or a type specialized with the __machine_flags number.
5238 (_SimdIntOperators): Change template parameters from _Impl to
5239 _Tp, _Abi because _Impl now has an __odr_helper parameter which
5240 may be _OdrEnforcer from the anonymous namespace, which makes
5241 for a bad base class.
5242 (many): Either add __odr_helper template parameter or mark as
5244 * include/experimental/bits/simd_detail.h: Add defines for
5245 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
5246 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
5247 * include/experimental/bits/simd_builtin.h: Add __odr_helper
5248 template parameter or mark as always_inline.
5249 * include/experimental/bits/simd_fixed_size.h: Ditto.
5250 * include/experimental/bits/simd_math.h: Ditto.
5251 * include/experimental/bits/simd_scalar.h: Ditto.
5252 * include/experimental/bits/simd_neon.h: Add __odr_helper
5254 * include/experimental/bits/simd_ppc.h: Ditto.
5255 * include/experimental/bits/simd_x86.h: Ditto.
5257 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
5259 * testsuite/22_locale/numpunct/members/char/3.cc:
5260 Require pt_PT locale instead of nl_NL.
5261 (test02): Use pt_PT locale instead of nl_NL.
5263 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5268 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
5270 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
5271 Disable deprecated warnings for base classes.
5272 (_Reference_wrapper_base): Likewise.
5273 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
5274 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
5275 * include/bits/stl_function.h (unary_function, binary_function):
5276 Add deprecated attribute.
5277 (unary_negate, not1, binary_negate, not2, ptr_fun)
5278 (pointer_to_unary_function, pointer_to_binary_function)
5279 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
5280 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
5281 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
5283 * include/bits/stl_iterator.h: Disable deprecated warnings for
5284 std::iterator base classes.
5285 * include/bits/stl_iterator_base_types.h (iterator): Add
5286 deprecated attribute.
5287 * include/bits/stl_map.h (map::value_compare): Disable
5288 deprecated warnings for base class.
5289 * include/bits/stl_multimap.h (multimap::value_compare):
5291 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
5292 Add deprecated attribute.
5293 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
5294 * include/bits/stream_iterator.h: Disable deprecated warnings.
5295 * include/bits/streambuf_iterator.h: Likewise.
5296 * include/ext/bitmap_allocator.h: Remove unary_function base
5298 * include/ext/functional: Disable deprecated warnings.
5299 * include/ext/rope: Likewise.
5300 * include/ext/throw_allocator.h: Likewise.
5301 * include/std/type_traits (result_of): Add deprecated attribute.
5302 * include/tr1/functional: Disable deprecated warnings.
5303 * include/tr1/functional_hash.h: Likewise.
5304 * testsuite/20_util/function_objects/binders/1.cc: Add
5305 -Wno-disable-deprecations.
5306 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
5307 * testsuite/20_util/function_objects/constexpr.cc: Add
5309 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
5310 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
5311 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
5313 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
5315 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
5317 * testsuite/20_util/reference_wrapper/24803.cc:
5319 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
5320 C++20 and check for absence of nested types.
5321 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
5322 std::binary_function base class.
5323 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
5324 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
5325 std::iterator base class.
5326 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
5328 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
5330 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
5332 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
5334 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
5336 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
5338 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
5340 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
5342 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
5344 * testsuite/25_algorithms/copy/34595.cc:
5346 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
5348 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
5349 Disable deprecated warnings.
5350 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
5352 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
5354 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
5356 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
5358 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
5360 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
5362 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
5364 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
5366 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
5368 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
5370 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
5372 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
5374 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
5376 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
5378 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
5380 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
5382 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
5384 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
5386 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
5388 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
5390 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
5392 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
5394 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
5396 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
5398 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
5400 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
5402 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
5404 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
5406 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
5408 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
5410 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
5412 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
5414 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
5416 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
5418 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
5420 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
5422 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
5424 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
5426 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
5428 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
5430 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
5432 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
5434 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
5436 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
5438 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
5440 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
5442 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
5444 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
5446 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
5448 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
5450 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
5451 Disable deprecated warnings.
5452 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
5454 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
5455 std::unary_function base classes.
5456 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5457 Remove std::iterator base classes.
5459 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5461 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
5462 Correct type of macro value.
5463 (shared_ptr): Add additional friend declarations.
5464 (make_shared, allocate_shared): Constrain existing overloads and
5465 remove static_assert.
5466 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
5468 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
5469 specialization for use with make_shared_for_overwrite.
5470 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5471 (_Sp_counted_array_base): New class template.
5472 (_Sp_counted_array): New class template.
5473 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
5474 New constructor for allocating shared arrays.
5475 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
5476 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
5478 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5479 (__cpp_lib_smart_ptr_for_overwrite): New macro.
5480 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
5482 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
5483 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
5484 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
5485 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
5486 feature test macro. Test non-trivial default-initialization.
5488 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5490 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
5491 Also cast away cv-qualifiers when converting pointer to void.
5492 * testsuite/20_util/allocator/void.cc: Test construct function
5493 with cv-qualified types.
5495 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5498 * include/bits/stl_iterator.h (common_iterator): Use
5499 std::construct_at instead of placement new.
5500 * testsuite/24_iterators/common_iterator/1.cc: Check copy
5501 construction is usable in constant expressions.
5503 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5505 * doc/xml/manual/status_cxx2011.xml: Document new tokens
5506 accepted by std::random_device constructor.
5507 * doc/html/manual/status.html: Regenerate.
5509 2022-01-12 Patrick Palka <ppalka@redhat.com>
5511 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
5514 2022-01-12 Patrick Palka <ppalka@redhat.com>
5517 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5518 Track the excess precision separately from the effective
5519 precision. Avoid overflow in bounds check by splitting it into
5521 (__floating_to_chars_precision): Avoid overflow in bounds checks
5523 * testsuite/20_util/to_chars/103955.cc: New test.
5525 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5528 * include/Makefile.am: Install <source_location> for
5530 * include/Makefile.in: Regenerate.
5531 * include/std/version (__cpp_lib_source_location): Define for
5534 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5536 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
5537 Add neoxcept (LWG 3593).
5539 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5541 * include/std/ranges (ranges::__detail::__box): Add constexpr to
5542 assignment operators (LWG 3572).
5543 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
5544 view that uses copyable-box.
5546 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5549 * include/Makefile.am: Install <coroutine> for freestanding.
5550 * include/Makefile.in: Regenerate.
5551 * include/std/coroutine: Adjust headers and preprocessor
5553 (__coroutine_traits_impl): Use concepts when available.
5554 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
5556 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5558 * include/std/ostream (operator<<(basic_ostream&, charT)):
5559 Use unformatted input if no padding is needed.
5560 (operator<<(basic_ostream<char>&, char)): Likewise.
5562 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5565 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5567 * include/std/variant (__cpp_lib_variant): Only define C++20
5568 value when the compiler is known to support conditionally
5569 trivial destructors.
5570 * include/std/version (__cpp_lib_variant): Likewise.
5572 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5574 * include/bits/stl_iterator.h (common_iterator): Add constexpr
5575 to all member functions (LWG 3574).
5576 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
5577 tests as constant expressions.
5578 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
5580 2022-01-10 Jakub Jelinek <jakub@redhat.com>
5583 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
5584 (time_get::_M_extract_via_format): Declare new method with
5585 __time_get_state& as an extra argument.
5586 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
5587 __state argument, set various fields in it while parsing. Handle %j,
5588 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
5589 for %p immediately. Add a wrapper around the method without the
5590 __state argument for backwards compatibility.
5591 (_M_extract_num): Remove all __len == 4 special cases.
5592 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
5593 initialize __state, pass it to _M_extract_via_format and finalize it
5595 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
5596 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
5597 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
5598 version, don't call do_get but call _M_extract_via_format instead to
5600 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
5601 with extra __time_get_state and __time_get_state::_M_finalize_state.
5602 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
5603 day_of_the_year): New functions in anon namespace.
5604 (mon_yday): New var in anon namespace.
5605 (__time_get_state::_M_finalize_state): Define.
5606 * testsuite/22_locale/time_get/get/char/4.cc: New test.
5607 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
5608 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
5609 as year 197AD instead of error.
5610 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
5611 year 2001 instead of error.
5612 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
5613 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
5614 197 as year 197AD instead of error.
5615 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
5616 1 as year 2001 instead of error.
5617 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
5619 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5622 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
5623 nothing for freestanding builds.
5624 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
5625 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
5626 with --without-headers. Do not use GCC_HEADER_STDINT for
5627 freestanding builds.
5628 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
5629 for freestanding builds.
5630 * configure: Regenerate.
5631 * Makefile.in: Regenerate.
5632 * doc/Makefile.in: Regenerate.
5633 * include/Makefile.in: Regenerate.
5634 * libsupc++/Makefile.in: Regenerate.
5635 * po/Makefile.in: Regenerate.
5636 * python/Makefile.in: Regenerate.
5637 * src/Makefile.in: Regenerate.
5638 * src/c++11/Makefile.in: Regenerate.
5639 * src/c++17/Makefile.in: Regenerate.
5640 * src/c++20/Makefile.in: Regenerate.
5641 * src/c++98/Makefile.in: Regenerate.
5642 * src/filesystem/Makefile.in: Regenerate.
5643 * testsuite/Makefile.in: Regenerate.
5645 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5647 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
5648 Add dg-timeout-factor directive.
5649 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
5650 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
5651 * testsuite/28_regex/match_results/102667.cc: Likewise.
5653 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5655 * doc/xml/manual/using.xml: Update documentation around default
5657 * doc/html/*: Regenerate.
5659 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5662 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
5663 * src/c++17/Makefile.in: Regenerate.
5665 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
5667 * testsuite/18_support/type_info/constexpr.cc: Add explicit
5668 -fdelete-null-pointer-checks option.
5670 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
5671 Jonathan Wakely <jwakely@redhat.com>
5674 * include/bits/forward_list.tcc (forward_list::merge): Check for
5676 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
5678 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5680 * include/bits/regex.h (basic_regex, match_results): Qualify
5681 name in friend declaration, to work around Clang bug.
5683 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5685 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
5687 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5690 * include/std/charconv (__from_chars_alpha_to_num): Return
5691 char instead of unsigned char. Change invalid return value to
5692 127 instead of using numeric trait.
5693 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
5694 Change type of variable to char.
5696 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
5699 * include/bits/hashtable_policy.h
5700 (_Hashtable_hash_traits<_Hash>): New.
5701 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
5702 (_Hashtable_base<>::_M_key_equals): New.
5703 (_Hashtable_base<>::_M_equals): Use latter.
5704 (_Hashtable_base<>::_M_key_equals_tr): New.
5705 (_Hashtable_base<>::_M_equals_tr): Use latter.
5706 * include/bits/hashtable.h
5707 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
5708 (_Hashtable<>::find): Loop through elements to look for key if size is lower
5709 than __small_size_threshold().
5710 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
5711 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
5712 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
5713 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
5714 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
5715 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
5716 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
5717 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
5718 * testsuite/util/testsuite_performance.h
5719 (report_performance): Use 9 width to display memory.
5720 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
5721 New performance test case.
5723 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5726 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
5727 Relax constraints on string_view parameter.
5728 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
5730 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
5732 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5734 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
5736 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
5737 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
5738 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
5740 (type_info::__equal): Define alias symbol.
5741 * libsupc++/typeinfo (type_info::before): Combine different
5742 implementations into one.
5743 (type_info::operator==): Likewise. Use address equality for
5744 constant evaluation. Call __equal for targets that require the
5745 definition to be non-inline.
5746 * testsuite/18_support/type_info/constexpr.cc: New test.
5748 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5750 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
5751 class and virtual functions as 'final'.
5752 (io_category_instance): Use constinit union to make the object
5754 * src/c++11/future.cc (future_error_category): Define class and
5755 virtual functions as 'final'.
5756 (future_category_instance): Use constinit union.
5758 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5760 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
5761 versioned namespace from the type name that is printed.
5763 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5765 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
5766 printer for std::regex NFA states.
5768 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5770 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
5771 placeholders in comments.
5772 * testsuite/23_containers/forward_list/operations/2.cc:
5774 * testsuite/23_containers/forward_list/operations/3.cc:
5776 * testsuite/23_containers/forward_list/operations/4.cc:
5778 * testsuite/23_containers/forward_list/operations/5.cc:
5780 * testsuite/23_containers/forward_list/operations/6.cc:
5782 * testsuite/23_containers/forward_list/operations/7.cc:
5785 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5788 * include/bits/stl_deque.h (operator-): Do not use 0 as null
5791 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5793 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
5794 Use std::_Construct for construct.
5796 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5799 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
5800 * doc/html/faq.html: Regenerate.
5802 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5804 * include/bits/regex.h (__regex_algo_impl): Change __policy and
5805 __match_mode template parameters to be function parameters.
5806 (regex_match, regex_search): Pass policy and match mode as
5808 * include/bits/regex.tcc (__regex_algo_impl): Change template
5809 parameters to function parameters.
5810 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
5811 'if constexpr' for conditions using template parameters.
5812 (_RegexTranslator): Likewise.
5813 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
5815 * testsuite/util/testsuite_regex.h (regex_match_debug)
5816 (regex_search_debug): Move template arguments to function
5819 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5821 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
5822 results even if the match failed.
5824 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5826 * include/bits/regex_compiler.tcc: Adjust all calls to
5827 __throw_regex_error.
5828 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
5830 * include/bits/regex_scanner.tcc: Likewise.
5831 * src/c++11/regex.cc (desc): New helper function.
5832 (regex_error::regex_error(error_type)): Use desc to get a string
5833 corresponding to the error code.
5836 Copyright (C) 2022 Free Software Foundation, Inc.
5838 Copying and distribution of this file, with or without modification,
5839 are permitted in any medium without royalty provided the copyright
5840 notice and this notice are preserved.