tilegx: Fix infinite loop in gen-mul-tables generator
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobe210bdb814377d90f46e01da2f736d5dd30aa846
1 2022-06-23  Jonathan Wakely  <jwakely@redhat.com>
3         * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4         rmdir to remove directories.
5         * testsuite/experimental/filesystem/iterators/error_reporting.cc:
6         Likewise.
8 2022-06-23  Jonathan Wakely  <jwakely@redhat.com>
10         * testsuite/26_numerics/random/random_device/entropy.cc: Use
11         numeric_limits<unsigned>::digits.
13 2022-06-22  Alexandre Oliva  <oliva@adacore.com>
15         * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
16         (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
18 2022-06-22  Alexandre Oliva  <oliva@adacore.com>
20         * testsuite/30_threads/this_thread/60421.cc (test02): Call
21         sched_yield.
23 2022-06-22  Alexandre Oliva  <oliva@adacore.com>
25         * testsuite/20_util/to_chars/long_double.cc: Require cmath.
27 2022-06-22  Alexandre Oliva  <oliva@adacore.com>
29         * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
30         global struct bitset.
31         * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
32         * testsuite/23_containers/bitset/input/1.cc: Likewise.
33         * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
34         * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
36 2022-06-17  Jonathan Wakely  <jwakely@redhat.com>
38         * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
39         missing #include.
41 2022-06-16  Jonathan Wakely  <jwakely@redhat.com>
43         PR libstdc++/105995
44         * include/bits/basic_string.h (_M_use_local_data): Initialize
45         the entire SSO buffer.
46         * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
48 2022-06-16  Jonathan Wakely  <jwakely@redhat.com>
50         PR libstdc++/101482
51         * include/ext/vstring.h (operator==): Always check lengths
52         before comparing.
54 2022-06-15  François Dumont  <fdumont@gcc.gnu.org>
56         PR libstdc++/105717
57         * include/bits/hashtable_policy.h (_ConvertToValueType): New.
58         * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
59         (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
60         (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
61         (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
62         const allocator_type&, true_type)): Use this.insert range.
63         (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
64         const allocator_type&, false_type)): Use _M_insert.
65         * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
66         is done.
67         * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
68         * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
70 2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
72         PR libstdc++/62187
73         * include/bits/basic_string.h (operator==): Always compare
74         lengths before checking string contents.
75         [!__cpp_lib_three_way_comparison] (operator==, operator!=):
76         Reorder arguments.
78 2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
80         PR libstdc++/59048
81         * include/bits/basic_string.h (compare): Define inline.
82         * include/bits/basic_string.tcc (compare): Remove out-of-line
83         definitions.
84         * include/bits/cow_string.h (compare): Define inline.
85         * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
86         New test.
88 2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
90         * include/bits/new_allocator.h: Fix indentation.
91         * include/ext/malloc_allocator.h: Likewise.
93 2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
95         PR libstdc++/105957
96         * include/bits/allocator.h (allocator::allocate): Check for
97         overflow in constexpr allocation.
98         * testsuite/20_util/allocator/105975.cc: New test.
100 2022-06-13  Mark Mentovai  <mark@mentovai.com>
102         * include/experimental/bits/fs_path.h (__detail::__null_terminated):
103         Rename to __nul_terminated to avoid colliding with a macro in
104         Apple's SDK.
106 2022-06-13  Jonathan Wakely  <jwakely@redhat.com>
108         * include/std/atomic (__atomic_val_t): Use __type_identity_t
109         instead of atomic<T>::value_type, as per LWG 3220.
110         * testsuite/29_atomics/atomic/lwg3220.cc: New test.
112 2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
114         PR libstdc++/105844
115         * include/experimental/numeric (experimental::gcd): Simplify
116         assertions. Use __abs_r instead of __absu.
117         (experimental::lcm): Likewise. Remove use of __detail::__lcm so
118         overflow can be detected.
119         * include/std/numeric (__detail::__absu): Rename to __abs_r and
120         change to allow signed result type, so overflow can be detected.
121         (__detail::__lcm): Remove.
122         (gcd): Simplify assertions. Use __abs_r instead of __absu.
123         (lcm): Likewise. Remove use of __detail::__lcm so overflow can
124         be detected.
125         * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
126         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
127         * testsuite/26_numerics/gcd/105844.cc: New test.
128         * testsuite/26_numerics/lcm/105844.cc: New test.
130 2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
132         PR libstdc++/105880
133         * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
134         prevent destruction during termination.
135         (__eh_globals_init::_M_init): Replace with static member _S_init.
136         (__cxxabiv1::__cxa_get_globals_fast): Update.
137         (__cxxabiv1::__cxa_get_globals): Likewise.
139 2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
141         * include/bits/basic_string.h (__hash_str_base): New class
142         template.
143         (hash<basic_string<C, char_traits<C>, A>>): Define partial
144         specialization for each of the standard character types.
145         (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
146         (hash<u32string>): Remove explicit specializations.
147         * include/std/string (__hash_string_base): Remove class
148         template.
149         (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
150         (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
151         specializations.
152         * testsuite/21_strings/basic_string/hash/hash.cc: Test with
153         custom allocators.
154         * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
155         Likewise.
157 2022-05-27  Jonathan Wakely  <jwakely@redhat.com>
159         PR libstdc++/105671
160         * include/std/sstream (basic_stringbuf::_M_high_mark): Add
161         always_inline attribute.
163 2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
165         PR libstdc++/105681
166         * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
167         Limit ga_sizes array to values that fit in size_t.
168         * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
169         (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
170         (sfmt216091_64): Do not declare.
172 2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
174         * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
175         lookup for ios_errc and future_errc check versioned namespace.
176         (StdAtomicPrinter): Strip versioned namespace from typename.
178 2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
180         * src/c++11/Makefile.am: Add new source file.
181         * src/c++11/Makefile.in: Regenerate.
182         * src/c++11/cxx11-ios_failure.cc (iostream_category):
183         Move to ...
184         * src/c++11/ios_errcat.cc: New file.
185         * testsuite/27_io/ios_base/failure/error_code.cc: Check that
186         std::iostream_category() is defined and used for std::io_errc.
188 2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
190         * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
191         Add 'constexpr' as per LWG 3643.
192         * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
194 2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
196         * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
197         comment.
198         * include/bits/hashtable.h: Do not include <bits/stl_function.h>
199         here.
200         * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
201         <bits/functional_hash.h>.
202         * include/bits/unordered_map.h: Include required headers.
203         * include/bits/unordered_set.h: Likewise.
204         * include/std/unordered_map: Do not include headers for indirect
205         dependencies.
206         * include/std/unordered_set: Likewise.
208 2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
210         * include/bits/ranges_algobase.h: Do not include
211         <bits/stl_iterator_base_types.h>.
212         * include/std/string: Likewise.
213         * include/std/variant: Likewise.
215 2022-05-26  Nathan Sidwell  <nathan@acm.org>
217         * include/bits/hashtable.h: Include required headers.
218         * include/bits/hashtable_policy.h: Likewise.
219         * include/bits/stl_heap.h: Likewise.
220         * include/bits/stl_iterator_base_funcs.h: Likewise.
222 2022-05-26  François Dumont  <fdumont@gcc.gnu.org>
224         * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
225         Strip typename from version namespace.
227 2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
229         * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
230         versioned namespace from the template argument too.
232 2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
234         * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
235         Moved to...
236         * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
237         ...here.
238         * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
239         Moved to...
240         * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
241         ...here.
242         * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
243         Moved to...
244         * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
245         ...here.
246         * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
247         Moved to...
248         * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
249         ...here.
250         * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
251         Moved to...
252         * testsuite/21_strings/basic_string/operations/contains/char.cc:
253         ...here.
254         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
255         Moved to...
256         * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
257         ...here.
258         * testsuite/21_strings/basic_string/operations/data/char/1.cc:
259         Moved to...
260         * testsuite/21_strings/basic_string/operations/data/char.cc:
261         ...here.
262         * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
263         Moved to...
264         * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
265         ...here.
266         * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
267         Moved to...
268         * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
269         ...here.
270         * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
271         Moved to...
272         * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
273         ...here.
274         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
275         Moved to...
276         * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
277         ...here.
278         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
279         Moved to...
280         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
281         ...here.
282         * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
283         Moved to...
284         * testsuite/21_strings/basic_string/operations/substr/char.cc:
285         ...here.
286         * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
287         Moved to...
288         * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
289         ...here.
290         * testsuite/21_strings/basic_string/range_access/char/1.cc:
291         Moved to...
292         * testsuite/21_strings/basic_string/range_access/char.cc:
293         ...here.
294         * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
295         Moved to...
296         * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
297         ...here.
298         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
299         Moved to...
300         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
301         ...here.
302         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
303         Moved to...
304         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
305         ...here.
306         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
307         Moved to...
308         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
309         ...here.
310         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
311         Moved to...
312         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
313         ...here.
314         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
315         Moved to...
316         * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
317         ...here.
318         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
319         Moved to...
320         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
321         ...here.
322         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
323         Moved to...
324         * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
325         ...here.
326         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
327         Moved to...
328         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
329         ...here.
330         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
331         Moved to...
332         * testsuite/21_strings/basic_string_view/operations/data/char.cc:
333         ...here.
334         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
335         Moved to...
336         * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
337         ...here.
338         * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
339         Moved to...
340         * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
341         ...here.
342         * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
343         Moved to...
344         * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
345         ...here.
346         * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
347         Moved to...
348         * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
349         ...here.
350         * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
351         Moved to...
352         * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
353         ...here.
354         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
355         Moved to...
356         * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
357         ...here.
358         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
359         Moved to...
360         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
361         ...here.
362         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
363         Moved to...
364         * testsuite/21_strings/basic_string_view/range_access/char.cc:
365         ...here.
366         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
367         Moved to...
368         * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
369         ...here.
370         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
371         Moved to...
372         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
373         ...here.
374         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
375         Moved to...
376         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
377         ...here.
378         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
379         Moved to...
380         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
381         ...here.
382         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
383         Moved to...
384         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
385         ...here.
386         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
387         Moved to...
388         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
389         ...here.
390         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
391         Moved to...
392         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
393         ...here.
394         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
395         Moved to...
396         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
397         ...here.
398         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
399         Moved to...
400         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
401         ...here.
402         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
403         Moved to...
404         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
405         ...here.
406         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
407         Moved to...
408         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
409         ...here.
410         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
411         Moved to...
412         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
413         ...here.
414         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
415         Moved to...
416         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
417         ...here.
418         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
419         Moved to...
420         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
421         ...here.
422         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
423         Moved to...
424         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
425         ...here.
426         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
427         Moved to...
428         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
429         ...here.
430         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
431         Moved to...
432         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
433         ...here.
434         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
435         Moved to...
436         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
437         ...here.
438         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
439         Moved to...
440         * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
441         ...here.
443 2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
445         * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
446         Moved to...
447         * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
448         * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
449         Moved to...
450         * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
451         * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
452         Moved to...
453         * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
455 2022-05-25  Jason Merrill  <jason@redhat.com>
457         * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
458         constexpr.
460 2022-05-20  Jonathan Wakely  <jwakely@redhat.com>
462         * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
463         Run fewer iterations for simulator targets.
464         * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
465         Likewise.
466         * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
467         Likewise.
468         * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
469         Likewise.
470         * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
471         Likewise.
472         * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
473         Likewise.
474         * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
475         Likewise.
477 2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
479         * include/bits/char_traits.h: Only include <cstdint> when
480         necessary.
481         * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
482         uintptr_t.
483         * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
484         * src/c++17/floating_to_chars.cc: Likewise.
485         * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
486         * testsuite/20_util/assume_aligned/3.cc: Likewise.
487         * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
489 2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
491         * include/bits/basic_string.h: Do not include <ext/atomicity.h>
492         here.
493         * include/bits/cow_string.h: Include it here.
495 2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
497         * include/Makefile.am: Add new header.
498         * include/Makefile.in: Regenerate.
499         * include/bits/memory_resource.h: New file.
500         * include/std/deque: Include <bits/memory_resource.h>.
501         * include/std/forward_list: Likewise.
502         * include/std/list: Likewise.
503         * include/std/map: Likewise.
504         * include/std/memory_resource (pmr::memory_resource): Move to
505         new <bits/memory_resource.h> header.
506         (pmr::polymorphic_allocator): Likewise.
507         * include/std/regex: Likewise.
508         * include/std/set: Likewise.
509         * include/std/stacktrace: Likewise.
510         * include/std/string: Likewise.
511         * include/std/unordered_map: Likewise.
512         * include/std/unordered_set: Likewise.
513         * include/std/vector: Likewise.
514         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
515         Remove <memory_resource> header and check construction.
516         * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
517         * testsuite/23_containers/forward_list/pmr_typedefs.cc:
518         Likewise.
519         * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
520         * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
521         * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
522         * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
523         * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
524         * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
525         Likewise.
526         * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
527         Likewise.
528         * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
529         Likewise.
530         * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
531         Likewise.
532         * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
533         * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
535 2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
537         * include/std/memory_resource (polymorphic_allocator): Add
538         non-template equality operator, as proposed for LWG 3683.
539         * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
541 2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
543         * src/c++17/memory_resource.cc (set_default_resource): Use
544         memory_order_acq_rel.
545         (get_default_resource): Use memory_order_acquire.
547 2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
549         * include/std/memory_resource (new_delete_resource): Add
550         nodiscard, returns_nonnull and const attributes.
551         (null_memory_resource): Likewise.
552         (set_default_resource, get_default_resource): Add returns_nonnull
553         attribute.
554         (memory_resource::is_equal): Add nodiscard attribute.
555         (operator==, operator!=): Likewise.
557 2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
559         * include/bits/ios_base.h (io_category): Add const and nodiscard
560         attributes.
561         (make_error_code, make_error_condition): Add nodiscard.
562         * include/std/future (future_category): Add const and nodiscard.
563         (make_error_code, make_error_condition): Add nodiscard.
564         * include/std/system_error (generic_category system_category):
565         Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
566         (error_code::value, error_code::category, error_code::operator bool)
567         (error_condition::value, error_condition::category)
568         (error_condition::operator bool, make_error_code)
569         (make_error_condition, operator==, operator!=, operator<=>): Add
570         nodiscard.
572 2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
574         * testsuite/20_util/expected/synopsis.cc: Skip for versioned
575         namespace.
576         * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
578 2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
580         * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
581         Do not build the compatibility*-c++0x.cc objects.
582         * src/Makefile.in: Regenerate.
583         * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
584         Refuse to build for the versioned namespace.
585         * src/c++11/compatibility-chrono.cc: Likewise.
586         * src/c++11/compatibility-condvar.cc: Likewise.
587         * src/c++11/compatibility-thread-c++0x.cc: Likewise.
588         * src/c++11/chrono.cc (system_clock, steady_clock):
589         Use macros to define in inline namespace _V2, matching the
590         declarations in <system_error>.
591         * src/c++11/system_error.cc (system_category, generic_category):
592         Likewise.
594 2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
596         * doc/xml/manual/prerequisites.xml: Fix attributes for external
597         hyperlink.
598         * doc/html/manual/setup.html: Regenerate.
600 2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
602         * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
603         * doc/html/*: Regenerate.
605 2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
607         * doc/xml/manual/intro.xml: Include new chapter.
608         * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
609         * doc/xml/manual/status_cxx2023.xml: New file.
610         * doc/html/*: Regenerate.
612 2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
614         * doc/html/manual/status.html: Regenerate.
615         * doc/xml/manual/status_cxx2020.xml: Fix supported version for
616         C++20 bit operations.
618 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
620         * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
621         Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
622         * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
624 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
626         * include/std/future (launch): Make operators noexcept.
628 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
630         * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
631         with "__unspecified__".
632         * libsupc++/exception_ptr.h: Improve doxygen docs.
633         (__exception_ptr::swap): Also declare in namespace std.
635 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
637         * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
638         if-constexpr instead of tag dispatching.
639         (rethrow_if_nested) [C++17]: Likewise.
640         (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
641         would require RTTI.
642         * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
643         New test.
645 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
647         * doc/doxygen/user.cfg.in (PREDEFINED): Define
648         _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
649         * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
650         @headerfile.
651         * include/bits/unique_lock.h (unique_lock): Likewise.
652         * include/std/mutex (recursive_mutex, timed_mutex)
653         (recursive_timed_mutex, scoped_lock): Likewise.
655 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
657         * doc/doxygen/user.cfg.in (PREDEFINED): Define
658         _GLIBCXX23_CONSTEXPR macro.
659         * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
660         * include/bits/unique_ptr.h (default_delete): Use @since and
661         @headerfile.
662         * include/std/scoped_allocator: Remove @ingroup from @file
663         block.
665 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
667         * include/bits/std_thread.h (thread, thread::id): Improve
668         doxygen docs.
669         * include/std/future: Likewise.
670         * include/std/thread (jthread): Likewise.
672 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
674         * include/bits/ostream_insert.h: Mark helper functions as
675         undocumented by Doxygen.
676         * include/bits/stl_algo.h: Use markdown for formatting and mark
677         helper functions as undocumented.
678         * include/bits/stl_numeric.h:  Likewise.
679         * include/bits/stl_pair.h (pair): Add @headerfile.
681 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
683         * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
684         so that Doxygen shows the right base-class for std::allocator.
685         * include/bits/alloc_traits.h: Improve doxygen docs.
686         * include/bits/allocator.h: Likewise.
687         * include/bits/new_allocator.h: Likewise.
688         * include/ext/new_allocator.h: Likewise.
690 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
692         * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
693         _GLIBCXX_DOXYGEN_ONLY to expand its argument.
694         * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
695         * include/bits/regex.h: Improve doxygen docs.
696         * include/bits/regex_constants.h: Likewise.
697         * include/bits/regex_error.h: Likewise.
699 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
701         * include/std/atomic: Suppress doxygen docs for
702         implementation details.
703         * include/bits/atomic_base.h: Likewise.
704         * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
705         so that std::atomic is not added to the pointer abstractions
706         group.
708 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
710         * include/std/system_error: Improve doxygen comments.
712 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
714         * include/bits/ptr_traits.h: Add some doxygen comments.
716 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
718         * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
719         nothing.
720         * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
721         (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
722         * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
723         for the namespace.
724         * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
725         * include/bits/stl_algo.h (_V2::__rotate): Likewise.
726         * include/std/condition_variable (_V2::condition_variable_any):
727         Likewise.
728         * include/std/system_error (_V2::error_category): Likewise.
730 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
732         * include/bits/mofunc_impl.h: Fix doxygen command.
734 2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
736         * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
737         (CLASS_DIAGRAMS): Remove obsolete option.
739 2022-05-12  Jonathan Wakely  <jwakely@redhat.com>
741         * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
742         * config/locale/gnu/numeric_members.cc: Likewise.
743         * include/bits/locale_facets_nonio.h: Likewise.
744         * libsupc++/typeinfo: Likewise.
746 2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
748         PR libstdc++/105284
749         * include/std/iosfwd: Add declarations for <spanstream> class
750         templates and typedefs.
751         * include/std/spanstream (basic_spanbuf, basic_ispanstream)
752         (basic_ospanstream, basic_spanstream): Remove default template
753         arguments.
754         * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
755         declarations.
756         * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
757         default arguments.
759 2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
761         PR libstdc++/105284
762         * include/std/iosfwd: Add declarations for <synstream> class
763         templates and typedefs.
764         * include/std/syncstream (basic_syncbuf, basic_osyncstream):
765         Remove default template arguments.
766         * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
767         * testsuite/27_io/headers/iosfwd/types.cc: New test.
769 2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
771         * include/bits/random.tcc (operator==): Only check
772         normal_distribution::_M_saved_available once.
773         * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
774         Check equality after state changes.
775         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
776         lineno.
778 2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
780         PR libstdc++/105502
781         * include/bits/random.tcc
782         (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
783         Update state when __state_avail is false.
784         * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
785         Check that deserialized object equals serialized one.
787 2022-05-06  Alexandre Oliva  <oliva@adacore.com>
789         * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
790         for double, long long, and 64-bit long intrinsic types.
791         [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
792         preexisting long double diagnostic, adjust no-VSX double
793         diagnostic to cover 64-bit long double as well.
795 2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
797         PR libstdc++/104731
798         * testsuite/27_io/filesystem/iterators/error_reporting.cc:
799         Use a trailing char array as storage for dirent::d_name.
801 2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
803         * include/std/stacktrace: Do not include <cxxabi.h>.
804         (__cxa_demangle): Declare.
806 2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
808         PR libstdc++/99871
809         * include/bits/specfun.h: Use visibility attribute on namespace,
810         instead of pragma push/pop.
811         * libsupc++/compare: Likewise.
812         * libsupc++/exception: Likewise.
813         * libsupc++/exception.h: Likewise.
814         * libsupc++/exception_ptr.h: Likewise.
815         * libsupc++/initializer_list: Likewise.
816         * libsupc++/nested_exception.h: Likewise.
818 2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
820         * doc/xml/manual/test.xml: Remove requirement for copyright and
821         GPL notice in tests.
822         * doc/html/manual/test.html: Regenerate.
824 2022-05-05  Jonathan Wakely  <jwakely@redhat.com>
826         * include/experimental/memory_resource [!__cpp_rtti]
827         (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
828         when RTTI is disabled.
829         * testsuite/17_intro/freestanding.cc: Require RTTI.
830         * testsuite/18_support/exception/38732.cc: Likewise.
831         * testsuite/18_support/exception_ptr/rethrow_exception.cc:
832         Likewise.
833         * testsuite/18_support/nested_exception/68139.cc: Likewise.
834         * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
835         Likewise.
836         * testsuite/18_support/type_info/103240.cc: Likewise.
837         * testsuite/18_support/type_info/fundamental.cc: Likewise.
838         * testsuite/18_support/type_info/hash_code.cc: Likewise.
839         * testsuite/20_util/any/assign/emplace.cc: Likewise.
840         * testsuite/20_util/any/cons/in_place.cc: Likewise.
841         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
842         * testsuite/20_util/any/observers/type.cc: Likewise.
843         * testsuite/20_util/function/1.cc: Likewise.
844         * testsuite/20_util/function/2.cc: Likewise.
845         * testsuite/20_util/function/3.cc: Likewise.
846         * testsuite/20_util/function/4.cc: Likewise.
847         * testsuite/20_util/function/5.cc: Likewise.
848         * testsuite/20_util/function/6.cc: Likewise.
849         * testsuite/20_util/function/7.cc: Likewise.
850         * testsuite/20_util/function/8.cc: Likewise.
851         * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
852         * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
853         * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
854         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
855         Likewise.
856         * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
857         * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
858         * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
859         Likewise.
860         * testsuite/20_util/typeindex/hash.cc: Likewise.
861         * testsuite/20_util/typeindex/hash_code.cc: Likewise.
862         * testsuite/20_util/typeindex/name.cc: Likewise.
863         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
864         * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
865         Likewise.
866         * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
867         Likewise.
868         * testsuite/22_locale/locale/13630.cc: Check type without using
869         RTTI.
870         * testsuite/23_containers/array/requirements/non_default_constructible.cc:
871         Require RTTI.
872         * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
873         * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
874         * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
875         * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
876         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
877         * testsuite/experimental/any/observers/type.cc: Likewise.
878         * testsuite/experimental/memory_resource/resource_adaptor.cc:
879         Likewise.
880         * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
881         Define new proc.
882         * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
883         * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
884         * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
885         * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
886         * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
887         * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
888         * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
889         * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
890         * testsuite/tr2/bases/value.cc: Likewise.
891         * testsuite/tr2/direct_bases/value.cc: Likewise.
892         * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
893         types without RTTI.
895 2022-05-04  Jonathan Wakely  <jwakely@redhat.com>
897         PR libstdc++/104719
898         * include/std/array (array::size(), array::max_size())
899         (array::empty(), array::data()): Add  always_inline attribute.
901 2022-05-04  Jonathan Wakely  <jwakely@redhat.com>
903         PR libstdc++/104719
904         * include/std/array (__array_traits::_S_ref): Remove.
905         (__array_traits::_S_ptr): Remove.
906         (__array_traits<T, 0>::_Type): Define operator[] and operator T*
907         to provide an array-like API.
908         (array::_AT_Type): Remove public typeef.
909         (array::operator[], array::at, array::front, array::back): Use
910         index operator to access _M_elems instead of _S_ref.
911         (array::data): Use implicit conversion from _M_elems to pointer.
912         (swap(array&, array&)): Use __enable_if_t helper.
913         (get<I>): Use index operator to access _M_elems.
914         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
915         Adjust dg-error line numbers.
917 2022-05-03  Alexandre Oliva  <oliva@adacore.com>
919         PR c++/105324
920         * testsuite/20_util/from_chars/pr105324.cc: Guard test body
921         with conditional for floating-point overloads of from_char.
923 2022-05-02  Patrick Palka  <ppalka@redhat.com>
925         PR libstdc++/103911
926         * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
927         two delimeters for the exponent part in the form of a possibly
928         NULL string of length two.  Don't use std::tolower.
929         (pattern): Adjust calls to find_end_of_float accordingly.
931 2022-05-02  Patrick Palka  <ppalka@redhat.com>
933         PR libstdc++/105441
934         * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
935         Also accept 'P' as the start of the exponent.
936         * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
938 2022-04-29  Jonathan Wakely  <jwakely@redhat.com>
940         PR libstdc++/105417
941         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
942         Regenerate.
943         * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
944         Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
945         symbols as aliases for corresponding symbols without abi-tag.
947 2022-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
949         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
950         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
951         Likewise.
952         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
953         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
954         Likewise.
956 2022-04-28  Jonathan Wakely  <jwakely@redhat.com>
958         PR libstdc++/99290
959         * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
960         directory_iterator constructor, and check on each iteration.
961         * src/filesystem/ops.cc (fs::copy): Likewise.
962         * testsuite/27_io/filesystem/operations/copy.cc: Check for
963         errors during recursion.
964         * testsuite/experimental/filesystem/operations/copy.cc:
965         Likewise.
967 2022-04-28  François Dumont  <fdumont@gcc.gnu.org>
969         * config/abi/pre/gnu-versioned-namespace.ver: Remove
970         std::random_device::* pattern.
972 2022-04-27  Jakub Jelinek  <jakub@redhat.com>
974         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
975         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
976         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
977         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
978         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
979         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
980         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
981         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
983 2022-04-27  Jonathan Wakely  <jwakely@redhat.com>
985         * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
986         support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
987         (StdAtomicPrinter): New printer.
988         (build_libstdcxx_dictionary): Register new printer.
989         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
990         * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
991         pointers.
993 2022-04-26  Jonathan Wakely  <jwakely@redhat.com>
995         * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
996         constructor for constant initialization from nullptr_t.
997         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
998         Check for new constructor.
1000 2022-04-26  Jonathan Wakely  <jwakely@redhat.com>
1002         * include/bits/fs_path.h (hash<filesystem::path>): Define.
1003         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1004         Check std::hash specialization.
1006 2022-04-25  Jonathan Wakely  <jwakely@redhat.com>
1008         * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
1009         conditionally.
1010         * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1011         Define for C++23.
1012         (default_delete, default_delete<T[]>, __uniq_ptr_impl)
1013         (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
1014         functions.
1015         * include/std/version (__cpp_lib_constexpr_memory): Define new
1016         value for C++23.
1017         * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
1018         * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
1019         * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
1020         * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
1021         * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
1022         * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
1023         New test.
1025 2022-04-25  Jonathan Wakely  <jwakely@redhat.com>
1027         PR libstdc++/105375
1028         * include/std/future (packaged_task): Add deduction guides.
1029         * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
1031 2022-04-25  Philipp Fent  <fent@in.tum.de>
1033         * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
1034         Rename as iterator.
1035         (StdInitializerListPrinter): Define new printer.
1036         (build_libstdcxx_dictionary): Register new printer.
1037         * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
1038         initializer_list.
1040 2022-04-22  Thomas W Rodgers  <trodgers@redhat.com>
1042         PR libstdc++/102994
1043         * include/bits/atomic_base.h (atomic_flag::notify_one,
1044         notify_all): Remove const qualification.
1045         (__atomic_base::notify_one, notify_all): Likewise.
1046         * include/std/atomic (atomic<bool>::notify_one, notify_all):
1047         Likewise.
1048         (atomic::notify_one, notify_all): Likewise.
1049         (atomic<T*>::notify_one, notify_all): Likewise.
1050         (atomic_notify_one, atomic_notify_all): Likewise.
1051         * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
1052         to account for change in notify_one/notify_all signature.
1054 2022-04-21  Patrick Palka  <ppalka@redhat.com>
1056         * include/std/charconv (__from_chars_alnum_to_val_table):
1057         Simplify initialization of __lower/__upper_letters.
1058         (__from_chars_alnum_to_val): Default the template parameter to
1059         false.
1060         * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
1061         assume the uppercase and lowercase letters are contiguous.
1062         (__floating_from_chars_hex): Likewise.
1064 2022-04-21  Patrick Palka  <ppalka@redhat.com>
1066         PR c++/105297
1067         PR c++/105322
1068         * include/std/charconv (__from_chars_alnum_to_val): Make
1069         initializer for __table dependent in an artificial way.
1071 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
1073         PR libstdc++/105324
1074         * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
1075         Remove assertion.
1076         * testsuite/20_util/from_chars/pr105324.cc: New test.
1078 2022-04-20  Jonathan Wakely  <jwakely@redhat.com>
1080         * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1081         Check correct feature test macro.
1083 2022-04-20  Jonathan Wakely  <jwakely@redhat.com>
1085         PR libstdc++/93602
1086         * doc/xml/manual/prerequisites.xml: Document libiconv
1087         workarounds.
1088         * doc/html/manual/setup.html: Regenerate.
1089         * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
1090         * src/Makefile.in: Regenerate.
1092 2022-04-19  Patrick Palka  <ppalka@redhat.com>
1094         * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
1095         define.
1096         (__floating_to_chars_shortest): Add __builtin_unreachable calls to
1097         squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
1098         warnings.
1099         (__floating_to_chars_precision): Likewise.
1101 2022-04-19  Philipp Fent  <fent@in.tum.de>
1103         * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
1104         * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
1106 2022-04-19  Jonathan Wakely  <jwakely@redhat.com>
1108         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
1109         * configure: Regenerate.
1111 2022-04-18  Patrick Palka  <ppalka@redhat.com>
1113         * include/std/charconv (__from_chars_pow2_base): Manually
1114         unroll the first iteration of the main loop and simplify
1115         accordingly.
1117 2022-04-15  Patrick Palka  <ppalka@redhat.com>
1119         PR libstdc++/104858
1120         * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
1121         __first twice at the start.
1122         * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
1124 2022-04-15  Patrick Palka  <ppalka@redhat.com>
1126         * include/std/charconv (__from_chars_alnum_to_val_table): Define.
1127         (__from_chars_alnum_to_val): Define.
1128         (__from_chars_binary): Rename to ...
1129         (__from_chars_pow2_base): ... this.  Generalize to handle any
1130         power-of-two base using __from_chars_alnum_to_val.
1131         (__from_chars_digit): Optimize digit recognition to a single
1132         test instead of two tests.  Use [[__unlikely___]] attribute.
1133         (__from_chars_alpha_to_num): Remove.
1134         (__from_chars_alnum): Use __from_chars_alnum_to_val.  Use a
1135         nested loop for the overflow case.  Maintain a lower bound
1136         on the number of available bits in the result and use it to
1137         omit the overflow check.
1138         (from_chars): Adjust appropriately.
1139         * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
1140         (__floating_from_chars_hex): Use __from_chars_alnum_to_val
1141         to recognize a hex digit instead.
1143 2022-04-14  Palmer Dabbelt  <palmer@rivosinc.com>
1145         * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
1146         for RISC-V.
1147         * configure: Regenerate.
1149 2022-04-14  Jonathan Wakely  <jwakely@redhat.com>
1151         * doc/xml/manual/intro.xml: Fix comment.
1153 2022-04-14  Jonathan Wakely  <jwakely@redhat.com>
1155         * include/precompiled/stdc++.h: Include <stacktrace> and
1156         <stdatomic.h> for C++23.
1158 2022-04-14  Jonathan Wakely  <jwakely@redhat.com>
1160         PR libstdc++/105269
1161         * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
1162         Define.
1163         * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
1164         Define.
1165         * include/std/optional (__cpp_lib_optional): Define new value
1166         for C++23.
1167         (__cpp_lib_monadic_optional): Remove.
1168         * include/std/version (__cpp_lib_constexpr_vector): Define.
1169         (__cpp_lib_stdatomic_h): Define.
1170         (__cpp_lib_optional): Define new value for C++23.
1171         (__cpp_lib_monadic_optional): Remove.
1172         * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
1173         * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
1174         * testsuite/20_util/optional/version.cc: Likewise.
1175         * testsuite/23_containers/vector/cons/constexpr.cc: Check
1176         feature test macro.
1177         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1178         Likewise.
1179         * testsuite/20_util/optional/monadic/version.cc: Removed.
1180         * testsuite/23_containers/vector/requirements/version.cc: New test.
1181         * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
1183 2022-04-12  Jonathan Wakely  <jwakely@redhat.com>
1185         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
1186         * config.h.in: Regenerate.
1187         * configure: Regenerate.
1189 2022-04-12  Jonathan Wakely  <jwakely@redhat.com>
1191         * include/std/stacktrace (basic_stacktrace::current): Reallocate
1192         a smaller container if the unused capacity is larger than the
1193         used size.
1195 2022-04-12  Jonathan Wakely  <jwakely@redhat.com>
1197         * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
1198         or _Impl::_M_assign to initialize elements in allocated storage.
1199         (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
1200         _Impl::_M_destroy.
1201         (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
1202         (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
1203         function.
1204         (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
1205         new element using allocator.
1206         (basic_stacktrace::_Impl::_M_clone): New function.
1207         (basic_stacktrace::_Impl::_M_xclone): New function.
1208         (basic_stacktrace::_Impl::_M_assign): New function.
1210 2022-04-12  Jonathan Wakely  <jwakely@redhat.com>
1212         * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1213         Use nothrow new instead of try block for std::allocator.
1214         (basic_stacktrace::_Impl::_M_deallocate): Use delete for
1215         std::allocator.
1217 2022-04-12  Jonathan Wakely  <jwakely@redhat.com>
1219         * include/std/stacktrace (basic_stacktrace::current): Replace
1220         calls to _M_reserve and _S_curr_cb with call to _M_prepare.
1221         Check return value of backtrace_simple when max depth given.
1222         (basic_stacktrace::_M_reserve): Remove.
1223         (basic_stacktrace::_S_curr_cb): Remove.
1224         (basic_stacktrace::_M_prepare(size_type)): New function to
1225         reserve initial capacity and return callback.
1226         (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
1227         and remove redundant zeroing of _M_frames and _M_capacity.
1228         (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
1229         attribute. Assign _Impl instead of swapping.
1230         * testsuite/19_diagnostics/stacktrace/current.cc: New test.
1232 2022-04-11  Jonathan Wakely  <jwakely@redhat.com>
1234         * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1235         Change [[unlikely]] attribute to [[likely]].
1237 2022-04-11  Jonathan Wakely  <jwakely@redhat.com>
1239         PR libstdc++/105031
1240         * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
1241         Fix allocator usage in constructors.
1242         (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
1243         try to reallocate using const allocator.
1244         (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
1245         if-constexpr with non-constant condition. Do not allocate new
1246         storage if allocator propagates. Do not set _M_size if
1247         allocation fails.
1248         (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
1249         assertion that non-propagating allocators are equal.
1250         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
1252 2022-04-11  Jonathan Wakely  <jwakely@redhat.com>
1254         * include/std/stacktrace (basic_stacktrace::current): Duplicate
1255         implementation into each overload. Add noinline attribute and
1256         skip current frame.
1257         (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
1258         (basic_stacktrace::_S_curr_cb()): New function defining lambda.
1259         (basic_stacktrace::_Impl::_S_max_size): New function defining
1260         maximum size in terms of allocator and size_type.
1261         (basic_stacktrace::_Impl::_M_allocate): Check against
1262         max_size().
1263         * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
1264         for non-constexpr checks. Check line number is correct.
1266 2022-04-11  Jonathan Wakely  <jwakely@redhat.com>
1268         * testsuite/20_util/stacktrace/entry.cc: Moved to...
1269         * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
1270         * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
1271         * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
1272         * testsuite/20_util/stacktrace/version.cc: Moved to...
1273         * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
1275 2022-04-11  Jonathan Wakely  <jwakely@redhat.com>
1277         * include/experimental/bits/fs_path.h (path): Define special
1278         members after path::_Cmpt is complete.
1280 2022-04-08  Jonathan Wakely  <jwakely@redhat.com>
1282         PR libstdc++/105153
1283         * include/std/expected
1284         (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
1285         * testsuite/20_util/expected/cons.cc: Check constructor.
1287 2022-04-08  Jonathan Wakely  <jwakely@redhat.com>
1289         PR libstdc++/105154
1290         * include/std/expected (expected<void, E>::swap): Set
1291         _M_has_value to false for objects that previously had a value.
1292         * testsuite/20_util/expected/swap.cc: Fix test to check void
1293         specialization.
1295 2022-04-08  Jonathan Wakely  <jwakely@redhat.com>
1297         PR libstdc++/105146
1298         * include/std/expected (bad_expected_access): Move constructor
1299         parameter.
1300         * testsuite/20_util/expected/bad.cc: New test.
1302 2022-04-07  Hans-Peter Nilsson  <hp@axis.com>
1304         * testsuite/20_util/expected/requirements.cc: Correct minimal-size
1305         test.
1307 2022-04-02  Jakub Jelinek  <jakub@redhat.com>
1309         PR libstdc++/105128
1310         * include/std/source_location (std::source_location::__impl): Move
1311         definition before using __builtin_ret_type.
1313 2022-04-01  Jonathan Wakely  <jwakely@redhat.com>
1315         * include/std/utility (unreachable): Define for C++23.
1316         * include/std/version (__cpp_lib_unreachable): Define.
1317         * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
1318         arguments. Handle only the function being given.
1319         * testsuite/20_util/unreachable/1.cc: New test.
1320         * testsuite/20_util/unreachable/version.cc: New test.
1322 2022-04-01  Jonathan Wakely  <jwakely@redhat.com>
1324         * include/experimental/bits/fs_fwd.h (copy_file): Remove
1325         incorrect noexcept from declaration.
1326         * include/experimental/bits/fs_path.h (path::begin, path::end):
1327         Add noexcept to declarations, to match definitions.
1329 2022-04-01  Timm Bäder  <tbaeder@redhat.com>
1331         * include/bits/fs_ops.h: Fix filename in Doxygen comment.
1332         * include/experimental/bits/fs_ops.h: Likewise.
1334 2022-03-31  Jonathan Wakely  <jwakely@redhat.com>
1336         * libsupc++/new_opa.cc (aligned_alloc): Add comment.
1338 2022-03-29  Jonathan Wakely  <jwakely@redhat.com>
1340         * testsuite/18_support/exception/38732.cc: Disable for C++23.
1341         * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
1342         * testsuite/18_support/unexpected_handler.cc: Likewise.
1344 2022-03-29  Jonathan Wakely  <jwakely@redhat.com>
1346         * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
1347         static data members for _Fp_fmt enumerators.
1349 2022-03-29  Jonathan Wakely  <jwakely@redhat.com>
1351         * include/std/version (__cpp_lib_variant): Fix conditions to
1352         match <variant>.
1353         (__cpp_lib_expected): Fix condition to match <expected>.
1355 2022-03-28  Jonathan Wakely  <jwakely@redhat.com>
1357         * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
1358         * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1359         * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
1360         * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
1361         * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
1362         * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
1363         * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
1364         * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
1366 2022-03-27  Jonathan Wakely  <jwakely@redhat.com>
1368         * doc/doxygen/user.cfg.in: Add new header.
1369         * include/Makefile.am: Likewise.
1370         * include/Makefile.in: Regenerate.
1371         * include/precompiled/stdc++.h: Add new header.
1372         * include/std/version (__cpp_lib_expected): Define.
1373         * libsupc++/exception [__cplusplus > 202002] (unexpected)
1374         (unexpected_handler, set_unexpected): Do not declare for C++23.
1375         * include/std/expected: New file.
1376         * testsuite/20_util/expected/assign.cc: New test.
1377         * testsuite/20_util/expected/cons.cc: New test.
1378         * testsuite/20_util/expected/illformed_neg.cc: New test.
1379         * testsuite/20_util/expected/observers.cc: New test.
1380         * testsuite/20_util/expected/requirements.cc: New test.
1381         * testsuite/20_util/expected/swap.cc: New test.
1382         * testsuite/20_util/expected/synopsis.cc: New test.
1383         * testsuite/20_util/expected/unexpected.cc: New test.
1384         * testsuite/20_util/expected/version.cc: New test.
1386 2022-03-25  Jonathan Wakely  <jwakely@redhat.com>
1388         * include/std/bit (bit_cast, byteswap, endian): Add doxygen
1389         comments.
1391 2022-03-23  Jonathan Wakely  <jwakely@redhat.com>
1393         PR libstdc++/105027
1394         * include/std/bit (bit_cast): Add constraints.
1395         * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
1397 2022-03-23  Jonathan Wakely  <jwakely@redhat.com>
1399         * include/std/version [!_GLIBCXX_HOSTED]
1400         (__cpp_lib_hardware_interference_size): Define for freestanding.
1401         (__cpp_lib_bit_cast): Likewise.
1402         (__cpp_lib_is_layout_compatible): Likewise.
1403         (__cpp_lib_is_pointer_interconvertible): Likewise.
1404         (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
1405         freestanding.
1406         (__cpp_lib_invoke_r): Likewise.
1407         (__cpp_lib_ios_noreplace): Likewise.
1408         (__cpp_lib_monadic_optional): Likewise.
1409         (__cpp_lib_move_only_function): Likewise.
1410         (__cpp_lib_spanstream): Likewise.
1411         (__cpp_lib_stacktrace): Likewise.
1412         (__cpp_lib_string_contains): Likewise.
1413         (__cpp_lib_string_resize_and_overwrite): Likewise.
1414         (__cpp_lib_to_underlying): Likewise.
1416 2022-03-23  Jonathan Wakely  <jwakely@redhat.com>
1418         PR libstdc++/105021
1419         * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
1420         <bits/atomic_wait.h> for freestanding.
1422 2022-03-22  Hans-Peter Nilsson  <hp@axis.com>
1424         * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
1425         Conditionalize call to fesetround.
1427 2022-03-21  Jakub Jelinek  <jakub@redhat.com>
1429         PR libstdc++/104990
1430         * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
1431         isn't overloaded if __clang__ is defined.
1433 2022-03-18  Jonathan Wakely  <jwakely@redhat.com>
1435         PR libstdc++/104242
1436         * include/std/any (any(T&&)): Revert change to constraints.
1437         * testsuite/20_util/any/cons/104242.cc: New test.
1439 2022-03-18  Jonathan Wakely  <jwakely@redhat.com>
1441         PR libstdc++/92546
1442         * include/pstl/glue_algorithm_defs.h: Replace <functional> with
1443         <bits/stl_pair.h>.
1444         * include/pstl/utils.h: Replace <iterator> with <type_traits>.
1445         (__pstl::__internal::__except_handler): Use std::__terminate
1446         instead of std::terminate.
1447         * src/c++17/fs_path.cc: Include <array>.
1448         * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
1449         <functional>.
1450         * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
1451         * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
1452         * testsuite/25_algorithms/equal/constrained.cc: Likewise.
1453         * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
1454         * testsuite/25_algorithms/includes/constrained.cc: Likewise.
1455         * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
1456         * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
1457         * testsuite/25_algorithms/is_permutation/constrained.cc: Include
1458         <iterator>.
1459         * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
1460         <functional>.
1461         * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
1462         Likewise.
1463         * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
1464         Likewise.
1465         * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
1466         Likewise.
1467         * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
1468         Include <array>.
1469         * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
1470         <functional>.
1471         * testsuite/25_algorithms/max/constrained.cc: Likewise.
1472         * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
1473         * testsuite/25_algorithms/min/constrained.cc: Likewise.
1474         * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
1475         * testsuite/25_algorithms/minmax_element/constrained.cc:
1476         Likewise.
1477         * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
1478         * testsuite/25_algorithms/move/93872.cc: Likewise.
1479         * testsuite/25_algorithms/move_backward/93872.cc: Include
1480         <iterator>.
1481         * testsuite/25_algorithms/nth_element/constexpr.cc: Include
1482         <functional>.
1483         * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
1484         * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
1485         Likewise.
1486         * testsuite/25_algorithms/search/constexpr.cc: Likewise.
1487         * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
1488         * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
1489         * testsuite/25_algorithms/set_difference/constrained.cc:
1490         Likewise.
1491         * testsuite/25_algorithms/set_intersection/constexpr.cc:
1492         Likewise.
1493         * testsuite/25_algorithms/set_intersection/constrained.cc:
1494         Likewise.
1495         * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
1496         Likewise.
1497         * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
1498         * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
1499         * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
1500         * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
1501         * testsuite/25_algorithms/transform/constrained.cc: Likewise.
1502         * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
1503         * testsuite/25_algorithms/unique/constrained.cc: Likewise.
1504         * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
1505         * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
1506         * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
1507         * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
1508         * testsuite/std/ranges/adaptors/split.cc: Likewise.
1510 2022-03-17  Jonathan Wakely  <jwakely@redhat.com>
1512         PR libstdc++/92546
1513         * include/bits/fs_path.h (path::make_preferred): Use
1514         handwritten loop instead of std::replace.
1516 2022-03-17  Jonathan Wakely  <jwakely@redhat.com>
1518         PR middle-end/104966
1519         * include/bits/locale_facets_nonio.tcc
1520         (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
1521         make all string copies before any stores to *this.
1523 2022-03-17  Jonathan Wakely  <jwakely@redhat.com>
1525         * testsuite/util/testsuite_character.h: Fix comment.
1527 2022-03-16  Jonathan Wakely  <jwakely@redhat.com>
1529         PR libstdc++/103407
1530         * config/abi/pre/gnu.ver: Make version for std::from_chars
1531         depend on HAVE_USELOCALE macro.
1532         * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
1533         std::from_chars for floating-point types as undesignated if
1534         not found in the baseline symbols file.
1536 2022-03-16  Jonathan Wakely  <jwakely@redhat.com>
1538         * include/std/charconv (__cpp_lib_to_chars): Only define when
1539         both from_chars and to_chars are supported for floating-point
1540         types.
1541         (from_chars, to_chars): Adjust preprocessor conditions guarding
1542         declarations.
1543         * include/std/version (__cpp_lib_to_chars): Adjust condition to
1544         match <charconv> definition.
1545         * src/c++17/floating_from_chars.cc (from_chars_strtod): New
1546         function template.
1547         (from_chars): Simplify preprocessor checks and use
1548         from_chars_strtod when appropriate.
1550 2022-03-14  Jonathan Wakely  <jwakely@redhat.com>
1552         PR libstdc++/104875
1553         * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
1554         hold octets that will be left-shifted.
1556 2022-03-10  Jonathan Wakely  <jwakely@redhat.com>
1558         PR libstdc++/104870
1559         * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
1560         before using fast_float.
1562 2022-03-10  Detlef Vollmann  <dv@vollmann.ch>
1564         PR libstdc++/104866
1565         * include/bits/this_thread_sleep.h: Fix order of #endif and
1566         closing brace of namespace.
1568 2022-03-10  Jonathan Wakely  <jwakely@redhat.com>
1570         * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
1571         Handle NaN.
1573 2022-03-10  Jonathan Wakely  <jwakely@redhat.com>
1575         * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
1576         <=> comparison.
1578 2022-03-09  Patrick Palka  <ppalka@redhat.com>
1580         PR libstdc++/104859
1581         * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
1582         Be explicit when narrowing the shifted effective_mantissa,
1583         since it may have an integer-class type.
1585 2022-03-08  Jonathan Wakely  <jwakely@redhat.com>
1587         * include/bits/uses_allocator_args.h: Remove incorrect copyright
1588         notice.
1590 2022-03-07  Jonathan Wakely  <jwakely@redhat.com>
1592         PR libstdc++/104807
1593         * include/bits/c++config (__terminate, __glibcxx_assert_fail):
1594         Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
1595         (__is_constant_evaluated): Add visibility pragma.
1597 2022-03-07  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>
1599         * config/locale/vxworks/ctype_members.cc: Remove <iostream>
1600           include.
1602 2022-03-05  Jonathan Wakely  <jwakely@redhat.com>
1604         * include/bits/c++config (__glibcxx_assert_fail): Add visibility
1605         attribute.
1606         (__terminate): Likewise.
1608 2022-03-04  Jonathan Wakely  <jwakely@redhat.com>
1610         * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
1611         inside #if condition.
1613 2022-03-03  Jonathan Wakely  <jwakely@redhat.com>
1615         PR libstdc++/104748
1616         * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
1617         constexpr test.
1619 2022-03-03  Jonathan Wakely  <jwakely@redhat.com>
1621         * testsuite/17_intro/names.cc (func): Undef on AIX.
1623 2022-03-03  Jonathan Wakely  <jwakely@redhat.com>
1625         PR libstdc++/96526
1626         * libsupc++/compare (strong_order): Add missing support for
1627         floating-point types.
1628         * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1629         New test.
1631 2022-03-01  Jonathan Wakely  <jwakely@redhat.com>
1633         PR middle-end/103984
1634         * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
1635         default member initializer.
1637 2022-02-24  Jonathan Wakely  <jwakely@redhat.com>
1639         PR libstdc++/104602
1640         * include/std/source_location (source_location::current): Use
1641         deduced type of __builtin_source_location().
1643 2022-02-22  Patrick Palka  <ppalka@redhat.com>
1645         * include/bits/ranges_base.h (__detail::__is_initializer_list):
1646         Define.
1647         (viewable_range): Adjust as per P2415R2.
1648         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1649         * include/std/ranges (owning_view): Define as per P2415R2.
1650         (enable_borrowed_range<owning_view>): Likewise.
1651         (views::__detail::__can_subrange): Replace with ...
1652         (views::__detail::__can_owning_view): ... this.
1653         (views::_All::_S_noexcept): Sync with operator().
1654         (views::_All::operator()): Use owning_view instead of subrange
1655         as per P2415R2.
1656         * include/std/version (__cpp_lib_ranges): Adjust value.
1657         * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
1658         views::all uses owning_view instead of subrange.
1659         (test08): New test.
1660         * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
1661         now that rvalue non-view non-borrowed ranges are viewable.
1662         * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
1664 2022-02-17  Jonathan Wakely  <jwakely@redhat.com>
1666         PR libstdc++/104559
1667         * doc/xml/manual/evolution.xml: Document deprecation.
1668         * doc/html/manual/api.html: Regenerate.
1669         * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
1670         Remove default argument.
1671         (insert(const_iterator)): New overload with deprecated attribute.
1672         * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
1673         New test.
1675 2022-02-17  Jonathan Wakely  <jwakely@redhat.com>
1677         * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
1678         code that call cat->name() on std::error_category objects.
1679         Identify known categories by symbol name and use a hardcoded
1680         name. Print error code values as enumerators where appopriate.
1681         * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
1682         name of custom category. Check io_errc and future_errc errors.
1684 2022-02-15  Jonathan Wakely  <jwakely@redhat.com>
1686         PR libstdc++/104542
1687         * include/bits/uses_allocator_args.h (make_obj_using_allocator)
1688         (uninitialized_construct_using_allocator): Add constexpr.
1689         * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
1690         * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
1692 2022-02-14  Jonathan Wakely  <jwakely@redhat.com>
1694         PR libstdc++/100912
1695         * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
1696         namespace for IEEE128 long double mode.
1697         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
1698         version and export __gnu_cxx_ieee128::__convert_from_v.
1699         * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
1700         Make __ibm128 overload use snprintf directly
1701         * testsuite/util/testsuite_abi.cc: Add new symbol version.
1702         Remove stable IEEE128/LDBL versions.
1704 2022-02-14  Jonathan Wakely  <jwakely@redhat.com>
1706         PR libstdc++/103891
1707         * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
1708         Remove.
1709         * include/std/variant: Check feature test macros instead.
1710         * include/std/version: Likewise.
1712 2022-02-14  Jonathan Wakely  <jwakely@redhat.com>
1714         * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1715         Fix typo.
1717 2022-02-14  Jonathan Wakely  <jwakely@redhat.com>
1719         * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
1720         LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
1722 2022-02-11  Jonathan Wakely  <jwakely@redhat.com>
1724         * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
1725         selector.
1727 2022-02-11  Jonathan Wakely  <jwakely@redhat.com>
1729         * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1730         Ignore -Walloc-larger-than warning.
1731         * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1732         Likewise.
1733         * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
1734         to avoid linker error for __atomic_is_lock_free.
1736 2022-02-10  Thomas Rodgers  <rodgert@appliantology.com>
1738         * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
1739         __waiter_base::_S_do_spin_v): Change memory order from relaxed
1740         to acquire.
1742 2022-02-10  Jonathan Wakely  <jwakely@redhat.com>
1744         * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
1745         using-declaration.
1746         (atomic_fetch_xor_explicit): Likewise.
1747         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
1748         arithmetic and logical operations for atomic_int.
1750 2022-02-10  Jonathan Wakely  <jwakely@redhat.com>
1752         * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
1753         when <dirent.h> is not available.
1754         (_GLIBCXX_HAVE_UNLINKAT):  Likewise.
1756 2022-02-09  Thomas Rodgers  <rodgert@appliantology.com>
1758         PR libstdc++/104442
1759         * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
1760          loop inside do loop so that threads failing the wait, reload
1761          _M_ver.
1763 2022-02-08  Jonathan Wakely  <jwakely@redhat.com>
1765         * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
1766         parameter to _Dir_base&&.
1767         * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
1768         * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
1769         parameter to _Dir_base&&.
1771 2022-02-08  Jonathan Wakely  <jwakely@redhat.com>
1773         * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
1774         checking for CAS on correct word size.
1776 2022-02-08  Jonathan Wakely  <jwakely@redhat.com>
1778         * testsuite/experimental/filesystem/operations/create_directories.cc:
1779         Adjust expected results for Windows.
1781 2022-02-08  Jonathan Wakely  <jwakely@redhat.com>
1783         PR libstdc++/104161
1784         * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
1785         [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
1786         instead of checking for errno values indicating a directory.
1787         * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
1788         logic to non-throwing overload.
1789         (fs::remove_all(const path&, error_code&)): Add comments.
1790         * src/filesystem/ops-common.h: Likewise.
1792 2022-02-04  Jonathan Wakely  <jwakely@redhat.com>
1794         * src/filesystem/dir-common.h (_Dir_base::openat): Change return
1795         type to use portable posix::DIR alias.
1797 2022-02-04  Jonathan Wakely  <jwakely@redhat.com>
1799         * include/c_compatibility/stdatomic.h [__clang__]: Use
1800         #include_next <stdatomic.h>.
1802 2022-02-04  Jonathan Wakely  <jwakely@redhat.com>
1804         * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
1805         noexcept.
1806         (fs::create_directories): Likewise.
1807         (fs::remove_all): Likewise.
1808         * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
1809         (fs::create_directories): Likewise.
1810         (fs::remove_all): Likewise.
1812 2022-02-04  Jonathan Wakely  <jwakely@redhat.com>
1814         PR libstdc++/104161
1815         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
1816         and unlinkat.
1817         * config.h.in: Regenerate.
1818         * configure: Regenerate.
1819         * include/bits/fs_dir.h (recursive_directory_iterator): Declare
1820         remove_all overloads as friends.
1821         (recursive_directory_iterator::__erase): Declare new member
1822         function.
1823         * include/bits/fs_fwd.h (remove, remove_all): Declare.
1824         * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
1825         constructor. Pass file descriptor argument to base constructor.
1826         (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
1827         (_Dir::unlink, _Dir::rmdir): Define new member functions.
1828         (directory_iterator): Pass filename_only argument to _Dir
1829         constructor.
1830         (recursive_directory_iterator::_Dir_stack): Adjust constructor
1831         parameters to take a _Dir rvalue instead of creating one.
1832         (_Dir_stack::orig): Add data member for storing original path.
1833         (_Dir_stack::report_error): Define new member function.
1834         (__directory_iterator_nofollow): Move here from dir-common.h and
1835         fix value to be a power of two.
1836         (__directory_iterator_filename_only): Define new constant.
1837         (recursive_directory_iterator): Construct _Dir object and move
1838         into _M_dirs stack. Pass skip_permission_denied argument to first
1839         advance call.
1840         (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1841         (recursive_directory_iterator::__erase): Define new member
1842         function.
1843         * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
1844         (fs::remove_all): Use new recursive_directory_iterator::__erase
1845         member function.
1846         * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
1847         constructor and use openat to implement nofollow semantics.
1848         (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
1849         Define new member functions.
1850         (__directory_iterator_nofollow): Move to fs_dir.cc.
1851         * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
1852         base constructor.
1853         (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
1854         functions.
1855         (recursive_directory_iterator::_Dir_stack): Adjust constructor
1856         parameters to take a _Dir rvalue instead of creating one.
1857         (recursive_directory_iterator): Check for new nofollow option.
1858         Construct _Dir object and move into _M_dirs stack. Pass
1859         skip_permission_denied argument to first advance call.
1860         (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1861         * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
1863 2022-02-04  Jonathan Wakely  <jwakely@redhat.com>
1865         * include/bits/allocator.h: Qualify std::allocator_traits in
1866         deprecated warnings.
1867         * libsupc++/exception (uncaught_exception): Add suggestion to
1868         deprecated warning.
1870 2022-02-02  Jonathan Wakely  <jwakely@redhat.com>
1872         * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
1873         Add [[maybe_unused]] attribute.
1874         * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
1875         Likewise.
1877 2022-02-02  Jonathan Wakely  <jwakely@redhat.com>
1879         * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
1880         custom comparison function for multiset.
1881         * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
1882         comparison function for set.
1884 2022-02-02  Jonathan Wakely  <jwakely@redhat.com>
1886         * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1887         Change member function to data member of function pointer type.
1889 2022-02-02  Martin Sebor  <msebor@redhat.com>
1891         PR libstdc++/101831
1892         * include/std/array (begin): Declare const member function attribute
1893         const.
1894         (end, rbegin, rend, size, max_size, empty, data): Same.
1895         * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
1896         * testsuite/23_containers/array/capacity/max_size.cc: Same.
1897         * testsuite/23_containers/array/capacity/size.cc: Same.
1898         * testsuite/23_containers/array/iterators/begin_end.cc: New test.
1900 2022-02-02  Jonathan Wakely  <jwakely@redhat.com>
1902         * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
1903         autoconf macro to check whether d_type is present.
1904         * testsuite/experimental/filesystem/iterators/error_reporting.cc:
1905         Likewise.
1907 2022-02-01  Jonathan Wakely  <jwakely@redhat.com>
1909         * testsuite/27_io/filesystem/iterators/97731.cc: New test.
1910         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1911         Check follow_directory_symlink option.
1912         * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1913         Likewise.
1915 2022-02-01  Jonathan Wakely  <jwakely@redhat.com>
1917         * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
1918         Reset state to past-the-end iterator on error.
1919         (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
1920         (fs::recursive_directory_iterator::pop()): Check _M_dirs before
1921         it might get reset.
1922         * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
1923         for the TS implementation.
1924         * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
1925         * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
1927 2022-02-01  Jonathan Wakely  <jwakely@redhat.com>
1929         * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
1931 2022-02-01  Jonathan Wakely  <jwakely@redhat.com>
1933         PR libstdc++/104301
1934         * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
1935         for stdio_pure and stdio_posix options.
1936         * configure: Regenerate.
1938 2022-02-01  Thomas Rodgers  <rodgert@appliantology.com>
1940         * include/bits/atomic_wait.h: Change memory order from
1941         Acquire/Release with relaxed loads to SeqCst+Release for
1942         accesses to the waiter's count.
1944 2022-01-31  Martin Liska  <mliska@suse.cz>
1946         * acinclude.m4: Detect *_ld_is_mold and use it.
1947         * configure: Regenerate.
1949 2022-01-30  Hans-Peter Nilsson  <hp@axis.com>
1951         * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
1952         simulator targets.
1953         * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
1955 2022-01-27  Jonathan Wakely  <jwakely@redhat.com>
1957         PR libstdc++/100516
1958         * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
1959         Add __builtin_unreachable to loop.
1960         * testsuite/23_containers/deque/100516.cc: New test.
1962 2022-01-27  Jonathan Wakely  <jwakely@redhat.com>
1964         * include/bits/ranges_base.h (ranges::advance): Avoid signed
1965         overflow. Do nothing if already equal to desired result.
1966         * testsuite/24_iterators/range_operations/advance_overflow.cc:
1967         New test.
1969 2022-01-27  Martin Liska  <mliska@suse.cz>
1971         PR libstdc++/104259
1972         * acinclude.m4: Fix typo.
1973         * configure: Regenerate.
1975 2022-01-25  Jonathan Wakely  <jwakely@redhat.com>
1977         PR libstdc++/104019
1978         * include/bits/istream.tcc (basic_istream::sentry): Add braces
1979         around try-block.
1980         * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
1981         Add pragmas to disable bogus warnings from PR 61596.
1983 2022-01-25  Jonathan Wakely  <jwakely@redhat.com>
1985         PR libstdc++/104217
1986         * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
1987         * src/filesystem/dir.cc (_GNU_SOURCE): Define.
1988         * src/filesystem/ops.cc (_GNU_SOURCE): Define.
1990 2022-01-25  Jonathan Wakely  <jwakely@redhat.com>
1992         PR libstdc++/104161
1993         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
1994         fdopendir.
1995         * config.h.in: Regenerate.
1996         * configure: Regenerate.
1997         * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
1998         and pass it to base class constructor.
1999         (directory_iterator): Pass nofollow flag to _Dir constructor.
2000         (fs::recursive_directory_iterator::increment): Likewise.
2001         * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
2002         directory_iterator constructor. Move error check outside loop.
2003         * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
2004         constructor and when it's set use ::open with O_NOFOLLOW and
2005         O_DIRECTORY.
2006         * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
2007         and pass it to base class constructor.
2008         (directory_iterator): Pass nofollow flag to _Dir constructor.
2009         (fs::recursive_directory_iterator::increment): Likewise.
2010         * src/filesystem/ops.cc (remove_all): Use nofollow option for
2011         directory_iterator constructor. Move error check outside loop.
2013 2022-01-23  Jonathan Wakely  <jwakely@redhat.com>
2015         PR libstdc++/104032
2016         * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
2017         mem-initializer for _M_buf.
2018         (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
2019         member access.
2020         * testsuite/27_io/spanstream/2.cc: New test.
2022 2022-01-23  Jonathan Wakely  <jwakely@redhat.com>
2024         * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
2025         Define macro for case where std::from_chars is implemented in
2026         terms of strtod, strtof or strtold.
2027         (buffer_resource, valid_fmt, find_end_of_float, pattern)
2028         (from_chars_impl, make_result, reserve_string): Do not define
2029         unless USE_STRTOD_FOR_FROM_CHARS is defined.
2030         (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
2031         USE_STRTOD_FOR_FROM_CHARS is defined, instead of
2032         _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
2033         is binary64.
2035 2022-01-23  Jonathan Wakely  <jwakely@redhat.com>
2037         PR libstdc++/104174
2038         * include/bits/hashtable_policy.h (_Map_base): Add partial
2039         specialization for maps with const key types.
2040         * testsuite/23_containers/unordered_map/104174.cc: New test.
2042 2022-01-23  Jonathan Wakely  <jwakely@redhat.com>
2044         PR libstdc++/104019
2045         * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
2046         Set members to zero without type punning.
2048 2022-01-21  Jonathan Wakely  <jwakely@redhat.com>
2050         * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
2052 2022-01-21  Jonathan Wakely  <jwakely@redhat.com>
2054         PR libstdc++/87193
2055         PR libstdc++/104019
2056         * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
2057         Define as type long.
2058         * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
2059         Likewise.
2060         * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
2061         * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
2062         (__cpp_lib_chrono_udls): Likewise.
2063         * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
2064         * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
2065         * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
2066         Likewise.
2067         * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
2068         Likewise.
2069         * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
2070         (__cpp_lib_sample): Likewise.
2071         * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
2072         Likewise.
2073         * include/bits/stl_function.h (__cpp_lib_transparent_operators):
2074         Likewise.
2075         * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
2076         Likewise.
2077         * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
2078         Likewise.
2079         * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
2080         Likewise.
2081         * include/bits/unique_ptr.h (__cpp_lib_make_unique):
2082         Likewise.
2083         * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
2084         Likewise.
2085         * include/c_global/cmath (__cpp_lib_hypot): Likewise.
2086         * include/c_global/cstddef (__cpp_lib_byte): Likewise.
2087         * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
2088         Likewise.
2089         * include/std/complex (__cpp_lib_complex_udls): Likewise.
2090         * include/std/filesystem (__cpp_lib_filesystem): Likewise.
2091         * include/std/functional (__cpp_lib_not_fn): Likewise.
2092         (__cpp_lib_boyer_moore_searcher): Likewise.
2093         * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
2094         * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
2095         * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
2096         (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
2097         * include/std/tuple (__cpp_lib_apply): Likewise.
2098         (__cpp_lib_make_from_tuple): Likewise.
2099         * include/std/type_traits (__cpp_lib_integral_constant_callable)
2100         (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
2101         (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
2102         (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
2103         (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
2104         (__cpp_lib_has_unique_object_representations)
2105         (__cpp_lib_is_aggregate): Likewise.
2106         * include/std/version: Likewise.
2107         * libsupc++/new (__cpp_lib_launder): Likewise.
2109 2022-01-21  Jonathan Wakely  <jwakely@redhat.com>
2111         * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
2112         condition for C++17 definition.
2114 2022-01-21  Jonathan Wakely  <jwakely@redhat.com>
2116         * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
2117         Add constexpr.
2118         (_Sp_atomic::_M_ptr): Add default member-initializer.
2119         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2120         Check constant initialization.
2121         * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2123 2022-01-20  Jonathan Wakely  <jwakely@redhat.com>
2125         * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
2126         equivalent attribute for Clang.
2127         * src/c++11/future.cc (__constinit): Likewise.
2128         * src/c++11/system_error.cc (__constinit): Likewise.
2129         * src/c++17/memory_resource.cc (__constinit): Likewise.
2131 2022-01-20  Jonathan Wakely  <jwakely@redhat.com>
2133         * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
2134         src/libbacktrace/.libs to LDFLAGS if those directories exist.
2136 2022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2138         * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
2139         from default flags.
2140         * configure: Regenerate.
2142 2022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2144         PR libstdc++/104123
2145         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
2146         <stddef.h>.
2148 2022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2150         * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
2151         linker search paths.
2152         * src/Makefile.am: Fix src/debug/libbacktrace build.
2153         * src/Makefile.in: Regenerate.
2154         * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
2155         variable. Use symlinks for the source files.
2156         * src/libbacktrace/Makefile.in: Regenerate.
2158 2022-01-19  Matthias Kretz  <m.kretz@gsi.de>
2160         * include/experimental/bits/simd.h (__floating_point_flags): Do
2161         not rely on math_errhandling to expand to a constant expression.
2163 2022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2165         * doc/xml/manual/evolution.xml: Document deprecations.
2166         * doc/xml/manual/status_cxx2017.xml: Update status.
2167         * doc/html/*: Regenerate.
2169 2022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2171         * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
2172         _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
2174 2022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2176         * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
2177         function.
2179 2022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2181         PR libstdc++/104101
2182         * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
2183         Only use __thread_relax if __cpp_lib_atomic_wait is defined.
2185 2022-01-18  Jonathan Wakely  <jwakely@redhat.com>
2187         PR libstdc++/104099
2188         * include/bits/basic_string.h (basic_string(nullptr_t)): Only
2189         define for C++23.
2190         (operator=(nullptr_t)): Likewise.
2191         * include/bits/cow_string.h: Likewise.
2192         * include/std/string_view (basic_string_view(nullptr_t)):
2193         Likewise.
2194         * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
2195         expected error. Add examples that become ill-formed in C++23.
2196         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2197         Adjust expected errors.
2198         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2199         Likewise.
2201 2022-01-18  Jonathan Wakely  <jwakely@redhat.com>
2203         PR libstdc++/104098
2204         * include/bits/stl_iterator.h (reverse_iterator): Check
2205         __cpp_lib_concepts instead of __cplusplus.
2207 2022-01-18  Jonathan Wakely  <jwakely@redhat.com>
2209         PR libstdc++/101124
2210         * include/bits/stl_pair.h (pair): Adjust constraints on
2211         deprecated constructors accepting literal zero as null pointer
2212         constant. Improve wording of deprecated attribute.
2213         * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
2214         constructors do not cause ambiguities for copyable types.
2216 2022-01-18  Jonathan Wakely  <jwakely@redhat.com>
2218         * include/bits/stl_function.h (ptr_fun): Fix suggestion for
2219         non-deprecated alternative.
2221 2022-01-18  Tom Honermann  <tom@honermann.net>
2223         * acinclude.m4: Define config macros if uchar.h provides
2224         c8rtomb() and mbrtoc8().
2225         * config.h.in: Regenerate.
2226         * configure: Regenerate.
2227         * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
2228         * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
2229         * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
2230         * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2231         New test.
2232         * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
2233         New test.
2235 2022-01-18  Jonathan Wakely  <jwakely@redhat.com>
2237         * include/Makefile.am: Install new header.
2238         * include/Makefile.in: Regenerate.
2239         * include/c_compatibility/stdatomic.h: New file.
2240         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
2242 2022-01-18  Jonathan Wakely  <jwakely@redhat.com>
2244         PR libstdc++/104080
2245         * src/c++17/fast_float/LOCAL_PATCHES: Update.
2246         * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
2247         Define in terms of __BYTE_ORDER__.
2249 2022-01-18  Jonathan Wakely  <jwakely@redhat.com>
2251         PR libstdc++/104080
2252         * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
2253         * src/c++17/fast_float/fast_float.h (round): Use explicit
2254         template argument list for std::min.
2256 2022-01-18  Jonathan Wakely  <jwakely@redhat.com>
2258         * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
2259         * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
2260         upcoming release.
2261         * doc/html/manual/status.html: Regenerate.
2263 2022-01-18  Jonathan Wakely  <jwakely@redhat.com>
2265         * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
2266         comments.
2267         * configure: Regenerate.
2269 2022-01-17  Patrick Palka  <ppalka@redhat.com>
2271         * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
2272         Conditionally define, and use it to conditionally include
2273         fast_float.
2274         (from_chars): Use fast_float for float and double when
2275         USE_LIB_FAST_FLOAT.
2277 2022-01-17  Patrick Palka  <ppalka@redhat.com>
2279         * src/c++17/fast_float/LOCAL_PATCHES: Update.
2280         * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
2281         case of over/underflow, return errc::result_out_of_range and don't
2282         modify 'value'.
2284 2022-01-17  Patrick Palka  <ppalka@redhat.com>
2286         * src/c++17/fast_float/LOCAL_PATCHES: Update.
2287         * src/c++17/fast_float/fast_float.h: Apply local modifications.
2289 2022-01-17  Patrick Palka  <ppalka@redhat.com>
2291         * src/c++17/fast_float/LOCAL_PATCHES: New file.
2292         * src/c++17/fast_float/MERGE: New file.
2293         * src/c++17/fast_float/README.md: New file, copied from the
2294         fast_float repository.
2295         * src/c++17/fast_float/fast_float.h: New file, an amalgamation
2296         of the fast_float library.
2298 2022-01-17  Patrick Palka  <ppalka@redhat.com>
2300         * src/c++17/floating_from_chars.cc: Include <bit>.
2301         (ascii_to_hexit, starts_with_ci): Conditionally define.
2302         (__floating_from_chars_hex):  Conditionally define.
2303         (from_chars): Use __floating_from_chars_hex for
2304         chars_format::hex parsing of binary32/64 float/double.
2305         (testsuite/20_util/from_chars/7.cc): New test.
2306         * testsuite/20_util/from_chars/7.cc: New file.
2308 2022-01-17  Jonathan Wakely  <jwakely@redhat.com>
2310         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
2311         * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
2312         * include/Makefile.am: Add new header.
2313         * include/Makefile.in: Regenerate.
2314         * include/std/stacktrace: New header.
2315         * include/std/version (__cpp_lib_stacktrace): Define.
2316         * Makefile.in: Regenerate.
2317         * config.h.in: Regenerate.
2318         * configure: Regenerate.
2319         * doc/Makefile.in: Regenerate.
2320         * libsupc++/Makefile.in: Regenerate.
2321         * po/Makefile.in: Regenerate.
2322         * python/Makefile.in: Regenerate.
2323         * src/Makefile.am: Regenerate.
2324         * src/Makefile.in: Regenerate.
2325         * src/c++11/Makefile.in: Regenerate.
2326         * src/c++17/Makefile.in: Regenerate.
2327         * src/c++20/Makefile.in: Regenerate.
2328         * src/c++98/Makefile.in: Regenerate.
2329         * src/filesystem/Makefile.in: Regenerate.
2330         * testsuite/Makefile.in: Regenerate.
2331         * src/libbacktrace/Makefile.am: New file.
2332         * src/libbacktrace/Makefile.in: New file.
2333         * src/libbacktrace/backtrace-rename.h: New file.
2334         * src/libbacktrace/backtrace-supported.h.in: New file.
2335         * src/libbacktrace/config.h.in: New file.
2336         * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2337         New proc.
2338         * testsuite/20_util/stacktrace/entry.cc: New test.
2339         * testsuite/20_util/stacktrace/synopsis.cc: New test.
2340         * testsuite/20_util/stacktrace/version.cc: New test.
2342 2022-01-17  Jonathan Wakely  <jwakely@redhat.com>
2344         * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
2345         names.
2346         * doc/html/manual/status.html: Regenerate.
2348 2022-01-17  Jonathan Wakely  <jwakely@redhat.com>
2350         PR libstdc++/103650
2351         * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
2352         * include/Makefile.in: Regenerate.
2353         * testsuite/17_intro/headers/c++1998/103650.cc: New test.
2355 2022-01-17  Matthias Kretz  <m.kretz@gsi.de>
2357         * include/experimental/bits/simd.h (__floating_point_flags): Do
2358         not rely on the presence of the math_errhandling macro.
2360 2022-01-17  Jonathan Wakely  <jwakely@redhat.com>
2362         * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
2363         to qualified-id for dependent type.
2365 2022-01-17  Jonathan Wakely  <jwakely@redhat.com>
2367         * doc/xml/manual/status_cxx2020.xml: Update.
2368         * doc/html/manual/status.html: Regenerate.
2370 2022-01-17  Jonathan Wakely  <jwakely@redhat.com>
2371             Thomas Rodgers  <trodgers@redhat.com>
2373         * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
2374         New macro.
2375         (_Sp_atomic): New class template.
2376         (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
2377         specializations.
2378         * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
2379         (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
2380         * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
2381         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
2382         test.
2383         * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
2385 2022-01-15  Matthias Kretz  <m.kretz@gsi.de>
2387         * include/experimental/bits/simd.h: Move feature detection bools
2388         and add __have_avx512bitalg, __have_avx512vbmi2,
2389         __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
2390         __have_avx512vnni, __have_avx512vpopcntdq.
2391         (__detail::__machine_flags): New function which returns a unique
2392         uint64 depending on relevant -m and -f flags.
2393         (__detail::__odr_helper): New type alias for either an anonymous
2394         type or a type specialized with the __machine_flags number.
2395         (_SimdIntOperators): Change template parameters from _Impl to
2396         _Tp, _Abi because _Impl now has an __odr_helper parameter which
2397         may be _OdrEnforcer from the anonymous namespace, which makes
2398         for a bad base class.
2399         (many): Either add __odr_helper template parameter or mark as
2400         always_inline.
2401         * include/experimental/bits/simd_detail.h: Add defines for
2402         AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
2403         AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
2404         * include/experimental/bits/simd_builtin.h: Add __odr_helper
2405         template parameter or mark as always_inline.
2406         * include/experimental/bits/simd_fixed_size.h: Ditto.
2407         * include/experimental/bits/simd_math.h: Ditto.
2408         * include/experimental/bits/simd_scalar.h: Ditto.
2409         * include/experimental/bits/simd_neon.h: Add __odr_helper
2410         template parameter.
2411         * include/experimental/bits/simd_ppc.h: Ditto.
2412         * include/experimental/bits/simd_x86.h: Ditto.
2414 2022-01-14  Uroš Bizjak  <ubizjak@gmail.com>
2416         * testsuite/22_locale/numpunct/members/char/3.cc:
2417         Require pt_PT locale instead of nl_NL.
2418         (test02): Use pt_PT locale instead of nl_NL.
2420 2022-01-14  Jonathan Wakely  <jwakely@redhat.com>
2422         PR libstdc++/91260
2423         PR libstdc++/91383
2424         PR libstdc++/95065
2425         * include/backward/binders.h (bind1st, bind2nd): Add deprecated
2426         attribute.
2427         * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
2428         Disable deprecated warnings for base classes.
2429         (_Reference_wrapper_base): Likewise.
2430         * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
2431         * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
2432         * include/bits/stl_function.h (unary_function, binary_function):
2433         Add deprecated attribute.
2434         (unary_negate, not1, binary_negate, not2, ptr_fun)
2435         (pointer_to_unary_function, pointer_to_binary_function)
2436         (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
2437         (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
2438         (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
2439         attributes.
2440         * include/bits/stl_iterator.h: Disable deprecated warnings for
2441         std::iterator base classes.
2442         * include/bits/stl_iterator_base_types.h (iterator): Add
2443         deprecated attribute.
2444         * include/bits/stl_map.h (map::value_compare): Disable
2445         deprecated warnings for base class.
2446         * include/bits/stl_multimap.h (multimap::value_compare):
2447         Likewise.
2448         * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
2449         Add deprecated attribute.
2450         * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
2451         * include/bits/stream_iterator.h: Disable deprecated warnings.
2452         * include/bits/streambuf_iterator.h: Likewise.
2453         * include/ext/bitmap_allocator.h: Remove unary_function base
2454         classes.
2455         * include/ext/functional: Disable deprecated warnings.
2456         * include/ext/rope: Likewise.
2457         * include/ext/throw_allocator.h: Likewise.
2458         * include/std/type_traits (result_of): Add deprecated attribute.
2459         * include/tr1/functional: Disable deprecated warnings.
2460         * include/tr1/functional_hash.h: Likewise.
2461         * testsuite/20_util/function_objects/binders/1.cc: Add
2462         -Wno-disable-deprecations.
2463         * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
2464         * testsuite/20_util/function_objects/constexpr.cc: Add
2465         dg-warning.
2466         * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
2467         * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
2468         * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
2469         Likewise.
2470         * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
2471         Likewise.
2472         * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
2473         Likewise.
2474         * testsuite/20_util/reference_wrapper/24803.cc:
2475         Likewise.
2476         * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
2477         C++20 and check for absence of nested types.
2478         * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
2479         std::binary_function base class.
2480         * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
2481         * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
2482         std::iterator base class.
2483         * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
2484         Likewise.
2485         * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
2486         Likewise.
2487         * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
2488         Likewise.
2489         * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
2490         Likewise.
2491         * testsuite/24_iterators/istreambuf_iterator/92285.cc:
2492         Likewise.
2493         * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
2494         Likewise.
2495         * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
2496         Likewise.
2497         * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
2498         Likewise.
2499         * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
2500         Likewise.
2501         * testsuite/25_algorithms/copy/34595.cc:
2502         Likewise.
2503         * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
2504         base class.
2505         * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
2506         Disable deprecated warnings.
2507         * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
2508         Likewise.
2509         * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
2510         Likewise.
2511         * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
2512         Likewise.
2513         * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
2514         Likewise.
2515         * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
2516         Likewise.
2517         * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
2518         Likewise.
2519         * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
2520         Likewise.
2521         * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
2522         Likewise.
2523         * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
2524         Likewise.
2525         * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
2526         Likewise.
2527         * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
2528         Likewise.
2529         * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
2530         Likewise.
2531         * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
2532         Likewise.
2533         * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
2534         Likewise.
2535         * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
2536         Likewise.
2537         * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
2538         Likewise.
2539         * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
2540         Likewise.
2541         * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
2542         Likewise.
2543         * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
2544         Likewise.
2545         * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
2546         Likewise.
2547         * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
2548         Likewise.
2549         * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
2550         Likewise.
2551         * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
2552         Likewise.
2553         * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
2554         Likewise.
2555         * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
2556         Likewise.
2557         * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
2558         Likewise.
2559         * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
2560         Likewise.
2561         * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
2562         Likewise.
2563         * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
2564         Likewise.
2565         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2566         Likewise.
2567         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2568         Likewise.
2569         * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
2570         Likewise.
2571         * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
2572         Likewise.
2573         * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
2574         Likewise.
2575         * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
2576         Likewise.
2577         * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
2578         Likewise.
2579         * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
2580         Likewise.
2581         * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
2582         Likewise.
2583         * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
2584         Likewise.
2585         * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
2586         Likewise.
2587         * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
2588         Likewise.
2589         * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
2590         Likewise.
2591         * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
2592         Likewise.
2593         * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
2594         Likewise.
2595         * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
2596         Likewise.
2597         * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
2598         Likewise.
2599         * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
2600         Likewise.
2601         * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
2602         dg-warning.
2603         * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2604         Likewise.
2605         * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2606         Likewise.
2607         * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
2608         Disable deprecated warnings.
2609         * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
2610         Likewise.
2611         * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
2612         std::unary_function base classes.
2613         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2614         Remove std::iterator base classes.
2616 2022-01-14  Jonathan Wakely  <jwakely@redhat.com>
2618         * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
2619         Correct type of macro value.
2620         (shared_ptr): Add additional friend declarations.
2621         (make_shared, allocate_shared): Constrain existing overloads and
2622         remove static_assert.
2623         * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
2624         New macro.
2625         (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
2626         specialization for use with make_shared_for_overwrite.
2627         (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2628         (_Sp_counted_array_base): New class template.
2629         (_Sp_counted_array): New class template.
2630         (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
2631         New constructor for allocating shared arrays.
2632         (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
2633         * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
2634         type.
2635         (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2636         (__cpp_lib_smart_ptr_for_overwrite): New macro.
2637         * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
2638         expected errors.
2639         * testsuite/20_util/shared_ptr/creation/array.cc: New test.
2640         * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
2641         * testsuite/20_util/shared_ptr/creation/version.cc: New test.
2642         * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
2643         feature test macro. Test non-trivial default-initialization.
2645 2022-01-14  Jonathan Wakely  <jwakely@redhat.com>
2647         * include/bits/stl_construct.h (_Construct, _Construct_novalue):
2648         Also cast away cv-qualifiers when converting pointer to void.
2649         * testsuite/20_util/allocator/void.cc: Test construct function
2650         with cv-qualified types.
2652 2022-01-14  Jonathan Wakely  <jwakely@redhat.com>
2654         PR libstdc++/103992
2655         * include/bits/stl_iterator.h (common_iterator): Use
2656         std::construct_at instead of placement new.
2657         * testsuite/24_iterators/common_iterator/1.cc: Check copy
2658         construction is usable in constant expressions.
2660 2022-01-14  Jonathan Wakely  <jwakely@redhat.com>
2662         * doc/xml/manual/status_cxx2011.xml: Document new tokens
2663         accepted by std::random_device constructor.
2664         * doc/html/manual/status.html: Regenerate.
2666 2022-01-12  Patrick Palka  <ppalka@redhat.com>
2668         * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
2669         directive.
2671 2022-01-12  Patrick Palka  <ppalka@redhat.com>
2673         PR libstdc++/103955
2674         * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
2675         Track the excess precision separately from the effective
2676         precision.  Avoid overflow in bounds check by splitting it into
2677         two checks.
2678         (__floating_to_chars_precision): Avoid overflow in bounds checks
2679         similarly.
2680         * testsuite/20_util/to_chars/103955.cc: New test.
2682 2022-01-11  Jonathan Wakely  <jwakely@redhat.com>
2684         PR libstdc++/103726
2685         * include/Makefile.am: Install <source_location> for
2686         freestanding.
2687         * include/Makefile.in: Regenerate.
2688         * include/std/version (__cpp_lib_source_location): Define for
2689         freestanding.
2691 2022-01-11  Jonathan Wakely  <jwakely@redhat.com>
2693         * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
2694         Add neoxcept (LWG 3593).
2696 2022-01-11  Jonathan Wakely  <jwakely@redhat.com>
2698         * include/std/ranges (ranges::__detail::__box): Add constexpr to
2699         assignment operators (LWG 3572).
2700         * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
2701         view that uses copyable-box.
2703 2022-01-11  Jonathan Wakely  <jwakely@redhat.com>
2705         PR libstdc++/103726
2706         * include/Makefile.am: Install <coroutine> for freestanding.
2707         * include/Makefile.in: Regenerate.
2708         * include/std/coroutine: Adjust headers and preprocessor
2709         conditions.
2710         (__coroutine_traits_impl): Use concepts when available.
2711         [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
2713 2022-01-11  Jonathan Wakely  <jwakely@redhat.com>
2715         * include/std/ostream (operator<<(basic_ostream&, charT)):
2716         Use unformatted input if no padding is needed.
2717         (operator<<(basic_ostream<char>&, char)): Likewise.
2719 2022-01-11  Jonathan Wakely  <jwakely@redhat.com>
2721         PR libstdc++/103891
2722         * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
2723         Define.
2724         * include/std/variant (__cpp_lib_variant): Only define C++20
2725         value when the compiler is known to support conditionally
2726         trivial destructors.
2727         * include/std/version (__cpp_lib_variant): Likewise.
2729 2022-01-11  Jonathan Wakely  <jwakely@redhat.com>
2731         * include/bits/stl_iterator.h (common_iterator): Add constexpr
2732         to all member functions (LWG 3574).
2733         * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
2734         tests as constant expressions.
2735         * testsuite/24_iterators/common_iterator/2.cc: Likewise.
2737 2022-01-10  Jakub Jelinek  <jakub@redhat.com>
2739         PR libstdc++/77760
2740         * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
2741         (time_get::_M_extract_via_format): Declare new method with
2742         __time_get_state& as an extra argument.
2743         * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
2744         __state argument, set various fields in it while parsing.  Handle %j,
2745         %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
2746         for %p immediately.  Add a wrapper around the method without the
2747         __state argument for backwards compatibility.
2748         (_M_extract_num): Remove all __len == 4 special cases.
2749         (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
2750         initialize __state, pass it to _M_extract_via_format and finalize it
2751         at the end.
2752         (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
2753         69-99 to 1969-1999.  For 3-4 digit parsed years use that as year.
2754         (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
2755         version, don't call do_get but call _M_extract_via_format instead to
2756         pass around state.
2757         * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
2758         with extra __time_get_state and __time_get_state::_M_finalize_state.
2759         * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
2760         day_of_the_year): New functions in anon namespace.
2761         (mon_yday): New var in anon namespace.
2762         (__time_get_state::_M_finalize_state): Define.
2763         * testsuite/22_locale/time_get/get/char/4.cc: New test.
2764         * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
2765         * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
2766         as year 197AD instead of error.
2767         * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
2768         year 2001 instead of error.
2769         * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
2770         * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
2771         197 as year 197AD instead of error.
2772         * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
2773         1 as year 2001 instead of error.
2774         * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
2776 2022-01-10  Jonathan Wakely  <jwakely@redhat.com>
2778         PR libstdc++/103866
2779         * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
2780         nothing for freestanding builds.
2781         (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
2782         * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
2783         with --without-headers.  Do not use GCC_HEADER_STDINT for
2784         freestanding builds.
2785         * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
2786         for freestanding builds.
2787         * configure: Regenerate.
2788         * Makefile.in: Regenerate.
2789         * doc/Makefile.in: Regenerate.
2790         * include/Makefile.in: Regenerate.
2791         * libsupc++/Makefile.in: Regenerate.
2792         * po/Makefile.in: Regenerate.
2793         * python/Makefile.in: Regenerate.
2794         * src/Makefile.in: Regenerate.
2795         * src/c++11/Makefile.in: Regenerate.
2796         * src/c++17/Makefile.in: Regenerate.
2797         * src/c++20/Makefile.in: Regenerate.
2798         * src/c++98/Makefile.in: Regenerate.
2799         * src/filesystem/Makefile.in: Regenerate.
2800         * testsuite/Makefile.in: Regenerate.
2802 2022-01-10  Jonathan Wakely  <jwakely@redhat.com>
2804         * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
2805         Add dg-timeout-factor directive.
2806         * testsuite/28_regex/basic_regex/84110.cc: Likewise.
2807         * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
2808         * testsuite/28_regex/match_results/102667.cc: Likewise.
2810 2022-01-10  Jonathan Wakely  <jwakely@redhat.com>
2812         * doc/xml/manual/using.xml: Update documentation around default
2813         -std option.
2814         * doc/html/*: Regenerate.
2816 2022-01-10  Jonathan Wakely  <jwakely@redhat.com>
2818         PR libstdc++/100017
2819         * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
2820         * src/c++17/Makefile.in: Regenerate.
2822 2022-01-09  Sandra Loosemore  <sandra@codesourcery.com>
2824         * testsuite/18_support/type_info/constexpr.cc: Add explicit
2825         -fdelete-null-pointer-checks option.
2827 2022-01-06  Pavel I. Kryukov  <pavel.kryukov@phystech.edu>
2828             Jonathan Wakely  <jwakely@redhat.com>
2830         PR libstdc++/103853
2831         * include/bits/forward_list.tcc (forward_list::merge): Check for
2832         self-merge.
2833         * testsuite/23_containers/forward_list/operations/merge.cc: New test.
2835 2022-01-06  Jonathan Wakely  <jwakely@redhat.com>
2837         * include/bits/regex.h (basic_regex, match_results): Qualify
2838         name in friend declaration, to work around Clang bug.
2840 2022-01-06  Jonathan Wakely  <jwakely@redhat.com>
2842         * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
2844 2022-01-06  Jonathan Wakely  <jwakely@redhat.com>
2846         PR libstdc++/103911
2847         * include/std/charconv (__from_chars_alpha_to_num): Return
2848         char instead of unsigned char. Change invalid return value to
2849         127 instead of using numeric trait.
2850         (__from_chars_alnum): Fix comment. Do not use std::isdigit.
2851         Change type of variable to char.
2853 2022-01-05  François Dumont  <fdumont@gcc.gnu.org>
2855         PR libstdc++/68303
2856         * include/bits/hashtable_policy.h
2857         (_Hashtable_hash_traits<_Hash>): New.
2858         (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
2859         (_Hashtable_base<>::_M_key_equals): New.
2860         (_Hashtable_base<>::_M_equals): Use latter.
2861         (_Hashtable_base<>::_M_key_equals_tr): New.
2862         (_Hashtable_base<>::_M_equals_tr): Use latter.
2863         * include/bits/hashtable.h
2864         (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
2865         (_Hashtable<>::find): Loop through elements to look for key if size is lower
2866         than __small_size_threshold().
2867         (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
2868         (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
2869         (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
2870         (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
2871         (_Hashtable<>::_M_find_before_node(const key_type&)): New.
2872         (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
2873         (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
2874         * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
2875         * testsuite/util/testsuite_performance.h
2876         (report_performance): Use 9 width to display memory.
2877         * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
2878         New performance test case.
2880 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2882         PR libstdc++/103919
2883         * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
2884         Relax constraints on string_view parameter.
2885         * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
2886         Likewise.
2887         * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
2889 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2891         * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
2892         ARM EABI.
2893         * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
2894         * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
2895         * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
2896         is emitted.
2897         (type_info::__equal): Define alias symbol.
2898         * libsupc++/typeinfo (type_info::before): Combine different
2899         implementations into one.
2900         (type_info::operator==): Likewise. Use address equality for
2901         constant evaluation. Call __equal for targets that require the
2902         definition to be non-inline.
2903         * testsuite/18_support/type_info/constexpr.cc: New test.
2905 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2907         * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
2908         class and virtual functions as 'final'.
2909         (io_category_instance): Use constinit union to make the object
2910         immortal.
2911         * src/c++11/future.cc (future_error_category): Define class and
2912         virtual functions as 'final'.
2913         (future_category_instance): Use constinit union.
2915 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2917         * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
2918         versioned namespace from the type name that is printed.
2920 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2922         * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
2923         printer for std::regex NFA states.
2925 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2927         * testsuite/23_containers/forward_list/operations/1.cc: Fill in
2928         placeholders in comments.
2929         * testsuite/23_containers/forward_list/operations/2.cc:
2930         Likewise.
2931         * testsuite/23_containers/forward_list/operations/3.cc:
2932         Likewise.
2933         * testsuite/23_containers/forward_list/operations/4.cc:
2934         Likewise.
2935         * testsuite/23_containers/forward_list/operations/5.cc:
2936         Likewise.
2937         * testsuite/23_containers/forward_list/operations/6.cc:
2938         Likewise.
2939         * testsuite/23_containers/forward_list/operations/7.cc:
2940         Likewise.
2942 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2944         PR libstdc++/103848
2945         * include/bits/stl_deque.h (operator-): Do not use 0 as null
2946         pointer constant.
2948 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2950         * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
2951         Use std::_Construct for construct.
2953 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2955         PR libstdc++/103877
2956         * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
2957         * doc/html/faq.html: Regenerate.
2959 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2961         * include/bits/regex.h (__regex_algo_impl): Change __policy and
2962         __match_mode template parameters to be function parameters.
2963         (regex_match, regex_search): Pass policy and match mode as
2964         function arguments.
2965         * include/bits/regex.tcc (__regex_algo_impl): Change template
2966         parameters to function parameters.
2967         * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
2968         'if constexpr' for conditions using template parameters.
2969         (_RegexTranslator): Likewise.
2970         * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
2971         Likewise.
2972         * testsuite/util/testsuite_regex.h (regex_match_debug)
2973         (regex_search_debug): Move template arguments to function
2974         arguments.
2976 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2978         * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
2979         results even if the match failed.
2981 2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
2983         * include/bits/regex_compiler.tcc: Adjust all calls to
2984         __throw_regex_error.
2985         * include/bits/regex_error.h (__throw_regex_error): Add noreturn
2986         attribute.
2987         * include/bits/regex_scanner.tcc: Likewise.
2988         * src/c++11/regex.cc (desc): New helper function.
2989         (regex_error::regex_error(error_type)): Use desc to get a string
2990         corresponding to the error code.
2993 Copyright (C) 2022 Free Software Foundation, Inc.
2995 Copying and distribution of this file, with or without modification,
2996 are permitted in any medium without royalty provided the copyright
2997 notice and this notice are preserved.