12024-06-20  Release Manager
2
3	* GCC 12.4.0 released.
4
52024-06-17  Jonathan Wakely  <jwakely@redhat.com>
6
7	Backported from master:
8	2024-06-14  Jonathan Wakely  <jwakely@redhat.com>
9
10	* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
11	posix_memalign.
12
132024-06-11  Tianqiang Shuai  <1101282468@qq.com>
14
15	Backported from master:
16	2023-07-06  Tianqiang Shuai  <1101282468@qq.com>
17
18	* config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
19	first argument.
20
212024-06-11  Jonathan Wakely  <jwakely@redhat.com>
22
23	Backported from master:
24	2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
25
26	* include/std/utility (__cpp_lib_constexpr_algorithms): Define,
27	as per LWG 3792.
28	* testsuite/20_util/exchange/constexpr.cc: Check for it.
29
302024-06-11  Jonathan Wakely  <jwakely@redhat.com>
31
32	Backported from master:
33	2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
34
35	* include/bits/fs_ops.h (create_directory): Use reserved name
36	for parameter.
37	* include/bits/regex_automaton.h (_State_base::_M_print):
38	Likewise.
39	* include/bits/regex_automaton.tcc(_State_base::_M_print):
40	Likewise.
41	* include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
42	* include/experimental/bits/fs_ops.h (create_directory):
43	Likewise.
44	* include/std/mutex (timed_mutex::_M_clocklock): Likewise.
45	(recursive_timed_mutex:_M_clocklock): Likewise.
46	* libsupc++/cxxabi_init_exception.h
47	(__cxa_init_primary_exception): Likewise.
48	* testsuite/17_intro/names.cc: Add checks.
49
502024-06-11  Jonathan Wakely  <jwakely@redhat.com>
51
52	Backported from master:
53	2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
54
55	* include/experimental/internet (network_v6::network): Define.
56	(network_v6::hosts): Finish implementing.
57	(network_v6::to_string): Do not concatenate std::string to
58	arbitrary std::basic_string specialization.
59	* testsuite/experimental/net/internet/network/v6/cons.cc: New
60	test.
61
622024-06-11  Jonathan Wakely  <jwakely@redhat.com>
63
64	Backported from master:
65	2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
66
67	PR libstdc++/100285
68	* include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
69	(basic_endpoint, basic_resolver_entry, resolver_base)
70	(basic_resolver_results, basic_resolver): Only define if the tcp
71	or udp protocols will be defined.
72
732024-06-11  Jonathan Wakely  <jwakely@redhat.com>
74
75	Backported from master:
76	2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
77
78	PR libstdc++/110542
79	* include/bits/stl_uninitialized.h (__uninitialized_default_n):
80	Do not use std::fill_n during constant evaluation.
81
822024-06-11  Jonathan Wakely  <jwakely@redhat.com>
83
84	Backported from master:
85	2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
86
87	* testsuite/27_io/manipulators/extended/get_time/char/2.cc:
88	Adjust input string so that it matches %a with or without a
89	trailing period.
90
912024-06-11  Jonathan Wakely  <jwakely@redhat.com>
92
93	Backported from master:
94	2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
95
96	PR libstdc++/114359
97	* include/bits/random.tcc (binomial_distribution::param_type):
98	Ensure arithmetic is done as type double.
99	* testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
100
1012024-06-11  Jonathan Wakely  <jwakely@redhat.com>
102
103	Backported from master:
104	2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
105
106	PR libstdc++/114367
107	* include/bits/stl_bvector.h (_M_allocate): Use allocator's
108	construct function to begin lifetime of words.
109
1102024-06-11  Jonathan Wakely  <jwakely@redhat.com>
111
112	Backported from master:
113	2024-04-03  Jonathan Wakely  <jwakely@redhat.com>
114
115	PR libstdc++/104606
116	* include/std/optional (operator<=>(const optional<T>&, const U&)):
117	Reverse order of three_way_comparable_with template arguments.
118	* testsuite/20_util/optional/relops/104606.cc: New test.
119
1202024-06-11  Jonathan Wakely  <jwakely@redhat.com>
121
122	Backported from master:
123	2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
124
125	PR libstdc++/114401
126	* include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
127	release() on node handle instead of just zeroing its pointer.
128	(_Hashtable::_M_reinsert_node_multi): Likewise.
129	(_Hashtable::_M_merge_unique): Likewise.
130	(_Hashtable::_M_merge_multi): Likewise.
131	* include/bits/node_handle.h (_Node_handle_common::release()):
132	New member function.
133	(_Node_handle_common::_Optional_alloc::_M_empty): Remove
134	unnecessary union member.
135	(_Node_handle_common): Declare _Hashtable as a friend.
136	* include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
137	Call release() on node handle instead of just zeroing its
138	pointer.
139	(_Rb_tree::_M_reinsert_node_equal): Likewise.
140	(_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
141	(_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
142	* testsuite/23_containers/multiset/modifiers/114401.cc: New test.
143	* testsuite/23_containers/set/modifiers/114401.cc: New test.
144	* testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
145	* testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
146
1472024-06-01  Jonathan Wakely  <jwakely@redhat.com>
148
149	Backported from master:
150	2024-06-01  Jonathan Wakely  <jwakely@redhat.com>
151
152	PR libstdc++/115269
153	* doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
154	Replace list of -std=... options with a single entry for -std.
155	* doc/html/manual/using.html: Regenerate.
156
1572024-05-08  Matthias Kretz  <m.kretz@gsi.de>
158
159	Backported from master:
160	2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
161
162	PR libstdc++/114803
163	* include/experimental/bits/simd_builtin.h
164	(_SimdBase2::operator __vector_type_t): There is no __builtin()
165	function in _SimdWrapper, instead use its conversion operator.
166	* testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
167	test.
168
1692024-05-08  Matthias Kretz  <m.kretz@gsi.de>
170
171	Backported from master:
172	2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
173
174	* include/experimental/bits/simd.h: Ignore -Wnarrowing for
175	arm_neon.h.
176	(__int_for_sizeof): Replace tautological compare with checking
177	for invalid template parameter value.
178	* include/experimental/bits/simd_builtin.h (__extract_part):
179	Remove tautological compare by combining two static_assert.
180
1812024-05-08  Matthias Kretz  <m.kretz@gsi.de>
182
183	Backported from master:
184	2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
185
186	* include/experimental/bits/numeric_traits.h: Add include guard.
187
1882024-05-08  Matthias Kretz  <m.kretz@gsi.de>
189
190	Backported from master:
191	2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
192
193	PR libstdc++/114750
194	* include/experimental/bits/simd_builtin.h
195	(_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
196	scalars if the memory type cannot be vectorized for the target.
197
1982024-05-08  Matthias Kretz  <m.kretz@gsi.de>
199
200	Backported from master:
201	2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
202
203	* include/experimental/bits/simd_x86.h (_S_masked_unary):
204	Cast inputs < 16 bytes to 16 byte vectors before calling the
205	right subtraction builtin. Before returning, truncate to the
206	return vector type.
207
2082024-05-08  Matthias Kretz  <m.kretz@gsi.de>
209
210	Backported from master:
211	2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
212
213	* include/experimental/bits/simd_x86.h (_S_masked_unary): Call
214	the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
215	rounding direction argument.
216
2172024-05-08  Matthias Kretz  <m.kretz@gsi.de>
218
219	Backported from master:
220	2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
221
222	PR libstdc++/109822
223	* include/experimental/bits/simd_builtin.h (_S_store): Rewrite
224	to avoid casts to other vector types. Implement store as
225	succession of power-of-2 sized memcpy to avoid PR90424.
226
2272024-05-08  Matthias Kretz  <m.kretz@gsi.de>
228
229	Backported from master:
230	2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
231
232	PR libstdc++/110054
233	* include/experimental/bits/simd_builtin.h (_S_masked_store):
234	Call into deduced ABI's SimdImpl after conversion.
235	* include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
236	Don't use _mm_maskmoveu_si128. Use the generic fall-back
237	implementation. Also fix masked stores without SSE2, which
238	were not doing anything before.
239
2402024-05-08  Matthias Kretz  <m.kretz@gsi.de>
241
242	Backported from master:
243	2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
244
245	* include/experimental/bits/simd.h (__bit_cast): Use
246	__gnu__::__vector_size__ instead of gnu::vector_size.
247
2482024-04-21  Iain Sandoe  <iain@sandoe.co.uk>
249
250	Backported from master:
251	2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
252		    Jonathan Wakely  <jwakely@redhat.com>
253
254	PR target/112397
255	* configure: Regenerate.
256	* configure.ac: Detect if we are building for Darwin.
257	* libsupc++/Makefile.am: If we are building for Darwin, then
258	suppress hot/cold partitioning for the array allocators.
259	* libsupc++/Makefile.in: Regenerated.
260
2612024-04-21  Iain Sandoe  <iain@sandoe.co.uk>
262
263	Backported from master:
264	2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
265
266	* testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
267	option for the path to the uninstalled libatomic.
268
2692024-04-21  Iain Sandoe  <iain@sandoe.co.uk>
270
271	Backported from master:
272	2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
273
274	* testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
275	/dev/null, use a temporary file for test executables on Darwin.
276
2772024-04-18  Iain Sandoe  <iain@sandoe.co.uk>
278
279	Backported from master:
280	2022-12-04  Iain Sandoe  <iain@sandoe.co.uk>
281
282	* config/os/bsd/darwin/os_defines.h
283	(_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro
284	to OS versions that need it.
285
2862024-03-18  Jonathan Wakely  <jwakely@redhat.com>
287
288	Backported from master:
289	2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
290
291	* testsuite/experimental/feat-cxx14.cc: Remove dependency on
292	_GLIBCXX_USE_C99_STDINT_TR1.
293
2942024-03-18  Jonathan Wakely  <jwakely@redhat.com>
295
296	Backported from master:
297	2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
298
299	* testsuite/21_strings/basic_string_view/typedefs.cc: Remove
300	dependency on _GLIBCXX_USE_C99_STDINT_TR1.
301	* testsuite/experimental/string_view/typedefs.cc: Likewise.
302
3032024-03-18  Jonathan Wakely  <jwakely@redhat.com>
304
305	Backported from master:
306	2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
307
308	* src/c++11/Makefile.am: Add new file.
309	* src/c++11/Makefile.in: Regenerate.
310	* src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
311	* src/c++11/assert_fail.cc: New file.
312
3132024-03-18  Jonathan Wakely  <jwakely@redhat.com>
314
315	Backported from master:
316	2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
317
318	* include/bits/iterator_concepts.h (projected): Replace class
319	template with alias template denoting an ADL-proofed helper.
320	(incremental_traits<projected<Iter, Proj>>): Remove.
321	* testsuite/24_iterators/indirect_callable/projected-adl.cc:
322	New test.
323
3242024-03-18  Jonathan Wakely  <jwakely@redhat.com>
325
326	Backported from master:
327	2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
328
329	PR libstdc++/40380
330	* include/bits/basic_string.h: Improve doxygen comments.
331	* include/bits/cow_string.h: Likewise.
332	* include/bits/forward_list.h: Likewise.
333	* include/bits/fs_dir.h: Likewise.
334	* include/bits/fs_path.h: Likewise.
335	* include/bits/quoted_string.h: Likewise.
336	* include/bits/stl_bvector.h: Likewise.
337	* include/bits/stl_map.h: Likewise.
338	* include/bits/stl_multimap.h: Likewise.
339	* include/bits/stl_multiset.h: Likewise.
340	* include/bits/stl_set.h: Likewise.
341	* include/bits/stl_vector.h: Likewise.
342	* include/bits/unordered_map.h: Likewise.
343	* include/bits/unordered_set.h: Likewise.
344	* include/std/filesystem: Likewise.
345	* include/std/iomanip: Likewise.
346
3472024-03-18  Jonathan Wakely  <jwakely@redhat.com>
348
349	Backported from master:
350	2022-11-19  Jonathan Wakely  <jwakely@redhat.com>
351
352	* include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename
353	parameter.
354
3552024-03-18  Jonathan Wakely  <jwakely@redhat.com>
356
357	Backported from master:
358	2022-11-21  Jonathan Wakely  <jwakely@redhat.com>
359
360	* include/std/tuple: Add better Doxygen comments.
361
3622024-03-18  Jonathan Wakely  <jwakely@redhat.com>
363
364	Backported from master:
365	2022-11-08  Jonathan Wakely  <jwakely@redhat.com>
366
367	* testsuite/18_support/new_nothrow.cc: Add missing noexcept
368	to operator delete replacements.
369	* testsuite/20_util/any/cons/92156.cc: Disable
370	-Winit-list-lifetime warnings from instantiating invalid
371	specialization of manager function.
372	* testsuite/20_util/any/modifiers/92156.cc: Likewise.
373	* testsuite/20_util/default_delete/void_neg.cc: Prune additional
374	diagnostics.
375	* testsuite/20_util/headers/memory/synopsis.cc: Add missing
376	noexcept.
377	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Prune
378	additional diagnostic.
379	* testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Add
380	missing noexcept to operator delete replacements.
381	* testsuite/21_strings/basic_string/cons/char/103919.cc:
382	Likewise.
383	* testsuite/23_containers/map/modifiers/emplace/92300.cc:
384	Likewise.
385	* testsuite/23_containers/map/modifiers/insert/92300.cc:
386	Likewise.
387	* testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
388	Add missing noexcept to synopsis declarations.
389	* testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
390	Likewise.
391	* testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
392	Likewise.
393
3942024-03-18  Jonathan Wakely  <jwakely@redhat.com>
395
396	Backported from master:
397	2022-09-21  Jonathan Wakely  <jwakely@redhat.com>
398
399	* testsuite/20_util/headers/memory/synopsis.cc: Add declarations
400	from C++11 and later.
401
4022024-03-18  Jonathan Wakely  <jwakely@redhat.com>
403
404	Backported from master:
405	2022-11-08  Jonathan Wakely  <jwakely@redhat.com>
406
407	* include/bits/stl_tempbuf.h (_Temporary_buffer): Disable
408	warnings about get_temporary_buffer being deprecated.
409	* include/ext/functional (mem_fun1, mem_fun1_ref): Disable
410	warnings about mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t and
411	const_mem_fun1_ref_t being deprecated.
412	* include/std/spanstream (basic_spanbuf::setbuf): Add assertion
413	and adjust to avoid narrowing warning.
414	* libsupc++/exception_ptr.h [!__cpp_rtti && !__cpp_exceptions]
415	(make_exception_ptr): Add missing inline specifier.
416
4172024-03-18  Jonathan Wakely  <jwakely@redhat.com>
418
419	Backported from master:
420	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
421
422	* doc/doxygen/user.cfg.in (PREDEFINED): Define
423	_GTHREAD_USE_MUTEX_TIMEDLOCK macro.
424	* include/bits/std_mutex.h (mutex, lock_guard): Use @since and
425	@headerfile.
426	* include/bits/unique_lock.h (unique_lock): Likewise.
427	* include/std/mutex (recursive_mutex, timed_mutex)
428	(recursive_timed_mutex, scoped_lock): Likewise.
429
4302024-03-18  Jonathan Wakely  <jwakely@redhat.com>
431
432	Backported from master:
433	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
434
435	* doc/doxygen/user.cfg.in (PREDEFINED): Define
436	_GLIBCXX23_CONSTEXPR macro.
437	* include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
438	* include/bits/unique_ptr.h (default_delete): Use @since and
439	@headerfile.
440	* include/std/scoped_allocator: Remove @ingroup from @file
441	block.
442
4432024-03-18  Jonathan Wakely  <jwakely@redhat.com>
444
445	Backported from master:
446	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
447
448	* include/bits/ostream_insert.h: Mark helper functions as
449	undocumented by Doxygen.
450	* include/bits/stl_algo.h: Use markdown for formatting and mark
451	helper functions as undocumented.
452	* include/bits/stl_numeric.h:  Likewise.
453	* include/bits/stl_pair.h (pair): Add @headerfile.
454
4552024-03-18  Jonathan Wakely  <jwakely@redhat.com>
456
457	Backported from master:
458	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
459
460	* doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
461	so that Doxygen shows the right base-class for std::allocator.
462	* include/bits/alloc_traits.h: Improve doxygen docs.
463	* include/bits/allocator.h: Likewise.
464	* include/bits/new_allocator.h: Likewise.
465	* include/ext/new_allocator.h: Likewise.
466
4672024-03-18  Jonathan Wakely  <jwakely@redhat.com>
468
469	Backported from master:
470	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
471
472	* doc/doxygen/user.cfg.in (PREDEFINED): Define macro
473	_GLIBCXX_DOXYGEN_ONLY to expand its argument.
474	* include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
475	* include/bits/regex.h: Improve doxygen docs.
476	* include/bits/regex_constants.h: Likewise.
477	* include/bits/regex_error.h: Likewise.
478
4792024-03-18  Jonathan Wakely  <jwakely@redhat.com>
480
481	Backported from master:
482	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
483
484	* include/std/atomic: Suppress doxygen docs for
485	implementation details.
486	* include/bits/atomic_base.h: Likewise.
487	* include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
488	so that std::atomic is not added to the pointer abstractions
489	group.
490
4912024-03-18  Jonathan Wakely  <jwakely@redhat.com>
492
493	Backported from master:
494	2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
495
496	* src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
497	Do not build the compatibility*-c++0x.cc objects.
498	* src/Makefile.in: Regenerate.
499	* src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
500	Refuse to build for the versioned namespace.
501	* src/c++11/compatibility-chrono.cc: Likewise.
502	* src/c++11/compatibility-condvar.cc: Likewise.
503	* src/c++11/compatibility-thread-c++0x.cc: Likewise.
504	* src/c++11/chrono.cc (system_clock, steady_clock):
505	Use macros to define in inline namespace _V2, matching the
506	declarations in <system_error>.
507	* src/c++11/system_error.cc (system_category, generic_category):
508	Likewise.
509
5102024-03-18  Jonathan Wakely  <jwakely@redhat.com>
511
512	Backported from master:
513	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
514
515	* doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
516	nothing.
517	* include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
518	(_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
519	* include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
520	for the namespace.
521	* include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
522	* include/bits/stl_algo.h (_V2::__rotate): Likewise.
523	* include/std/condition_variable (_V2::condition_variable_any):
524	Likewise.
525	* include/std/system_error (_V2::error_category): Likewise.
526
5272024-03-18  Jonathan Wakely  <jwakely@redhat.com>
528
529	Backported from master:
530	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
531
532	* doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
533	(CLASS_DIAGRAMS): Remove obsolete option.
534
5352024-03-18  Jonathan Wakely  <jwakely@redhat.com>
536
537	Backported from master:
538	2022-06-27  Jonathan Wakely  <jwakely@redhat.com>
539
540	* include/bits/fs_path.h (__is_path_iter_src): Replace class
541	template with variable template.
542
5432024-03-18  Jonathan Wakely  <jwakely@redhat.com>
544
545	Backported from master:
546	2022-09-26  Jonathan Wakely  <jwakely@redhat.com>
547
548	* include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
549	Also define the __ptr_traits_elem class template for the
550	concepts case.
551	(pointer_traits<Ptr>): Remove constrained partial
552	specialization.
553	* testsuite/20_util/pointer_traits/lwg3545.cc: Check for
554	ambiguitiy with program-defined partial specialization.
555
5562024-03-18  Jonathan Wakely  <jwakely@redhat.com>
557
558	Backported from master:
559	2022-09-24  Jonathan Wakely  <jwakely@redhat.com>
560
561	* include/bits/alloc_traits.h (allocator_traits::is_always_equal):
562	Only instantiate is_empty if needed.
563	* include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
564	(__ptr_traits_impl::rebind): Use __detected_or.
565	* include/experimental/type_traits (is_same_v): Add a partial
566	specialization instead of instantiating the std::is_same class
567	template.
568	(detected_t): Redefine in terms of detected_or_t.
569	(is_detected, is_detected_v): Redefine in terms of detected_t.
570	* include/std/type_traits [__cpp_concepts] (__detected_or): Add
571	new definition using concepts.
572	(__detector::value_t): Rename to __is_detected.
573	* testsuite/17_intro/names.cc: Check value_t isn't used.
574
5752024-03-18  Jonathan Wakely  <jwakely@redhat.com>
576
577	Backported from master:
578	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
579
580	* include/bits/ptr_traits.h: Add some doxygen comments.
581
5822024-03-18  Xi Ruoyao  <xry111@xry111.site>
583
584	Backported from master:
585	2022-06-24  Xi Ruoyao  <xry111@xry111.site>
586
587	* scripts/extract_symvers.in: Use grep -E instead of egrep.
588	* scripts/run_doxygen: Likewise.
589
5902024-03-18  Jonathan Wakely  <jwakely@redhat.com>
591
592	Backported from master:
593	2022-10-28  Jonathan Wakely  <jwakely@redhat.com>
594
595	PR libstdc++/107376
596	* include/bits/regex_executor.h (_Executor::_Executor): Use same
597	allocator for _M_cur_results and _M_results.
598	* include/bits/regex_executor.tcc (_Executor::_M_main_dispatch):
599	Prevent possibly incorrect allocator propagating to
600	_M_cur_results.
601	* testsuite/28_regex/algorithms/regex_match/107376.cc: New test.
602
6032024-03-18  Jonathan Wakely  <jwakely@redhat.com>
604
605	Backported from master:
606	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
607
608	* include/std/sstream  (basic_stringbuf::view): Define for old
609	std::string ABI.
610	(basic_istringstream::view, basic_stringstream::view)
611	(basic_stringstream::view): Likewise.
612	* testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
613	{ dg-require-effective-target cxx11_abi }.
614	* testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
615	Likewise.
616	* testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
617	* testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
618	Likewise.
619	* testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
620	* testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
621	* testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
622	* testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
623	Likewise.
624
6252024-03-18  Jonathan Wakely  <jwakely@redhat.com>
626
627	Backported from master:
628	2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
629
630	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
631	chmod, chdir, and getcwd.
632	* config.h.in: Regenerate.
633	* configure: Regenerate.
634	* src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
635	(fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
636	(fs::permissions): Use USE_CHMOD macro.
637	* src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
638	(chmod, mkdir, getcwd, chdir): Define new macros.
639	[FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
640	new macros.
641	* src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
642	(fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
643	(fs::permissions): Use USE_CHMOD macro.
644
6452024-03-18  Jonathan Wakely  <jwakely@redhat.com>
646
647	Backported from master:
648	2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
649
650	* include/bits/new_allocator.h (__new_allocator): Define copy
651	assignment operator as defaulted.
652	* include/std/complex (complex<float>, complex<double>)
653	(complex<long double>): Define copy constructor as defaulted.
654
6552024-03-18  Jonathan Wakely  <jwakely@redhat.com>
656
657	Backported from master:
658	2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
659
660	PR libstdc++/112473
661	* include/bits/utility.h (integer_sequence): Add static_assert.
662	* testsuite/20_util/integer_sequence/112473.cc: New test.
663
6642024-03-18  Jonathan Wakely  <jwakely@redhat.com>
665
666	Backported from master:
667	2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
668
669	PR libstdc++/111172
670	* include/std/variant (get<T>): Remove !is_void static
671	assertions.
672
6732024-03-18  Jonathan Wakely  <jwakely@redhat.com>
674
675	Backported from master:
676	2023-10-26  Jonathan Wakely  <jwakely@redhat.com>
677
678	PR libstdc++/112089
679	* include/std/shared_mutex (shared_lock::unlock): Change errc
680	constant to operation_not_permitted.
681	* testsuite/30_threads/shared_lock/locking/112089.cc: New test.
682
6832024-03-18  Jonathan Wakely  <jwakely@redhat.com>
684
685	Backported from master:
686	2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
687
688	PR libstdc++/113960
689	* include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
690	(__memcmp_ordered_with): New concept.
691	(lexicographical_compare_three_way): Use __memcmp_ordered_with
692	instead of __is_byte_iter. Use correct length for memcmp.
693	* testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
694	New test.
695
6962024-03-18  Jonathan Wakely  <jwakely@redhat.com>
697
698	Backported from master:
699	2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
700
701	PR libstdc++/108846
702	* include/bits/stl_algobase.h (__copy_move<false, false, RA>)
703	Add __assign_one static member function.
704	(__copy_move<true, false, RA>): Likewise.
705	(__copy_move<IsMove, true, RA>): Do not use memmove for a single
706	value.
707	(__copy_move_backward<IsMove, true, RA>): Likewise.
708	* testsuite/25_algorithms/copy/108846.cc: New test.
709	* testsuite/25_algorithms/copy_backward/108846.cc: New test.
710	* testsuite/25_algorithms/copy_n/108846.cc: New test.
711	* testsuite/25_algorithms/move/108846.cc: New test.
712	* testsuite/25_algorithms/move_backward/108846.cc: New test.
713
7142024-03-18  Jonathan Wakely  <jwakely@redhat.com>
715
716	Backported from master:
717	2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
718
719	* include/bits/stream_iterator.h (istream_iterator): Add
720	constexpr to copy constructor, as per LWG 3600.
721	* testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
722	Check copy construction.
723
7242024-03-18  Jonathan Wakely  <jwakely@redhat.com>
725
726	Backported from master:
727	2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
728
729	* include/bits/regex.h (match_results): Add allocator-extended
730	copy and move constructors, as per LWG 2195.
731	* testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
732
7332024-03-18  Jonathan Wakely  <jwakely@redhat.com>
734
735	Backported from master:
736	2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
737
738	* src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
739	attributes.
740
7412024-03-18  Dimitrij Mijoski  <dmjpp@hotmail.com>
742
743	Backported from master:
744	2023-01-13  Dimitrij Mijoski  <dmjpp@hotmail.com>
745
746	PR libstdc++/86419
747	* src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
748	errors in incomplete multibyte sequences.
749	(utf16_in): Remove surrogates parameter. Fix conditions for
750	returning partial.
751	(utf16_out): Fix condition for returning partial.
752	(ucs2_in): Do not pass surrogates argument to utf16_in.
753	* testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
754	* testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
755	tests.
756	* testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
757	test.
758
7592024-03-18  Jonathan Wakely  <jwakely@redhat.com>
760
761	Backported from master:
762	2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
763
764	* include/bits/algorithmfwd.h (random_shuffle): Add deprecated
765	attribute.
766	* include/bits/stl_algo.h (random_shuffle): Correct comments.
767	* testsuite/25_algorithms/random_shuffle/1.cc: Disable
768	deprecated warnings.
769	* testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
770	* testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
771	* testsuite/25_algorithms/random_shuffle/deprecated.cc: New
772	test.
773
7742024-03-18  Jonathan Wakely  <jwakely@redhat.com>
775
776	Backported from master:
777	2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
778
779	PR libstdc++/109758
780	* include/bits/std_abs.h (abs(__float128)): Handle negative NaN
781	and negative zero correctly.
782	* testsuite/26_numerics/headers/cmath/109758.cc: New test.
783
7842024-03-18  Jonathan Wakely  <jwakely@redhat.com>
785
786	Backported from master:
787	2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
788
789	* acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
790	to check for nan, nanf, and nanl.
791	* configure: Regenerate.
792
7932024-03-18  Jonathan Wakely  <jwakely@redhat.com>
794
795	Backported from master:
796	2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
797
798	* include/std/scoped_allocator (scoped_allocator_adaptor): Add
799	noexcept to all constructors except the default constructor.
800	(scoped_allocator_adaptor::inner_allocator): Add noexcept.
801	(scoped_allocator_adaptor::outer_allocator): Likewise.
802	* testsuite/20_util/scoped_allocator/noexcept.cc: New test.
803
8042024-03-18  Jonathan Wakely  <jwakely@redhat.com>
805
806	Backported from master:
807	2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
808
809	* testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
810	Add const to equality operator.
811
8122024-03-18  Jonathan Wakely  <jwakely@redhat.com>
813
814	Backported from master:
815	2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
816
817	* testsuite/23_containers/deque/modifiers/emplace/52799.cc:
818	Removed.
819	* testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
820	Removed.
821	* testsuite/23_containers/list/modifiers/emplace/52799.cc:
822	Removed.
823	* testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
824	Removed.
825	* testsuite/23_containers/vector/modifiers/emplace/52799.cc:
826	Removed.
827	* testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
828	Removed.
829	* testsuite/23_containers/deque/modifiers/emplace/1.cc: New
830	test.
831	* testsuite/23_containers/list/modifiers/emplace/1.cc: New
832	test.
833	* testsuite/23_containers/vector/modifiers/emplace/1.cc: New
834	test.
835
8362024-03-18  Jonathan Wakely  <jwakely@redhat.com>
837
838	Backported from master:
839	2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
840
841	* include/bits/alloc_traits.h (_Destroy): Qualify call.
842	* include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
843	* testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
844
8452024-03-18  Jonathan Wakely  <jwakely@redhat.com>
846
847	Backported from master:
848	2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
849
850	PR libstdc++/110593
851	* include/bits/chrono.h (duration): Improve static assert
852	messages.
853	(__is_ratio): Move to ...
854	* include/std/ratio (__is_ratio): ... here.
855	(__is_ratio_v): New variable template and partial
856	specialization.
857	(__are_both_ratios): New function template.
858	(__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
859	Add static assertion.
860	* testsuite/20_util/ratio/requirements/type_constraints.cc:
861	New test.
862	* testsuite/20_util/duration/requirements/typedefs_neg1.cc:
863	Adjust expected error.
864	* testsuite/20_util/duration/requirements/typedefs_neg2.cc:
865	Likewise.
866
8672024-03-18  Jonathan Wakely  <jwakely@redhat.com>
868
869	Backported from master:
870	2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
871
872	* src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
873	function.
874	(reset_sequence_ptr): New function.
875	(_Safe_iterator_base::_M_detach)
876	(_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
877	with acquire_sequence_ptr_for_lock.
878	(_Safe_iterator_base::_M_reset): Replace bare atomic_store with
879	reset_sequence_ptr.
880
8812024-03-18  Jonathan Wakely  <jwakely@redhat.com>
882
883	Backported from master:
884	2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
885
886	* include/bits/basic_string.tcc (resize_and_overwrite): Invoke
887	the callable with the same size as resize_and_overwrite was
888	called with.
889	* testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
890	Check with small values for the new size.
891
8922024-03-18  Jonathan Wakely  <jwakely@redhat.com>
893
894	Backported from master:
895	2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
896
897	* include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
898	Pass rvalues to the callback, as now allowed by LWG 3645.
899	Enforce preconditions on the return value.
900	* testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
901	Adjust.
902
9032024-03-18  Jonathan Wakely  <jwakely@redhat.com>
904
905	Backported from master:
906	2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
907
908	* include/bits/shared_ptr_atomic.h (atomic): Change class-head
909	to struct.
910	* include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
911	class-head to struct in friend declaration.
912	* include/std/future (_Task_state_base, _Task_state): Likewise.
913	* include/std/scoped_allocator (__inner_type_impl): Likewise.
914	* include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
915	(_ValFunClos, _RefFunClos): Change class-head to struct.
916
9172024-03-18  Jonathan Wakely  <jwakely@redhat.com>
918
919	Backported from master:
920	2023-09-08  Jonathan Wakely  <jwakely@redhat.com>
921
922	* doc/xml/manual/test.xml: Update reference to -std=gnu++14 as
923	the default.
924	* doc/html/manual/test.html: Regenerate.
925
9262024-03-18  Alexey Lapshin  <alexey.lapshin@espressif.com>
927
928	Backported from master:
929	2023-09-08  Alexey Lapshin  <alexey.lapshin@espressif.com>
930
931	* src/libbacktrace/Makefile.am: Remove -Werror.
932	* src/libbacktrace/Makefile.in: Regenerate.
933
9342024-03-18  Nathaniel Shead  <nathanieloshead@gmail.com>
935
936	Backported from master:
937	2023-09-29  Nathaniel Shead  <nathanieloshead@gmail.com>
938
939	* include/bits/basic_string.h: (basic_string(basic_string&&)):
940	Activate _M_local_buf when needed.
941	(basic_string(basic_string&&, const _Alloc&)): Likewise.
942	* include/bits/basic_string.tcc: (basic_string::swap): Likewise.
943	* include/std/variant: (__detail::__variant::__construct_n): New.
944	(__detail::__variant::__emplace): Use __construct_n.
945
9462024-03-18  Jonathan Wakely  <jwakely@redhat.com>
947
948	Backported from master:
949	2023-11-02  Jonathan Wakely  <jwakely@redhat.com>
950
951	* acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
952	* configure: Regenerate.
953
9542024-03-18  Jonathan Wakely  <jwakely@redhat.com>
955
956	Backported from master:
957	2023-11-21  Jonathan Wakely  <jwakely@redhat.com>
958
959	* include/tr2/dynamic_bitset (dynamic_bitset): Pass zero and one
960	characters to _M_copy_from_string.
961	* testsuite/tr2/dynamic_bitset/string.cc: New test.
962
9632024-03-18  Jonathan Wakely  <jwakely@redhat.com>
964
965	Backported from master:
966	2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
967
968	* include/std/charconv (__from_chars_pow2_base): Convert base to
969	unsigned for call to __countr_zero.
970	(__from_chars_alnum): Likewise for call to __bit_width.
971
9722024-03-18  Jonathan Wakely  <jwakely@redhat.com>
973
974	Backported from master:
975	2023-11-23  Jonathan Wakely  <jwakely@redhat.com>
976
977	* testsuite/util/testsuite_allocator.h (uneq_allocator): Fix
978	equality operator for heterogeneous comparisons.
979
9802024-03-18  Jonathan Wakely  <jwakely@redhat.com>
981
982	Backported from master:
983	2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
984
985	PR libstdc++/66146
986	* doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
987	note about std::call_once.
988	* doc/xml/manual/status_cxx2014.xml: Likewise.
989	* doc/xml/manual/status_cxx2017.xml: Likewise.
990	* doc/html/manual/status.html: Regenerate.
991
9922024-03-18  Jonathan Wakely  <jwakely@redhat.com>
993
994	Backported from master:
995	2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
996
997	* testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
998	to namespace scope.
999
10002024-03-18  Jonathan Wakely  <jwakely@redhat.com>
1001
1002	Backported from master:
1003	2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1004
1005	* doc/xml/manual/appendix_contributing.xml: Change URLs to use
1006	https.
1007	* doc/html/manual/*: Regenerate.
1008
10092024-03-18  Jonathan Wakely  <jwakely@redhat.com>
1010
1011	Backported from master:
1012	2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1013
1014	* doc/xml/manual/appendix_contributing.xml: Replace outdated
1015	info on ChangeLog entries.
1016	* doc/html/manual/appendix_contributing.html: Regenerate.
1017
10182024-03-18  Jonathan Wakely  <jwakely@redhat.com>
1019
1020	Backported from master:
1021	2022-11-04  Jonathan Wakely  <jwakely@redhat.com>
1022
1023	PR libstdc++/107500
1024	* libsupc++/eh_globals.cc (eh_globals): Remove immortalizing
1025	wrapper.
1026	(__cxxabiv1::__cxa_get_globals_fast): Adjust.
1027	(__cxxabiv1::__cxa_get_globals): Adjust.
1028
10292024-03-18  Jonathan Wakely  <jwakely@redhat.com>
1030
1031	Backported from master:
1032	2024-03-04  Jonathan Wakely  <jwakely@redhat.com>
1033
1034	PR libstdc++/114147
1035	* include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
1036	Add missing overload of allocator-extended default constructor.
1037	(tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
1038	* testsuite/20_util/tuple/cons/114147.cc: New test.
1039
10402024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1041
1042	Backported from master:
1043	2024-01-05  Cassio Neri  <cassio.neri@gmail.com>
1044
1045	* include/std/chrono: Fix + and - for months and weekdays.
1046	* testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
1047	* testsuite/std/time/month/2.cc: New test for extreme values.
1048	* testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
1049	* testsuite/std/time/weekday/2.cc: New test for extreme values.
1050
10512024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1052
1053	Backported from master:
1054	2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1055
1056	* include/std/chrono (operator-(const weekday&, const weekday&)):
1057	Optimize.
1058
10592024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1060
1061	Backported from master:
1062	2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1063
1064	* include/std/chrono (year::is_leap): Clear code.
1065
10662024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1067
1068	Backported from master:
1069	2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1070
1071	* include/std/chrono (year_month_day_last::day): Remove &1.
1072
10732024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1074
1075	Backported from master:
1076	2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1077
1078	* include/std/chrono (weekday::_S_from_days): Fix UB.
1079	* testsuite/std/time/weekday/1.cc: Add test for overflow.
1080
10812024-03-13  Jonathan Wakely  <jwakely@redhat.com>
1082
1083	Backported from master:
1084	2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
1085
1086	* include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
1087	warning for loop condition.
1088
10892024-03-13  Jonathan Wakely  <jwakely@redhat.com>
1090
1091	Backported from master:
1092	2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
1093
1094	PR libstdc++/110167
1095	* include/std/array (to_array): Initialize arrays of trivial
1096	types using memcpy. For non-trivial types, use lambda
1097	expressions instead of a separate helper function.
1098	(__to_array): Remove.
1099	* testsuite/23_containers/array/creation/110167.cc: New test.
1100
11012024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1102
1103	Backported from master:
1104	2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1105
1106	* include/std/string_view (basic_string_view(R&&)): Remove
1107	constraint that traits_type must be the same, as per LWG 3857.
1108	* testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
1109	Explicit conversion between different specializations should be
1110	allowed.
1111	* testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
1112	Likewise.
1113
11142024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1115
1116	Backported from master:
1117	2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1118
1119	PR libstdc++/90276
1120	* testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
1121	perfect forwarding for iterator arguments.
1122
11232024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1124
1125	Backported from master:
1126	2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1127
1128	* include/std/syncstream (basic_osyncstream::operator=): Remove
1129	noexcept, as per LWG 3867.
1130
11312024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1132
1133	Backported from master:
1134	2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
1135
1136	PR libstdc++/107466
1137	* include/bits/random.tcc (subtract_with_carry_engine::seed):
1138	Implement proposed resolution of LWG 4014.
1139	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1140	line number.
1141	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1142	Check for expected result of 64-bit engine with seed that
1143	doesn't fit in 32-bits.
1144
11452024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1146
1147	Backported from master:
1148	2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1149
1150	PR libstdc++/113258
1151	* libsupc++/new_opa.cc: Prefer to use posix_memalign if
1152	available.
1153
11542024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1155
1156	PR libstdc++/108636
1157	* include/bits/shared_ptr_base.h (__shared_ptr::operator bool):
1158	Add always_inline attribute for C++20 and later.
1159
11602024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1161
1162	Backported from master:
1163	2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1164
1165	PR libstdc++/113200
1166	* include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
1167	__builtin_constant_p to check for unrelated pointers that cannot
1168	be compared during constant evaluation.
1169	* testsuite/21_strings/char_traits/requirements/113200.cc: New
1170	test.
1171
11722024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1173
1174	Backported from master:
1175	2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1176
1177	PR libstdc++/113250
1178	* src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
1179	* src/filesystem/ops.cc (fs::equivalent): Likewise.
1180	* testsuite/27_io/filesystem/operations/equivalent.cc: Handle
1181	error codes.
1182	* testsuite/experimental/filesystem/operations/equivalent.cc:
1183	Likewise.
1184
11852024-01-03  Patrick Palka  <ppalka@redhat.com>
1186
1187	Backported from master:
1188	2024-01-03  Patrick Palka  <ppalka@redhat.com>
1189
1190	PR testsuite/113175
1191	* testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
1192	'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
1193	(test03): Likewise.
1194
11952023-12-16  Jakub Jelinek  <jakub@redhat.com>
1196
1197	Backported from master:
1198	2023-10-13  Jakub Jelinek  <jakub@redhat.com>
1199
1200	* testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01):
1201	Initialize stream to va_arg(ap, FILE*) rather than 0.
1202	* testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01):
1203	Likewise.
1204
12052023-12-06  Jonathan Wakely  <jwakely@redhat.com>
1206
1207	Backported from master:
1208	2023-11-02  Jonathan Wakely  <jwakely@redhat.com>
1209
1210	PR libstdc++/112314
1211	* include/std/string_view (string_view::remove_suffix): Add
1212	debug assertion.
1213	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
1214	New test.
1215	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
1216	New test.
1217
12182023-12-06  Jonathan Wakely  <jwakely@redhat.com>
1219
1220	Backported from master:
1221	2023-11-17  Jonathan Wakely  <jwakely@redhat.com>
1222
1223	* include/std/utility (in_range): Rename _Up parameter to _Res.
1224
12252023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1226
1227	Backported from master:
1228	2023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1229
1230	PR libstdc++/112491
1231	* python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index):
1232	Correctly handle unused capacity at the start of the first node.
1233	* testsuite/libstdc++-xmethods/deque.cc: Check index operator
1234	when elements have been removed from the front.
1235
12362023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1237
1238	Backported from master:
1239	2023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1240
1241	* include/std/stacktrace (basic_stacktrace::at): Fix class name
1242	in exception message.
1243	* testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if
1244	current() returns a non-empty stacktrace.
1245
12462023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1247
1248	Backported from master:
1249	2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1250
1251	PR libstdc++/112348
1252	* include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix
1253	type of hash function for entries.
1254	* testsuite/19_diagnostics/stacktrace/hash.cc: New test.
1255
12562023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1257
1258	Backported from master:
1259	2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1260
1261	PR libstdc++/112491
1262	* python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix
1263	calculation to use _M_start._M_cur.
1264	* testsuite/libstdc++-xmethods/deque.cc: Check failing cases.
1265
12662023-11-13  Tom Tromey  <tromey@adacore.com>
1267
1268	Backported from master:
1269	2023-10-04  Tom Tromey  <tromey@adacore.com>
1270
1271	* python/libstdcxx/v6/printers.py
1272	(StdExpAnyPrinter.__init__): Qualify call to
1273	_string_types.
1274
12752023-11-13  Tom Tromey  <tromey@adacore.com>
1276
1277	Backported from master:
1278	2023-10-04  Tom Tromey  <tromey@adacore.com>
1279
1280	* python/libstdcxx/v6/printers.py: Assume that
1281	_versioned_namespace is non-None.
1282	* python/libstdcxx/v6/xmethods.py (is_specialization_of):
1283	Assume that _versioned_namespace is non-None.
1284
12852023-11-13  Tom Tromey  <tromey@adacore.com>
1286
1287	Backported from master:
1288	2023-09-28  Tom Tromey  <tromey@adacore.com>
1289
1290	* python/libstdcxx/v6/printers.py (Printer.add_version)
1291	(add_one_template_type_printer)
1292	(FilteringTypePrinter.add_one_type_printer): Use Python
1293	"not in" operator.
1294
12952023-11-13  Tom Tromey  <tromey@adacore.com>
1296
1297	Backported from master:
1298	2023-10-04  Tom Tromey  <tromey@adacore.com>
1299
1300	* python/libstdcxx/v6/xmethods.py (_versioned_namespace):
1301	Define.
1302
13032023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1304
1305	Backported from master:
1306	2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
1307
1308	* python/libstdcxx/v6/xmethods.py (is_specialization_of): Define
1309	new function.
1310	(ArrayMethodsMatcher, DequeMethodsMatcher)
1311	(ForwardListMethodsMatcher, ListMethodsMatcher)
1312	(VectorMethodsMatcher, AssociativeContainerMethodsMatcher)
1313	(UniquePtrGetWorker, UniquePtrMethodsMatcher)
1314	(SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use
1315	is_specialization_of instead of re.match.
1316
13172023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1318
1319	Backported from master:
1320	2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
1321
1322	* python/libstdcxx/v6/printers.py: Break long lines. Use raw
1323	strings for regular expressions. Add whitespace around
1324	operators.
1325	(is_member_of_namespace): Use isinstance to check type.
1326	(is_specialization_of): Likewise. Adjust template_name
1327	for versioned namespace instead of duplicating the re.match
1328	call.
1329	(StdExpAnyPrinter._string_types): New static method.
1330	(StdExpAnyPrinter.to_string): Use _string_types.
1331
13322023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1333
1334	Backported from master:
1335	2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
1336
1337	* python/libstdcxx/v6/printers.py: Format docstrings according
1338	to PEP 257.
1339	* python/libstdcxx/v6/xmethods.py: Likewise.
1340
13412023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1342
1343	Backported from master:
1344	2023-09-12  Jonathan Wakely  <jwakely@redhat.com>
1345
1346	* python/libstdcxx/v6/printers.py: Reformat.
1347	* python/libstdcxx/v6/xmethods.py: Likewise.
1348
13492023-11-06  Ian Lance Taylor  <iant@golang.org>
1350
1351	PR libbacktrace/111315
1352	PR libbacktrace/112263
1353	* acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when
1354	grepping link.h for dl_iterate_phdr.
1355	* configure: Regenerate.
1356
13572023-10-25  Jonathan Wakely  <jwakely@redhat.com>
1358
1359	Backported from master:
1360	2023-10-25  Jonathan Wakely  <jwakely@redhat.com>
1361
1362	PR libstdc++/111936
1363	* src/libbacktrace/Makefile.am: Add -prefer-pic to libtool
1364	compile commands.
1365	* src/libbacktrace/Makefile.in: Regenerate.
1366
13672023-10-23  Fran��ois Dumont  <fdumont@gcc.gnu.org>
1368
1369	* include/bits/hashtable_policy.h
1370	(_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove.
1371	(_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove.
1372	* include/bits/hashtable.h
1373	(_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New.
1374	(_M_merge_unique<>, _M_merge_multi<>): Use latter.
1375	* testsuite/23_containers/unordered_map/modifiers/merge.cc
1376	(test04, test05, test06): New test cases.
1377
13782023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1379
1380	* include/bits/fs_dir.h (directory_iterator::operator==):
1381	Define without using a non-exported shared_ptr symbol.
1382	(recursive_directory_iterator::operator==): Likewise.
1383
13842023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1385
1386	Backported from master:
1387	2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
1388
1389	* testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
1390	filesystem support.
1391
13922023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1393
1394	Backported from master:
1395	2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
1396
1397	PR libstdc++/108178
1398	* src/filesystem/ops-common.h (do_copy_file): Check for empty
1399	files by trying to read a character.
1400	* testsuite/27_io/filesystem/operations/copy_file_108178.cc:
1401	New test.
1402
14032023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1404
1405	Backported from master:
1406	2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
1407
1408	* src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
1409	close-on-exec flag on file descriptors.
1410
14112023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1412
1413	Backported from master:
1414	2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
1415
1416	* src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
1417	formatting.
1418
14192023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1420
1421	Backported from master:
1422	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
1423
1424	* src/filesystem/ops-common.h [AVR] (__unsupported): Always use
1425	errc::function_not_supported instead of errc::not_supported.
1426
14272023-10-02  Tim Song  <t.canens.cpp@gmail.com>
1428
1429	Backported from master:
1430	2023-09-28  Tim Song  <t.canens.cpp@gmail.com>
1431
1432	PR libstdc++/111050
1433	* include/bits/hashtable_policy.h
1434	(_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v())
1435	Add [[__gnu__::__always_inline__]].
1436
14372023-09-27  Jonathan Wakely  <jwakely@redhat.com>
1438
1439	Backported from master:
1440	2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
1441
1442	* include/experimental/bits/fs_path.h (path::string): Use
1443	_GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
1444	* include/std/charconv (__to_chars_8): Initialize variable for
1445	C++17 constexpr rules.
1446
14472023-09-26  Jonathan Wakely  <jwakely@redhat.com>
1448
1449	Backported from master:
1450	2023-09-25  Jonathan Wakely  <jwakely@redhat.com>
1451
1452	PR libstdc++/111511
1453	PR c++/111512
1454	* include/std/array (to_array): Qualify calls to __to_array.
1455	* testsuite/23_containers/array/creation/111512.cc: New test.
1456
14572023-09-18  Jonathan Wakely  <jwakely@redhat.com>
1458
1459	Backported from master:
1460	2023-09-18  Jonathan Wakely  <jwakely@redhat.com>
1461
1462	* doc/xml/manual/configure.xml: Use conventional option name.
1463	* doc/xml/manual/status_cxx2020.xml: Update.
1464	* doc/html/*: Regenerate.
1465
14662023-09-14  Jonathan Wakely  <jwakely@redhat.com>
1467
1468	Backported from master:
1469	2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
1470
1471	PR c++/111357
1472	* include/bits/utility.h (make_integer_sequence): Add cast.
1473	* testsuite/20_util/integer_sequence/pr111357.cc: New test.
1474
14752023-07-12  Jonathan Wakely  <jwakely@redhat.com>
1476
1477	Backported from master:
1478	2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
1479
1480	PR libstdc++/95048
1481	* testsuite/27_io/filesystem/path/construct/95048.cc: Check
1482	conversions to wide strings.
1483	* testsuite/experimental/filesystem/path/construct/95048.cc:
1484	Likewise.
1485
14862023-07-06  Jonathan Wakely  <jwakely@redhat.com>
1487
1488	Backported from master:
1489	2023-07-06  Jonathan Wakely  <jwakely@redhat.com>
1490
1491	PR libstdc++/104299
1492	* doc/xml/manual/configure.xml: Describe stdio_pure argument to
1493	--enable-cstdio.
1494	* doc/html/manual/configure.html: Regenerate.
1495
14962023-06-23  Jonathan Wakely  <jwakely@redhat.com>
1497
1498	Backported from master:
1499	2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
1500
1501	* doc/xml/manual/evolution.xml: Document removal of implicit
1502	allocator rebinding extensions in strict mode and for C++20.
1503	* doc/html/*: Regenerate.
1504
15052023-06-21  Jason Merrill  <jason@redhat.com>
1506
1507	PR tree-optimization/105651
1508	* include/bits/basic_string.tcc (_M_replace): Add an assert
1509	to avoid -Wrestrict false positive.
1510
15112023-05-30  Alexandre Oliva  <oliva@adacore.com>
1512
1513	Backported from master:
1514	2023-05-30  Alexandre Oliva  <oliva@adacore.com>
1515
1516	* testsuite/20_util/from_chars/4.cc: Skip long double test06
1517	on x86_64-vxworks.
1518	* testsuite/20_util/to_chars/long_double.cc: Xfail run on
1519	x86_64-vxworks.
1520
15212023-05-30  Alexandre Oliva  <oliva@adacore.com>
1522
1523	Backported from master:
1524	2023-05-25  Alexandre Oliva  <oliva@adacore.com>
1525
1526	* testsuite/20_util/to_chars/long_double.cc: Expect execution
1527	fail on x86-vxworks.
1528
15292023-05-30  Alexandre Oliva  <oliva@adacore.com>
1530
1531	Backported from master:
1532	2023-05-05  Alexandre Oliva  <oliva@adacore.com>
1533
1534	* testsuite/20_util/from_chars/4.cc: Skip long double test06
1535	on aarch64-vxworks.
1536	* testsuite/20_util/to_chars/long_double.cc: Xfail run on
1537	aarch64-vxworks.
1538
15392023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1540
1541	Backported from master:
1542	2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1543
1544	PR libstdc++/109822
1545	* include/experimental/bits/simd.h (to_native): Use int NTTP
1546	as specified in PTS2.
1547	(to_compatible): Likewise. Add missing tag to call mask
1548	generator ctor.
1549	* testsuite/experimental/simd/pr109822_cast_functions.cc: New
1550	test.
1551
15522023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1553
1554	Backported from master:
1555	2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1556
1557	* testsuite/experimental/simd/tests/integer_operators.cc:
1558	Compute expected value differently to avoid getting turned into
1559	a vector shift.
1560
15612023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1562
1563	Backported from master:
1564	2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1565
1566	* testsuite/experimental/simd/tests/operator_cvt.cc: Make long
1567	double <-> (u)long conversion tests conditional on sizeof(long
1568	double) and sizeof(long).
1569
15702023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1571
1572	Backported from master:
1573	2023-05-26  Matthias Kretz  <m.kretz@gsi.de>
1574
1575	* include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
1576	Negative __y is UB, so prefer signed compare.
1577
15782023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1579
1580	Backported from master:
1581	2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1582
1583	PR libstdc++/109949
1584	* include/experimental/bits/simd.h (__intrinsic_type): If
1585	__ALTIVEC__ is defined, map gnu::vector_size types to their
1586	corresponding __vector T types without losing unsignedness of
1587	integer types. Also prefer long long over long.
1588	* include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
1589	object to the expected unsigned vector type.
1590
15912023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1592
1593	Backported from master:
1594	2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1595
1596	PR libstdc++/109261
1597	* include/experimental/bits/simd.h (__intrinsic_type):
1598	Specialize __intrinsic_type<double, 8> and
1599	__intrinsic_type<double, 16> in any case, but provide the member
1600	type only with __aarch64__.
1601
16022023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1603
1604	Backported from master:
1605	2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1606
1607	PR libstdc++/109261
1608	* include/experimental/bits/simd_neon.h (_S_reduce): Add
1609	constexpr and make NEON implementation conditional on
1610	not __builtin_is_constant_evaluated.
1611
16122023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1613
1614	Backported from master:
1615	2023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1616
1617	PR libstdc++/109261
1618	* include/experimental/bits/simd.h (_SimdWrapper::_M_set):
1619	Avoid vector builtin subscripting in constant expressions.
1620	(resizing_simd_cast): Avoid memcpy if constant_evaluated.
1621	(const_where_expression, where_expression, where)
1622	(__extract_part, simd_mask, _SimdIntOperators, simd): Add either
1623	_GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
1624	internal APIs).
1625	* include/experimental/bits/simd_builtin.h (__vector_permute)
1626	(__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
1627	(_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
1628	(_MaskImplBuiltin::_S_store): Add constexpr.
1629	(_CommonImplBuiltin::_S_store_bool_array)
1630	(_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
1631	(_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
1632	constant_evaluated case.
1633	* include/experimental/bits/simd_fixed_size.h
1634	(_S_masked_load): Reword comment.
1635	(__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
1636	(_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
1637	(__make_simd_tuple, __optimize_simd_tuple, __extract_part)
1638	(__autocvt_to_simd, _Fixed::__traits::_SimdBase)
1639	(_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
1640	constexpr.
1641	(_SimdTuple::operator[], _M_set): Add constexpr and add
1642	constant_evaluated case.
1643	(_MaskImplFixedSize::_S_load): Add constant_evaluated case.
1644	* include/experimental/bits/simd_scalar.h: Add constexpr.
1645	* include/experimental/bits/simd_x86.h (_CommonImplX86): Add
1646	constexpr and add constant_evaluated case.
1647	(_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
1648	(_S_less_equal): Value-initialize to satisfy constexpr
1649	evaluation.
1650	(_MaskImplX86::_S_load): Add constant_evaluated case.
1651	(_MaskImplX86::_S_store): Add constexpr and constant_evaluated
1652	case. Value-initialize local variables.
1653	(_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
1654	(_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
1655	case.
1656	* testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
1657	test.
1658
16592023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1660
1661	Backported from master:
1662	2023-05-22  Matthias Kretz  <m.kretz@gsi.de>
1663
1664	* include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
1665	__infn into #ifdef'ed block.
1666	* testsuite/experimental/simd/tests/fpclassify.cc: Declare
1667	constants only when used.
1668	* testsuite/experimental/simd/tests/frexp.cc: Likewise.
1669	* testsuite/experimental/simd/tests/logarithm.cc: Likewise.
1670	* testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
1671	Likewise.
1672	* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1673	Move totest and expect1 into #ifdef'ed block.
1674
16752023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1676
1677	Backported from master:
1678	2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
1679
1680	* include/experimental/bits/simd.h (is_simd_flag_type): New.
1681	(_IsSimdFlagType): New.
1682	(copy_from, copy_to, load ctors): Constrain _Flags using
1683	_IsSimdFlagType.
1684
16852023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1686
1687	Backported from master:
1688	2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
1689
1690	* include/experimental/bits/simd_x86.h (_SimdImplX86): Use
1691	_Base::_S_divides if the optimized _S_divides function is hidden
1692	via the preprocessor.
1693
16942023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1695
1696	Backported from master:
1697	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
1698
1699	* include/experimental/bits/simd_detail.h: Don't declare the
1700	simd API as constexpr with Clang.
1701	* include/experimental/bits/simd_x86.h (__movm): New.
1702	(_S_blend_avx512): Resolve FIXME. Implement blend using __movm
1703	and ?:.
1704	(_SimdImplX86::_S_masked_unary): Clang does not implement the
1705	same builtins. Implement the function using __movm, ?:, and -
1706	operators on vector_size types instead.
1707
17082023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1709
1710	Backported from master:
1711	2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
1712
1713	* include/experimental/bits/simd.h: Line breaks and indenting
1714	fixed to follow the libstdc++ standard.
1715	* include/experimental/bits/simd_builtin.h: Likewise.
1716	* include/experimental/bits/simd_fixed_size.h: Likewise.
1717	* include/experimental/bits/simd_neon.h: Likewise.
1718	* include/experimental/bits/simd_ppc.h: Likewise.
1719	* include/experimental/bits/simd_scalar.h: Likewise.
1720	* include/experimental/bits/simd_x86.h: Likewise.
1721
17222023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1723
1724	Backported from master:
1725	2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
1726
1727	PR libstdc++/108030
1728	* include/experimental/bits/simd_fixed_size.h
1729	(_SimdImplFixedSize::_S_broadcast): Replace inline with
1730	_GLIBCXX_SIMD_INTRINSIC.
1731	(_SimdImplFixedSize::_S_generate): Likewise.
1732	(_SimdImplFixedSize::_S_load): Likewise.
1733	(_SimdImplFixedSize::_S_masked_load): Likewise.
1734	(_SimdImplFixedSize::_S_store): Likewise.
1735	(_SimdImplFixedSize::_S_masked_store): Likewise.
1736	(_SimdImplFixedSize::_S_min): Likewise.
1737	(_SimdImplFixedSize::_S_max): Likewise.
1738	(_SimdImplFixedSize::_S_complement): Likewise.
1739	(_SimdImplFixedSize::_S_unary_minus): Likewise.
1740	(_SimdImplFixedSize::_S_plus): Likewise.
1741	(_SimdImplFixedSize::_S_minus): Likewise.
1742	(_SimdImplFixedSize::_S_multiplies): Likewise.
1743	(_SimdImplFixedSize::_S_divides): Likewise.
1744	(_SimdImplFixedSize::_S_modulus): Likewise.
1745	(_SimdImplFixedSize::_S_bit_and): Likewise.
1746	(_SimdImplFixedSize::_S_bit_or): Likewise.
1747	(_SimdImplFixedSize::_S_bit_xor): Likewise.
1748	(_SimdImplFixedSize::_S_bit_shift_left): Likewise.
1749	(_SimdImplFixedSize::_S_bit_shift_right): Likewise.
1750	(_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
1751	explicit about not always-inline, yet).
1752	(_SimdImplFixedSize::_S_isinf): Likewise.
1753	(_SimdImplFixedSize::_S_isfinite): Likewise.
1754	(_SimdImplFixedSize::_S_isnan): Likewise.
1755	(_SimdImplFixedSize::_S_isnormal): Likewise.
1756	(_SimdImplFixedSize::_S_signbit): Likewise.
1757
17582023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1759
1760	Backported from master:
1761	2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
1762
1763	PR libstdc++/108856
1764	* include/experimental/bits/simd_builtin.h
1765	(_SimdImplBuiltin::_S_masked_unary): More efficient
1766	implementation of masked inc-/decrement for integers and floats
1767	without AVX2.
1768	* include/experimental/bits/simd_x86.h
1769	(_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
1770	builtins for masked inc-/decrement.
1771
17722023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1773
1774	Backported from master:
1775	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
1776
1777	* testsuite/experimental/simd/tests/reductions.cc: Introduce
1778	max_distance as the type-dependent max error.
1779
17802023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1781
1782	Backported from master:
1783	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
1784
1785	PR libstdc++/108030
1786	* include/experimental/bits/simd_detail.h
1787	(_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
1788	__clang__.
1789
17902023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1791
1792	Backported from master:
1793	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
1794
1795	PR libstdc++/108030
1796	* include/experimental/bits/simd_detail.h: Define
1797	_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
1798	* include/experimental/bits/simd.h: Annotate lambdas with
1799	_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
1800	* include/experimental/bits/simd_builtin.h: Ditto.
1801	* include/experimental/bits/simd_converter.h: Ditto.
1802	* include/experimental/bits/simd_fixed_size.h: Ditto.
1803	* include/experimental/bits/simd_math.h: Ditto.
1804	* include/experimental/bits/simd_neon.h: Ditto.
1805	* include/experimental/bits/simd_x86.h: Ditto.
1806
18072023-05-16  Jonathan Wakely  <jwakely@redhat.com>
1808
1809	Backported from master:
1810	2022-11-28  Jonathan Wakely  <jwakely@redhat.com>
1811
1812	PR libstdc++/107801
1813	* src/c++17/memory_resource.cc (chunk::_M_bytes): Change type
1814	from uint32_t to bitset::size_type. Adjust static assertion.
1815	(__pool_resource::_Pool::replenish): Cast to size_t after
1816	multiplication instead of before.
1817	(__pool_resource::_M_alloc_pools): Ensure both arguments to
1818	std::max have type size_t.
1819
18202023-05-11  Jonathan Wakely  <jwakely@redhat.com>
1821
1822	Backported from master:
1823	2022-11-16  Jonathan Wakely  <jwakely@redhat.com>
1824
1825	* python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make
1826	expansion of std::string in manager name more robust.
1827
18282023-05-08  Release Manager
1829
1830	* GCC 12.3.0 released.
1831
18322023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
1833
1834	Backported from master:
1835	2023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
1836		    Jonathan Wakely  <jwakely@redhat.com>
1837
1838	PR libstdc++/109703
1839	* include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
1840	Initialize _M_string_length.
1841
18422023-05-03  Jonathan Wakely  <jwakely@redhat.com>
1843
1844	Backported from master:
1845	2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
1846
1847	* doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
1848	from header paths.
1849
18502023-04-29  Patrick Palka  <ppalka@redhat.com>
1851
1852	Backported from master:
1853	2023-04-12  Patrick Palka  <ppalka@redhat.com>
1854
1855	* include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
1856	Propagate _M_trailing_empty in the const-converting constructor
1857	as per LWG 3904.
1858	* testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
1859
18602023-04-29  Patrick Palka  <ppalka@redhat.com>
1861
1862	Backported from master:
1863	2023-03-14  Patrick Palka  <ppalka@redhat.com>
1864
1865	* include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
1866	Define.
1867	(__cpp_lib_move_iterator_concept): Define for C++20.
1868	(move_iterator::iterator_concept): Strengthen as per P2520R0.
1869	* include/std/version (__cpp_lib_move_iterator_concept): Define
1870	for C++20.
1871	* testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
1872
18732023-04-29  Patrick Palka  <ppalka@redhat.com>
1874
1875	Backported from master:
1876	2023-03-09  Patrick Palka  <ppalka@redhat.com>
1877
1878	PR libstdc++/108362
1879	* include/std/ranges (__detail::__can_single_view): New concept.
1880	(_Single::operator()): Constrain it.  Move [[nodiscard]] to the
1881	end of the function declarator.
1882	(__detail::__can_iota_view): New concept.
1883	(_Iota::operator()): Constrain it.  Move [[nodiscard]] to the
1884	end of the function declarator.
1885	(__detail::__can_istream_view): New concept.
1886	(_Istream::operator()): Constrain it.  Move [[nodiscard]] to the
1887	end of the function declarator.
1888	* testsuite/std/ranges/iota/lwg3292_neg.cc: Prune "in
1889	requirements" diagnostic.
1890	* testsuite/std/ranges/iota/iota_view.cc (test07): New test.
1891	* testsuite/std/ranges/istream_view.cc (test08): New test.
1892	* testsuite/std/ranges/single_view.cc (test07): New test.
1893
18942023-04-28  Patrick Palka  <ppalka@redhat.com>
1895
1896	Backported from master:
1897	2023-04-24  Patrick Palka  <ppalka@redhat.com>
1898
1899	* include/bits/max_size_type.h (__max_diff_type::operator>>=):
1900	Fix propagation of sign bit.
1901	* testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
1902	non-standard 'signed typedef-name'.  Add some compile-time tests
1903	for right-shifting a negative __max_diff_type value by more than
1904	one.
1905
19062023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1907
1908	* include/std/atomic: Add missing @endcond doxygen comment.
1909
19102023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1911
1912	Backported from master:
1913	2022-11-25  Jonathan Wakely  <jwakely@redhat.com>
1914
1915	PR libstdc++/107850
1916	* include/bits/erase_if.h (__erase_nodes_if): Use non-const
1917	reference to the container.
1918	* include/experimental/map (erase_if): Likewise.
1919	* include/experimental/set (erase_if): Likewise.
1920	* include/experimental/unordered_map (erase_if): Likewise.
1921	* include/experimental/unordered_set (erase_if): Likewise.
1922	* include/std/map (erase_if): Likewise.
1923	* include/std/set (erase_if): Likewise.
1924	* include/std/unordered_map (erase_if): Likewise.
1925	* include/std/unordered_set (erase_if): Likewise.
1926	* testsuite/23_containers/map/erasure.cc: Check with
1927	const-incorrect predicate.
1928	* testsuite/23_containers/set/erasure.cc: Likewise.
1929	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
1930	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
1931	* testsuite/experimental/map/erasure.cc: Likewise.
1932	* testsuite/experimental/set/erasure.cc: Likewise.
1933	* testsuite/experimental/unordered_map/erasure.cc: Likewise.
1934	* testsuite/experimental/unordered_set/erasure.cc: Likewise.
1935
19362023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1937
1938	Backported from master:
1939	2022-11-28  Jonathan Wakely  <jwakely@redhat.com>
1940
1941	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1942	Replace non-ASCII character.
1943
19442023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1945
1946	Backported from master:
1947	2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
1948
1949	PR libstdc++/108952
1950	* include/bits/uses_allocator_args.h
1951	(uses_allocator_construction_args): Implement LWG 3527.
1952	* testsuite/20_util/pair/astuple/get-2.cc: New test.
1953	* testsuite/20_util/scoped_allocator/108952.cc: New test.
1954	* testsuite/20_util/uses_allocator/lwg3527.cc: New test.
1955
19562023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1957
1958	Backported from master:
1959	2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
1960
1961	PR libstdc++/109339
1962	* include/std/stop_token (_Stop_state_ptr(const stop_source&)):
1963	Add attribute access with access-mode 'none'.
1964	* testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
1965
19662023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1967
1968	Backported from master:
1969	2022-11-28  Jonathan Wakely  <jwakely@redhat.com>
1970
1971	PR libstdc++/107466
1972	* include/bits/random.h (subtract_with_carry_engine): Use 32-bit
1973	type for default seed. Use 0u as default argument for
1974	subtract_with_carry_engine(result_type) constructor and
1975	seed(result_type) member function.
1976	* include/bits/random.tcc (subtract_with_carry_engine): Use
1977	32-bit type for default seed and engine used for initial state.
1978	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1979	New test.
1980
19812023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1982
1983	Backported from master:
1984	2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1985
1986	* include/bits/mofunc_impl.h: Fix typo in doxygen comment.
1987
19882023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1989
1990	Backported from master:
1991	2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1992
1993	* doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
1994	HTML docs.
1995	* include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
1996	from doxygen docs.
1997	* include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
1998	Likewise.
1999	* include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
2000	Likewise.
2001	* include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
2002	Likewise.
2003	* include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
2004	(_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
2005	(_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
2006	(_DEFINE_BINARY_OPERATOR): Likewise.
2007
20082023-04-21  Jonathan Wakely  <jwakely@redhat.com>
2009
2010	PR libstdc++/103755
2011	* include/bits/locale_classes.tcc (try_facet, use_facet): Do not
2012	check array index or dynamic type when accessing required
2013	specializations of std::ctype, std::num_get, or std::num_put.
2014	* testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust
2015	expected errors.
2016
20172023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2018
2019	Backported from master:
2020	2022-11-29  Jonathan Wakely  <jwakely@redhat.com>
2021
2022	PR libstdc++/107852
2023	PR libstdc++/106199
2024	PR libstdc++/100366
2025	* include/bits/vector.tcc (vector::_M_fill_insert): Copy
2026	_M_start and _M_finish members before allocating.
2027	(vector::_M_default_append): Likewise.
2028	(vector::_M_range_insert): Likewise.
2029
20302023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2031
2032	Backported from master:
2033	2023-04-04  Jonathan Wakely  <jwakely@redhat.com>
2034
2035	* doc/xml/manual/extensions.xml: Remove std::bad_exception from
2036	example program.
2037	* doc/html/manual/ext_demangling.html: Regenerate.
2038
20392023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2040
2041	Backported from master:
2042	2023-04-05  Jonathan Wakely  <jwakely@redhat.com>
2043
2044	* include/bits/regex.h (sub_match::swap): New function.
2045	* testsuite/28_regex/sub_match/lwg3204.cc: New test.
2046
20472023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2048
2049	Backported from master:
2050	2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2051
2052	PR libstdc++/103387
2053	* include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
2054	std::use_facet instead of cached _M_num_get facet.
2055	(istream::operator>>(short&)): Likewise.
2056	(istream::operator>>(int&)): Likewise.
2057	* include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
2058	std::use_facet instead of cached _M_num_put facet.
2059
20602023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2061
2062	Backported from master:
2063	2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
2064
2065	* testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
2066	dg-options.
2067
20682023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2069
2070	Backported from master:
2071	2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
2072
2073	* include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
2074	Add overload, as per LWG 3893.
2075	* testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2076	Check assignment from nullptr.
2077
20782023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2079
2080	Backported from master:
2081	2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
2082
2083	* include/std/expected (expected::value() &): Use const lvalue
2084	for unex member passed to bad_expected_access constructor, as
2085	per LWG 3843.
2086
20872023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2088
2089	Backported from master:
2090	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2091
2092	* include/std/variant (variant::operator=): Implement resolution
2093	of LWG 3585.
2094	* testsuite/20_util/variant/lwg3585.cc: New test.
2095
20962023-04-12  Patrick Palka  <ppalka@redhat.com>
2097
2098	Backported from master:
2099	2023-04-12  Patrick Palka  <ppalka@redhat.com>
2100
2101	* src/c++17/floating_from_chars.cc: Include <algorithm>,
2102	<iterator>, <limits> and <cstdint>.
2103
21042023-03-30  Jonathan Wakely  <jwakely@redhat.com>
2105
2106	Backported from master:
2107	2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
2108
2109	PR libstdc++/109242
2110	* include/std/optional (transform): Use std::remove_cv_t.
2111	* testsuite/20_util/optional/monadic/pr109242.cc: New test.
2112
21132023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2114
2115	Backported from master:
2116	2022-12-16  Jonathan Wakely  <jwakely@redhat.com>
2117
2118	PR libstdc++/108118
2119	* include/bits/shared_ptr_base.h (weak_ptr::operator=):
2120	Implement as move-and-swap exactly as specified in the standard.
2121	* testsuite/20_util/weak_ptr/cons/self_move.cc: New test.
2122
21232023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2124
2125	Backported from master:
2126	2022-11-03  Jonathan Wakely  <jwakely@redhat.com>
2127
2128	* include/bits/ranges_algobase.h (__detail::__copy_or_move):
2129	Move output iterator.
2130	* testsuite/25_algorithms/copy/constrained.cc: Check copying to
2131	move-only output iterator.
2132
21332023-03-28  Bj��rn Sch��pers  <bjoern@hazardy.de>
2134
2135	Backported from master:
2136	2023-01-14  Bj��rn Sch��pers  <bjoern@hazardy.de>
2137
2138	* include/std/stacktrace (stacktrace_entry::_S_demangle): Use
2139	raw __name if __cxa_demangle could not demangle it.
2140
21412023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2142
2143	Backported from master:
2144	2022-12-12  Jonathan Wakely  <jwakely@redhat.com>
2145
2146	* include/std/stacktrace (operator<<): Only output to narrow
2147	ostreams (LWG 3515).
2148	* testsuite/19_diagnostics/stacktrace/synopsis.cc:
2149
21502023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2151
2152	Backported from master:
2153	2022-12-09  Jonathan Wakely  <jwakely@redhat.com>
2154
2155	* include/bits/chrono.h (duration_cast, floor, round, abs, ceil)
2156	(time_point_cast): Add [[nodiscard]] attribute and doxygen
2157	comments.
2158	(treat_as_floating_point): Add doxygen commen.
2159
21602023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2161
2162	Backported from master:
2163	2022-12-09  Jonathan Wakely  <jwakely@redhat.com>
2164
2165	* include/bits/chrono.h (duration, time_point): Change 'struct'
2166	to 'class'.
2167
21682023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2169
2170	Backported from master:
2171	2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
2172
2173	PR libstdc++/108554
2174	* include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
2175	nonnull attribute.
2176	(_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
2177	attributes.
2178	* testsuite/23_containers/map/modifiers/108554.cc: New test.
2179
21802023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2181
2182	Backported from master:
2183	2022-09-23  Jonathan Wakely  <jwakely@redhat.com>
2184
2185	* include/std/bitset (bitset::_M_copy_to_string): Find set bits
2186	instead of iterating over individual bits.
2187
21882023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2189
2190	Backported from master:
2191	2022-09-15  Jonathan Wakely  <jwakely@redhat.com>
2192
2193	* include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
2194	Replace with ...
2195	(_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
2196	(_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
2197	try_lock_failed flag
2198	(_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
2199	(_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
2200	(_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
2201	(_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
2202	(_Sp_atomic::_Atomic_count::lock): Use new macros.
2203
22042023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2205
2206	Backported from master:
2207	2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
2208
2209	* include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
2210	(_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
2211	(_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
2212	(_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
2213	Define macros for TSan annotation functions.
2214	(_Sp_atomic::_Atomic_count): Add annotations.
2215
22162023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2217
2218	Backported from master:
2219	2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
2220
2221	* include/std/memory_resource (new_delete_resource): Add
2222	nodiscard, returns_nonnull and const attributes.
2223	(null_memory_resource): Likewise.
2224	(set_default_resource, get_default_resource): Add returns_nonnull
2225	attribute.
2226	(memory_resource::is_equal): Add nodiscard attribute.
2227	(operator==, operator!=): Likewise.
2228
22292023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2230
2231	Backported from master:
2232	2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
2233
2234	* include/std/future
2235	(_State_baseV2::__setter(exception_ptr&, promise&)): Add
2236	assertion for LWG 2276 precondition.
2237	* testsuite/30_threads/promise/members/set_exception_neg.cc:
2238	New test.
2239
22402023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2241
2242	Backported from master:
2243	2022-09-08  Jonathan Wakely  <jwakely@redhat.com>
2244
2245	* include/c_global/cstddef (byte): Add always_inline attribute
2246	to all operator overloads.
2247	(to_integer): Add always_inline attribute.
2248
22492023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2250
2251	Backported from master:
2252	2022-09-08  Jonathan Wakely  <jwakely@redhat.com>
2253
2254	* include/std/system_error (__adl_only::make_error_code): Add
2255	deleted function.
2256	(__adl_only::make_error_condition): Likewise.
2257	(error_code::error_code(ErrorCodeEnum)): Add using-declaration
2258	for deleted function.
2259	(error_condition::error_condition(ErrorConditionEnum)):
2260	Likewise.
2261	* testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
2262	* testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
2263
22642023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2265
2266	Backported from master:
2267	2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
2268
2269	* include/bits/ios_base.h (io_category): Add const and nodiscard
2270	attributes.
2271	(make_error_code, make_error_condition): Add nodiscard.
2272	* include/std/future (future_category): Add const and nodiscard.
2273	(make_error_code, make_error_condition): Add nodiscard.
2274	* include/std/system_error (generic_category system_category):
2275	Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
2276	(error_code::value, error_code::category, error_code::operator bool)
2277	(error_condition::value, error_condition::category)
2278	(error_condition::operator bool, make_error_code)
2279	(make_error_condition, operator==, operator!=, operator<=>): Add
2280	nodiscard.
2281
22822023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2283
2284	Backported from master:
2285	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
2286
2287	* include/bits/std_thread.h (thread, thread::id): Improve
2288	doxygen docs.
2289	* include/std/future: Likewise.
2290	* include/std/thread (jthread): Likewise.
2291
22922023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2293
2294	Backported from master:
2295	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
2296
2297	* include/std/system_error: Improve doxygen comments.
2298
22992023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2300
2301	Backported from master:
2302	2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2303
2304	* include/ext/throw_allocator.h: Use reserved names for
2305	parameters.
2306
23072023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2308
2309	Backported from master:
2310	2022-11-25  Jonathan Wakely  <jwakely@redhat.com>
2311
2312	* acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT
2313	unless the AC_MSG_CHECKING happened.
2314	* configure: Regenerate.
2315
23162023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2317
2318	Backported from master:
2319	2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
2320
2321	* doc/xml/manual/abi.xml: Add latest library versions.
2322	* doc/html/manual/abi.html: Regenerate.
2323
23242023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2325
2326	Backported from master:
2327	2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2328
2329	* include/bits/char_traits.h (char_traits::copy): Return without
2330	using memcpy if n==0.
2331	(char_traits::assign): Likewise for memset.
2332
23332023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2334
2335	Backported from master:
2336	2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2337
2338	PR libstdc++/109299
2339	* include/bits/basic_string.h (basic_string::_M_is_local()): Add
2340	hint for compiler that local strings fit in the local buffer.
2341
23422023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2343
2344	Backported from master:
2345	2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
2346
2347	* include/bits/cow_string.h: Fix typo in comment.
2348
23492023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2350
2351	Backported from master:
2352	2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2353
2354	* include/experimental/optional: Fix header name in comment.
2355
23562023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2357
2358	Backported from master:
2359	2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
2360
2361	PR libstdc++/108413
2362	* include/c_compatibility/stdatomic.h: Change copyright line to
2363	be consistent with other headers contributed under DCO terms.
2364	* include/std/expected: Add full stop to copyright line.
2365
23662023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2367
2368	Backported from master:
2369	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2370
2371	* include/experimental/bits/simd_x86.h
2372	(_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
2373	with __RECIPROCAL_MATH__.
2374
23752023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2376
2377	Backported from master:
2378	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2379
2380	* include/experimental/bits/simd_detail.h: Don't define
2381	_GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
2382	* include/experimental/bits/simd_x86.h (_S_divides): Remove
2383	check for __clang__.
2384
23852023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2386
2387	Backported from master:
2388	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2389
2390	* testsuite/experimental/simd/tests/operators.cc: Clang doesn't
2391	define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
2392
23932023-03-20  Fran��ois Dumont  <fdumont@gcc.gnu.org>
2394
2395	Backported from master:
2396	2022-11-16  Fran��ois Dumont  <fdumont@gcc.gnu.org>
2397
2398	* python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field
2399	'template'. Add self.targ1 to specify the first template parameter of the instantiation
2400	to match.
2401	(add_one_type_printer): Add targ1 optional parameter, default to None.
2402	Use gdb.types.get_basic_type to compare the type to recognize and the type
2403	returned from the typedef lookup.
2404	(register_type_printers): Adapt calls to add_one_type_printers.
2405
24062023-03-20  Fran��ois Dumont  <fdumont@gcc.gnu.org>
2407
2408	Backported from master:
2409	2022-10-03  Fran��ois Dumont  <fdumont@gcc.gnu.org>
2410
2411	* python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
2412	namespace for __cxx11 symbols.
2413	(add_one_template_type_printer): Likewise.
2414	(add_one_type_printer): Likewise.
2415	(FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
2416	ambiguous typedef matching both std:: and std::__cxx11:: symbols.
2417	* testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
2418	\#define _GLIBCXX_USE_CXX11_ABI 0.
2419	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
2420	std::__cxx11::list.
2421	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2422	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2423	* testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
2424	and debug mode.
2425	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2426
24272023-03-20  Fran��ois Dumont  <fdumont@gcc.gnu.org>
2428
2429	Backported from master:
2430	2022-09-22  Fran��ois Dumont  <fdumont@gcc.gnu.org>
2431
2432	* python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
2433	types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
2434	std::__debug::priority_queue.
2435
24362023-03-20  Jonathan Wakely  <jwakely@redhat.com>
2437
2438	Backported from master:
2439	2023-03-10  Jonathan Wakely  <jwakely@redhat.com>
2440
2441	PR libstdc++/109064
2442	* python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
2443	Remove self-recursion in __init__. Add missing _supports.
2444	* testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
2445	and unique().
2446
24472023-03-20  Jonathan Wakely  <jwakely@redhat.com>
2448
2449	PR libstdc++/109182
2450	* include/std/expected (expected<void>::expected(in_place_t)):
2451	Remove template-head.
2452
24532023-03-20  Jonathan Wakely  <jwakely@redhat.com>
2454
2455	PR libstdc++/109165
2456	* include/std/coroutine (hash<>::operator()): Add const.
2457	* testsuite/18_support/coroutines/hash.cc: New test.
2458
24592023-03-10  Thomas W Rodgers  <rodgert@twrodgers.com>
2460
2461	Backported from master:
2462	2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
2463
2464	PR libstdc++/103934
2465	* include/std/atomic (atomic_flag_wait): Add.
2466	(atomic_flag_wait_explicit): Add.
2467	(atomic_flag_notify): Add.
2468	(atomic_flag_notify_explicit): Add.
2469	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
2470	Add test case to cover missing atomic_flag free functions.
2471
24722023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2473
2474	Backported from master:
2475	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2476
2477	PR libstdc++/108030
2478	* include/experimental/bits/simd.h (__vector_broadcast):
2479	Implement via __vector_broadcast_impl instead of
2480	__call_with_n_evaluations + 2 lambdas.
2481	(__vector_broadcast_impl): New.
2482
24832023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2484
2485	Backported from master:
2486	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2487
2488	* include/experimental/bits/simd_builtin.h (_S_set): Compare as
2489	int. The actual range of these indexes is very small.
2490
24912023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2492
2493	Backported from master:
2494	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2495
2496	* include/experimental/bits/simd_x86.h (_S_bit_shift_left)
2497	(_S_bit_shift_right): Declare constexpr. The implementation was
2498	already expecting constexpr evaluation.
2499
25002023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2501
2502	Backported from master:
2503	2023-02-20  Matthias Kretz  <m.kretz@gsi.de>
2504
2505	* include/experimental/bits/simd.h (__extract_part, split):
2506	Use reserved name for template parameter.
2507
25082023-02-21  Jonathan Wakely  <jwakely@redhat.com>
2509
2510	Backported from master:
2511	2022-08-31  Jonathan Wakely  <jwakely@redhat.com>
2512
2513	* include/bits/refwrap.h (reference_wrapper::operator()): Add
2514	noexcept-specifier and use __invoke_result instead of result_of.
2515	* testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
2516
25172023-02-21  Jonathan Wakely  <jwakely@redhat.com>
2518
2519	Backported from master:
2520	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2521
2522	PR libstdc++/108636
2523	* include/bits/fs_path.h (path::path(string_view, _Type))
2524	(path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
2525	definitions to ...
2526	* src/c++17/fs_path.cc: ... here.
2527	* testsuite/27_io/filesystem/path/108636.cc: New test.
2528
25292023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2530
2531	Backported from master:
2532	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2533
2534	* include/experimental/bits/simd_math.h (__hypot): Bitcasting
2535	between scalars requires the __bit_cast helper function instead
2536	of simd_bit_cast.
2537
25382023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2539
2540	Backported from master:
2541	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2542
2543	* include/experimental/bits/simd_x86.h
2544	(_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
2545	(_SimdImplX86::_S_less_equal): Do not call
2546	__builtin_is_constant_evaluated in constexpr-if.
2547
25482023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2549
2550	Backported from master:
2551	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2552
2553	* testsuite/experimental/simd/tests/bits/verify.h
2554	(verify::verify): Use %zx for size_t in format string.
2555
25562023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2557
2558	Backported from master:
2559	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2560
2561	* testsuite/experimental/simd/README.md: Document the timeout
2562	and timeout-factor directives. Minor typo fixed.
2563
25642023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2565
2566	Backported from master:
2567	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2568
2569	* include/experimental/bits/simd.h
2570	(_SimdWrapper::_M_is_constprop_none_of)
2571	(_SimdWrapper::_M_is_constprop_all_of): Return false unless the
2572	computed result still satisfies __builtin_constant_p.
2573
25742023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
2575
2576	Backported from master:
2577	2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
2578
2579	PR libstdc++/103934
2580	* include/std/atomic (atomic_flag_test): Add.
2581	(atomic_flag_test_explicit): Add.
2582	* testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
2583	test case to cover missing atomic_flag free functions.
2584	* testsuite/29_atomics/atomic_flag/test/implicit.cc:
2585	Likewise.
2586
25872023-02-10  Jakub Jelinek  <jakub@redhat.com>
2588
2589	Backported from master:
2590	2022-11-24  Jakub Jelinek  <jakub@redhat.com>
2591
2592	PR libstdc++/107468
2593	* src/c++17/fast_float/fast_float.h: Partial merge from fast_float
2594	2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit.
2595
25962023-02-10  Jakub Jelinek  <jakub@redhat.com>
2597
2598	Backported from master:
2599	2022-11-07  Jakub Jelinek  <jakub@redhat.com>
2600
2601	PR libstdc++/107468
2602	* src/c++17/fast_float/fast_float.h: Partial merge from fast_float
2603	662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
2604	* testsuite/20_util/from_chars/pr107468.cc: New test.
2605
26062023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2607
2608	Backported from master:
2609	2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
2610
2611	* src/c++11/random.cc (random_device::_M_fini): Do not try to
2612	close the file handle if the target doesn't support the
2613	/dev/random and /dev/urandom files.
2614
26152023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2616
2617	Backported from master:
2618	2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
2619
2620	* config/os/generic/error_constants.h (errc::value_too_large)
2621	[__AVR__]: Define.
2622	* src/c++11/system_error.cc
2623	(system_category::default_error_condition) [__AVR__]: Only match
2624	recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
2625	* src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
2626	for ENOENT etc. in switch.
2627	(fs::remove_all) [__AVR__]: Likewise.
2628	* src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
2629	close etc.
2630
26312023-02-02  Patrick Palka  <ppalka@redhat.com>
2632
2633	Backported from master:
2634	2022-11-06  Patrick Palka  <ppalka@redhat.com>
2635
2636	* include/bits/atomic_wait.h (_detail::__platform_wait_alignment):
2637	Declare inline.  Remove redundant static specifier.
2638	(__detail::__atomic_spin_count_relax): Declare inline.
2639	(__detail::__atomic_spin_count): Likewise.
2640	* include/bits/regex_automaton.h (__detail::_S_invalid_state_id):
2641	Declare inline for C++17.  Declare constexpr.  Remove
2642	redundant const and static specifiers.
2643	* include/bits/regex_error.h (regex_constants::error_collate):
2644	Declare inline for C++17 as per P0607R0.
2645	(regex_constants::error_ctype): Likewise.
2646	(regex_constants::error_escape): Likewise.
2647	(regex_constants::error_backref): Likewise.
2648	(regex_constants::error_brack): Likewise.
2649	(regex_constants::error_paren): Likewise.
2650	(regex_constants::error_brace): Likewise.
2651	(regex_constants::error_badbrace): Likewise.
2652	(regex_constants::error_range): Likewise.
2653	(regex_constants::error_space): Likewise.
2654	(regex_constants::error_badrepeat): Likewise.
2655	(regex_constants::error_complexity): Likewise.
2656	(regex_constants::error_stack): Likewise.
2657	* include/ext/concurrence.h (__gnu_cxx::__default_lock_policy):
2658	Likewise.  Remove redundant static specifier.
2659	* include/pstl/execution_defs.h (execution::seq): Declare inline
2660	for C++17 as per P0607R0.
2661	(execution::par): Likewise.
2662	(execution::par_unseq): Likewise.
2663	(execution::unseq): Likewise.
2664
26652023-01-18  Jonathan Wakely  <jwakely@redhat.com>
2666
2667	Backported from master:
2668	2022-12-22  Jonathan Wakely  <jwakely@redhat.com>
2669
2670	PR libstdc++/105730
2671	* src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
2672	Access private data member of base class and call its wait
2673	member.
2674
26752023-01-16  Jonathan Wakely  <jwakely@redhat.com>
2676
2677	Backported from master:
2678	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
2679
2680	PR libstdc++/106183
2681	* include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
2682	Move increment of _M_ver here.
2683	[!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
2684	Use relaxed memory order and always notify all waiters.
2685	(__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
2686	Check value again after locking mutex.
2687	(__waiter_base::_M_notify): Remove increment of _M_ver.
2688
26892023-01-05  Jonathan Wakely  <jwakely@redhat.com>
2690
2691	Backported from master:
2692	2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
2693
2694	PR libstdc++/108265
2695	* include/std/chrono (hh_mm_ss): Do not use chrono::abs if
2696	duration rep is unsigned. Remove incorrect noexcept-specifier.
2697	* testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check
2698	floating-point representations. Check default construction.
2699
27002022-12-21  Jonathan Wakely  <jwakely@redhat.com>
2701
2702	Backported from master:
2703	2022-11-23  Jonathan Wakely  <jwakely@redhat.com>
2704
2705	PR libstdc++/107814
2706	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
2707	Use a static buffer with space after it.
2708
27092022-12-21  Jonathan Wakely  <jwakely@redhat.com>
2710
2711	Backported from master:
2712	2022-12-16  Jonathan Wakely  <jwakely@redhat.com>
2713
2714	* include/std/expected (expected::_M_swap_val_unex): Guard the
2715	correct object.
2716	(expected::swap): Move is_swappable
2717	requirement from static_assert to constraint.
2718	(swap): Likewise.
2719	(operator==): Remove noexcept-specifier.
2720	* testsuite/20_util/expected/swap.cc: Check swapping of
2721	types without non-throwing move constructor. Check constraints
2722	on swap.
2723	* testsuite/20_util/expected/unexpected.cc: Check constraints on
2724	swap.
2725	* testsuite/20_util/expected/equality.cc: New test.
2726
27272022-12-14  Jonathan Wakely  <jwakely@redhat.com>
2728
2729	Backported from master:
2730	2022-12-14  Jonathan Wakely  <jwakely@redhat.com>
2731
2732	PR libstdc++/108097
2733	* include/std/stacktrace (basic_stracktrace::_Impl): Do not
2734	multiply N by sizeof(value_type) when allocating.
2735
27362022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2737
2738	Backported from master:
2739	2022-09-15  Jonathan Wakely  <jwakely@redhat.com>
2740
2741	* include/std/memory: Do not include <bits/stl_algobase.h>.
2742
27432022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2744
2745	Backported from master:
2746	2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
2747
2748	* testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
2749	const qualifier.
2750	* testsuite/26_numerics/valarray/87641.cc (X::operator==):
2751	Likewise.
2752
27532022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2754
2755	Backported from master:
2756	2022-11-02  Jonathan Wakely  <jwakely@redhat.com>
2757
2758	* include/std/expected (expected::_M_invalid): Remove.
2759
27602022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2761
2762	Backported from master:
2763	2022-11-21  Jonathan Wakely  <jwakely@redhat.com>
2764
2765	* include/bits/chrono.h (duration): Check preconditions on
2766	template arguments before using them.
2767
27682022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2769
2770	Backported from master:
2771	2022-10-28  Jonathan Wakely  <jwakely@redhat.com>
2772
2773	* include/bits/fs_path.h (path::filename()): Fix dangling
2774	reference.
2775
27762022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2777
2778	Backported from master:
2779	2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
2780
2781	* doc/xml/manual/intro.xml: Document LWG 1203.
2782	* doc/html/*: Regenerate.
2783
27842022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2785
2786	Backported from master:
2787	2022-09-07  Jonathan Wakely  <jwakely@redhat.com>
2788
2789	* include/std/barrier: Add missing runtime exception.
2790
27912022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2792
2793	Backported from master:
2794	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
2795
2796	* include/bits/fs_dir.h (directory_iterator): Add comparison
2797	with std::default_sentinel_t. Remove redundant operator!= for
2798	C++20.
2799	* (recursive_directory_iterator): Likewise.
2800	* include/bits/iterator_concepts.h [!__cpp_lib_concepts]
2801	(default_sentinel_t, default_sentinel): Define even if concepts
2802	are not supported.
2803	* include/bits/regex.h (regex_iterator): Add comparison with
2804	std::default_sentinel_t. Remove redundant operator!= for C++20.
2805	(regex_token_iterator): Likewise.
2806	(regex_token_iterator::_M_end_of_seq()): Add noexcept.
2807	* testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
2808	* testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
2809	New test.
2810	* testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
2811	New test.
2812
28132022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2814
2815	Backported from master:
2816	2022-09-23  Jonathan Wakely  <jwakely@redhat.com>
2817
2818	PR libstdc++/91456
2819	* include/std/type_traits (__is_nothrow_invocable): Remove.
2820	(__is_invocable_impl::__nothrow_type): New member type which
2821	checks if the conversion can throw.
2822	(__is_nt_invocable_impl): Replace class template with alias
2823	template to __is_nt_invocable_impl::__nothrow_type.
2824	* testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
2825	* testsuite/20_util/is_nothrow_convertible/value.cc: Remove
2826	macro used by value_ext.cc test.
2827	* testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
2828	test for non-standard __is_nothrow_invocable trait.
2829
28302022-11-22  Jonathan Wakely  <jwakely@redhat.com>
2831
2832	PR libstdc++/106201
2833	* include/bits/fs_path.h (filesystem::swap(path&, path&)):
2834	Replace with abbreviated function template.
2835	* include/experimental/bits/fs_path.h (filesystem::swap):
2836	Likewise.
2837	* testsuite/27_io/filesystem/iterators/106201.cc: New test.
2838	* testsuite/experimental/filesystem/iterators/106201.cc: New test.
2839
28402022-11-22  Jonathan Wakely  <jwakely@redhat.com>
2841
2842	Backported from master:
2843	2022-11-22  Jonathan Wakely  <jwakely@redhat.com>
2844
2845	PR libstdc++/107801
2846	* src/c++17/memory_resource.cc (pool_sizes): Disable large pools
2847	for targets with 16-bit int.
2848
28492022-11-14  Jonathan Wakely  <jwakely@redhat.com>
2850
2851	* include/bits/mofunc_impl.h (move_only_function::__param_t):
2852	Use __is_scalar instead of is_trivially_copyable.
2853	* testsuite/20_util/move_only_function/call.cc: Check parameters
2854	involving incomplete types.
2855
28562022-11-14  Jonathan Wakely  <jwakely@redhat.com>
2857
2858	Backported from master:
2859	2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
2860
2861	PR libstdc++/95048
2862	* include/bits/fs_path.h (path::_Codecvt): New class template
2863	that selects the kind of code conversion done.
2864	(path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t).
2865	(_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to
2866	be used for Windows and POSIX.
2867	(path::_S_convert(const EcharT*, const EcharT*)): Simplify by
2868	using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions.
2869	(path::_S_str_convert(basic_string_view<value_type>, const A&)):
2870	Simplify nested conditions.
2871	* include/experimental/bits/fs_path.h (path::_Cvt): Define
2872	nested typedef controlling type of code conversion done.
2873	(path::_Cvt::_S_wconvert): Use new typedef.
2874	(path::string(const A&)): Likewise.
2875	* testsuite/27_io/filesystem/path/construct/95048.cc: New test.
2876	* testsuite/experimental/filesystem/path/construct/95048.cc: New
2877	test.
2878
28792022-11-14  Nathaniel Shead  <nathanieloshead@gmail.com>
2880
2881	Backported from master:
2882	2022-11-11  Nathaniel Shead  <nathanieloshead@gmail.com>
2883
2884	PR libstdc++/103295
2885	* include/bits/basic_string.h (_M_use_local_data): Set active
2886	member to _M_local_buf.
2887
28882022-11-08  Jonathan Wakely  <jwakely@redhat.com>
2889
2890	Backported from master:
2891	2022-11-08  Jonathan Wakely  <jwakely@redhat.com>
2892
2893	* doc/xml/authors.xml: Remove empty author element.
2894	* doc/xml/manual/spine.xml: Likewise.
2895	* doc/html/manual/index.html: Regenerate.
2896
28972022-10-19  Alexandre Oliva  <oliva@adacore.com>
2898
2899	Backported from master:
2900	2022-06-22  Alexandre Oliva  <oliva@adacore.com>
2901
2902	* libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
2903	(__eh_globals_init::~__eh_globals_init): Clear _S_init first.
2904
29052022-09-29  Jonathan Wakely  <jwakely@redhat.com>
2906
2907	Backported from master:
2908	2022-09-28  Jonathan Wakely  <jwakely@redhat.com>
2909
2910	* doc/xml/manual/evolution.xml: Document std::bind API
2911	changes.
2912	* doc/xml/manual/intro.xml: Document LWG 2487 status.
2913	* doc/xml/manual/using.xml: Clarify default value of
2914	_GLIBCXX_USE_DEPRECATED.
2915	* doc/html/*: Regenerate.
2916	* include/std/functional (_Bind::operator()(Args&&...) volatile)
2917	(_Bind::operator()(Args&&...) const volatile)
2918	(_Bind_result::operator()(Args&&...) volatile)
2919	(_Bind_result::operator()(Args&&...) const volatile): Replace
2920	with deleted overload for C++20 and later.
2921	* testsuite/20_util/bind/cv_quals.cc: Check for deprecated
2922	warnings in C++17.
2923	* testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
2924	ill-formed in C++20.
2925
29262022-09-16  Jonathan Wakely  <jwakely@redhat.com>
2927
2928	* doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version.
2929	* doc/html/manual/abi.html: Regenerate.
2930
29312022-09-12  Patrick Palka  <ppalka@redhat.com>
2932
2933	Backported from master:
2934	2022-09-12  Patrick Palka  <ppalka@redhat.com>
2935
2936	PR libstdc++/106320
2937	* testsuite/std/ranges/adaptors/join.cc (test13): New test.
2938
29392022-09-07  Jonathan Wakely  <jwakely@redhat.com>
2940
2941	Backported from master:
2942	2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
2943
2944	PR libstdc++/106695
2945	* include/bits/std_thread.h (thread::_State_impl): Forward
2946	individual arguments to _Invoker constructor.
2947	(thread::_Invoker): Add constructor. Delete copies.
2948	* include/std/future (__future_base::_Deferred_state): Forward
2949	individual arguments to _Invoker constructor.
2950	(__future_base::_Async_state_impl): Likewise.
2951	* testsuite/30_threads/async/106695.cc: New test.
2952	* testsuite/30_threads/thread/106695.cc: New test.
2953
29542022-09-07  Jonathan Wakely  <jwakely@redhat.com>
2955
2956	Backported from master:
2957	2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
2958
2959	PR libstdc++/106607
2960	* include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
2961	Use built-ins to check for integer overflow in back-reference
2962	number.
2963	* testsuite/28_regex/basic_regex/106607.cc: New test.
2964
29652022-08-24  Jonathan Wakely  <jwakely@redhat.com>
2966
2967	Backported from master:
2968	2022-08-23  Jonathan Wakely  <jwakely@redhat.com>
2969
2970	PR libstdc++/106589
2971	* include/std/variant (__do_visit): Handle is_void<R> for zero
2972	argument case.
2973	* testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
2974
29752022-08-23  Jonathan Wakely  <jwakely@redhat.com>
2976
2977	Backported from master:
2978	2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
2979
2980	PR libstdc++/105678
2981	* doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
2982	requirement for using std::stacktrace. Also adjust -frtti and
2983	-fexceptions to document non-default (i.e. negative) forms.
2984	* doc/html/*: Regenerate.
2985
29862022-08-19  Release Manager
2987
2988	* GCC 12.2.0 released.
2989
29902022-08-05  Jonathan Wakely  <jwakely@redhat.com>
2991
2992	Backported from master:
2993	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
2994
2995	* include/std/string_view (basic_string_view(Range&&)): Add
2996	explicit as per P2499R0.
2997	* testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
2998	Adjust implicit conversions. Check implicit conversions fail.
2999	* testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
3000	Likewise.
3001
30022022-08-05  Jonathan Wakely  <jwakely@redhat.com>
3003
3004	Backported from master:
3005	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
3006
3007	* include/std/expected (unexpected::_M_val): Rename to _M_unex.
3008	(bad_expected_access::_M_val): Likewise.
3009
30102022-08-05  Jonathan Wakely  <jwakely@redhat.com>
3011
3012	Backported from master:
3013	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
3014
3015	* include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
3016	value to 202207L.
3017	* include/std/version (__cpp_lib_ios_noreplace): Likewise.
3018	* testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
3019	for new value.
3020	* testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3021	Likewise.
3022
30232022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3024
3025	Backported from master:
3026	2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
3027
3028	* src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
3029	current() returning _At_path.
3030	(_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
3031	* src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
3032	(_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
3033	* src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
3034	current() returning _At_path.
3035	(_Dir::_Dir, _Dir::open_subdir): Adjust.
3036
30372022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3038
3039	Backported from master:
3040	2022-07-29  Jonathan Wakely  <jwakely@redhat.com>
3041
3042	PR libstdc++/104443
3043	* include/bits/stl_iterator.h (common_iterator::operator->):
3044	Change return type to just auto.
3045
30462022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3047
3048	Backported from master:
3049	2022-07-12  Jonathan Wakely  <jwakely@redhat.com>
3050
3051	PR libstdc++/106248
3052	* include/std/istream [C++17] (operator>>(istream&, char*)):
3053	Set eofbit if we stopped extracting at EOF.
3054	* testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
3055	New test.
3056	* testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
3057	New test.
3058
30592022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3060
3061	Backported from master:
3062	2022-07-01  Jonathan Wakely  <jwakely@redhat.com>
3063
3064	* include/bits/fs_ops.h: Add nodiscard to all pure functions.
3065	* include/experimental/bits/fs_ops.h: Likewise.
3066	* testsuite/27_io/filesystem/operations/all.cc: Do not discard
3067	results of absolute and canonical.
3068	* testsuite/27_io/filesystem/operations/absolute.cc: Cast
3069	discarded result to void.
3070	* testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3071	* testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3072	* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3073	* testsuite/27_io/filesystem/operations/read_symlink.cc:
3074	Likewise.
3075	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
3076	* testsuite/27_io/filesystem/operations/symlink_status.cc:
3077	Likewise.
3078	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3079	Likewise.
3080	* testsuite/experimental/filesystem/operations/canonical.cc:
3081	Likewise.
3082	* testsuite/experimental/filesystem/operations/exists.cc:
3083	Likewise.
3084	* testsuite/experimental/filesystem/operations/is_empty.cc:
3085	Likewise.
3086	* testsuite/experimental/filesystem/operations/read_symlink.cc:
3087	Likewise.
3088	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3089	Likewise.
3090
30912022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3092
3093	Backported from master:
3094	2022-06-16  Jonathan Wakely  <jwakely@redhat.com>
3095
3096	PR libstdc++/105995
3097	* include/bits/basic_string.h (_M_use_local_data): Initialize
3098	the entire SSO buffer.
3099	* testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
3100
31012022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3102
3103	Backported from master:
3104	2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
3105
3106	* include/bits/new_allocator.h: Fix indentation.
3107	* include/ext/malloc_allocator.h: Likewise.
3108
31092022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3110
3111	Backported from master:
3112	2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
3113
3114	PR libstdc++/105957
3115	* include/bits/allocator.h (allocator::allocate): Check for
3116	overflow in constexpr allocation.
3117	* testsuite/20_util/allocator/105975.cc: New test.
3118
31192022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3120
3121	Backported from master:
3122	2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
3123
3124	PR libstdc++/105844
3125	* include/experimental/numeric (experimental::gcd): Simplify
3126	assertions. Use __abs_r instead of __absu.
3127	(experimental::lcm): Likewise. Remove use of __detail::__lcm so
3128	overflow can be detected.
3129	* include/std/numeric (__detail::__absu): Rename to __abs_r and
3130	change to allow signed result type, so overflow can be detected.
3131	(__detail::__lcm): Remove.
3132	(gcd): Simplify assertions. Use __abs_r instead of __absu.
3133	(lcm): Likewise. Remove use of __detail::__lcm so overflow can
3134	be detected.
3135	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
3136	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
3137	* testsuite/26_numerics/gcd/105844.cc: New test.
3138	* testsuite/26_numerics/lcm/105844.cc: New test.
3139
31402022-07-26  Thomas Rodgers  <trodgers@redhat.com>
3141
3142	Backported from master:
3143	2022-07-26  Thomas Rodgers  <trodgers@redhat.com>
3144
3145	* include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
3146
31472022-07-22  Jonathan Wakely  <jwakely@redhat.com>
3148
3149	Backported from master:
3150	2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
3151
3152	* src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
3153	Always store pathname if we don't have openat or unlinkat,
3154	because the full path is needed to open sub-directories and
3155	remove entries.
3156
31572022-07-22  Alexandre Oliva  <oliva@adacore.com>
3158
3159	Backported from master:
3160	2022-06-27  Alexandre Oliva  <oliva@adacore.com>
3161
3162	* src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
3163	_GLIBCXX_HAVE_OPENAT.
3164
31652022-07-22  Alexandre Oliva  <oliva@adacore.com>
3166
3167	Backported from master:
3168	2022-06-24  Alexandre Oliva  <oliva@adacore.com>
3169
3170	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
3171	openat.
3172	* configure, config.h.in: Rebuilt.
3173	* src/filesystem/dir-common.h (openat): Use ::openat if
3174	_GLIBCXX_HAVE_OPENAT.
3175	* src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
3176	_GLIBCXX_HAVE_OPENAT.
3177
31782022-07-22  Jonathan Wakely  <jwakely@redhat.com>
3179
3180	Backported from master:
3181	2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
3182
3183	* include/std/stacktrace: Do not include <cxxabi.h>.
3184	(__cxa_demangle): Declare.
3185
31862022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3187
3188	Backported from master:
3189	2022-07-20  Jonathan Wakely  <jwakely@redhat.com>
3190
3191	PR libstdc++/100823
3192	* include/bits/stl_iterator.h (common_iterator): Define move
3193	constructor and move assignment operator.
3194	(common_iterator::_M_assign): New function implementing
3195	assignment.
3196	(common_iterator::operator=): Use _M_assign.
3197	(common_iterator::_S_valueless): New constant.
3198	* testsuite/24_iterators/common_iterator/100823.cc: New test.
3199
32002022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3201
3202	Backported from master:
3203	2022-07-20  Jonathan Wakely  <jwakely@redhat.com>
3204
3205	* include/bits/stl_iterator.h (common_iterator): Fix incorrect
3206	uses of is_nothrow_assignable_v. Fix inconsistent constraints on
3207	friend declaration. Do not move argument in copy constructor.
3208	* testsuite/24_iterators/common_iterator/1.cc: Check for
3209	noexcept constructibnle/assignable.
3210
32112022-07-21  Nathan Sidwell  <nathan@acm.org>
3212
3213	Backported from master:
3214	2022-05-26  Nathan Sidwell  <nathan@acm.org>
3215
3216	* include/bits/hashtable.h: Include required headers.
3217	* include/bits/hashtable_policy.h: Likewise.
3218	* include/bits/stl_heap.h: Likewise.
3219	* include/bits/stl_iterator_base_funcs.h: Likewise.
3220
32212022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3222
3223	Backported from master:
3224	2022-06-30  Jonathan Wakely  <jwakely@redhat.com>
3225
3226	* include/bits/utility.h: Fix comment typos.
3227
32282022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3229
3230	Backported from master:
3231	2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
3232
3233	* testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
3234	functions are available.
3235
32362022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3237
3238	Backported from master:
3239	2022-06-23  Jonathan Wakely  <jwakely@redhat.com>
3240
3241	* testsuite/26_numerics/random/random_device/entropy.cc: Use
3242	numeric_limits<unsigned>::digits.
3243
32442022-07-21  Marco Falke  <falke.marco@gmail.com>
3245
3246	Backported from master:
3247	2022-07-19  Marco Falke  <falke.marco@gmail.com>
3248
3249	* include/std/charconv (__from_chars_alnum_to_val): Replace
3250	implicit conversion from int to unsigned char with explicit
3251	cast.
3252
32532022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3254
3255	Backported from master:
3256	2022-06-30  Jonathan Wakely  <jwakely@redhat.com>
3257
3258	PR libstdc++/88881
3259	* src/filesystem/ops.cc (has_trailing_slash): New helper
3260	function.
3261	(fs::status): Strip trailing slashes.
3262	(fs::symlink_status): Likewise.
3263	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3264	Clean the environment before each test and use TMP instead of
3265	TMPDIR so the test passes on Windows.
3266
32672022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3268
3269	Backported from master:
3270	2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
3271
3272	PR libstdc++/105880
3273	* libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
3274	prevent destruction during termination.
3275	(__eh_globals_init::_M_init): Replace with static member _S_init.
3276	(__cxxabiv1::__cxa_get_globals_fast): Update.
3277	(__cxxabiv1::__cxa_get_globals): Likewise.
3278
32792022-07-07  Jonathan Wakely  <jwakely@redhat.com>
3280
3281	Backported from master:
3282	2022-07-01  Jonathan Wakely  <jwakely@redhat.com>
3283
3284	PR libstdc++/106162
3285	* include/Makefile.am (largefile-config.h): Add
3286	stamp-${host_alias} prerequisite.
3287	* include/Makefile.in: Regenerate.
3288
32892022-07-07  Jonathan Wakely  <jwakely@redhat.com>
3290
3291	Backported from master:
3292	2022-06-23  Jonathan Wakely  <jwakely@redhat.com>
3293
3294	* testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
3295	rmdir to remove directories.
3296	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
3297	Likewise.
3298
32992022-06-14  Jonathan Wakely  <jwakely@redhat.com>
3300
3301	Backported from master:
3302	2022-06-13  Jonathan Wakely  <jwakely@redhat.com>
3303
3304	* include/std/atomic (__atomic_val_t): Use __type_identity_t
3305	instead of atomic<T>::value_type, as per LWG 3220.
3306	* testsuite/29_atomics/atomic/lwg3220.cc: New test.
3307
33082022-06-14  Mark Mentovai  <mark@mentovai.com>
3309
3310	Backported from master:
3311	2022-06-13  Mark Mentovai  <mark@mentovai.com>
3312
3313	* include/experimental/bits/fs_path.h (__detail::__null_terminated):
3314	Rename to __nul_terminated to avoid colliding with a macro in
3315	Apple's SDK.
3316
33172022-06-08  Jonathan Wakely  <jwakely@redhat.com>
3318
3319	Backported from master:
3320	2022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3321
3322	PR libstdc++/105671
3323	* include/std/sstream (basic_stringbuf::_M_high_mark): Add
3324	always_inline attribute.
3325
33262022-06-08  Jonathan Wakely  <jwakely@redhat.com>
3327
3328	Backported from master:
3329	2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
3330
3331	PR libstdc++/105681
3332	* include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
3333	Limit ga_sizes array to values that fit in size_t.
3334	* include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
3335	(sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
3336	(sfmt216091_64): Do not declare.
3337
33382022-06-08  Jonathan Wakely  <jwakely@redhat.com>
3339
3340	Backported from master:
3341	2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
3342
3343	* include/bits/basic_string.h: Do not include <ext/atomicity.h>
3344	here.
3345	* include/bits/cow_string.h: Include it here.
3346
33472022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3348
3349	Backported from master:
3350	2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
3351
3352	* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
3353	lookup for ios_errc and future_errc check versioned namespace.
3354	(StdAtomicPrinter): Strip versioned namespace from typename.
3355
33562022-05-27  Fran��ois Dumont  <fdumont@gcc.gnu.org>
3357
3358	Backported from master:
3359	2022-05-26  Fran��ois Dumont  <fdumont@gcc.gnu.org>
3360
3361	* python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
3362	Strip typename from version namespace.
3363
33642022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3365
3366	Backported from master:
3367	2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
3368
3369	* python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
3370	versioned namespace from the template argument too.
3371
33722022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3373
3374	Backported from master:
3375	2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
3376
3377	* include/bits/stl_iterator.h (counted_iterator::operator++(int)):
3378	Add 'constexpr' as per LWG 3643.
3379	* testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
3380
33812022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3382
3383	Backported from master:
3384	2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
3385
3386	* include/std/memory_resource (polymorphic_allocator): Add
3387	non-template equality operator, as proposed for LWG 3683.
3388	* testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
3389
33902022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3391
3392	Backported from master:
3393	2022-05-20  Jonathan Wakely  <jwakely@redhat.com>
3394
3395	* testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
3396	Run fewer iterations for simulator targets.
3397	* testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
3398	Likewise.
3399	* testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
3400	Likewise.
3401	* testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
3402	Likewise.
3403	* testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
3404	Likewise.
3405	* testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
3406	Likewise.
3407	* testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
3408	Likewise.
3409
34102022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3411
3412	Backported from master:
3413	2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
3414
3415	* testsuite/20_util/expected/synopsis.cc: Skip for versioned
3416	namespace.
3417	* testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
3418
34192022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3420
3421	Backported from master:
3422	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
3423
3424	* include/bits/mofunc_impl.h: Fix doxygen command.
3425
34262022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3427
3428	Backported from master:
3429	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
3430
3431	* include/std/future (launch): Make operators noexcept.
3432
34332022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3434
3435	Backported from master:
3436	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3437
3438	* doc/xml/manual/prerequisites.xml: Fix attributes for external
3439	hyperlink.
3440	* doc/html/manual/setup.html: Regenerate.
3441
34422022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3443
3444	Backported from master:
3445	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3446
3447	* doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
3448	* doc/html/*: Regenerate.
3449
34502022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3451
3452	Backported from master:
3453	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3454
3455	* doc/xml/manual/intro.xml: Include new chapter.
3456	* doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
3457	* doc/xml/manual/status_cxx2023.xml: New file.
3458	* doc/html/*: Regenerate.
3459
34602022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3461
3462	Backported from master:
3463	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3464
3465	* doc/html/manual/status.html: Regenerate.
3466	* doc/xml/manual/status_cxx2020.xml: Fix supported version for
3467	C++20 bit operations.
3468
34692022-05-13  Alexandre Oliva  <oliva@adacore.com>
3470
3471	Backported from master:
3472	2022-05-06  Alexandre Oliva  <oliva@adacore.com>
3473
3474	* include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
3475	for double, long long, and 64-bit long intrinsic types.
3476	[__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
3477	preexisting long double diagnostic, adjust no-VSX double
3478	diagnostic to cover 64-bit long double as well.
3479
34802022-05-10  Jonathan Wakely  <jwakely@redhat.com>
3481
3482	Backported from master:
3483	2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
3484
3485	PR libstdc++/105284
3486	* include/std/iosfwd: Add declarations for <spanstream> class
3487	templates and typedefs.
3488	* include/std/spanstream (basic_spanbuf, basic_ispanstream)
3489	(basic_ospanstream, basic_spanstream): Remove default template
3490	arguments.
3491	* testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
3492	declarations.
3493	* testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
3494	default arguments.
3495
34962022-05-10  Jonathan Wakely  <jwakely@redhat.com>
3497
3498	Backported from master:
3499	2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
3500
3501	PR libstdc++/105284
3502	* include/std/iosfwd: Add declarations for <synstream> class
3503	templates and typedefs.
3504	* include/std/syncstream (basic_syncbuf, basic_osyncstream):
3505	Remove default template arguments.
3506	* testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
3507	* testsuite/27_io/headers/iosfwd/types.cc: New test.
3508
35092022-05-09  Jonathan Wakely  <jwakely@redhat.com>
3510
3511	Backported from master:
3512	2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
3513
3514	PR libstdc++/104731
3515	* testsuite/27_io/filesystem/iterators/error_reporting.cc:
3516	Use a trailing char array as storage for dirent::d_name.
3517
35182022-05-06  Jonathan Wakely  <jwakely@redhat.com>
3519
3520	Backported from master:
3521	2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
3522
3523	PR libstdc++/105502
3524	* include/bits/random.tcc
3525	(operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
3526	Update state when __state_avail is false.
3527	* testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
3528	Check that deserialized object equals serialized one.
3529
35302022-05-06  Patrick Palka  <ppalka@redhat.com>
3531
3532	Backported from master:
3533	2022-05-02  Patrick Palka  <ppalka@redhat.com>
3534
3535	PR libstdc++/103911
3536	* src/c++17/floating_from_chars.cc (find_end_of_float): Accept
3537	two delimeters for the exponent part in the form of a possibly
3538	NULL string of length two.  Don't use std::tolower.
3539	(pattern): Adjust calls to find_end_of_float accordingly.
3540
35412022-05-06  Alexandre Oliva  <oliva@adacore.com>
3542
3543	Backported from master:
3544	2022-05-03  Alexandre Oliva  <oliva@adacore.com>
3545
3546	PR c++/105324
3547	* testsuite/20_util/from_chars/pr105324.cc: Guard test body
3548	with conditional for floating-point overloads of from_char.
3549
35502022-05-06  Release Manager
3551
3552	* GCC 12.1.0 released.
3553
35542022-05-02  Patrick Palka  <ppalka@redhat.com>
3555
3556	Backported from master:
3557	2022-05-02  Patrick Palka  <ppalka@redhat.com>
3558
3559	PR libstdc++/105441
3560	* src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
3561	Also accept 'P' as the start of the exponent.
3562	* testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
3563
35642022-04-29  Jonathan Wakely  <jwakely@redhat.com>
3565
3566	Backported from master:
3567	2022-04-29  Jonathan Wakely  <jwakely@redhat.com>
3568
3569	PR libstdc++/105417
3570	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
3571	Regenerate.
3572	* src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
3573	Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
3574	symbols as aliases for corresponding symbols without abi-tag.
3575
35762022-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3577
3578	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3579	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3580	Likewise.
3581	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3582	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3583	Likewise.
3584
35852022-04-28  Jonathan Wakely  <jwakely@redhat.com>
3586
3587	* doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not
3588	mainline.
3589	* doc/xml/manual/status_cxx2011.xml: Likewise.
3590	* doc/xml/manual/status_cxx2014.xml: Likewise.
3591	* doc/xml/manual/status_cxx2017.xml: Likewise.
3592	* doc/xml/manual/status_cxx2020.xml: Likewise.
3593	* doc/xml/manual/status_cxxtr1.xml: Likewise.
3594	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
3595	* doc/html/manual/status.html: Regenerate.
3596
35972022-04-28  Jonathan Wakely  <jwakely@redhat.com>
3598
3599	PR libstdc++/99290
3600	* src/c++17/fs_ops.cc (fs::copy): Pass error_code to
3601	directory_iterator constructor, and check on each iteration.
3602	* src/filesystem/ops.cc (fs::copy): Likewise.
3603	* testsuite/27_io/filesystem/operations/copy.cc: Check for
3604	errors during recursion.
3605	* testsuite/experimental/filesystem/operations/copy.cc:
3606	Likewise.
3607
36082022-04-28  Fran��ois Dumont  <fdumont@gcc.gnu.org>
3609
3610	* config/abi/pre/gnu-versioned-namespace.ver: Remove
3611	std::random_device::* pattern.
3612
36132022-04-27  Jakub Jelinek  <jakub@redhat.com>
3614
3615	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3616	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3617	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3618	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3619	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3620	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3621	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3622	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3623
36242022-04-27  Jonathan Wakely  <jwakely@redhat.com>
3625
3626	* python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
3627	support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
3628	(StdAtomicPrinter): New printer.
3629	(build_libstdcxx_dictionary): Register new printer.
3630	* testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
3631	* testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
3632	pointers.
3633
36342022-04-26  Jonathan Wakely  <jwakely@redhat.com>
3635
3636	* include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
3637	constructor for constant initialization from nullptr_t.
3638	* testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3639	Check for new constructor.
3640
36412022-04-26  Jonathan Wakely  <jwakely@redhat.com>
3642
3643	* include/bits/fs_path.h (hash<filesystem::path>): Define.
3644	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3645	Check std::hash specialization.
3646
36472022-04-25  Jonathan Wakely  <jwakely@redhat.com>
3648
3649	* include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
3650	conditionally.
3651	* include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3652	Define for C++23.
3653	(default_delete, default_delete<T[]>, __uniq_ptr_impl)
3654	(unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
3655	functions.
3656	* include/std/version (__cpp_lib_constexpr_memory): Define new
3657	value for C++23.
3658	* testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
3659	* testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
3660	* testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
3661	* testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
3662	* testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
3663	* testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
3664	New test.
3665
36662022-04-25  Jonathan Wakely  <jwakely@redhat.com>
3667
3668	PR libstdc++/105375
3669	* include/std/future (packaged_task): Add deduction guides.
3670	* testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
3671
36722022-04-25  Philipp Fent  <fent@in.tum.de>
3673
3674	* python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
3675	Rename as iterator.
3676	(StdInitializerListPrinter): Define new printer.
3677	(build_libstdcxx_dictionary): Register new printer.
3678	* testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
3679	initializer_list.
3680
36812022-04-22  Thomas W Rodgers  <trodgers@redhat.com>
3682
3683	PR libstdc++/102994
3684	* include/bits/atomic_base.h (atomic_flag::notify_one,
3685	notify_all): Remove const qualification.
3686	(__atomic_base::notify_one, notify_all): Likewise.
3687	* include/std/atomic (atomic<bool>::notify_one, notify_all):
3688	Likewise.
3689	(atomic::notify_one, notify_all): Likewise.
3690	(atomic<T*>::notify_one, notify_all): Likewise.
3691	(atomic_notify_one, atomic_notify_all): Likewise.
3692	* testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
3693	to account for change in notify_one/notify_all signature.
3694
36952022-04-21  Patrick Palka  <ppalka@redhat.com>
3696
3697	* include/std/charconv (__from_chars_alnum_to_val_table):
3698	Simplify initialization of __lower/__upper_letters.
3699	(__from_chars_alnum_to_val): Default the template parameter to
3700	false.
3701	* src/c++17/floating_from_chars.cc (starts_with_ci): Don't
3702	assume the uppercase and lowercase letters are contiguous.
3703	(__floating_from_chars_hex): Likewise.
3704
37052022-04-21  Patrick Palka  <ppalka@redhat.com>
3706
3707	PR c++/105297
3708	PR c++/105322
3709	* include/std/charconv (__from_chars_alnum_to_val): Make
3710	initializer for __table dependent in an artificial way.
3711
37122022-04-21  Jonathan Wakely  <jwakely@redhat.com>
3713
3714	PR libstdc++/105324
3715	* src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
3716	Remove assertion.
3717	* testsuite/20_util/from_chars/pr105324.cc: New test.
3718
37192022-04-20  Jonathan Wakely  <jwakely@redhat.com>
3720
3721	* testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
3722	Check correct feature test macro.
3723
37242022-04-20  Jonathan Wakely  <jwakely@redhat.com>
3725
3726	PR libstdc++/93602
3727	* doc/xml/manual/prerequisites.xml: Document libiconv
3728	workarounds.
3729	* doc/html/manual/setup.html: Regenerate.
3730	* src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
3731	* src/Makefile.in: Regenerate.
3732
37332022-04-19  Patrick Palka  <ppalka@redhat.com>
3734
3735	* src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
3736	define.
3737	(__floating_to_chars_shortest): Add __builtin_unreachable calls to
3738	squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
3739	warnings.
3740	(__floating_to_chars_precision): Likewise.
3741
37422022-04-19  Philipp Fent  <fent@in.tum.de>
3743
3744	* python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
3745	* testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
3746
37472022-04-19  Jonathan Wakely  <jwakely@redhat.com>
3748
3749	* acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
3750	* configure: Regenerate.
3751
37522022-04-18  Patrick Palka  <ppalka@redhat.com>
3753
3754	* include/std/charconv (__from_chars_pow2_base): Manually
3755	unroll the first iteration of the main loop and simplify
3756	accordingly.
3757
37582022-04-15  Patrick Palka  <ppalka@redhat.com>
3759
3760	PR libstdc++/104858
3761	* include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
3762	__first twice at the start.
3763	* testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
3764
37652022-04-15  Patrick Palka  <ppalka@redhat.com>
3766
3767	* include/std/charconv (__from_chars_alnum_to_val_table): Define.
3768	(__from_chars_alnum_to_val): Define.
3769	(__from_chars_binary): Rename to ...
3770	(__from_chars_pow2_base): ... this.  Generalize to handle any
3771	power-of-two base using __from_chars_alnum_to_val.
3772	(__from_chars_digit): Optimize digit recognition to a single
3773	test instead of two tests.  Use [[__unlikely___]] attribute.
3774	(__from_chars_alpha_to_num): Remove.
3775	(__from_chars_alnum): Use __from_chars_alnum_to_val.  Use a
3776	nested loop for the overflow case.  Maintain a lower bound
3777	on the number of available bits in the result and use it to
3778	omit the overflow check.
3779	(from_chars): Adjust appropriately.
3780	* src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
3781	(__floating_from_chars_hex): Use __from_chars_alnum_to_val
3782	to recognize a hex digit instead.
3783
37842022-04-14  Palmer Dabbelt  <palmer@rivosinc.com>
3785
3786	* acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
3787	for RISC-V.
3788	* configure: Regenerate.
3789
37902022-04-14  Jonathan Wakely  <jwakely@redhat.com>
3791
3792	* doc/xml/manual/intro.xml: Fix comment.
3793
37942022-04-14  Jonathan Wakely  <jwakely@redhat.com>
3795
3796	* include/precompiled/stdc++.h: Include <stacktrace> and
3797	<stdatomic.h> for C++23.
3798
37992022-04-14  Jonathan Wakely  <jwakely@redhat.com>
3800
3801	PR libstdc++/105269
3802	* include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
3803	Define.
3804	* include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
3805	Define.
3806	* include/std/optional (__cpp_lib_optional): Define new value
3807	for C++23.
3808	(__cpp_lib_monadic_optional): Remove.
3809	* include/std/version (__cpp_lib_constexpr_vector): Define.
3810	(__cpp_lib_stdatomic_h): Define.
3811	(__cpp_lib_optional): Define new value for C++23.
3812	(__cpp_lib_monadic_optional): Remove.
3813	* testsuite/20_util/optional/monadic/and_then.cc: Adjust.
3814	* testsuite/20_util/optional/requirements.cc: Adjust for C++23.
3815	* testsuite/20_util/optional/version.cc: Likewise.
3816	* testsuite/23_containers/vector/cons/constexpr.cc: Check
3817	feature test macro.
3818	* testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
3819	Likewise.
3820	* testsuite/20_util/optional/monadic/version.cc: Removed.
3821	* testsuite/23_containers/vector/requirements/version.cc: New test.
3822	* testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
3823
38242022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3825
3826	* acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
3827	* config.h.in: Regenerate.
3828	* configure: Regenerate.
3829
38302022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3831
3832	* include/std/stacktrace (basic_stacktrace::current): Reallocate
3833	a smaller container if the unused capacity is larger than the
3834	used size.
3835
38362022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3837
3838	* include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
3839	or _Impl::_M_assign to initialize elements in allocated storage.
3840	(basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
3841	_Impl::_M_destroy.
3842	(basic_stacktrace::_Impl::_M_destroy()): Replace with ...
3843	(basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
3844	function.
3845	(basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
3846	new element using allocator.
3847	(basic_stacktrace::_Impl::_M_clone): New function.
3848	(basic_stacktrace::_Impl::_M_xclone): New function.
3849	(basic_stacktrace::_Impl::_M_assign): New function.
3850
38512022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3852
3853	* include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3854	Use nothrow new instead of try block for std::allocator.
3855	(basic_stacktrace::_Impl::_M_deallocate): Use delete for
3856	std::allocator.
3857
38582022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3859
3860	* include/std/stacktrace (basic_stacktrace::current): Replace
3861	calls to _M_reserve and _S_curr_cb with call to _M_prepare.
3862	Check return value of backtrace_simple when max depth given.
3863	(basic_stacktrace::_M_reserve): Remove.
3864	(basic_stacktrace::_S_curr_cb): Remove.
3865	(basic_stacktrace::_M_prepare(size_type)): New function to
3866	reserve initial capacity and return callback.
3867	(basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
3868	and remove redundant zeroing of _M_frames and _M_capacity.
3869	(basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
3870	attribute. Assign _Impl instead of swapping.
3871	* testsuite/19_diagnostics/stacktrace/current.cc: New test.
3872
38732022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3874
3875	* include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3876	Change [[unlikely]] attribute to [[likely]].
3877
38782022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3879
3880	PR libstdc++/105031
3881	* include/std/stacktrace (basic_stacktrace::basic_stacktrace):
3882	Fix allocator usage in constructors.
3883	(basic_stacktrace::operator=(const basic_stacktrace&)): Do not
3884	try to reallocate using const allocator.
3885	(basic_stacktrace::operator=(basic_stacktrace&&)): Fix
3886	if-constexpr with non-constant condition. Do not allocate new
3887	storage if allocator propagates. Do not set _M_size if
3888	allocation fails.
3889	(basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
3890	assertion that non-propagating allocators are equal.
3891	* testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
3892
38932022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3894
3895	* include/std/stacktrace (basic_stacktrace::current): Duplicate
3896	implementation into each overload. Add noinline attribute and
3897	skip current frame.
3898	(basic_stacktrace::max_size()): Call _Impl::_S_max_size.
3899	(basic_stacktrace::_S_curr_cb()): New function defining lambda.
3900	(basic_stacktrace::_Impl::_S_max_size): New function defining
3901	maximum size in terms of allocator and size_type.
3902	(basic_stacktrace::_Impl::_M_allocate): Check against
3903	max_size().
3904	* testsuite/19_diagnostics/stacktrace/entry.cc: Call function
3905	for non-constexpr checks. Check line number is correct.
3906
39072022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3908
3909	* testsuite/20_util/stacktrace/entry.cc: Moved to...
3910	* testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
3911	* testsuite/20_util/stacktrace/synopsis.cc: Moved to...
3912	* testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
3913	* testsuite/20_util/stacktrace/version.cc: Moved to...
3914	* testsuite/19_diagnostics/stacktrace/version.cc: ...here.
3915
39162022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3917
3918	* include/experimental/bits/fs_path.h (path): Define special
3919	members after path::_Cmpt is complete.
3920
39212022-04-08  Jonathan Wakely  <jwakely@redhat.com>
3922
3923	PR libstdc++/105153
3924	* include/std/expected
3925	(expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
3926	* testsuite/20_util/expected/cons.cc: Check constructor.
3927
39282022-04-08  Jonathan Wakely  <jwakely@redhat.com>
3929
3930	PR libstdc++/105154
3931	* include/std/expected (expected<void, E>::swap): Set
3932	_M_has_value to false for objects that previously had a value.
3933	* testsuite/20_util/expected/swap.cc: Fix test to check void
3934	specialization.
3935
39362022-04-08  Jonathan Wakely  <jwakely@redhat.com>
3937
3938	PR libstdc++/105146
3939	* include/std/expected (bad_expected_access): Move constructor
3940	parameter.
3941	* testsuite/20_util/expected/bad.cc: New test.
3942
39432022-04-07  Hans-Peter Nilsson  <hp@axis.com>
3944
3945	* testsuite/20_util/expected/requirements.cc: Correct minimal-size
3946	test.
3947
39482022-04-02  Jakub Jelinek  <jakub@redhat.com>
3949
3950	PR libstdc++/105128
3951	* include/std/source_location (std::source_location::__impl): Move
3952	definition before using __builtin_ret_type.
3953
39542022-04-01  Jonathan Wakely  <jwakely@redhat.com>
3955
3956	* include/std/utility (unreachable): Define for C++23.
3957	* include/std/version (__cpp_lib_unreachable): Define.
3958	* src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
3959	arguments. Handle only the function being given.
3960	* testsuite/20_util/unreachable/1.cc: New test.
3961	* testsuite/20_util/unreachable/version.cc: New test.
3962
39632022-04-01  Jonathan Wakely  <jwakely@redhat.com>
3964
3965	* include/experimental/bits/fs_fwd.h (copy_file): Remove
3966	incorrect noexcept from declaration.
3967	* include/experimental/bits/fs_path.h (path::begin, path::end):
3968	Add noexcept to declarations, to match definitions.
3969
39702022-04-01  Timm B��der  <tbaeder@redhat.com>
3971
3972	* include/bits/fs_ops.h: Fix filename in Doxygen comment.
3973	* include/experimental/bits/fs_ops.h: Likewise.
3974
39752022-03-31  Jonathan Wakely  <jwakely@redhat.com>
3976
3977	* libsupc++/new_opa.cc (aligned_alloc): Add comment.
3978
39792022-03-29  Jonathan Wakely  <jwakely@redhat.com>
3980
3981	* testsuite/18_support/exception/38732.cc: Disable for C++23.
3982	* testsuite/18_support/headers/exception/synopsis.cc: Likewise.
3983	* testsuite/18_support/unexpected_handler.cc: Likewise.
3984
39852022-03-29  Jonathan Wakely  <jwakely@redhat.com>
3986
3987	* libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
3988	static data members for _Fp_fmt enumerators.
3989
39902022-03-29  Jonathan Wakely  <jwakely@redhat.com>
3991
3992	* include/std/version (__cpp_lib_variant): Fix conditions to
3993	match <variant>.
3994	(__cpp_lib_expected): Fix condition to match <expected>.
3995
39962022-03-28  Jonathan Wakely  <jwakely@redhat.com>
3997
3998	* testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
3999	* testsuite/20_util/optional/monadic/transform.cc: Likewise.
4000	* testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
4001	* testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
4002	* testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
4003	* testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
4004	* testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
4005	* testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
4006
40072022-03-27  Jonathan Wakely  <jwakely@redhat.com>
4008
4009	* doc/doxygen/user.cfg.in: Add new header.
4010	* include/Makefile.am: Likewise.
4011	* include/Makefile.in: Regenerate.
4012	* include/precompiled/stdc++.h: Add new header.
4013	* include/std/version (__cpp_lib_expected): Define.
4014	* libsupc++/exception [__cplusplus > 202002] (unexpected)
4015	(unexpected_handler, set_unexpected): Do not declare for C++23.
4016	* include/std/expected: New file.
4017	* testsuite/20_util/expected/assign.cc: New test.
4018	* testsuite/20_util/expected/cons.cc: New test.
4019	* testsuite/20_util/expected/illformed_neg.cc: New test.
4020	* testsuite/20_util/expected/observers.cc: New test.
4021	* testsuite/20_util/expected/requirements.cc: New test.
4022	* testsuite/20_util/expected/swap.cc: New test.
4023	* testsuite/20_util/expected/synopsis.cc: New test.
4024	* testsuite/20_util/expected/unexpected.cc: New test.
4025	* testsuite/20_util/expected/version.cc: New test.
4026
40272022-03-25  Jonathan Wakely  <jwakely@redhat.com>
4028
4029	* include/std/bit (bit_cast, byteswap, endian): Add doxygen
4030	comments.
4031
40322022-03-23  Jonathan Wakely  <jwakely@redhat.com>
4033
4034	PR libstdc++/105027
4035	* include/std/bit (bit_cast): Add constraints.
4036	* testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
4037
40382022-03-23  Jonathan Wakely  <jwakely@redhat.com>
4039
4040	* include/std/version [!_GLIBCXX_HOSTED]
4041	(__cpp_lib_hardware_interference_size): Define for freestanding.
4042	(__cpp_lib_bit_cast): Likewise.
4043	(__cpp_lib_is_layout_compatible): Likewise.
4044	(__cpp_lib_is_pointer_interconvertible): Likewise.
4045	(__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
4046	freestanding.
4047	(__cpp_lib_invoke_r): Likewise.
4048	(__cpp_lib_ios_noreplace): Likewise.
4049	(__cpp_lib_monadic_optional): Likewise.
4050	(__cpp_lib_move_only_function): Likewise.
4051	(__cpp_lib_spanstream): Likewise.
4052	(__cpp_lib_stacktrace): Likewise.
4053	(__cpp_lib_string_contains): Likewise.
4054	(__cpp_lib_string_resize_and_overwrite): Likewise.
4055	(__cpp_lib_to_underlying): Likewise.
4056
40572022-03-23  Jonathan Wakely  <jwakely@redhat.com>
4058
4059	PR libstdc++/105021
4060	* include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
4061	<bits/atomic_wait.h> for freestanding.
4062
40632022-03-22  Hans-Peter Nilsson  <hp@axis.com>
4064
4065	* testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
4066	Conditionalize call to fesetround.
4067
40682022-03-21  Jakub Jelinek  <jakub@redhat.com>
4069
4070	PR libstdc++/104990
4071	* include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
4072	isn't overloaded if __clang__ is defined.
4073
40742022-03-18  Jonathan Wakely  <jwakely@redhat.com>
4075
4076	PR libstdc++/104242
4077	* include/std/any (any(T&&)): Revert change to constraints.
4078	* testsuite/20_util/any/cons/104242.cc: New test.
4079
40802022-03-18  Jonathan Wakely  <jwakely@redhat.com>
4081
4082	PR libstdc++/92546
4083	* include/pstl/glue_algorithm_defs.h: Replace <functional> with
4084	<bits/stl_pair.h>.
4085	* include/pstl/utils.h: Replace <iterator> with <type_traits>.
4086	(__pstl::__internal::__except_handler): Use std::__terminate
4087	instead of std::terminate.
4088	* src/c++17/fs_path.cc: Include <array>.
4089	* testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
4090	<functional>.
4091	* testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
4092	* testsuite/25_algorithms/clamp/constrained.cc: Likewise.
4093	* testsuite/25_algorithms/equal/constrained.cc: Likewise.
4094	* testsuite/25_algorithms/for_each/constrained.cc: Likewise.
4095	* testsuite/25_algorithms/includes/constrained.cc: Likewise.
4096	* testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
4097	* testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
4098	* testsuite/25_algorithms/is_permutation/constrained.cc: Include
4099	<iterator>.
4100	* testsuite/25_algorithms/is_sorted/constexpr.cc: Include
4101	<functional>.
4102	* testsuite/25_algorithms/is_sorted_until/constexpr.cc:
4103	Likewise.
4104	* testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
4105	Likewise.
4106	* testsuite/25_algorithms/lexicographical_compare/constrained.cc:
4107	Likewise.
4108	* testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
4109	Include <array>.
4110	* testsuite/25_algorithms/lower_bound/constexpr.cc: Include
4111	<functional>.
4112	* testsuite/25_algorithms/max/constrained.cc: Likewise.
4113	* testsuite/25_algorithms/max_element/constrained.cc: Likewise.
4114	* testsuite/25_algorithms/min/constrained.cc: Likewise.
4115	* testsuite/25_algorithms/min_element/constrained.cc: Likewise.
4116	* testsuite/25_algorithms/minmax_element/constrained.cc:
4117	Likewise.
4118	* testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
4119	* testsuite/25_algorithms/move/93872.cc: Likewise.
4120	* testsuite/25_algorithms/move_backward/93872.cc: Include
4121	<iterator>.
4122	* testsuite/25_algorithms/nth_element/constexpr.cc: Include
4123	<functional>.
4124	* testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
4125	* testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
4126	Likewise.
4127	* testsuite/25_algorithms/search/constexpr.cc: Likewise.
4128	* testsuite/25_algorithms/search_n/constrained.cc: Likewise.
4129	* testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
4130	* testsuite/25_algorithms/set_difference/constrained.cc:
4131	Likewise.
4132	* testsuite/25_algorithms/set_intersection/constexpr.cc:
4133	Likewise.
4134	* testsuite/25_algorithms/set_intersection/constrained.cc:
4135	Likewise.
4136	* testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
4137	Likewise.
4138	* testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
4139	* testsuite/25_algorithms/set_union/constrained.cc: Likewise.
4140	* testsuite/25_algorithms/sort/constexpr.cc: Likewise.
4141	* testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
4142	* testsuite/25_algorithms/transform/constrained.cc: Likewise.
4143	* testsuite/25_algorithms/unique/constexpr.cc: Likewise.
4144	* testsuite/25_algorithms/unique/constrained.cc: Likewise.
4145	* testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
4146	* testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
4147	* testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
4148	* testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
4149	* testsuite/std/ranges/adaptors/split.cc: Likewise.
4150
41512022-03-17  Jonathan Wakely  <jwakely@redhat.com>
4152
4153	PR libstdc++/92546
4154	* include/bits/fs_path.h (path::make_preferred): Use
4155	handwritten loop instead of std::replace.
4156
41572022-03-17  Jonathan Wakely  <jwakely@redhat.com>
4158
4159	PR middle-end/104966
4160	* include/bits/locale_facets_nonio.tcc
4161	(__moneypunct_cache::_M_cache): Replace try-catch with RAII and
4162	make all string copies before any stores to *this.
4163
41642022-03-17  Jonathan Wakely  <jwakely@redhat.com>
4165
4166	* testsuite/util/testsuite_character.h: Fix comment.
4167
41682022-03-16  Jonathan Wakely  <jwakely@redhat.com>
4169
4170	PR libstdc++/103407
4171	* config/abi/pre/gnu.ver: Make version for std::from_chars
4172	depend on HAVE_USELOCALE macro.
4173	* testsuite/util/testsuite_abi.cc (compare_symbols): Treat
4174	std::from_chars for floating-point types as undesignated if
4175	not found in the baseline symbols file.
4176
41772022-03-16  Jonathan Wakely  <jwakely@redhat.com>
4178
4179	* include/std/charconv (__cpp_lib_to_chars): Only define when
4180	both from_chars and to_chars are supported for floating-point
4181	types.
4182	(from_chars, to_chars): Adjust preprocessor conditions guarding
4183	declarations.
4184	* include/std/version (__cpp_lib_to_chars): Adjust condition to
4185	match <charconv> definition.
4186	* src/c++17/floating_from_chars.cc (from_chars_strtod): New
4187	function template.
4188	(from_chars): Simplify preprocessor checks and use
4189	from_chars_strtod when appropriate.
4190
41912022-03-14  Jonathan Wakely  <jwakely@redhat.com>
4192
4193	PR libstdc++/104875
4194	* src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
4195	hold octets that will be left-shifted.
4196
41972022-03-10  Jonathan Wakely  <jwakely@redhat.com>
4198
4199	PR libstdc++/104870
4200	* src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
4201	before using fast_float.
4202
42032022-03-10  Detlef Vollmann  <dv@vollmann.ch>
4204
4205	PR libstdc++/104866
4206	* include/bits/this_thread_sleep.h: Fix order of #endif and
4207	closing brace of namespace.
4208
42092022-03-10  Jonathan Wakely  <jwakely@redhat.com>
4210
4211	* libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
4212	Handle NaN.
4213
42142022-03-10  Jonathan Wakely  <jwakely@redhat.com>
4215
4216	* libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
4217	<=> comparison.
4218
42192022-03-09  Patrick Palka  <ppalka@redhat.com>
4220
4221	PR libstdc++/104859
4222	* src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
4223	Be explicit when narrowing the shifted effective_mantissa,
4224	since it may have an integer-class type.
4225
42262022-03-08  Jonathan Wakely  <jwakely@redhat.com>
4227
4228	* include/bits/uses_allocator_args.h: Remove incorrect copyright
4229	notice.
4230
42312022-03-07  Jonathan Wakely  <jwakely@redhat.com>
4232
4233	PR libstdc++/104807
4234	* include/bits/c++config (__terminate, __glibcxx_assert_fail):
4235	Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
4236	(__is_constant_evaluated): Add visibility pragma.
4237
42382022-03-07  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>
4239
4240	* config/locale/vxworks/ctype_members.cc: Remove <iostream>
4241	  include.
4242
42432022-03-05  Jonathan Wakely  <jwakely@redhat.com>
4244
4245	* include/bits/c++config (__glibcxx_assert_fail): Add visibility
4246	attribute.
4247	(__terminate): Likewise.
4248
42492022-03-04  Jonathan Wakely  <jwakely@redhat.com>
4250
4251	* libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
4252	inside #if condition.
4253
42542022-03-03  Jonathan Wakely  <jwakely@redhat.com>
4255
4256	PR libstdc++/104748
4257	* testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
4258	constexpr test.
4259
42602022-03-03  Jonathan Wakely  <jwakely@redhat.com>
4261
4262	* testsuite/17_intro/names.cc (func): Undef on AIX.
4263
42642022-03-03  Jonathan Wakely  <jwakely@redhat.com>
4265
4266	PR libstdc++/96526
4267	* libsupc++/compare (strong_order): Add missing support for
4268	floating-point types.
4269	* testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
4270	New test.
4271
42722022-03-01  Jonathan Wakely  <jwakely@redhat.com>
4273
4274	PR middle-end/103984
4275	* include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
4276	default member initializer.
4277
42782022-02-24  Jonathan Wakely  <jwakely@redhat.com>
4279
4280	PR libstdc++/104602
4281	* include/std/source_location (source_location::current): Use
4282	deduced type of __builtin_source_location().
4283
42842022-02-22  Patrick Palka  <ppalka@redhat.com>
4285
4286	* include/bits/ranges_base.h (__detail::__is_initializer_list):
4287	Define.
4288	(viewable_range): Adjust as per P2415R2.
4289	* include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4290	* include/std/ranges (owning_view): Define as per P2415R2.
4291	(enable_borrowed_range<owning_view>): Likewise.
4292	(views::__detail::__can_subrange): Replace with ...
4293	(views::__detail::__can_owning_view): ... this.
4294	(views::_All::_S_noexcept): Sync with operator().
4295	(views::_All::operator()): Use owning_view instead of subrange
4296	as per P2415R2.
4297	* include/std/version (__cpp_lib_ranges): Adjust value.
4298	* testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
4299	views::all uses owning_view instead of subrange.
4300	(test08): New test.
4301	* testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
4302	now that rvalue non-view non-borrowed ranges are viewable.
4303	* testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
4304
43052022-02-17  Jonathan Wakely  <jwakely@redhat.com>
4306
4307	PR libstdc++/104559
4308	* doc/xml/manual/evolution.xml: Document deprecation.
4309	* doc/html/manual/api.html: Regenerate.
4310	* include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
4311	Remove default argument.
4312	(insert(const_iterator)): New overload with deprecated attribute.
4313	* testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
4314	New test.
4315
43162022-02-17  Jonathan Wakely  <jwakely@redhat.com>
4317
4318	* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
4319	code that call cat->name() on std::error_category objects.
4320	Identify known categories by symbol name and use a hardcoded
4321	name. Print error code values as enumerators where appopriate.
4322	* testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
4323	name of custom category. Check io_errc and future_errc errors.
4324
43252022-02-15  Jonathan Wakely  <jwakely@redhat.com>
4326
4327	PR libstdc++/104542
4328	* include/bits/uses_allocator_args.h (make_obj_using_allocator)
4329	(uninitialized_construct_using_allocator): Add constexpr.
4330	* testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
4331	* testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
4332
43332022-02-14  Jonathan Wakely  <jwakely@redhat.com>
4334
4335	PR libstdc++/100912
4336	* config/locale/gnu/c_locale.h (__convert_from_v): Use inline
4337	namespace for IEEE128 long double mode.
4338	* config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
4339	version and export __gnu_cxx_ieee128::__convert_from_v.
4340	* include/bits/locale_facets_nonio.tcc (money_put::__do_put):
4341	Make __ibm128 overload use snprintf directly
4342	* testsuite/util/testsuite_abi.cc: Add new symbol version.
4343	Remove stable IEEE128/LDBL versions.
4344
43452022-02-14  Jonathan Wakely  <jwakely@redhat.com>
4346
4347	PR libstdc++/103891
4348	* include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
4349	Remove.
4350	* include/std/variant: Check feature test macros instead.
4351	* include/std/version: Likewise.
4352
43532022-02-14  Jonathan Wakely  <jwakely@redhat.com>
4354
4355	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4356	Fix typo.
4357
43582022-02-14  Jonathan Wakely  <jwakely@redhat.com>
4359
4360	* src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
4361	LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
4362
43632022-02-11  Jonathan Wakely  <jwakely@redhat.com>
4364
4365	* testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
4366	selector.
4367
43682022-02-11  Jonathan Wakely  <jwakely@redhat.com>
4369
4370	* testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4371	Ignore -Walloc-larger-than warning.
4372	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4373	Likewise.
4374	* testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
4375	to avoid linker error for __atomic_is_lock_free.
4376
43772022-02-10  Thomas Rodgers  <rodgert@appliantology.com>
4378
4379	* include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
4380	__waiter_base::_S_do_spin_v): Change memory order from relaxed
4381	to acquire.
4382
43832022-02-10  Jonathan Wakely  <jwakely@redhat.com>
4384
4385	* include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
4386	using-declaration.
4387	(atomic_fetch_xor_explicit): Likewise.
4388	* testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
4389	arithmetic and logical operations for atomic_int.
4390
43912022-02-10  Jonathan Wakely  <jwakely@redhat.com>
4392
4393	* src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
4394	when <dirent.h> is not available.
4395	(_GLIBCXX_HAVE_UNLINKAT):  Likewise.
4396
43972022-02-09  Thomas Rodgers  <rodgert@appliantology.com>
4398
4399	PR libstdc++/104442
4400	* include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
4401	 loop inside do loop so that threads failing the wait, reload
4402	 _M_ver.
4403
44042022-02-08  Jonathan Wakely  <jwakely@redhat.com>
4405
4406	* src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
4407	parameter to _Dir_base&&.
4408	* src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
4409	* src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
4410	parameter to _Dir_base&&.
4411
44122022-02-08  Jonathan Wakely  <jwakely@redhat.com>
4413
4414	* acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
4415	checking for CAS on correct word size.
4416
44172022-02-08  Jonathan Wakely  <jwakely@redhat.com>
4418
4419	* testsuite/experimental/filesystem/operations/create_directories.cc:
4420	Adjust expected results for Windows.
4421
44222022-02-08  Jonathan Wakely  <jwakely@redhat.com>
4423
4424	PR libstdc++/104161
4425	* src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
4426	[i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
4427	instead of checking for errno values indicating a directory.
4428	* src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
4429	logic to non-throwing overload.
4430	(fs::remove_all(const path&, error_code&)): Add comments.
4431	* src/filesystem/ops-common.h: Likewise.
4432
44332022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4434
4435	* src/filesystem/dir-common.h (_Dir_base::openat): Change return
4436	type to use portable posix::DIR alias.
4437
44382022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4439
4440	* include/c_compatibility/stdatomic.h [__clang__]: Use
4441	#include_next <stdatomic.h>.
4442
44432022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4444
4445	* include/experimental/bits/fs_ops.h (fs::copy_file): Remove
4446	noexcept.
4447	(fs::create_directories): Likewise.
4448	(fs::remove_all): Likewise.
4449	* src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
4450	(fs::create_directories): Likewise.
4451	(fs::remove_all): Likewise.
4452
44532022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4454
4455	PR libstdc++/104161
4456	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
4457	and unlinkat.
4458	* config.h.in: Regenerate.
4459	* configure: Regenerate.
4460	* include/bits/fs_dir.h (recursive_directory_iterator): Declare
4461	remove_all overloads as friends.
4462	(recursive_directory_iterator::__erase): Declare new member
4463	function.
4464	* include/bits/fs_fwd.h (remove, remove_all): Declare.
4465	* src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
4466	constructor. Pass file descriptor argument to base constructor.
4467	(_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
4468	(_Dir::unlink, _Dir::rmdir): Define new member functions.
4469	(directory_iterator): Pass filename_only argument to _Dir
4470	constructor.
4471	(recursive_directory_iterator::_Dir_stack): Adjust constructor
4472	parameters to take a _Dir rvalue instead of creating one.
4473	(_Dir_stack::orig): Add data member for storing original path.
4474	(_Dir_stack::report_error): Define new member function.
4475	(__directory_iterator_nofollow): Move here from dir-common.h and
4476	fix value to be a power of two.
4477	(__directory_iterator_filename_only): Define new constant.
4478	(recursive_directory_iterator): Construct _Dir object and move
4479	into _M_dirs stack. Pass skip_permission_denied argument to first
4480	advance call.
4481	(recursive_directory_iterator::increment): Use _Dir::open_subdir.
4482	(recursive_directory_iterator::__erase): Define new member
4483	function.
4484	* src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
4485	(fs::remove_all): Use new recursive_directory_iterator::__erase
4486	member function.
4487	* src/filesystem/dir-common.h (_Dir_base): Add int parameter to
4488	constructor and use openat to implement nofollow semantics.
4489	(_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
4490	Define new member functions.
4491	(__directory_iterator_nofollow): Move to fs_dir.cc.
4492	* src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
4493	base constructor.
4494	(_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
4495	functions.
4496	(recursive_directory_iterator::_Dir_stack): Adjust constructor
4497	parameters to take a _Dir rvalue instead of creating one.
4498	(recursive_directory_iterator): Check for new nofollow option.
4499	Construct _Dir object and move into _M_dirs stack. Pass
4500	skip_permission_denied argument to first advance call.
4501	(recursive_directory_iterator::increment): Use _Dir::open_subdir.
4502	* src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
4503
45042022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4505
4506	* include/bits/allocator.h: Qualify std::allocator_traits in
4507	deprecated warnings.
4508	* libsupc++/exception (uncaught_exception): Add suggestion to
4509	deprecated warning.
4510
45112022-02-02  Jonathan Wakely  <jwakely@redhat.com>
4512
4513	* src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
4514	Add [[maybe_unused]] attribute.
4515	* src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
4516	Likewise.
4517
45182022-02-02  Jonathan Wakely  <jwakely@redhat.com>
4519
4520	* testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
4521	custom comparison function for multiset.
4522	* testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
4523	comparison function for set.
4524
45252022-02-02  Jonathan Wakely  <jwakely@redhat.com>
4526
4527	* include/bits/boost_concept_check.h (_OutputIteratorConcept):
4528	Change member function to data member of function pointer type.
4529
45302022-02-02  Martin Sebor  <msebor@redhat.com>
4531
4532	PR libstdc++/101831
4533	* include/std/array (begin): Declare const member function attribute
4534	const.
4535	(end, rbegin, rend, size, max_size, empty, data): Same.
4536	* testsuite/23_containers/array/capacity/empty.cc: Add test cases.
4537	* testsuite/23_containers/array/capacity/max_size.cc: Same.
4538	* testsuite/23_containers/array/capacity/size.cc: Same.
4539	* testsuite/23_containers/array/iterators/begin_end.cc: New test.
4540
45412022-02-02  Jonathan Wakely  <jwakely@redhat.com>
4542
4543	* testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4544	autoconf macro to check whether d_type is present.
4545	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
4546	Likewise.
4547
45482022-02-01  Jonathan Wakely  <jwakely@redhat.com>
4549
4550	* testsuite/27_io/filesystem/iterators/97731.cc: New test.
4551	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4552	Check follow_directory_symlink option.
4553	* testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
4554	Likewise.
4555
45562022-02-01  Jonathan Wakely  <jwakely@redhat.com>
4557
4558	* src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
4559	Reset state to past-the-end iterator on error.
4560	(fs::recursive_directory_iterator::pop(error_code&)): Likewise.
4561	(fs::recursive_directory_iterator::pop()): Check _M_dirs before
4562	it might get reset.
4563	* src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
4564	for the TS implementation.
4565	* testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
4566	* testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
4567
45682022-02-01  Jonathan Wakely  <jwakely@redhat.com>
4569
4570	* include/bits/fs_fwd.h (filesystem::perms): Fix comment.
4571
45722022-02-01  Jonathan Wakely  <jwakely@redhat.com>
4573
4574	PR libstdc++/104301
4575	* acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
4576	for stdio_pure and stdio_posix options.
4577	* configure: Regenerate.
4578
45792022-02-01  Thomas Rodgers  <rodgert@appliantology.com>
4580
4581	* include/bits/atomic_wait.h: Change memory order from
4582	Acquire/Release with relaxed loads to SeqCst+Release for
4583	accesses to the waiter's count.
4584
45852022-01-31  Martin Liska  <mliska@suse.cz>
4586
4587	* acinclude.m4: Detect *_ld_is_mold and use it.
4588	* configure: Regenerate.
4589
45902022-01-30  Hans-Peter Nilsson  <hp@axis.com>
4591
4592	* testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
4593	simulator targets.
4594	* testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
4595
45962022-01-27  Jonathan Wakely  <jwakely@redhat.com>
4597
4598	PR libstdc++/100516
4599	* include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
4600	Add __builtin_unreachable to loop.
4601	* testsuite/23_containers/deque/100516.cc: New test.
4602
46032022-01-27  Jonathan Wakely  <jwakely@redhat.com>
4604
4605	* include/bits/ranges_base.h (ranges::advance): Avoid signed
4606	overflow. Do nothing if already equal to desired result.
4607	* testsuite/24_iterators/range_operations/advance_overflow.cc:
4608	New test.
4609
46102022-01-27  Martin Liska  <mliska@suse.cz>
4611
4612	PR libstdc++/104259
4613	* acinclude.m4: Fix typo.
4614	* configure: Regenerate.
4615
46162022-01-25  Jonathan Wakely  <jwakely@redhat.com>
4617
4618	PR libstdc++/104019
4619	* include/bits/istream.tcc (basic_istream::sentry): Add braces
4620	around try-block.
4621	* include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
4622	Add pragmas to disable bogus warnings from PR 61596.
4623
46242022-01-25  Jonathan Wakely  <jwakely@redhat.com>
4625
4626	PR libstdc++/104217
4627	* src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
4628	* src/filesystem/dir.cc (_GNU_SOURCE): Define.
4629	* src/filesystem/ops.cc (_GNU_SOURCE): Define.
4630
46312022-01-25  Jonathan Wakely  <jwakely@redhat.com>
4632
4633	PR libstdc++/104161
4634	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4635	fdopendir.
4636	* config.h.in: Regenerate.
4637	* configure: Regenerate.
4638	* src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
4639	and pass it to base class constructor.
4640	(directory_iterator): Pass nofollow flag to _Dir constructor.
4641	(fs::recursive_directory_iterator::increment): Likewise.
4642	* src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
4643	directory_iterator constructor. Move error check outside loop.
4644	* src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
4645	constructor and when it's set use ::open with O_NOFOLLOW and
4646	O_DIRECTORY.
4647	* src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
4648	and pass it to base class constructor.
4649	(directory_iterator): Pass nofollow flag to _Dir constructor.
4650	(fs::recursive_directory_iterator::increment): Likewise.
4651	* src/filesystem/ops.cc (remove_all): Use nofollow option for
4652	directory_iterator constructor. Move error check outside loop.
4653
46542022-01-23  Jonathan Wakely  <jwakely@redhat.com>
4655
4656	PR libstdc++/104032
4657	* include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
4658	mem-initializer for _M_buf.
4659	(basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
4660	member access.
4661	* testsuite/27_io/spanstream/2.cc: New test.
4662
46632022-01-23  Jonathan Wakely  <jwakely@redhat.com>
4664
4665	* src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
4666	Define macro for case where std::from_chars is implemented in
4667	terms of strtod, strtof or strtold.
4668	(buffer_resource, valid_fmt, find_end_of_float, pattern)
4669	(from_chars_impl, make_result, reserve_string): Do not define
4670	unless USE_STRTOD_FOR_FROM_CHARS is defined.
4671	(from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
4672	USE_STRTOD_FOR_FROM_CHARS is defined, instead of
4673	_GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
4674	is binary64.
4675
46762022-01-23  Jonathan Wakely  <jwakely@redhat.com>
4677
4678	PR libstdc++/104174
4679	* include/bits/hashtable_policy.h (_Map_base): Add partial
4680	specialization for maps with const key types.
4681	* testsuite/23_containers/unordered_map/104174.cc: New test.
4682
46832022-01-23  Jonathan Wakely  <jwakely@redhat.com>
4684
4685	PR libstdc++/104019
4686	* include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
4687	Set members to zero without type punning.
4688
46892022-01-21  Jonathan Wakely  <jwakely@redhat.com>
4690
4691	* testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
4692
46932022-01-21  Jonathan Wakely  <jwakely@redhat.com>
4694
4695	PR libstdc++/87193
4696	PR libstdc++/104019
4697	* include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
4698	Define as type long.
4699	* include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
4700	Likewise.
4701	* include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
4702	* include/bits/chrono.h (__cpp_lib_chrono): Likewise.
4703	(__cpp_lib_chrono_udls): Likewise.
4704	* include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
4705	* include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
4706	* include/bits/range_access.h (__cpp_lib_nonmember_container_access):
4707	Likewise.
4708	* include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
4709	Likewise.
4710	* include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
4711	(__cpp_lib_sample): Likewise.
4712	* include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
4713	Likewise.
4714	* include/bits/stl_function.h (__cpp_lib_transparent_operators):
4715	Likewise.
4716	* include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
4717	Likewise.
4718	* include/bits/stl_map.h (__cpp_lib_map_try_emplace):
4719	Likewise.
4720	* include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
4721	Likewise.
4722	* include/bits/unique_ptr.h (__cpp_lib_make_unique):
4723	Likewise.
4724	* include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
4725	Likewise.
4726	* include/c_global/cmath (__cpp_lib_hypot): Likewise.
4727	* include/c_global/cstddef (__cpp_lib_byte): Likewise.
4728	* include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
4729	Likewise.
4730	* include/std/complex (__cpp_lib_complex_udls): Likewise.
4731	* include/std/filesystem (__cpp_lib_filesystem): Likewise.
4732	* include/std/functional (__cpp_lib_not_fn): Likewise.
4733	(__cpp_lib_boyer_moore_searcher): Likewise.
4734	* include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
4735	* include/std/mutex (__cpp_lib_scoped_lock): Likewise.
4736	* include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
4737	(__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
4738	* include/std/tuple (__cpp_lib_apply): Likewise.
4739	(__cpp_lib_make_from_tuple): Likewise.
4740	* include/std/type_traits (__cpp_lib_integral_constant_callable)
4741	(__cpp_lib_bool_constant, __cpp_lib_logical_traits)
4742	(__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
4743	(__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
4744	(__cpp_lib_is_swappable, __cpp_lib_is_invocable)
4745	(__cpp_lib_has_unique_object_representations)
4746	(__cpp_lib_is_aggregate): Likewise.
4747	* include/std/version: Likewise.
4748	* libsupc++/new (__cpp_lib_launder): Likewise.
4749
47502022-01-21  Jonathan Wakely  <jwakely@redhat.com>
4751
4752	* include/std/version (__cpp_lib_shared_ptr_arrays): Fix
4753	condition for C++17 definition.
4754
47552022-01-21  Jonathan Wakely  <jwakely@redhat.com>
4756
4757	* include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
4758	Add constexpr.
4759	(_Sp_atomic::_M_ptr): Add default member-initializer.
4760	* testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
4761	Check constant initialization.
4762	* testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
4763
47642022-01-20  Jonathan Wakely  <jwakely@redhat.com>
4765
4766	* src/c++11/cxx11-ios_failure.cc (__constinit): Define as
4767	equivalent attribute for Clang.
4768	* src/c++11/future.cc (__constinit): Likewise.
4769	* src/c++11/system_error.cc (__constinit): Likewise.
4770	* src/c++17/memory_resource.cc (__constinit): Likewise.
4771
47722022-01-20  Jonathan Wakely  <jwakely@redhat.com>
4773
4774	* scripts/testsuite_flags.in: Only add src/filesystem/.libs and
4775	src/libbacktrace/.libs to LDFLAGS if those directories exist.
4776
47772022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4778
4779	* configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
4780	from default flags.
4781	* configure: Regenerate.
4782
47832022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4784
4785	PR libstdc++/104123
4786	* testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
4787	<stddef.h>.
4788
47892022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4790
4791	* scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
4792	linker search paths.
4793	* src/Makefile.am: Fix src/debug/libbacktrace build.
4794	* src/Makefile.in: Regenerate.
4795	* src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
4796	variable. Use symlinks for the source files.
4797	* src/libbacktrace/Makefile.in: Regenerate.
4798
47992022-01-19  Matthias Kretz  <m.kretz@gsi.de>
4800
4801	* include/experimental/bits/simd.h (__floating_point_flags): Do
4802	not rely on math_errhandling to expand to a constant expression.
4803
48042022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4805
4806	* doc/xml/manual/evolution.xml: Document deprecations.
4807	* doc/xml/manual/status_cxx2017.xml: Update status.
4808	* doc/html/*: Regenerate.
4809
48102022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4811
4812	* include/bits/stl_tempbuf.h (get_temporary_buffer): Change
4813	_GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
4814
48152022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4816
4817	* include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
4818	function.
4819
48202022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4821
4822	PR libstdc++/104101
4823	* include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
4824	Only use __thread_relax if __cpp_lib_atomic_wait is defined.
4825
48262022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4827
4828	PR libstdc++/104099
4829	* include/bits/basic_string.h (basic_string(nullptr_t)): Only
4830	define for C++23.
4831	(operator=(nullptr_t)): Likewise.
4832	* include/bits/cow_string.h: Likewise.
4833	* include/std/string_view (basic_string_view(nullptr_t)):
4834	Likewise.
4835	* testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
4836	expected error. Add examples that become ill-formed in C++23.
4837	* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4838	Adjust expected errors.
4839	* testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4840	Likewise.
4841
48422022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4843
4844	PR libstdc++/104098
4845	* include/bits/stl_iterator.h (reverse_iterator): Check
4846	__cpp_lib_concepts instead of __cplusplus.
4847
48482022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4849
4850	PR libstdc++/101124
4851	* include/bits/stl_pair.h (pair): Adjust constraints on
4852	deprecated constructors accepting literal zero as null pointer
4853	constant. Improve wording of deprecated attribute.
4854	* testsuite/20_util/pair/cons/99957.cc: Check that deprecated
4855	constructors do not cause ambiguities for copyable types.
4856
48572022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4858
4859	* include/bits/stl_function.h (ptr_fun): Fix suggestion for
4860	non-deprecated alternative.
4861
48622022-01-18  Tom Honermann  <tom@honermann.net>
4863
4864	* acinclude.m4: Define config macros if uchar.h provides
4865	c8rtomb() and mbrtoc8().
4866	* config.h.in: Regenerate.
4867	* configure: Regenerate.
4868	* include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
4869	* include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
4870	* include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
4871	* testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
4872	New test.
4873	* testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
4874	New test.
4875
48762022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4877
4878	* include/Makefile.am: Install new header.
4879	* include/Makefile.in: Regenerate.
4880	* include/c_compatibility/stdatomic.h: New file.
4881	* testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
4882
48832022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4884
4885	PR libstdc++/104080
4886	* src/c++17/fast_float/LOCAL_PATCHES: Update.
4887	* src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
4888	Define in terms of __BYTE_ORDER__.
4889
48902022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4891
4892	PR libstdc++/104080
4893	* src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
4894	* src/c++17/fast_float/fast_float.h (round): Use explicit
4895	template argument list for std::min.
4896
48972022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4898
4899	* doc/xml/manual/status_cxx2017.xml: Update C++17 status.
4900	* doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
4901	upcoming release.
4902	* doc/html/manual/status.html: Regenerate.
4903
49042022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4905
4906	* acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
4907	comments.
4908	* configure: Regenerate.
4909
49102022-01-17  Patrick Palka  <ppalka@redhat.com>
4911
4912	* src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
4913	Conditionally define, and use it to conditionally include
4914	fast_float.
4915	(from_chars): Use fast_float for float and double when
4916	USE_LIB_FAST_FLOAT.
4917
49182022-01-17  Patrick Palka  <ppalka@redhat.com>
4919
4920	* src/c++17/fast_float/LOCAL_PATCHES: Update.
4921	* src/c++17/fast_float/fast_float.h (from_chars_advanced): In
4922	case of over/underflow, return errc::result_out_of_range and don't
4923	modify 'value'.
4924
49252022-01-17  Patrick Palka  <ppalka@redhat.com>
4926
4927	* src/c++17/fast_float/LOCAL_PATCHES: Update.
4928	* src/c++17/fast_float/fast_float.h: Apply local modifications.
4929
49302022-01-17  Patrick Palka  <ppalka@redhat.com>
4931
4932	* src/c++17/fast_float/LOCAL_PATCHES: New file.
4933	* src/c++17/fast_float/MERGE: New file.
4934	* src/c++17/fast_float/README.md: New file, copied from the
4935	fast_float repository.
4936	* src/c++17/fast_float/fast_float.h: New file, an amalgamation
4937	of the fast_float library.
4938
49392022-01-17  Patrick Palka  <ppalka@redhat.com>
4940
4941	* src/c++17/floating_from_chars.cc: Include <bit>.
4942	(ascii_to_hexit, starts_with_ci): Conditionally define.
4943	(__floating_from_chars_hex):  Conditionally define.
4944	(from_chars): Use __floating_from_chars_hex for
4945	chars_format::hex parsing of binary32/64 float/double.
4946	(testsuite/20_util/from_chars/7.cc): New test.
4947	* testsuite/20_util/from_chars/7.cc: New file.
4948
49492022-01-17  Jonathan Wakely  <jwakely@redhat.com>
4950
4951	* acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
4952	* configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
4953	* include/Makefile.am: Add new header.
4954	* include/Makefile.in: Regenerate.
4955	* include/std/stacktrace: New header.
4956	* include/std/version (__cpp_lib_stacktrace): Define.
4957	* Makefile.in: Regenerate.
4958	* config.h.in: Regenerate.
4959	* configure: Regenerate.
4960	* doc/Makefile.in: Regenerate.
4961	* libsupc++/Makefile.in: Regenerate.
4962	* po/Makefile.in: Regenerate.
4963	* python/Makefile.in: Regenerate.
4964	* src/Makefile.am: Regenerate.
4965	* src/Makefile.in: Regenerate.
4966	* src/c++11/Makefile.in: Regenerate.
4967	* src/c++17/Makefile.in: Regenerate.
4968	* src/c++20/Makefile.in: Regenerate.
4969	* src/c++98/Makefile.in: Regenerate.
4970	* src/filesystem/Makefile.in: Regenerate.
4971	* testsuite/Makefile.in: Regenerate.
4972	* src/libbacktrace/Makefile.am: New file.
4973	* src/libbacktrace/Makefile.in: New file.
4974	* src/libbacktrace/backtrace-rename.h: New file.
4975	* src/libbacktrace/backtrace-supported.h.in: New file.
4976	* src/libbacktrace/config.h.in: New file.
4977	* testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
4978	New proc.
4979	* testsuite/20_util/stacktrace/entry.cc: New test.
4980	* testsuite/20_util/stacktrace/synopsis.cc: New test.
4981	* testsuite/20_util/stacktrace/version.cc: New test.
4982
49832022-01-17  Jonathan Wakely  <jwakely@redhat.com>
4984
4985	* doc/xml/manual/status_cxx2020.xml: Use final C++20 option
4986	names.
4987	* doc/html/manual/status.html: Regenerate.
4988
49892022-01-17  Jonathan Wakely  <jwakely@redhat.com>
4990
4991	PR libstdc++/103650
4992	* include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
4993	* include/Makefile.in: Regenerate.
4994	* testsuite/17_intro/headers/c++1998/103650.cc: New test.
4995
49962022-01-17  Matthias Kretz  <m.kretz@gsi.de>
4997
4998	* include/experimental/bits/simd.h (__floating_point_flags): Do
4999	not rely on the presence of the math_errhandling macro.
5000
50012022-01-17  Jonathan Wakely  <jwakely@redhat.com>
5002
5003	* include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
5004	to qualified-id for dependent type.
5005
50062022-01-17  Jonathan Wakely  <jwakely@redhat.com>
5007
5008	* doc/xml/manual/status_cxx2020.xml: Update.
5009	* doc/html/manual/status.html: Regenerate.
5010
50112022-01-17  Jonathan Wakely  <jwakely@redhat.com>
5012	    Thomas Rodgers  <trodgers@redhat.com>
5013
5014	* include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
5015	New macro.
5016	(_Sp_atomic): New class template.
5017	(atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
5018	specializations.
5019	* include/bits/shared_ptr_base.h (__shared_count, __weak_count)
5020	(__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
5021	* include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
5022	* testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
5023	test.
5024	* testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
5025
50262022-01-15  Matthias Kretz  <m.kretz@gsi.de>
5027
5028	* include/experimental/bits/simd.h: Move feature detection bools
5029	and add __have_avx512bitalg, __have_avx512vbmi2,
5030	__have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
5031	__have_avx512vnni, __have_avx512vpopcntdq.
5032	(__detail::__machine_flags): New function which returns a unique
5033	uint64 depending on relevant -m and -f flags.
5034	(__detail::__odr_helper): New type alias for either an anonymous
5035	type or a type specialized with the __machine_flags number.
5036	(_SimdIntOperators): Change template parameters from _Impl to
5037	_Tp, _Abi because _Impl now has an __odr_helper parameter which
5038	may be _OdrEnforcer from the anonymous namespace, which makes
5039	for a bad base class.
5040	(many): Either add __odr_helper template parameter or mark as
5041	always_inline.
5042	* include/experimental/bits/simd_detail.h: Add defines for
5043	AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
5044	AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
5045	* include/experimental/bits/simd_builtin.h: Add __odr_helper
5046	template parameter or mark as always_inline.
5047	* include/experimental/bits/simd_fixed_size.h: Ditto.
5048	* include/experimental/bits/simd_math.h: Ditto.
5049	* include/experimental/bits/simd_scalar.h: Ditto.
5050	* include/experimental/bits/simd_neon.h: Add __odr_helper
5051	template parameter.
5052	* include/experimental/bits/simd_ppc.h: Ditto.
5053	* include/experimental/bits/simd_x86.h: Ditto.
5054
50552022-01-14  Uro�� Bizjak  <ubizjak@gmail.com>
5056
5057	* testsuite/22_locale/numpunct/members/char/3.cc:
5058	Require pt_PT locale instead of nl_NL.
5059	(test02): Use pt_PT locale instead of nl_NL.
5060
50612022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5062
5063	PR libstdc++/91260
5064	PR libstdc++/91383
5065	PR libstdc++/95065
5066	* include/backward/binders.h (bind1st, bind2nd): Add deprecated
5067	attribute.
5068	* include/bits/refwrap.h (_Maybe_unary_or_binary_function):
5069	Disable deprecated warnings for base classes.
5070	(_Reference_wrapper_base): Likewise.
5071	* include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
5072	* include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
5073	* include/bits/stl_function.h (unary_function, binary_function):
5074	Add deprecated attribute.
5075	(unary_negate, not1, binary_negate, not2, ptr_fun)
5076	(pointer_to_unary_function, pointer_to_binary_function)
5077	(mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
5078	(mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
5079	(const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
5080	attributes.
5081	* include/bits/stl_iterator.h: Disable deprecated warnings for
5082	std::iterator base classes.
5083	* include/bits/stl_iterator_base_types.h (iterator): Add
5084	deprecated attribute.
5085	* include/bits/stl_map.h (map::value_compare): Disable
5086	deprecated warnings for base class.
5087	* include/bits/stl_multimap.h (multimap::value_compare):
5088	Likewise.
5089	* include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
5090	Add deprecated attribute.
5091	* include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
5092	* include/bits/stream_iterator.h: Disable deprecated warnings.
5093	* include/bits/streambuf_iterator.h: Likewise.
5094	* include/ext/bitmap_allocator.h: Remove unary_function base
5095	classes.
5096	* include/ext/functional: Disable deprecated warnings.
5097	* include/ext/rope: Likewise.
5098	* include/ext/throw_allocator.h: Likewise.
5099	* include/std/type_traits (result_of): Add deprecated attribute.
5100	* include/tr1/functional: Disable deprecated warnings.
5101	* include/tr1/functional_hash.h: Likewise.
5102	* testsuite/20_util/function_objects/binders/1.cc: Add
5103	-Wno-disable-deprecations.
5104	* testsuite/20_util/function_objects/binders/3113.cc: Likewise.
5105	* testsuite/20_util/function_objects/constexpr.cc: Add
5106	dg-warning.
5107	* testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
5108	* testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
5109	* testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
5110	Likewise.
5111	* testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
5112	Likewise.
5113	* testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
5114	Likewise.
5115	* testsuite/20_util/reference_wrapper/24803.cc:
5116	Likewise.
5117	* testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
5118	C++20 and check for absence of nested types.
5119	* testsuite/20_util/shared_ptr/comparison/less.cc: Remove
5120	std::binary_function base class.
5121	* testsuite/20_util/temporary_buffer.cc: Add dg-warning.
5122	* testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
5123	std::iterator base class.
5124	* testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
5125	Likewise.
5126	* testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
5127	Likewise.
5128	* testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
5129	Likewise.
5130	* testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
5131	Likewise.
5132	* testsuite/24_iterators/istreambuf_iterator/92285.cc:
5133	Likewise.
5134	* testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
5135	Likewise.
5136	* testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
5137	Likewise.
5138	* testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
5139	Likewise.
5140	* testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
5141	Likewise.
5142	* testsuite/25_algorithms/copy/34595.cc:
5143	Likewise.
5144	* testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
5145	base class.
5146	* testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
5147	Disable deprecated warnings.
5148	* testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
5149	Likewise.
5150	* testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
5151	Likewise.
5152	* testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
5153	Likewise.
5154	* testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
5155	Likewise.
5156	* testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
5157	Likewise.
5158	* testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
5159	Likewise.
5160	* testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
5161	Likewise.
5162	* testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
5163	Likewise.
5164	* testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
5165	Likewise.
5166	* testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
5167	Likewise.
5168	* testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
5169	Likewise.
5170	* testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
5171	Likewise.
5172	* testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
5173	Likewise.
5174	* testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
5175	Likewise.
5176	* testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
5177	Likewise.
5178	* testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
5179	Likewise.
5180	* testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
5181	Likewise.
5182	* testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
5183	Likewise.
5184	* testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
5185	Likewise.
5186	* testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
5187	Likewise.
5188	* testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
5189	Likewise.
5190	* testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
5191	Likewise.
5192	* testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
5193	Likewise.
5194	* testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
5195	Likewise.
5196	* testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
5197	Likewise.
5198	* testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
5199	Likewise.
5200	* testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
5201	Likewise.
5202	* testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
5203	Likewise.
5204	* testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
5205	Likewise.
5206	* testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
5207	Likewise.
5208	* testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
5209	Likewise.
5210	* testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
5211	Likewise.
5212	* testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
5213	Likewise.
5214	* testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
5215	Likewise.
5216	* testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
5217	Likewise.
5218	* testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
5219	Likewise.
5220	* testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
5221	Likewise.
5222	* testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
5223	Likewise.
5224	* testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
5225	Likewise.
5226	* testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
5227	Likewise.
5228	* testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
5229	Likewise.
5230	* testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
5231	Likewise.
5232	* testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
5233	Likewise.
5234	* testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
5235	Likewise.
5236	* testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
5237	Likewise.
5238	* testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
5239	Likewise.
5240	* testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
5241	Likewise.
5242	* testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
5243	dg-warning.
5244	* testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
5245	Likewise.
5246	* testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
5247	Likewise.
5248	* testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
5249	Disable deprecated warnings.
5250	* testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
5251	Likewise.
5252	* testsuite/util/regression/trait/erase_if_fn.hpp: Remove
5253	std::unary_function base classes.
5254	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5255	Remove std::iterator base classes.
5256
52572022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5258
5259	* include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
5260	Correct type of macro value.
5261	(shared_ptr): Add additional friend declarations.
5262	(make_shared, allocate_shared): Constrain existing overloads and
5263	remove static_assert.
5264	* include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
5265	New macro.
5266	(_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
5267	specialization for use with make_shared_for_overwrite.
5268	(__cpp_lib_shared_ptr_arrays): Update value for C++20.
5269	(_Sp_counted_array_base): New class template.
5270	(_Sp_counted_array): New class template.
5271	(__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
5272	New constructor for allocating shared arrays.
5273	(__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
5274	* include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
5275	type.
5276	(__cpp_lib_shared_ptr_arrays): Update value for C++20.
5277	(__cpp_lib_smart_ptr_for_overwrite): New macro.
5278	* testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
5279	expected errors.
5280	* testsuite/20_util/shared_ptr/creation/array.cc: New test.
5281	* testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
5282	* testsuite/20_util/shared_ptr/creation/version.cc: New test.
5283	* testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
5284	feature test macro. Test non-trivial default-initialization.
5285
52862022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5287
5288	* include/bits/stl_construct.h (_Construct, _Construct_novalue):
5289	Also cast away cv-qualifiers when converting pointer to void.
5290	* testsuite/20_util/allocator/void.cc: Test construct function
5291	with cv-qualified types.
5292
52932022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5294
5295	PR libstdc++/103992
5296	* include/bits/stl_iterator.h (common_iterator): Use
5297	std::construct_at instead of placement new.
5298	* testsuite/24_iterators/common_iterator/1.cc: Check copy
5299	construction is usable in constant expressions.
5300
53012022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5302
5303	* doc/xml/manual/status_cxx2011.xml: Document new tokens
5304	accepted by std::random_device constructor.
5305	* doc/html/manual/status.html: Regenerate.
5306
53072022-01-12  Patrick Palka  <ppalka@redhat.com>
5308
5309	* testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
5310	directive.
5311
53122022-01-12  Patrick Palka  <ppalka@redhat.com>
5313
5314	PR libstdc++/103955
5315	* src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5316	Track the excess precision separately from the effective
5317	precision.  Avoid overflow in bounds check by splitting it into
5318	two checks.
5319	(__floating_to_chars_precision): Avoid overflow in bounds checks
5320	similarly.
5321	* testsuite/20_util/to_chars/103955.cc: New test.
5322
53232022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5324
5325	PR libstdc++/103726
5326	* include/Makefile.am: Install <source_location> for
5327	freestanding.
5328	* include/Makefile.in: Regenerate.
5329	* include/std/version (__cpp_lib_source_location): Define for
5330	freestanding.
5331
53322022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5333
5334	* include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
5335	Add neoxcept (LWG 3593).
5336
53372022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5338
5339	* include/std/ranges (ranges::__detail::__box): Add constexpr to
5340	assignment operators (LWG 3572).
5341	* testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
5342	view that uses copyable-box.
5343
53442022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5345
5346	PR libstdc++/103726
5347	* include/Makefile.am: Install <coroutine> for freestanding.
5348	* include/Makefile.in: Regenerate.
5349	* include/std/coroutine: Adjust headers and preprocessor
5350	conditions.
5351	(__coroutine_traits_impl): Use concepts when available.
5352	[_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
5353
53542022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5355
5356	* include/std/ostream (operator<<(basic_ostream&, charT)):
5357	Use unformatted input if no padding is needed.
5358	(operator<<(basic_ostream<char>&, char)): Likewise.
5359
53602022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5361
5362	PR libstdc++/103891
5363	* include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5364	Define.
5365	* include/std/variant (__cpp_lib_variant): Only define C++20
5366	value when the compiler is known to support conditionally
5367	trivial destructors.
5368	* include/std/version (__cpp_lib_variant): Likewise.
5369
53702022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5371
5372	* include/bits/stl_iterator.h (common_iterator): Add constexpr
5373	to all member functions (LWG 3574).
5374	* testsuite/24_iterators/common_iterator/1.cc: Evaluate some
5375	tests as constant expressions.
5376	* testsuite/24_iterators/common_iterator/2.cc: Likewise.
5377
53782022-01-10  Jakub Jelinek  <jakub@redhat.com>
5379
5380	PR libstdc++/77760
5381	* include/bits/locale_facets_nonio.h (__time_get_state): New struct.
5382	(time_get::_M_extract_via_format): Declare new method with
5383	__time_get_state& as an extra argument.
5384	* include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
5385	__state argument, set various fields in it while parsing.  Handle %j,
5386	%U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
5387	for %p immediately.  Add a wrapper around the method without the
5388	__state argument for backwards compatibility.
5389	(_M_extract_num): Remove all __len == 4 special cases.
5390	(time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
5391	initialize __state, pass it to _M_extract_via_format and finalize it
5392	at the end.
5393	(do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
5394	69-99 to 1969-1999.  For 3-4 digit parsed years use that as year.
5395	(get): If do_get isn't overloaded from the locale_facets_nonio.tcc
5396	version, don't call do_get but call _M_extract_via_format instead to
5397	pass around state.
5398	* config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
5399	with extra __time_get_state and __time_get_state::_M_finalize_state.
5400	* src/c++98/locale_facets.cc (is_leap, day_of_the_week,
5401	day_of_the_year): New functions in anon namespace.
5402	(mon_yday): New var in anon namespace.
5403	(__time_get_state::_M_finalize_state): Define.
5404	* testsuite/22_locale/time_get/get/char/4.cc: New test.
5405	* testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
5406	* testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
5407	as year 197AD instead of error.
5408	* testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
5409	year 2001 instead of error.
5410	* testsuite/22_locale/time_get/get_year/char/6.cc: New test.
5411	* testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
5412	197 as year 197AD instead of error.
5413	* testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
5414	1 as year 2001 instead of error.
5415	* testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
5416
54172022-01-10  Jonathan Wakely  <jwakely@redhat.com>
5418
5419	PR libstdc++/103866
5420	* acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
5421	nothing for freestanding builds.
5422	(GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
5423	* configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
5424	with --without-headers.  Do not use GCC_HEADER_STDINT for
5425	freestanding builds.
5426	* libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
5427	for freestanding builds.
5428	* configure: Regenerate.
5429	* Makefile.in: Regenerate.
5430	* doc/Makefile.in: Regenerate.
5431	* include/Makefile.in: Regenerate.
5432	* libsupc++/Makefile.in: Regenerate.
5433	* po/Makefile.in: Regenerate.
5434	* python/Makefile.in: Regenerate.
5435	* src/Makefile.in: Regenerate.
5436	* src/c++11/Makefile.in: Regenerate.
5437	* src/c++17/Makefile.in: Regenerate.
5438	* src/c++20/Makefile.in: Regenerate.
5439	* src/c++98/Makefile.in: Regenerate.
5440	* src/filesystem/Makefile.in: Regenerate.
5441	* testsuite/Makefile.in: Regenerate.
5442
54432022-01-10  Jonathan Wakely  <jwakely@redhat.com>
5444
5445	* testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
5446	Add dg-timeout-factor directive.
5447	* testsuite/28_regex/basic_regex/84110.cc: Likewise.
5448	* testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
5449	* testsuite/28_regex/match_results/102667.cc: Likewise.
5450
54512022-01-10  Jonathan Wakely  <jwakely@redhat.com>
5452
5453	* doc/xml/manual/using.xml: Update documentation around default
5454	-std option.
5455	* doc/html/*: Regenerate.
5456
54572022-01-10  Jonathan Wakely  <jwakely@redhat.com>
5458
5459	PR libstdc++/100017
5460	* src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
5461	* src/c++17/Makefile.in: Regenerate.
5462
54632022-01-09  Sandra Loosemore  <sandra@codesourcery.com>
5464
5465	* testsuite/18_support/type_info/constexpr.cc: Add explicit
5466	-fdelete-null-pointer-checks option.
5467
54682022-01-06  Pavel I. Kryukov  <pavel.kryukov@phystech.edu>
5469	    Jonathan Wakely  <jwakely@redhat.com>
5470
5471	PR libstdc++/103853
5472	* include/bits/forward_list.tcc (forward_list::merge): Check for
5473	self-merge.
5474	* testsuite/23_containers/forward_list/operations/merge.cc: New test.
5475
54762022-01-06  Jonathan Wakely  <jwakely@redhat.com>
5477
5478	* include/bits/regex.h (basic_regex, match_results): Qualify
5479	name in friend declaration, to work around Clang bug.
5480
54812022-01-06  Jonathan Wakely  <jwakely@redhat.com>
5482
5483	* testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
5484
54852022-01-06  Jonathan Wakely  <jwakely@redhat.com>
5486
5487	PR libstdc++/103911
5488	* include/std/charconv (__from_chars_alpha_to_num): Return
5489	char instead of unsigned char. Change invalid return value to
5490	127 instead of using numeric trait.
5491	(__from_chars_alnum): Fix comment. Do not use std::isdigit.
5492	Change type of variable to char.
5493
54942022-01-05  Fran��ois Dumont  <fdumont@gcc.gnu.org>
5495
5496	PR libstdc++/68303
5497	* include/bits/hashtable_policy.h
5498	(_Hashtable_hash_traits<_Hash>): New.
5499	(_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
5500	(_Hashtable_base<>::_M_key_equals): New.
5501	(_Hashtable_base<>::_M_equals): Use latter.
5502	(_Hashtable_base<>::_M_key_equals_tr): New.
5503	(_Hashtable_base<>::_M_equals_tr): Use latter.
5504	* include/bits/hashtable.h
5505	(_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
5506	(_Hashtable<>::find): Loop through elements to look for key if size is lower
5507	than __small_size_threshold().
5508	(_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
5509	(_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
5510	(_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
5511	(_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
5512	(_Hashtable<>::_M_find_before_node(const key_type&)): New.
5513	(_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
5514	(_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
5515	* src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
5516	* testsuite/util/testsuite_performance.h
5517	(report_performance): Use 9 width to display memory.
5518	* testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
5519	New performance test case.
5520
55212022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5522
5523	PR libstdc++/103919
5524	* include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
5525	Relax constraints on string_view parameter.
5526	* include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
5527	Likewise.
5528	* testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
5529
55302022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5531
5532	* config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
5533	ARM EABI.
5534	* include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
5535	* include/std/version (__cpp_lib_constexpr_typeinfo): Define.
5536	* libsupc++/tinfo.cc: Add #error to ensure non-inline definition
5537	is emitted.
5538	(type_info::__equal): Define alias symbol.
5539	* libsupc++/typeinfo (type_info::before): Combine different
5540	implementations into one.
5541	(type_info::operator==): Likewise. Use address equality for
5542	constant evaluation. Call __equal for targets that require the
5543	definition to be non-inline.
5544	* testsuite/18_support/type_info/constexpr.cc: New test.
5545
55462022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5547
5548	* src/c++11/cxx11-ios_failure.cc (io_error_category): Define
5549	class and virtual functions as 'final'.
5550	(io_category_instance): Use constinit union to make the object
5551	immortal.
5552	* src/c++11/future.cc (future_error_category): Define class and
5553	virtual functions as 'final'.
5554	(future_category_instance): Use constinit union.
5555
55562022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5557
5558	* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
5559	versioned namespace from the type name that is printed.
5560
55612022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5562
5563	* python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
5564	printer for std::regex NFA states.
5565
55662022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5567
5568	* testsuite/23_containers/forward_list/operations/1.cc: Fill in
5569	placeholders in comments.
5570	* testsuite/23_containers/forward_list/operations/2.cc:
5571	Likewise.
5572	* testsuite/23_containers/forward_list/operations/3.cc:
5573	Likewise.
5574	* testsuite/23_containers/forward_list/operations/4.cc:
5575	Likewise.
5576	* testsuite/23_containers/forward_list/operations/5.cc:
5577	Likewise.
5578	* testsuite/23_containers/forward_list/operations/6.cc:
5579	Likewise.
5580	* testsuite/23_containers/forward_list/operations/7.cc:
5581	Likewise.
5582
55832022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5584
5585	PR libstdc++/103848
5586	* include/bits/stl_deque.h (operator-): Do not use 0 as null
5587	pointer constant.
5588
55892022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5590
5591	* include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
5592	Use std::_Construct for construct.
5593
55942022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5595
5596	PR libstdc++/103877
5597	* doc/xml/faq.xml: Add '-x c++' to preprocessor command.
5598	* doc/html/faq.html: Regenerate.
5599
56002022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5601
5602	* include/bits/regex.h (__regex_algo_impl): Change __policy and
5603	__match_mode template parameters to be function parameters.
5604	(regex_match, regex_search): Pass policy and match mode as
5605	function arguments.
5606	* include/bits/regex.tcc (__regex_algo_impl): Change template
5607	parameters to function parameters.
5608	* include/bits/regex_compiler.h (_RegexTranslatorBase): Use
5609	'if constexpr' for conditions using template parameters.
5610	(_RegexTranslator): Likewise.
5611	* include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
5612	Likewise.
5613	* testsuite/util/testsuite_regex.h (regex_match_debug)
5614	(regex_search_debug): Move template arguments to function
5615	arguments.
5616
56172022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5618
5619	* testsuite/util/testsuite_regex.h (regex_match_debug): Compare
5620	results even if the match failed.
5621
56222022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5623
5624	* include/bits/regex_compiler.tcc: Adjust all calls to
5625	__throw_regex_error.
5626	* include/bits/regex_error.h (__throw_regex_error): Add noreturn
5627	attribute.
5628	* include/bits/regex_scanner.tcc: Likewise.
5629	* src/c++11/regex.cc (desc): New helper function.
5630	(regex_error::regex_error(error_type)): Use desc to get a string
5631	corresponding to the error code.
5632
5633
5634Copyright (C) 2022 Free Software Foundation, Inc.
5635
5636Copying and distribution of this file, with or without modification,
5637are permitted in any medium without royalty provided the copyright
5638notice and this notice are preserved.
5639