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