xref: /netbsd-src/external/gpl3/gcc/dist/libstdc++-v3/ChangeLog (revision 901e7e84758515fbf39dfc064cb0b45ab146d8b0)
12023-05-08  Release Manager
2
3	* GCC 12.3.0 released.
4
52023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
6
7	Backported from master:
8	2023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
9		    Jonathan Wakely  <jwakely@redhat.com>
10
11	PR libstdc++/109703
12	* include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
13	Initialize _M_string_length.
14
152023-05-03  Jonathan Wakely  <jwakely@redhat.com>
16
17	Backported from master:
18	2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
19
20	* doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
21	from header paths.
22
232023-04-29  Patrick Palka  <ppalka@redhat.com>
24
25	Backported from master:
26	2023-04-12  Patrick Palka  <ppalka@redhat.com>
27
28	* include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
29	Propagate _M_trailing_empty in the const-converting constructor
30	as per LWG 3904.
31	* testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
32
332023-04-29  Patrick Palka  <ppalka@redhat.com>
34
35	Backported from master:
36	2023-03-14  Patrick Palka  <ppalka@redhat.com>
37
38	* include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
39	Define.
40	(__cpp_lib_move_iterator_concept): Define for C++20.
41	(move_iterator::iterator_concept): Strengthen as per P2520R0.
42	* include/std/version (__cpp_lib_move_iterator_concept): Define
43	for C++20.
44	* testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
45
462023-04-29  Patrick Palka  <ppalka@redhat.com>
47
48	Backported from master:
49	2023-03-09  Patrick Palka  <ppalka@redhat.com>
50
51	PR libstdc++/108362
52	* include/std/ranges (__detail::__can_single_view): New concept.
53	(_Single::operator()): Constrain it.  Move [[nodiscard]] to the
54	end of the function declarator.
55	(__detail::__can_iota_view): New concept.
56	(_Iota::operator()): Constrain it.  Move [[nodiscard]] to the
57	end of the function declarator.
58	(__detail::__can_istream_view): New concept.
59	(_Istream::operator()): Constrain it.  Move [[nodiscard]] to the
60	end of the function declarator.
61	* testsuite/std/ranges/iota/lwg3292_neg.cc: Prune "in
62	requirements" diagnostic.
63	* testsuite/std/ranges/iota/iota_view.cc (test07): New test.
64	* testsuite/std/ranges/istream_view.cc (test08): New test.
65	* testsuite/std/ranges/single_view.cc (test07): New test.
66
672023-04-28  Patrick Palka  <ppalka@redhat.com>
68
69	Backported from master:
70	2023-04-24  Patrick Palka  <ppalka@redhat.com>
71
72	* include/bits/max_size_type.h (__max_diff_type::operator>>=):
73	Fix propagation of sign bit.
74	* testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
75	non-standard 'signed typedef-name'.  Add some compile-time tests
76	for right-shifting a negative __max_diff_type value by more than
77	one.
78
792023-04-27  Jonathan Wakely  <jwakely@redhat.com>
80
81	* include/std/atomic: Add missing @endcond doxygen comment.
82
832023-04-27  Jonathan Wakely  <jwakely@redhat.com>
84
85	Backported from master:
86	2022-11-25  Jonathan Wakely  <jwakely@redhat.com>
87
88	PR libstdc++/107850
89	* include/bits/erase_if.h (__erase_nodes_if): Use non-const
90	reference to the container.
91	* include/experimental/map (erase_if): Likewise.
92	* include/experimental/set (erase_if): Likewise.
93	* include/experimental/unordered_map (erase_if): Likewise.
94	* include/experimental/unordered_set (erase_if): Likewise.
95	* include/std/map (erase_if): Likewise.
96	* include/std/set (erase_if): Likewise.
97	* include/std/unordered_map (erase_if): Likewise.
98	* include/std/unordered_set (erase_if): Likewise.
99	* testsuite/23_containers/map/erasure.cc: Check with
100	const-incorrect predicate.
101	* testsuite/23_containers/set/erasure.cc: Likewise.
102	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
103	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
104	* testsuite/experimental/map/erasure.cc: Likewise.
105	* testsuite/experimental/set/erasure.cc: Likewise.
106	* testsuite/experimental/unordered_map/erasure.cc: Likewise.
107	* testsuite/experimental/unordered_set/erasure.cc: Likewise.
108
1092023-04-27  Jonathan Wakely  <jwakely@redhat.com>
110
111	Backported from master:
112	2022-11-28  Jonathan Wakely  <jwakely@redhat.com>
113
114	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
115	Replace non-ASCII character.
116
1172023-04-27  Jonathan Wakely  <jwakely@redhat.com>
118
119	Backported from master:
120	2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
121
122	PR libstdc++/108952
123	* include/bits/uses_allocator_args.h
124	(uses_allocator_construction_args): Implement LWG 3527.
125	* testsuite/20_util/pair/astuple/get-2.cc: New test.
126	* testsuite/20_util/scoped_allocator/108952.cc: New test.
127	* testsuite/20_util/uses_allocator/lwg3527.cc: New test.
128
1292023-04-27  Jonathan Wakely  <jwakely@redhat.com>
130
131	Backported from master:
132	2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
133
134	PR libstdc++/109339
135	* include/std/stop_token (_Stop_state_ptr(const stop_source&)):
136	Add attribute access with access-mode 'none'.
137	* testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
138
1392023-04-27  Jonathan Wakely  <jwakely@redhat.com>
140
141	Backported from master:
142	2022-11-28  Jonathan Wakely  <jwakely@redhat.com>
143
144	PR libstdc++/107466
145	* include/bits/random.h (subtract_with_carry_engine): Use 32-bit
146	type for default seed. Use 0u as default argument for
147	subtract_with_carry_engine(result_type) constructor and
148	seed(result_type) member function.
149	* include/bits/random.tcc (subtract_with_carry_engine): Use
150	32-bit type for default seed and engine used for initial state.
151	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
152	New test.
153
1542023-04-27  Jonathan Wakely  <jwakely@redhat.com>
155
156	Backported from master:
157	2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
158
159	* include/bits/mofunc_impl.h: Fix typo in doxygen comment.
160
1612023-04-27  Jonathan Wakely  <jwakely@redhat.com>
162
163	Backported from master:
164	2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
165
166	* doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
167	HTML docs.
168	* include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
169	from doxygen docs.
170	* include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
171	Likewise.
172	* include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
173	Likewise.
174	* include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
175	Likewise.
176	* include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
177	(_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
178	(_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
179	(_DEFINE_BINARY_OPERATOR): Likewise.
180
1812023-04-21  Jonathan Wakely  <jwakely@redhat.com>
182
183	PR libstdc++/103755
184	* include/bits/locale_classes.tcc (try_facet, use_facet): Do not
185	check array index or dynamic type when accessing required
186	specializations of std::ctype, std::num_get, or std::num_put.
187	* testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust
188	expected errors.
189
1902023-04-20  Jonathan Wakely  <jwakely@redhat.com>
191
192	Backported from master:
193	2022-11-29  Jonathan Wakely  <jwakely@redhat.com>
194
195	PR libstdc++/107852
196	PR libstdc++/106199
197	PR libstdc++/100366
198	* include/bits/vector.tcc (vector::_M_fill_insert): Copy
199	_M_start and _M_finish members before allocating.
200	(vector::_M_default_append): Likewise.
201	(vector::_M_range_insert): Likewise.
202
2032023-04-20  Jonathan Wakely  <jwakely@redhat.com>
204
205	Backported from master:
206	2023-04-04  Jonathan Wakely  <jwakely@redhat.com>
207
208	* doc/xml/manual/extensions.xml: Remove std::bad_exception from
209	example program.
210	* doc/html/manual/ext_demangling.html: Regenerate.
211
2122023-04-20  Jonathan Wakely  <jwakely@redhat.com>
213
214	Backported from master:
215	2023-04-05  Jonathan Wakely  <jwakely@redhat.com>
216
217	* include/bits/regex.h (sub_match::swap): New function.
218	* testsuite/28_regex/sub_match/lwg3204.cc: New test.
219
2202023-04-20  Jonathan Wakely  <jwakely@redhat.com>
221
222	Backported from master:
223	2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
224
225	PR libstdc++/103387
226	* include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
227	std::use_facet instead of cached _M_num_get facet.
228	(istream::operator>>(short&)): Likewise.
229	(istream::operator>>(int&)): Likewise.
230	* include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
231	std::use_facet instead of cached _M_num_put facet.
232
2332023-04-20  Jonathan Wakely  <jwakely@redhat.com>
234
235	Backported from master:
236	2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
237
238	* testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
239	dg-options.
240
2412023-04-20  Jonathan Wakely  <jwakely@redhat.com>
242
243	Backported from master:
244	2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
245
246	* include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
247	Add overload, as per LWG 3893.
248	* testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
249	Check assignment from nullptr.
250
2512023-04-20  Jonathan Wakely  <jwakely@redhat.com>
252
253	Backported from master:
254	2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
255
256	* include/std/expected (expected::value() &): Use const lvalue
257	for unex member passed to bad_expected_access constructor, as
258	per LWG 3843.
259
2602023-04-20  Jonathan Wakely  <jwakely@redhat.com>
261
262	Backported from master:
263	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
264
265	* include/std/variant (variant::operator=): Implement resolution
266	of LWG 3585.
267	* testsuite/20_util/variant/lwg3585.cc: New test.
268
2692023-04-12  Patrick Palka  <ppalka@redhat.com>
270
271	Backported from master:
272	2023-04-12  Patrick Palka  <ppalka@redhat.com>
273
274	* src/c++17/floating_from_chars.cc: Include <algorithm>,
275	<iterator>, <limits> and <cstdint>.
276
2772023-03-30  Jonathan Wakely  <jwakely@redhat.com>
278
279	Backported from master:
280	2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
281
282	PR libstdc++/109242
283	* include/std/optional (transform): Use std::remove_cv_t.
284	* testsuite/20_util/optional/monadic/pr109242.cc: New test.
285
2862023-03-28  Jonathan Wakely  <jwakely@redhat.com>
287
288	Backported from master:
289	2022-12-16  Jonathan Wakely  <jwakely@redhat.com>
290
291	PR libstdc++/108118
292	* include/bits/shared_ptr_base.h (weak_ptr::operator=):
293	Implement as move-and-swap exactly as specified in the standard.
294	* testsuite/20_util/weak_ptr/cons/self_move.cc: New test.
295
2962023-03-28  Jonathan Wakely  <jwakely@redhat.com>
297
298	Backported from master:
299	2022-11-03  Jonathan Wakely  <jwakely@redhat.com>
300
301	* include/bits/ranges_algobase.h (__detail::__copy_or_move):
302	Move output iterator.
303	* testsuite/25_algorithms/copy/constrained.cc: Check copying to
304	move-only output iterator.
305
3062023-03-28  Björn Schäpers  <bjoern@hazardy.de>
307
308	Backported from master:
309	2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
310
311	* include/std/stacktrace (stacktrace_entry::_S_demangle): Use
312	raw __name if __cxa_demangle could not demangle it.
313
3142023-03-28  Jonathan Wakely  <jwakely@redhat.com>
315
316	Backported from master:
317	2022-12-12  Jonathan Wakely  <jwakely@redhat.com>
318
319	* include/std/stacktrace (operator<<): Only output to narrow
320	ostreams (LWG 3515).
321	* testsuite/19_diagnostics/stacktrace/synopsis.cc:
322
3232023-03-28  Jonathan Wakely  <jwakely@redhat.com>
324
325	Backported from master:
326	2022-12-09  Jonathan Wakely  <jwakely@redhat.com>
327
328	* include/bits/chrono.h (duration_cast, floor, round, abs, ceil)
329	(time_point_cast): Add [[nodiscard]] attribute and doxygen
330	comments.
331	(treat_as_floating_point): Add doxygen commen.
332
3332023-03-28  Jonathan Wakely  <jwakely@redhat.com>
334
335	Backported from master:
336	2022-12-09  Jonathan Wakely  <jwakely@redhat.com>
337
338	* include/bits/chrono.h (duration, time_point): Change 'struct'
339	to 'class'.
340
3412023-03-28  Jonathan Wakely  <jwakely@redhat.com>
342
343	Backported from master:
344	2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
345
346	PR libstdc++/108554
347	* include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
348	nonnull attribute.
349	(_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
350	attributes.
351	* testsuite/23_containers/map/modifiers/108554.cc: New test.
352
3532023-03-28  Jonathan Wakely  <jwakely@redhat.com>
354
355	Backported from master:
356	2022-09-23  Jonathan Wakely  <jwakely@redhat.com>
357
358	* include/std/bitset (bitset::_M_copy_to_string): Find set bits
359	instead of iterating over individual bits.
360
3612023-03-28  Jonathan Wakely  <jwakely@redhat.com>
362
363	Backported from master:
364	2022-09-15  Jonathan Wakely  <jwakely@redhat.com>
365
366	* include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
367	Replace with ...
368	(_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
369	(_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
370	try_lock_failed flag
371	(_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
372	(_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
373	(_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
374	(_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
375	(_Sp_atomic::_Atomic_count::lock): Use new macros.
376
3772023-03-28  Jonathan Wakely  <jwakely@redhat.com>
378
379	Backported from master:
380	2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
381
382	* include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
383	(_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
384	(_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
385	(_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
386	Define macros for TSan annotation functions.
387	(_Sp_atomic::_Atomic_count): Add annotations.
388
3892023-03-28  Jonathan Wakely  <jwakely@redhat.com>
390
391	Backported from master:
392	2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
393
394	* include/std/memory_resource (new_delete_resource): Add
395	nodiscard, returns_nonnull and const attributes.
396	(null_memory_resource): Likewise.
397	(set_default_resource, get_default_resource): Add returns_nonnull
398	attribute.
399	(memory_resource::is_equal): Add nodiscard attribute.
400	(operator==, operator!=): Likewise.
401
4022023-03-28  Jonathan Wakely  <jwakely@redhat.com>
403
404	Backported from master:
405	2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
406
407	* include/std/future
408	(_State_baseV2::__setter(exception_ptr&, promise&)): Add
409	assertion for LWG 2276 precondition.
410	* testsuite/30_threads/promise/members/set_exception_neg.cc:
411	New test.
412
4132023-03-28  Jonathan Wakely  <jwakely@redhat.com>
414
415	Backported from master:
416	2022-09-08  Jonathan Wakely  <jwakely@redhat.com>
417
418	* include/c_global/cstddef (byte): Add always_inline attribute
419	to all operator overloads.
420	(to_integer): Add always_inline attribute.
421
4222023-03-28  Jonathan Wakely  <jwakely@redhat.com>
423
424	Backported from master:
425	2022-09-08  Jonathan Wakely  <jwakely@redhat.com>
426
427	* include/std/system_error (__adl_only::make_error_code): Add
428	deleted function.
429	(__adl_only::make_error_condition): Likewise.
430	(error_code::error_code(ErrorCodeEnum)): Add using-declaration
431	for deleted function.
432	(error_condition::error_condition(ErrorConditionEnum)):
433	Likewise.
434	* testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
435	* testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
436
4372023-03-28  Jonathan Wakely  <jwakely@redhat.com>
438
439	Backported from master:
440	2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
441
442	* include/bits/ios_base.h (io_category): Add const and nodiscard
443	attributes.
444	(make_error_code, make_error_condition): Add nodiscard.
445	* include/std/future (future_category): Add const and nodiscard.
446	(make_error_code, make_error_condition): Add nodiscard.
447	* include/std/system_error (generic_category system_category):
448	Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
449	(error_code::value, error_code::category, error_code::operator bool)
450	(error_condition::value, error_condition::category)
451	(error_condition::operator bool, make_error_code)
452	(make_error_condition, operator==, operator!=, operator<=>): Add
453	nodiscard.
454
4552023-03-28  Jonathan Wakely  <jwakely@redhat.com>
456
457	Backported from master:
458	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
459
460	* include/bits/std_thread.h (thread, thread::id): Improve
461	doxygen docs.
462	* include/std/future: Likewise.
463	* include/std/thread (jthread): Likewise.
464
4652023-03-28  Jonathan Wakely  <jwakely@redhat.com>
466
467	Backported from master:
468	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
469
470	* include/std/system_error: Improve doxygen comments.
471
4722023-03-28  Jonathan Wakely  <jwakely@redhat.com>
473
474	Backported from master:
475	2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
476
477	* include/ext/throw_allocator.h: Use reserved names for
478	parameters.
479
4802023-03-28  Jonathan Wakely  <jwakely@redhat.com>
481
482	Backported from master:
483	2022-11-25  Jonathan Wakely  <jwakely@redhat.com>
484
485	* acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT
486	unless the AC_MSG_CHECKING happened.
487	* configure: Regenerate.
488
4892023-03-28  Jonathan Wakely  <jwakely@redhat.com>
490
491	Backported from master:
492	2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
493
494	* doc/xml/manual/abi.xml: Add latest library versions.
495	* doc/html/manual/abi.html: Regenerate.
496
4972023-03-28  Jonathan Wakely  <jwakely@redhat.com>
498
499	Backported from master:
500	2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
501
502	* include/bits/char_traits.h (char_traits::copy): Return without
503	using memcpy if n==0.
504	(char_traits::assign): Likewise for memset.
505
5062023-03-28  Jonathan Wakely  <jwakely@redhat.com>
507
508	Backported from master:
509	2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
510
511	PR libstdc++/109299
512	* include/bits/basic_string.h (basic_string::_M_is_local()): Add
513	hint for compiler that local strings fit in the local buffer.
514
5152023-03-28  Jonathan Wakely  <jwakely@redhat.com>
516
517	Backported from master:
518	2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
519
520	* include/bits/cow_string.h: Fix typo in comment.
521
5222023-03-28  Jonathan Wakely  <jwakely@redhat.com>
523
524	Backported from master:
525	2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
526
527	* include/experimental/optional: Fix header name in comment.
528
5292023-03-28  Jonathan Wakely  <jwakely@redhat.com>
530
531	Backported from master:
532	2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
533
534	PR libstdc++/108413
535	* include/c_compatibility/stdatomic.h: Change copyright line to
536	be consistent with other headers contributed under DCO terms.
537	* include/std/expected: Add full stop to copyright line.
538
5392023-03-21  Matthias Kretz  <m.kretz@gsi.de>
540
541	Backported from master:
542	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
543
544	* include/experimental/bits/simd_x86.h
545	(_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
546	with __RECIPROCAL_MATH__.
547
5482023-03-21  Matthias Kretz  <m.kretz@gsi.de>
549
550	Backported from master:
551	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
552
553	* include/experimental/bits/simd_detail.h: Don't define
554	_GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
555	* include/experimental/bits/simd_x86.h (_S_divides): Remove
556	check for __clang__.
557
5582023-03-21  Matthias Kretz  <m.kretz@gsi.de>
559
560	Backported from master:
561	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
562
563	* testsuite/experimental/simd/tests/operators.cc: Clang doesn't
564	define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
565
5662023-03-20  François Dumont  <fdumont@gcc.gnu.org>
567
568	Backported from master:
569	2022-11-16  François Dumont  <fdumont@gcc.gnu.org>
570
571	* python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field
572	'template'. Add self.targ1 to specify the first template parameter of the instantiation
573	to match.
574	(add_one_type_printer): Add targ1 optional parameter, default to None.
575	Use gdb.types.get_basic_type to compare the type to recognize and the type
576	returned from the typedef lookup.
577	(register_type_printers): Adapt calls to add_one_type_printers.
578
5792023-03-20  François Dumont  <fdumont@gcc.gnu.org>
580
581	Backported from master:
582	2022-10-03  François Dumont  <fdumont@gcc.gnu.org>
583
584	* python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
585	namespace for __cxx11 symbols.
586	(add_one_template_type_printer): Likewise.
587	(add_one_type_printer): Likewise.
588	(FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
589	ambiguous typedef matching both std:: and std::__cxx11:: symbols.
590	* testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
591	\#define _GLIBCXX_USE_CXX11_ABI 0.
592	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
593	std::__cxx11::list.
594	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
595	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
596	* testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
597	and debug mode.
598	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
599
6002023-03-20  François Dumont  <fdumont@gcc.gnu.org>
601
602	Backported from master:
603	2022-09-22  François Dumont  <fdumont@gcc.gnu.org>
604
605	* python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
606	types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
607	std::__debug::priority_queue.
608
6092023-03-20  Jonathan Wakely  <jwakely@redhat.com>
610
611	Backported from master:
612	2023-03-10  Jonathan Wakely  <jwakely@redhat.com>
613
614	PR libstdc++/109064
615	* python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
616	Remove self-recursion in __init__. Add missing _supports.
617	* testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
618	and unique().
619
6202023-03-20  Jonathan Wakely  <jwakely@redhat.com>
621
622	PR libstdc++/109182
623	* include/std/expected (expected<void>::expected(in_place_t)):
624	Remove template-head.
625
6262023-03-20  Jonathan Wakely  <jwakely@redhat.com>
627
628	PR libstdc++/109165
629	* include/std/coroutine (hash<>::operator()): Add const.
630	* testsuite/18_support/coroutines/hash.cc: New test.
631
6322023-03-10  Thomas W Rodgers  <rodgert@twrodgers.com>
633
634	Backported from master:
635	2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
636
637	PR libstdc++/103934
638	* include/std/atomic (atomic_flag_wait): Add.
639	(atomic_flag_wait_explicit): Add.
640	(atomic_flag_notify): Add.
641	(atomic_flag_notify_explicit): Add.
642	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
643	Add test case to cover missing atomic_flag free functions.
644
6452023-02-23  Matthias Kretz  <m.kretz@gsi.de>
646
647	Backported from master:
648	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
649
650	PR libstdc++/108030
651	* include/experimental/bits/simd.h (__vector_broadcast):
652	Implement via __vector_broadcast_impl instead of
653	__call_with_n_evaluations + 2 lambdas.
654	(__vector_broadcast_impl): New.
655
6562023-02-23  Matthias Kretz  <m.kretz@gsi.de>
657
658	Backported from master:
659	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
660
661	* include/experimental/bits/simd_builtin.h (_S_set): Compare as
662	int. The actual range of these indexes is very small.
663
6642023-02-23  Matthias Kretz  <m.kretz@gsi.de>
665
666	Backported from master:
667	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
668
669	* include/experimental/bits/simd_x86.h (_S_bit_shift_left)
670	(_S_bit_shift_right): Declare constexpr. The implementation was
671	already expecting constexpr evaluation.
672
6732023-02-23  Matthias Kretz  <m.kretz@gsi.de>
674
675	Backported from master:
676	2023-02-20  Matthias Kretz  <m.kretz@gsi.de>
677
678	* include/experimental/bits/simd.h (__extract_part, split):
679	Use reserved name for template parameter.
680
6812023-02-21  Jonathan Wakely  <jwakely@redhat.com>
682
683	Backported from master:
684	2022-08-31  Jonathan Wakely  <jwakely@redhat.com>
685
686	* include/bits/refwrap.h (reference_wrapper::operator()): Add
687	noexcept-specifier and use __invoke_result instead of result_of.
688	* testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
689
6902023-02-21  Jonathan Wakely  <jwakely@redhat.com>
691
692	Backported from master:
693	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
694
695	PR libstdc++/108636
696	* include/bits/fs_path.h (path::path(string_view, _Type))
697	(path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
698	definitions to ...
699	* src/c++17/fs_path.cc: ... here.
700	* testsuite/27_io/filesystem/path/108636.cc: New test.
701
7022023-02-16  Matthias Kretz  <m.kretz@gsi.de>
703
704	Backported from master:
705	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
706
707	* include/experimental/bits/simd_math.h (__hypot): Bitcasting
708	between scalars requires the __bit_cast helper function instead
709	of simd_bit_cast.
710
7112023-02-16  Matthias Kretz  <m.kretz@gsi.de>
712
713	Backported from master:
714	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
715
716	* include/experimental/bits/simd_x86.h
717	(_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
718	(_SimdImplX86::_S_less_equal): Do not call
719	__builtin_is_constant_evaluated in constexpr-if.
720
7212023-02-16  Matthias Kretz  <m.kretz@gsi.de>
722
723	Backported from master:
724	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
725
726	* testsuite/experimental/simd/tests/bits/verify.h
727	(verify::verify): Use %zx for size_t in format string.
728
7292023-02-16  Matthias Kretz  <m.kretz@gsi.de>
730
731	Backported from master:
732	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
733
734	* testsuite/experimental/simd/README.md: Document the timeout
735	and timeout-factor directives. Minor typo fixed.
736
7372023-02-16  Matthias Kretz  <m.kretz@gsi.de>
738
739	Backported from master:
740	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
741
742	* include/experimental/bits/simd.h
743	(_SimdWrapper::_M_is_constprop_none_of)
744	(_SimdWrapper::_M_is_constprop_all_of): Return false unless the
745	computed result still satisfies __builtin_constant_p.
746
7472023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
748
749	Backported from master:
750	2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
751
752	PR libstdc++/103934
753	* include/std/atomic (atomic_flag_test): Add.
754	(atomic_flag_test_explicit): Add.
755	* testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
756	test case to cover missing atomic_flag free functions.
757	* testsuite/29_atomics/atomic_flag/test/implicit.cc:
758	Likewise.
759
7602023-02-10  Jakub Jelinek  <jakub@redhat.com>
761
762	Backported from master:
763	2022-11-24  Jakub Jelinek  <jakub@redhat.com>
764
765	PR libstdc++/107468
766	* src/c++17/fast_float/fast_float.h: Partial merge from fast_float
767	2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit.
768
7692023-02-10  Jakub Jelinek  <jakub@redhat.com>
770
771	Backported from master:
772	2022-11-07  Jakub Jelinek  <jakub@redhat.com>
773
774	PR libstdc++/107468
775	* src/c++17/fast_float/fast_float.h: Partial merge from fast_float
776	662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
777	* testsuite/20_util/from_chars/pr107468.cc: New test.
778
7792023-02-02  Jonathan Wakely  <jwakely@redhat.com>
780
781	Backported from master:
782	2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
783
784	* src/c++11/random.cc (random_device::_M_fini): Do not try to
785	close the file handle if the target doesn't support the
786	/dev/random and /dev/urandom files.
787
7882023-02-02  Jonathan Wakely  <jwakely@redhat.com>
789
790	Backported from master:
791	2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
792
793	* config/os/generic/error_constants.h (errc::value_too_large)
794	[__AVR__]: Define.
795	* src/c++11/system_error.cc
796	(system_category::default_error_condition) [__AVR__]: Only match
797	recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
798	* src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
799	for ENOENT etc. in switch.
800	(fs::remove_all) [__AVR__]: Likewise.
801	* src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
802	close etc.
803
8042023-02-02  Patrick Palka  <ppalka@redhat.com>
805
806	Backported from master:
807	2022-11-06  Patrick Palka  <ppalka@redhat.com>
808
809	* include/bits/atomic_wait.h (_detail::__platform_wait_alignment):
810	Declare inline.  Remove redundant static specifier.
811	(__detail::__atomic_spin_count_relax): Declare inline.
812	(__detail::__atomic_spin_count): Likewise.
813	* include/bits/regex_automaton.h (__detail::_S_invalid_state_id):
814	Declare inline for C++17.  Declare constexpr.  Remove
815	redundant const and static specifiers.
816	* include/bits/regex_error.h (regex_constants::error_collate):
817	Declare inline for C++17 as per P0607R0.
818	(regex_constants::error_ctype): Likewise.
819	(regex_constants::error_escape): Likewise.
820	(regex_constants::error_backref): Likewise.
821	(regex_constants::error_brack): Likewise.
822	(regex_constants::error_paren): Likewise.
823	(regex_constants::error_brace): Likewise.
824	(regex_constants::error_badbrace): Likewise.
825	(regex_constants::error_range): Likewise.
826	(regex_constants::error_space): Likewise.
827	(regex_constants::error_badrepeat): Likewise.
828	(regex_constants::error_complexity): Likewise.
829	(regex_constants::error_stack): Likewise.
830	* include/ext/concurrence.h (__gnu_cxx::__default_lock_policy):
831	Likewise.  Remove redundant static specifier.
832	* include/pstl/execution_defs.h (execution::seq): Declare inline
833	for C++17 as per P0607R0.
834	(execution::par): Likewise.
835	(execution::par_unseq): Likewise.
836	(execution::unseq): Likewise.
837
8382023-01-18  Jonathan Wakely  <jwakely@redhat.com>
839
840	Backported from master:
841	2022-12-22  Jonathan Wakely  <jwakely@redhat.com>
842
843	PR libstdc++/105730
844	* src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
845	Access private data member of base class and call its wait
846	member.
847
8482023-01-16  Jonathan Wakely  <jwakely@redhat.com>
849
850	Backported from master:
851	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
852
853	PR libstdc++/106183
854	* include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
855	Move increment of _M_ver here.
856	[!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
857	Use relaxed memory order and always notify all waiters.
858	(__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
859	Check value again after locking mutex.
860	(__waiter_base::_M_notify): Remove increment of _M_ver.
861
8622023-01-05  Jonathan Wakely  <jwakely@redhat.com>
863
864	Backported from master:
865	2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
866
867	PR libstdc++/108265
868	* include/std/chrono (hh_mm_ss): Do not use chrono::abs if
869	duration rep is unsigned. Remove incorrect noexcept-specifier.
870	* testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check
871	floating-point representations. Check default construction.
872
8732022-12-21  Jonathan Wakely  <jwakely@redhat.com>
874
875	Backported from master:
876	2022-11-23  Jonathan Wakely  <jwakely@redhat.com>
877
878	PR libstdc++/107814
879	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
880	Use a static buffer with space after it.
881
8822022-12-21  Jonathan Wakely  <jwakely@redhat.com>
883
884	Backported from master:
885	2022-12-16  Jonathan Wakely  <jwakely@redhat.com>
886
887	* include/std/expected (expected::_M_swap_val_unex): Guard the
888	correct object.
889	(expected::swap): Move is_swappable
890	requirement from static_assert to constraint.
891	(swap): Likewise.
892	(operator==): Remove noexcept-specifier.
893	* testsuite/20_util/expected/swap.cc: Check swapping of
894	types without non-throwing move constructor. Check constraints
895	on swap.
896	* testsuite/20_util/expected/unexpected.cc: Check constraints on
897	swap.
898	* testsuite/20_util/expected/equality.cc: New test.
899
9002022-12-14  Jonathan Wakely  <jwakely@redhat.com>
901
902	Backported from master:
903	2022-12-14  Jonathan Wakely  <jwakely@redhat.com>
904
905	PR libstdc++/108097
906	* include/std/stacktrace (basic_stracktrace::_Impl): Do not
907	multiply N by sizeof(value_type) when allocating.
908
9092022-11-24  Jonathan Wakely  <jwakely@redhat.com>
910
911	Backported from master:
912	2022-09-15  Jonathan Wakely  <jwakely@redhat.com>
913
914	* include/std/memory: Do not include <bits/stl_algobase.h>.
915
9162022-11-24  Jonathan Wakely  <jwakely@redhat.com>
917
918	Backported from master:
919	2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
920
921	* testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
922	const qualifier.
923	* testsuite/26_numerics/valarray/87641.cc (X::operator==):
924	Likewise.
925
9262022-11-24  Jonathan Wakely  <jwakely@redhat.com>
927
928	Backported from master:
929	2022-11-02  Jonathan Wakely  <jwakely@redhat.com>
930
931	* include/std/expected (expected::_M_invalid): Remove.
932
9332022-11-24  Jonathan Wakely  <jwakely@redhat.com>
934
935	Backported from master:
936	2022-11-21  Jonathan Wakely  <jwakely@redhat.com>
937
938	* include/bits/chrono.h (duration): Check preconditions on
939	template arguments before using them.
940
9412022-11-24  Jonathan Wakely  <jwakely@redhat.com>
942
943	Backported from master:
944	2022-10-28  Jonathan Wakely  <jwakely@redhat.com>
945
946	* include/bits/fs_path.h (path::filename()): Fix dangling
947	reference.
948
9492022-11-24  Jonathan Wakely  <jwakely@redhat.com>
950
951	Backported from master:
952	2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
953
954	* doc/xml/manual/intro.xml: Document LWG 1203.
955	* doc/html/*: Regenerate.
956
9572022-11-24  Jonathan Wakely  <jwakely@redhat.com>
958
959	Backported from master:
960	2022-09-07  Jonathan Wakely  <jwakely@redhat.com>
961
962	* include/std/barrier: Add missing runtime exception.
963
9642022-11-24  Jonathan Wakely  <jwakely@redhat.com>
965
966	Backported from master:
967	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
968
969	* include/bits/fs_dir.h (directory_iterator): Add comparison
970	with std::default_sentinel_t. Remove redundant operator!= for
971	C++20.
972	* (recursive_directory_iterator): Likewise.
973	* include/bits/iterator_concepts.h [!__cpp_lib_concepts]
974	(default_sentinel_t, default_sentinel): Define even if concepts
975	are not supported.
976	* include/bits/regex.h (regex_iterator): Add comparison with
977	std::default_sentinel_t. Remove redundant operator!= for C++20.
978	(regex_token_iterator): Likewise.
979	(regex_token_iterator::_M_end_of_seq()): Add noexcept.
980	* testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
981	* testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
982	New test.
983	* testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
984	New test.
985
9862022-11-24  Jonathan Wakely  <jwakely@redhat.com>
987
988	Backported from master:
989	2022-09-23  Jonathan Wakely  <jwakely@redhat.com>
990
991	PR libstdc++/91456
992	* include/std/type_traits (__is_nothrow_invocable): Remove.
993	(__is_invocable_impl::__nothrow_type): New member type which
994	checks if the conversion can throw.
995	(__is_nt_invocable_impl): Replace class template with alias
996	template to __is_nt_invocable_impl::__nothrow_type.
997	* testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
998	* testsuite/20_util/is_nothrow_convertible/value.cc: Remove
999	macro used by value_ext.cc test.
1000	* testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
1001	test for non-standard __is_nothrow_invocable trait.
1002
10032022-11-22  Jonathan Wakely  <jwakely@redhat.com>
1004
1005	PR libstdc++/106201
1006	* include/bits/fs_path.h (filesystem::swap(path&, path&)):
1007	Replace with abbreviated function template.
1008	* include/experimental/bits/fs_path.h (filesystem::swap):
1009	Likewise.
1010	* testsuite/27_io/filesystem/iterators/106201.cc: New test.
1011	* testsuite/experimental/filesystem/iterators/106201.cc: New test.
1012
10132022-11-22  Jonathan Wakely  <jwakely@redhat.com>
1014
1015	Backported from master:
1016	2022-11-22  Jonathan Wakely  <jwakely@redhat.com>
1017
1018	PR libstdc++/107801
1019	* src/c++17/memory_resource.cc (pool_sizes): Disable large pools
1020	for targets with 16-bit int.
1021
10222022-11-14  Jonathan Wakely  <jwakely@redhat.com>
1023
1024	* include/bits/mofunc_impl.h (move_only_function::__param_t):
1025	Use __is_scalar instead of is_trivially_copyable.
1026	* testsuite/20_util/move_only_function/call.cc: Check parameters
1027	involving incomplete types.
1028
10292022-11-14  Jonathan Wakely  <jwakely@redhat.com>
1030
1031	Backported from master:
1032	2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
1033
1034	PR libstdc++/95048
1035	* include/bits/fs_path.h (path::_Codecvt): New class template
1036	that selects the kind of code conversion done.
1037	(path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t).
1038	(_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to
1039	be used for Windows and POSIX.
1040	(path::_S_convert(const EcharT*, const EcharT*)): Simplify by
1041	using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions.
1042	(path::_S_str_convert(basic_string_view<value_type>, const A&)):
1043	Simplify nested conditions.
1044	* include/experimental/bits/fs_path.h (path::_Cvt): Define
1045	nested typedef controlling type of code conversion done.
1046	(path::_Cvt::_S_wconvert): Use new typedef.
1047	(path::string(const A&)): Likewise.
1048	* testsuite/27_io/filesystem/path/construct/95048.cc: New test.
1049	* testsuite/experimental/filesystem/path/construct/95048.cc: New
1050	test.
1051
10522022-11-14  Nathaniel Shead  <nathanieloshead@gmail.com>
1053
1054	Backported from master:
1055	2022-11-11  Nathaniel Shead  <nathanieloshead@gmail.com>
1056
1057	PR libstdc++/103295
1058	* include/bits/basic_string.h (_M_use_local_data): Set active
1059	member to _M_local_buf.
1060
10612022-11-08  Jonathan Wakely  <jwakely@redhat.com>
1062
1063	Backported from master:
1064	2022-11-08  Jonathan Wakely  <jwakely@redhat.com>
1065
1066	* doc/xml/authors.xml: Remove empty author element.
1067	* doc/xml/manual/spine.xml: Likewise.
1068	* doc/html/manual/index.html: Regenerate.
1069
10702022-10-19  Alexandre Oliva  <oliva@adacore.com>
1071
1072	Backported from master:
1073	2022-06-22  Alexandre Oliva  <oliva@adacore.com>
1074
1075	* libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
1076	(__eh_globals_init::~__eh_globals_init): Clear _S_init first.
1077
10782022-09-29  Jonathan Wakely  <jwakely@redhat.com>
1079
1080	Backported from master:
1081	2022-09-28  Jonathan Wakely  <jwakely@redhat.com>
1082
1083	* doc/xml/manual/evolution.xml: Document std::bind API
1084	changes.
1085	* doc/xml/manual/intro.xml: Document LWG 2487 status.
1086	* doc/xml/manual/using.xml: Clarify default value of
1087	_GLIBCXX_USE_DEPRECATED.
1088	* doc/html/*: Regenerate.
1089	* include/std/functional (_Bind::operator()(Args&&...) volatile)
1090	(_Bind::operator()(Args&&...) const volatile)
1091	(_Bind_result::operator()(Args&&...) volatile)
1092	(_Bind_result::operator()(Args&&...) const volatile): Replace
1093	with deleted overload for C++20 and later.
1094	* testsuite/20_util/bind/cv_quals.cc: Check for deprecated
1095	warnings in C++17.
1096	* testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
1097	ill-formed in C++20.
1098
10992022-09-16  Jonathan Wakely  <jwakely@redhat.com>
1100
1101	* doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version.
1102	* doc/html/manual/abi.html: Regenerate.
1103
11042022-09-12  Patrick Palka  <ppalka@redhat.com>
1105
1106	Backported from master:
1107	2022-09-12  Patrick Palka  <ppalka@redhat.com>
1108
1109	PR libstdc++/106320
1110	* testsuite/std/ranges/adaptors/join.cc (test13): New test.
1111
11122022-09-07  Jonathan Wakely  <jwakely@redhat.com>
1113
1114	Backported from master:
1115	2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
1116
1117	PR libstdc++/106695
1118	* include/bits/std_thread.h (thread::_State_impl): Forward
1119	individual arguments to _Invoker constructor.
1120	(thread::_Invoker): Add constructor. Delete copies.
1121	* include/std/future (__future_base::_Deferred_state): Forward
1122	individual arguments to _Invoker constructor.
1123	(__future_base::_Async_state_impl): Likewise.
1124	* testsuite/30_threads/async/106695.cc: New test.
1125	* testsuite/30_threads/thread/106695.cc: New test.
1126
11272022-09-07  Jonathan Wakely  <jwakely@redhat.com>
1128
1129	Backported from master:
1130	2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
1131
1132	PR libstdc++/106607
1133	* include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
1134	Use built-ins to check for integer overflow in back-reference
1135	number.
1136	* testsuite/28_regex/basic_regex/106607.cc: New test.
1137
11382022-08-24  Jonathan Wakely  <jwakely@redhat.com>
1139
1140	Backported from master:
1141	2022-08-23  Jonathan Wakely  <jwakely@redhat.com>
1142
1143	PR libstdc++/106589
1144	* include/std/variant (__do_visit): Handle is_void<R> for zero
1145	argument case.
1146	* testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
1147
11482022-08-23  Jonathan Wakely  <jwakely@redhat.com>
1149
1150	Backported from master:
1151	2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
1152
1153	PR libstdc++/105678
1154	* doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
1155	requirement for using std::stacktrace. Also adjust -frtti and
1156	-fexceptions to document non-default (i.e. negative) forms.
1157	* doc/html/*: Regenerate.
1158
11592022-08-19  Release Manager
1160
1161	* GCC 12.2.0 released.
1162
11632022-08-05  Jonathan Wakely  <jwakely@redhat.com>
1164
1165	Backported from master:
1166	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
1167
1168	* include/std/string_view (basic_string_view(Range&&)): Add
1169	explicit as per P2499R0.
1170	* testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
1171	Adjust implicit conversions. Check implicit conversions fail.
1172	* testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
1173	Likewise.
1174
11752022-08-05  Jonathan Wakely  <jwakely@redhat.com>
1176
1177	Backported from master:
1178	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
1179
1180	* include/std/expected (unexpected::_M_val): Rename to _M_unex.
1181	(bad_expected_access::_M_val): Likewise.
1182
11832022-08-05  Jonathan Wakely  <jwakely@redhat.com>
1184
1185	Backported from master:
1186	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
1187
1188	* include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
1189	value to 202207L.
1190	* include/std/version (__cpp_lib_ios_noreplace): Likewise.
1191	* testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
1192	for new value.
1193	* testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
1194	Likewise.
1195
11962022-08-03  Jonathan Wakely  <jwakely@redhat.com>
1197
1198	Backported from master:
1199	2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
1200
1201	* src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
1202	current() returning _At_path.
1203	(_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
1204	* src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
1205	(_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
1206	* src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
1207	current() returning _At_path.
1208	(_Dir::_Dir, _Dir::open_subdir): Adjust.
1209
12102022-08-03  Jonathan Wakely  <jwakely@redhat.com>
1211
1212	Backported from master:
1213	2022-07-29  Jonathan Wakely  <jwakely@redhat.com>
1214
1215	PR libstdc++/104443
1216	* include/bits/stl_iterator.h (common_iterator::operator->):
1217	Change return type to just auto.
1218
12192022-08-03  Jonathan Wakely  <jwakely@redhat.com>
1220
1221	Backported from master:
1222	2022-07-12  Jonathan Wakely  <jwakely@redhat.com>
1223
1224	PR libstdc++/106248
1225	* include/std/istream [C++17] (operator>>(istream&, char*)):
1226	Set eofbit if we stopped extracting at EOF.
1227	* testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
1228	New test.
1229	* testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
1230	New test.
1231
12322022-08-03  Jonathan Wakely  <jwakely@redhat.com>
1233
1234	Backported from master:
1235	2022-07-01  Jonathan Wakely  <jwakely@redhat.com>
1236
1237	* include/bits/fs_ops.h: Add nodiscard to all pure functions.
1238	* include/experimental/bits/fs_ops.h: Likewise.
1239	* testsuite/27_io/filesystem/operations/all.cc: Do not discard
1240	results of absolute and canonical.
1241	* testsuite/27_io/filesystem/operations/absolute.cc: Cast
1242	discarded result to void.
1243	* testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
1244	* testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1245	* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1246	* testsuite/27_io/filesystem/operations/read_symlink.cc:
1247	Likewise.
1248	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
1249	* testsuite/27_io/filesystem/operations/symlink_status.cc:
1250	Likewise.
1251	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1252	Likewise.
1253	* testsuite/experimental/filesystem/operations/canonical.cc:
1254	Likewise.
1255	* testsuite/experimental/filesystem/operations/exists.cc:
1256	Likewise.
1257	* testsuite/experimental/filesystem/operations/is_empty.cc:
1258	Likewise.
1259	* testsuite/experimental/filesystem/operations/read_symlink.cc:
1260	Likewise.
1261	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1262	Likewise.
1263
12642022-08-03  Jonathan Wakely  <jwakely@redhat.com>
1265
1266	Backported from master:
1267	2022-06-16  Jonathan Wakely  <jwakely@redhat.com>
1268
1269	PR libstdc++/105995
1270	* include/bits/basic_string.h (_M_use_local_data): Initialize
1271	the entire SSO buffer.
1272	* testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
1273
12742022-08-03  Jonathan Wakely  <jwakely@redhat.com>
1275
1276	Backported from master:
1277	2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
1278
1279	* include/bits/new_allocator.h: Fix indentation.
1280	* include/ext/malloc_allocator.h: Likewise.
1281
12822022-08-03  Jonathan Wakely  <jwakely@redhat.com>
1283
1284	Backported from master:
1285	2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
1286
1287	PR libstdc++/105957
1288	* include/bits/allocator.h (allocator::allocate): Check for
1289	overflow in constexpr allocation.
1290	* testsuite/20_util/allocator/105975.cc: New test.
1291
12922022-08-03  Jonathan Wakely  <jwakely@redhat.com>
1293
1294	Backported from master:
1295	2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
1296
1297	PR libstdc++/105844
1298	* include/experimental/numeric (experimental::gcd): Simplify
1299	assertions. Use __abs_r instead of __absu.
1300	(experimental::lcm): Likewise. Remove use of __detail::__lcm so
1301	overflow can be detected.
1302	* include/std/numeric (__detail::__absu): Rename to __abs_r and
1303	change to allow signed result type, so overflow can be detected.
1304	(__detail::__lcm): Remove.
1305	(gcd): Simplify assertions. Use __abs_r instead of __absu.
1306	(lcm): Likewise. Remove use of __detail::__lcm so overflow can
1307	be detected.
1308	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
1309	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1310	* testsuite/26_numerics/gcd/105844.cc: New test.
1311	* testsuite/26_numerics/lcm/105844.cc: New test.
1312
13132022-07-26  Thomas Rodgers  <trodgers@redhat.com>
1314
1315	Backported from master:
1316	2022-07-26  Thomas Rodgers  <trodgers@redhat.com>
1317
1318	* include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
1319
13202022-07-22  Jonathan Wakely  <jwakely@redhat.com>
1321
1322	Backported from master:
1323	2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
1324
1325	* src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
1326	Always store pathname if we don't have openat or unlinkat,
1327	because the full path is needed to open sub-directories and
1328	remove entries.
1329
13302022-07-22  Alexandre Oliva  <oliva@adacore.com>
1331
1332	Backported from master:
1333	2022-06-27  Alexandre Oliva  <oliva@adacore.com>
1334
1335	* src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
1336	_GLIBCXX_HAVE_OPENAT.
1337
13382022-07-22  Alexandre Oliva  <oliva@adacore.com>
1339
1340	Backported from master:
1341	2022-06-24  Alexandre Oliva  <oliva@adacore.com>
1342
1343	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
1344	openat.
1345	* configure, config.h.in: Rebuilt.
1346	* src/filesystem/dir-common.h (openat): Use ::openat if
1347	_GLIBCXX_HAVE_OPENAT.
1348	* src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
1349	_GLIBCXX_HAVE_OPENAT.
1350
13512022-07-22  Jonathan Wakely  <jwakely@redhat.com>
1352
1353	Backported from master:
1354	2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
1355
1356	* include/std/stacktrace: Do not include <cxxabi.h>.
1357	(__cxa_demangle): Declare.
1358
13592022-07-21  Jonathan Wakely  <jwakely@redhat.com>
1360
1361	Backported from master:
1362	2022-07-20  Jonathan Wakely  <jwakely@redhat.com>
1363
1364	PR libstdc++/100823
1365	* include/bits/stl_iterator.h (common_iterator): Define move
1366	constructor and move assignment operator.
1367	(common_iterator::_M_assign): New function implementing
1368	assignment.
1369	(common_iterator::operator=): Use _M_assign.
1370	(common_iterator::_S_valueless): New constant.
1371	* testsuite/24_iterators/common_iterator/100823.cc: New test.
1372
13732022-07-21  Jonathan Wakely  <jwakely@redhat.com>
1374
1375	Backported from master:
1376	2022-07-20  Jonathan Wakely  <jwakely@redhat.com>
1377
1378	* include/bits/stl_iterator.h (common_iterator): Fix incorrect
1379	uses of is_nothrow_assignable_v. Fix inconsistent constraints on
1380	friend declaration. Do not move argument in copy constructor.
1381	* testsuite/24_iterators/common_iterator/1.cc: Check for
1382	noexcept constructibnle/assignable.
1383
13842022-07-21  Nathan Sidwell  <nathan@acm.org>
1385
1386	Backported from master:
1387	2022-05-26  Nathan Sidwell  <nathan@acm.org>
1388
1389	* include/bits/hashtable.h: Include required headers.
1390	* include/bits/hashtable_policy.h: Likewise.
1391	* include/bits/stl_heap.h: Likewise.
1392	* include/bits/stl_iterator_base_funcs.h: Likewise.
1393
13942022-07-21  Jonathan Wakely  <jwakely@redhat.com>
1395
1396	Backported from master:
1397	2022-06-30  Jonathan Wakely  <jwakely@redhat.com>
1398
1399	* include/bits/utility.h: Fix comment typos.
1400
14012022-07-21  Jonathan Wakely  <jwakely@redhat.com>
1402
1403	Backported from master:
1404	2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
1405
1406	* testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
1407	functions are available.
1408
14092022-07-21  Jonathan Wakely  <jwakely@redhat.com>
1410
1411	Backported from master:
1412	2022-06-23  Jonathan Wakely  <jwakely@redhat.com>
1413
1414	* testsuite/26_numerics/random/random_device/entropy.cc: Use
1415	numeric_limits<unsigned>::digits.
1416
14172022-07-21  Marco Falke  <falke.marco@gmail.com>
1418
1419	Backported from master:
1420	2022-07-19  Marco Falke  <falke.marco@gmail.com>
1421
1422	* include/std/charconv (__from_chars_alnum_to_val): Replace
1423	implicit conversion from int to unsigned char with explicit
1424	cast.
1425
14262022-07-21  Jonathan Wakely  <jwakely@redhat.com>
1427
1428	Backported from master:
1429	2022-06-30  Jonathan Wakely  <jwakely@redhat.com>
1430
1431	PR libstdc++/88881
1432	* src/filesystem/ops.cc (has_trailing_slash): New helper
1433	function.
1434	(fs::status): Strip trailing slashes.
1435	(fs::symlink_status): Likewise.
1436	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1437	Clean the environment before each test and use TMP instead of
1438	TMPDIR so the test passes on Windows.
1439
14402022-07-21  Jonathan Wakely  <jwakely@redhat.com>
1441
1442	Backported from master:
1443	2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
1444
1445	PR libstdc++/105880
1446	* libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
1447	prevent destruction during termination.
1448	(__eh_globals_init::_M_init): Replace with static member _S_init.
1449	(__cxxabiv1::__cxa_get_globals_fast): Update.
1450	(__cxxabiv1::__cxa_get_globals): Likewise.
1451
14522022-07-07  Jonathan Wakely  <jwakely@redhat.com>
1453
1454	Backported from master:
1455	2022-07-01  Jonathan Wakely  <jwakely@redhat.com>
1456
1457	PR libstdc++/106162
1458	* include/Makefile.am (largefile-config.h): Add
1459	stamp-${host_alias} prerequisite.
1460	* include/Makefile.in: Regenerate.
1461
14622022-07-07  Jonathan Wakely  <jwakely@redhat.com>
1463
1464	Backported from master:
1465	2022-06-23  Jonathan Wakely  <jwakely@redhat.com>
1466
1467	* testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
1468	rmdir to remove directories.
1469	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
1470	Likewise.
1471
14722022-06-14  Jonathan Wakely  <jwakely@redhat.com>
1473
1474	Backported from master:
1475	2022-06-13  Jonathan Wakely  <jwakely@redhat.com>
1476
1477	* include/std/atomic (__atomic_val_t): Use __type_identity_t
1478	instead of atomic<T>::value_type, as per LWG 3220.
1479	* testsuite/29_atomics/atomic/lwg3220.cc: New test.
1480
14812022-06-14  Mark Mentovai  <mark@mentovai.com>
1482
1483	Backported from master:
1484	2022-06-13  Mark Mentovai  <mark@mentovai.com>
1485
1486	* include/experimental/bits/fs_path.h (__detail::__null_terminated):
1487	Rename to __nul_terminated to avoid colliding with a macro in
1488	Apple's SDK.
1489
14902022-06-08  Jonathan Wakely  <jwakely@redhat.com>
1491
1492	Backported from master:
1493	2022-05-27  Jonathan Wakely  <jwakely@redhat.com>
1494
1495	PR libstdc++/105671
1496	* include/std/sstream (basic_stringbuf::_M_high_mark): Add
1497	always_inline attribute.
1498
14992022-06-08  Jonathan Wakely  <jwakely@redhat.com>
1500
1501	Backported from master:
1502	2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
1503
1504	PR libstdc++/105681
1505	* include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
1506	Limit ga_sizes array to values that fit in size_t.
1507	* include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
1508	(sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
1509	(sfmt216091_64): Do not declare.
1510
15112022-06-08  Jonathan Wakely  <jwakely@redhat.com>
1512
1513	Backported from master:
1514	2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
1515
1516	* include/bits/basic_string.h: Do not include <ext/atomicity.h>
1517	here.
1518	* include/bits/cow_string.h: Include it here.
1519
15202022-05-27  Jonathan Wakely  <jwakely@redhat.com>
1521
1522	Backported from master:
1523	2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
1524
1525	* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
1526	lookup for ios_errc and future_errc check versioned namespace.
1527	(StdAtomicPrinter): Strip versioned namespace from typename.
1528
15292022-05-27  François Dumont  <fdumont@gcc.gnu.org>
1530
1531	Backported from master:
1532	2022-05-26  François Dumont  <fdumont@gcc.gnu.org>
1533
1534	* python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
1535	Strip typename from version namespace.
1536
15372022-05-27  Jonathan Wakely  <jwakely@redhat.com>
1538
1539	Backported from master:
1540	2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
1541
1542	* python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
1543	versioned namespace from the template argument too.
1544
15452022-05-27  Jonathan Wakely  <jwakely@redhat.com>
1546
1547	Backported from master:
1548	2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
1549
1550	* include/bits/stl_iterator.h (counted_iterator::operator++(int)):
1551	Add 'constexpr' as per LWG 3643.
1552	* testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
1553
15542022-05-27  Jonathan Wakely  <jwakely@redhat.com>
1555
1556	Backported from master:
1557	2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
1558
1559	* include/std/memory_resource (polymorphic_allocator): Add
1560	non-template equality operator, as proposed for LWG 3683.
1561	* testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
1562
15632022-05-27  Jonathan Wakely  <jwakely@redhat.com>
1564
1565	Backported from master:
1566	2022-05-20  Jonathan Wakely  <jwakely@redhat.com>
1567
1568	* testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
1569	Run fewer iterations for simulator targets.
1570	* testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
1571	Likewise.
1572	* testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
1573	Likewise.
1574	* testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
1575	Likewise.
1576	* testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
1577	Likewise.
1578	* testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
1579	Likewise.
1580	* testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
1581	Likewise.
1582
15832022-05-27  Jonathan Wakely  <jwakely@redhat.com>
1584
1585	Backported from master:
1586	2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
1587
1588	* testsuite/20_util/expected/synopsis.cc: Skip for versioned
1589	namespace.
1590	* testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
1591
15922022-05-27  Jonathan Wakely  <jwakely@redhat.com>
1593
1594	Backported from master:
1595	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
1596
1597	* include/bits/mofunc_impl.h: Fix doxygen command.
1598
15992022-05-27  Jonathan Wakely  <jwakely@redhat.com>
1600
1601	Backported from master:
1602	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
1603
1604	* include/std/future (launch): Make operators noexcept.
1605
16062022-05-16  Jonathan Wakely  <jwakely@redhat.com>
1607
1608	Backported from master:
1609	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
1610
1611	* doc/xml/manual/prerequisites.xml: Fix attributes for external
1612	hyperlink.
1613	* doc/html/manual/setup.html: Regenerate.
1614
16152022-05-16  Jonathan Wakely  <jwakely@redhat.com>
1616
1617	Backported from master:
1618	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
1619
1620	* doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
1621	* doc/html/*: Regenerate.
1622
16232022-05-16  Jonathan Wakely  <jwakely@redhat.com>
1624
1625	Backported from master:
1626	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
1627
1628	* doc/xml/manual/intro.xml: Include new chapter.
1629	* doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
1630	* doc/xml/manual/status_cxx2023.xml: New file.
1631	* doc/html/*: Regenerate.
1632
16332022-05-16  Jonathan Wakely  <jwakely@redhat.com>
1634
1635	Backported from master:
1636	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
1637
1638	* doc/html/manual/status.html: Regenerate.
1639	* doc/xml/manual/status_cxx2020.xml: Fix supported version for
1640	C++20 bit operations.
1641
16422022-05-13  Alexandre Oliva  <oliva@adacore.com>
1643
1644	Backported from master:
1645	2022-05-06  Alexandre Oliva  <oliva@adacore.com>
1646
1647	* include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
1648	for double, long long, and 64-bit long intrinsic types.
1649	[__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
1650	preexisting long double diagnostic, adjust no-VSX double
1651	diagnostic to cover 64-bit long double as well.
1652
16532022-05-10  Jonathan Wakely  <jwakely@redhat.com>
1654
1655	Backported from master:
1656	2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
1657
1658	PR libstdc++/105284
1659	* include/std/iosfwd: Add declarations for <spanstream> class
1660	templates and typedefs.
1661	* include/std/spanstream (basic_spanbuf, basic_ispanstream)
1662	(basic_ospanstream, basic_spanstream): Remove default template
1663	arguments.
1664	* testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
1665	declarations.
1666	* testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
1667	default arguments.
1668
16692022-05-10  Jonathan Wakely  <jwakely@redhat.com>
1670
1671	Backported from master:
1672	2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
1673
1674	PR libstdc++/105284
1675	* include/std/iosfwd: Add declarations for <synstream> class
1676	templates and typedefs.
1677	* include/std/syncstream (basic_syncbuf, basic_osyncstream):
1678	Remove default template arguments.
1679	* testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
1680	* testsuite/27_io/headers/iosfwd/types.cc: New test.
1681
16822022-05-09  Jonathan Wakely  <jwakely@redhat.com>
1683
1684	Backported from master:
1685	2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
1686
1687	PR libstdc++/104731
1688	* testsuite/27_io/filesystem/iterators/error_reporting.cc:
1689	Use a trailing char array as storage for dirent::d_name.
1690
16912022-05-06  Jonathan Wakely  <jwakely@redhat.com>
1692
1693	Backported from master:
1694	2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
1695
1696	PR libstdc++/105502
1697	* include/bits/random.tcc
1698	(operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
1699	Update state when __state_avail is false.
1700	* testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
1701	Check that deserialized object equals serialized one.
1702
17032022-05-06  Patrick Palka  <ppalka@redhat.com>
1704
1705	Backported from master:
1706	2022-05-02  Patrick Palka  <ppalka@redhat.com>
1707
1708	PR libstdc++/103911
1709	* src/c++17/floating_from_chars.cc (find_end_of_float): Accept
1710	two delimeters for the exponent part in the form of a possibly
1711	NULL string of length two.  Don't use std::tolower.
1712	(pattern): Adjust calls to find_end_of_float accordingly.
1713
17142022-05-06  Alexandre Oliva  <oliva@adacore.com>
1715
1716	Backported from master:
1717	2022-05-03  Alexandre Oliva  <oliva@adacore.com>
1718
1719	PR c++/105324
1720	* testsuite/20_util/from_chars/pr105324.cc: Guard test body
1721	with conditional for floating-point overloads of from_char.
1722
17232022-05-06  Release Manager
1724
1725	* GCC 12.1.0 released.
1726
17272022-05-02  Patrick Palka  <ppalka@redhat.com>
1728
1729	Backported from master:
1730	2022-05-02  Patrick Palka  <ppalka@redhat.com>
1731
1732	PR libstdc++/105441
1733	* src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
1734	Also accept 'P' as the start of the exponent.
1735	* testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
1736
17372022-04-29  Jonathan Wakely  <jwakely@redhat.com>
1738
1739	Backported from master:
1740	2022-04-29  Jonathan Wakely  <jwakely@redhat.com>
1741
1742	PR libstdc++/105417
1743	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
1744	Regenerate.
1745	* src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
1746	Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
1747	symbols as aliases for corresponding symbols without abi-tag.
1748
17492022-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1750
1751	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1752	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1753	Likewise.
1754	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1755	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1756	Likewise.
1757
17582022-04-28  Jonathan Wakely  <jwakely@redhat.com>
1759
1760	* doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not
1761	mainline.
1762	* doc/xml/manual/status_cxx2011.xml: Likewise.
1763	* doc/xml/manual/status_cxx2014.xml: Likewise.
1764	* doc/xml/manual/status_cxx2017.xml: Likewise.
1765	* doc/xml/manual/status_cxx2020.xml: Likewise.
1766	* doc/xml/manual/status_cxxtr1.xml: Likewise.
1767	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
1768	* doc/html/manual/status.html: Regenerate.
1769
17702022-04-28  Jonathan Wakely  <jwakely@redhat.com>
1771
1772	PR libstdc++/99290
1773	* src/c++17/fs_ops.cc (fs::copy): Pass error_code to
1774	directory_iterator constructor, and check on each iteration.
1775	* src/filesystem/ops.cc (fs::copy): Likewise.
1776	* testsuite/27_io/filesystem/operations/copy.cc: Check for
1777	errors during recursion.
1778	* testsuite/experimental/filesystem/operations/copy.cc:
1779	Likewise.
1780
17812022-04-28  François Dumont  <fdumont@gcc.gnu.org>
1782
1783	* config/abi/pre/gnu-versioned-namespace.ver: Remove
1784	std::random_device::* pattern.
1785
17862022-04-27  Jakub Jelinek  <jakub@redhat.com>
1787
1788	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1789	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1790	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1791	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1792	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1793	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1794	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1795	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1796
17972022-04-27  Jonathan Wakely  <jwakely@redhat.com>
1798
1799	* python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
1800	support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
1801	(StdAtomicPrinter): New printer.
1802	(build_libstdcxx_dictionary): Register new printer.
1803	* testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
1804	* testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
1805	pointers.
1806
18072022-04-26  Jonathan Wakely  <jwakely@redhat.com>
1808
1809	* include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
1810	constructor for constant initialization from nullptr_t.
1811	* testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1812	Check for new constructor.
1813
18142022-04-26  Jonathan Wakely  <jwakely@redhat.com>
1815
1816	* include/bits/fs_path.h (hash<filesystem::path>): Define.
1817	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1818	Check std::hash specialization.
1819
18202022-04-25  Jonathan Wakely  <jwakely@redhat.com>
1821
1822	* include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
1823	conditionally.
1824	* include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1825	Define for C++23.
1826	(default_delete, default_delete<T[]>, __uniq_ptr_impl)
1827	(unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
1828	functions.
1829	* include/std/version (__cpp_lib_constexpr_memory): Define new
1830	value for C++23.
1831	* testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
1832	* testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
1833	* testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
1834	* testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
1835	* testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
1836	* testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
1837	New test.
1838
18392022-04-25  Jonathan Wakely  <jwakely@redhat.com>
1840
1841	PR libstdc++/105375
1842	* include/std/future (packaged_task): Add deduction guides.
1843	* testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
1844
18452022-04-25  Philipp Fent  <fent@in.tum.de>
1846
1847	* python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
1848	Rename as iterator.
1849	(StdInitializerListPrinter): Define new printer.
1850	(build_libstdcxx_dictionary): Register new printer.
1851	* testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
1852	initializer_list.
1853
18542022-04-22  Thomas W Rodgers  <trodgers@redhat.com>
1855
1856	PR libstdc++/102994
1857	* include/bits/atomic_base.h (atomic_flag::notify_one,
1858	notify_all): Remove const qualification.
1859	(__atomic_base::notify_one, notify_all): Likewise.
1860	* include/std/atomic (atomic<bool>::notify_one, notify_all):
1861	Likewise.
1862	(atomic::notify_one, notify_all): Likewise.
1863	(atomic<T*>::notify_one, notify_all): Likewise.
1864	(atomic_notify_one, atomic_notify_all): Likewise.
1865	* testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
1866	to account for change in notify_one/notify_all signature.
1867
18682022-04-21  Patrick Palka  <ppalka@redhat.com>
1869
1870	* include/std/charconv (__from_chars_alnum_to_val_table):
1871	Simplify initialization of __lower/__upper_letters.
1872	(__from_chars_alnum_to_val): Default the template parameter to
1873	false.
1874	* src/c++17/floating_from_chars.cc (starts_with_ci): Don't
1875	assume the uppercase and lowercase letters are contiguous.
1876	(__floating_from_chars_hex): Likewise.
1877
18782022-04-21  Patrick Palka  <ppalka@redhat.com>
1879
1880	PR c++/105297
1881	PR c++/105322
1882	* include/std/charconv (__from_chars_alnum_to_val): Make
1883	initializer for __table dependent in an artificial way.
1884
18852022-04-21  Jonathan Wakely  <jwakely@redhat.com>
1886
1887	PR libstdc++/105324
1888	* src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
1889	Remove assertion.
1890	* testsuite/20_util/from_chars/pr105324.cc: New test.
1891
18922022-04-20  Jonathan Wakely  <jwakely@redhat.com>
1893
1894	* testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1895	Check correct feature test macro.
1896
18972022-04-20  Jonathan Wakely  <jwakely@redhat.com>
1898
1899	PR libstdc++/93602
1900	* doc/xml/manual/prerequisites.xml: Document libiconv
1901	workarounds.
1902	* doc/html/manual/setup.html: Regenerate.
1903	* src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
1904	* src/Makefile.in: Regenerate.
1905
19062022-04-19  Patrick Palka  <ppalka@redhat.com>
1907
1908	* src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
1909	define.
1910	(__floating_to_chars_shortest): Add __builtin_unreachable calls to
1911	squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
1912	warnings.
1913	(__floating_to_chars_precision): Likewise.
1914
19152022-04-19  Philipp Fent  <fent@in.tum.de>
1916
1917	* python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
1918	* testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
1919
19202022-04-19  Jonathan Wakely  <jwakely@redhat.com>
1921
1922	* acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
1923	* configure: Regenerate.
1924
19252022-04-18  Patrick Palka  <ppalka@redhat.com>
1926
1927	* include/std/charconv (__from_chars_pow2_base): Manually
1928	unroll the first iteration of the main loop and simplify
1929	accordingly.
1930
19312022-04-15  Patrick Palka  <ppalka@redhat.com>
1932
1933	PR libstdc++/104858
1934	* include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
1935	__first twice at the start.
1936	* testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
1937
19382022-04-15  Patrick Palka  <ppalka@redhat.com>
1939
1940	* include/std/charconv (__from_chars_alnum_to_val_table): Define.
1941	(__from_chars_alnum_to_val): Define.
1942	(__from_chars_binary): Rename to ...
1943	(__from_chars_pow2_base): ... this.  Generalize to handle any
1944	power-of-two base using __from_chars_alnum_to_val.
1945	(__from_chars_digit): Optimize digit recognition to a single
1946	test instead of two tests.  Use [[__unlikely___]] attribute.
1947	(__from_chars_alpha_to_num): Remove.
1948	(__from_chars_alnum): Use __from_chars_alnum_to_val.  Use a
1949	nested loop for the overflow case.  Maintain a lower bound
1950	on the number of available bits in the result and use it to
1951	omit the overflow check.
1952	(from_chars): Adjust appropriately.
1953	* src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
1954	(__floating_from_chars_hex): Use __from_chars_alnum_to_val
1955	to recognize a hex digit instead.
1956
19572022-04-14  Palmer Dabbelt  <palmer@rivosinc.com>
1958
1959	* acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
1960	for RISC-V.
1961	* configure: Regenerate.
1962
19632022-04-14  Jonathan Wakely  <jwakely@redhat.com>
1964
1965	* doc/xml/manual/intro.xml: Fix comment.
1966
19672022-04-14  Jonathan Wakely  <jwakely@redhat.com>
1968
1969	* include/precompiled/stdc++.h: Include <stacktrace> and
1970	<stdatomic.h> for C++23.
1971
19722022-04-14  Jonathan Wakely  <jwakely@redhat.com>
1973
1974	PR libstdc++/105269
1975	* include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
1976	Define.
1977	* include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
1978	Define.
1979	* include/std/optional (__cpp_lib_optional): Define new value
1980	for C++23.
1981	(__cpp_lib_monadic_optional): Remove.
1982	* include/std/version (__cpp_lib_constexpr_vector): Define.
1983	(__cpp_lib_stdatomic_h): Define.
1984	(__cpp_lib_optional): Define new value for C++23.
1985	(__cpp_lib_monadic_optional): Remove.
1986	* testsuite/20_util/optional/monadic/and_then.cc: Adjust.
1987	* testsuite/20_util/optional/requirements.cc: Adjust for C++23.
1988	* testsuite/20_util/optional/version.cc: Likewise.
1989	* testsuite/23_containers/vector/cons/constexpr.cc: Check
1990	feature test macro.
1991	* testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1992	Likewise.
1993	* testsuite/20_util/optional/monadic/version.cc: Removed.
1994	* testsuite/23_containers/vector/requirements/version.cc: New test.
1995	* testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
1996
19972022-04-12  Jonathan Wakely  <jwakely@redhat.com>
1998
1999	* acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
2000	* config.h.in: Regenerate.
2001	* configure: Regenerate.
2002
20032022-04-12  Jonathan Wakely  <jwakely@redhat.com>
2004
2005	* include/std/stacktrace (basic_stacktrace::current): Reallocate
2006	a smaller container if the unused capacity is larger than the
2007	used size.
2008
20092022-04-12  Jonathan Wakely  <jwakely@redhat.com>
2010
2011	* include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
2012	or _Impl::_M_assign to initialize elements in allocated storage.
2013	(basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
2014	_Impl::_M_destroy.
2015	(basic_stacktrace::_Impl::_M_destroy()): Replace with ...
2016	(basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
2017	function.
2018	(basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
2019	new element using allocator.
2020	(basic_stacktrace::_Impl::_M_clone): New function.
2021	(basic_stacktrace::_Impl::_M_xclone): New function.
2022	(basic_stacktrace::_Impl::_M_assign): New function.
2023
20242022-04-12  Jonathan Wakely  <jwakely@redhat.com>
2025
2026	* include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
2027	Use nothrow new instead of try block for std::allocator.
2028	(basic_stacktrace::_Impl::_M_deallocate): Use delete for
2029	std::allocator.
2030
20312022-04-12  Jonathan Wakely  <jwakely@redhat.com>
2032
2033	* include/std/stacktrace (basic_stacktrace::current): Replace
2034	calls to _M_reserve and _S_curr_cb with call to _M_prepare.
2035	Check return value of backtrace_simple when max depth given.
2036	(basic_stacktrace::_M_reserve): Remove.
2037	(basic_stacktrace::_S_curr_cb): Remove.
2038	(basic_stacktrace::_M_prepare(size_type)): New function to
2039	reserve initial capacity and return callback.
2040	(basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
2041	and remove redundant zeroing of _M_frames and _M_capacity.
2042	(basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
2043	attribute. Assign _Impl instead of swapping.
2044	* testsuite/19_diagnostics/stacktrace/current.cc: New test.
2045
20462022-04-11  Jonathan Wakely  <jwakely@redhat.com>
2047
2048	* include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
2049	Change [[unlikely]] attribute to [[likely]].
2050
20512022-04-11  Jonathan Wakely  <jwakely@redhat.com>
2052
2053	PR libstdc++/105031
2054	* include/std/stacktrace (basic_stacktrace::basic_stacktrace):
2055	Fix allocator usage in constructors.
2056	(basic_stacktrace::operator=(const basic_stacktrace&)): Do not
2057	try to reallocate using const allocator.
2058	(basic_stacktrace::operator=(basic_stacktrace&&)): Fix
2059	if-constexpr with non-constant condition. Do not allocate new
2060	storage if allocator propagates. Do not set _M_size if
2061	allocation fails.
2062	(basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
2063	assertion that non-propagating allocators are equal.
2064	* testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
2065
20662022-04-11  Jonathan Wakely  <jwakely@redhat.com>
2067
2068	* include/std/stacktrace (basic_stacktrace::current): Duplicate
2069	implementation into each overload. Add noinline attribute and
2070	skip current frame.
2071	(basic_stacktrace::max_size()): Call _Impl::_S_max_size.
2072	(basic_stacktrace::_S_curr_cb()): New function defining lambda.
2073	(basic_stacktrace::_Impl::_S_max_size): New function defining
2074	maximum size in terms of allocator and size_type.
2075	(basic_stacktrace::_Impl::_M_allocate): Check against
2076	max_size().
2077	* testsuite/19_diagnostics/stacktrace/entry.cc: Call function
2078	for non-constexpr checks. Check line number is correct.
2079
20802022-04-11  Jonathan Wakely  <jwakely@redhat.com>
2081
2082	* testsuite/20_util/stacktrace/entry.cc: Moved to...
2083	* testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
2084	* testsuite/20_util/stacktrace/synopsis.cc: Moved to...
2085	* testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
2086	* testsuite/20_util/stacktrace/version.cc: Moved to...
2087	* testsuite/19_diagnostics/stacktrace/version.cc: ...here.
2088
20892022-04-11  Jonathan Wakely  <jwakely@redhat.com>
2090
2091	* include/experimental/bits/fs_path.h (path): Define special
2092	members after path::_Cmpt is complete.
2093
20942022-04-08  Jonathan Wakely  <jwakely@redhat.com>
2095
2096	PR libstdc++/105153
2097	* include/std/expected
2098	(expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
2099	* testsuite/20_util/expected/cons.cc: Check constructor.
2100
21012022-04-08  Jonathan Wakely  <jwakely@redhat.com>
2102
2103	PR libstdc++/105154
2104	* include/std/expected (expected<void, E>::swap): Set
2105	_M_has_value to false for objects that previously had a value.
2106	* testsuite/20_util/expected/swap.cc: Fix test to check void
2107	specialization.
2108
21092022-04-08  Jonathan Wakely  <jwakely@redhat.com>
2110
2111	PR libstdc++/105146
2112	* include/std/expected (bad_expected_access): Move constructor
2113	parameter.
2114	* testsuite/20_util/expected/bad.cc: New test.
2115
21162022-04-07  Hans-Peter Nilsson  <hp@axis.com>
2117
2118	* testsuite/20_util/expected/requirements.cc: Correct minimal-size
2119	test.
2120
21212022-04-02  Jakub Jelinek  <jakub@redhat.com>
2122
2123	PR libstdc++/105128
2124	* include/std/source_location (std::source_location::__impl): Move
2125	definition before using __builtin_ret_type.
2126
21272022-04-01  Jonathan Wakely  <jwakely@redhat.com>
2128
2129	* include/std/utility (unreachable): Define for C++23.
2130	* include/std/version (__cpp_lib_unreachable): Define.
2131	* src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
2132	arguments. Handle only the function being given.
2133	* testsuite/20_util/unreachable/1.cc: New test.
2134	* testsuite/20_util/unreachable/version.cc: New test.
2135
21362022-04-01  Jonathan Wakely  <jwakely@redhat.com>
2137
2138	* include/experimental/bits/fs_fwd.h (copy_file): Remove
2139	incorrect noexcept from declaration.
2140	* include/experimental/bits/fs_path.h (path::begin, path::end):
2141	Add noexcept to declarations, to match definitions.
2142
21432022-04-01  Timm Bäder  <tbaeder@redhat.com>
2144
2145	* include/bits/fs_ops.h: Fix filename in Doxygen comment.
2146	* include/experimental/bits/fs_ops.h: Likewise.
2147
21482022-03-31  Jonathan Wakely  <jwakely@redhat.com>
2149
2150	* libsupc++/new_opa.cc (aligned_alloc): Add comment.
2151
21522022-03-29  Jonathan Wakely  <jwakely@redhat.com>
2153
2154	* testsuite/18_support/exception/38732.cc: Disable for C++23.
2155	* testsuite/18_support/headers/exception/synopsis.cc: Likewise.
2156	* testsuite/18_support/unexpected_handler.cc: Likewise.
2157
21582022-03-29  Jonathan Wakely  <jwakely@redhat.com>
2159
2160	* libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
2161	static data members for _Fp_fmt enumerators.
2162
21632022-03-29  Jonathan Wakely  <jwakely@redhat.com>
2164
2165	* include/std/version (__cpp_lib_variant): Fix conditions to
2166	match <variant>.
2167	(__cpp_lib_expected): Fix condition to match <expected>.
2168
21692022-03-28  Jonathan Wakely  <jwakely@redhat.com>
2170
2171	* testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
2172	* testsuite/20_util/optional/monadic/transform.cc: Likewise.
2173	* testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
2174	* testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
2175	* testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
2176	* testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
2177	* testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
2178	* testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
2179
21802022-03-27  Jonathan Wakely  <jwakely@redhat.com>
2181
2182	* doc/doxygen/user.cfg.in: Add new header.
2183	* include/Makefile.am: Likewise.
2184	* include/Makefile.in: Regenerate.
2185	* include/precompiled/stdc++.h: Add new header.
2186	* include/std/version (__cpp_lib_expected): Define.
2187	* libsupc++/exception [__cplusplus > 202002] (unexpected)
2188	(unexpected_handler, set_unexpected): Do not declare for C++23.
2189	* include/std/expected: New file.
2190	* testsuite/20_util/expected/assign.cc: New test.
2191	* testsuite/20_util/expected/cons.cc: New test.
2192	* testsuite/20_util/expected/illformed_neg.cc: New test.
2193	* testsuite/20_util/expected/observers.cc: New test.
2194	* testsuite/20_util/expected/requirements.cc: New test.
2195	* testsuite/20_util/expected/swap.cc: New test.
2196	* testsuite/20_util/expected/synopsis.cc: New test.
2197	* testsuite/20_util/expected/unexpected.cc: New test.
2198	* testsuite/20_util/expected/version.cc: New test.
2199
22002022-03-25  Jonathan Wakely  <jwakely@redhat.com>
2201
2202	* include/std/bit (bit_cast, byteswap, endian): Add doxygen
2203	comments.
2204
22052022-03-23  Jonathan Wakely  <jwakely@redhat.com>
2206
2207	PR libstdc++/105027
2208	* include/std/bit (bit_cast): Add constraints.
2209	* testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
2210
22112022-03-23  Jonathan Wakely  <jwakely@redhat.com>
2212
2213	* include/std/version [!_GLIBCXX_HOSTED]
2214	(__cpp_lib_hardware_interference_size): Define for freestanding.
2215	(__cpp_lib_bit_cast): Likewise.
2216	(__cpp_lib_is_layout_compatible): Likewise.
2217	(__cpp_lib_is_pointer_interconvertible): Likewise.
2218	(__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
2219	freestanding.
2220	(__cpp_lib_invoke_r): Likewise.
2221	(__cpp_lib_ios_noreplace): Likewise.
2222	(__cpp_lib_monadic_optional): Likewise.
2223	(__cpp_lib_move_only_function): Likewise.
2224	(__cpp_lib_spanstream): Likewise.
2225	(__cpp_lib_stacktrace): Likewise.
2226	(__cpp_lib_string_contains): Likewise.
2227	(__cpp_lib_string_resize_and_overwrite): Likewise.
2228	(__cpp_lib_to_underlying): Likewise.
2229
22302022-03-23  Jonathan Wakely  <jwakely@redhat.com>
2231
2232	PR libstdc++/105021
2233	* include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
2234	<bits/atomic_wait.h> for freestanding.
2235
22362022-03-22  Hans-Peter Nilsson  <hp@axis.com>
2237
2238	* testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
2239	Conditionalize call to fesetround.
2240
22412022-03-21  Jakub Jelinek  <jakub@redhat.com>
2242
2243	PR libstdc++/104990
2244	* include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
2245	isn't overloaded if __clang__ is defined.
2246
22472022-03-18  Jonathan Wakely  <jwakely@redhat.com>
2248
2249	PR libstdc++/104242
2250	* include/std/any (any(T&&)): Revert change to constraints.
2251	* testsuite/20_util/any/cons/104242.cc: New test.
2252
22532022-03-18  Jonathan Wakely  <jwakely@redhat.com>
2254
2255	PR libstdc++/92546
2256	* include/pstl/glue_algorithm_defs.h: Replace <functional> with
2257	<bits/stl_pair.h>.
2258	* include/pstl/utils.h: Replace <iterator> with <type_traits>.
2259	(__pstl::__internal::__except_handler): Use std::__terminate
2260	instead of std::terminate.
2261	* src/c++17/fs_path.cc: Include <array>.
2262	* testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
2263	<functional>.
2264	* testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
2265	* testsuite/25_algorithms/clamp/constrained.cc: Likewise.
2266	* testsuite/25_algorithms/equal/constrained.cc: Likewise.
2267	* testsuite/25_algorithms/for_each/constrained.cc: Likewise.
2268	* testsuite/25_algorithms/includes/constrained.cc: Likewise.
2269	* testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
2270	* testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
2271	* testsuite/25_algorithms/is_permutation/constrained.cc: Include
2272	<iterator>.
2273	* testsuite/25_algorithms/is_sorted/constexpr.cc: Include
2274	<functional>.
2275	* testsuite/25_algorithms/is_sorted_until/constexpr.cc:
2276	Likewise.
2277	* testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
2278	Likewise.
2279	* testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2280	Likewise.
2281	* testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
2282	Include <array>.
2283	* testsuite/25_algorithms/lower_bound/constexpr.cc: Include
2284	<functional>.
2285	* testsuite/25_algorithms/max/constrained.cc: Likewise.
2286	* testsuite/25_algorithms/max_element/constrained.cc: Likewise.
2287	* testsuite/25_algorithms/min/constrained.cc: Likewise.
2288	* testsuite/25_algorithms/min_element/constrained.cc: Likewise.
2289	* testsuite/25_algorithms/minmax_element/constrained.cc:
2290	Likewise.
2291	* testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
2292	* testsuite/25_algorithms/move/93872.cc: Likewise.
2293	* testsuite/25_algorithms/move_backward/93872.cc: Include
2294	<iterator>.
2295	* testsuite/25_algorithms/nth_element/constexpr.cc: Include
2296	<functional>.
2297	* testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
2298	* testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
2299	Likewise.
2300	* testsuite/25_algorithms/search/constexpr.cc: Likewise.
2301	* testsuite/25_algorithms/search_n/constrained.cc: Likewise.
2302	* testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
2303	* testsuite/25_algorithms/set_difference/constrained.cc:
2304	Likewise.
2305	* testsuite/25_algorithms/set_intersection/constexpr.cc:
2306	Likewise.
2307	* testsuite/25_algorithms/set_intersection/constrained.cc:
2308	Likewise.
2309	* testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
2310	Likewise.
2311	* testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
2312	* testsuite/25_algorithms/set_union/constrained.cc: Likewise.
2313	* testsuite/25_algorithms/sort/constexpr.cc: Likewise.
2314	* testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
2315	* testsuite/25_algorithms/transform/constrained.cc: Likewise.
2316	* testsuite/25_algorithms/unique/constexpr.cc: Likewise.
2317	* testsuite/25_algorithms/unique/constrained.cc: Likewise.
2318	* testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
2319	* testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
2320	* testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
2321	* testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
2322	* testsuite/std/ranges/adaptors/split.cc: Likewise.
2323
23242022-03-17  Jonathan Wakely  <jwakely@redhat.com>
2325
2326	PR libstdc++/92546
2327	* include/bits/fs_path.h (path::make_preferred): Use
2328	handwritten loop instead of std::replace.
2329
23302022-03-17  Jonathan Wakely  <jwakely@redhat.com>
2331
2332	PR middle-end/104966
2333	* include/bits/locale_facets_nonio.tcc
2334	(__moneypunct_cache::_M_cache): Replace try-catch with RAII and
2335	make all string copies before any stores to *this.
2336
23372022-03-17  Jonathan Wakely  <jwakely@redhat.com>
2338
2339	* testsuite/util/testsuite_character.h: Fix comment.
2340
23412022-03-16  Jonathan Wakely  <jwakely@redhat.com>
2342
2343	PR libstdc++/103407
2344	* config/abi/pre/gnu.ver: Make version for std::from_chars
2345	depend on HAVE_USELOCALE macro.
2346	* testsuite/util/testsuite_abi.cc (compare_symbols): Treat
2347	std::from_chars for floating-point types as undesignated if
2348	not found in the baseline symbols file.
2349
23502022-03-16  Jonathan Wakely  <jwakely@redhat.com>
2351
2352	* include/std/charconv (__cpp_lib_to_chars): Only define when
2353	both from_chars and to_chars are supported for floating-point
2354	types.
2355	(from_chars, to_chars): Adjust preprocessor conditions guarding
2356	declarations.
2357	* include/std/version (__cpp_lib_to_chars): Adjust condition to
2358	match <charconv> definition.
2359	* src/c++17/floating_from_chars.cc (from_chars_strtod): New
2360	function template.
2361	(from_chars): Simplify preprocessor checks and use
2362	from_chars_strtod when appropriate.
2363
23642022-03-14  Jonathan Wakely  <jwakely@redhat.com>
2365
2366	PR libstdc++/104875
2367	* src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
2368	hold octets that will be left-shifted.
2369
23702022-03-10  Jonathan Wakely  <jwakely@redhat.com>
2371
2372	PR libstdc++/104870
2373	* src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
2374	before using fast_float.
2375
23762022-03-10  Detlef Vollmann  <dv@vollmann.ch>
2377
2378	PR libstdc++/104866
2379	* include/bits/this_thread_sleep.h: Fix order of #endif and
2380	closing brace of namespace.
2381
23822022-03-10  Jonathan Wakely  <jwakely@redhat.com>
2383
2384	* libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
2385	Handle NaN.
2386
23872022-03-10  Jonathan Wakely  <jwakely@redhat.com>
2388
2389	* libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
2390	<=> comparison.
2391
23922022-03-09  Patrick Palka  <ppalka@redhat.com>
2393
2394	PR libstdc++/104859
2395	* src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
2396	Be explicit when narrowing the shifted effective_mantissa,
2397	since it may have an integer-class type.
2398
23992022-03-08  Jonathan Wakely  <jwakely@redhat.com>
2400
2401	* include/bits/uses_allocator_args.h: Remove incorrect copyright
2402	notice.
2403
24042022-03-07  Jonathan Wakely  <jwakely@redhat.com>
2405
2406	PR libstdc++/104807
2407	* include/bits/c++config (__terminate, __glibcxx_assert_fail):
2408	Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
2409	(__is_constant_evaluated): Add visibility pragma.
2410
24112022-03-07  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>
2412
2413	* config/locale/vxworks/ctype_members.cc: Remove <iostream>
2414	  include.
2415
24162022-03-05  Jonathan Wakely  <jwakely@redhat.com>
2417
2418	* include/bits/c++config (__glibcxx_assert_fail): Add visibility
2419	attribute.
2420	(__terminate): Likewise.
2421
24222022-03-04  Jonathan Wakely  <jwakely@redhat.com>
2423
2424	* libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
2425	inside #if condition.
2426
24272022-03-03  Jonathan Wakely  <jwakely@redhat.com>
2428
2429	PR libstdc++/104748
2430	* testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
2431	constexpr test.
2432
24332022-03-03  Jonathan Wakely  <jwakely@redhat.com>
2434
2435	* testsuite/17_intro/names.cc (func): Undef on AIX.
2436
24372022-03-03  Jonathan Wakely  <jwakely@redhat.com>
2438
2439	PR libstdc++/96526
2440	* libsupc++/compare (strong_order): Add missing support for
2441	floating-point types.
2442	* testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
2443	New test.
2444
24452022-03-01  Jonathan Wakely  <jwakely@redhat.com>
2446
2447	PR middle-end/103984
2448	* include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
2449	default member initializer.
2450
24512022-02-24  Jonathan Wakely  <jwakely@redhat.com>
2452
2453	PR libstdc++/104602
2454	* include/std/source_location (source_location::current): Use
2455	deduced type of __builtin_source_location().
2456
24572022-02-22  Patrick Palka  <ppalka@redhat.com>
2458
2459	* include/bits/ranges_base.h (__detail::__is_initializer_list):
2460	Define.
2461	(viewable_range): Adjust as per P2415R2.
2462	* include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
2463	* include/std/ranges (owning_view): Define as per P2415R2.
2464	(enable_borrowed_range<owning_view>): Likewise.
2465	(views::__detail::__can_subrange): Replace with ...
2466	(views::__detail::__can_owning_view): ... this.
2467	(views::_All::_S_noexcept): Sync with operator().
2468	(views::_All::operator()): Use owning_view instead of subrange
2469	as per P2415R2.
2470	* include/std/version (__cpp_lib_ranges): Adjust value.
2471	* testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
2472	views::all uses owning_view instead of subrange.
2473	(test08): New test.
2474	* testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
2475	now that rvalue non-view non-borrowed ranges are viewable.
2476	* testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
2477
24782022-02-17  Jonathan Wakely  <jwakely@redhat.com>
2479
2480	PR libstdc++/104559
2481	* doc/xml/manual/evolution.xml: Document deprecation.
2482	* doc/html/manual/api.html: Regenerate.
2483	* include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
2484	Remove default argument.
2485	(insert(const_iterator)): New overload with deprecated attribute.
2486	* testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
2487	New test.
2488
24892022-02-17  Jonathan Wakely  <jwakely@redhat.com>
2490
2491	* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
2492	code that call cat->name() on std::error_category objects.
2493	Identify known categories by symbol name and use a hardcoded
2494	name. Print error code values as enumerators where appopriate.
2495	* testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
2496	name of custom category. Check io_errc and future_errc errors.
2497
24982022-02-15  Jonathan Wakely  <jwakely@redhat.com>
2499
2500	PR libstdc++/104542
2501	* include/bits/uses_allocator_args.h (make_obj_using_allocator)
2502	(uninitialized_construct_using_allocator): Add constexpr.
2503	* testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
2504	* testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
2505
25062022-02-14  Jonathan Wakely  <jwakely@redhat.com>
2507
2508	PR libstdc++/100912
2509	* config/locale/gnu/c_locale.h (__convert_from_v): Use inline
2510	namespace for IEEE128 long double mode.
2511	* config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
2512	version and export __gnu_cxx_ieee128::__convert_from_v.
2513	* include/bits/locale_facets_nonio.tcc (money_put::__do_put):
2514	Make __ibm128 overload use snprintf directly
2515	* testsuite/util/testsuite_abi.cc: Add new symbol version.
2516	Remove stable IEEE128/LDBL versions.
2517
25182022-02-14  Jonathan Wakely  <jwakely@redhat.com>
2519
2520	PR libstdc++/103891
2521	* include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
2522	Remove.
2523	* include/std/variant: Check feature test macros instead.
2524	* include/std/version: Likewise.
2525
25262022-02-14  Jonathan Wakely  <jwakely@redhat.com>
2527
2528	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
2529	Fix typo.
2530
25312022-02-14  Jonathan Wakely  <jwakely@redhat.com>
2532
2533	* src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
2534	LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
2535
25362022-02-11  Jonathan Wakely  <jwakely@redhat.com>
2537
2538	* testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
2539	selector.
2540
25412022-02-11  Jonathan Wakely  <jwakely@redhat.com>
2542
2543	* testsuite/20_util/monotonic_buffer_resource/allocate.cc:
2544	Ignore -Walloc-larger-than warning.
2545	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
2546	Likewise.
2547	* testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
2548	to avoid linker error for __atomic_is_lock_free.
2549
25502022-02-10  Thomas Rodgers  <rodgert@appliantology.com>
2551
2552	* include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
2553	__waiter_base::_S_do_spin_v): Change memory order from relaxed
2554	to acquire.
2555
25562022-02-10  Jonathan Wakely  <jwakely@redhat.com>
2557
2558	* include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
2559	using-declaration.
2560	(atomic_fetch_xor_explicit): Likewise.
2561	* testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
2562	arithmetic and logical operations for atomic_int.
2563
25642022-02-10  Jonathan Wakely  <jwakely@redhat.com>
2565
2566	* src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
2567	when <dirent.h> is not available.
2568	(_GLIBCXX_HAVE_UNLINKAT):  Likewise.
2569
25702022-02-09  Thomas Rodgers  <rodgert@appliantology.com>
2571
2572	PR libstdc++/104442
2573	* include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
2574	 loop inside do loop so that threads failing the wait, reload
2575	 _M_ver.
2576
25772022-02-08  Jonathan Wakely  <jwakely@redhat.com>
2578
2579	* src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
2580	parameter to _Dir_base&&.
2581	* src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
2582	* src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
2583	parameter to _Dir_base&&.
2584
25852022-02-08  Jonathan Wakely  <jwakely@redhat.com>
2586
2587	* acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
2588	checking for CAS on correct word size.
2589
25902022-02-08  Jonathan Wakely  <jwakely@redhat.com>
2591
2592	* testsuite/experimental/filesystem/operations/create_directories.cc:
2593	Adjust expected results for Windows.
2594
25952022-02-08  Jonathan Wakely  <jwakely@redhat.com>
2596
2597	PR libstdc++/104161
2598	* src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
2599	[i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
2600	instead of checking for errno values indicating a directory.
2601	* src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
2602	logic to non-throwing overload.
2603	(fs::remove_all(const path&, error_code&)): Add comments.
2604	* src/filesystem/ops-common.h: Likewise.
2605
26062022-02-04  Jonathan Wakely  <jwakely@redhat.com>
2607
2608	* src/filesystem/dir-common.h (_Dir_base::openat): Change return
2609	type to use portable posix::DIR alias.
2610
26112022-02-04  Jonathan Wakely  <jwakely@redhat.com>
2612
2613	* include/c_compatibility/stdatomic.h [__clang__]: Use
2614	#include_next <stdatomic.h>.
2615
26162022-02-04  Jonathan Wakely  <jwakely@redhat.com>
2617
2618	* include/experimental/bits/fs_ops.h (fs::copy_file): Remove
2619	noexcept.
2620	(fs::create_directories): Likewise.
2621	(fs::remove_all): Likewise.
2622	* src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
2623	(fs::create_directories): Likewise.
2624	(fs::remove_all): Likewise.
2625
26262022-02-04  Jonathan Wakely  <jwakely@redhat.com>
2627
2628	PR libstdc++/104161
2629	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
2630	and unlinkat.
2631	* config.h.in: Regenerate.
2632	* configure: Regenerate.
2633	* include/bits/fs_dir.h (recursive_directory_iterator): Declare
2634	remove_all overloads as friends.
2635	(recursive_directory_iterator::__erase): Declare new member
2636	function.
2637	* include/bits/fs_fwd.h (remove, remove_all): Declare.
2638	* src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
2639	constructor. Pass file descriptor argument to base constructor.
2640	(_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
2641	(_Dir::unlink, _Dir::rmdir): Define new member functions.
2642	(directory_iterator): Pass filename_only argument to _Dir
2643	constructor.
2644	(recursive_directory_iterator::_Dir_stack): Adjust constructor
2645	parameters to take a _Dir rvalue instead of creating one.
2646	(_Dir_stack::orig): Add data member for storing original path.
2647	(_Dir_stack::report_error): Define new member function.
2648	(__directory_iterator_nofollow): Move here from dir-common.h and
2649	fix value to be a power of two.
2650	(__directory_iterator_filename_only): Define new constant.
2651	(recursive_directory_iterator): Construct _Dir object and move
2652	into _M_dirs stack. Pass skip_permission_denied argument to first
2653	advance call.
2654	(recursive_directory_iterator::increment): Use _Dir::open_subdir.
2655	(recursive_directory_iterator::__erase): Define new member
2656	function.
2657	* src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
2658	(fs::remove_all): Use new recursive_directory_iterator::__erase
2659	member function.
2660	* src/filesystem/dir-common.h (_Dir_base): Add int parameter to
2661	constructor and use openat to implement nofollow semantics.
2662	(_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
2663	Define new member functions.
2664	(__directory_iterator_nofollow): Move to fs_dir.cc.
2665	* src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
2666	base constructor.
2667	(_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
2668	functions.
2669	(recursive_directory_iterator::_Dir_stack): Adjust constructor
2670	parameters to take a _Dir rvalue instead of creating one.
2671	(recursive_directory_iterator): Check for new nofollow option.
2672	Construct _Dir object and move into _M_dirs stack. Pass
2673	skip_permission_denied argument to first advance call.
2674	(recursive_directory_iterator::increment): Use _Dir::open_subdir.
2675	* src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
2676
26772022-02-04  Jonathan Wakely  <jwakely@redhat.com>
2678
2679	* include/bits/allocator.h: Qualify std::allocator_traits in
2680	deprecated warnings.
2681	* libsupc++/exception (uncaught_exception): Add suggestion to
2682	deprecated warning.
2683
26842022-02-02  Jonathan Wakely  <jwakely@redhat.com>
2685
2686	* src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
2687	Add [[maybe_unused]] attribute.
2688	* src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
2689	Likewise.
2690
26912022-02-02  Jonathan Wakely  <jwakely@redhat.com>
2692
2693	* testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
2694	custom comparison function for multiset.
2695	* testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
2696	comparison function for set.
2697
26982022-02-02  Jonathan Wakely  <jwakely@redhat.com>
2699
2700	* include/bits/boost_concept_check.h (_OutputIteratorConcept):
2701	Change member function to data member of function pointer type.
2702
27032022-02-02  Martin Sebor  <msebor@redhat.com>
2704
2705	PR libstdc++/101831
2706	* include/std/array (begin): Declare const member function attribute
2707	const.
2708	(end, rbegin, rend, size, max_size, empty, data): Same.
2709	* testsuite/23_containers/array/capacity/empty.cc: Add test cases.
2710	* testsuite/23_containers/array/capacity/max_size.cc: Same.
2711	* testsuite/23_containers/array/capacity/size.cc: Same.
2712	* testsuite/23_containers/array/iterators/begin_end.cc: New test.
2713
27142022-02-02  Jonathan Wakely  <jwakely@redhat.com>
2715
2716	* testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2717	autoconf macro to check whether d_type is present.
2718	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
2719	Likewise.
2720
27212022-02-01  Jonathan Wakely  <jwakely@redhat.com>
2722
2723	* testsuite/27_io/filesystem/iterators/97731.cc: New test.
2724	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2725	Check follow_directory_symlink option.
2726	* testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2727	Likewise.
2728
27292022-02-01  Jonathan Wakely  <jwakely@redhat.com>
2730
2731	* src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
2732	Reset state to past-the-end iterator on error.
2733	(fs::recursive_directory_iterator::pop(error_code&)): Likewise.
2734	(fs::recursive_directory_iterator::pop()): Check _M_dirs before
2735	it might get reset.
2736	* src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
2737	for the TS implementation.
2738	* testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
2739	* testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
2740
27412022-02-01  Jonathan Wakely  <jwakely@redhat.com>
2742
2743	* include/bits/fs_fwd.h (filesystem::perms): Fix comment.
2744
27452022-02-01  Jonathan Wakely  <jwakely@redhat.com>
2746
2747	PR libstdc++/104301
2748	* acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
2749	for stdio_pure and stdio_posix options.
2750	* configure: Regenerate.
2751
27522022-02-01  Thomas Rodgers  <rodgert@appliantology.com>
2753
2754	* include/bits/atomic_wait.h: Change memory order from
2755	Acquire/Release with relaxed loads to SeqCst+Release for
2756	accesses to the waiter's count.
2757
27582022-01-31  Martin Liska  <mliska@suse.cz>
2759
2760	* acinclude.m4: Detect *_ld_is_mold and use it.
2761	* configure: Regenerate.
2762
27632022-01-30  Hans-Peter Nilsson  <hp@axis.com>
2764
2765	* testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
2766	simulator targets.
2767	* testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
2768
27692022-01-27  Jonathan Wakely  <jwakely@redhat.com>
2770
2771	PR libstdc++/100516
2772	* include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
2773	Add __builtin_unreachable to loop.
2774	* testsuite/23_containers/deque/100516.cc: New test.
2775
27762022-01-27  Jonathan Wakely  <jwakely@redhat.com>
2777
2778	* include/bits/ranges_base.h (ranges::advance): Avoid signed
2779	overflow. Do nothing if already equal to desired result.
2780	* testsuite/24_iterators/range_operations/advance_overflow.cc:
2781	New test.
2782
27832022-01-27  Martin Liska  <mliska@suse.cz>
2784
2785	PR libstdc++/104259
2786	* acinclude.m4: Fix typo.
2787	* configure: Regenerate.
2788
27892022-01-25  Jonathan Wakely  <jwakely@redhat.com>
2790
2791	PR libstdc++/104019
2792	* include/bits/istream.tcc (basic_istream::sentry): Add braces
2793	around try-block.
2794	* include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
2795	Add pragmas to disable bogus warnings from PR 61596.
2796
27972022-01-25  Jonathan Wakely  <jwakely@redhat.com>
2798
2799	PR libstdc++/104217
2800	* src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
2801	* src/filesystem/dir.cc (_GNU_SOURCE): Define.
2802	* src/filesystem/ops.cc (_GNU_SOURCE): Define.
2803
28042022-01-25  Jonathan Wakely  <jwakely@redhat.com>
2805
2806	PR libstdc++/104161
2807	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2808	fdopendir.
2809	* config.h.in: Regenerate.
2810	* configure: Regenerate.
2811	* src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
2812	and pass it to base class constructor.
2813	(directory_iterator): Pass nofollow flag to _Dir constructor.
2814	(fs::recursive_directory_iterator::increment): Likewise.
2815	* src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
2816	directory_iterator constructor. Move error check outside loop.
2817	* src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
2818	constructor and when it's set use ::open with O_NOFOLLOW and
2819	O_DIRECTORY.
2820	* src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
2821	and pass it to base class constructor.
2822	(directory_iterator): Pass nofollow flag to _Dir constructor.
2823	(fs::recursive_directory_iterator::increment): Likewise.
2824	* src/filesystem/ops.cc (remove_all): Use nofollow option for
2825	directory_iterator constructor. Move error check outside loop.
2826
28272022-01-23  Jonathan Wakely  <jwakely@redhat.com>
2828
2829	PR libstdc++/104032
2830	* include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
2831	mem-initializer for _M_buf.
2832	(basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
2833	member access.
2834	* testsuite/27_io/spanstream/2.cc: New test.
2835
28362022-01-23  Jonathan Wakely  <jwakely@redhat.com>
2837
2838	* src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
2839	Define macro for case where std::from_chars is implemented in
2840	terms of strtod, strtof or strtold.
2841	(buffer_resource, valid_fmt, find_end_of_float, pattern)
2842	(from_chars_impl, make_result, reserve_string): Do not define
2843	unless USE_STRTOD_FOR_FROM_CHARS is defined.
2844	(from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
2845	USE_STRTOD_FOR_FROM_CHARS is defined, instead of
2846	_GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
2847	is binary64.
2848
28492022-01-23  Jonathan Wakely  <jwakely@redhat.com>
2850
2851	PR libstdc++/104174
2852	* include/bits/hashtable_policy.h (_Map_base): Add partial
2853	specialization for maps with const key types.
2854	* testsuite/23_containers/unordered_map/104174.cc: New test.
2855
28562022-01-23  Jonathan Wakely  <jwakely@redhat.com>
2857
2858	PR libstdc++/104019
2859	* include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
2860	Set members to zero without type punning.
2861
28622022-01-21  Jonathan Wakely  <jwakely@redhat.com>
2863
2864	* testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
2865
28662022-01-21  Jonathan Wakely  <jwakely@redhat.com>
2867
2868	PR libstdc++/87193
2869	PR libstdc++/104019
2870	* include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
2871	Define as type long.
2872	* include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
2873	Likewise.
2874	* include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
2875	* include/bits/chrono.h (__cpp_lib_chrono): Likewise.
2876	(__cpp_lib_chrono_udls): Likewise.
2877	* include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
2878	* include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
2879	* include/bits/range_access.h (__cpp_lib_nonmember_container_access):
2880	Likewise.
2881	* include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
2882	Likewise.
2883	* include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
2884	(__cpp_lib_sample): Likewise.
2885	* include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
2886	Likewise.
2887	* include/bits/stl_function.h (__cpp_lib_transparent_operators):
2888	Likewise.
2889	* include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
2890	Likewise.
2891	* include/bits/stl_map.h (__cpp_lib_map_try_emplace):
2892	Likewise.
2893	* include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
2894	Likewise.
2895	* include/bits/unique_ptr.h (__cpp_lib_make_unique):
2896	Likewise.
2897	* include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
2898	Likewise.
2899	* include/c_global/cmath (__cpp_lib_hypot): Likewise.
2900	* include/c_global/cstddef (__cpp_lib_byte): Likewise.
2901	* include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
2902	Likewise.
2903	* include/std/complex (__cpp_lib_complex_udls): Likewise.
2904	* include/std/filesystem (__cpp_lib_filesystem): Likewise.
2905	* include/std/functional (__cpp_lib_not_fn): Likewise.
2906	(__cpp_lib_boyer_moore_searcher): Likewise.
2907	* include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
2908	* include/std/mutex (__cpp_lib_scoped_lock): Likewise.
2909	* include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
2910	(__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
2911	* include/std/tuple (__cpp_lib_apply): Likewise.
2912	(__cpp_lib_make_from_tuple): Likewise.
2913	* include/std/type_traits (__cpp_lib_integral_constant_callable)
2914	(__cpp_lib_bool_constant, __cpp_lib_logical_traits)
2915	(__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
2916	(__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
2917	(__cpp_lib_is_swappable, __cpp_lib_is_invocable)
2918	(__cpp_lib_has_unique_object_representations)
2919	(__cpp_lib_is_aggregate): Likewise.
2920	* include/std/version: Likewise.
2921	* libsupc++/new (__cpp_lib_launder): Likewise.
2922
29232022-01-21  Jonathan Wakely  <jwakely@redhat.com>
2924
2925	* include/std/version (__cpp_lib_shared_ptr_arrays): Fix
2926	condition for C++17 definition.
2927
29282022-01-21  Jonathan Wakely  <jwakely@redhat.com>
2929
2930	* include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
2931	Add constexpr.
2932	(_Sp_atomic::_M_ptr): Add default member-initializer.
2933	* testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2934	Check constant initialization.
2935	* testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2936
29372022-01-20  Jonathan Wakely  <jwakely@redhat.com>
2938
2939	* src/c++11/cxx11-ios_failure.cc (__constinit): Define as
2940	equivalent attribute for Clang.
2941	* src/c++11/future.cc (__constinit): Likewise.
2942	* src/c++11/system_error.cc (__constinit): Likewise.
2943	* src/c++17/memory_resource.cc (__constinit): Likewise.
2944
29452022-01-20  Jonathan Wakely  <jwakely@redhat.com>
2946
2947	* scripts/testsuite_flags.in: Only add src/filesystem/.libs and
2948	src/libbacktrace/.libs to LDFLAGS if those directories exist.
2949
29502022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2951
2952	* configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
2953	from default flags.
2954	* configure: Regenerate.
2955
29562022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2957
2958	PR libstdc++/104123
2959	* testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
2960	<stddef.h>.
2961
29622022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2963
2964	* scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
2965	linker search paths.
2966	* src/Makefile.am: Fix src/debug/libbacktrace build.
2967	* src/Makefile.in: Regenerate.
2968	* src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
2969	variable. Use symlinks for the source files.
2970	* src/libbacktrace/Makefile.in: Regenerate.
2971
29722022-01-19  Matthias Kretz  <m.kretz@gsi.de>
2973
2974	* include/experimental/bits/simd.h (__floating_point_flags): Do
2975	not rely on math_errhandling to expand to a constant expression.
2976
29772022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2978
2979	* doc/xml/manual/evolution.xml: Document deprecations.
2980	* doc/xml/manual/status_cxx2017.xml: Update status.
2981	* doc/html/*: Regenerate.
2982
29832022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2984
2985	* include/bits/stl_tempbuf.h (get_temporary_buffer): Change
2986	_GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
2987
29882022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2989
2990	* include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
2991	function.
2992
29932022-01-19  Jonathan Wakely  <jwakely@redhat.com>
2994
2995	PR libstdc++/104101
2996	* include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
2997	Only use __thread_relax if __cpp_lib_atomic_wait is defined.
2998
29992022-01-18  Jonathan Wakely  <jwakely@redhat.com>
3000
3001	PR libstdc++/104099
3002	* include/bits/basic_string.h (basic_string(nullptr_t)): Only
3003	define for C++23.
3004	(operator=(nullptr_t)): Likewise.
3005	* include/bits/cow_string.h: Likewise.
3006	* include/std/string_view (basic_string_view(nullptr_t)):
3007	Likewise.
3008	* testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
3009	expected error. Add examples that become ill-formed in C++23.
3010	* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
3011	Adjust expected errors.
3012	* testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
3013	Likewise.
3014
30152022-01-18  Jonathan Wakely  <jwakely@redhat.com>
3016
3017	PR libstdc++/104098
3018	* include/bits/stl_iterator.h (reverse_iterator): Check
3019	__cpp_lib_concepts instead of __cplusplus.
3020
30212022-01-18  Jonathan Wakely  <jwakely@redhat.com>
3022
3023	PR libstdc++/101124
3024	* include/bits/stl_pair.h (pair): Adjust constraints on
3025	deprecated constructors accepting literal zero as null pointer
3026	constant. Improve wording of deprecated attribute.
3027	* testsuite/20_util/pair/cons/99957.cc: Check that deprecated
3028	constructors do not cause ambiguities for copyable types.
3029
30302022-01-18  Jonathan Wakely  <jwakely@redhat.com>
3031
3032	* include/bits/stl_function.h (ptr_fun): Fix suggestion for
3033	non-deprecated alternative.
3034
30352022-01-18  Tom Honermann  <tom@honermann.net>
3036
3037	* acinclude.m4: Define config macros if uchar.h provides
3038	c8rtomb() and mbrtoc8().
3039	* config.h.in: Regenerate.
3040	* configure: Regenerate.
3041	* include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
3042	* include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
3043	* include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
3044	* testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
3045	New test.
3046	* testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
3047	New test.
3048
30492022-01-18  Jonathan Wakely  <jwakely@redhat.com>
3050
3051	* include/Makefile.am: Install new header.
3052	* include/Makefile.in: Regenerate.
3053	* include/c_compatibility/stdatomic.h: New file.
3054	* testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
3055
30562022-01-18  Jonathan Wakely  <jwakely@redhat.com>
3057
3058	PR libstdc++/104080
3059	* src/c++17/fast_float/LOCAL_PATCHES: Update.
3060	* src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
3061	Define in terms of __BYTE_ORDER__.
3062
30632022-01-18  Jonathan Wakely  <jwakely@redhat.com>
3064
3065	PR libstdc++/104080
3066	* src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
3067	* src/c++17/fast_float/fast_float.h (round): Use explicit
3068	template argument list for std::min.
3069
30702022-01-18  Jonathan Wakely  <jwakely@redhat.com>
3071
3072	* doc/xml/manual/status_cxx2017.xml: Update C++17 status.
3073	* doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
3074	upcoming release.
3075	* doc/html/manual/status.html: Regenerate.
3076
30772022-01-18  Jonathan Wakely  <jwakely@redhat.com>
3078
3079	* acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
3080	comments.
3081	* configure: Regenerate.
3082
30832022-01-17  Patrick Palka  <ppalka@redhat.com>
3084
3085	* src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
3086	Conditionally define, and use it to conditionally include
3087	fast_float.
3088	(from_chars): Use fast_float for float and double when
3089	USE_LIB_FAST_FLOAT.
3090
30912022-01-17  Patrick Palka  <ppalka@redhat.com>
3092
3093	* src/c++17/fast_float/LOCAL_PATCHES: Update.
3094	* src/c++17/fast_float/fast_float.h (from_chars_advanced): In
3095	case of over/underflow, return errc::result_out_of_range and don't
3096	modify 'value'.
3097
30982022-01-17  Patrick Palka  <ppalka@redhat.com>
3099
3100	* src/c++17/fast_float/LOCAL_PATCHES: Update.
3101	* src/c++17/fast_float/fast_float.h: Apply local modifications.
3102
31032022-01-17  Patrick Palka  <ppalka@redhat.com>
3104
3105	* src/c++17/fast_float/LOCAL_PATCHES: New file.
3106	* src/c++17/fast_float/MERGE: New file.
3107	* src/c++17/fast_float/README.md: New file, copied from the
3108	fast_float repository.
3109	* src/c++17/fast_float/fast_float.h: New file, an amalgamation
3110	of the fast_float library.
3111
31122022-01-17  Patrick Palka  <ppalka@redhat.com>
3113
3114	* src/c++17/floating_from_chars.cc: Include <bit>.
3115	(ascii_to_hexit, starts_with_ci): Conditionally define.
3116	(__floating_from_chars_hex):  Conditionally define.
3117	(from_chars): Use __floating_from_chars_hex for
3118	chars_format::hex parsing of binary32/64 float/double.
3119	(testsuite/20_util/from_chars/7.cc): New test.
3120	* testsuite/20_util/from_chars/7.cc: New file.
3121
31222022-01-17  Jonathan Wakely  <jwakely@redhat.com>
3123
3124	* acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
3125	* configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
3126	* include/Makefile.am: Add new header.
3127	* include/Makefile.in: Regenerate.
3128	* include/std/stacktrace: New header.
3129	* include/std/version (__cpp_lib_stacktrace): Define.
3130	* Makefile.in: Regenerate.
3131	* config.h.in: Regenerate.
3132	* configure: Regenerate.
3133	* doc/Makefile.in: Regenerate.
3134	* libsupc++/Makefile.in: Regenerate.
3135	* po/Makefile.in: Regenerate.
3136	* python/Makefile.in: Regenerate.
3137	* src/Makefile.am: Regenerate.
3138	* src/Makefile.in: Regenerate.
3139	* src/c++11/Makefile.in: Regenerate.
3140	* src/c++17/Makefile.in: Regenerate.
3141	* src/c++20/Makefile.in: Regenerate.
3142	* src/c++98/Makefile.in: Regenerate.
3143	* src/filesystem/Makefile.in: Regenerate.
3144	* testsuite/Makefile.in: Regenerate.
3145	* src/libbacktrace/Makefile.am: New file.
3146	* src/libbacktrace/Makefile.in: New file.
3147	* src/libbacktrace/backtrace-rename.h: New file.
3148	* src/libbacktrace/backtrace-supported.h.in: New file.
3149	* src/libbacktrace/config.h.in: New file.
3150	* testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
3151	New proc.
3152	* testsuite/20_util/stacktrace/entry.cc: New test.
3153	* testsuite/20_util/stacktrace/synopsis.cc: New test.
3154	* testsuite/20_util/stacktrace/version.cc: New test.
3155
31562022-01-17  Jonathan Wakely  <jwakely@redhat.com>
3157
3158	* doc/xml/manual/status_cxx2020.xml: Use final C++20 option
3159	names.
3160	* doc/html/manual/status.html: Regenerate.
3161
31622022-01-17  Jonathan Wakely  <jwakely@redhat.com>
3163
3164	PR libstdc++/103650
3165	* include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
3166	* include/Makefile.in: Regenerate.
3167	* testsuite/17_intro/headers/c++1998/103650.cc: New test.
3168
31692022-01-17  Matthias Kretz  <m.kretz@gsi.de>
3170
3171	* include/experimental/bits/simd.h (__floating_point_flags): Do
3172	not rely on the presence of the math_errhandling macro.
3173
31742022-01-17  Jonathan Wakely  <jwakely@redhat.com>
3175
3176	* include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
3177	to qualified-id for dependent type.
3178
31792022-01-17  Jonathan Wakely  <jwakely@redhat.com>
3180
3181	* doc/xml/manual/status_cxx2020.xml: Update.
3182	* doc/html/manual/status.html: Regenerate.
3183
31842022-01-17  Jonathan Wakely  <jwakely@redhat.com>
3185	    Thomas Rodgers  <trodgers@redhat.com>
3186
3187	* include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
3188	New macro.
3189	(_Sp_atomic): New class template.
3190	(atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
3191	specializations.
3192	* include/bits/shared_ptr_base.h (__shared_count, __weak_count)
3193	(__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
3194	* include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
3195	* testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
3196	test.
3197	* testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
3198
31992022-01-15  Matthias Kretz  <m.kretz@gsi.de>
3200
3201	* include/experimental/bits/simd.h: Move feature detection bools
3202	and add __have_avx512bitalg, __have_avx512vbmi2,
3203	__have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
3204	__have_avx512vnni, __have_avx512vpopcntdq.
3205	(__detail::__machine_flags): New function which returns a unique
3206	uint64 depending on relevant -m and -f flags.
3207	(__detail::__odr_helper): New type alias for either an anonymous
3208	type or a type specialized with the __machine_flags number.
3209	(_SimdIntOperators): Change template parameters from _Impl to
3210	_Tp, _Abi because _Impl now has an __odr_helper parameter which
3211	may be _OdrEnforcer from the anonymous namespace, which makes
3212	for a bad base class.
3213	(many): Either add __odr_helper template parameter or mark as
3214	always_inline.
3215	* include/experimental/bits/simd_detail.h: Add defines for
3216	AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
3217	AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
3218	* include/experimental/bits/simd_builtin.h: Add __odr_helper
3219	template parameter or mark as always_inline.
3220	* include/experimental/bits/simd_fixed_size.h: Ditto.
3221	* include/experimental/bits/simd_math.h: Ditto.
3222	* include/experimental/bits/simd_scalar.h: Ditto.
3223	* include/experimental/bits/simd_neon.h: Add __odr_helper
3224	template parameter.
3225	* include/experimental/bits/simd_ppc.h: Ditto.
3226	* include/experimental/bits/simd_x86.h: Ditto.
3227
32282022-01-14  Uroš Bizjak  <ubizjak@gmail.com>
3229
3230	* testsuite/22_locale/numpunct/members/char/3.cc:
3231	Require pt_PT locale instead of nl_NL.
3232	(test02): Use pt_PT locale instead of nl_NL.
3233
32342022-01-14  Jonathan Wakely  <jwakely@redhat.com>
3235
3236	PR libstdc++/91260
3237	PR libstdc++/91383
3238	PR libstdc++/95065
3239	* include/backward/binders.h (bind1st, bind2nd): Add deprecated
3240	attribute.
3241	* include/bits/refwrap.h (_Maybe_unary_or_binary_function):
3242	Disable deprecated warnings for base classes.
3243	(_Reference_wrapper_base): Likewise.
3244	* include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
3245	* include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
3246	* include/bits/stl_function.h (unary_function, binary_function):
3247	Add deprecated attribute.
3248	(unary_negate, not1, binary_negate, not2, ptr_fun)
3249	(pointer_to_unary_function, pointer_to_binary_function)
3250	(mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
3251	(mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
3252	(const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
3253	attributes.
3254	* include/bits/stl_iterator.h: Disable deprecated warnings for
3255	std::iterator base classes.
3256	* include/bits/stl_iterator_base_types.h (iterator): Add
3257	deprecated attribute.
3258	* include/bits/stl_map.h (map::value_compare): Disable
3259	deprecated warnings for base class.
3260	* include/bits/stl_multimap.h (multimap::value_compare):
3261	Likewise.
3262	* include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
3263	Add deprecated attribute.
3264	* include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
3265	* include/bits/stream_iterator.h: Disable deprecated warnings.
3266	* include/bits/streambuf_iterator.h: Likewise.
3267	* include/ext/bitmap_allocator.h: Remove unary_function base
3268	classes.
3269	* include/ext/functional: Disable deprecated warnings.
3270	* include/ext/rope: Likewise.
3271	* include/ext/throw_allocator.h: Likewise.
3272	* include/std/type_traits (result_of): Add deprecated attribute.
3273	* include/tr1/functional: Disable deprecated warnings.
3274	* include/tr1/functional_hash.h: Likewise.
3275	* testsuite/20_util/function_objects/binders/1.cc: Add
3276	-Wno-disable-deprecations.
3277	* testsuite/20_util/function_objects/binders/3113.cc: Likewise.
3278	* testsuite/20_util/function_objects/constexpr.cc: Add
3279	dg-warning.
3280	* testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
3281	* testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
3282	* testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
3283	Likewise.
3284	* testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
3285	Likewise.
3286	* testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
3287	Likewise.
3288	* testsuite/20_util/reference_wrapper/24803.cc:
3289	Likewise.
3290	* testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
3291	C++20 and check for absence of nested types.
3292	* testsuite/20_util/shared_ptr/comparison/less.cc: Remove
3293	std::binary_function base class.
3294	* testsuite/20_util/temporary_buffer.cc: Add dg-warning.
3295	* testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
3296	std::iterator base class.
3297	* testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
3298	Likewise.
3299	* testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
3300	Likewise.
3301	* testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
3302	Likewise.
3303	* testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
3304	Likewise.
3305	* testsuite/24_iterators/istreambuf_iterator/92285.cc:
3306	Likewise.
3307	* testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
3308	Likewise.
3309	* testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
3310	Likewise.
3311	* testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
3312	Likewise.
3313	* testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
3314	Likewise.
3315	* testsuite/25_algorithms/copy/34595.cc:
3316	Likewise.
3317	* testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
3318	base class.
3319	* testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
3320	Disable deprecated warnings.
3321	* testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
3322	Likewise.
3323	* testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
3324	Likewise.
3325	* testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
3326	Likewise.
3327	* testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
3328	Likewise.
3329	* testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
3330	Likewise.
3331	* testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
3332	Likewise.
3333	* testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
3334	Likewise.
3335	* testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
3336	Likewise.
3337	* testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
3338	Likewise.
3339	* testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
3340	Likewise.
3341	* testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
3342	Likewise.
3343	* testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
3344	Likewise.
3345	* testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
3346	Likewise.
3347	* testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
3348	Likewise.
3349	* testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
3350	Likewise.
3351	* testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
3352	Likewise.
3353	* testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
3354	Likewise.
3355	* testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
3356	Likewise.
3357	* testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
3358	Likewise.
3359	* testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
3360	Likewise.
3361	* testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
3362	Likewise.
3363	* testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
3364	Likewise.
3365	* testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
3366	Likewise.
3367	* testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
3368	Likewise.
3369	* testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
3370	Likewise.
3371	* testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
3372	Likewise.
3373	* testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
3374	Likewise.
3375	* testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
3376	Likewise.
3377	* testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
3378	Likewise.
3379	* testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
3380	Likewise.
3381	* testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
3382	Likewise.
3383	* testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
3384	Likewise.
3385	* testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
3386	Likewise.
3387	* testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
3388	Likewise.
3389	* testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
3390	Likewise.
3391	* testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
3392	Likewise.
3393	* testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
3394	Likewise.
3395	* testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
3396	Likewise.
3397	* testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
3398	Likewise.
3399	* testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
3400	Likewise.
3401	* testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
3402	Likewise.
3403	* testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
3404	Likewise.
3405	* testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
3406	Likewise.
3407	* testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
3408	Likewise.
3409	* testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
3410	Likewise.
3411	* testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
3412	Likewise.
3413	* testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
3414	Likewise.
3415	* testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
3416	dg-warning.
3417	* testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
3418	Likewise.
3419	* testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
3420	Likewise.
3421	* testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
3422	Disable deprecated warnings.
3423	* testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
3424	Likewise.
3425	* testsuite/util/regression/trait/erase_if_fn.hpp: Remove
3426	std::unary_function base classes.
3427	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3428	Remove std::iterator base classes.
3429
34302022-01-14  Jonathan Wakely  <jwakely@redhat.com>
3431
3432	* include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
3433	Correct type of macro value.
3434	(shared_ptr): Add additional friend declarations.
3435	(make_shared, allocate_shared): Constrain existing overloads and
3436	remove static_assert.
3437	* include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
3438	New macro.
3439	(_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
3440	specialization for use with make_shared_for_overwrite.
3441	(__cpp_lib_shared_ptr_arrays): Update value for C++20.
3442	(_Sp_counted_array_base): New class template.
3443	(_Sp_counted_array): New class template.
3444	(__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
3445	New constructor for allocating shared arrays.
3446	(__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
3447	* include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
3448	type.
3449	(__cpp_lib_shared_ptr_arrays): Update value for C++20.
3450	(__cpp_lib_smart_ptr_for_overwrite): New macro.
3451	* testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
3452	expected errors.
3453	* testsuite/20_util/shared_ptr/creation/array.cc: New test.
3454	* testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
3455	* testsuite/20_util/shared_ptr/creation/version.cc: New test.
3456	* testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
3457	feature test macro. Test non-trivial default-initialization.
3458
34592022-01-14  Jonathan Wakely  <jwakely@redhat.com>
3460
3461	* include/bits/stl_construct.h (_Construct, _Construct_novalue):
3462	Also cast away cv-qualifiers when converting pointer to void.
3463	* testsuite/20_util/allocator/void.cc: Test construct function
3464	with cv-qualified types.
3465
34662022-01-14  Jonathan Wakely  <jwakely@redhat.com>
3467
3468	PR libstdc++/103992
3469	* include/bits/stl_iterator.h (common_iterator): Use
3470	std::construct_at instead of placement new.
3471	* testsuite/24_iterators/common_iterator/1.cc: Check copy
3472	construction is usable in constant expressions.
3473
34742022-01-14  Jonathan Wakely  <jwakely@redhat.com>
3475
3476	* doc/xml/manual/status_cxx2011.xml: Document new tokens
3477	accepted by std::random_device constructor.
3478	* doc/html/manual/status.html: Regenerate.
3479
34802022-01-12  Patrick Palka  <ppalka@redhat.com>
3481
3482	* testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
3483	directive.
3484
34852022-01-12  Patrick Palka  <ppalka@redhat.com>
3486
3487	PR libstdc++/103955
3488	* src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
3489	Track the excess precision separately from the effective
3490	precision.  Avoid overflow in bounds check by splitting it into
3491	two checks.
3492	(__floating_to_chars_precision): Avoid overflow in bounds checks
3493	similarly.
3494	* testsuite/20_util/to_chars/103955.cc: New test.
3495
34962022-01-11  Jonathan Wakely  <jwakely@redhat.com>
3497
3498	PR libstdc++/103726
3499	* include/Makefile.am: Install <source_location> for
3500	freestanding.
3501	* include/Makefile.in: Regenerate.
3502	* include/std/version (__cpp_lib_source_location): Define for
3503	freestanding.
3504
35052022-01-11  Jonathan Wakely  <jwakely@redhat.com>
3506
3507	* include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
3508	Add neoxcept (LWG 3593).
3509
35102022-01-11  Jonathan Wakely  <jwakely@redhat.com>
3511
3512	* include/std/ranges (ranges::__detail::__box): Add constexpr to
3513	assignment operators (LWG 3572).
3514	* testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
3515	view that uses copyable-box.
3516
35172022-01-11  Jonathan Wakely  <jwakely@redhat.com>
3518
3519	PR libstdc++/103726
3520	* include/Makefile.am: Install <coroutine> for freestanding.
3521	* include/Makefile.in: Regenerate.
3522	* include/std/coroutine: Adjust headers and preprocessor
3523	conditions.
3524	(__coroutine_traits_impl): Use concepts when available.
3525	[_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
3526
35272022-01-11  Jonathan Wakely  <jwakely@redhat.com>
3528
3529	* include/std/ostream (operator<<(basic_ostream&, charT)):
3530	Use unformatted input if no padding is needed.
3531	(operator<<(basic_ostream<char>&, char)): Likewise.
3532
35332022-01-11  Jonathan Wakely  <jwakely@redhat.com>
3534
3535	PR libstdc++/103891
3536	* include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
3537	Define.
3538	* include/std/variant (__cpp_lib_variant): Only define C++20
3539	value when the compiler is known to support conditionally
3540	trivial destructors.
3541	* include/std/version (__cpp_lib_variant): Likewise.
3542
35432022-01-11  Jonathan Wakely  <jwakely@redhat.com>
3544
3545	* include/bits/stl_iterator.h (common_iterator): Add constexpr
3546	to all member functions (LWG 3574).
3547	* testsuite/24_iterators/common_iterator/1.cc: Evaluate some
3548	tests as constant expressions.
3549	* testsuite/24_iterators/common_iterator/2.cc: Likewise.
3550
35512022-01-10  Jakub Jelinek  <jakub@redhat.com>
3552
3553	PR libstdc++/77760
3554	* include/bits/locale_facets_nonio.h (__time_get_state): New struct.
3555	(time_get::_M_extract_via_format): Declare new method with
3556	__time_get_state& as an extra argument.
3557	* include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
3558	__state argument, set various fields in it while parsing.  Handle %j,
3559	%U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
3560	for %p immediately.  Add a wrapper around the method without the
3561	__state argument for backwards compatibility.
3562	(_M_extract_num): Remove all __len == 4 special cases.
3563	(time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
3564	initialize __state, pass it to _M_extract_via_format and finalize it
3565	at the end.
3566	(do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
3567	69-99 to 1969-1999.  For 3-4 digit parsed years use that as year.
3568	(get): If do_get isn't overloaded from the locale_facets_nonio.tcc
3569	version, don't call do_get but call _M_extract_via_format instead to
3570	pass around state.
3571	* config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
3572	with extra __time_get_state and __time_get_state::_M_finalize_state.
3573	* src/c++98/locale_facets.cc (is_leap, day_of_the_week,
3574	day_of_the_year): New functions in anon namespace.
3575	(mon_yday): New var in anon namespace.
3576	(__time_get_state::_M_finalize_state): Define.
3577	* testsuite/22_locale/time_get/get/char/4.cc: New test.
3578	* testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
3579	* testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
3580	as year 197AD instead of error.
3581	* testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
3582	year 2001 instead of error.
3583	* testsuite/22_locale/time_get/get_year/char/6.cc: New test.
3584	* testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
3585	197 as year 197AD instead of error.
3586	* testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
3587	1 as year 2001 instead of error.
3588	* testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
3589
35902022-01-10  Jonathan Wakely  <jwakely@redhat.com>
3591
3592	PR libstdc++/103866
3593	* acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
3594	nothing for freestanding builds.
3595	(GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
3596	* configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
3597	with --without-headers.  Do not use GCC_HEADER_STDINT for
3598	freestanding builds.
3599	* libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
3600	for freestanding builds.
3601	* configure: Regenerate.
3602	* Makefile.in: Regenerate.
3603	* doc/Makefile.in: Regenerate.
3604	* include/Makefile.in: Regenerate.
3605	* libsupc++/Makefile.in: Regenerate.
3606	* po/Makefile.in: Regenerate.
3607	* python/Makefile.in: Regenerate.
3608	* src/Makefile.in: Regenerate.
3609	* src/c++11/Makefile.in: Regenerate.
3610	* src/c++17/Makefile.in: Regenerate.
3611	* src/c++20/Makefile.in: Regenerate.
3612	* src/c++98/Makefile.in: Regenerate.
3613	* src/filesystem/Makefile.in: Regenerate.
3614	* testsuite/Makefile.in: Regenerate.
3615
36162022-01-10  Jonathan Wakely  <jwakely@redhat.com>
3617
3618	* testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
3619	Add dg-timeout-factor directive.
3620	* testsuite/28_regex/basic_regex/84110.cc: Likewise.
3621	* testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
3622	* testsuite/28_regex/match_results/102667.cc: Likewise.
3623
36242022-01-10  Jonathan Wakely  <jwakely@redhat.com>
3625
3626	* doc/xml/manual/using.xml: Update documentation around default
3627	-std option.
3628	* doc/html/*: Regenerate.
3629
36302022-01-10  Jonathan Wakely  <jwakely@redhat.com>
3631
3632	PR libstdc++/100017
3633	* src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
3634	* src/c++17/Makefile.in: Regenerate.
3635
36362022-01-09  Sandra Loosemore  <sandra@codesourcery.com>
3637
3638	* testsuite/18_support/type_info/constexpr.cc: Add explicit
3639	-fdelete-null-pointer-checks option.
3640
36412022-01-06  Pavel I. Kryukov  <pavel.kryukov@phystech.edu>
3642	    Jonathan Wakely  <jwakely@redhat.com>
3643
3644	PR libstdc++/103853
3645	* include/bits/forward_list.tcc (forward_list::merge): Check for
3646	self-merge.
3647	* testsuite/23_containers/forward_list/operations/merge.cc: New test.
3648
36492022-01-06  Jonathan Wakely  <jwakely@redhat.com>
3650
3651	* include/bits/regex.h (basic_regex, match_results): Qualify
3652	name in friend declaration, to work around Clang bug.
3653
36542022-01-06  Jonathan Wakely  <jwakely@redhat.com>
3655
3656	* testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
3657
36582022-01-06  Jonathan Wakely  <jwakely@redhat.com>
3659
3660	PR libstdc++/103911
3661	* include/std/charconv (__from_chars_alpha_to_num): Return
3662	char instead of unsigned char. Change invalid return value to
3663	127 instead of using numeric trait.
3664	(__from_chars_alnum): Fix comment. Do not use std::isdigit.
3665	Change type of variable to char.
3666
36672022-01-05  François Dumont  <fdumont@gcc.gnu.org>
3668
3669	PR libstdc++/68303
3670	* include/bits/hashtable_policy.h
3671	(_Hashtable_hash_traits<_Hash>): New.
3672	(_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
3673	(_Hashtable_base<>::_M_key_equals): New.
3674	(_Hashtable_base<>::_M_equals): Use latter.
3675	(_Hashtable_base<>::_M_key_equals_tr): New.
3676	(_Hashtable_base<>::_M_equals_tr): Use latter.
3677	* include/bits/hashtable.h
3678	(_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
3679	(_Hashtable<>::find): Loop through elements to look for key if size is lower
3680	than __small_size_threshold().
3681	(_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
3682	(_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
3683	(_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
3684	(_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
3685	(_Hashtable<>::_M_find_before_node(const key_type&)): New.
3686	(_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
3687	(_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
3688	* src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
3689	* testsuite/util/testsuite_performance.h
3690	(report_performance): Use 9 width to display memory.
3691	* testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
3692	New performance test case.
3693
36942022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3695
3696	PR libstdc++/103919
3697	* include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
3698	Relax constraints on string_view parameter.
3699	* include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
3700	Likewise.
3701	* testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
3702
37032022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3704
3705	* config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
3706	ARM EABI.
3707	* include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
3708	* include/std/version (__cpp_lib_constexpr_typeinfo): Define.
3709	* libsupc++/tinfo.cc: Add #error to ensure non-inline definition
3710	is emitted.
3711	(type_info::__equal): Define alias symbol.
3712	* libsupc++/typeinfo (type_info::before): Combine different
3713	implementations into one.
3714	(type_info::operator==): Likewise. Use address equality for
3715	constant evaluation. Call __equal for targets that require the
3716	definition to be non-inline.
3717	* testsuite/18_support/type_info/constexpr.cc: New test.
3718
37192022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3720
3721	* src/c++11/cxx11-ios_failure.cc (io_error_category): Define
3722	class and virtual functions as 'final'.
3723	(io_category_instance): Use constinit union to make the object
3724	immortal.
3725	* src/c++11/future.cc (future_error_category): Define class and
3726	virtual functions as 'final'.
3727	(future_category_instance): Use constinit union.
3728
37292022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3730
3731	* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
3732	versioned namespace from the type name that is printed.
3733
37342022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3735
3736	* python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
3737	printer for std::regex NFA states.
3738
37392022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3740
3741	* testsuite/23_containers/forward_list/operations/1.cc: Fill in
3742	placeholders in comments.
3743	* testsuite/23_containers/forward_list/operations/2.cc:
3744	Likewise.
3745	* testsuite/23_containers/forward_list/operations/3.cc:
3746	Likewise.
3747	* testsuite/23_containers/forward_list/operations/4.cc:
3748	Likewise.
3749	* testsuite/23_containers/forward_list/operations/5.cc:
3750	Likewise.
3751	* testsuite/23_containers/forward_list/operations/6.cc:
3752	Likewise.
3753	* testsuite/23_containers/forward_list/operations/7.cc:
3754	Likewise.
3755
37562022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3757
3758	PR libstdc++/103848
3759	* include/bits/stl_deque.h (operator-): Do not use 0 as null
3760	pointer constant.
3761
37622022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3763
3764	* include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
3765	Use std::_Construct for construct.
3766
37672022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3768
3769	PR libstdc++/103877
3770	* doc/xml/faq.xml: Add '-x c++' to preprocessor command.
3771	* doc/html/faq.html: Regenerate.
3772
37732022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3774
3775	* include/bits/regex.h (__regex_algo_impl): Change __policy and
3776	__match_mode template parameters to be function parameters.
3777	(regex_match, regex_search): Pass policy and match mode as
3778	function arguments.
3779	* include/bits/regex.tcc (__regex_algo_impl): Change template
3780	parameters to function parameters.
3781	* include/bits/regex_compiler.h (_RegexTranslatorBase): Use
3782	'if constexpr' for conditions using template parameters.
3783	(_RegexTranslator): Likewise.
3784	* include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
3785	Likewise.
3786	* testsuite/util/testsuite_regex.h (regex_match_debug)
3787	(regex_search_debug): Move template arguments to function
3788	arguments.
3789
37902022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3791
3792	* testsuite/util/testsuite_regex.h (regex_match_debug): Compare
3793	results even if the match failed.
3794
37952022-01-05  Jonathan Wakely  <jwakely@redhat.com>
3796
3797	* include/bits/regex_compiler.tcc: Adjust all calls to
3798	__throw_regex_error.
3799	* include/bits/regex_error.h (__throw_regex_error): Add noreturn
3800	attribute.
3801	* include/bits/regex_scanner.tcc: Likewise.
3802	* src/c++11/regex.cc (desc): New helper function.
3803	(regex_error::regex_error(error_type)): Use desc to get a string
3804	corresponding to the error code.
3805
3806
3807Copyright (C) 2022 Free Software Foundation, Inc.
3808
3809Copying and distribution of this file, with or without modification,
3810are permitted in any medium without royalty provided the copyright
3811notice and this notice are preserved.
3812