]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2022-10-20 Patrick Palka <ppalka@redhat.com>
2
3 * include/std/charconv (__detail::__from_chars_alnum_to_val_table):
4 Redefine as a class template containing the members type, value and
5 _S_make_table. Don't use a local class as the table type.
6 (__detail::__table): Remove.
7 (__detail::__from_chars_alnum_to_val): Adjust after the above.
8
9 2022-10-19 Patrick Palka <ppalka@redhat.com>
10
11 * include/std/ranges (views::__detail::__is_repeat_view): Define
12 and later define a partial specialization.
13 (views::__detail::__take_of_repeat_view): Declare and later define.
14 (views::__detail::__drop_of_repeat_view): Likewise.
15 (views::_Take::operator()): Return a repeat_view if the argument
16 is a repeat_view as per P2474R2.
17 (views::_Drop::operator()): Likewise.
18 (repeat_view): Befriend __take/drop_of_repeat_view.
19 * testsuite/std/ranges/repeat/1.cc (test04): New test.
20
21 2022-10-19 Patrick Palka <ppalka@redhat.com>
22
23 PR libstdc++/107313
24 * include/std/ranges (stride_view::_Iterator::operator-): Fix typo.
25 * testsuite/std/ranges/adaptors/stride/1.cc (test03): New test.
26
27 2022-10-19 LIU Hao <lh_mouse@126.com>
28
29 * src/c++11/thread.cc (get_nprocs): Add new implementation
30 for native Windows targets
31
32 2022-10-19 LIU Hao <lh_mouse@126.com>
33
34 * libsupc++/atexit_thread.cc (__cxa_thread_atexit): Use
35 implementation from mcfgthread if available
36 * libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_release,
37 __cxa_guard_abort): Use implementations from mcfgthread if
38 available
39 * configure: Regenerate
40
41 2022-10-19 Jakub Jelinek <jakub@redhat.com>
42
43 PR c++/106652
44 * include/std/limits: Fix a typo, 202202L -> 202002L.
45 (numeric_limits::<_Float16>::radix, numeric_limits::<_Float32>::radix,
46 numeric_limits::<_Float64>::radix, numeric_limits::<_Float128>::radix,
47 numeric_limits::<__gnu_cxx::__bfloat16_t>::radix): Use __FLT_RADIX__
48 macro instead of type specific macros.
49 * include/c_global/cmath (nextafter(_Float16, _Float16)): New
50 overload.
51 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)):
52 Likewise.
53 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
54 (test_functions): Uncomment nextafter test. Fix up sph_neumann call.
55 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc: New test.
56
57 2022-10-18 Patrick Palka <ppalka@redhat.com>
58
59 * include/std/ranges (stride_view): Define.
60 (stride_view::_Iterator): Define.
61 (views::__detail::__can_stride_view): Define.
62 (views::_Stride, views::stride): Define.
63 * testsuite/std/ranges/adaptors/stride/1.cc: New test.
64
65 2022-10-18 Jakub Jelinek <jakub@redhat.com>
66
67 PR c++/106652
68 * include/std/stdfloat: New file.
69 * include/std/numbers (__glibcxx_numbers): Define and use it
70 for __float128 explicit instantiations as well as
71 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
72 * include/std/atomic (atomic<_Float16>, atomic<_Float32>,
73 atomic<_Float64>, atomic<_Float128>, atomic<__gnu_cxx::__bfloat16_t>):
74 New explicit instantiations.
75 * include/std/type_traits (__is_floating_point_helper<_Float16>,
76 __is_floating_point_helper<_Float32>,
77 __is_floating_point_helper<_Float64>,
78 __is_floating_point_helper<_Float128>,
79 __is_floating_point_helper<__gnu_cxx::__bfloat16_t>): Likewise.
80 * include/std/limits (__glibcxx_concat3_, __glibcxx_concat3,
81 __glibcxx_float_n): Define.
82 (numeric_limits<_Float16>, numeric_limits<_Float32>,
83 numeric_limits<_Float64>, numeric_limits<_Float128>,
84 numeric_limits<__gnu_cxx::__bfloat16_t>): New explicit instantiations.
85 * include/bits/std_abs.h (abs): New overloads for
86 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
87 * include/bits/c++config (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128): Define
88 if long double is IEEE quad.
89 (__gnu_cxx::__bfloat16_t): New using.
90 * include/c_global/cmath (acos, asin, atan, atan2, ceil, cos, cosh,
91 exp, fabs, floor, fmod, frexp, ldexp, log, log10, modf, pow, sin,
92 sinh, sqrt, tan, tanh, fpclassify, isfinite, isinf, isnan, isnormal,
93 signbit, isgreater, isgreaterequal, isless, islessequal,
94 islessgreater, isunordered, acosh, asinh, atanh, cbrt, copysign, erf,
95 erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma,
96 llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
97 nextafter, remainder, rint, round, scalbln, scalbn, tgamma, trunc,
98 lerp): New overloads with _Float{16,32,64,128} or
99 __gnu_cxx::__bfloat16_t types.
100 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
101 Prepare for definition if glibc 2.26 and later implements *f128 APIs
102 but comment out the actual definition for now.
103 * include/ext/type_traits.h (__promote<_Float16>, __promote<_Float32>,
104 __promote<_Float64>, __promote<_Float128>,
105 __promote<__gnu_cxx::__bfloat16_t>): New specializations.
106 * include/Makefile.am (std_headers): Add stdfloat.
107 * include/Makefile.in: Regenerated.
108 * include/precompiled/stdc++.h: Include stdfloat.
109 * testsuite/18_support/headers/stdfloat/types_std.cc: New test.
110 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: New test.
111 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc:
112 New test.
113 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: New test.
114 * testsuite/26_numerics/numbers/4.cc: New test.
115 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc: New test.
116
117 2022-10-17 Jonathan Wakely <jwakely@redhat.com>
118
119 * include/std/charconv (__cpp_lib_constexpr_charconv): Define to
120 correct value.
121 * include/std/version (__cpp_lib_constexpr_charconv): Likewise.
122 * testsuite/20_util/to_chars/constexpr.cc: Check correct value.
123 * testsuite/20_util/to_chars/version.cc: Likewise.
124
125 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
126
127 * src/c++11/debug.cc (print_raw): Move inside #if block.
128
129 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
130
131 * include/bits/charconv.h (__to_chars_10_impl): Add constexpr
132 for C++23. Remove 'static' from array.
133 * include/std/charconv (__cpp_lib_constexpr_charconv): Define.
134 (__to_chars, __to_chars_16): Remove 'static' from array, add
135 constexpr.
136 (__to_chars_10, __to_chars_8, __to_chars_2, __to_chars_i)
137 (to_chars, __raise_and_add, __from_chars_pow2_base)
138 (__from_chars_alnum, from_chars): Add constexpr.
139 (__from_chars_alnum_to_val): Avoid local static during constant
140 evaluation. Add constexpr.
141 * include/std/version (__cpp_lib_constexpr_charconv): Define.
142 * testsuite/20_util/from_chars/constexpr.cc: New test.
143 * testsuite/20_util/to_chars/constexpr.cc: New test.
144 * testsuite/20_util/to_chars/version.cc: New test.
145
146 2022-10-15 Jonathan Wakely <jwakely@redhat.com>
147
148 * include/bits/stl_map.h (map::insert(Pair&&)): Use
149 remove_const_t on argument to __is_pair.
150 * include/bits/stl_pair.h (__is_pair<const pair<T,U>>): Remove
151 partial specialization.
152 * include/bits/uses_allocator_args.h (_Std_pair): Use
153 remove_cv_t as per LWG 3677.
154 * testsuite/20_util/uses_allocator/lwg3677.cc: New test.
155
156 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
157
158 * libsupc++/eh_alloc.cc [USE_POOL]: New macro.
159 [!USE_POOL] (__gnu_cxx::__freeres, pool): Do not define.
160 [_GLIBCXX_EH_POOL_STATIC] (pool::arena): Do not use std::max.
161 (__cxxabiv1::__cxa_allocate_exception) [!USE_POOL]: Do not use
162 pool.
163 (__cxxabiv1::__cxa_free_exception) [!USE_POOL]: Likewise.
164 (__cxxabiv1::__cxa_allocate_dependent_exception) [!USE_POOL]:
165 Likewise.
166 (__cxxabiv1::__cxa_free_dependent_exception) [!USE_POOL]:
167 Likewise.
168
169 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
170
171 * src/c++11/debug.cc (print_raw): Simplify.
172 (print_word): Print indentation by calling fprintf directly.
173 (_Error_formatter::_M_error): Print unindented string by calling
174 fprintf directly.
175
176 2022-10-14 Jonathan Wakely <jwakely@redhat.com>
177
178 * include/std/iostream: Use markdown in Doxygen comment.
179
180 2022-10-12 François Dumont <fdumont@gcc.gnu.org>
181
182 * include/debug/string: Add using _Base::compare.
183 (__gnu_debug::basic_string<>::compare(const basic_string<>&)): Remove.
184 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&)):
185 Remove.
186 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&,
187 size_type, size_type)): Remove.
188 * testsuite/util/testsuite_string.h [_GLIBCXX_TEST_DEBUG_STRING]: Include <debug/string>.
189 * testsuite/21_strings/basic_string/operations/compare/char/1.cc: Include testsuite_string.h
190 and use __gnu_test::string.
191 * testsuite/21_strings/basic_string/operations/compare/char/13650.cc: Likewise.
192 * testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise.
193 * testsuite/21_strings/basic_string/operations/rfind/char/1.cc: Likewise.
194 * testsuite/21_strings/basic_string/operations/rfind/char/2.cc: Likewise.
195 * testsuite/21_strings/basic_string/operations/rfind/char/3.cc: Likewise.
196 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
197 Include testsuite_string.h
198 and use __gnu_test::wstring.
199 * testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc: Likewise.
200 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise.
201
202 2022-10-12 Patrick Palka <ppalka@redhat.com>
203
204 * include/std/ranges (repeat_view): Define.
205 (repeat_view::_Iterator): Define.
206 (views::__detail::__can_repeat_view): Define.
207 (views::__detail::__can_bounded_repeat_view): Define.
208 (views::_Repeat, views::repeat): Define.
209 * testsuite/std/ranges/repeat/1.cc: New test.
210
211 2022-10-12 Martin Liska <mliska@suse.cz>
212
213 * configure: Regenerate.
214
215 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
216
217 PR bootstrap/107221
218 * libsupc++/eh_alloc.cc (pool): Change preprocessor condition
219 for using __mutex from __GTHREADS to _GLIBCXX_HOSTED.
220 (pool::allocate): Remove namespace qualification to use
221 pool::__scoped_lock instead of __gnu_cxx::__scoped_lock.
222
223 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
224
225 PR libstdc++/68606
226 * Makefile.in: Regenerate.
227 * acinclude.m4 (GLIBCXX_EMERGENCY_EH_ALLOC): New macro.
228 * configure: Regenerate.
229 * configure.ac: Use GLIBCXX_EMERGENCY_EH_ALLOC.
230 * crossconfig.m4: Check for secure_getenv.
231 * doc/Makefile.in: Regenerate.
232 * doc/xml/manual/configure.xml: Document new configure options.
233 * doc/xml/manual/evolution.xml: Document addition of tunables.
234 * doc/xml/manual/using_exceptions.xml: Document emergency
235 buffer and tunables.
236 * doc/html/*: Regenerate.
237 * include/Makefile.in: Regenerate.
238 * libsupc++/Makefile.am: Use EH_POOL_FLAGS.
239 * libsupc++/Makefile.in: Regenerate.
240 * libsupc++/eh_alloc.cc (EMERGENCY_OBJ_SIZE): Define in units
241 of sizeof(void*) not including the ABI's exception header.
242 (EMERGENCY_OBJ_COUNT): Define as target-independent calculation
243 based on word size.
244 (MAX_OBJ_COUNT): Define macro for upper limit on pool size.
245 (pool) [_GLIBCXX_EH_POOL_STATIC]: Use fixed-size buffer.
246 (pool::buffer_size_in_bytes): New static member function.
247 (pool::pool): Parse GLIBCXX_TUNABLES environment variable to set
248 pool size at runtime.
249 (pool::in_pool): Use std::less<void*> for total order.
250 (__freeres) [_GLIBCXX_EH_POOL_STATIC]: Do nothing.
251 (__cxa_free_exception, __cxa_free_dependent_exception): Add
252 [[unlikely]] attributes.
253 * po/Makefile.in: Regenerate.
254 * python/Makefile.in: Regenerate.
255 * src/Makefile.in: Regenerate.
256 * src/c++11/Makefile.in: Regenerate.
257 * src/c++17/Makefile.in: Regenerate.
258 * src/c++20/Makefile.in: Regenerate.
259 * src/c++98/Makefile.in: Regenerate.
260 * src/filesystem/Makefile.in: Regenerate.
261 * src/libbacktrace/Makefile.in: Regenerate.
262 * testsuite/Makefile.in: Regenerate.
263
264 2022-10-11 Olivier Hainque <hainque@adacore.com>
265 Olivier Hainque <hainque@adacore.com>
266
267 * configure: Regenerate.
268
269 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
270
271 * include/std/type_traits (make_signed, make_unsigned): Remove
272 constraints on primary template.
273 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
274 Undo changes to expected error in C++20 mode.
275 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
276 Likewise.
277 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
278 Likewise.
279 * testsuite/20_util/make_signed/requirements/uninstantiated.cc:
280 New test.
281 * testsuite/20_util/make_unsigned/requirements/uninstantiated.cc:
282 New test.
283
284 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
285
286 * include/std/type_traits (make_signed, make_unsigned): Add
287 specializations for cv bool. Add requires-clause for C++20 to
288 improve diagnostics for non-integral, non-enum cases.
289 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
290 Check cv bool.
291 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
292 Likewise.
293 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
294 Adjust expected errors for C++20 and later.
295 * testsuite/lib/prune.exp: Prune "in requirements [with ...]"
296 lines from diagnostics.
297
298 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
299
300 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Add libstdcxx-hosted
301 enable arg as an alias for hosted-libstdcxx enable arg.
302 * configure: Regenerate.
303
304 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
305
306 * include/bits/std_function.h: Include <new> but do not include
307 <bits/stl_function.h>.
308 * include/std/functional: Do not include <new>.
309
310 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
311
312 * doc/xml/manual/intro.xml: Add role="bold" attribute to
313 emphasis elements for issue titles.
314 * doc/html/manual/bugs.html: Regenerate.
315
316 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
317
318 * include/Makefile.in: Regenerate.
319
320 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
321
322 * include/bits/invoke.h (__invoke_r): Check
323 __has_builtin(__reference_converts_from_temporary) before using
324 built-in.
325
326 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
327
328 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
329 <sstream header.
330 (test04): Remove constexpr for old std::string ABI and test at
331 runtime.
332
333 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
334
335 * include/std/type_traits (remove_cv): Use __remove_cv built-in.
336 (remove_reference): Use __remove_reference built-in.
337 (remove_cvref): Use __remove_cvref built-in. Remove inheritance
338 for fallback implementation.
339
340 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
341
342 * include/bits/random.h (__is_seed_seq): Replace with ...
343 (_If_seed_seq_for): ... this.
344 * include/ext/random: Adjust to use _If_seed_seq_for.
345
346 2022-10-04 Patrick Palka <ppalka@redhat.com>
347
348 * include/std/ranges (join_with_view::_Iterator::operator*):
349 Replace use of std::visit with manual visitation.
350 (join_with_view::_Iterator::operator++): Likewise.
351 (join_with_view::_Iterator::operator--): Likewise.
352 (join_with_view::_Iterator::iter_move): Likewise.
353 (join_with_view::_Iterator::iter_swap): Likewise.
354
355 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
356
357 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
358 for freestanding.
359
360 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
361
362 PR libstdc++/107139
363 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
364 conditionals.
365
366 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
367
368 PR libstdc++/107134
369 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
370 <stdint-gcc.h> directly.
371
372 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
373
374 PR libstdc++/107135
375 * include/bits/functexcept.h [!_GLIBCXX_HOSTED]
376 (__throw_invalid_argument, __throw_out_of_range)
377 (__throw_out_of_range_fmt, __throw_runtime_error)
378 (__throw_overflow_error): Define inline.
379 * include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]:
380 Replace __builtin_abort with __throw_invalid_argument.
381
382 2022-10-04 Patrick Palka <ppalka@redhat.com>
383
384 * include/std/ranges: Include <variant> for C++23.
385 (__detail::__compatible_joinable_ranges): Define.
386 (__detail::__bidirectional_common): Define.
387 (join_with_view): Define.
388 (join_with_view::_Iterator): Define.
389 (join_with_view::_Sentinel): Define.
390 (views::__detail::__can_join_with_view): Define.
391 (views::_JoinWith, views::join_with): Define.
392 * testsuite/std/ranges/adaptors/join_with/1.cc: New test.
393
394 2022-10-04 Arsen Arsenović <arsen@aarsen.me>
395
396 * include/std/iostream: Use ///< for inline documentation.
397 * include/std/limits: Likewise.
398 * include/experimental/internet: Likewise.
399
400 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
401
402 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
403 * doc/html/manual/status.html: Regenerate.
404
405 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
406
407 PR libstdc++/103626
408 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
409 Require ET hosted.
410 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
411 * testsuite/18_support/new_nothrow.cc: Likewise.
412 * testsuite/20_util/allocator/105975.cc: Likewise.
413 * testsuite/20_util/allocator/14176.cc: Likewise.
414 * testsuite/20_util/allocator/64135.cc: Likewise.
415 * testsuite/20_util/allocator/89510.cc: Likewise.
416 * testsuite/20_util/allocator/lwg3190.cc: Likewise.
417 * testsuite/20_util/allocator/overaligned.cc: Likewise.
418 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
419 * testsuite/20_util/allocator/requirements/constexpr.cc:
420 Likewise.
421 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
422 Likewise.
423 * testsuite/20_util/allocator/requirements/typedefs.cc:
424 Likewise.
425 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
426 Likewise.
427 * testsuite/20_util/allocator/void.cc: Likewise.
428 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
429 * testsuite/20_util/allocator_traits/header.cc: Likewise.
430 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
431 Likewise.
432 * testsuite/20_util/allocator_traits/members/pointers.cc:
433 Likewise.
434 * testsuite/20_util/allocator_traits/requirements/typedefs.cc:
435 Likewise.
436 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
437 Likewise.
438 * testsuite/20_util/bind/42593.cc: Likewise.
439 * testsuite/20_util/bitset/access/dr396.cc: Likewise.
440 * testsuite/20_util/bitset/access/to_string.cc: Likewise.
441 * testsuite/20_util/bitset/cons/16020.cc: Likewise.
442 * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
443 * testsuite/20_util/bitset/cons/dr396.cc: Likewise.
444 * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
445 * testsuite/20_util/bitset/ext/15361.cc: Likewise.
446 * testsuite/20_util/bitset/operations/13838.cc: Likewise.
447 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
448 * testsuite/20_util/bitset/version.cc: Likewise.
449 * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
450 * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
451 * testsuite/20_util/enable_shared_from_this/members/assign.cc:
452 Likewise.
453 * testsuite/20_util/enable_shared_from_this/members/const.cc:
454 Likewise.
455 * testsuite/20_util/enable_shared_from_this/members/reinit.cc:
456 Likewise.
457 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
458 Likewise.
459 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
460 Likewise.
461 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
462 Likewise.
463 * testsuite/20_util/forward/1.cc: Likewise.
464 * testsuite/20_util/forward/1_neg.cc: Likewise.
465 * testsuite/20_util/function/1.cc: Likewise.
466 * testsuite/20_util/function/10.cc: Likewise.
467 * testsuite/20_util/function/2.cc: Likewise.
468 * testsuite/20_util/function/3.cc: Likewise.
469 * testsuite/20_util/function/4.cc: Likewise.
470 * testsuite/20_util/function/43397.cc: Likewise.
471 * testsuite/20_util/function/48541.cc: Likewise.
472 * testsuite/20_util/function/5.cc: Likewise.
473 * testsuite/20_util/function/58569.cc: Likewise.
474 * testsuite/20_util/function/6.cc: Likewise.
475 * testsuite/20_util/function/60594.cc: Likewise.
476 * testsuite/20_util/function/65760.cc: Likewise.
477 * testsuite/20_util/function/69222.cc: Likewise.
478 * testsuite/20_util/function/7.cc: Likewise.
479 * testsuite/20_util/function/77322.cc: Likewise.
480 * testsuite/20_util/function/8.cc: Likewise.
481 * testsuite/20_util/function/9.cc: Likewise.
482 * testsuite/20_util/function/91456.cc: Likewise.
483 * testsuite/20_util/function/assign/move.cc: Likewise.
484 * testsuite/20_util/function/assign/move_target.cc: Likewise.
485 * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
486 * testsuite/20_util/function/cons/55320.cc: Likewise.
487 * testsuite/20_util/function/cons/57465.cc: Likewise.
488 * testsuite/20_util/function/cons/72820.cc: Likewise.
489 * testsuite/20_util/function/cons/addressof.cc: Likewise.
490 * testsuite/20_util/function/cons/callable.cc: Likewise.
491 * testsuite/20_util/function/cons/deduction.cc: Likewise.
492 * testsuite/20_util/function/cons/lwg2774.cc: Likewise.
493 * testsuite/20_util/function/cons/move.cc: Likewise.
494 * testsuite/20_util/function/cons/move_target.cc: Likewise.
495 * testsuite/20_util/function/cons/noexcept.cc: Likewise.
496 * testsuite/20_util/function/cons/non_copyconstructible.cc:
497 Likewise.
498 * testsuite/20_util/function/cons/refqual.cc: Likewise.
499 * testsuite/20_util/function/cons/70692.cc: Likewise.
500 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
501 * testsuite/20_util/function/invoke/forwarding.cc: Likewise.
502 * testsuite/20_util/function/invoke/move_only.cc: Likewise.
503 * testsuite/20_util/function/null_pointer_comparisons.cc:
504 Likewise.
505 * testsuite/20_util/function/requirements/explicit_instantiation.cc:
506 Likewise.
507 * testsuite/20_util/function/target_no_rtti.cc: Likewise.
508 * testsuite/20_util/function_objects/83607.cc: Likewise.
509 * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
510 * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise.
511 * testsuite/20_util/headers/functional/types_std_c++0x.cc:
512 Likewise.
513 * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
514 * testsuite/20_util/is_function/35637.cc: Likewise.
515 * testsuite/20_util/move/1.cc: Likewise.
516 * testsuite/20_util/move_only_function/call.cc: Likewise.
517 * testsuite/20_util/move_only_function/cons.cc: Likewise.
518 * testsuite/20_util/move_only_function/move.cc: Likewise.
519 * testsuite/20_util/move_only_function/version.cc: Likewise.
520 * testsuite/20_util/owner_less/cmp.cc: Likewise.
521 * testsuite/20_util/owner_less/noexcept.cc: Likewise.
522 * testsuite/20_util/owner_less/void.cc: Likewise.
523 * testsuite/20_util/pointer_safety/1.cc: Likewise.
524 * testsuite/20_util/scoped_allocator/65279.cc: Likewise.
525 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
526 * testsuite/20_util/scoped_allocator/construct_pair.cc:
527 Likewise.
528 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
529 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
530 Likewise.
531 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
532 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
533 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
534 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
535 Likewise.
536 * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
537 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
538 * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise.
539 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
540 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc:
541 Likewise.
542 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
543 Likewise.
544 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
545 Likewise.
546 * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise.
547 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
548 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
549 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
550 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
551 * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
552 * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise.
553 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
554 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
555 Likewise.
556 * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
557 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
558 * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
559 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
560 * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
561 * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
562 * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
563 * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
564 * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise.
565 * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise.
566 * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise.
567 * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise.
568 * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise.
569 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
570 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
571 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
572 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
573 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
574 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
575 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
576 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
577 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise.
578 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise.
579 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
580 * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
581 Likewise.
582 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
583 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
584 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
585 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc:
586 Likewise.
587 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
588 Likewise.
589 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
590 Likewise.
591 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
592 Likewise.
593 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
594 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
595 * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
596 * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc:
597 Likewise.
598 * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise.
599 * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise.
600 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
601 Likewise.
602 * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise.
603 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
604 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
605 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
606 * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise.
607 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
608 * testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
609 * testsuite/20_util/shared_ptr/creation/single_allocation.cc:
610 Likewise.
611 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
612 Likewise.
613 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
614 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
615 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
616 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
617 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
618 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
619 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
620 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
621 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
622 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc:
623 Likewise.
624 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
625 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
626 * testsuite/20_util/shared_ptr/observers/array.cc: Likewise.
627 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
628 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
629 * testsuite/20_util/shared_ptr/observers/owner_before.cc:
630 Likewise.
631 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
632 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
633 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
634 Likewise.
635 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
636 Likewise.
637 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
638 Likewise.
639 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
640 Likewise.
641 * testsuite/20_util/temporary_buffer.cc: Likewise.
642 * testsuite/20_util/tuple/48476.cc: Likewise.
643 * testsuite/20_util/tuple/cons/90700.cc: Likewise.
644 * testsuite/20_util/tuple/cons/96803.cc: Likewise.
645 * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise.
646 * testsuite/20_util/tuple/cons/allocators.cc: Likewise.
647 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
648 Likewise.
649 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
650 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
651 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
652 Likewise.
653 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
654 * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
655 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
656 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
657 Likewise.
658 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
659 Likewise.
660 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
661 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
662 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
663 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
664 Likewise.
665 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
666 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
667 * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
668 Likewise.
669 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
670 * testsuite/20_util/weak_ptr/observers/owner_before.cc:
671 Likewise.
672 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
673 Likewise.
674 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
675 Likewise.
676 * testsuite/21_strings/basic_string/version.cc: Likewise.
677 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
678 Likewise.
679 * testsuite/21_strings/c_strings/char/69626.cc: Likewise.
680 * testsuite/21_strings/char_traits/requirements/version.cc:
681 Likewise.
682 * testsuite/23_containers/vector/requirements/version.cc:
683 Likewise.
684 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
685 Likewise.
686 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
687 Likewise.
688 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
689 Likewise.
690 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
691 Likewise.
692 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise.
693 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
694 Likewise.
695 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
696 Likewise.
697 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
698 Likewise.
699 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
700 Likewise.
701 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
702 Likewise.
703 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
704 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
705 * testsuite/25_algorithms/headers/cstdlib/functions_std.cc:
706 Likewise.
707 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
708 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
709 Likewise.
710 * testsuite/25_algorithms/make_heap/movable.cc: Likewise.
711 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
712 * testsuite/25_algorithms/random_shuffle/1.cc: Likewise.
713 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
714 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
715 Likewise.
716 * testsuite/25_algorithms/sort/35588.cc: Likewise.
717 * testsuite/25_algorithms/stable_partition/1.cc: Likewise.
718 * testsuite/25_algorithms/stable_partition/constrained.cc:
719 Likewise.
720 * testsuite/25_algorithms/stable_partition/mem_check.cc:
721 Likewise.
722 * testsuite/25_algorithms/stable_partition/moveable.cc:
723 Likewise.
724 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
725 Likewise.
726 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
727 Likewise.
728 * testsuite/25_algorithms/stable_sort/1.cc: Likewise.
729 * testsuite/26_numerics/complex/2.cc: Likewise.
730 * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise.
731 * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise.
732 * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise.
733 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise.
734 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise.
735 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise.
736 * testsuite/26_numerics/headers/cstdlib/functions_std.cc:
737 Likewise.
738 * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise.
739 * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise.
740 * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc:
741 Likewise.
742 * testsuite/26_numerics/lerp/version.cc: Likewise.
743 * testsuite/26_numerics/midpoint/version.cc: Likewise.
744 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
745 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
746 * testsuite/27_io/fpos/14320-1.cc: Likewise.
747 * testsuite/27_io/fpos/14320-2.cc: Likewise.
748 * testsuite/27_io/fpos/14320-3.cc: Likewise.
749 * testsuite/27_io/fpos/14320-4.cc: Likewise.
750 * testsuite/27_io/spanstream/version.cc: Likewise.
751 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
752 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
753 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
754 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
755 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
756 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
757 * testsuite/30_threads/barrier/2.cc: Likewise.
758 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
759 Likewise.
760 * testsuite/30_threads/jthread/version.cc: Likewise.
761 * testsuite/30_threads/latch/2.cc: Likewise.
762 * testsuite/30_threads/semaphore/2.cc: Likewise.
763 * testsuite/30_threads/stop_token/2.cc: Likewise.
764 * testsuite/abi/pr42230.cc: Likewise.
765 * testsuite/ext/shared_ptr/1.cc: Likewise.
766 * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise.
767 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
768 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
769 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
770 * testsuite/std/ranges/p2325.cc: Likewise.
771
772 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
773
774 * include/std/bitset (bitset(const C*, size_type n, C, C))
775 [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency.
776 (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of
777 throwing.
778
779 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
780
781 PR libstdc++/103626
782 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
783 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
784 hosted.
785 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
786
787 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
788
789 PR libstdc++/103626
790 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
791 Also require hosted.
792 (check_effective_target_hosted): New proc.
793
794 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
795 Jonathan Wakely <jwakely@redhat.com>
796
797 PR libstdc++/103626
798 * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
799 Do not include C headers that aren't valid for freestanding.
800 * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
801 Do not test tag types that aren't defined for freestanding.
802 * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
803 check for std::getenv and std::system for freestanding.
804 * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]:
805 Do not test hosted parts of the standard library.
806 * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]:
807 Likewise.
808 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
809 Likewise.
810 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
811 Likewise.
812 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
813 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
814 Likewise.
815 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
816 Likewise.
817 * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise.
818 * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise.
819 * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise.
820
821 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
822
823 PR libstdc++/106953
824 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
825 install-freestanding-headers, unifying it with the usual
826 install-headers
827 * include/Makefile.in: Regenerate.
828
829 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
830 Jonathan Wakely <jwakely@redhat.com>
831
832 PR libstdc++/103626
833 * include/Makefile.am: Add new header.
834 * include/Makefile.in: Regenerate.
835 * include/bits/requires_hosted.h: New header.
836 * include/experimental/algorithm: Include
837 <bits/requires_hosted.h>.
838 * include/experimental/any: Likewise.
839 * include/experimental/array: Likewise.
840 * include/experimental/buffer: Likewise.
841 * include/experimental/chrono: Likewise.
842 * include/experimental/deque: Likewise.
843 * include/experimental/executor: Likewise.
844 * include/experimental/filesystem: Likewise.
845 * include/experimental/forward_list: Likewise.
846 * include/experimental/functional: Likewise.
847 * include/experimental/internet: Likewise.
848 * include/experimental/io_context: Likewise.
849 * include/experimental/iterator: Likewise.
850 * include/experimental/list: Likewise.
851 * include/experimental/map: Likewise.
852 * include/experimental/memory: Likewise.
853 * include/experimental/memory_resource: Likewise.
854 * include/experimental/net: Likewise.
855 * include/experimental/netfwd: Likewise.
856 * include/experimental/numeric: Likewise.
857 * include/experimental/optional: Likewise.
858 * include/experimental/propagate_const: Likewise.
859 * include/experimental/random: Likewise.
860 * include/experimental/ratio: Likewise.
861 * include/experimental/regex: Likewise.
862 * include/experimental/scope: Likewise.
863 * include/experimental/set: Likewise.
864 * include/experimental/simd: Likewise.
865 * include/experimental/socket: Likewise.
866 * include/experimental/source_location: Likewise.
867 * include/experimental/string: Likewise.
868 * include/experimental/string_view: Likewise.
869 * include/experimental/system_error: Likewise.
870 * include/experimental/timer: Likewise.
871 * include/experimental/tuple: Likewise.
872 * include/experimental/unordered_map: Likewise.
873 * include/experimental/unordered_set: Likewise.
874 * include/experimental/utility: Likewise.
875 * include/experimental/vector: Likewise.
876 * include/std/barrier: Likewise.
877 * include/std/chrono: Likewise.
878 * include/std/condition_variable: Likewise.
879 * include/std/deque: Likewise.
880 * include/std/execution: Likewise.
881 * include/std/filesystem: Likewise.
882 * include/std/forward_list: Likewise.
883 * include/std/fstream: Likewise.
884 * include/std/future: Likewise.
885 * include/std/iomanip: Likewise.
886 * include/std/ios: Likewise.
887 * include/std/iosfwd: Likewise.
888 * include/std/iostream: Likewise.
889 * include/std/istream: Likewise.
890 * include/std/latch: Likewise.
891 * include/std/list: Likewise.
892 * include/std/locale: Likewise.
893 * include/std/map: Likewise.
894 * include/std/memory_resource: Likewise.
895 * include/std/mutex: Likewise.
896 * include/std/ostream: Likewise.
897 * include/std/queue: Likewise.
898 * include/std/random: Likewise.
899 * include/std/regex: Likewise.
900 * include/std/semaphore: Likewise.
901 * include/std/set: Likewise.
902 * include/std/shared_mutex: Likewise.
903 * include/std/spanstream: Likewise.
904 * include/std/sstream: Likewise.
905 * include/std/stack: Likewise.
906 * include/std/stacktrace: Likewise.
907 * include/std/stop_token: Likewise.
908 * include/std/streambuf: Likewise.
909 * include/std/string: Likewise.
910 * include/std/syncstream: Likewise.
911 * include/std/system_error: Likewise.
912 * include/std/thread: Likewise.
913 * include/std/unordered_map: Likewise.
914 * include/std/unordered_set: Likewise.
915 * include/std/valarray: Likewise.
916 * include/std/vector: Likewise.
917 * include/tr1/array: Likewise.
918 * include/tr1/ccomplex: Likewise.
919 * include/tr1/cctype: Likewise.
920 * include/tr1/cfenv: Likewise.
921 * include/tr1/cfloat: Likewise.
922 * include/tr1/cinttypes: Likewise.
923 * include/tr1/climits: Likewise.
924 * include/tr1/cmath: Likewise.
925 * include/tr1/complex: Likewise.
926 * include/tr1/complex.h: Likewise.
927 * include/tr1/cstdarg: Likewise.
928 * include/tr1/cstdbool: Likewise.
929 * include/tr1/cstdint: Likewise.
930 * include/tr1/cstdio: Likewise.
931 * include/tr1/cstdlib: Likewise.
932 * include/tr1/ctgmath: Likewise.
933 * include/tr1/ctime: Likewise.
934 * include/tr1/ctype.h: Likewise.
935 * include/tr1/cwchar: Likewise.
936 * include/tr1/cwctype: Likewise.
937 * include/tr1/fenv.h: Likewise.
938 * include/tr1/float.h: Likewise.
939 * include/tr1/functional: Likewise.
940 * include/tr1/inttypes.h: Likewise.
941 * include/tr1/limits.h: Likewise.
942 * include/tr1/math.h: Likewise.
943 * include/tr1/memory: Likewise.
944 * include/tr1/random: Likewise.
945 * include/tr1/regex: Likewise.
946 * include/tr1/stdarg.h: Likewise.
947 * include/tr1/stdbool.h: Likewise.
948 * include/tr1/stdint.h: Likewise.
949 * include/tr1/stdio.h: Likewise.
950 * include/tr1/stdlib.h: Likewise.
951 * include/tr1/tgmath.h: Likewise.
952 * include/tr1/tuple: Likewise.
953 * include/tr1/type_traits: Likewise.
954 * include/tr1/unordered_map: Likewise.
955 * include/tr1/unordered_set: Likewise.
956 * include/tr1/utility: Likewise.
957 * include/tr1/wchar.h: Likewise.
958 * include/tr1/wctype.h: Likewise.
959 * include/c_global/cmath: Likewise.
960 * include/ext/algorithm: Include <bits/requires_hosted.h>.
961 * include/ext/bitmap_allocator.h: Likewise.
962 * include/ext/cmath: Likewise.
963 * include/ext/codecvt_specializations.h: Likewise.
964 * include/ext/debug_allocator.h: Likewise.
965 * include/ext/enc_filebuf.h: Likewise.
966 * include/ext/extptr_allocator.h: Likewise.
967 * include/ext/functional: Likewise.
968 * include/ext/malloc_allocator.h: Likewise.
969 * include/ext/memory: Likewise.
970 * include/ext/mt_allocator.h: Likewise.
971 * include/ext/new_allocator.h: Likewise.
972 * include/ext/numeric: Likewise.
973 * include/ext/pod_char_traits.h: Likewise.
974 * include/ext/pool_allocator.h: Likewise.
975 * include/ext/random: Likewise.
976 * include/ext/random.tcc: Likewise.
977 * include/ext/rb_tree: Likewise.
978 * include/ext/rc_string_base.h: Likewise.
979 * include/ext/rope: Likewise.
980 * include/ext/ropeimpl.h: Likewise.
981 * include/ext/slist: Likewise.
982 * include/ext/sso_string_base.h: Likewise.
983 * include/ext/stdio_filebuf.h: Likewise.
984 * include/ext/stdio_sync_filebuf.h: Likewise.
985 * include/ext/string_conversions.h: Likewise.
986 * include/ext/throw_allocator.h: Likewise.
987 * include/ext/vstring.h: Likewise.
988 * include/ext/vstring.tcc: Likewise.
989 * include/ext/vstring_fwd.h: Likewise.
990 * include/ext/vstring_util.h: Likewise.
991 * include/std/charconv: Likewise.
992 (__cpp_lib_to_chars): Do not define for freestanding.
993 * include/std/version: Adjust which macros get defined in
994 freestanding.
995 * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
996 functionality from freestanding.
997 * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
998 * include/std/memory [!_GLIBCXX_HOSTED]: Omit
999 <bits/stl_tempbuf.h> in freestanding
1000 * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
1001 random_shuffle and stable_partition definition.
1002 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
1003 random_shuffle and stable_partition from freestanding.
1004 * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
1005 stable_partition from freestanding.
1006 * include/bits/concept_check.h: Remove needless HOSTED check.
1007 * include/std/iterator: Include <bits/ranges_base.h>.
1008 * include/std/numeric (__cpp_lib_parallel_algorithms): Do not
1009 define for freestanding.
1010 * include/std/functional (__cpp_lib_boyer_moore_searcher):
1011 Likewise.
1012 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++
1013 tests.
1014
1015 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1016 Arsen Arsenović <arsen@aarsen.me>
1017
1018 * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not
1019 include headers that aren't valid for freestanding.
1020 * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise.
1021
1022 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
1023
1024 * configure.ac: Remove any lines that unconditionally include
1025 <stdio.h> from ac_includes_default, when running Autoconf <2.70.
1026 * configure: Regenerate.
1027
1028 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1029
1030 PR libstdc++/103626
1031 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
1032 to __STDC_HOSTED__ for non-freestanding installations.
1033 * configure: Regenerate.
1034 * include/Makefile.am (${host_builddir}/c++config.h): Adjust
1035 grep pattern.
1036 * include/Makefile.in: Regenerate.
1037 * testsuite/lib/libstdc++.exp (v3-build_support): Use
1038 -fno-freestanding.
1039 * testsuite/libstdc++-abi/abi.exp: Likewise.
1040
1041 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
1042
1043 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
1044 Change body of unused operator<< overload to throw if called.
1045 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
1046 Likewise.
1047
1048 2022-10-03 François Dumont <fdumont@gcc.gnu.org>
1049
1050 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
1051 namespace for __cxx11 symbols.
1052 (add_one_template_type_printer): Likewise.
1053 (add_one_type_printer): Likewise.
1054 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
1055 ambiguous typedef matching both std:: and std::__cxx11:: symbols.
1056 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
1057 \#define _GLIBCXX_USE_CXX11_ABI 0.
1058 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
1059 std::__cxx11::list.
1060 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1061 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1062 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
1063 and debug mode.
1064 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1065
1066 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1067
1068 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
1069 from binary literal instead of using stringstream.
1070
1071 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1072
1073 * include/std/bitset (operator>>): Use a simple buffer instead
1074 of std::basic_string.
1075
1076 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1077
1078 * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string)
1079 (_M_copy_to_string): Change access to private.
1080 (_M_copy_from_string(const basic_string&, size_t, size_t)):
1081 Remove.
1082 (_M_copy_to_string(const basic_string&)): Remove.
1083
1084 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
1085
1086 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
1087 directive.
1088
1089 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
1090 Yvan ROUX <yvan.roux@foss.st.com>
1091
1092 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.
1093
1094 2022-09-30 Arsen Arsenović <arsen@aarsen.me>
1095
1096 * include/std/bitset: Include <bits/stl_algobase.h>.
1097
1098 2022-09-29 François Dumont <fdumont@gcc.gnu.org>
1099
1100 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register
1101 printer for types in std::__debug namespace with template parameters in std::__8
1102 namespace.
1103
1104 2022-09-29 Patrick Palka <ppalka@redhat.com>
1105
1106 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
1107 __remove_cv and use __remove_cv_t instead.
1108
1109 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
1110
1111 * include/std/type_traits (__is_invocable_impl): Check
1112 __has_builtin(__reference_converts_from_temporary) before using
1113 built-in.
1114
1115 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
1116
1117 * doc/xml/manual/evolution.xml: Document std::bind API
1118 changes.
1119 * doc/xml/manual/intro.xml: Document LWG 2487 status.
1120 * doc/xml/manual/using.xml: Clarify default value of
1121 _GLIBCXX_USE_DEPRECATED.
1122 * doc/html/*: Regenerate.
1123 * include/std/functional (_Bind::operator()(Args&&...) volatile)
1124 (_Bind::operator()(Args&&...) const volatile)
1125 (_Bind_result::operator()(Args&&...) volatile)
1126 (_Bind_result::operator()(Args&&...) const volatile): Replace
1127 with deleted overload for C++20 and later.
1128 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
1129 warnings in C++17.
1130 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
1131 ill-formed in C++20.
1132
1133 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
1134
1135 PR libstdc++/70692
1136 * include/bits/invoke.h [__cplusplus < 201703] (__invoke_r):
1137 Remove is_invocable and is_convertible constraints.
1138 * include/std/type_traits (__is_invocable_impl::_S_conv): Use
1139 non-deduced context for parameter.
1140 (__is_invocable_impl::_S_test): Remove _Check_noex template
1141 parameter and use deduced noexcept value in its place. Add bool
1142 parameter to detect dangling references.
1143 (__is_invocable_impl::type): Adjust call to _S_test to avoid
1144 deducing unnecessary noexcept property..
1145 (__is_invocable_impl::__nothrow_type): Rename to ...
1146 (__is_invocable_impl::__nothrow_conv): ... this. Adjust call
1147 to _S_test to deduce noexcept property.
1148 * testsuite/20_util/bind/dangling_ref.cc: New test.
1149 * testsuite/20_util/function/cons/70692.cc: New test.
1150 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
1151 New test.
1152 * testsuite/20_util/is_invocable/dangling_ref.cc: New test.
1153 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
1154 New test.
1155
1156 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
1157
1158 PR c++/107049
1159 * testsuite/20_util/is_convertible/requirements/access.cc: New
1160 test.
1161
1162 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
1163
1164 PR c++/106651
1165 * include/bits/std_function.h (__function_guide_t): New alias
1166 template.
1167 [__cpp_static_call_operator] (__function_guide_static_helper):
1168 New class template.
1169 (function): Use __function_guide_t in deduction guide.
1170 * include/std/future (packaged_task): Use __function_guide_t in
1171 deduction guide.
1172 * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
1173 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
1174 New test.
1175
1176 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1177
1178 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
1179 Also define the __ptr_traits_elem class template for the
1180 concepts case.
1181 (pointer_traits<Ptr>): Remove constrained partial
1182 specialization.
1183 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
1184 ambiguitiy with program-defined partial specialization.
1185
1186 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1187
1188 * include/std/type_traits (is_convertible, is_convertible_v):
1189 Define using new built-in.
1190 (is_nothrow_convertible is_nothrow_convertible_v): Likewise.
1191
1192 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1193
1194 PR libstdc++/107037
1195 * include/std/bitset (_Base_bitset::_M_do_reset): Use
1196 preprocessor conditional around non-C++03 code.
1197 * testsuite/20_util/bitset/107037.cc: New test.
1198
1199 2022-09-24 Jonathan Wakely <jwakely@redhat.com>
1200
1201 * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
1202 Only instantiate is_empty if needed.
1203 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
1204 (__ptr_traits_impl::rebind): Use __detected_or.
1205 * include/experimental/type_traits (is_same_v): Add a partial
1206 specialization instead of instantiating the std::is_same class
1207 template.
1208 (detected_t): Redefine in terms of detected_or_t.
1209 (is_detected, is_detected_v): Redefine in terms of detected_t.
1210 * include/std/type_traits [__cpp_concepts] (__detected_or): Add
1211 new definition using concepts.
1212 (__detector::value_t): Rename to __is_detected.
1213 * testsuite/17_intro/names.cc: Check value_t isn't used.
1214
1215 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1216
1217 * testsuite/20_util/is_assignable/requirements/access.cc:
1218 New test.
1219
1220 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1221
1222 PR libstdc++/91456
1223 * include/std/type_traits (__is_nothrow_invocable_lib): Remove.
1224 (__is_invocable_impl::__nothrow_type): New member type which
1225 checks if the conversion can throw.
1226 (__is_nt_invocable_impl): Replace class template with alias
1227 template to __is_nt_invocable_impl::__nothrow_type.
1228 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
1229 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
1230 macro used by value_ext.cc test.
1231 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
1232 test for non-standard __is_nothrow_invocable_lib trait.
1233
1234 2022-09-23 Marek Polacek <polacek@redhat.com>
1235
1236 PR c++/106784
1237 * include/std/type_traits: Rename __is_nothrow_convertible to
1238 __is_nothrow_convertible_lib.
1239 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise.
1240
1241 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1242
1243 * include/std/bitset (operator>>): Do not copy for N==0.
1244 * testsuite/20_util/bitset/io/input.cc: Add comment.
1245
1246 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1247
1248 * include/debug/bitset (__debug::bitset): Add constexpr to all
1249 member functions.
1250 (operator&, operator|, operator^): Add inline and constexpr.
1251 (operator>>, operator<<): Add inline.
1252 * testsuite/20_util/bitset/access/constexpr.cc: Only check using
1253 constexpr std::string for the cxx11 ABI.
1254 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
1255 * testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr
1256 for C++23.
1257
1258 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1259
1260 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
1261 instead of iterating over individual bits.
1262
1263 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
1264
1265 * include/std/bitset (bitset): Add constexpr for C++23. Guard
1266 members using std::string with _GLIBCXX_HOSTED.
1267 * include/std/version (__cpp_lib_constexpr_bitset): Define.
1268 * testsuite/20_util/bitset/access/constexpr.cc: New test.
1269 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test.
1270 * testsuite/20_util/bitset/count/constexpr.cc: New test.
1271 * testsuite/20_util/bitset/ext/constexpr.cc: New test.
1272 * testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test.
1273 * testsuite/20_util/bitset/version.cc: New test.
1274
1275 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
1276
1277 * testsuite/23_containers/bitset/18604.cc: Moved to...
1278 * testsuite/20_util/bitset/18604.cc: ...here.
1279 * testsuite/23_containers/bitset/45713.cc: Moved to...
1280 * testsuite/20_util/bitset/45713.cc: ...here.
1281 * testsuite/23_containers/bitset/to_string/dr396.cc: Moved to...
1282 * testsuite/20_util/bitset/access/dr396.cc: ...here.
1283 * testsuite/23_containers/bitset/to_string/1.cc: Moved to...
1284 * testsuite/20_util/bitset/access/to_string.cc: ...here.
1285 * testsuite/23_containers/bitset/to_ullong/1.cc: Moved to...
1286 * testsuite/20_util/bitset/access/to_ullong.cc: ...here.
1287 * testsuite/23_containers/bitset/to_ulong/1.cc: Moved to...
1288 * testsuite/20_util/bitset/access/to_ulong.cc: ...here.
1289 * testsuite/23_containers/bitset/cons/1.cc: Moved to...
1290 * testsuite/20_util/bitset/cons/1.cc: ...here.
1291 * testsuite/23_containers/bitset/cons/16020.cc: Moved to...
1292 * testsuite/20_util/bitset/cons/16020.cc: ...here.
1293 * testsuite/23_containers/bitset/cons/2.cc: Moved to...
1294 * testsuite/20_util/bitset/cons/2.cc: ...here.
1295 * testsuite/23_containers/bitset/cons/3.cc: Moved to...
1296 * testsuite/20_util/bitset/cons/3.cc: ...here.
1297 * testsuite/23_containers/bitset/cons/38244.cc: Moved to...
1298 * testsuite/20_util/bitset/cons/38244.cc: ...here.
1299 * testsuite/23_containers/bitset/cons/50268.cc: Moved to...
1300 * testsuite/20_util/bitset/cons/50268.cc: ...here.
1301 * testsuite/23_containers/bitset/cons/6282.cc: Moved to...
1302 * testsuite/20_util/bitset/cons/6282.cc: ...here.
1303 * testsuite/23_containers/bitset/cons/constexpr.cc: Moved to...
1304 * testsuite/20_util/bitset/cons/constexpr.cc: ...here.
1305 * testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to...
1306 * testsuite/20_util/bitset/cons/dr1325-1.cc: ...here.
1307 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to...
1308 * testsuite/20_util/bitset/cons/dr1325-2.cc: ...here.
1309 * testsuite/23_containers/bitset/cons/dr396.cc: Moved to...
1310 * testsuite/20_util/bitset/cons/dr396.cc: ...here.
1311 * testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to...
1312 * testsuite/20_util/bitset/debug/invalidation/1.cc: ...here.
1313 * testsuite/23_containers/bitset/ext/15361.cc: Moved to...
1314 * testsuite/20_util/bitset/ext/15361.cc: ...here.
1315 * testsuite/23_containers/bitset/hash/1.cc: Moved to...
1316 * testsuite/20_util/bitset/hash/1.cc: ...here.
1317 * testsuite/23_containers/bitset/input/1.cc: Moved to...
1318 * testsuite/20_util/bitset/io/input.cc: ...here.
1319 * testsuite/23_containers/bitset/count/6124.cc: Moved to...
1320 * testsuite/20_util/bitset/observers/6124.cc: ...here.
1321 * testsuite/23_containers/bitset/all/1.cc: Moved to...
1322 * testsuite/20_util/bitset/observers/all.cc: ...here.
1323 * testsuite/23_containers/bitset/test/1.cc: Moved to...
1324 * testsuite/20_util/bitset/observers/test.cc: ...here.
1325 * testsuite/23_containers/bitset/operations/1.cc: Moved to...
1326 * testsuite/20_util/bitset/operations/1.cc: ...here.
1327 * testsuite/23_containers/bitset/operations/13838.cc: Moved to...
1328 * testsuite/20_util/bitset/operations/13838.cc: ...here.
1329 * testsuite/23_containers/bitset/operations/2.cc: Moved to...
1330 * testsuite/20_util/bitset/operations/2.cc: ...here.
1331 * testsuite/23_containers/bitset/operations/96303.cc: Moved to...
1332 * testsuite/20_util/bitset/operations/96303.cc: ...here.
1333 * testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to...
1334 * testsuite/20_util/bitset/operations/constexpr-2.cc: ...here.
1335 * testsuite/23_containers/bitset/operations/constexpr.cc: Moved to...
1336 * testsuite/20_util/bitset/operations/constexpr.cc: ...here.
1337 * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to...
1338 * testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here.
1339 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to...
1340 * testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here.
1341 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to...
1342 * testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here.
1343 * testsuite/23_containers/headers/bitset/synopsis.cc: Moved to...
1344 * testsuite/20_util/headers/bitset/synopsis.cc: ...here.
1345
1346 2022-09-22 François Dumont <fdumont@gcc.gnu.org>
1347
1348 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
1349 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
1350 std::__debug::priority_queue.
1351
1352 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1353
1354 PR libstdc++/91456
1355 * testsuite/20_util/function/91456.cc: Add comment with PR
1356 number.
1357 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
1358 std::function checks with std::is_invocable_r checks.
1359
1360 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1361
1362 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
1363 unnecessary main function.
1364 * testsuite/17_intro/headers/c++2011/all_attributes.cc:
1365 Likewise.
1366 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1367 Likewise.
1368 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1369 Likewise.
1370 * testsuite/17_intro/headers/c++2020/all_attributes.cc:
1371 Likewise.
1372
1373 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1374
1375 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
1376 from C++11 and later.
1377
1378 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1379
1380 * doc/xml/manual/documentation_hacking.xml: Remove trailing
1381 whitespace.
1382 * doc/xml/manual/policy_data_structures.xml: Likewise.
1383
1384 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1385
1386 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
1387 using-declaration for _Exit.
1388
1389 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1390
1391 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
1392 call to std::abort.
1393
1394 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1395
1396 * include/bits/ranges_base.h: Include <initializer_list>.
1397
1398 2022-09-20 Jonathan Wakely <jwakely@redhat.com>
1399
1400 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
1401 missing space.
1402
1403 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1404
1405 PR libstdc++/106953
1406 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
1407 shared_ptr members.
1408 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
1409 std::allocator_traits<std::allocator<T>> specializations for
1410 freestanding.
1411 * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
1412 not declare for freestanding.
1413 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
1414 Do not define for freestanding.
1415 [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
1416 buffers for freestanding.
1417 * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
1418 streambuf iterators and overloaded algorithms using them.
1419 * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
1420 define specialized overloads for std::allocator.
1421 * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
1422 (make_unique_for_overwrite, operator<<): Do not define for
1423 freestanding.
1424 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
1425 Use _GLIBCXX_NOTHROW instead of throw().
1426 * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
1427 _GLIBCXX_DEBUG for freestanding.
1428 * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
1429 * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
1430 __int_traits if <ext/numeric_traits.h> is available.
1431 * include/std/functional [!_GLIBCXX_HOSTED]: Do not include
1432 headers that aren't valid for freestanding.
1433 (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
1434 define for freestanding.
1435 * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
1436 headers that aren't valid for freestanding.
1437 * include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
1438 * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
1439 define for freestanding.
1440 (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
1441 Do not define partial specialization for freestanding.
1442
1443 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1444
1445 * include/bits/alloc_traits.h (__alloc_swap)
1446 (__shrink_to_fit_aux): Move here, from ...
1447 * include/bits/allocator.h: ... here.
1448 * include/ext/alloc_traits.h: Do not include allocator.h.
1449
1450 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1451
1452 * include/bits/stl_algo.h: Include <bits/stl_algobase.h>.
1453 * include/bits/stl_tempbuf.h: Include headers for __try and
1454 __catch macros, std::pair, and __gnu_cxx::__numeric_traits.
1455 * include/bits/stream_iterator.h: Include <iosfwd> and headers
1456 for std::addressof and std::iterator.
1457 * include/bits/streambuf_iterator.h: Include header for
1458 std::iterator.
1459 * include/std/iterator: Do not include <iosfwd>.
1460
1461 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1462
1463 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1464 Store value with non-zero padding bits after construction.
1465
1466 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1467
1468 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
1469 (__detail::_Adaptor::_M_g): Make public.
1470 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial
1471 specialization.
1472 (variate_generate::_Value): New helper to simplify handling of
1473 _Engine* and _Engine& template arguments.
1474 (variate_generate::engine_value_type): Define to underlying
1475 engine type, not adapted type.
1476 (variate_generate::engine()): Return underlying engine instead
1477 of adaptor.
1478 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
1479 Fix comment.
1480 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
1481 Check member typedefs have the correct types.
1482
1483 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1484
1485 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
1486 (_Error_formatter): Use 0 as null pointer constant.
1487
1488 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1489
1490 * include/bits/allocator.h (__alloc_neq): Remove.
1491 * include/bits/stl_list.h (list::_M_check_equal_allocators):
1492 Compare allocators directly, without __alloc_neq.
1493
1494 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1495
1496 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
1497 * include/bits/allocator.h: Fix nesting of Doxygen commands.
1498
1499 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1500
1501 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and
1502 GLIBCXX_3.4.31 versions.
1503 * doc/html/manual/abi.html: Regenerate.
1504
1505 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1506
1507 * include/std/memory: Do not include <bits/stl_algobase.h>.
1508
1509 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1510
1511 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
1512 Replace with ...
1513 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
1514 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
1515 try_lock_failed flag
1516 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
1517 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
1518 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
1519 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
1520 (_Sp_atomic::_Atomic_count::lock): Use new macros.
1521
1522 2022-09-15 Patrick Palka <ppalka@redhat.com>
1523
1524 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
1525 Move to ...
1526 * include/bits/ranges_util.h: ... here.
1527 * include/std/ranges (chunk_by_view): Define.
1528 (chunk_by_view::_Iterator): Define.
1529 (__detail::__can_chunk_by_view): Define.
1530 (_ChunkBy, chunk_by): Define.
1531 * testsuite/std/ranges/adaptors/chunk_by/1.cc: New test.
1532
1533 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1534
1535 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1536 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.
1537
1538 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1539
1540 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
1541 symbols.
1542
1543 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1544
1545 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
1546 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
1547 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
1548 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
1549 Define macros for TSan annotation functions.
1550 (_Sp_atomic::_Atomic_count): Add annotations.
1551
1552 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1553
1554 * include/bits/stl_tempbuf.h: Include <new>.
1555
1556 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1557
1558 * testsuite/17_intro/names.cc: Explain why poison pragma can't
1559 be used.
1560
1561 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1562
1563 * include/std/future
1564 (_State_baseV2::__setter(exception_ptr&, promise&)): Add
1565 assertion for LWG 2276 precondition.
1566 * testsuite/30_threads/promise/members/set_exception_neg.cc:
1567 New test.
1568
1569 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1570
1571 * doc/xml/manual/intro.xml: Document LWG 1203.
1572 * doc/html/*: Regenerate.
1573
1574 2022-09-14 Philipp Fent <fent@in.tum.de>
1575
1576 * python/libstdcxx/v6/printers.py (access_streambuf_ptrs):
1577 New helper function.
1578 (StdStringBufPrinter, StdStringStreamPrinter): New printers.
1579 (build_libstdcxx_dictionary): Register stringstream printers.
1580 * testsuite/libstdc++-prettyprinters/debug.cc: Check string
1581 streams.
1582 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1583 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1584
1585 2022-09-13 Patrick Palka <ppalka@redhat.com>
1586
1587 * include/std/ranges (__detail::__slide_caches_nothing): Define.
1588 (__detail::__slide_caches_last): Define.
1589 (__detail::__slide_caches_first): Define.
1590 (slide_view): Define.
1591 (enable_borrowed_range<slide_view>): Define.
1592 (slide_view::_Iterator): Define.
1593 (slide_view::_Sentinel): Define.
1594 (views::__detail::__can_slide_view): Define.
1595 (views::_Slide, views::slide): Define.
1596 * testsuite/std/ranges/adaptors/slide/1.cc: New test.
1597
1598 2022-09-13 Patrick Palka <ppalka@redhat.com>
1599
1600 * include/std/ranges (__detail::__div_ceil): Define.
1601 (chunk_view): Define.
1602 (chunk_view::_OuterIter): Define.
1603 (chunk_view::_OuterIter::value_type): Define.
1604 (chunk_view::_InnerIter): Define.
1605 (chunk_view<_Vp>): Define partial specialization for forward
1606 ranges.
1607 (enable_borrowed_range<chunk_view>): Define.
1608 (chunk_view<_Vp>::_Iterator): Define.
1609 (views::__detail::__can_chunk_view): Define.
1610 (views::_Chunk, views::chunk): Define.
1611 * testsuite/std/ranges/adaptors/chunk/1.cc: New test.
1612
1613 2022-09-13 Patrick Palka <ppalka@redhat.com>
1614
1615 * include/std/ranges (join_view::_Iterator::_M_satisfy):
1616 Adjust resetting _M_inner as per LWG 3569.
1617 (join_view::_Iterator::_M_inner): Wrap in std::optional
1618 as per LWG 3569.
1619 (join_view::_Iterator::_Iterator): Relax constraints as
1620 per LWG 3569.
1621 (join_view::_Iterator::operator*): Adjust as per LWG 3569.
1622 (join_view::_Iterator::operator->): Likewise.
1623 (join_view::_Iterator::operator++): Likewise.
1624 (join_view::_Iterator::operator--): Likewise.
1625 (join_view::_Iterator::iter_move): Likewise.
1626 (join_view::_Iterator::iter_swap): Likewise.
1627 * testsuite/std/ranges/adaptors/join.cc (test14): New test.
1628
1629 2022-09-13 Patrick Palka <ppalka@redhat.com>
1630
1631 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1632 Add parentheses to avoid -Wparentheses warning.
1633
1634 2022-09-12 Patrick Palka <ppalka@redhat.com>
1635
1636 PR libstdc++/106320
1637 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
1638
1639 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
1640
1641 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
1642 comments.
1643 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
1644 Likewise.
1645
1646 2022-09-12 Jakub Jelinek <jakub@redhat.com>
1647
1648 PR tree-optimization/105329
1649 * acinclude.m4 (libtool_VERSION): Change to 6:31:0.
1650 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
1651 std::basic_string methods with name length of 15.
1652 (GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
1653 * testsuite/util/testsuite_abi.cc (check_version): Handle
1654 GLIBCXX_3.4.31.
1655 * include/bits/basic_string.h (std::basic_string::_M_replace_cold):
1656 Declare.
1657 * include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
1658 Define and export even for C++20.
1659 (std::basic_string::_M_replace): Use __builtin_expect, outline
1660 the overlapping case to _M_replace_cold.
1661 * configure: Regenerated.
1662
1663 2022-09-09 Jonathan Wakely <jwakely@redhat.com>
1664
1665 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
1666 Rename __weak to __is_weak.
1667 * testsuite/17_intro/names.cc: Add __weak and __strong.
1668
1669 2022-09-09 Patrick Palka <ppalka@redhat.com>
1670
1671 PR libstdc++/106803
1672 * include/std/ranges (views::_ZipTransform::operator()): Correct
1673 return type in the empty case.
1674 (views::_AdjacentTransform::operator()): Likewise.
1675
1676 2022-09-09 Patrick Palka <ppalka@redhat.com>
1677
1678 PR libstdc++/106798
1679 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
1680 typo.
1681 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.
1682
1683 2022-09-09 Patrick Palka <ppalka@redhat.com>
1684
1685 PR libstdc++/106766
1686 * include/std/ranges (zip_view::_Iterator::operator-): Use
1687 __to_unsigned_like instead of make_unsigned_t.
1688 (zip_view::_Sentinel::operator-): Likewise.
1689 * testsuite/std/ranges/zip/1.cc (test04): New test.
1690
1691 2022-09-08 François Dumont <fdumont@gcc.gnu.org>
1692
1693 * testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New.
1694 (__gnu_test::malloc_info): New, replace mallinfo on current platform
1695 supporting it and use mallinfo2 when glibc >= 2.33.
1696
1697 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1698
1699 PR c++/106838
1700 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1701 Prune additional errors from front-end.
1702 * testsuite/20_util/is_move_constructible/incomplete_neg.cc:
1703 Likewise.
1704 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
1705 Likewise.
1706 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
1707 Likewise.
1708 * testsuite/20_util/is_swappable_with/incomplete_neg.cc:
1709 Likewise.
1710
1711 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1712
1713 * include/c_global/cstddef (byte): Add always_inline attribute
1714 to all operator overloads.
1715 (to_integer): Add always_inline attribute.
1716
1717 2022-09-08 Thomas Rodgers <trodgers@redhat.com>
1718 Jakub Jelinek <jakub@redhat.com>
1719 Jonathan Wakely <jwakely@redhat.com>
1720
1721 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
1722 New function.
1723 (__atomic_impl::clear_padding): Likewise.
1724 (__atomic_impl::__compare_exchange): Likewise.
1725 (__atomic_impl::compare_exchange_weak): Delegate to
1726 __compare_exchange.
1727 (__atomic_impl::compare_exchange_strong): Likewise.
1728 * include/std/atomic (atomic<T>::atomic(T)): Clear padding when
1729 possible in a constexpr function.
1730 (atomic::store): Clear padding.
1731 (atomic::exchange): Likewise.
1732 (atomic::compare_exchange_weak): Use __compare_exchange.
1733 (atomic::compare_exchange_strong): Likewise.
1734 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: New
1735 test.
1736 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1737 New test.
1738
1739 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1740
1741 * include/std/system_error (__adl_only::make_error_code): Add
1742 deleted function.
1743 (__adl_only::make_error_condition): Likewise.
1744 (error_code::error_code(ErrorCodeEnum)): Add using-declaration
1745 for deleted function.
1746 (error_condition::error_condition(ErrorConditionEnum)):
1747 Likewise.
1748 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
1749 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
1750
1751 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
1752
1753 * include/std/barrier: Add missing runtime exception.
1754
1755 2022-09-07 Patrick Palka <ppalka@redhat.com>
1756
1757 * include/std/type_traits (is_reference): Make the primary
1758 template derive from false_type. Define two partial
1759 specializations that derive from true_type.
1760
1761 2022-09-07 Patrick Palka <ppalka@redhat.com>
1762
1763 * include/std/type_traits (__is_void_helper): Remove.
1764 (is_void): Make the primary template derive from false_type,
1765 and define four explicit specializations that derive from
1766 true_type.
1767 (__is_null_pointer_helper, is_null_pointer): Likewise.
1768
1769 2022-09-07 Jason Merrill <jason@redhat.com>
1770
1771 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
1772 call in simple success case.
1773
1774 2022-09-06 Philipp Fent <fent@in.tum.de>
1775
1776 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
1777 tuple indices.
1778 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1779
1780 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1781
1782 * include/std/type_traits (__success_type, __failure_type): Move
1783 definitions later in the file.
1784
1785 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1786
1787 * include/std/type_traits (is_trivial_v, is_trivially_copyable_v)
1788 (is_standard_layout_v, is_pod_v, is_literal_type_v): Use
1789 built-in instead of class template.
1790 (is_same_v): Add partial specialization for true case.
1791
1792 2022-09-02 Patrick Palka <ppalka@redhat.com>
1793
1794 * include/std/tuple (tuple::_UseOtherCtor): Use ::type when
1795 deriving from __and_, __or_ or __not_.
1796 * include/std/type_traits (negation): Likewise.
1797 (is_unsigned): Likewise.
1798 (__is_implicitly_default_constructible): Likewise.
1799 (is_trivially_destructible): Likewise.
1800 (__is_nt_invocable_impl): Likewise.
1801
1802 2022-09-02 Jonathan Wakely <jwakely@redhat.com>
1803
1804 * include/std/type_traits (is_constructible_v)
1805 (is_default_constructible_v, is_copy_constructible_v)
1806 (is_move_constructible_v): Define using __is_constructible.
1807 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v):
1808 Define using __is_assignable.
1809 (is_trivially_constructible_v)
1810 (is_trivially_default_constructible_v)
1811 (is_trivially_copy_constructible_v)
1812 (is_trivially_move_constructible_v): Define using
1813 __is_trivially_constructible.
1814 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1815 (is_trivially_move_assignable_v): Define using
1816 __is_trivially_assignable.
1817 (is_nothrow_constructible_v)
1818 (is_nothrow_default_constructible_v)
1819 (is_nothrow_copy_constructible_v)
1820 (is_nothrow_move_constructible_v): Define using
1821 __is_nothrow_constructible.
1822 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1823 (is_nothrow_move_assignable_v): Define using
1824 __is_nothrow_assignable.
1825
1826 2022-09-02 Patrick Palka <ppalka@redhat.com>
1827
1828 * include/std/type_traits (__or_, __and_, __not_): Redefine as a
1829 class template instead of as an alias template.
1830 * testsuite/20_util/logical_traits/requirements/short_circuit.cc:
1831 Add more tests for conjunction and disjunction. Add corresponding
1832 tests for __and_ and __or_.
1833
1834 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1835
1836 * include/std/ranges (adjacent_transform_view::_Iterator): Add
1837 typename keyword before dependent qualified-id.
1838
1839 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1840
1841 * include/std/type_traits (__is_referenceable): Remove.
1842 (__add_lvalue_reference_helper, __add_rvalue_reference_helper):
1843 Use __void_t instead of __is_referenceable.
1844 (__add_pointer_helper): Likewise.
1845 (add_pointer): Add partial specializations for reference types.
1846
1847 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1848
1849 * include/std/type_traits (__is_constructible_impl): Replace
1850 class template with alias template.
1851 (is_default_constructible, is_nothrow_constructible)
1852 (is_nothrow_constructible): Simplify base-specifier.
1853 (__is_copy_constructible_impl, __is_move_constructible_impl)
1854 (__is_nothrow_copy_constructible_impl)
1855 (__is_nothrow_move_constructible_impl): Remove class templates.
1856 (is_copy_constructible, is_move_constructible)
1857 (is_nothrow_constructible, is_nothrow_default_constructible)
1858 (is_nothrow_copy_constructible, is_nothrow_move_constructible):
1859 Adjust base-specifiers to use __is_constructible_impl.
1860 (__is_copy_assignable_impl, __is_move_assignable_impl)
1861 (__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl):
1862 Remove class templates.
1863 (__is_assignable_impl): New alias template.
1864 (is_assignable, is_copy_assignable, is_move_assignable):
1865 Adjust base-specifiers to use new alias template.
1866 (is_nothrow_copy_assignable, is_nothrow_move_assignable):
1867 Adjust base-specifiers to use existing alias template.
1868 (__is_trivially_constructible_impl): New alias template.
1869 (is_trivially_constructible, is_trivially_default_constructible)
1870 (is_trivially_copy_constructible)
1871 (is_trivially_move_constructible): Adjust base-specifiers to use
1872 new alias template.
1873 (__is_trivially_assignable_impl): New alias template.
1874 (is_trivially_assignable, is_trivially_copy_assignable)
1875 (is_trivially_move_assignable): Adjust base-specifier to use
1876 new alias template.
1877 (__add_lval_ref_t, __add_rval_ref_t): New alias templates.
1878 (add_lvalue_reference, add_rvalue_reference): Use new alias
1879 templates.
1880
1881 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1882
1883 * include/std/type_traits (__decay_selector): Add partial
1884 specializations for array types. Only check for function types
1885 when not dealing with an array.
1886 (decay): Add partial specializations for reference types.
1887
1888 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1889
1890 * include/std/type_traits (is_lvalue_reference_v)
1891 (is_rvalue_reference_v, is_reference_v, is_const_v)
1892 (is_volatile_v): Define using partial specializations instead
1893 of instantiating class templates.
1894
1895 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1896
1897 * include/std/type_traits (is_enum_v, is_class_v, is_union_v)
1898 (is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v)
1899 (is_base_of_v, is_aggregate_v): Use built-in directly instead of
1900 instantiating class template.
1901
1902 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1903
1904 * include/std/type_traits (is_scoped_enum): Remove workaround.
1905
1906 2022-09-01 Patrick Palka <ppalka@redhat.com>
1907
1908 * include/std/ranges (__detail::__unarize): Define.
1909 (adjacent_view::_Iterator): Befriend adjacent_transform_view.
1910 (adjacent_transform_view): Define.
1911 (adjacent_transform_view::_Iterator): Define.
1912 (adjacent_transform_view::_Sentinel): Define.
1913 (views::__detail::__can_adjacent_transform_view): Define.
1914 (views::_AdjacentTransform): Define.
1915 (views::adjacent_transform): Define.
1916 (views::pairwise_transform): Define.
1917 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test.
1918
1919 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1920
1921 * include/std/type_traits (__is_array_known_bounds): Add partial
1922 specialization instead of using std::extent.
1923 (__is_array_unknown_bounds): Likewise.
1924 (extent): Add partial specializations to stop recursion after
1925 the result is found.
1926 (is_array_v): Add partial specializations instead of
1927 instantiating the class template.
1928 (rank_v, extent_v): Likewise.
1929 (is_bounded_array_v, is_unbounded_array_v): Likewise.
1930 (is_bounded_array, is_unbounded_array): Define in terms of the
1931 variable templates.
1932
1933 2022-08-31 Patrick Palka <ppalka@redhat.com>
1934
1935 * include/bits/ranges_base.h (__advance_fn::operator()): Add
1936 parentheses in assert condition to avoid -Wparentheses warning.
1937 * include/std/ranges: (take_view::take_view): Uglify 'base'.
1938 (take_while_view::take_while_view): Likewise.
1939 (elements_view::elements_view): Likewise.
1940 (views::_Zip::operator()): Adjust position of [[nodiscard]] for
1941 compatibility with -fconcepts-ts.
1942 (zip_transform_view::_Sentinel): Uglify 'OtherConst'.
1943 (views::_ZipTransform::operator()): Adjust position of
1944 [[nodiscard]] for compatibilty with -fconcepts-ts.
1945
1946 2022-08-31 Martin Liska <mliska@suse.cz>
1947
1948 * configure: Regenerate.
1949 * crossconfig.m4: Remove deprecated ports.
1950
1951 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1952
1953 * include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11.
1954 * include/debug/string: Likewise.
1955 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string.
1956 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise.
1957 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise.
1958 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise.
1959 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise.
1960 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise..
1961
1962 2022-08-31 Patrick Palka <ppalka@redhat.com>
1963
1964 * include/std/ranges (adjacent_view): Define.
1965 (enable_borrowed_range<adjacent_view>): Define.
1966 (__detail::__repeated_tuple): Define.
1967 (adjacent_view::_Iterator): Define.
1968 (adjacent_view::_Sentinel): Define.
1969 (views::__detail::__can_adjacent_view): Define.
1970 (views::_Adjacent): Define.
1971 (views::adjacent): Define.
1972 (views::pairwise): Define.
1973 * testsuite/std/ranges/adaptors/adjacent/1.cc: New test.
1974
1975 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1976
1977 * include/debug/formatter.h
1978 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
1979 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
1980 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
1981 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
1982 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
1983 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
1984 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
1985 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
1986 * src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
1987 (_Error_formatter::_M_error()): Adapt.
1988 * src/libbacktrace/Makefile.am: Add backtrace.c.
1989 * src/libbacktrace/Makefile.in: Regenerate.
1990 * src/libbacktrace/backtrace-rename.h (backtrace_full): New.
1991 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test.
1992 * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
1993 * doc/xml/manual/using.xml: Likewise.
1994
1995 2022-08-31 Patrick Palka <ppalka@redhat.com>
1996
1997 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
1998
1999 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
2000
2001 * include/bits/refwrap.h (reference_wrapper::operator()): Add
2002 noexcept-specifier and use __invoke_result instead of result_of.
2003 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
2004
2005 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
2006
2007 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
2008 comments.
2009 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
2010 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
2011
2012 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
2013
2014 * include/bits/basic_string.h (basic_string): Add nodiscard
2015 attribute to all relevant functions.
2016 * include/std/string_view (basic_string_view): Likewise.
2017 * testsuite/21_strings/basic_string/capacity/1.cc: Cast unused
2018 results to void.
2019 * testsuite/21_strings/basic_string/capacity/char/1.cc:
2020 Likewise.
2021 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
2022 Likewise.
2023 * testsuite/21_strings/basic_string/cons/char/self_move.cc:
2024 Likewise.
2025 * testsuite/21_strings/basic_string/element_access/char/1.cc:
2026 Likewise.
2027 * testsuite/21_strings/basic_string/element_access/char/21674.cc:
2028 Likewise.
2029 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
2030 Likewise.
2031 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
2032 Likewise.
2033 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
2034 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
2035 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc:
2036 Add -Wno-unused-result to options.
2037 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
2038 Likewise.
2039 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
2040 Likewise.
2041 * testsuite/21_strings/basic_string/operators/char/1.cc: Cast
2042 unused results to void.
2043 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc:
2044 Likewise.
2045 * testsuite/21_strings/basic_string_view/capacity/1.cc:
2046 Likewise.
2047 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2048 Likewise.
2049 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2050 Likewise.
2051 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2052 Likewise.
2053 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2054 Likewise.
2055 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
2056 Likewise.
2057 Add -Wno-unused-result to options.
2058 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
2059 Likewise.
2060 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
2061 Likewise.
2062 * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast
2063 unused results to void.
2064 * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc:
2065 Likewise.
2066 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
2067 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
2068 Likewise.
2069
2070 2022-08-27 Patrick Palka <ppalka@redhat.com>
2071
2072 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
2073
2074 2022-08-26 Patrick Palka <ppalka@redhat.com>
2075
2076 * include/std/ranges (zip_view::_Iterator::operator<): Remove
2077 as per LWG 3692.
2078 (zip_view::_Iterator::operator>): Likewise.
2079 (zip_view::_Iterator::operator<=): Likewise.
2080 (zip_view::_Iterator::operator>=): Likewise.
2081 (zip_view::_Iterator::operator<=>): Remove three_way_comparable
2082 constraint as per LWG 3692.
2083 (zip_transform_view::_Iterator): Ditto as per LWG 3702.
2084
2085 2022-08-26 Patrick Palka <ppalka@redhat.com>
2086
2087 * include/std/ranges (zip_view::_Iterator): Befriend
2088 zip_transform_view.
2089 (__detail::__range_iter_cat): Define.
2090 (zip_transform_view): Define.
2091 (zip_transform_view::_Iterator): Define.
2092 (zip_transform_view::_Sentinel): Define.
2093 (views::__detail::__can_zip_transform_view): Define.
2094 (views::_ZipTransform): Define.
2095 (views::zip_transform): Define.
2096 * testsuite/std/ranges/zip_transform/1.cc: New test.
2097
2098 2022-08-26 Patrick Palka <ppalka@redhat.com>
2099
2100 * include/std/type_traits (enable_if, __enable_if_t): Define them
2101 earlier.
2102 (__detail::__first_t): Define.
2103 (__detail::__or_fn, __detail::__and_fn): Declare.
2104 (__or_, __and_): Redefine as alias templates in terms of __or_fn
2105 and __and_fn.
2106 (__not_): Redefine as an alias template.
2107 (__detail::__disjunction_impl, __detail::__conjunction_impl):
2108 Define.
2109 (conjuction, disjunction): Redefine in terms of __disjunction_impl
2110 and __conjunction_impl.
2111
2112 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
2113
2114 * include/std/system_error (error_code::_Check): New alias
2115 template for constructor SFINAE constraint.
2116 (error_code::error_code(ErrorCodeEnum)): Use it.
2117 (error_code::operator=(ErrorCodeEnum)): Remove.
2118 (error_condition::_Check): New alias template for constraint.
2119 (error_condition::error_condition(ErrorConditionEnum)): Use it.
2120 (error_condition::operator=(ErrorConditionEnum)): Remove.
2121 * testsuite/19_diagnostics/error_code/cons/1.cc: Check
2122 constructor taking user-defined error enum.
2123 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
2124
2125 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
2126
2127 * include/bits/basic_string.h (starts_with, ends_with, contains):
2128 Add nonnull attribute.
2129 * include/bits/cow_string.h (starts_with, ends_with, contains):
2130 Likewise.
2131 * include/std/string_view (starts_with, ends_with, contains):
2132 Likewise.
2133 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc
2134 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
2135 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
2136 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
2137 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
2138 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
2139
2140 2022-08-25 Patrick Palka <ppalka@redhat.com>
2141
2142 * include/std/ranges (lazy_split_view::_OuterIter::_M_current):
2143 Remove redundant comment.
2144 (lazy_split_view::_M_current): Likewise.
2145 (common_view::common_view): Remove commented out view-converting
2146 constructor as per LWG3405.
2147 (elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'.
2148
2149 2022-08-24 Patrick Palka <ppalka@redhat.com>
2150
2151 * include/bits/ranges_algo.h (__min_fn, min): Move to ...
2152 * include/bits/ranges_util.h: ... here, in order to avoid
2153 including all of ranges_algo.h from <ranges>.
2154 * include/std/ranges (__detail::__zip_is_common): Define for
2155 C++23 as per P2321R2.
2156 (__detail::__tuple_or_pair): Likewise.
2157 (__detail::__tuple_or_pair_t): Likewise.
2158 (__detail::__tuple_transform): Likewise.
2159 (__detail::__tuple_for_each): Likewise.
2160 (zip_view): Likewise.
2161 (enable_borrowed_range<zip_view>): Likewise.
2162 (__detail::__all_random_access): Likewise.
2163 (__detail::__all_bidirectional): Likewise.
2164 (__detail::__all_forward): Likewise.
2165 (__detail::__zip_view_iter_cat): Likewise.
2166 (zip_view::_Iterator): Likewise.
2167 (zip_view::_Sentinel): Likewise.
2168 * testsuite/std/ranges/zip/1.cc: New test.
2169
2170 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2171
2172 Revert:
2173 2022-08-24 Will Hawkins <whh8b@obs.cr>
2174
2175 * include/bits/basic_string.h (operator+(const string&, const char*)):
2176 Remove naive implementation.
2177 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
2178 Add single-allocation implementation.
2179
2180 2022-08-24 Patrick Palka <ppalka@redhat.com>
2181
2182 * include/bits/stl_pair.h (pair::swap const): Add non-standard
2183 is_swappable_v constraints.
2184 * include/std/tuple (tuple::swap const): Likewise.
2185 * testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some
2186 asserts in C++23 mode.
2187
2188 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2189
2190 * include/bits/stl_algo.h (__stable_sort): Cast size to
2191 iterator's difference type.
2192 * testsuite/25_algorithms/stable_sort/4.cc: New test.
2193
2194 2022-08-24 Will Hawkins <whh8b@obs.cr>
2195
2196 * include/bits/basic_string.h (operator+(const string&, const char*)):
2197 Remove naive implementation.
2198 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
2199 Add single-allocation implementation.
2200
2201 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2202
2203 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
2204 non-reduced duration.
2205
2206 2022-08-23 Patrick Palka <ppalka@redhat.com>
2207
2208 * include/bits/stl_bvector.h (_Bit_reference::operator=): Define
2209 const overload for C++23 as per P2321R2.
2210 * include/bits/stl_pair.h (pair::swap): Likewise.
2211 (pair::pair): Define additional converting constructors for
2212 C++23 as per P2321R2.
2213 (pair::operator=): Define const overloads for C++23 as per
2214 P2321R2.
2215 (swap): Define overload taking const pair& for C++23 as per
2216 P2321R2.
2217 (basic_common_reference): Define partial specialization for
2218 pair for C++23 as per P2321R2.
2219 (common_type): Likewise.
2220 * include/bits/uses_allocator_args.h
2221 (uses_allocator_construction_args): Define additional pair
2222 overloads for C++23 as per P2321R2.
2223 * include/std/tuple (_Tuple_impl::_Tuple_impl): Define
2224 additional converting constructors for C++23 as per P2321R2.
2225 (_Tuple_impl::_M_assign): Define const overloads for C++23
2226 as per P2321R2.
2227 (_Tuple_impl::_M_swap): Likewise.
2228 (tuple::__constructible): Define as a convenient renaming of
2229 _TCC<true>::__constructible.
2230 (tuple::__convertible): As above but for _TCC<true>::__convertible.
2231 (tuple::tuple): Define additional converting constructors for
2232 C++23 as per P2321R2.
2233 (tuple::operator=): Define const overloads for C++23 as per
2234 P2321R2.
2235 (tuple::swap): Likewise.
2236 (basic_common_reference): Define partial specialization for
2237 tuple for C++23 as per P2321R2.
2238 (common_type): Likewise.
2239 * testsuite/20_util/pair/p2321r2.cc: New test.
2240 * testsuite/20_util/tuple/p2321r2.cc: New test.
2241 * testsuite/23_containers/vector/bool/element_access/1.cc: New test.
2242
2243 2022-08-23 Patrick Palka <ppalka@redhat.com>
2244
2245 * include/std/tuple (_TupleConstraints::__convertible): Define.
2246 (_TupleConstraints::__constructible): Define.
2247 (_TupleConstraints::__is_explicitly_constructible): Redefine this
2248 in terms of __convertible and __constructible.
2249 (_TupleConstraints::__is_implicitly_constructible): Likewise.
2250
2251 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
2252
2253 PR libstdc++/106589
2254 * include/std/variant (__do_visit): Handle is_void<R> for zero
2255 argument case.
2256 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
2257
2258 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2259
2260 PR libstdc++/105678
2261 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
2262 requirement for using std::stacktrace. Also adjust -frtti and
2263 -fexceptions to document non-default (i.e. negative) forms.
2264 * doc/html/*: Regenerate.
2265
2266 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2267
2268 PR libstdc++/106695
2269 * include/bits/std_thread.h (thread::_State_impl): Forward
2270 individual arguments to _Invoker constructor.
2271 (thread::_Invoker): Add constructor. Delete copies.
2272 * include/std/future (__future_base::_Deferred_state): Forward
2273 individual arguments to _Invoker constructor.
2274 (__future_base::_Async_state_impl): Likewise.
2275 * testsuite/30_threads/async/106695.cc: New test.
2276 * testsuite/30_threads/thread/106695.cc: New test.
2277
2278 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2279
2280 PR libstdc++/106607
2281 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
2282 Use built-ins to check for integer overflow in back-reference
2283 number.
2284 * testsuite/28_regex/basic_regex/106607.cc: New test.
2285
2286 2022-08-17 Keef Aragon <keef.aragon@konscious.net>
2287
2288 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
2289
2290 2022-08-08 François Dumont <fdumont@gcc.gnu.org>
2291
2292 * include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry.
2293 (_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator
2294 parameter is value-initialized.
2295 (_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise.
2296 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt
2297 checks.
2298 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
2299 Adapt checks.
2300 * src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version.
2301 (print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names.
2302 * testsuite/23_containers/deque/debug/iterator1_neg.cc: New test.
2303 * testsuite/23_containers/deque/debug/iterator2_neg.cc: New test.
2304 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test.
2305 * testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test.
2306 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test.
2307
2308 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
2309
2310 * include/experimental/scope (__cpp_lib_experimental_scope):
2311 Define.
2312 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro.
2313
2314 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
2315
2316 * include/Makefile.am: Add new header.
2317 * include/Makefile.in: Regenerate.
2318 * include/experimental/scope: New file.
2319 * testsuite/experimental/scopeguard/uniqueres.cc: New test.
2320 * testsuite/experimental/scopeguard/exit.cc: New test.
2321
2322 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2323
2324 * include/std/string_view (basic_string_view(Range&&)): Add
2325 explicit as per P2499R0.
2326 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
2327 Adjust implicit conversions. Check implicit conversions fail.
2328 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
2329 Likewise.
2330
2331 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2332
2333 * include/bits/fs_dir.h (directory_iterator): Add comparison
2334 with std::default_sentinel_t. Remove redundant operator!= for
2335 C++20.
2336 * (recursive_directory_iterator): Likewise.
2337 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
2338 (default_sentinel_t, default_sentinel): Define even if concepts
2339 are not supported.
2340 * include/bits/regex.h (regex_iterator): Add comparison with
2341 std::default_sentinel_t. Remove redundant operator!= for C++20.
2342 (regex_token_iterator): Likewise.
2343 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
2344 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
2345 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
2346 New test.
2347 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
2348 New test.
2349
2350 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2351
2352 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
2353 (bad_expected_access::_M_val): Likewise.
2354
2355 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2356
2357 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
2358 value to 202207L.
2359 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
2360 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
2361 for new value.
2362 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
2363 Likewise.
2364
2365 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2366
2367 PR libstdc++/106183
2368 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
2369 Move increment of _M_ver here.
2370 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
2371 Use relaxed memory order and always notify all waiters.
2372 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
2373 Check value again after locking mutex.
2374 (__waiter_base::_M_notify): Remove increment of _M_ver.
2375
2376 2022-08-04 Ulrich Drepper <drepper@gmail.com>
2377
2378 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
2379 zero-based indeces just like std:get takes.
2380
2381 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
2382
2383 PR libstdc++/104443
2384 * include/bits/stl_iterator.h (common_iterator::operator->):
2385 Change return type to just auto.
2386
2387 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
2388
2389 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
2390
2391 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2392
2393 PR libstdc++/100823
2394 * include/bits/stl_iterator.h (common_iterator): Define
2395 destructor, copy constructor and move constructor as trivial
2396 when the underlying types allow.
2397 * testsuite/24_iterators/common_iterator/100823.cc: Check
2398 triviality of special members.
2399
2400 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2401
2402 PR libstdc++/100823
2403 * include/bits/stl_iterator.h (common_iterator): Define move
2404 constructor and move assignment operator.
2405 (common_iterator::_M_assign): New function implementing
2406 assignment.
2407 (common_iterator::operator=): Use _M_assign.
2408 (common_iterator::_S_valueless): New constant.
2409 * testsuite/24_iterators/common_iterator/100823.cc: New test.
2410
2411 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2412
2413 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
2414 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
2415 friend declaration. Do not move argument in copy constructor.
2416 * testsuite/24_iterators/common_iterator/1.cc: Check for
2417 noexcept constructibnle/assignable.
2418
2419 2022-07-19 François Dumont <fdumont@gcc.gnu.org>
2420
2421 * include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define
2422 using _GLIBCXX_DEBUG_PEDASSERT.
2423 [_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise.
2424 * include/debug/macros.h
2425 (__glibcxx_check_string, __glibcxx_check_string_len): Move...
2426 * include/debug/string
2427 (__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending
2428 on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined.
2429 Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of
2430 and find_last_not_of. Remove debug implementations having no debug assertion.
2431 * testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and
2432 __gnu_test::wtring which definition depends on _GLIBCXX_DEBUG.
2433 * testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case.
2434 * testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case.
2435 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
2436 Include <testsuite_string.h> and use __gnu_test::string.
2437 * testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise.
2438 * testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise.
2439 * testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise.
2440 * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise.
2441 * testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise.
2442 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
2443 Include <testsuite_string.h> and use __gnu_test::wstring.
2444 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise.
2445 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise.
2446 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise.
2447 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise.
2448 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise.
2449
2450 2022-07-19 Jonathan Wakely <jwakely@redhat.com>
2451
2452 * include/std/type_traits (__cpp_lib_reference_from_temporary)
2453 (reference_constructs_from_temporary)
2454 (reference_converts_from_temporary): Only define when the
2455 built-ins are available.
2456
2457 2022-07-19 Marco Falke <falke.marco@gmail.com>
2458
2459 * include/std/charconv (__from_chars_alnum_to_val): Replace
2460 implicit conversion from int to unsigned char with explicit
2461 cast.
2462
2463 2022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
2464
2465 * configure: Regnerate.
2466 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
2467
2468 2022-07-18 François Dumont <fdumont@gcc.gnu.org>
2469
2470 * include/bits/stl_algo.h
2471 (__merge_adaptive): Adapt to merge only when buffer is large enough..
2472 (__merge_adaptive_resize): New, adapt merge when buffer is too small.
2473 (__inplace_merge): Adapt, use latter.
2474 (__stable_sort_adaptive): Adapt to sort only when buffer is large enough.
2475 (__stable_sort_adaptive_resize): New, adapt sort when buffer is too small.
2476 (__stable_sort): Adapt, use latter.
2477
2478 2022-07-15 Marek Polacek <polacek@redhat.com>
2479
2480 PR c++/104477
2481 * include/std/type_traits (reference_constructs_from_temporary,
2482 reference_converts_from_temporary): New class templates.
2483 (reference_constructs_from_temporary_v,
2484 reference_converts_from_temporary_v): New variable templates.
2485 (__cpp_lib_reference_from_temporary): Define for C++23.
2486 * include/std/version (__cpp_lib_reference_from_temporary): Define for
2487 C++23.
2488 * testsuite/20_util/variable_templates_for_traits.cc: Test
2489 reference_constructs_from_temporary_v and
2490 reference_converts_from_temporary_v.
2491 * testsuite/20_util/reference_from_temporary/value.cc: New test.
2492 * testsuite/20_util/reference_from_temporary/value2.cc: New test.
2493 * testsuite/20_util/reference_from_temporary/version.cc: New test.
2494
2495 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2496
2497 PR libstdc++/106248
2498 * include/std/istream [C++17] (operator>>(istream&, char*)):
2499 Set eofbit if we stopped extracting at EOF.
2500 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
2501 New test.
2502 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
2503 New test.
2504
2505 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2506
2507 * include/bits/stl_iterator.h (__iter_to_alloc_t): Replace
2508 add_const_t with const-qualifier.
2509 * include/bits/utility.h (tuple_element<N, cv T>): Likewise for
2510 all cv-qualifiers.
2511 * include/std/type_traits (add_const, add_volatile): Replace
2512 typedef-declaration with using-declaration.
2513 (add_cv): Replace add_const and add_volatile with cv-qualifiers.
2514 * include/std/variant (variant_alternative<N, cv T>): Replace
2515 add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers.
2516
2517 2022-07-09 François Dumont <fdumont@gcc.gnu.org>
2518
2519 * include/std/string: Remove obsolete comment about char_traits.h including
2520 stl_algobase.h.
2521
2522 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
2523
2524 PR c++/89074
2525 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
2526 Remove workaround for front-end bug.
2527
2528 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2529
2530 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
2531 why we need the typecast.
2532
2533 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2534
2535 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert
2536 the getpid result to an integral type.
2537
2538 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2539
2540 PR libstdc++/106162
2541 * include/Makefile.am (largefile-config.h): Add
2542 stamp-${host_alias} prerequisite.
2543 * include/Makefile.in: Regenerate.
2544
2545 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2546
2547 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
2548 * include/experimental/bits/fs_ops.h: Likewise.
2549 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
2550 results of absolute and canonical.
2551 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
2552 discarded result to void.
2553 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
2554 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2555 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2556 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2557 Likewise.
2558 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2559 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2560 Likewise.
2561 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2562 Likewise.
2563 * testsuite/experimental/filesystem/operations/canonical.cc:
2564 Likewise.
2565 * testsuite/experimental/filesystem/operations/exists.cc:
2566 Likewise.
2567 * testsuite/experimental/filesystem/operations/is_empty.cc:
2568 Likewise.
2569 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2570 Likewise.
2571 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2572 Likewise.
2573
2574 2022-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
2575
2576 * configure: Regnerate.
2577 * configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS
2578 targets except bfin, lm32, mips, moxie, or1k, and v850.
2579 For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT,
2580 HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV,
2581 HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK,
2582 HAVE_TRUNCATE, and HAVE_USLEEP.
2583 * crossconfig.m4 (*-rtems*): Remove.
2584
2585 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2586
2587 * include/bits/utility.h: Fix comment typos.
2588
2589 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2590
2591 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
2592 in exception.
2593 (fs::temp_directory_path(error_code&)): Rearrange to more
2594 closely match the structure of the first overload.
2595 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2596 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2597 Check that exception contains the path.
2598 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2599 Likewise.
2600
2601 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2602
2603 PR libstdc++/88881
2604 * src/filesystem/ops.cc (has_trailing_slash): New helper
2605 function.
2606 (fs::status): Strip trailing slashes.
2607 (fs::symlink_status): Likewise.
2608 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2609 Clean the environment before each test and use TMP instead of
2610 TMPDIR so the test passes on Windows.
2611
2612 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2613
2614 * src/filesystem/dir-common.h (_Dir_base::_At_path):
2615 Use char_type consistently for paths.
2616
2617 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2618
2619 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
2620 current() returning _At_path.
2621 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
2622 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
2623 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
2624 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
2625 current() returning _At_path.
2626 (_Dir::_Dir, _Dir::open_subdir): Adjust.
2627
2628 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2629
2630 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
2631 Always store pathname if we don't have openat or unlinkat,
2632 because the full path is needed to open sub-directories and
2633 remove entries.
2634
2635 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2636
2637 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
2638 functions are available.
2639
2640 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2641
2642 * testsuite/20_util/to_chars/long_double.cc: Use cmath
2643 long double overloads for nexttoward and ldexp.
2644
2645 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2646
2647 * testsuite/experimental/simd/standard_abi_usable.cc: Require
2648 cmath support.
2649 * testsuite/experimental/simd/standard_abi_usable_2.cc:
2650 Likewise.
2651
2652 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2653
2654 * testsuite/26_numerics/complex/proj.cc: Skip test in the
2655 circumstances in which the implementation of proj is known to
2656 be broken.
2657
2658 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2659
2660 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
2661 _GLIBCXX_HAVE_OPENAT.
2662
2663 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2664
2665 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
2666 (test06): Don't create symlinks when NO_SYMLINKS is defined.
2667
2668 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2669
2670 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
2671 Add -Wl,--gc-sections for RTEMS targets.
2672 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
2673 xfail on RTEMS.
2674 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
2675 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2676 Execution-time xfail on RTEMS.
2677 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2678 Likewise.
2679
2680 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2681
2682 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
2683
2684 2022-06-27 Joel Brobecker <brobecker@adacore.com>
2685 Jonathan Wakely <jwakely@redhat.com>
2686
2687 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
2688 Always include a counter in the filename returned.
2689
2690 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2691
2692 * include/bits/move_only_function.h (_Never_valueless_alt):
2693 Define partial specialization for std::move_only_function.
2694
2695 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2696
2697 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
2698 as deleted.
2699 (__accepted_index, _Extra_visit_slot_needed): Replace class
2700 templates with variable templates.
2701
2702 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2703
2704 * include/bits/fs_path.h (__is_path_iter_src): Replace class
2705 template with variable template.
2706
2707 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2708
2709 * include/bits/chrono.h (is_clock_v): Define to false.
2710 (is_clock_v<T>): Define partial specialization for true cases.
2711 (is_clock): Define in terms of is_clock_v.
2712
2713 2022-06-24 Xi Ruoyao <xry111@xry111.site>
2714
2715 * scripts/extract_symvers.in: Use grep -E instead of egrep.
2716 * scripts/run_doxygen: Likewise.
2717
2718 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2719
2720 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2721 openat.
2722 * configure, config.h.in: Rebuilt.
2723 * src/filesystem/dir-common.h (openat): Use ::openat if
2724 _GLIBCXX_HAVE_OPENAT.
2725 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
2726 _GLIBCXX_HAVE_OPENAT.
2727
2728 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2729
2730 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
2731 rtems.
2732 * testsuite/experimental/filesystem/operations/rename.cc:
2733 Likewise.
2734
2735 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2736
2737 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
2738 when appropriate.
2739 * testsuite/lib/libstdc++.exp
2740 (check_v3_target_fs_last_write_time): New.
2741 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
2742 New.
2743 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2744 Skip the test if the features are unavailable.
2745 * testsuite/experimental/filesystem/operations/last_write_time.cc:
2746 Likewise.
2747
2748 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2749
2750 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
2751 appropriate.
2752 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
2753 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
2754 New.
2755 * testsuite/27_io/filesystem/operations/space.cc: Require
2756 target-fs-space.
2757 * testsuite/experimental/filesystem/operations/space.cc:
2758 Likewise.
2759
2760 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2761
2762 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
2763 mingw and when create_symlink is a dummy.
2764 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2765 Drop mingw xfail.
2766 (test01, test02): Don't create symlinks when NO_SYMLINKS is
2767 defined.
2768 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
2769 Likewise.
2770 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2771 Likewise.
2772 * testsuite/27_io/filesystem/operations/create_directories.cc
2773 (test04): Likewise.
2774 * testsuite/27_io/filesystem/operations/create_directory.cc
2775 (test01): Likewise.
2776 * testsuite/27_io/filesystem/operations/permissions.cc
2777 (test03, test04): Likewise.
2778 * testsuite/27_io/filesystem/operations/remove.cc (test01):
2779 Likewise.
2780 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
2781 Likewise.
2782 * testsuite/27_io/filesystem/operations/rename.cc
2783 (test_symlinks): Likewise.
2784 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
2785 (test01): Likewise.
2786 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
2787 (test06): Likewise.
2788 * testsuite/experimental/filesystem/operations/copy.cc
2789 (test01): Likewise.
2790 * testsuite/experimental/filesystem/operations/create_directories.cc
2791 (test04): Likewise.
2792 * testsuite/experimental/filesystem/operations/create_directory.cc
2793 (test01): Likewise.
2794 * testsuite/experimental/filesystem/operations/permissions.cc
2795 (test03, test04): Likewise.
2796 * testsuite/experimental/filesystem/operations/remove.cc
2797 (test01): Likewise.
2798 * testsuite/experimental/filesystem/operations/remove_all.cc
2799 (test01): Likewise.
2800 * testsuite/experimental/filesystem/operations/rename.cc
2801 (test01): Likewise.
2802 * testsuite/lib/libstdc++.exp
2803 (v3_check_preprocessor_condition): Add optional inc parameter.
2804 Add it to the test program after include bits/c++config.h.
2805 (check_v3_target_fs_symlinks): New.
2806 * testsuite/lib/dg-options.exp
2807 (dg-require-target-fs-symlinks): New.
2808 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2809 Replace mingw xfail with require target-fs-symlinks.
2810 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2811 Likewise.
2812
2813 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2814
2815 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2816 Select TO after creating FROM.
2817 (test03, test04): Likewise.
2818 * testsuite/experimental/filesystem/operations/copy.cc
2819 (test02, test03, test04): Likewise.
2820
2821 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2822
2823 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
2824 explicit cancellation point in case sleep_for lacks one.
2825
2826 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2827
2828 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
2829 -lbsd for RTEMS targets.
2830
2831 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2832
2833 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2834 rmdir to remove directories.
2835 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2836 Likewise.
2837
2838 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2839
2840 * testsuite/26_numerics/random/random_device/entropy.cc: Use
2841 numeric_limits<unsigned>::digits.
2842
2843 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2844
2845 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
2846 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
2847
2848 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2849
2850 * testsuite/30_threads/this_thread/60421.cc (test02): Call
2851 sched_yield.
2852
2853 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2854
2855 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
2856
2857 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2858
2859 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
2860 global struct bitset.
2861 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
2862 * testsuite/23_containers/bitset/input/1.cc: Likewise.
2863 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
2864 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
2865
2866 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
2867
2868 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
2869 missing #include.
2870
2871 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2872
2873 PR libstdc++/105995
2874 * include/bits/basic_string.h (_M_use_local_data): Initialize
2875 the entire SSO buffer.
2876 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
2877
2878 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2879
2880 PR libstdc++/101482
2881 * include/ext/vstring.h (operator==): Always check lengths
2882 before comparing.
2883
2884 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
2885
2886 PR libstdc++/105717
2887 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
2888 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
2889 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
2890 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
2891 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2892 const allocator_type&, true_type)): Use this.insert range.
2893 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2894 const allocator_type&, false_type)): Use _M_insert.
2895 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
2896 is done.
2897 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
2898 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
2899
2900 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2901
2902 PR libstdc++/62187
2903 * include/bits/basic_string.h (operator==): Always compare
2904 lengths before checking string contents.
2905 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
2906 Reorder arguments.
2907
2908 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2909
2910 PR libstdc++/59048
2911 * include/bits/basic_string.h (compare): Define inline.
2912 * include/bits/basic_string.tcc (compare): Remove out-of-line
2913 definitions.
2914 * include/bits/cow_string.h (compare): Define inline.
2915 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
2916 New test.
2917
2918 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2919
2920 * include/bits/new_allocator.h: Fix indentation.
2921 * include/ext/malloc_allocator.h: Likewise.
2922
2923 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2924
2925 PR libstdc++/105957
2926 * include/bits/allocator.h (allocator::allocate): Check for
2927 overflow in constexpr allocation.
2928 * testsuite/20_util/allocator/105975.cc: New test.
2929
2930 2022-06-13 Mark Mentovai <mark@mentovai.com>
2931
2932 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
2933 Rename to __nul_terminated to avoid colliding with a macro in
2934 Apple's SDK.
2935
2936 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
2937
2938 * include/std/atomic (__atomic_val_t): Use __type_identity_t
2939 instead of atomic<T>::value_type, as per LWG 3220.
2940 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
2941
2942 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2943
2944 PR libstdc++/105844
2945 * include/experimental/numeric (experimental::gcd): Simplify
2946 assertions. Use __abs_r instead of __absu.
2947 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
2948 overflow can be detected.
2949 * include/std/numeric (__detail::__absu): Rename to __abs_r and
2950 change to allow signed result type, so overflow can be detected.
2951 (__detail::__lcm): Remove.
2952 (gcd): Simplify assertions. Use __abs_r instead of __absu.
2953 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
2954 be detected.
2955 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
2956 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2957 * testsuite/26_numerics/gcd/105844.cc: New test.
2958 * testsuite/26_numerics/lcm/105844.cc: New test.
2959
2960 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2961
2962 PR libstdc++/105880
2963 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
2964 prevent destruction during termination.
2965 (__eh_globals_init::_M_init): Replace with static member _S_init.
2966 (__cxxabiv1::__cxa_get_globals_fast): Update.
2967 (__cxxabiv1::__cxa_get_globals): Likewise.
2968
2969 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2970
2971 * include/bits/basic_string.h (__hash_str_base): New class
2972 template.
2973 (hash<basic_string<C, char_traits<C>, A>>): Define partial
2974 specialization for each of the standard character types.
2975 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
2976 (hash<u32string>): Remove explicit specializations.
2977 * include/std/string (__hash_string_base): Remove class
2978 template.
2979 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
2980 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
2981 specializations.
2982 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
2983 custom allocators.
2984 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
2985 Likewise.
2986
2987 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
2988
2989 PR libstdc++/105671
2990 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
2991 always_inline attribute.
2992
2993 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2994
2995 PR libstdc++/105681
2996 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
2997 Limit ga_sizes array to values that fit in size_t.
2998 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
2999 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
3000 (sfmt216091_64): Do not declare.
3001
3002 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3003
3004 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
3005 lookup for ios_errc and future_errc check versioned namespace.
3006 (StdAtomicPrinter): Strip versioned namespace from typename.
3007
3008 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3009
3010 * src/c++11/Makefile.am: Add new source file.
3011 * src/c++11/Makefile.in: Regenerate.
3012 * src/c++11/cxx11-ios_failure.cc (iostream_category):
3013 Move to ...
3014 * src/c++11/ios_errcat.cc: New file.
3015 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
3016 std::iostream_category() is defined and used for std::io_errc.
3017
3018 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3019
3020 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
3021 Add 'constexpr' as per LWG 3643.
3022 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
3023
3024 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3025
3026 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
3027 comment.
3028 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
3029 here.
3030 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
3031 <bits/functional_hash.h>.
3032 * include/bits/unordered_map.h: Include required headers.
3033 * include/bits/unordered_set.h: Likewise.
3034 * include/std/unordered_map: Do not include headers for indirect
3035 dependencies.
3036 * include/std/unordered_set: Likewise.
3037
3038 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3039
3040 * include/bits/ranges_algobase.h: Do not include
3041 <bits/stl_iterator_base_types.h>.
3042 * include/std/string: Likewise.
3043 * include/std/variant: Likewise.
3044
3045 2022-05-26 Nathan Sidwell <nathan@acm.org>
3046
3047 * include/bits/hashtable.h: Include required headers.
3048 * include/bits/hashtable_policy.h: Likewise.
3049 * include/bits/stl_heap.h: Likewise.
3050 * include/bits/stl_iterator_base_funcs.h: Likewise.
3051
3052 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
3053
3054 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
3055 Strip typename from version namespace.
3056
3057 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3058
3059 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
3060 versioned namespace from the template argument too.
3061
3062 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3063
3064 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
3065 Moved to...
3066 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
3067 ...here.
3068 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
3069 Moved to...
3070 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
3071 ...here.
3072 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
3073 Moved to...
3074 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
3075 ...here.
3076 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
3077 Moved to...
3078 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
3079 ...here.
3080 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
3081 Moved to...
3082 * testsuite/21_strings/basic_string/operations/contains/char.cc:
3083 ...here.
3084 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
3085 Moved to...
3086 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
3087 ...here.
3088 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
3089 Moved to...
3090 * testsuite/21_strings/basic_string/operations/data/char.cc:
3091 ...here.
3092 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
3093 Moved to...
3094 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
3095 ...here.
3096 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
3097 Moved to...
3098 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
3099 ...here.
3100 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
3101 Moved to...
3102 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
3103 ...here.
3104 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
3105 Moved to...
3106 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
3107 ...here.
3108 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
3109 Moved to...
3110 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
3111 ...here.
3112 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
3113 Moved to...
3114 * testsuite/21_strings/basic_string/operations/substr/char.cc:
3115 ...here.
3116 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
3117 Moved to...
3118 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
3119 ...here.
3120 * testsuite/21_strings/basic_string/range_access/char/1.cc:
3121 Moved to...
3122 * testsuite/21_strings/basic_string/range_access/char.cc:
3123 ...here.
3124 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
3125 Moved to...
3126 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
3127 ...here.
3128 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3129 Moved to...
3130 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
3131 ...here.
3132 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3133 Moved to...
3134 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
3135 ...here.
3136 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3137 Moved to...
3138 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
3139 ...here.
3140 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3141 Moved to...
3142 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
3143 ...here.
3144 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3145 Moved to...
3146 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
3147 ...here.
3148 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3149 Moved to...
3150 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
3151 ...here.
3152 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
3153 Moved to...
3154 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
3155 ...here.
3156 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
3157 Moved to...
3158 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
3159 ...here.
3160 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3161 Moved to...
3162 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
3163 ...here.
3164 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3165 Moved to...
3166 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
3167 ...here.
3168 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
3169 Moved to...
3170 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
3171 ...here.
3172 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
3173 Moved to...
3174 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
3175 ...here.
3176 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
3177 Moved to...
3178 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
3179 ...here.
3180 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
3181 Moved to...
3182 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
3183 ...here.
3184 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3185 Moved to...
3186 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
3187 ...here.
3188 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3189 Moved to...
3190 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
3191 ...here.
3192 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3193 Moved to...
3194 * testsuite/21_strings/basic_string_view/range_access/char.cc:
3195 ...here.
3196 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3197 Moved to...
3198 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
3199 ...here.
3200 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
3201 Moved to...
3202 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
3203 ...here.
3204 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
3205 Moved to...
3206 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
3207 ...here.
3208 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
3209 Moved to...
3210 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
3211 ...here.
3212 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
3213 Moved to...
3214 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
3215 ...here.
3216 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
3217 Moved to...
3218 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
3219 ...here.
3220 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
3221 Moved to...
3222 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
3223 ...here.
3224 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3225 Moved to...
3226 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
3227 ...here.
3228 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3229 Moved to...
3230 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
3231 ...here.
3232 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3233 Moved to...
3234 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
3235 ...here.
3236 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3237 Moved to...
3238 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
3239 ...here.
3240 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3241 Moved to...
3242 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
3243 ...here.
3244 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3245 Moved to...
3246 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
3247 ...here.
3248 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
3249 Moved to...
3250 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
3251 ...here.
3252 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
3253 Moved to...
3254 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
3255 ...here.
3256 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
3257 Moved to...
3258 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
3259 ...here.
3260 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
3261 Moved to...
3262 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
3263 ...here.
3264 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
3265 Moved to...
3266 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
3267 ...here.
3268 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
3269 Moved to...
3270 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
3271 ...here.
3272
3273 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3274
3275 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
3276 Moved to...
3277 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
3278 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
3279 Moved to...
3280 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
3281 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
3282 Moved to...
3283 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
3284
3285 2022-05-25 Jason Merrill <jason@redhat.com>
3286
3287 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
3288 constexpr.
3289
3290 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
3291
3292 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
3293 Run fewer iterations for simulator targets.
3294 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
3295 Likewise.
3296 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
3297 Likewise.
3298 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
3299 Likewise.
3300 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
3301 Likewise.
3302 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
3303 Likewise.
3304 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
3305 Likewise.
3306
3307 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3308
3309 * include/bits/char_traits.h: Only include <cstdint> when
3310 necessary.
3311 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
3312 uintptr_t.
3313 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
3314 * src/c++17/floating_to_chars.cc: Likewise.
3315 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
3316 * testsuite/20_util/assume_aligned/3.cc: Likewise.
3317 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
3318
3319 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3320
3321 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
3322 here.
3323 * include/bits/cow_string.h: Include it here.
3324
3325 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3326
3327 * include/Makefile.am: Add new header.
3328 * include/Makefile.in: Regenerate.
3329 * include/bits/memory_resource.h: New file.
3330 * include/std/deque: Include <bits/memory_resource.h>.
3331 * include/std/forward_list: Likewise.
3332 * include/std/list: Likewise.
3333 * include/std/map: Likewise.
3334 * include/std/memory_resource (pmr::memory_resource): Move to
3335 new <bits/memory_resource.h> header.
3336 (pmr::polymorphic_allocator): Likewise.
3337 * include/std/regex: Likewise.
3338 * include/std/set: Likewise.
3339 * include/std/stacktrace: Likewise.
3340 * include/std/string: Likewise.
3341 * include/std/unordered_map: Likewise.
3342 * include/std/unordered_set: Likewise.
3343 * include/std/vector: Likewise.
3344 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3345 Remove <memory_resource> header and check construction.
3346 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3347 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3348 Likewise.
3349 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3350 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3351 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3352 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3353 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3354 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3355 Likewise.
3356 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3357 Likewise.
3358 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3359 Likewise.
3360 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3361 Likewise.
3362 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3363 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3364
3365 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3366
3367 * include/std/memory_resource (polymorphic_allocator): Add
3368 non-template equality operator, as proposed for LWG 3683.
3369 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
3370
3371 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3372
3373 * src/c++17/memory_resource.cc (set_default_resource): Use
3374 memory_order_acq_rel.
3375 (get_default_resource): Use memory_order_acquire.
3376
3377 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3378
3379 * include/std/memory_resource (new_delete_resource): Add
3380 nodiscard, returns_nonnull and const attributes.
3381 (null_memory_resource): Likewise.
3382 (set_default_resource, get_default_resource): Add returns_nonnull
3383 attribute.
3384 (memory_resource::is_equal): Add nodiscard attribute.
3385 (operator==, operator!=): Likewise.
3386
3387 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3388
3389 * include/bits/ios_base.h (io_category): Add const and nodiscard
3390 attributes.
3391 (make_error_code, make_error_condition): Add nodiscard.
3392 * include/std/future (future_category): Add const and nodiscard.
3393 (make_error_code, make_error_condition): Add nodiscard.
3394 * include/std/system_error (generic_category system_category):
3395 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
3396 (error_code::value, error_code::category, error_code::operator bool)
3397 (error_condition::value, error_condition::category)
3398 (error_condition::operator bool, make_error_code)
3399 (make_error_condition, operator==, operator!=, operator<=>): Add
3400 nodiscard.
3401
3402 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3403
3404 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
3405 namespace.
3406 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
3407
3408 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3409
3410 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
3411 Do not build the compatibility*-c++0x.cc objects.
3412 * src/Makefile.in: Regenerate.
3413 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
3414 Refuse to build for the versioned namespace.
3415 * src/c++11/compatibility-chrono.cc: Likewise.
3416 * src/c++11/compatibility-condvar.cc: Likewise.
3417 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
3418 * src/c++11/chrono.cc (system_clock, steady_clock):
3419 Use macros to define in inline namespace _V2, matching the
3420 declarations in <system_error>.
3421 * src/c++11/system_error.cc (system_category, generic_category):
3422 Likewise.
3423
3424 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3425
3426 * doc/xml/manual/prerequisites.xml: Fix attributes for external
3427 hyperlink.
3428 * doc/html/manual/setup.html: Regenerate.
3429
3430 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3431
3432 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
3433 * doc/html/*: Regenerate.
3434
3435 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3436
3437 * doc/xml/manual/intro.xml: Include new chapter.
3438 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
3439 * doc/xml/manual/status_cxx2023.xml: New file.
3440 * doc/html/*: Regenerate.
3441
3442 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3443
3444 * doc/html/manual/status.html: Regenerate.
3445 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
3446 C++20 bit operations.
3447
3448 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3449
3450 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
3451 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
3452 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
3453
3454 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3455
3456 * include/std/future (launch): Make operators noexcept.
3457
3458 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3459
3460 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
3461 with "__unspecified__".
3462 * libsupc++/exception_ptr.h: Improve doxygen docs.
3463 (__exception_ptr::swap): Also declare in namespace std.
3464
3465 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3466
3467 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
3468 if-constexpr instead of tag dispatching.
3469 (rethrow_if_nested) [C++17]: Likewise.
3470 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
3471 would require RTTI.
3472 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3473 New test.
3474
3475 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3476
3477 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3478 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
3479 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
3480 @headerfile.
3481 * include/bits/unique_lock.h (unique_lock): Likewise.
3482 * include/std/mutex (recursive_mutex, timed_mutex)
3483 (recursive_timed_mutex, scoped_lock): Likewise.
3484
3485 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3486
3487 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3488 _GLIBCXX23_CONSTEXPR macro.
3489 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
3490 * include/bits/unique_ptr.h (default_delete): Use @since and
3491 @headerfile.
3492 * include/std/scoped_allocator: Remove @ingroup from @file
3493 block.
3494
3495 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3496
3497 * include/bits/std_thread.h (thread, thread::id): Improve
3498 doxygen docs.
3499 * include/std/future: Likewise.
3500 * include/std/thread (jthread): Likewise.
3501
3502 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3503
3504 * include/bits/ostream_insert.h: Mark helper functions as
3505 undocumented by Doxygen.
3506 * include/bits/stl_algo.h: Use markdown for formatting and mark
3507 helper functions as undocumented.
3508 * include/bits/stl_numeric.h: Likewise.
3509 * include/bits/stl_pair.h (pair): Add @headerfile.
3510
3511 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3512
3513 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
3514 so that Doxygen shows the right base-class for std::allocator.
3515 * include/bits/alloc_traits.h: Improve doxygen docs.
3516 * include/bits/allocator.h: Likewise.
3517 * include/bits/new_allocator.h: Likewise.
3518 * include/ext/new_allocator.h: Likewise.
3519
3520 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3521
3522 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
3523 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
3524 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
3525 * include/bits/regex.h: Improve doxygen docs.
3526 * include/bits/regex_constants.h: Likewise.
3527 * include/bits/regex_error.h: Likewise.
3528
3529 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3530
3531 * include/std/atomic: Suppress doxygen docs for
3532 implementation details.
3533 * include/bits/atomic_base.h: Likewise.
3534 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
3535 so that std::atomic is not added to the pointer abstractions
3536 group.
3537
3538 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3539
3540 * include/std/system_error: Improve doxygen comments.
3541
3542 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3543
3544 * include/bits/ptr_traits.h: Add some doxygen comments.
3545
3546 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3547
3548 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
3549 nothing.
3550 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
3551 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
3552 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
3553 for the namespace.
3554 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
3555 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
3556 * include/std/condition_variable (_V2::condition_variable_any):
3557 Likewise.
3558 * include/std/system_error (_V2::error_category): Likewise.
3559
3560 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3561
3562 * include/bits/mofunc_impl.h: Fix doxygen command.
3563
3564 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3565
3566 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
3567 (CLASS_DIAGRAMS): Remove obsolete option.
3568
3569 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
3570
3571 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
3572 * config/locale/gnu/numeric_members.cc: Likewise.
3573 * include/bits/locale_facets_nonio.h: Likewise.
3574 * libsupc++/typeinfo: Likewise.
3575
3576 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3577
3578 PR libstdc++/105284
3579 * include/std/iosfwd: Add declarations for <spanstream> class
3580 templates and typedefs.
3581 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
3582 (basic_ospanstream, basic_spanstream): Remove default template
3583 arguments.
3584 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
3585 declarations.
3586 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
3587 default arguments.
3588
3589 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3590
3591 PR libstdc++/105284
3592 * include/std/iosfwd: Add declarations for <synstream> class
3593 templates and typedefs.
3594 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
3595 Remove default template arguments.
3596 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
3597 * testsuite/27_io/headers/iosfwd/types.cc: New test.
3598
3599 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3600
3601 * include/bits/random.tcc (operator==): Only check
3602 normal_distribution::_M_saved_available once.
3603 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
3604 Check equality after state changes.
3605 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3606 lineno.
3607
3608 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3609
3610 PR libstdc++/105502
3611 * include/bits/random.tcc
3612 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
3613 Update state when __state_avail is false.
3614 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
3615 Check that deserialized object equals serialized one.
3616
3617 2022-05-06 Alexandre Oliva <oliva@adacore.com>
3618
3619 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
3620 for double, long long, and 64-bit long intrinsic types.
3621 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
3622 preexisting long double diagnostic, adjust no-VSX double
3623 diagnostic to cover 64-bit long double as well.
3624
3625 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3626
3627 PR libstdc++/104731
3628 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
3629 Use a trailing char array as storage for dirent::d_name.
3630
3631 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3632
3633 * include/std/stacktrace: Do not include <cxxabi.h>.
3634 (__cxa_demangle): Declare.
3635
3636 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3637
3638 PR libstdc++/99871
3639 * include/bits/specfun.h: Use visibility attribute on namespace,
3640 instead of pragma push/pop.
3641 * libsupc++/compare: Likewise.
3642 * libsupc++/exception: Likewise.
3643 * libsupc++/exception.h: Likewise.
3644 * libsupc++/exception_ptr.h: Likewise.
3645 * libsupc++/initializer_list: Likewise.
3646 * libsupc++/nested_exception.h: Likewise.
3647
3648 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3649
3650 * doc/xml/manual/test.xml: Remove requirement for copyright and
3651 GPL notice in tests.
3652 * doc/html/manual/test.html: Regenerate.
3653
3654 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
3655
3656 * include/experimental/memory_resource [!__cpp_rtti]
3657 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
3658 when RTTI is disabled.
3659 * testsuite/17_intro/freestanding.cc: Require RTTI.
3660 * testsuite/18_support/exception/38732.cc: Likewise.
3661 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
3662 Likewise.
3663 * testsuite/18_support/nested_exception/68139.cc: Likewise.
3664 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
3665 Likewise.
3666 * testsuite/18_support/type_info/103240.cc: Likewise.
3667 * testsuite/18_support/type_info/fundamental.cc: Likewise.
3668 * testsuite/18_support/type_info/hash_code.cc: Likewise.
3669 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3670 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3671 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3672 * testsuite/20_util/any/observers/type.cc: Likewise.
3673 * testsuite/20_util/function/1.cc: Likewise.
3674 * testsuite/20_util/function/2.cc: Likewise.
3675 * testsuite/20_util/function/3.cc: Likewise.
3676 * testsuite/20_util/function/4.cc: Likewise.
3677 * testsuite/20_util/function/5.cc: Likewise.
3678 * testsuite/20_util/function/6.cc: Likewise.
3679 * testsuite/20_util/function/7.cc: Likewise.
3680 * testsuite/20_util/function/8.cc: Likewise.
3681 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3682 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
3683 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
3684 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
3685 Likewise.
3686 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
3687 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
3688 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
3689 Likewise.
3690 * testsuite/20_util/typeindex/hash.cc: Likewise.
3691 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
3692 * testsuite/20_util/typeindex/name.cc: Likewise.
3693 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
3694 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
3695 Likewise.
3696 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
3697 Likewise.
3698 * testsuite/22_locale/locale/13630.cc: Check type without using
3699 RTTI.
3700 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
3701 Require RTTI.
3702 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
3703 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
3704 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
3705 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
3706 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3707 * testsuite/experimental/any/observers/type.cc: Likewise.
3708 * testsuite/experimental/memory_resource/resource_adaptor.cc:
3709 Likewise.
3710 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
3711 Define new proc.
3712 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
3713 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
3714 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
3715 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
3716 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
3717 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
3718 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
3719 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
3720 * testsuite/tr2/bases/value.cc: Likewise.
3721 * testsuite/tr2/direct_bases/value.cc: Likewise.
3722 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
3723 types without RTTI.
3724
3725 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3726
3727 PR libstdc++/104719
3728 * include/std/array (array::size(), array::max_size())
3729 (array::empty(), array::data()): Add always_inline attribute.
3730
3731 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3732
3733 PR libstdc++/104719
3734 * include/std/array (__array_traits::_S_ref): Remove.
3735 (__array_traits::_S_ptr): Remove.
3736 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
3737 to provide an array-like API.
3738 (array::_AT_Type): Remove public typeef.
3739 (array::operator[], array::at, array::front, array::back): Use
3740 index operator to access _M_elems instead of _S_ref.
3741 (array::data): Use implicit conversion from _M_elems to pointer.
3742 (swap(array&, array&)): Use __enable_if_t helper.
3743 (get<I>): Use index operator to access _M_elems.
3744 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3745 Adjust dg-error line numbers.
3746
3747 2022-05-03 Alexandre Oliva <oliva@adacore.com>
3748
3749 PR c++/105324
3750 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
3751 with conditional for floating-point overloads of from_char.
3752
3753 2022-05-02 Patrick Palka <ppalka@redhat.com>
3754
3755 PR libstdc++/103911
3756 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
3757 two delimeters for the exponent part in the form of a possibly
3758 NULL string of length two. Don't use std::tolower.
3759 (pattern): Adjust calls to find_end_of_float accordingly.
3760
3761 2022-05-02 Patrick Palka <ppalka@redhat.com>
3762
3763 PR libstdc++/105441
3764 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
3765 Also accept 'P' as the start of the exponent.
3766 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
3767
3768 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
3769
3770 PR libstdc++/105417
3771 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
3772 Regenerate.
3773 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
3774 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
3775 symbols as aliases for corresponding symbols without abi-tag.
3776
3777 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3778
3779 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3780 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3781 Likewise.
3782 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3783 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3784 Likewise.
3785
3786 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
3787
3788 PR libstdc++/99290
3789 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
3790 directory_iterator constructor, and check on each iteration.
3791 * src/filesystem/ops.cc (fs::copy): Likewise.
3792 * testsuite/27_io/filesystem/operations/copy.cc: Check for
3793 errors during recursion.
3794 * testsuite/experimental/filesystem/operations/copy.cc:
3795 Likewise.
3796
3797 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
3798
3799 * config/abi/pre/gnu-versioned-namespace.ver: Remove
3800 std::random_device::* pattern.
3801
3802 2022-04-27 Jakub Jelinek <jakub@redhat.com>
3803
3804 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3805 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3806 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3807 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3808 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3809 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3810 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3811 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3812
3813 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
3814
3815 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
3816 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
3817 (StdAtomicPrinter): New printer.
3818 (build_libstdcxx_dictionary): Register new printer.
3819 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
3820 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
3821 pointers.
3822
3823 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3824
3825 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
3826 constructor for constant initialization from nullptr_t.
3827 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3828 Check for new constructor.
3829
3830 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3831
3832 * include/bits/fs_path.h (hash<filesystem::path>): Define.
3833 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3834 Check std::hash specialization.
3835
3836 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3837
3838 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
3839 conditionally.
3840 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3841 Define for C++23.
3842 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
3843 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
3844 functions.
3845 * include/std/version (__cpp_lib_constexpr_memory): Define new
3846 value for C++23.
3847 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
3848 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
3849 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
3850 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
3851 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
3852 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
3853 New test.
3854
3855 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3856
3857 PR libstdc++/105375
3858 * include/std/future (packaged_task): Add deduction guides.
3859 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
3860
3861 2022-04-25 Philipp Fent <fent@in.tum.de>
3862
3863 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
3864 Rename as iterator.
3865 (StdInitializerListPrinter): Define new printer.
3866 (build_libstdcxx_dictionary): Register new printer.
3867 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
3868 initializer_list.
3869
3870 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
3871
3872 PR libstdc++/102994
3873 * include/bits/atomic_base.h (atomic_flag::notify_one,
3874 notify_all): Remove const qualification.
3875 (__atomic_base::notify_one, notify_all): Likewise.
3876 * include/std/atomic (atomic<bool>::notify_one, notify_all):
3877 Likewise.
3878 (atomic::notify_one, notify_all): Likewise.
3879 (atomic<T*>::notify_one, notify_all): Likewise.
3880 (atomic_notify_one, atomic_notify_all): Likewise.
3881 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
3882 to account for change in notify_one/notify_all signature.
3883
3884 2022-04-21 Patrick Palka <ppalka@redhat.com>
3885
3886 * include/std/charconv (__from_chars_alnum_to_val_table):
3887 Simplify initialization of __lower/__upper_letters.
3888 (__from_chars_alnum_to_val): Default the template parameter to
3889 false.
3890 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
3891 assume the uppercase and lowercase letters are contiguous.
3892 (__floating_from_chars_hex): Likewise.
3893
3894 2022-04-21 Patrick Palka <ppalka@redhat.com>
3895
3896 PR c++/105297
3897 PR c++/105322
3898 * include/std/charconv (__from_chars_alnum_to_val): Make
3899 initializer for __table dependent in an artificial way.
3900
3901 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
3902
3903 PR libstdc++/105324
3904 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
3905 Remove assertion.
3906 * testsuite/20_util/from_chars/pr105324.cc: New test.
3907
3908 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3909
3910 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
3911 Check correct feature test macro.
3912
3913 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3914
3915 PR libstdc++/93602
3916 * doc/xml/manual/prerequisites.xml: Document libiconv
3917 workarounds.
3918 * doc/html/manual/setup.html: Regenerate.
3919 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
3920 * src/Makefile.in: Regenerate.
3921
3922 2022-04-19 Patrick Palka <ppalka@redhat.com>
3923
3924 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
3925 define.
3926 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
3927 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
3928 warnings.
3929 (__floating_to_chars_precision): Likewise.
3930
3931 2022-04-19 Philipp Fent <fent@in.tum.de>
3932
3933 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
3934 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
3935
3936 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
3937
3938 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
3939 * configure: Regenerate.
3940
3941 2022-04-18 Patrick Palka <ppalka@redhat.com>
3942
3943 * include/std/charconv (__from_chars_pow2_base): Manually
3944 unroll the first iteration of the main loop and simplify
3945 accordingly.
3946
3947 2022-04-15 Patrick Palka <ppalka@redhat.com>
3948
3949 PR libstdc++/104858
3950 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
3951 __first twice at the start.
3952 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
3953
3954 2022-04-15 Patrick Palka <ppalka@redhat.com>
3955
3956 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
3957 (__from_chars_alnum_to_val): Define.
3958 (__from_chars_binary): Rename to ...
3959 (__from_chars_pow2_base): ... this. Generalize to handle any
3960 power-of-two base using __from_chars_alnum_to_val.
3961 (__from_chars_digit): Optimize digit recognition to a single
3962 test instead of two tests. Use [[__unlikely___]] attribute.
3963 (__from_chars_alpha_to_num): Remove.
3964 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
3965 nested loop for the overflow case. Maintain a lower bound
3966 on the number of available bits in the result and use it to
3967 omit the overflow check.
3968 (from_chars): Adjust appropriately.
3969 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
3970 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
3971 to recognize a hex digit instead.
3972
3973 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
3974
3975 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
3976 for RISC-V.
3977 * configure: Regenerate.
3978
3979 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3980
3981 * doc/xml/manual/intro.xml: Fix comment.
3982
3983 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3984
3985 * include/precompiled/stdc++.h: Include <stacktrace> and
3986 <stdatomic.h> for C++23.
3987
3988 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3989
3990 PR libstdc++/105269
3991 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
3992 Define.
3993 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
3994 Define.
3995 * include/std/optional (__cpp_lib_optional): Define new value
3996 for C++23.
3997 (__cpp_lib_monadic_optional): Remove.
3998 * include/std/version (__cpp_lib_constexpr_vector): Define.
3999 (__cpp_lib_stdatomic_h): Define.
4000 (__cpp_lib_optional): Define new value for C++23.
4001 (__cpp_lib_monadic_optional): Remove.
4002 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
4003 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
4004 * testsuite/20_util/optional/version.cc: Likewise.
4005 * testsuite/23_containers/vector/cons/constexpr.cc: Check
4006 feature test macro.
4007 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
4008 Likewise.
4009 * testsuite/20_util/optional/monadic/version.cc: Removed.
4010 * testsuite/23_containers/vector/requirements/version.cc: New test.
4011 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
4012
4013 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4014
4015 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
4016 * config.h.in: Regenerate.
4017 * configure: Regenerate.
4018
4019 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4020
4021 * include/std/stacktrace (basic_stacktrace::current): Reallocate
4022 a smaller container if the unused capacity is larger than the
4023 used size.
4024
4025 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4026
4027 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
4028 or _Impl::_M_assign to initialize elements in allocated storage.
4029 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
4030 _Impl::_M_destroy.
4031 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
4032 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
4033 function.
4034 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
4035 new element using allocator.
4036 (basic_stacktrace::_Impl::_M_clone): New function.
4037 (basic_stacktrace::_Impl::_M_xclone): New function.
4038 (basic_stacktrace::_Impl::_M_assign): New function.
4039
4040 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4041
4042 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
4043 Use nothrow new instead of try block for std::allocator.
4044 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
4045 std::allocator.
4046
4047 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
4048
4049 * include/std/stacktrace (basic_stacktrace::current): Replace
4050 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
4051 Check return value of backtrace_simple when max depth given.
4052 (basic_stacktrace::_M_reserve): Remove.
4053 (basic_stacktrace::_S_curr_cb): Remove.
4054 (basic_stacktrace::_M_prepare(size_type)): New function to
4055 reserve initial capacity and return callback.
4056 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
4057 and remove redundant zeroing of _M_frames and _M_capacity.
4058 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
4059 attribute. Assign _Impl instead of swapping.
4060 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
4061
4062 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4063
4064 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
4065 Change [[unlikely]] attribute to [[likely]].
4066
4067 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4068
4069 PR libstdc++/105031
4070 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
4071 Fix allocator usage in constructors.
4072 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
4073 try to reallocate using const allocator.
4074 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
4075 if-constexpr with non-constant condition. Do not allocate new
4076 storage if allocator propagates. Do not set _M_size if
4077 allocation fails.
4078 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
4079 assertion that non-propagating allocators are equal.
4080 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
4081
4082 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4083
4084 * include/std/stacktrace (basic_stacktrace::current): Duplicate
4085 implementation into each overload. Add noinline attribute and
4086 skip current frame.
4087 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
4088 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
4089 (basic_stacktrace::_Impl::_S_max_size): New function defining
4090 maximum size in terms of allocator and size_type.
4091 (basic_stacktrace::_Impl::_M_allocate): Check against
4092 max_size().
4093 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
4094 for non-constexpr checks. Check line number is correct.
4095
4096 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4097
4098 * testsuite/20_util/stacktrace/entry.cc: Moved to...
4099 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
4100 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
4101 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
4102 * testsuite/20_util/stacktrace/version.cc: Moved to...
4103 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
4104
4105 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
4106
4107 * include/experimental/bits/fs_path.h (path): Define special
4108 members after path::_Cmpt is complete.
4109
4110 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
4111
4112 PR libstdc++/105153
4113 * include/std/expected
4114 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
4115 * testsuite/20_util/expected/cons.cc: Check constructor.
4116
4117 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
4118
4119 PR libstdc++/105154
4120 * include/std/expected (expected<void, E>::swap): Set
4121 _M_has_value to false for objects that previously had a value.
4122 * testsuite/20_util/expected/swap.cc: Fix test to check void
4123 specialization.
4124
4125 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
4126
4127 PR libstdc++/105146
4128 * include/std/expected (bad_expected_access): Move constructor
4129 parameter.
4130 * testsuite/20_util/expected/bad.cc: New test.
4131
4132 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
4133
4134 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
4135 test.
4136
4137 2022-04-02 Jakub Jelinek <jakub@redhat.com>
4138
4139 PR libstdc++/105128
4140 * include/std/source_location (std::source_location::__impl): Move
4141 definition before using __builtin_ret_type.
4142
4143 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
4144
4145 * include/std/utility (unreachable): Define for C++23.
4146 * include/std/version (__cpp_lib_unreachable): Define.
4147 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
4148 arguments. Handle only the function being given.
4149 * testsuite/20_util/unreachable/1.cc: New test.
4150 * testsuite/20_util/unreachable/version.cc: New test.
4151
4152 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
4153
4154 * include/experimental/bits/fs_fwd.h (copy_file): Remove
4155 incorrect noexcept from declaration.
4156 * include/experimental/bits/fs_path.h (path::begin, path::end):
4157 Add noexcept to declarations, to match definitions.
4158
4159 2022-04-01 Timm Bäder <tbaeder@redhat.com>
4160
4161 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
4162 * include/experimental/bits/fs_ops.h: Likewise.
4163
4164 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
4165
4166 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
4167
4168 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4169
4170 * testsuite/18_support/exception/38732.cc: Disable for C++23.
4171 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
4172 * testsuite/18_support/unexpected_handler.cc: Likewise.
4173
4174 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4175
4176 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
4177 static data members for _Fp_fmt enumerators.
4178
4179 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4180
4181 * include/std/version (__cpp_lib_variant): Fix conditions to
4182 match <variant>.
4183 (__cpp_lib_expected): Fix condition to match <expected>.
4184
4185 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
4186
4187 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
4188 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
4189 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
4190 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
4191 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
4192 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
4193 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
4194 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
4195
4196 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
4197
4198 * doc/doxygen/user.cfg.in: Add new header.
4199 * include/Makefile.am: Likewise.
4200 * include/Makefile.in: Regenerate.
4201 * include/precompiled/stdc++.h: Add new header.
4202 * include/std/version (__cpp_lib_expected): Define.
4203 * libsupc++/exception [__cplusplus > 202002] (unexpected)
4204 (unexpected_handler, set_unexpected): Do not declare for C++23.
4205 * include/std/expected: New file.
4206 * testsuite/20_util/expected/assign.cc: New test.
4207 * testsuite/20_util/expected/cons.cc: New test.
4208 * testsuite/20_util/expected/illformed_neg.cc: New test.
4209 * testsuite/20_util/expected/observers.cc: New test.
4210 * testsuite/20_util/expected/requirements.cc: New test.
4211 * testsuite/20_util/expected/swap.cc: New test.
4212 * testsuite/20_util/expected/synopsis.cc: New test.
4213 * testsuite/20_util/expected/unexpected.cc: New test.
4214 * testsuite/20_util/expected/version.cc: New test.
4215
4216 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
4217
4218 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
4219 comments.
4220
4221 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4222
4223 PR libstdc++/105027
4224 * include/std/bit (bit_cast): Add constraints.
4225 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
4226
4227 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4228
4229 * include/std/version [!_GLIBCXX_HOSTED]
4230 (__cpp_lib_hardware_interference_size): Define for freestanding.
4231 (__cpp_lib_bit_cast): Likewise.
4232 (__cpp_lib_is_layout_compatible): Likewise.
4233 (__cpp_lib_is_pointer_interconvertible): Likewise.
4234 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
4235 freestanding.
4236 (__cpp_lib_invoke_r): Likewise.
4237 (__cpp_lib_ios_noreplace): Likewise.
4238 (__cpp_lib_monadic_optional): Likewise.
4239 (__cpp_lib_move_only_function): Likewise.
4240 (__cpp_lib_spanstream): Likewise.
4241 (__cpp_lib_stacktrace): Likewise.
4242 (__cpp_lib_string_contains): Likewise.
4243 (__cpp_lib_string_resize_and_overwrite): Likewise.
4244 (__cpp_lib_to_underlying): Likewise.
4245
4246 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4247
4248 PR libstdc++/105021
4249 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
4250 <bits/atomic_wait.h> for freestanding.
4251
4252 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
4253
4254 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
4255 Conditionalize call to fesetround.
4256
4257 2022-03-21 Jakub Jelinek <jakub@redhat.com>
4258
4259 PR libstdc++/104990
4260 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
4261 isn't overloaded if __clang__ is defined.
4262
4263 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
4264
4265 PR libstdc++/104242
4266 * include/std/any (any(T&&)): Revert change to constraints.
4267 * testsuite/20_util/any/cons/104242.cc: New test.
4268
4269 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
4270
4271 PR libstdc++/92546
4272 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
4273 <bits/stl_pair.h>.
4274 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
4275 (__pstl::__internal::__except_handler): Use std::__terminate
4276 instead of std::terminate.
4277 * src/c++17/fs_path.cc: Include <array>.
4278 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
4279 <functional>.
4280 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
4281 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
4282 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
4283 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
4284 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
4285 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
4286 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
4287 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
4288 <iterator>.
4289 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
4290 <functional>.
4291 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
4292 Likewise.
4293 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
4294 Likewise.
4295 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
4296 Likewise.
4297 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
4298 Include <array>.
4299 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
4300 <functional>.
4301 * testsuite/25_algorithms/max/constrained.cc: Likewise.
4302 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
4303 * testsuite/25_algorithms/min/constrained.cc: Likewise.
4304 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
4305 * testsuite/25_algorithms/minmax_element/constrained.cc:
4306 Likewise.
4307 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
4308 * testsuite/25_algorithms/move/93872.cc: Likewise.
4309 * testsuite/25_algorithms/move_backward/93872.cc: Include
4310 <iterator>.
4311 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
4312 <functional>.
4313 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
4314 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
4315 Likewise.
4316 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
4317 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
4318 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
4319 * testsuite/25_algorithms/set_difference/constrained.cc:
4320 Likewise.
4321 * testsuite/25_algorithms/set_intersection/constexpr.cc:
4322 Likewise.
4323 * testsuite/25_algorithms/set_intersection/constrained.cc:
4324 Likewise.
4325 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
4326 Likewise.
4327 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
4328 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
4329 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
4330 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
4331 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
4332 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
4333 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
4334 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
4335 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
4336 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
4337 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
4338 * testsuite/std/ranges/adaptors/split.cc: Likewise.
4339
4340 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4341
4342 PR libstdc++/92546
4343 * include/bits/fs_path.h (path::make_preferred): Use
4344 handwritten loop instead of std::replace.
4345
4346 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4347
4348 PR middle-end/104966
4349 * include/bits/locale_facets_nonio.tcc
4350 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
4351 make all string copies before any stores to *this.
4352
4353 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4354
4355 * testsuite/util/testsuite_character.h: Fix comment.
4356
4357 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4358
4359 PR libstdc++/103407
4360 * config/abi/pre/gnu.ver: Make version for std::from_chars
4361 depend on HAVE_USELOCALE macro.
4362 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
4363 std::from_chars for floating-point types as undesignated if
4364 not found in the baseline symbols file.
4365
4366 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4367
4368 * include/std/charconv (__cpp_lib_to_chars): Only define when
4369 both from_chars and to_chars are supported for floating-point
4370 types.
4371 (from_chars, to_chars): Adjust preprocessor conditions guarding
4372 declarations.
4373 * include/std/version (__cpp_lib_to_chars): Adjust condition to
4374 match <charconv> definition.
4375 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
4376 function template.
4377 (from_chars): Simplify preprocessor checks and use
4378 from_chars_strtod when appropriate.
4379
4380 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
4381
4382 PR libstdc++/104875
4383 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
4384 hold octets that will be left-shifted.
4385
4386 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4387
4388 PR libstdc++/104870
4389 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
4390 before using fast_float.
4391
4392 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
4393
4394 PR libstdc++/104866
4395 * include/bits/this_thread_sleep.h: Fix order of #endif and
4396 closing brace of namespace.
4397
4398 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4399
4400 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
4401 Handle NaN.
4402
4403 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4404
4405 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
4406 <=> comparison.
4407
4408 2022-03-09 Patrick Palka <ppalka@redhat.com>
4409
4410 PR libstdc++/104859
4411 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
4412 Be explicit when narrowing the shifted effective_mantissa,
4413 since it may have an integer-class type.
4414
4415 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
4416
4417 * include/bits/uses_allocator_args.h: Remove incorrect copyright
4418 notice.
4419
4420 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
4421
4422 PR libstdc++/104807
4423 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
4424 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
4425 (__is_constant_evaluated): Add visibility pragma.
4426
4427 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4428
4429 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
4430 include.
4431
4432 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
4433
4434 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
4435 attribute.
4436 (__terminate): Likewise.
4437
4438 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
4439
4440 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
4441 inside #if condition.
4442
4443 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4444
4445 PR libstdc++/104748
4446 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
4447 constexpr test.
4448
4449 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4450
4451 * testsuite/17_intro/names.cc (func): Undef on AIX.
4452
4453 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4454
4455 PR libstdc++/96526
4456 * libsupc++/compare (strong_order): Add missing support for
4457 floating-point types.
4458 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
4459 New test.
4460
4461 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
4462
4463 PR middle-end/103984
4464 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
4465 default member initializer.
4466
4467 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
4468
4469 PR libstdc++/104602
4470 * include/std/source_location (source_location::current): Use
4471 deduced type of __builtin_source_location().
4472
4473 2022-02-22 Patrick Palka <ppalka@redhat.com>
4474
4475 * include/bits/ranges_base.h (__detail::__is_initializer_list):
4476 Define.
4477 (viewable_range): Adjust as per P2415R2.
4478 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4479 * include/std/ranges (owning_view): Define as per P2415R2.
4480 (enable_borrowed_range<owning_view>): Likewise.
4481 (views::__detail::__can_subrange): Replace with ...
4482 (views::__detail::__can_owning_view): ... this.
4483 (views::_All::_S_noexcept): Sync with operator().
4484 (views::_All::operator()): Use owning_view instead of subrange
4485 as per P2415R2.
4486 * include/std/version (__cpp_lib_ranges): Adjust value.
4487 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
4488 views::all uses owning_view instead of subrange.
4489 (test08): New test.
4490 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
4491 now that rvalue non-view non-borrowed ranges are viewable.
4492 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
4493
4494 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4495
4496 PR libstdc++/104559
4497 * doc/xml/manual/evolution.xml: Document deprecation.
4498 * doc/html/manual/api.html: Regenerate.
4499 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
4500 Remove default argument.
4501 (insert(const_iterator)): New overload with deprecated attribute.
4502 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
4503 New test.
4504
4505 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4506
4507 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
4508 code that call cat->name() on std::error_category objects.
4509 Identify known categories by symbol name and use a hardcoded
4510 name. Print error code values as enumerators where appopriate.
4511 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
4512 name of custom category. Check io_errc and future_errc errors.
4513
4514 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
4515
4516 PR libstdc++/104542
4517 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
4518 (uninitialized_construct_using_allocator): Add constexpr.
4519 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
4520 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
4521
4522 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4523
4524 PR libstdc++/100912
4525 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
4526 namespace for IEEE128 long double mode.
4527 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
4528 version and export __gnu_cxx_ieee128::__convert_from_v.
4529 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
4530 Make __ibm128 overload use snprintf directly
4531 * testsuite/util/testsuite_abi.cc: Add new symbol version.
4532 Remove stable IEEE128/LDBL versions.
4533
4534 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4535
4536 PR libstdc++/103891
4537 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
4538 Remove.
4539 * include/std/variant: Check feature test macros instead.
4540 * include/std/version: Likewise.
4541
4542 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4543
4544 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4545 Fix typo.
4546
4547 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4548
4549 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
4550 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
4551
4552 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4553
4554 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
4555 selector.
4556
4557 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4558
4559 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4560 Ignore -Walloc-larger-than warning.
4561 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4562 Likewise.
4563 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
4564 to avoid linker error for __atomic_is_lock_free.
4565
4566 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
4567
4568 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
4569 __waiter_base::_S_do_spin_v): Change memory order from relaxed
4570 to acquire.
4571
4572 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4573
4574 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
4575 using-declaration.
4576 (atomic_fetch_xor_explicit): Likewise.
4577 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
4578 arithmetic and logical operations for atomic_int.
4579
4580 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4581
4582 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
4583 when <dirent.h> is not available.
4584 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
4585
4586 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
4587
4588 PR libstdc++/104442
4589 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
4590 loop inside do loop so that threads failing the wait, reload
4591 _M_ver.
4592
4593 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4594
4595 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
4596 parameter to _Dir_base&&.
4597 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
4598 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
4599 parameter to _Dir_base&&.
4600
4601 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4602
4603 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
4604 checking for CAS on correct word size.
4605
4606 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4607
4608 * testsuite/experimental/filesystem/operations/create_directories.cc:
4609 Adjust expected results for Windows.
4610
4611 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4612
4613 PR libstdc++/104161
4614 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
4615 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
4616 instead of checking for errno values indicating a directory.
4617 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
4618 logic to non-throwing overload.
4619 (fs::remove_all(const path&, error_code&)): Add comments.
4620 * src/filesystem/ops-common.h: Likewise.
4621
4622 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4623
4624 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
4625 type to use portable posix::DIR alias.
4626
4627 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4628
4629 * include/c_compatibility/stdatomic.h [__clang__]: Use
4630 #include_next <stdatomic.h>.
4631
4632 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4633
4634 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
4635 noexcept.
4636 (fs::create_directories): Likewise.
4637 (fs::remove_all): Likewise.
4638 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
4639 (fs::create_directories): Likewise.
4640 (fs::remove_all): Likewise.
4641
4642 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4643
4644 PR libstdc++/104161
4645 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
4646 and unlinkat.
4647 * config.h.in: Regenerate.
4648 * configure: Regenerate.
4649 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
4650 remove_all overloads as friends.
4651 (recursive_directory_iterator::__erase): Declare new member
4652 function.
4653 * include/bits/fs_fwd.h (remove, remove_all): Declare.
4654 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
4655 constructor. Pass file descriptor argument to base constructor.
4656 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
4657 (_Dir::unlink, _Dir::rmdir): Define new member functions.
4658 (directory_iterator): Pass filename_only argument to _Dir
4659 constructor.
4660 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4661 parameters to take a _Dir rvalue instead of creating one.
4662 (_Dir_stack::orig): Add data member for storing original path.
4663 (_Dir_stack::report_error): Define new member function.
4664 (__directory_iterator_nofollow): Move here from dir-common.h and
4665 fix value to be a power of two.
4666 (__directory_iterator_filename_only): Define new constant.
4667 (recursive_directory_iterator): Construct _Dir object and move
4668 into _M_dirs stack. Pass skip_permission_denied argument to first
4669 advance call.
4670 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4671 (recursive_directory_iterator::__erase): Define new member
4672 function.
4673 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
4674 (fs::remove_all): Use new recursive_directory_iterator::__erase
4675 member function.
4676 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
4677 constructor and use openat to implement nofollow semantics.
4678 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
4679 Define new member functions.
4680 (__directory_iterator_nofollow): Move to fs_dir.cc.
4681 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
4682 base constructor.
4683 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
4684 functions.
4685 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4686 parameters to take a _Dir rvalue instead of creating one.
4687 (recursive_directory_iterator): Check for new nofollow option.
4688 Construct _Dir object and move into _M_dirs stack. Pass
4689 skip_permission_denied argument to first advance call.
4690 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4691 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
4692
4693 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4694
4695 * include/bits/allocator.h: Qualify std::allocator_traits in
4696 deprecated warnings.
4697 * libsupc++/exception (uncaught_exception): Add suggestion to
4698 deprecated warning.
4699
4700 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4701
4702 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
4703 Add [[maybe_unused]] attribute.
4704 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
4705 Likewise.
4706
4707 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4708
4709 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
4710 custom comparison function for multiset.
4711 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
4712 comparison function for set.
4713
4714 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4715
4716 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
4717 Change member function to data member of function pointer type.
4718
4719 2022-02-02 Martin Sebor <msebor@redhat.com>
4720
4721 PR libstdc++/101831
4722 * include/std/array (begin): Declare const member function attribute
4723 const.
4724 (end, rbegin, rend, size, max_size, empty, data): Same.
4725 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
4726 * testsuite/23_containers/array/capacity/max_size.cc: Same.
4727 * testsuite/23_containers/array/capacity/size.cc: Same.
4728 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
4729
4730 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4731
4732 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4733 autoconf macro to check whether d_type is present.
4734 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
4735 Likewise.
4736
4737 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4738
4739 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
4740 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4741 Check follow_directory_symlink option.
4742 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
4743 Likewise.
4744
4745 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4746
4747 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
4748 Reset state to past-the-end iterator on error.
4749 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
4750 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
4751 it might get reset.
4752 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
4753 for the TS implementation.
4754 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
4755 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
4756
4757 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4758
4759 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
4760
4761 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4762
4763 PR libstdc++/104301
4764 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
4765 for stdio_pure and stdio_posix options.
4766 * configure: Regenerate.
4767
4768 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
4769
4770 * include/bits/atomic_wait.h: Change memory order from
4771 Acquire/Release with relaxed loads to SeqCst+Release for
4772 accesses to the waiter's count.
4773
4774 2022-01-31 Martin Liska <mliska@suse.cz>
4775
4776 * acinclude.m4: Detect *_ld_is_mold and use it.
4777 * configure: Regenerate.
4778
4779 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
4780
4781 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
4782 simulator targets.
4783 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
4784
4785 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4786
4787 PR libstdc++/100516
4788 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
4789 Add __builtin_unreachable to loop.
4790 * testsuite/23_containers/deque/100516.cc: New test.
4791
4792 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4793
4794 * include/bits/ranges_base.h (ranges::advance): Avoid signed
4795 overflow. Do nothing if already equal to desired result.
4796 * testsuite/24_iterators/range_operations/advance_overflow.cc:
4797 New test.
4798
4799 2022-01-27 Martin Liska <mliska@suse.cz>
4800
4801 PR libstdc++/104259
4802 * acinclude.m4: Fix typo.
4803 * configure: Regenerate.
4804
4805 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4806
4807 PR libstdc++/104019
4808 * include/bits/istream.tcc (basic_istream::sentry): Add braces
4809 around try-block.
4810 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
4811 Add pragmas to disable bogus warnings from PR 61596.
4812
4813 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4814
4815 PR libstdc++/104217
4816 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
4817 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
4818 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
4819
4820 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4821
4822 PR libstdc++/104161
4823 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4824 fdopendir.
4825 * config.h.in: Regenerate.
4826 * configure: Regenerate.
4827 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
4828 and pass it to base class constructor.
4829 (directory_iterator): Pass nofollow flag to _Dir constructor.
4830 (fs::recursive_directory_iterator::increment): Likewise.
4831 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
4832 directory_iterator constructor. Move error check outside loop.
4833 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
4834 constructor and when it's set use ::open with O_NOFOLLOW and
4835 O_DIRECTORY.
4836 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
4837 and pass it to base class constructor.
4838 (directory_iterator): Pass nofollow flag to _Dir constructor.
4839 (fs::recursive_directory_iterator::increment): Likewise.
4840 * src/filesystem/ops.cc (remove_all): Use nofollow option for
4841 directory_iterator constructor. Move error check outside loop.
4842
4843 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4844
4845 PR libstdc++/104032
4846 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
4847 mem-initializer for _M_buf.
4848 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
4849 member access.
4850 * testsuite/27_io/spanstream/2.cc: New test.
4851
4852 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4853
4854 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
4855 Define macro for case where std::from_chars is implemented in
4856 terms of strtod, strtof or strtold.
4857 (buffer_resource, valid_fmt, find_end_of_float, pattern)
4858 (from_chars_impl, make_result, reserve_string): Do not define
4859 unless USE_STRTOD_FOR_FROM_CHARS is defined.
4860 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
4861 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
4862 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
4863 is binary64.
4864
4865 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4866
4867 PR libstdc++/104174
4868 * include/bits/hashtable_policy.h (_Map_base): Add partial
4869 specialization for maps with const key types.
4870 * testsuite/23_containers/unordered_map/104174.cc: New test.
4871
4872 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4873
4874 PR libstdc++/104019
4875 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
4876 Set members to zero without type punning.
4877
4878 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4879
4880 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
4881
4882 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4883
4884 PR libstdc++/87193
4885 PR libstdc++/104019
4886 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
4887 Define as type long.
4888 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
4889 Likewise.
4890 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
4891 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
4892 (__cpp_lib_chrono_udls): Likewise.
4893 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
4894 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
4895 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
4896 Likewise.
4897 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
4898 Likewise.
4899 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
4900 (__cpp_lib_sample): Likewise.
4901 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
4902 Likewise.
4903 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
4904 Likewise.
4905 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
4906 Likewise.
4907 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
4908 Likewise.
4909 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
4910 Likewise.
4911 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
4912 Likewise.
4913 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
4914 Likewise.
4915 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
4916 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
4917 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
4918 Likewise.
4919 * include/std/complex (__cpp_lib_complex_udls): Likewise.
4920 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
4921 * include/std/functional (__cpp_lib_not_fn): Likewise.
4922 (__cpp_lib_boyer_moore_searcher): Likewise.
4923 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
4924 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
4925 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
4926 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
4927 * include/std/tuple (__cpp_lib_apply): Likewise.
4928 (__cpp_lib_make_from_tuple): Likewise.
4929 * include/std/type_traits (__cpp_lib_integral_constant_callable)
4930 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
4931 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
4932 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
4933 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
4934 (__cpp_lib_has_unique_object_representations)
4935 (__cpp_lib_is_aggregate): Likewise.
4936 * include/std/version: Likewise.
4937 * libsupc++/new (__cpp_lib_launder): Likewise.
4938
4939 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4940
4941 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
4942 condition for C++17 definition.
4943
4944 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4945
4946 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
4947 Add constexpr.
4948 (_Sp_atomic::_M_ptr): Add default member-initializer.
4949 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
4950 Check constant initialization.
4951 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
4952
4953 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4954
4955 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
4956 equivalent attribute for Clang.
4957 * src/c++11/future.cc (__constinit): Likewise.
4958 * src/c++11/system_error.cc (__constinit): Likewise.
4959 * src/c++17/memory_resource.cc (__constinit): Likewise.
4960
4961 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4962
4963 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
4964 src/libbacktrace/.libs to LDFLAGS if those directories exist.
4965
4966 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4967
4968 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
4969 from default flags.
4970 * configure: Regenerate.
4971
4972 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4973
4974 PR libstdc++/104123
4975 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
4976 <stddef.h>.
4977
4978 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4979
4980 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
4981 linker search paths.
4982 * src/Makefile.am: Fix src/debug/libbacktrace build.
4983 * src/Makefile.in: Regenerate.
4984 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
4985 variable. Use symlinks for the source files.
4986 * src/libbacktrace/Makefile.in: Regenerate.
4987
4988 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
4989
4990 * include/experimental/bits/simd.h (__floating_point_flags): Do
4991 not rely on math_errhandling to expand to a constant expression.
4992
4993 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4994
4995 * doc/xml/manual/evolution.xml: Document deprecations.
4996 * doc/xml/manual/status_cxx2017.xml: Update status.
4997 * doc/html/*: Regenerate.
4998
4999 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5000
5001 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
5002 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
5003
5004 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5005
5006 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
5007 function.
5008
5009 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
5010
5011 PR libstdc++/104101
5012 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
5013 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
5014
5015 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5016
5017 PR libstdc++/104099
5018 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
5019 define for C++23.
5020 (operator=(nullptr_t)): Likewise.
5021 * include/bits/cow_string.h: Likewise.
5022 * include/std/string_view (basic_string_view(nullptr_t)):
5023 Likewise.
5024 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
5025 expected error. Add examples that become ill-formed in C++23.
5026 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
5027 Adjust expected errors.
5028 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
5029 Likewise.
5030
5031 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5032
5033 PR libstdc++/104098
5034 * include/bits/stl_iterator.h (reverse_iterator): Check
5035 __cpp_lib_concepts instead of __cplusplus.
5036
5037 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5038
5039 PR libstdc++/101124
5040 * include/bits/stl_pair.h (pair): Adjust constraints on
5041 deprecated constructors accepting literal zero as null pointer
5042 constant. Improve wording of deprecated attribute.
5043 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
5044 constructors do not cause ambiguities for copyable types.
5045
5046 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5047
5048 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
5049 non-deprecated alternative.
5050
5051 2022-01-18 Tom Honermann <tom@honermann.net>
5052
5053 * acinclude.m4: Define config macros if uchar.h provides
5054 c8rtomb() and mbrtoc8().
5055 * config.h.in: Regenerate.
5056 * configure: Regenerate.
5057 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
5058 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
5059 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
5060 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
5061 New test.
5062 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
5063 New test.
5064
5065 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5066
5067 * include/Makefile.am: Install new header.
5068 * include/Makefile.in: Regenerate.
5069 * include/c_compatibility/stdatomic.h: New file.
5070 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
5071
5072 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5073
5074 PR libstdc++/104080
5075 * src/c++17/fast_float/LOCAL_PATCHES: Update.
5076 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
5077 Define in terms of __BYTE_ORDER__.
5078
5079 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5080
5081 PR libstdc++/104080
5082 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
5083 * src/c++17/fast_float/fast_float.h (round): Use explicit
5084 template argument list for std::min.
5085
5086 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5087
5088 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
5089 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
5090 upcoming release.
5091 * doc/html/manual/status.html: Regenerate.
5092
5093 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
5094
5095 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
5096 comments.
5097 * configure: Regenerate.
5098
5099 2022-01-17 Patrick Palka <ppalka@redhat.com>
5100
5101 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
5102 Conditionally define, and use it to conditionally include
5103 fast_float.
5104 (from_chars): Use fast_float for float and double when
5105 USE_LIB_FAST_FLOAT.
5106
5107 2022-01-17 Patrick Palka <ppalka@redhat.com>
5108
5109 * src/c++17/fast_float/LOCAL_PATCHES: Update.
5110 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
5111 case of over/underflow, return errc::result_out_of_range and don't
5112 modify 'value'.
5113
5114 2022-01-17 Patrick Palka <ppalka@redhat.com>
5115
5116 * src/c++17/fast_float/LOCAL_PATCHES: Update.
5117 * src/c++17/fast_float/fast_float.h: Apply local modifications.
5118
5119 2022-01-17 Patrick Palka <ppalka@redhat.com>
5120
5121 * src/c++17/fast_float/LOCAL_PATCHES: New file.
5122 * src/c++17/fast_float/MERGE: New file.
5123 * src/c++17/fast_float/README.md: New file, copied from the
5124 fast_float repository.
5125 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
5126 of the fast_float library.
5127
5128 2022-01-17 Patrick Palka <ppalka@redhat.com>
5129
5130 * src/c++17/floating_from_chars.cc: Include <bit>.
5131 (ascii_to_hexit, starts_with_ci): Conditionally define.
5132 (__floating_from_chars_hex): Conditionally define.
5133 (from_chars): Use __floating_from_chars_hex for
5134 chars_format::hex parsing of binary32/64 float/double.
5135 (testsuite/20_util/from_chars/7.cc): New test.
5136 * testsuite/20_util/from_chars/7.cc: New file.
5137
5138 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5139
5140 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
5141 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
5142 * include/Makefile.am: Add new header.
5143 * include/Makefile.in: Regenerate.
5144 * include/std/stacktrace: New header.
5145 * include/std/version (__cpp_lib_stacktrace): Define.
5146 * Makefile.in: Regenerate.
5147 * config.h.in: Regenerate.
5148 * configure: Regenerate.
5149 * doc/Makefile.in: Regenerate.
5150 * libsupc++/Makefile.in: Regenerate.
5151 * po/Makefile.in: Regenerate.
5152 * python/Makefile.in: Regenerate.
5153 * src/Makefile.am: Regenerate.
5154 * src/Makefile.in: Regenerate.
5155 * src/c++11/Makefile.in: Regenerate.
5156 * src/c++17/Makefile.in: Regenerate.
5157 * src/c++20/Makefile.in: Regenerate.
5158 * src/c++98/Makefile.in: Regenerate.
5159 * src/filesystem/Makefile.in: Regenerate.
5160 * testsuite/Makefile.in: Regenerate.
5161 * src/libbacktrace/Makefile.am: New file.
5162 * src/libbacktrace/Makefile.in: New file.
5163 * src/libbacktrace/backtrace-rename.h: New file.
5164 * src/libbacktrace/backtrace-supported.h.in: New file.
5165 * src/libbacktrace/config.h.in: New file.
5166 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
5167 New proc.
5168 * testsuite/20_util/stacktrace/entry.cc: New test.
5169 * testsuite/20_util/stacktrace/synopsis.cc: New test.
5170 * testsuite/20_util/stacktrace/version.cc: New test.
5171
5172 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5173
5174 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
5175 names.
5176 * doc/html/manual/status.html: Regenerate.
5177
5178 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5179
5180 PR libstdc++/103650
5181 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
5182 * include/Makefile.in: Regenerate.
5183 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
5184
5185 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
5186
5187 * include/experimental/bits/simd.h (__floating_point_flags): Do
5188 not rely on the presence of the math_errhandling macro.
5189
5190 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5191
5192 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
5193 to qualified-id for dependent type.
5194
5195 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5196
5197 * doc/xml/manual/status_cxx2020.xml: Update.
5198 * doc/html/manual/status.html: Regenerate.
5199
5200 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5201 Thomas Rodgers <trodgers@redhat.com>
5202
5203 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
5204 New macro.
5205 (_Sp_atomic): New class template.
5206 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
5207 specializations.
5208 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
5209 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
5210 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
5211 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
5212 test.
5213 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
5214
5215 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
5216
5217 * include/experimental/bits/simd.h: Move feature detection bools
5218 and add __have_avx512bitalg, __have_avx512vbmi2,
5219 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
5220 __have_avx512vnni, __have_avx512vpopcntdq.
5221 (__detail::__machine_flags): New function which returns a unique
5222 uint64 depending on relevant -m and -f flags.
5223 (__detail::__odr_helper): New type alias for either an anonymous
5224 type or a type specialized with the __machine_flags number.
5225 (_SimdIntOperators): Change template parameters from _Impl to
5226 _Tp, _Abi because _Impl now has an __odr_helper parameter which
5227 may be _OdrEnforcer from the anonymous namespace, which makes
5228 for a bad base class.
5229 (many): Either add __odr_helper template parameter or mark as
5230 always_inline.
5231 * include/experimental/bits/simd_detail.h: Add defines for
5232 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
5233 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
5234 * include/experimental/bits/simd_builtin.h: Add __odr_helper
5235 template parameter or mark as always_inline.
5236 * include/experimental/bits/simd_fixed_size.h: Ditto.
5237 * include/experimental/bits/simd_math.h: Ditto.
5238 * include/experimental/bits/simd_scalar.h: Ditto.
5239 * include/experimental/bits/simd_neon.h: Add __odr_helper
5240 template parameter.
5241 * include/experimental/bits/simd_ppc.h: Ditto.
5242 * include/experimental/bits/simd_x86.h: Ditto.
5243
5244 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
5245
5246 * testsuite/22_locale/numpunct/members/char/3.cc:
5247 Require pt_PT locale instead of nl_NL.
5248 (test02): Use pt_PT locale instead of nl_NL.
5249
5250 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5251
5252 PR libstdc++/91260
5253 PR libstdc++/91383
5254 PR libstdc++/95065
5255 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
5256 attribute.
5257 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
5258 Disable deprecated warnings for base classes.
5259 (_Reference_wrapper_base): Likewise.
5260 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
5261 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
5262 * include/bits/stl_function.h (unary_function, binary_function):
5263 Add deprecated attribute.
5264 (unary_negate, not1, binary_negate, not2, ptr_fun)
5265 (pointer_to_unary_function, pointer_to_binary_function)
5266 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
5267 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
5268 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
5269 attributes.
5270 * include/bits/stl_iterator.h: Disable deprecated warnings for
5271 std::iterator base classes.
5272 * include/bits/stl_iterator_base_types.h (iterator): Add
5273 deprecated attribute.
5274 * include/bits/stl_map.h (map::value_compare): Disable
5275 deprecated warnings for base class.
5276 * include/bits/stl_multimap.h (multimap::value_compare):
5277 Likewise.
5278 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
5279 Add deprecated attribute.
5280 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
5281 * include/bits/stream_iterator.h: Disable deprecated warnings.
5282 * include/bits/streambuf_iterator.h: Likewise.
5283 * include/ext/bitmap_allocator.h: Remove unary_function base
5284 classes.
5285 * include/ext/functional: Disable deprecated warnings.
5286 * include/ext/rope: Likewise.
5287 * include/ext/throw_allocator.h: Likewise.
5288 * include/std/type_traits (result_of): Add deprecated attribute.
5289 * include/tr1/functional: Disable deprecated warnings.
5290 * include/tr1/functional_hash.h: Likewise.
5291 * testsuite/20_util/function_objects/binders/1.cc: Add
5292 -Wno-disable-deprecations.
5293 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
5294 * testsuite/20_util/function_objects/constexpr.cc: Add
5295 dg-warning.
5296 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
5297 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
5298 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
5299 Likewise.
5300 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
5301 Likewise.
5302 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
5303 Likewise.
5304 * testsuite/20_util/reference_wrapper/24803.cc:
5305 Likewise.
5306 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
5307 C++20 and check for absence of nested types.
5308 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
5309 std::binary_function base class.
5310 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
5311 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
5312 std::iterator base class.
5313 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
5314 Likewise.
5315 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
5316 Likewise.
5317 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
5318 Likewise.
5319 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
5320 Likewise.
5321 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
5322 Likewise.
5323 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
5324 Likewise.
5325 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
5326 Likewise.
5327 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
5328 Likewise.
5329 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
5330 Likewise.
5331 * testsuite/25_algorithms/copy/34595.cc:
5332 Likewise.
5333 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
5334 base class.
5335 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
5336 Disable deprecated warnings.
5337 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
5338 Likewise.
5339 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
5340 Likewise.
5341 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
5342 Likewise.
5343 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
5344 Likewise.
5345 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
5346 Likewise.
5347 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
5348 Likewise.
5349 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
5350 Likewise.
5351 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
5352 Likewise.
5353 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
5354 Likewise.
5355 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
5356 Likewise.
5357 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
5358 Likewise.
5359 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
5360 Likewise.
5361 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
5362 Likewise.
5363 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
5364 Likewise.
5365 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
5366 Likewise.
5367 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
5368 Likewise.
5369 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
5370 Likewise.
5371 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
5372 Likewise.
5373 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
5374 Likewise.
5375 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
5376 Likewise.
5377 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
5378 Likewise.
5379 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
5380 Likewise.
5381 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
5382 Likewise.
5383 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
5384 Likewise.
5385 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
5386 Likewise.
5387 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
5388 Likewise.
5389 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
5390 Likewise.
5391 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
5392 Likewise.
5393 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
5394 Likewise.
5395 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
5396 Likewise.
5397 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
5398 Likewise.
5399 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
5400 Likewise.
5401 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
5402 Likewise.
5403 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
5404 Likewise.
5405 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
5406 Likewise.
5407 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
5408 Likewise.
5409 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
5410 Likewise.
5411 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
5412 Likewise.
5413 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
5414 Likewise.
5415 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
5416 Likewise.
5417 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
5418 Likewise.
5419 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
5420 Likewise.
5421 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
5422 Likewise.
5423 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
5424 Likewise.
5425 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
5426 Likewise.
5427 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
5428 Likewise.
5429 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
5430 Likewise.
5431 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
5432 dg-warning.
5433 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
5434 Likewise.
5435 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
5436 Likewise.
5437 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
5438 Disable deprecated warnings.
5439 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
5440 Likewise.
5441 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
5442 std::unary_function base classes.
5443 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5444 Remove std::iterator base classes.
5445
5446 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5447
5448 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
5449 Correct type of macro value.
5450 (shared_ptr): Add additional friend declarations.
5451 (make_shared, allocate_shared): Constrain existing overloads and
5452 remove static_assert.
5453 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
5454 New macro.
5455 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
5456 specialization for use with make_shared_for_overwrite.
5457 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5458 (_Sp_counted_array_base): New class template.
5459 (_Sp_counted_array): New class template.
5460 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
5461 New constructor for allocating shared arrays.
5462 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
5463 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
5464 type.
5465 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5466 (__cpp_lib_smart_ptr_for_overwrite): New macro.
5467 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
5468 expected errors.
5469 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
5470 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
5471 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
5472 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
5473 feature test macro. Test non-trivial default-initialization.
5474
5475 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5476
5477 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
5478 Also cast away cv-qualifiers when converting pointer to void.
5479 * testsuite/20_util/allocator/void.cc: Test construct function
5480 with cv-qualified types.
5481
5482 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5483
5484 PR libstdc++/103992
5485 * include/bits/stl_iterator.h (common_iterator): Use
5486 std::construct_at instead of placement new.
5487 * testsuite/24_iterators/common_iterator/1.cc: Check copy
5488 construction is usable in constant expressions.
5489
5490 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5491
5492 * doc/xml/manual/status_cxx2011.xml: Document new tokens
5493 accepted by std::random_device constructor.
5494 * doc/html/manual/status.html: Regenerate.
5495
5496 2022-01-12 Patrick Palka <ppalka@redhat.com>
5497
5498 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
5499 directive.
5500
5501 2022-01-12 Patrick Palka <ppalka@redhat.com>
5502
5503 PR libstdc++/103955
5504 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5505 Track the excess precision separately from the effective
5506 precision. Avoid overflow in bounds check by splitting it into
5507 two checks.
5508 (__floating_to_chars_precision): Avoid overflow in bounds checks
5509 similarly.
5510 * testsuite/20_util/to_chars/103955.cc: New test.
5511
5512 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5513
5514 PR libstdc++/103726
5515 * include/Makefile.am: Install <source_location> for
5516 freestanding.
5517 * include/Makefile.in: Regenerate.
5518 * include/std/version (__cpp_lib_source_location): Define for
5519 freestanding.
5520
5521 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5522
5523 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
5524 Add neoxcept (LWG 3593).
5525
5526 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5527
5528 * include/std/ranges (ranges::__detail::__box): Add constexpr to
5529 assignment operators (LWG 3572).
5530 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
5531 view that uses copyable-box.
5532
5533 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5534
5535 PR libstdc++/103726
5536 * include/Makefile.am: Install <coroutine> for freestanding.
5537 * include/Makefile.in: Regenerate.
5538 * include/std/coroutine: Adjust headers and preprocessor
5539 conditions.
5540 (__coroutine_traits_impl): Use concepts when available.
5541 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
5542
5543 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5544
5545 * include/std/ostream (operator<<(basic_ostream&, charT)):
5546 Use unformatted input if no padding is needed.
5547 (operator<<(basic_ostream<char>&, char)): Likewise.
5548
5549 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5550
5551 PR libstdc++/103891
5552 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5553 Define.
5554 * include/std/variant (__cpp_lib_variant): Only define C++20
5555 value when the compiler is known to support conditionally
5556 trivial destructors.
5557 * include/std/version (__cpp_lib_variant): Likewise.
5558
5559 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5560
5561 * include/bits/stl_iterator.h (common_iterator): Add constexpr
5562 to all member functions (LWG 3574).
5563 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
5564 tests as constant expressions.
5565 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
5566
5567 2022-01-10 Jakub Jelinek <jakub@redhat.com>
5568
5569 PR libstdc++/77760
5570 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
5571 (time_get::_M_extract_via_format): Declare new method with
5572 __time_get_state& as an extra argument.
5573 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
5574 __state argument, set various fields in it while parsing. Handle %j,
5575 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
5576 for %p immediately. Add a wrapper around the method without the
5577 __state argument for backwards compatibility.
5578 (_M_extract_num): Remove all __len == 4 special cases.
5579 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
5580 initialize __state, pass it to _M_extract_via_format and finalize it
5581 at the end.
5582 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
5583 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
5584 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
5585 version, don't call do_get but call _M_extract_via_format instead to
5586 pass around state.
5587 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
5588 with extra __time_get_state and __time_get_state::_M_finalize_state.
5589 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
5590 day_of_the_year): New functions in anon namespace.
5591 (mon_yday): New var in anon namespace.
5592 (__time_get_state::_M_finalize_state): Define.
5593 * testsuite/22_locale/time_get/get/char/4.cc: New test.
5594 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
5595 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
5596 as year 197AD instead of error.
5597 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
5598 year 2001 instead of error.
5599 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
5600 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
5601 197 as year 197AD instead of error.
5602 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
5603 1 as year 2001 instead of error.
5604 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
5605
5606 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5607
5608 PR libstdc++/103866
5609 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
5610 nothing for freestanding builds.
5611 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
5612 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
5613 with --without-headers. Do not use GCC_HEADER_STDINT for
5614 freestanding builds.
5615 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
5616 for freestanding builds.
5617 * configure: Regenerate.
5618 * Makefile.in: Regenerate.
5619 * doc/Makefile.in: Regenerate.
5620 * include/Makefile.in: Regenerate.
5621 * libsupc++/Makefile.in: Regenerate.
5622 * po/Makefile.in: Regenerate.
5623 * python/Makefile.in: Regenerate.
5624 * src/Makefile.in: Regenerate.
5625 * src/c++11/Makefile.in: Regenerate.
5626 * src/c++17/Makefile.in: Regenerate.
5627 * src/c++20/Makefile.in: Regenerate.
5628 * src/c++98/Makefile.in: Regenerate.
5629 * src/filesystem/Makefile.in: Regenerate.
5630 * testsuite/Makefile.in: Regenerate.
5631
5632 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5633
5634 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
5635 Add dg-timeout-factor directive.
5636 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
5637 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
5638 * testsuite/28_regex/match_results/102667.cc: Likewise.
5639
5640 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5641
5642 * doc/xml/manual/using.xml: Update documentation around default
5643 -std option.
5644 * doc/html/*: Regenerate.
5645
5646 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5647
5648 PR libstdc++/100017
5649 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
5650 * src/c++17/Makefile.in: Regenerate.
5651
5652 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
5653
5654 * testsuite/18_support/type_info/constexpr.cc: Add explicit
5655 -fdelete-null-pointer-checks option.
5656
5657 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
5658 Jonathan Wakely <jwakely@redhat.com>
5659
5660 PR libstdc++/103853
5661 * include/bits/forward_list.tcc (forward_list::merge): Check for
5662 self-merge.
5663 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
5664
5665 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5666
5667 * include/bits/regex.h (basic_regex, match_results): Qualify
5668 name in friend declaration, to work around Clang bug.
5669
5670 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5671
5672 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
5673
5674 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5675
5676 PR libstdc++/103911
5677 * include/std/charconv (__from_chars_alpha_to_num): Return
5678 char instead of unsigned char. Change invalid return value to
5679 127 instead of using numeric trait.
5680 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
5681 Change type of variable to char.
5682
5683 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
5684
5685 PR libstdc++/68303
5686 * include/bits/hashtable_policy.h
5687 (_Hashtable_hash_traits<_Hash>): New.
5688 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
5689 (_Hashtable_base<>::_M_key_equals): New.
5690 (_Hashtable_base<>::_M_equals): Use latter.
5691 (_Hashtable_base<>::_M_key_equals_tr): New.
5692 (_Hashtable_base<>::_M_equals_tr): Use latter.
5693 * include/bits/hashtable.h
5694 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
5695 (_Hashtable<>::find): Loop through elements to look for key if size is lower
5696 than __small_size_threshold().
5697 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
5698 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
5699 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
5700 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
5701 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
5702 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
5703 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
5704 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
5705 * testsuite/util/testsuite_performance.h
5706 (report_performance): Use 9 width to display memory.
5707 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
5708 New performance test case.
5709
5710 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5711
5712 PR libstdc++/103919
5713 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
5714 Relax constraints on string_view parameter.
5715 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
5716 Likewise.
5717 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
5718
5719 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5720
5721 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
5722 ARM EABI.
5723 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
5724 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
5725 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
5726 is emitted.
5727 (type_info::__equal): Define alias symbol.
5728 * libsupc++/typeinfo (type_info::before): Combine different
5729 implementations into one.
5730 (type_info::operator==): Likewise. Use address equality for
5731 constant evaluation. Call __equal for targets that require the
5732 definition to be non-inline.
5733 * testsuite/18_support/type_info/constexpr.cc: New test.
5734
5735 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5736
5737 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
5738 class and virtual functions as 'final'.
5739 (io_category_instance): Use constinit union to make the object
5740 immortal.
5741 * src/c++11/future.cc (future_error_category): Define class and
5742 virtual functions as 'final'.
5743 (future_category_instance): Use constinit union.
5744
5745 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5746
5747 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
5748 versioned namespace from the type name that is printed.
5749
5750 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5751
5752 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
5753 printer for std::regex NFA states.
5754
5755 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5756
5757 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
5758 placeholders in comments.
5759 * testsuite/23_containers/forward_list/operations/2.cc:
5760 Likewise.
5761 * testsuite/23_containers/forward_list/operations/3.cc:
5762 Likewise.
5763 * testsuite/23_containers/forward_list/operations/4.cc:
5764 Likewise.
5765 * testsuite/23_containers/forward_list/operations/5.cc:
5766 Likewise.
5767 * testsuite/23_containers/forward_list/operations/6.cc:
5768 Likewise.
5769 * testsuite/23_containers/forward_list/operations/7.cc:
5770 Likewise.
5771
5772 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5773
5774 PR libstdc++/103848
5775 * include/bits/stl_deque.h (operator-): Do not use 0 as null
5776 pointer constant.
5777
5778 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5779
5780 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
5781 Use std::_Construct for construct.
5782
5783 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5784
5785 PR libstdc++/103877
5786 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
5787 * doc/html/faq.html: Regenerate.
5788
5789 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5790
5791 * include/bits/regex.h (__regex_algo_impl): Change __policy and
5792 __match_mode template parameters to be function parameters.
5793 (regex_match, regex_search): Pass policy and match mode as
5794 function arguments.
5795 * include/bits/regex.tcc (__regex_algo_impl): Change template
5796 parameters to function parameters.
5797 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
5798 'if constexpr' for conditions using template parameters.
5799 (_RegexTranslator): Likewise.
5800 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
5801 Likewise.
5802 * testsuite/util/testsuite_regex.h (regex_match_debug)
5803 (regex_search_debug): Move template arguments to function
5804 arguments.
5805
5806 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5807
5808 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
5809 results even if the match failed.
5810
5811 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5812
5813 * include/bits/regex_compiler.tcc: Adjust all calls to
5814 __throw_regex_error.
5815 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
5816 attribute.
5817 * include/bits/regex_scanner.tcc: Likewise.
5818 * src/c++11/regex.cc (desc): New helper function.
5819 (regex_error::regex_error(error_type)): Use desc to get a string
5820 corresponding to the error code.
5821
5822 \f
5823 Copyright (C) 2022 Free Software Foundation, Inc.
5824
5825 Copying and distribution of this file, with or without modification,
5826 are permitted in any medium without royalty provided the copyright
5827 notice and this notice are preserved.