12021-08-24  Jonathan Wakely  <jwakely@redhat.com>
2
3	Backported from master:
4	2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
5
6	PR libstdc++/101965
7	* include/std/charconv (__to_chars_i): Remove redundant check.
8
92021-08-24  Jonathan Wakely  <jwakely@redhat.com>
10
11	Backported from master:
12	2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
13
14	* testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
15	construction from input iterators.
16
172021-08-24  Jonathan Wakely  <jwakely@redhat.com>
18
19	Backported from master:
20	2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
21
22	PR libstdc++/100682
23	* doc/xml/manual/debug_mode.xml: Update documentation about
24	debug capability of std::array.
25	* doc/html/*: Regenerate.
26	* include/debug/array: New file.
27
282021-08-24  Jonathan Wakely  <jwakely@redhat.com>
29
30	Backported from master:
31	2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
32
33	* include/bits/basic_string.h (basic_string::contains): Do not
34	define for -std=gnu++20.
35
362021-08-24  Jonathan Wakely  <jwakely@redhat.com>
37
38	Backported from master:
39	2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
40
41	* include/bits/semaphore_base.h: Include <exception> and <errno.h>.
42
432021-08-24  Jonathan Wakely  <jwakely@redhat.com>
44
45	Backported from master:
46	2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
47
48	* include/bits/random.h (seed_seq): Constrain initializer-list
49	constructor.
50	* include/bits/random.tcc (seed_seq): Add template parameter.
51	* testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
52	for noexcept.
53	* testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
54	constraints.
55
562021-08-24  Jonathan Wakely  <jwakely@redhat.com>
57
58	Backported from master:
59	2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
60
61	PR libstdc++/100285
62	* include/experimental/socket (__basic_socket_impl::set_option)
63	(__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
64	Just set error code.
65	* testsuite/experimental/net/socket/socket_base.cc: CHeck
66	for <sys/socket.h> not <socket.h>.
67
682021-08-24  Jonathan Wakely  <jwakely@redhat.com>
69
70	Backported from master:
71	2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
72
73	PR libstdc++/100180
74	PR libstdc++/100286
75	PR libstdc++/100351
76	* testsuite/experimental/net/internet/address/v4/comparisons.cc:
77	Use new effective-target keyword.
78	* testsuite/experimental/net/internet/address/v4/cons.cc:
79	Likewise.
80	* testsuite/experimental/net/internet/address/v4/creation.cc:
81	Likewise.
82	* testsuite/experimental/net/internet/address/v4/members.cc:
83	Likewise.
84	* testsuite/experimental/net/internet/address/v6/members.cc:
85	Likewise.
86	* testsuite/experimental/net/internet/resolver/base.cc:
87	Likewise.
88	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
89	Likewise.
90	* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
91	Likewise.
92	* testsuite/experimental/net/internet/socket/opt.cc:
93	Likewise.
94	* testsuite/experimental/net/internet/tcp.cc:
95	Likewise.
96	* testsuite/experimental/net/internet/udp.cc:
97	Likewise.
98	* testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
99	New proc to check net_ts_ip et.
100
1012021-08-24  Jonathan Wakely  <jwakely@redhat.com>
102
103	Backported from master:
104	2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
105
106	* include/experimental/internet (address_v6::bytes_type): Adjust
107	formatting.
108	(basic_endpoint): Define _M_is_v6() to put all checks for
109	AF_INET6 in one place.
110	(basic_endpoint::resize): Simplify.
111	(operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
112	(operator!=(const tcp&, const tcp&)): Likewise.
113	(operator==(const udp&, const udp&)): Likewise.
114	(operator!=(const udp&, const udp&)): Likewise.
115	* testsuite/experimental/net/internet/tcp.cc: New test.
116	* testsuite/experimental/net/internet/udp.cc: New test.
117
1182021-08-24  Jonathan Wakely  <jwakely@redhat.com>
119
120	Backported from master:
121	2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
122
123	PR libstdc++/100286
124	* include/experimental/internet (resolver_errc, resolver_category())
125	(make_error_code, make_error_condition): Define unconditionally,
126	only make enumerators and use of gai_strerror depend on the
127	availability of <netdb.h>.
128	(address_v4::to_string): Use correct constant for string length.
129	(address_v4::to_string, address_v6::to_string): Define
130	unconditionally, throw if unsupported.
131	(make_address_v4, make_address_v6): Define unconditionally.
132	Return an error if unsupported.
133	(tcp, udp, v6_only, unicast::hops, multicast::*): Define
134	conditionally,
135	* testsuite/experimental/net/internet/socket/opt.cc: Check for
136	<netinet/in.h> and <netinet/tcp.h> before using types from
137	namespace net::ip.
138
1392021-08-24  Jonathan Wakely  <jwakely@redhat.com>
140
141	Backported from master:
142	2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
143
144	PR libstdc++/100285
145	* include/experimental/internet (resolver_base::flags):
146	Define overloaded operators as hidden friends.
147	* include/experimental/socket (socket_base::message_flags):
148	Likewise.
149
1502021-08-24  Jonathan Wakely  <jwakely@redhat.com>
151
152	Backported from master:
153	2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
154
155	* include/experimental/internet (tcp::no_delay, v6_only)
156	(unicast::hops, multicast::hops, multicast::enable_loopback):
157	Change access of base class and static data members. Add
158	using-declaration for __socket_crtp::operator=(_Tp).
159	(multicast::__mcastopt): New type.
160	(multicast::join_group, multicast::leave_group): Derive from
161	__mcastopt for common implementation.
162	* include/experimental/socket: Add comment.
163	* testsuite/experimental/net/internet/socket/opt.cc: New test.
164	* testsuite/experimental/net/socket/socket_base.cc: Check for
165	protected constructor/destructor of socket_base. Check for
166	explicit constructors of socket option classes.
167
1682021-08-24  Jonathan Wakely  <jwakely@redhat.com>
169
170	Backported from master:
171	2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
172
173	* include/experimental/bits/net.h (__socket_base): Add
174	bool template parameter to allow BooleanSocketOption and
175	IntegerSocketOption to have different __socket_base<int>
176	base classes.
177	(__socket_base<bool>): Adjust base class.
178	(__socket_base<int>): Add partial specialization.
179	(__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
180	* include/experimental/socket (socket_base::broadcast)
181	(socket_base::debug, socket_base::do_not_route)
182	(socket_base::keep_alive, socket_base::linger)
183	(socket_base::out_of_band_inline)
184	(socket_base::receive_buffer_size)
185	(socket_base::receive_low_watermark)
186	(socket_base::reuse_address, socket_base::send_buffer_size)
187	(socket_base::send_low_watermark): Add using-declaration for
188	__socket_crtp::operator=(_Tp).
189	* testsuite/experimental/net/socket/socket_base.cc: Check
190	properties of socket option types.
191
1922021-08-24  Jonathan Wakely  <jwakely@redhat.com>
193
194	Backported from master:
195	2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
196
197	* include/experimental/internet (resolver_base::flags): Remove
198	enumerators. Initialize constants directly with desired values.
199	Make all operators constexpr and noexcept.
200	* testsuite/experimental/net/internet/resolver/base.cc: Use
201	__gnu_test::test_bitmask_values for bitmask type. Check
202	construction and destruction is protected.
203
2042021-08-24  Jonathan Wakely  <jwakely@redhat.com>
205
206	Backported from master:
207	2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
208
209	PR libstdc++/100180
210	* include/experimental/io_context (io_context): Define
211	dummy_pollfd type so that most member functions still compile
212	without <poll.h> and struct pollfd.
213
2142021-08-24  Jonathan Wakely  <jwakely@redhat.com>
215
216	Backported from master:
217	2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
218
219	* include/experimental/io_context (io_context::async_wait): Add
220	comment.
221	* include/experimental/socket (basic_socket::async_connect):
222	Cast wait_type constant to int.
223	(basic_datagram_socket::async_receive): Likewise.
224	(basic_datagram_socket::async_receive_from): Likewise.
225	(basic_datagram_socket::async_send): Likewise.
226	(basic_datagram_socket::async_send_to): Likewise.
227	(basic_stream_socket::async_receive): Likewise.
228	(basic_stream_socket::async_send): Likewise. Use io_context
229	parameter directly, instead of via an executor.
230	(basic_socket_acceptor::async_accept): Likewise.
231
2322021-08-24  Jonathan Wakely  <jwakely@redhat.com>
233
234	Backported from master:
235	2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
236
237	* include/experimental/socket (socket_base::shutdown_type):
238	(socket_base::wait_type, socket_base::message_flags):
239	Remove enumerators. Initialize constants directly with desired
240	values.
241	(socket_base::message_flags): Make all operators constexpr and
242	noexcept.
243	* testsuite/util/testsuite_common_types.h (test_bitmask_values):
244	New test utility.
245	* testsuite/experimental/net/socket/socket_base.cc: New test.
246
2472021-08-23  Jonathan Wakely  <jwakely@redhat.com>
248
249	Backported from master:
250	2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
251
252	* include/std/ranges (basic_istream_view): Add default template
253	argument.
254	* testsuite/std/ranges/istream_view.cc: Check it.
255
2562021-08-19  Jonathan Wakely  <jwakely@redhat.com>
257
258	Backported from master:
259	2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
260
261	* doc/xml/manual/status_cxx2020.xml: Move row  earlier in table.
262	* doc/html/manual/status.html: Regenerate.
263
2642021-08-19  Jonathan Wakely  <jwakely@redhat.com>
265
266	Backported from master:
267	2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
268
269	PR libstdc++/100139
270	* doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
271	* doc/html/manual/status.html: Regenerate.
272
2732021-08-17  Thomas Schwinge  <thomas@codesourcery.com>
274
275	Backported from master:
276	2021-08-17  Thomas Schwinge  <thomas@codesourcery.com>
277
278	* testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
279	continued.
280
2812021-08-11  Jonathan Wakely  <jwakely@redhat.com>
282
283	Backported from master:
284	2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
285
286	PR libstdc++/101866
287	* testsuite/experimental/random/randint.cc: Loop and retry if
288	reseed() produces the same sequence.
289
2902021-08-11  Jonathan Wakely  <jwakely@redhat.com>
291
292	Backported from master:
293	2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
294
295	PR libstdc++/101510
296	* src/c++17/fs_ops.cc (fs::create_directories): Use status
297	instead of symlink_status.
298	* src/filesystem/ops.cc (fs::create_directories): Likewise.
299	* testsuite/27_io/filesystem/operations/create_directories.cc:
300	Check symlink to existing directory.
301	* testsuite/27_io/filesystem/operations/create_directory.cc: Do
302	not test with symlinks on Windows.
303	* testsuite/experimental/filesystem/operations/create_directories.cc:
304	Check symlink to existing directory.
305	* testsuite/experimental/filesystem/operations/create_directory.cc:
306	Do not test with symlinks on Windows.
307
3082021-08-11  Jonathan Wakely  <jwakely@redhat.com>
309
310	Backported from master:
311	2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
312
313	PR libstdc++/101510
314	* src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
315	* testsuite/27_io/filesystem/operations/create_directory.cc:
316	Test creating directory with name of existing symlink to
317	directory.
318	* testsuite/experimental/filesystem/operations/create_directory.cc:
319	Likewise.
320
3212021-08-11  Jonathan Wakely  <jwakely@redhat.com>
322
323	Backported from master:
324	2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
325
326	PR libstdc++/101056
327	* libsupc++/compare (compare_partial_order_fallback): Add
328	constraint using reversed parameter order, as per LWG 3465.
329	* testsuite/18_support/comparisons/algorithms/fallback.cc:
330	Adjust expected result.
331
3322021-08-11  Jonathan Wakely  <jwakely@redhat.com>
333
334	Backported from master:
335	2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
336
337	* libsupc++/compare (__decayed_same_as): New helper concept.
338	(strong_order, weak_order, partial_order): Constrain with new
339	concept instead of using static_assert.
340	(compare_strong_order_fallback, compare_weak_order_fallback)
341	(compare_partial_order_fallback): Likewise. Do not deduce return
342	types. Remove redundant if-constexpr checks.
343	* testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
344
3452021-08-11  Jonathan Wakely  <jwakely@redhat.com>
346
347	Backported from master:
348	2021-07-01  Jonathan Wakely  <jwakely@redhat.com>
349
350	* doc/doxygen/doxygroups.cc: Fix docs for std::literals.
351	* doc/doxygen/user.cfg.in: Exclude the Networking TS header.
352	Add some more predefined macros.
353	* include/bits/fs_fwd.h: Move @addtogroup commands inside
354	namespaces. Add better documentation.
355	* include/bits/fs_path.h: Likewise.
356	* include/experimental/bits/fs_fwd.h: Likewise.
357	* include/experimental/bits/fs_path.h: Likewise.
358	* include/ext/throw_allocator.h: Fix typo and improve docs.
359	* include/std/chrono: Move @addtogroup commands.
360	* include/std/system_error: Move @addtogroup commands.
361	* libsupc++/exception: Improve documentation.
362	* libsupc++/exception.h: Add @since documentation.
363
3642021-08-11  Jonathan Wakely  <jwakely@redhat.com>
365
366	Backported from master:
367	2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
368
369	PR libstdc++/101258
370	* doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
371	(COLS_IN_ALPHA_INDEX): Remove obsolete tag.
372	(PREDEFINED): Add/fix some more macros that need to be expanded.
373	* include/bits/random.h: Stop Doxygen from documenting internal
374	implementation details.
375	* include/bits/random.tcc: Likewise.
376	* include/bits/this_thread_sleep.h: Fix @file name.
377	* include/experimental/bits/simd.h: Add to Doxygen group. Do not
378	document internal implementation details.
379	* include/experimental/bits/simd_detail.h: Do not document
380	internal implementation details.
381	* include/experimental/simd: Define Doxygen groups.
382	* include/experimental/type_traits: Improve documentation for
383	the header file. Define groups. Use @since commands.
384	* include/std/scoped_allocator (scoped_allocator_adaptor): Move
385	declaration before undocumented region.
386	* include/std/type_traits (true_type, false_type): Use using
387	declaration instead of typedef.
388	(is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
389	(is_nothrow_invocable_r_v): Move definitions next to other C++17
390	variable templates.
391	Do not document internal implementation details. Move misplaced
392	group-end command. Define group for variable templates.
393	* include/std/variant: Do not document internal implementation
394	details.
395	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
396	line number.
397
3982021-07-28  Release Manager
399
400	* GCC 11.2.0 released.
401
4022021-07-19  Jonathan Wakely  <jwakely@redhat.com>
403
404	Backported from master:
405	2021-05-12  Jonathan Wakely  <jwakely@redhat.com>
406
407	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
408	Increase dg-timeout-factor to 4. Fix -Wunused-parameter
409	warnings. Replace bitwise AND with logical AND in loop
410	condition.
411	* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
412	Replace bitwise AND with logical AND in loop condition.
413	* testsuite/util/pstl/test_utils.h: Remove unused parameter
414	names.
415
4162021-07-19  Jonathan Wakely  <jwakely@redhat.com>
417
418	Backported from master:
419	2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
420
421	* include/bits/ranges_util.h (subrange): Add __size_type typedef
422	and use it to simplify declarations.
423	(subrange(i, s, n)): Remove assertion.
424	* testsuite/std/ranges/subrange/constexpr.cc: New test.
425
4262021-07-19  Jonathan Wakely  <jwakely@redhat.com>
427
428	Backported from master:
429	2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
430
431	PR libstdc++/101427
432	* include/std/tuple (tuple_element): Improve static_assert text.
433	(__get_helper): Add deleted overload.
434	(get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
435	__get_helper directly.
436	(__get_helper2): Remove.
437	(__find_uniq_type_in_pack): New constexpr helper function.
438	(get<T>): Use __find_uniq_type_in_pack and __get_helper instead
439	of __get_helper2.
440	* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
441	expected errors.
442	* testsuite/20_util/tuple/element_access/101427.cc: New test.
443
4442021-07-16  Jonathan Wakely  <jwakely@redhat.com>
445
446	Backported from master:
447	2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
448
449	* include/bits/iterator_concepts.h (__cust_access::__decay_copy):
450	Replace with function object.
451	(__cust_access::__member_begin, ___cust_access::_adl_begin): Use
452	__decay_copy unqualified.
453	* include/bits/ranges_base.h (__member_end, __adl_end):
454	Likewise. Use __range_iter_t for type of ranges::begin.
455	(__member_rend): Use correct value category for rbegin argument.
456	(__member_data): Use __decay_copy unqualified.
457	(__begin_data): Use __range_iter_t for type of ranges::begin.
458
4592021-07-15  Jonathan Wakely  <jwakely@redhat.com>
460
461	Backported from master:
462	2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
463
464	* include/bits/ranges_base.h (ranges::empty): Check whether
465	conversion to bool can throw.
466	* testsuite/std/ranges/access/empty.cc: Check for correct
467	noexcept-specifier.
468
4692021-07-15  Jonathan Wakely  <jwakely@redhat.com>
470
471	Backported from master:
472	2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
473
474	* include/experimental/simd: Do not define anything pre-C++17.
475
4762021-07-14  Jonathan Wakely  <jwakely@redhat.com>
477
478	Backported from master:
479	2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
480
481	PR c++/101361
482	* include/std/string_view (ends_with): Use traits_type::compare
483	directly.
484
4852021-07-14  Jonathan Wakely  <jwakely@redhat.com>
486
487	Backported from master:
488	2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
489
490	* include/std/string_view: Only include <bits/ranges_base.h>
491	once, and only for C++20 and later.
492
4932021-07-14  Jonathan Wakely  <jwakely@redhat.com>
494
495	Backported from master:
496	2021-07-12  Jonathan Wakely  <jwakely@redhat.com>
497
498	PR libstdc++/101411
499	* include/std/span (as_writable_bytes): Add requires-clause.
500	* testsuite/23_containers/span/101411.cc: New test.
501
5022021-07-13  Patrick Palka  <ppalka@redhat.com>
503
504	Backported from master:
505	2021-06-18  Patrick Palka  <ppalka@redhat.com>
506
507	PR libstdc++/100387
508	* include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
509	to limit comparison complexity to 3*N/2.
510	(__minmax_element_fn::operator()): Likewise.
511	(shift_right): Avoid premature std::move of __result.
512	* testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
513	New tests.
514	* testsuite/25_algorithms/minmax_element/constrained.cc (test02):
515	Likewise.
516
5172021-06-22  Thomas Rodgers  <rodgert@appliantology.com>
518
519	Backported from master:
520	2021-06-22  Thomas Rodgers  <rodgert@appliantology.com>
521
522	PR libstdc++/100806
523	* include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
524	Force _M_release() to wake all waiting threads.
525	* testsuite/30_threads/semaphore/100806.cc: New test.
526
5272021-06-18  Jonathan Wakely  <jwakely@redhat.com>
528
529	Backported from master:
530	2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
531
532	PR libstdc++/95833
533	* include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
534	incorrect static_assert with ones matching the 'Mandates'
535	conditions in the standard.
536	* testsuite/26_numerics/reduce/95833.cc: New test.
537
5382021-06-18  Jonathan Wakely  <jwakely@redhat.com>
539
540	Backported from master:
541	2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
542
543	* testsuite/21_strings/basic_string/cons/char/1.cc: Use
544	diagnostic pragma to suppress -Wstringop-overread error.
545
5462021-06-18  Jonathan Wakely  <jwakely@redhat.com>
547
548	Backported from master:
549	2021-06-17  Jonathan Wakely  <jwakely@redhat.com>
550
551	PR libstdc++/91488
552	* include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
553	define C++20 value when std::is_constant_evaluated is available.
554	* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
555	Likewise.
556	(__constant_string_p, __constant_array_p): Give external
557	linkage.
558	* include/std/version (__cpp_lib_constexpr_char_traits)
559	(__cpp_lib_constexpr_string): Only define C++20 values when
560	is_constant_evaluated is available.
561
5622021-06-18  Patrick Palka  <ppalka@redhat.com>
563
564	Backported from master:
565	2021-06-17  Patrick Palka  <ppalka@redhat.com>
566
567	PR libstdc++/100940
568	* include/std/ranges (__adaptor::_Partial): For the "simple"
569	forwarding partial specializations, also require that
570	the extra arguments are trivially copyable.
571	* testsuite/std/ranges/adaptors/100577.cc (test04): New test.
572
5732021-06-18  Patrick Palka  <ppalka@redhat.com>
574
575	Backported from master:
576	2021-06-17  Patrick Palka  <ppalka@redhat.com>
577
578	PR libstdc++/100940
579	* include/std/ranges (__adaptor::_RangeAdaptor): Document the
580	template form of _S_has_simple_extra_args.
581	(__adaptor::__adaptor_has_simple_extra_args): Add _Args template
582	parameter pack.  Try to treat _S_has_simple_extra_args as a
583	variable template parameterized by _Args.
584	(__adaptor::_Partial): Pass _Arg/_Args to the constraint
585	__adaptor_has_simple_extra_args.
586	(views::_Take::_S_has_simple_extra_args): Templatize according
587	to the type of the extra argument.
588	(views::_Drop::_S_has_simple_extra_args): Likewise.
589	(views::_Split::_S_has_simple_extra_args): Define.
590	* testsuite/std/ranges/adaptors/100577.cc (test01, test02):
591	Adjust after changes to _S_has_simple_extra_args mechanism.
592	(test03): Define.
593
5942021-06-14  Jonathan Wakely  <jwakely@redhat.com>
595
596	Backported from master:
597	2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
598
599	PR libstdc++/100894
600	* include/std/type_traits (__common_ref_impl<X&, Y&>): Only
601	use the type if it's a reference.
602	* testsuite/20_util/common_reference/100894.cc: New test.
603
6042021-06-14  Jonathan Wakely  <jwakely@redhat.com>
605
606	Backported from master:
607	2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
608
609	* include/bits/random.tcc (__representable_as_double)
610	(__p1_representable_as_double): Add "" to static asserts.
611
6122021-06-14  Jonathan Wakely  <jwakely@redhat.com>
613
614	Backported from master:
615	2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
616
617	* testsuite/experimental/filesystem/path/native/conv_c++23.cc:
618	Add dg-require-filesystem-ts directive.
619
6202021-06-14  Jonathan Wakely  <jwakely@redhat.com>
621
622	Backported from master:
623	2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
624
625	PR libstdc++/101034
626	* include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
627	(any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
628	to use lvalue.
629	* testsuite/20_util/any/cons/101034.cc: New test.
630
6312021-06-14  Jonathan Wakely  <jwakely@redhat.com>
632
633	Backported from master:
634	2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
635
636	* testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
637	-std=gnu++17 option.
638
6392021-06-14  Jonathan Wakely  <jwakely@redhat.com>
640
641	Backported from master:
642	2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
643
644	PR libstdc++/101055
645	* include/std/tuple: Use reserved form of attribute name.
646	* testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
647	check for no_unique_address.
648	* testsuite/17_intro/headers/c++2014/all_attributes.cc:
649	Likewise.
650	* testsuite/17_intro/headers/c++2017/all_attributes.cc:
651	Likewise.
652
6532021-06-14  Patrick Palka  <ppalka@redhat.com>
654
655	Backported from master:
656	2021-05-18  Patrick Palka  <ppalka@redhat.com>
657
658	PR libstdc++/100475
659	* include/std/ranges (__box::__box): Use non-list-initialization
660	in member initializer list of in-place constructor of the
661	partial specialization for semiregular types.
662	(__box::operator->): Use std::__addressof.
663	* testsuite/std/ranges/adaptors/detail/semiregular_box.cc
664	(test02): New test.
665	* testsuite/std/ranges/single_view.cc (test04): New test.
666
6672021-06-11  Jonathan Wakely  <jwakely@redhat.com>
668
669	Backported from master:
670	2021-06-11  Jonathan Wakely  <jwakely@redhat.com>
671
672	* include/bits/fs_path.h (operator==, operator<=>): Use new
673	_S_compare function.
674	(path::_S_compare): New function to call path::compare in a
675	context where path::iterator is complete.
676	* include/experimental/bits/fs_path.h (operator<, operator==):
677	Define after path::iterator is complete.
678	* testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
679	test.
680	* testsuite/experimental/filesystem/path/native/conv_c++23.cc:
681	New test.
682
6832021-06-11  Jonathan Wakely  <jwakely@redhat.com>
684
685	Backported from master:
686	2021-06-08  Jonathan Wakely  <jwakely@redhat.com>
687
688	* include/experimental/propagate_const (swap): Constrain.
689	* testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
690
6912021-06-11  Jonathan Wakely  <jwakely@redhat.com>
692
693	Backported from master:
694	2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
695
696	PR libstdc++/100982
697	* include/std/optional (optional::operator=(const optional<U>&)):
698	Fix value category used in is_assignable check.
699	* testsuite/20_util/optional/assignment/100982.cc: New test.
700
7012021-06-11  Jonathan Wakely  <jwakely@redhat.com>
702
703	Backported from master:
704	2021-06-07  Jonathan Wakely  <jwakely@redhat.com>
705
706	PR libstdc++/98842
707	* include/std/optional (operator<=>(const optional<T>& const U&)):
708	Add missing constraint and add workaround for template
709	recursion.
710	* testsuite/20_util/optional/relops/three_way.cc: Check that
711	type without equality comparison cannot be compared when wrapped
712	in std::optional.
713
7142021-06-11  Jonathan Wakely  <jwakely@redhat.com>
715
716	Backported from master:
717	2021-06-05  Jonathan Wakely  <jwakely@redhat.com>
718
719	PR libstdc++/100824
720	* include/bits/ranges_base.h (_SSize): Return signed type.
721	* testsuite/std/ranges/access/ssize.cc: Check with __int128.
722
7232021-06-11  Jonathan Wakely  <jwakely@redhat.com>
724
725	Backported from master:
726	2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
727
728	* include/bits/ranges_base.h (_SSize): Return the result of
729	ranges::size converted to the wider of make-signed-like-t<S> and
730	ptrdiff_t, rather than the ranges different type.
731	* testsuite/std/ranges/access/ssize.cc: Adjust expected result
732	for an iota_view that uses an integer class type for its
733	difference_type.
734
7352021-06-11  Jonathan Wakely  <jwakely@redhat.com>
736
737	Backported from master:
738	2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
739
740	PR libstdc++/100824
741	* include/bits/ranges_base.h (__member_data): Use __decay_copy.
742	* testsuite/std/ranges/access/data.cc: Add testcase from PR.
743
7442021-06-11  Jonathan Wakely  <jwakely@redhat.com>
745
746	Backported from master:
747	2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
748
749	PR libstdc++/100824
750	* include/bits/iterator_concepts.h (__detail::__decay_copy)
751	(__detail::__member_begin, __detail::__adl_begin): Move to
752	namespace ranges::__cust_access.
753	(__detail::__ranges_begin): Likewise, and rename to __begin.
754	Remove redundant static assertion.
755	* include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
756	Use lvalue in noexcept specifier.
757	(__as_const): Add non-deduced parameter for value category.
758	(_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
759	__as_const.
760	(__member_size, __adl_size, __member_empty, __size0_empty):
761	(__eq_iter_empty, __adl_data): Use lvalue objects in
762	requirements.
763	(__sentinel_size): Likewise. Add check for conversion to
764	unsigned-like.
765	(__member_data): Allow non-lvalue types to satisfy the concept,
766	but use lvalue object in requirements.
767	(_Size, _SSize): Remove forwarding to always use an lvalue.
768	(_Data): Likewise. Add static assertion for arrays.
769	* testsuite/std/ranges/access/cdata.cc: Adjust expected
770	behaviour for rvalues. Add negative tests for ill-formed
771	expressions.
772	* testsuite/std/ranges/access/data.cc: Likewise.
773	* testsuite/std/ranges/access/empty.cc: Adjust expected
774	behaviour for rvalues.
775	* testsuite/std/ranges/access/size.cc: Likewise.
776
7772021-06-11  Jonathan Wakely  <jwakely@redhat.com>
778
779	Backported from master:
780	2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
781
782	* doc/xml/manual/status_cxx2020.xml:
783	* doc/html/*: Regenerate.
784	* include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
785	Define.
786	* include/std/version (__cpp_lib_generic_unordered_lookup):
787	Define.
788	* testsuite/23_containers/unordered_map/operations/1.cc: Check
789	feature test macro.
790	* testsuite/23_containers/unordered_set/operations/1.cc:
791	Likewise.
792
7932021-06-10  Patrick Palka  <ppalka@redhat.com>
794
795	Backported from master:
796	2021-06-03  Patrick Palka  <ppalka@redhat.com>
797
798	PR libstdc++/100577
799	* include/std/ranges (_RangeAdaptorClosure): Document
800	_S_has_simple_call_op mechanism.
801	(_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
802	(__closure_has_simple_call_op): New concept.
803	(__adaptor_has_simple_extra_args): Likewise.
804	(_Partial<_Adaptor, _Args...>): New partial specialization.
805	(_Partial<_Adaptor, _Arg>): Likewise.
806	(_Pipe<_Lhs, _Rhs>): Likewise.
807	(views::_All::_S_has_simple_call_op): Define to true.
808	(views::_Filter::_S_has_simple_extra_args): Likewise.
809	(views::_Transform::_S_has_simple_extra_args): Likewise.
810	(views::_Take::_S_has_simple_extra_args): Likewise.
811	(views::_TakeWhile::_S_has_simple_extra_args): Likewise.
812	(views::_Drop::_S_has_simple_extra_args): Likewise.
813	(views::_DropWhile::_S_has_simple_extra_args): Likewise.
814	(views::_Join::_S_has_simple_call_op): Likewise.
815	(views::_Split): Document why we don't define
816	_S_has_simple_extra_args to true for this adaptor.
817	(views::_Common::_S_has_simple_call_op): Define to true.
818	(views::_Reverse::_S_has_simple_call_op): Likewise.
819	(views::_Elements::_S_has_simple_call_op): Likewise.
820	* testsuite/std/ranges/adaptors/100577.cc: New test.
821
8222021-06-10  Patrick Palka  <ppalka@redhat.com>
823
824	Backported from master:
825	2021-06-03  Patrick Palka  <ppalka@redhat.com>
826
827	PR libstdc++/100770
828	* include/bits/ranges_algo.h (__detail::__can_reread_output):
829	Factor out this concept from ...
830	(__unique_copy_fn::operator()): ... here.  Use the concept
831	throughout.
832	* testsuite/std/ranges/range.cc: Remove now ill-formed use
833	of range_value_t on an output_range.
834	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
835	Define value_type, pointer and reference member types to void.
836
8372021-06-10  Patrick Palka  <ppalka@redhat.com>
838
839	Backported from master:
840	2021-05-21  Patrick Palka  <ppalka@redhat.com>
841
842	PR libstdc++/100690
843	* include/std/ranges (iota_view::_Sentinel::_M_distance_from):
844	Split out this member function from ...
845	(iota_view::_Sentinel::operator-): ... here, for sake of access
846	control.
847	* testsuite/std/ranges/iota/iota_view.cc (test05): New test.
848
8492021-06-10  Patrick Palka  <ppalka@redhat.com>
850
851	Backported from master:
852	2021-05-06  Patrick Palka  <ppalka@redhat.com>
853
854	* include/std/ranges (filter_view::_Iterator::base): Make the
855	const& overload unconstrained and return a const reference as
856	per LWG 3533.  Make unconditionally noexcept.
857	(transform_view::_Iterator::base): Likewise.
858	(elements_view::_Iterator::base): Likewise.
859
8602021-06-10  Patrick Palka  <ppalka@redhat.com>
861
862	Backported from master:
863	2021-05-06  Patrick Palka  <ppalka@redhat.com>
864
865	* include/bits/stl_iterator.h (move_iterator::base): Make the
866	const& overload unconstrained and return a const reference as
867	per LWG 3391.  Make unconditionally noexcept.
868	(counted_iterator::base): Likewise.
869	* testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
870	* testsuite/24_iterators/move_iterator/move_only.cc: Adjust
871	has_member_base concept to decay-copy the result of base().
872
8732021-06-10  Patrick Palka  <ppalka@redhat.com>
874
875	Backported from master:
876	2021-05-18  Patrick Palka  <ppalka@redhat.com>
877
878	PR libstdc++/100631
879	* include/std/ranges (elements_view::_Sentinel::operator-): Use
880	_M_distance_from in the other operator- overload too.
881	* testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
882
8832021-06-10  Patrick Palka  <ppalka@redhat.com>
884
885	Backported from master:
886	2021-05-18  Patrick Palka  <ppalka@redhat.com>
887
888	PR libstdc++/100631
889	* include/std/ranges (elements_view::_Iterator): Also befriend
890	_Sentinel<!_Const>.
891	(elements_view::_Sentinel::_M_equal): Templatize.
892	(elements_view::_Sentinel::_M_distance_from): Split out from ...
893	(elements_view::_Sentinel::operator-): ... here.  Depend on
894	_Base2 instead of _Base in the return type.
895	* testsuite/std/ranges/adaptors/elements.cc (test06, test07):
896	New tests.
897
8982021-06-10  Patrick Palka  <ppalka@redhat.com>
899
900	Backported from master:
901	2021-05-20  Patrick Palka  <ppalka@redhat.com>
902
903	PR libstdc++/100639
904	* include/bits/stl_iterator.h (reverse_iterator::difference_type):
905	In C++20 mode, define in terms of iter_difference_t as per P0896R4.
906	(reverse_iterator::reference): Likewise, but with iter_reference_t.
907	(reverse_iterator::value_type): Likewise, but with iter_value_t.
908	* testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
909	* testsuite/24_iterators/reverse_iterator/100639.cc: New test.
910
9112021-06-09  Thomas Rodgers  <rodgert@appliantology.com>
912
913	Backported from master:
914	2021-06-09  Thomas Rodgers  <rodgert@appliantology.com>
915
916	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
917	test logic with constexpr check for is_always_lock_free.
918
9192021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
920
921	Backported from master:
922	2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
923
924	PR libstdc++/100889
925	* include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
926	Change parameter type from _Tp to _Tp*.
927	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
928	coverage of types tested.
929
9302021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
931
932	Backported from master:
933	2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
934
935	* include/std/barrier (__tree_barrier::_M_arrive): Remove
936	unnecessary hasher instantiation.
937
9382021-06-07  Avi Kivity  <avi@scylladb.com>
939
940	Backported from master:
941	2021-06-07  Avi Kivity  <avi@scylladb.com>
942
943	PR libstdc++/100900
944	* include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
945	Add missing typename.
946
9472021-06-02  Jonathan Wakely  <jwakely@redhat.com>
948
949	Backported from master:
950	2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
951
952	PR libstdc++/100676
953	* include/bits/c++config (__glibcxx_assert_1): Rename to ...
954	(__glibcxx_constexpr_assert): ... this.
955	(__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
956	(__glibcxx_assert): Define as either __glibcxx_constexpr_assert
957	or __glibcxx_assert_impl.
958	(__glibcxx_assert_2): Remove
959	* include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
960	__glibcxx_constexpr_assert instead of __glibcxx_assert_1.
961	* testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
962	Adjust expected error.
963	* testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
964	Likewise.
965	* testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
966	Likewise.
967	Likewise.
968	* testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
969	Likewise.
970	* testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
971	Likewise.
972	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
973	Likewise.
974	* testsuite/23_containers/span/back_neg.cc: Likewise.
975	* testsuite/23_containers/span/front_neg.cc: Likewise.
976	* testsuite/23_containers/span/index_op_neg.cc: Likewise.
977
9782021-06-02  Jonathan Wakely  <jwakely@redhat.com>
979
980	Backported from master:
981	2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
982
983	PR libstdc++/100833
984	* include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
985	Fix return value for no-op case.
986	* testsuite/24_iterators/range_operations/advance.cc: Test
987	return values of three-argument overload.
988
9892021-06-02  Jonathan Wakely  <jwakely@redhat.com>
990
991	Backported from master:
992	2021-05-26  Jonathan Wakely  <jwakely@redhat.com>
993
994	PR libstdc++/100768
995	* include/bits/ranges_base.h (advance, distance, next, prev):
996	Replace function templates with function objects.
997	* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
998	Adjust for changes to function objects.
999	* testsuite/std/ranges/adaptors/elements.cc: Add using
1000	declarations for names from namespace ranges.
1001	* testsuite/std/ranges/adaptors/transform.cc: Likewise.
1002	* testsuite/24_iterators/range_operations/100768.cc: New test.
1003
10042021-06-02  Jonathan Wakely  <jwakely@redhat.com>
1005
1006	Backported from master:
1007	2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
1008
1009	PR libstdc++/99453
1010	* python/Makefile.am: Use archive name for printer hook if no
1011	dynamic library name is available.
1012	* python/Makefile.in: Regenerate.
1013
10142021-05-28  David Edelsohn  <dje.gcc@gmail.com>
1015
1016	Backported from master:
1017	2021-04-24  David Edelsohn  <dje.gcc@gmail.com>
1018
1019	* testsuite/lib/dg-options.exp (atomic_link_flags): New.
1020	(add_options_for_libatomic): Use atomic_link_flags.
1021
10222021-05-28  Patrick Palka  <ppalka@redhat.com>
1023
1024	Backported from master:
1025	2021-04-30  Patrick Palka  <ppalka@redhat.com>
1026
1027	* include/std/ranges (__detail::__non_propating_cache): Define
1028	as per P2328.
1029	(join_view): Remove constraints on the value and reference types
1030	of the wrapped iterator type as per P2328.
1031	(join_view::_Iterator::_M_satisfy): Adjust as per P2328.
1032	(join_view::_Iterator::operator++): Likewise.
1033	(join_view::_M_inner): Use __non_propating_cache as per P2328.
1034	Remove now-redundant use of __maybe_present_t.
1035	* testsuite/std/ranges/adaptors/join.cc: Include <array>.
1036	(test10): New test.
1037
10382021-05-28  Patrick Palka  <ppalka@redhat.com>
1039
1040	Backported from master:
1041	2021-05-24  Patrick Palka  <ppalka@redhat.com>
1042
1043	PR libstdc++/100479
1044	* include/std/ranges (__detail::__non_propagating_cache): Move
1045	definition up to before that of _CachedPosition.  Make base
1046	class _Optional_base protected instead of private.  Add const
1047	overload for operator*.
1048	(__detail::_CachedPosition): Rewrite the partial specialization
1049	for forward ranges as a derived class of __non_propagating_cache.
1050	Remove the size constraint on the partial specialization for
1051	random access ranges.  Add copy/move/copy-assignment/move-assignment
1052	members to the offset partial specialization for random
1053	access ranges that propagate the cached value but additionally
1054	invalidate it in the source object on move.
1055	* testsuite/std/ranges/adaptors/100479.cc: New test.
1056
10572021-05-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>
1058
1059	PR libstdc++/100361
1060	* include/std/charconv (to_chars): Hide the overloads for
1061	floating-point types for 16 bit targets.
1062	* src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
1063	* testsuite/20_util/to_chars/double.cc: Run this test only on
1064	size32plus targets.
1065	* testsuite/20_util/to_chars/float.cc: Likewise.
1066	* testsuite/20_util/to_chars/long_double.cc: Likewise.
1067
10682021-05-17  Jonathan Wakely  <jwakely@redhat.com>
1069
1070	Backported from master:
1071	2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
1072
1073	PR libstdc++/100630
1074	* include/experimental/bits/fs_path.h (__is_constructible_from):
1075	Test construction from a const lvalue, not an rvalue.
1076	* testsuite/27_io/filesystem/path/construct/100630.cc: New test.
1077	* testsuite/experimental/filesystem/path/construct/100630.cc:
1078	New test.
1079
10802021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>
1081
1082	Backported from master:
1083	2021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>
1084
1085	* include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
1086	until value change observed.
1087	(__waiter_base::_M_laundered): New member.
1088	(__waiter_base::_M_notify): Check _M_laundered to determine
1089	whether to wake one or all.
1090	(__detail::__atomic_compare): Return true if call to
1091	__builtin_memcmp() == 0.
1092	(__waiter_base::_S_do_spin_v): Adjust predicate.
1093	* testsuite/29_atomics/atomic/wait_notify/100334.cc: New
1094	test.
1095
10962021-05-12  Patrick Palka  <ppalka@redhat.com>
1097
1098	Backported from master:
1099	2021-04-30  Patrick Palka  <ppalka@redhat.com>
1100
1101	* include/bits/ranges_util.h (subrange::subrange): Avoid
1102	list-initialization in delegating constructor.
1103	* include/std/ranges (single_view): Replace implicit guide
1104	with explicit deduction guide that decays its argument.
1105	(_Single::operator()): Avoid CTAD when constructing the
1106	single_view object.
1107	(_Iota::operator()): Avoid list-initialization.
1108	(__detail::__can_filter_view, _Filter::operator()): Likewise.
1109	(__detail::__can_transform_view, _Transform::operator()): Likewise.
1110	(take_view::begin): Likewise.
1111	(__detail::__can_take_view, _Take::operator()): Likewise.
1112	(__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
1113	(__detail::__can_drop_view, _Drop::operator()): Likewise.
1114	(__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
1115	(split_view::split_view): Use views::single when initializing
1116	_M_pattern.
1117	(__detail::__can_split_view, _Split::operator()): Avoid
1118	list-initialization.
1119	(_Counted::operator()): Likewise.
1120	* testsuite/std/ranges/p2367.cc: New test.
1121
11222021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1123
1124	Backported from master:
1125	2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1126
1127	* testsuite/20_util/headers/memory/synopsis.cc: Define C++98
1128	alternative for macro.
1129	* testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
1130	target keyword.
1131	* testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
1132	syntax.
1133
11342021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1135
1136	Backported from master:
1137	2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1138
1139	* include/bits/allocator.h (allocator<void>) [C++20]: Add
1140	missing noexcept to constructor. Restore missing POCMA and
1141	is_always_equal_traits.
1142	[C++17]: Make construct and destroy members private and
1143	declare allocator_traits as a friend.
1144	* include/bits/memoryfwd.h (allocator_traits): Declare.
1145	* include/ext/malloc_allocator.h (malloc_allocator::allocate):
1146	Add nodiscard attribute. Add static assertion for LWG 3307.
1147	* include/ext/new_allocator.h (new_allocator::allocate): Add
1148	static assertion for LWG 3307.
1149	* testsuite/20_util/allocator/void.cc: Check that converting
1150	constructor is noexcept. Check for propagation traits and
1151	size_type and difference_type. Check that pointer and
1152	const_pointer are gone in C++20.
1153
11542021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1155
1156	Backported from master:
1157	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1158
1159	* include/std/stop_token: Remove TODO comment.
1160
11612021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1162
1163	Backported from master:
1164	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1165
1166	* include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
1167	Initialize a non-reference deleter from an rvalue, as per LWG
1168	3548.
1169	(__shared_ptr::_UniqCompatible): Add missing constraint.
1170	* testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
1171	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
1172	constraints.
1173
11742021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1175
1176	Backported from master:
1177	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1178
1179	* testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
1180	-std=gnu++17 from dg-options directive.
1181	* testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
1182	Likewise.
1183	* testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
1184	Likewise.
1185	* testsuite/17_intro/headers/c++2017/operator_names.cc:
1186	Likewise.
1187	* testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
1188	* testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
1189	* testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
1190	Likewise.
1191	* testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
1192	* testsuite/18_support/byte/81076.cc: Likewise.
1193	* testsuite/18_support/byte/global_neg.cc: Likewise.
1194	* testsuite/18_support/byte/ops.cc: Likewise.
1195	* testsuite/18_support/byte/requirements.cc: Likewise.
1196	* testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
1197	* testsuite/18_support/launder/1.cc: Likewise.
1198	* testsuite/18_support/launder/nodiscard.cc: Likewise.
1199	* testsuite/18_support/launder/requirements.cc: Likewise.
1200	* testsuite/18_support/launder/requirements_neg.cc: Likewise.
1201	* testsuite/18_support/new_aligned.cc: Likewise.
1202	* testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1203	Likewise.
1204	* testsuite/19_diagnostics/error_code/is_error_code_v.cc:
1205	Likewise.
1206	* testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
1207	* testsuite/20_util/addressof/requirements/constexpr.cc:
1208	Likewise.
1209	* testsuite/20_util/as_const/1.cc: Likewise.
1210	* testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
1211	* testsuite/20_util/bind/83427.cc: Likewise.
1212	* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1213	* testsuite/20_util/bool_constant/requirements.cc: Likewise.
1214	* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
1215	Likewise.
1216	* testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1217	Likewise.
1218	* testsuite/20_util/duration_cast/rounding.cc: Likewise.
1219	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1220	Likewise.
1221	* testsuite/20_util/from_chars/1_neg.cc: Likewise.
1222	* testsuite/20_util/from_chars/requirements.cc: Likewise.
1223	* testsuite/20_util/function/91456.cc: Likewise.
1224	* testsuite/20_util/function/cons/deduction.cc: Likewise.
1225	* testsuite/20_util/function_objects/83607.cc: Likewise.
1226	* testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1227	* testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1228	* testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
1229	* testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
1230	* testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1231	Likewise.
1232	* testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1233	Likewise.
1234	* testsuite/20_util/has_unique_object_representations/value.cc:
1235	Likewise.
1236	* testsuite/20_util/hash/nullptr.cc: Likewise.
1237	* testsuite/20_util/in_place/requirements.cc: Likewise.
1238	* testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
1239	* testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1240	Likewise.
1241	* testsuite/20_util/is_aggregate/requirements/typedefs.cc:
1242	Likewise.
1243	* testsuite/20_util/is_aggregate/value.cc: Likewise.
1244	* testsuite/20_util/is_invocable/83395.cc: Likewise.
1245	* testsuite/20_util/is_invocable/91456.cc: Likewise.
1246	* testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
1247	Likewise.
1248	* testsuite/20_util/is_invocable/requirements/typedefs.cc:
1249	Likewise.
1250	* testsuite/20_util/is_invocable/value.cc: Likewise.
1251	* testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
1252	* testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
1253	* testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
1254	* testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
1255	Likewise.
1256	* testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
1257	* testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
1258	* testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
1259	Likewise.
1260	* testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
1261	Likewise.
1262	* testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
1263	* testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
1264	Likewise.
1265	* testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
1266	Likewise.
1267	* testsuite/20_util/is_nothrow_swappable_with/value.cc:
1268	Likewise.
1269	* testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
1270	Likewise.
1271	* testsuite/20_util/is_swappable/requirements/typedefs.cc:
1272	Likewise.
1273	* testsuite/20_util/is_swappable/value.cc: Likewise.
1274	* testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
1275	Likewise.
1276	* testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
1277	Likewise.
1278	* testsuite/20_util/is_swappable_with/value.cc: Likewise.
1279	* testsuite/20_util/logical_traits/83134.cc: Likewise.
1280	* testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
1281	Likewise.
1282	* testsuite/20_util/logical_traits/requirements/typedefs.cc:
1283	Likewise.
1284	* testsuite/20_util/logical_traits/value.cc: Likewise.
1285	* testsuite/20_util/pair/cons/deduction.cc: Likewise.
1286	* testsuite/20_util/pair/swap_cxx17.cc: Likewise.
1287	* testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
1288	Likewise.
1289	* testsuite/20_util/reference_wrapper/83427.cc: Likewise.
1290	* testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
1291	* testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1292	* testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1293	* testsuite/20_util/shared_ptr/requirements/weak_type.cc:
1294	Likewise.
1295	* testsuite/20_util/time_point/arithmetic/constexpr.cc:
1296	Likewise.
1297	* testsuite/20_util/time_point_cast/rounding.cc: Likewise.
1298	* testsuite/20_util/to_chars/3.cc: Likewise.
1299	* testsuite/20_util/to_chars/chars_format.cc: Likewise.
1300	* testsuite/20_util/to_chars/lwg3266.cc: Likewise.
1301	* testsuite/20_util/to_chars/requirements.cc: Likewise.
1302	* testsuite/20_util/tuple/78939.cc: Likewise.
1303	* testsuite/20_util/tuple/apply/1.cc: Likewise.
1304	* testsuite/20_util/tuple/apply/2.cc: Likewise.
1305	* testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1306	* testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1307	* testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
1308	* testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
1309	* testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1310	* testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1311	* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1312	Likewise.
1313	* testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1314	* testsuite/20_util/void_t/1.cc: Likewise.
1315	* testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1316	* testsuite/24_iterators/container_access.cc: Likewise.
1317	* testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
1318	Likewise.
1319	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
1320	Likewise.
1321	* testsuite/24_iterators/range_access/range_access_cpp17.cc:
1322	Likewise.
1323	* testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
1324	Likewise.
1325	* testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1326	* testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
1327	Likewise.
1328	* testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1329	* testsuite/26_numerics/headers/cmath/special_functions_global.cc:
1330	Likewise.
1331	* testsuite/26_numerics/lcm/1.cc: Likewise.
1332	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1333	* testsuite/26_numerics/valarray/deduction.cc: Likewise.
1334	* testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
1335	Likewise.
1336	* testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
1337	Likewise.
1338	* testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
1339	Likewise.
1340	* testsuite/27_io/types/4.cc: Likewise.
1341	* testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1342	* testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
1343	* testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1344
13452021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1346
1347	Backported from master:
1348	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1349
1350	* testsuite/20_util/function_objects/searchers.cc: Remove
1351	-std=gnu++17 from dg-options directive.
1352	* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
1353	Likewise.
1354	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1355	Likewise.
1356	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
1357	Likewise.
1358	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
1359	Likewise.
1360	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
1361	Likewise.
1362	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
1363	Likewise.
1364	* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
1365	Likewise.
1366	* testsuite/25_algorithms/clamp/1.cc: Likewise.
1367	* testsuite/25_algorithms/clamp/2.cc: Likewise.
1368	* testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1369	* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
1370	Likewise.
1371	* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
1372	Likewise.
1373	* testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
1374	* testsuite/25_algorithms/for_each/for_each_n_debug.cc:
1375	Likewise.
1376	* testsuite/25_algorithms/sample/1.cc: Likewise.
1377	* testsuite/25_algorithms/sample/2.cc: Likewise.
1378	* testsuite/25_algorithms/sample/3.cc: Likewise.
1379	* testsuite/25_algorithms/sample/81221.cc: Likewise.
1380	* testsuite/25_algorithms/search/searcher.cc: Likewise.
1381	* testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
1382	* testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
1383	* testsuite/26_numerics/reduce/1.cc: Likewise.
1384	* testsuite/26_numerics/reduce/2.cc: Likewise.
1385	* testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
1386	* testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
1387	* testsuite/26_numerics/transform_reduce/1.cc: Likewise.
1388
13892021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1390
1391	Backported from master:
1392	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1393
1394	* testsuite/23_containers/array/cons/deduction.cc: Remove
1395	-std=gnu++17 from dg-options directive.
1396	* testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1397	* testsuite/23_containers/array/element_access/constexpr_c++17.cc:
1398	Likewise.
1399	* testsuite/23_containers/array/requirements/constexpr_iter.cc:
1400	Likewise.
1401	* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1402	Likewise.
1403	* testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1404	* testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1405	Likewise.
1406	* testsuite/23_containers/forward_list/cons/deduction.cc:
1407	Likewise.
1408	* testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1409	Likewise.
1410	* testsuite/23_containers/list/cons/deduction.cc: Likewise.
1411	* testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1412	Likewise.
1413	* testsuite/23_containers/map/cons/deduction.cc: Likewise.
1414	* testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1415	* testsuite/23_containers/map/modifiers/insert/83226.cc:
1416	Likewise.
1417	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1418	Likewise.
1419	* testsuite/23_containers/map/modifiers/merge.cc: Likewise.
1420	* testsuite/23_containers/map/modifiers/try_emplace/1.cc:
1421	Likewise.
1422	* testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1423	* testsuite/23_containers/multimap/modifiers/extract.cc:
1424	Likewise.
1425	* testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
1426	* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1427	* testsuite/23_containers/multiset/modifiers/extract.cc:
1428	Likewise.
1429	* testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
1430	* testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1431	* testsuite/23_containers/queue/deduction.cc: Likewise.
1432	* testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1433	Likewise.
1434	* testsuite/23_containers/set/cons/deduction.cc: Likewise.
1435	* testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1436	* testsuite/23_containers/set/modifiers/merge.cc: Likewise.
1437	* testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
1438	* testsuite/23_containers/stack/deduction.cc: Likewise.
1439	* testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1440	Likewise.
1441	* testsuite/23_containers/unordered_map/cons/deduction.cc:
1442	Likewise.
1443	* testsuite/23_containers/unordered_map/modifiers/extract.cc:
1444	Likewise.
1445	* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1446	Likewise.
1447	* testsuite/23_containers/unordered_map/modifiers/merge.cc:
1448	Likewise.
1449	* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
1450	Likewise.
1451	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1452	Likewise.
1453	* testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
1454	Likewise.
1455	* testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
1456	Likewise.
1457	* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1458	Likewise.
1459	* testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
1460	Likewise.
1461	* testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
1462	Likewise.
1463	* testsuite/23_containers/unordered_set/cons/deduction.cc:
1464	Likewise.
1465	* testsuite/23_containers/unordered_set/modifiers/extract.cc:
1466	Likewise.
1467	* testsuite/23_containers/unordered_set/modifiers/merge.cc:
1468	Likewise.
1469	* testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1470	Likewise.
1471	* testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
1472	* testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1473	* testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1474	Likewise.
1475
14762021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1477
1478	Backported from master:
1479	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1480
1481	* testsuite/21_strings/basic_string/79162.cc: Remove
1482	-std=gnu++17 from dg-options directive.
1483	* testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1484	* testsuite/21_strings/basic_string/cons/char/79162.cc:
1485	Likewise.
1486	* testsuite/21_strings/basic_string/cons/char/86138.cc:
1487	Likewise.
1488	* testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1489	* testsuite/21_strings/basic_string/cons/char/deduction.cc:
1490	Likewise.
1491	* testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
1492	Likewise.
1493	* testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1494	* testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
1495	Likewise.
1496	* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
1497	Likewise.
1498	* testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1499	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1500	Likewise.
1501	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1502	Likewise.
1503	* testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
1504	* testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
1505	* testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
1506	* testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1507	Likewise.
1508	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1509	Likewise.
1510	* testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1511	Likewise.
1512	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1513	Likewise.
1514	* testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1515	Likewise.
1516	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1517	Likewise.
1518	* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1519	Likewise.
1520	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1521	Likewise.
1522	* testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1523	Likewise.
1524	* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1525	Likewise.
1526	* testsuite/21_strings/basic_string/operations/data/char/2.cc:
1527	Likewise.
1528	* testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1529	Likewise.
1530	* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
1531	Likewise.
1532	* testsuite/21_strings/basic_string/operations/find/char/5.cc:
1533	Likewise.
1534	* testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1535	Likewise.
1536	* testsuite/21_strings/basic_string/operators/char/5.cc:
1537	Likewise.
1538	* testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
1539	Likewise.
1540	* testsuite/21_strings/basic_string_view/capacity/1.cc:
1541	Likewise.
1542	* testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
1543	Likewise.
1544	* testsuite/21_strings/basic_string_view/cons/char/1.cc:
1545	Likewise.
1546	* testsuite/21_strings/basic_string_view/cons/char/2.cc:
1547	Likewise.
1548	* testsuite/21_strings/basic_string_view/cons/char/3.cc:
1549	Likewise.
1550	* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1551	Likewise.
1552	* testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
1553	Likewise.
1554	* testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
1555	Likewise.
1556	* testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
1557	Likewise.
1558	* testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1559	Likewise.
1560	* testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1561	Likewise.
1562	* testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1563	Likewise.
1564	* testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
1565	Likewise.
1566	* testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
1567	Likewise.
1568	* testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1569	Likewise.
1570	* testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1571	Likewise.
1572	* testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1573	Likewise.
1574	* testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
1575	Likewise.
1576	* testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1577	Likewise.
1578	* testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1579	Likewise.
1580	* testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1581	Likewise.
1582	* testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1583	Likewise.
1584	* testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
1585	Likewise.
1586	* testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1587	Likewise.
1588	* testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1589	Likewise.
1590	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1591	Likewise.
1592	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1593	Likewise.
1594	* testsuite/21_strings/basic_string_view/include.cc: Likewise.
1595	* testsuite/21_strings/basic_string_view/inserters/94051.cc:
1596	Likewise.
1597	* testsuite/21_strings/basic_string_view/inserters/char/1.cc:
1598	Likewise.
1599	* testsuite/21_strings/basic_string_view/inserters/char/2.cc:
1600	Likewise.
1601	* testsuite/21_strings/basic_string_view/inserters/char/3.cc:
1602	Likewise.
1603	* testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1604	Likewise.
1605	* testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1606	Likewise.
1607	* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1608	Likewise.
1609	* testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1610	Likewise.
1611	* testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
1612	Likewise.
1613	* testsuite/21_strings/basic_string_view/literals/types.cc:
1614	Likewise.
1615	* testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
1616	Likewise.
1617	* testsuite/21_strings/basic_string_view/literals/values.cc:
1618	Likewise.
1619	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1620	Likewise.
1621	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1622	Likewise.
1623	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1624	Likewise.
1625	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1626	Likewise.
1627	* testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1628	Likewise.
1629	* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1630	Likewise.
1631	* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1632	Likewise.
1633	* testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1634	Likewise.
1635	* testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1636	Likewise.
1637	* testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1638	Likewise.
1639	* testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
1640	Likewise.
1641	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1642	Likewise.
1643	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1644	Likewise.
1645	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1646	Likewise.
1647	* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1648	Likewise.
1649	* testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
1650	Likewise.
1651	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1652	Likewise.
1653	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
1654	Likewise.
1655	* testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1656	Likewise.
1657	* testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1658	Likewise.
1659	* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1660	Likewise.
1661	* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1662	Likewise.
1663	* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1664	Likewise.
1665	* testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1666	Likewise.
1667	* testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
1668	Likewise.
1669	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1670	Likewise.
1671	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1672	Likewise.
1673	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1674	Likewise.
1675	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1676	Likewise.
1677	* testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1678	Likewise.
1679	* testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1680	Likewise.
1681	* testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1682	Likewise.
1683	* testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
1684	Likewise.
1685	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1686	Likewise.
1687	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1688	Likewise.
1689	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1690	Likewise.
1691	* testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1692	Likewise.
1693	* testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1694	Likewise.
1695	* testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
1696	Likewise.
1697	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1698	Likewise.
1699	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
1700	Likewise.
1701	* testsuite/21_strings/basic_string_view/operators/char/2.cc:
1702	Likewise.
1703	* testsuite/21_strings/basic_string_view/operators/char/89446.cc:
1704	Likewise.
1705	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1706	Likewise.
1707	* testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
1708	Likewise.
1709	* testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1710	Likewise.
1711	* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1712	Likewise.
1713	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1714	Likewise.
1715	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1716	Likewise.
1717	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1718	Likewise.
1719	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1720	Likewise.
1721	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
1722	Likewise.
1723	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1724	Likewise.
1725	* testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
1726	Likewise.
1727	* testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1728	Likewise.
1729	* testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1730	* testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1731	* testsuite/21_strings/char_traits/requirements/char/99181.cc:
1732	Likewise.
1733	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1734
17352021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1736
1737	Backported from master:
1738	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1739
1740	* testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
1741	from dg-options directive.
1742	* testsuite/20_util/memory_resource/2.cc: Likewise.
1743	* testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
1744	* testsuite/20_util/monotonic_buffer_resource/93208.cc:
1745	Likewise.
1746	* testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1747	Likewise.
1748	* testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
1749	Likewise.
1750	* testsuite/20_util/monotonic_buffer_resource/release.cc:
1751	Likewise.
1752	* testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
1753	Likewise.
1754	* testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
1755	* testsuite/20_util/polymorphic_allocator/construct_pair.cc:
1756	Likewise.
1757	* testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
1758	* testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
1759	* testsuite/20_util/synchronized_pool_resource/allocate.cc:
1760	Likewise.
1761	* testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
1762	Likewise.
1763	* testsuite/20_util/synchronized_pool_resource/cons.cc:
1764	Likewise.
1765	* testsuite/20_util/synchronized_pool_resource/cons_single.cc:
1766	Likewise.
1767	* testsuite/20_util/synchronized_pool_resource/is_equal.cc:
1768	Likewise.
1769	* testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
1770	Likewise.
1771	* testsuite/20_util/synchronized_pool_resource/options.cc:
1772	Likewise.
1773	* testsuite/20_util/synchronized_pool_resource/release.cc:
1774	Likewise.
1775	* testsuite/20_util/synchronized_pool_resource/release_single.cc:
1776	Likewise.
1777	* testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
1778	Likewise.
1779	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1780	Likewise.
1781	* testsuite/20_util/unsynchronized_pool_resource/cons.cc:
1782	Likewise.
1783	* testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
1784	Likewise.
1785	* testsuite/20_util/unsynchronized_pool_resource/options.cc:
1786	Likewise.
1787	* testsuite/20_util/unsynchronized_pool_resource/release.cc:
1788	Likewise.
1789	* testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
1790	Likewise.
1791	* testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
1792	* testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
1793	Likewise.
1794	* testsuite/23_containers/forward_list/pmr_typedefs.cc:
1795	Likewise.
1796	* testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
1797	Likewise.
1798	* testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
1799	* testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
1800	* testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
1801	* testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
1802	* testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
1803	* testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
1804	Likewise.
1805	* testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
1806	* testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
1807	Likewise.
1808	* testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
1809	* testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
1810	* testsuite/23_containers/unordered_map/pmr_typedefs.cc:
1811	Likewise.
1812	* testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
1813	Likewise.
1814	* testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
1815	Likewise.
1816	* testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
1817	Likewise.
1818	* testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
1819	Likewise.
1820	* testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
1821	Likewise.
1822	* testsuite/23_containers/unordered_set/pmr_typedefs.cc:
1823	Likewise.
1824	* testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
1825	Likewise.
1826	* testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
1827	* testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
1828	Likewise.
1829	* testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
1830
18312021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1832
1833	Backported from master:
1834	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1835
1836	* testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
1837	dg-options.
1838	* testsuite/29_atomics/atomic/is_always_lock_free.cc:
1839	* testsuite/29_atomics/atomic/requirements/typedefs.cc:
1840	* testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
1841	* testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
1842	* testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1843	* testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1844	* testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1845	* testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1846	Likewise.
1847	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
1848	Likewise.
1849	* testsuite/30_threads/shared_lock/70766.cc: Likewise.
1850	* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
1851	* testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
1852	Likewise.
1853	* testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
1854	* testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
1855	Likewise.
1856	* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
1857	* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
1858	* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
1859	* testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
1860
18612021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1862
1863	Backported from master:
1864	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1865
1866	* testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
1867	dg-options directive.
1868	* testsuite/20_util/any/assign/2.cc: Likewise.
1869	* testsuite/20_util/any/assign/emplace.cc: Likewise.
1870	* testsuite/20_util/any/assign/exception.cc: Likewise.
1871	* testsuite/20_util/any/assign/self.cc: Likewise.
1872	* testsuite/20_util/any/cons/1.cc: Likewise.
1873	* testsuite/20_util/any/cons/2.cc: Likewise.
1874	* testsuite/20_util/any/cons/90415.cc: Likewise.
1875	* testsuite/20_util/any/cons/92156.cc: Likewise.
1876	* testsuite/20_util/any/cons/aligned.cc: Likewise.
1877	* testsuite/20_util/any/cons/explicit.cc: Likewise.
1878	* testsuite/20_util/any/cons/in_place.cc: Likewise.
1879	* testsuite/20_util/any/cons/nontrivial.cc: Likewise.
1880	* testsuite/20_util/any/make_any.cc: Likewise.
1881	* testsuite/20_util/any/misc/any_cast.cc: Likewise.
1882	* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
1883	* testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
1884	* testsuite/20_util/any/misc/swap.cc: Likewise.
1885	* testsuite/20_util/any/modifiers/1.cc: Likewise.
1886	* testsuite/20_util/any/modifiers/83658.cc: Likewise.
1887	* testsuite/20_util/any/modifiers/92156.cc: Likewise.
1888	* testsuite/20_util/any/observers/type.cc: Likewise.
1889	* testsuite/20_util/any/requirements.cc: Likewise.
1890	* testsuite/20_util/any/typedefs.cc: Likewise.
1891	* testsuite/20_util/optional/77288.cc: Likewise.
1892	* testsuite/20_util/optional/84601.cc: Likewise.
1893	* testsuite/20_util/optional/assignment/1.cc: Likewise.
1894	* testsuite/20_util/optional/assignment/2.cc: Likewise.
1895	* testsuite/20_util/optional/assignment/3.cc: Likewise.
1896	* testsuite/20_util/optional/assignment/4.cc: Likewise.
1897	* testsuite/20_util/optional/assignment/5.cc: Likewise.
1898	* testsuite/20_util/optional/assignment/6.cc: Likewise.
1899	* testsuite/20_util/optional/assignment/7.cc: Likewise.
1900	* testsuite/20_util/optional/assignment/8.cc: Likewise.
1901	* testsuite/20_util/optional/assignment/9.cc: Likewise.
1902	* testsuite/20_util/optional/bad_access.cc: Likewise.
1903	* testsuite/20_util/optional/cons/77727.cc: Likewise.
1904	* testsuite/20_util/optional/cons/85642.cc: Likewise.
1905	* testsuite/20_util/optional/cons/copy.cc: Likewise.
1906	* testsuite/20_util/optional/cons/deduction.cc: Likewise.
1907	* testsuite/20_util/optional/cons/default.cc: Likewise.
1908	* testsuite/20_util/optional/cons/move.cc: Likewise.
1909	* testsuite/20_util/optional/cons/trivial.cc: Likewise.
1910	* testsuite/20_util/optional/cons/value.cc: Likewise.
1911	* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
1912	* testsuite/20_util/optional/constexpr/cons/default.cc:
1913	Likewise.
1914	* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
1915	* testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
1916	* testsuite/20_util/optional/constexpr/make_optional.cc:
1917	Likewise.
1918	* testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
1919	* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
1920	* testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
1921	* testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
1922	* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
1923	* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
1924	* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
1925	* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
1926	* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
1927	* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1928	* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
1929	* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
1930	* testsuite/20_util/optional/hash.cc: Likewise.
1931	* testsuite/20_util/optional/in_place.cc: Likewise.
1932	* testsuite/20_util/optional/make_optional.cc: Likewise.
1933	* testsuite/20_util/optional/nullopt.cc: Likewise.
1934	* testsuite/20_util/optional/observers/1.cc: Likewise.
1935	* testsuite/20_util/optional/observers/2.cc: Likewise.
1936	* testsuite/20_util/optional/observers/3.cc: Likewise.
1937	* testsuite/20_util/optional/observers/4.cc: Likewise.
1938	* testsuite/20_util/optional/observers/5.cc: Likewise.
1939	* testsuite/20_util/optional/observers/6.cc: Likewise.
1940	* testsuite/20_util/optional/relops/1.cc: Likewise.
1941	* testsuite/20_util/optional/relops/2.cc: Likewise.
1942	* testsuite/20_util/optional/relops/3.cc: Likewise.
1943	* testsuite/20_util/optional/relops/4.cc: Likewise.
1944	* testsuite/20_util/optional/relops/5.cc: Likewise.
1945	* testsuite/20_util/optional/relops/6.cc: Likewise.
1946	* testsuite/20_util/optional/relops/7.cc: Likewise.
1947	* testsuite/20_util/optional/requirements.cc: Likewise.
1948	* testsuite/20_util/optional/swap/1.cc: Likewise.
1949	* testsuite/20_util/optional/swap/2.cc: Likewise.
1950	* testsuite/20_util/optional/typedefs.cc: Likewise.
1951	* testsuite/20_util/variant/80165.cc: Likewise.
1952	* testsuite/20_util/variant/85183.cc: Likewise.
1953	* testsuite/20_util/variant/86874.cc: Likewise.
1954	* testsuite/20_util/variant/87431.cc: Likewise.
1955	* testsuite/20_util/variant/87619.cc: Likewise.
1956	* testsuite/20_util/variant/91807.cc: Likewise.
1957	* testsuite/20_util/variant/any.cc: Likewise.
1958	* testsuite/20_util/variant/compile.cc: Likewise.
1959	* testsuite/20_util/variant/deduction.cc: Likewise.
1960	* testsuite/20_util/variant/exception_safety.cc: Likewise.
1961	* testsuite/20_util/variant/hash.cc: Likewise.
1962	* testsuite/20_util/variant/index_type.cc: Likewise.
1963	* testsuite/20_util/variant/relops/89851.cc: Likewise.
1964	* testsuite/20_util/variant/relops/90008.cc: Likewise.
1965	* testsuite/20_util/variant/run.cc: Likewise.
1966	* testsuite/20_util/variant/visit.cc: Likewise.
1967
19682021-05-11  Jonathan Wakely  <jwakely@redhat.com>
1969
1970	Backported from master:
1971	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
1972
1973	* testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
1974	-std=gnu++17 from dg-options directive.
1975	* testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
1976	* testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
1977	* testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
1978	* testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
1979	* testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
1980	* testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
1981	* testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
1982	* testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
1983	Likewise.
1984	* testsuite/27_io/filesystem/file_status/1.cc: Likewise.
1985	* testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
1986	* testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
1987	* testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
1988	* testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
1989	* testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1990	Likewise.
1991	* testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
1992	* testsuite/27_io/filesystem/iterators/recursion_pending.cc:
1993	Likewise.
1994	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1995	Likewise.
1996	* testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
1997	* testsuite/27_io/filesystem/operations/all.cc: Likewise.
1998	* testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
1999	* testsuite/27_io/filesystem/operations/copy.cc: Likewise.
2000	* testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
2001	* testsuite/27_io/filesystem/operations/create_directories.cc:
2002	Likewise.
2003	* testsuite/27_io/filesystem/operations/create_directory.cc:
2004	Likewise.
2005	* testsuite/27_io/filesystem/operations/create_symlink.cc:
2006	Likewise.
2007	* testsuite/27_io/filesystem/operations/current_path.cc:
2008	Likewise.
2009	* testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
2010	* testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2011	* testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
2012	* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2013	* testsuite/27_io/filesystem/operations/last_write_time.cc:
2014	Likewise.
2015	* testsuite/27_io/filesystem/operations/permissions.cc:
2016	Likewise.
2017	* testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
2018	* testsuite/27_io/filesystem/operations/read_symlink.cc:
2019	Likewise.
2020	* testsuite/27_io/filesystem/operations/relative.cc: Likewise.
2021	* testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2022	* testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2023	* testsuite/27_io/filesystem/operations/rename.cc: Likewise.
2024	* testsuite/27_io/filesystem/operations/resize_file.cc:
2025	Likewise.
2026	* testsuite/27_io/filesystem/operations/space.cc: Likewise.
2027	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
2028	* testsuite/27_io/filesystem/operations/symlink_status.cc:
2029	Likewise.
2030	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2031	Likewise.
2032	* testsuite/27_io/filesystem/operations/weakly_canonical.cc:
2033	Likewise.
2034	* testsuite/27_io/filesystem/path/append/path.cc: Likewise.
2035	* testsuite/27_io/filesystem/path/append/source.cc: Likewise.
2036	* testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
2037	* testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
2038	* testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
2039	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
2040	* testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
2041	* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
2042	* testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
2043	* testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
2044	* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
2045	* testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
2046	* testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
2047	* testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
2048	* testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
2049	* testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
2050	* testsuite/27_io/filesystem/path/construct/default.cc:
2051	Likewise.
2052	* testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
2053	* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
2054	* testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
2055	* testsuite/27_io/filesystem/path/construct/string_view.cc:
2056	Likewise.
2057	* testsuite/27_io/filesystem/path/decompose/extension.cc:
2058	Likewise.
2059	* testsuite/27_io/filesystem/path/decompose/filename.cc:
2060	Likewise.
2061	* testsuite/27_io/filesystem/path/decompose/parent_path.cc:
2062	Likewise.
2063	* testsuite/27_io/filesystem/path/decompose/relative_path.cc:
2064	Likewise.
2065	* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
2066	Likewise.
2067	* testsuite/27_io/filesystem/path/decompose/root_name.cc:
2068	Likewise.
2069	* testsuite/27_io/filesystem/path/decompose/root_path.cc:
2070	Likewise.
2071	* testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
2072	* testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
2073	Likewise.
2074	* testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
2075	* testsuite/27_io/filesystem/path/generation/normal.cc:
2076	Likewise.
2077	* testsuite/27_io/filesystem/path/generation/normal2.cc:
2078	Likewise.
2079	* testsuite/27_io/filesystem/path/generation/proximate.cc:
2080	Likewise.
2081	* testsuite/27_io/filesystem/path/generation/relative.cc:
2082	Likewise.
2083	* testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
2084	* testsuite/27_io/filesystem/path/generic/generic_string.cc:
2085	Likewise.
2086	* testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
2087	* testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
2088	* testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2089	* testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
2090	* testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
2091	* testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
2092	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
2093	Likewise.
2094	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
2095	Likewise.
2096	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
2097	Likewise.
2098	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
2099	Likewise.
2100	* testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
2101	* testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
2102	* testsuite/27_io/filesystem/path/native/string-char8_t.cc:
2103	Likewise.
2104	* testsuite/27_io/filesystem/path/native/string.cc: Likewise.
2105	* testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
2106	* testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
2107	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
2108	Likewise.
2109	* testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2110	* testsuite/27_io/filesystem/path/query/empty_neg.cc:
2111	* testsuite/27_io/filesystem/path/query/has_extension.cc:
2112	Likewise.
2113	* testsuite/27_io/filesystem/path/query/has_filename.cc:
2114	Likewise.
2115	* testsuite/27_io/filesystem/path/query/has_parent_path.cc:
2116	Likewise.
2117	* testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2118	Likewise.
2119	* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2120	Likewise.
2121	* testsuite/27_io/filesystem/path/query/has_root_name.cc:
2122	Likewise.
2123	* testsuite/27_io/filesystem/path/query/has_root_path.cc:
2124	Likewise.
2125	* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2126	* testsuite/27_io/filesystem/path/query/is_absolute.cc:
2127	Likewise.
2128	* testsuite/27_io/filesystem/path/query/is_relative.cc:
2129	Likewise.
2130	* testsuite/experimental/filesystem/path/construct/string_view.cc:
2131	Likewise.
2132
21332021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2134
2135	Backported from master:
2136	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2137
2138	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
2139	Remove -std=gnu++17 from dg-options.
2140	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
2141	Likewise.
2142	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
2143	Likewise.
2144	* testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
2145	Likewise.
2146	* testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
2147	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
2148	Likewise.
2149	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
2150	Likewise.
2151	* testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
2152	Likewise.
2153	* testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
2154	Likewise.
2155	* testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
2156	Likewise.
2157	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
2158	Likewise.
2159	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
2160	Likewise.
2161	* testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
2162	Likewise.
2163	* testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
2164	Likewise.
2165	* testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
2166	Likewise.
2167	* testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
2168	Likewise.
2169	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
2170	Likewise.
2171	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
2172	Likewise.
2173	* testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
2174	Likewise.
2175	* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
2176	Likewise.
2177	* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
2178	Likewise.
2179	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
2180	Likewise.
2181	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
2182	Likewise.
2183	* testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
2184	Likewise.
2185	* testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
2186	Likewise.
2187	* testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
2188	Likewise.
2189	* testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
2190	Likewise.
2191	* testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
2192	Likewise.
2193	* testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
2194	Likewise.
2195	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2196	Likewise.
2197	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
2198	Likewise.
2199	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
2200	Likewise.
2201	* testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
2202	Likewise.
2203	* testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
2204	Likewise.
2205	* testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
2206	Likewise.
2207	* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
2208	Likewise.
2209	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
2210	Likewise.
2211	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
2212	Likewise.
2213	* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2214	Likewise.
2215	* testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
2216	Likewise.
2217	* testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
2218	* testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
2219	Likewise.
2220	* testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
2221	Likewise.
2222	* testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
2223	Likewise.
2224	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
2225	Likewise.
2226	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
2227	Likewise.
2228	* testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
2229	* testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
2230	* testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
2231	* testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
2232	* testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
2233	* testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
2234	* testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
2235	* testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
2236	Likewise.
2237	* testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
2238	* testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
2239	* testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
2240	Likewise.
2241	* testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
2242	Likewise.
2243
22442021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2245
2246	Backported from master:
2247	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2248
2249	* testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
2250	for additional errors in C++20.
2251	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2252	Likewise.
2253	* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2254	* testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2255
22562021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2257
2258	Backported from master:
2259	2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2260
2261	* testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
2262	clash with std::any.
2263
22642021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2265
2266	Backported from master:
2267	2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2268
2269	* include/std/type_traits (remove_cvref_t): Define in terms of
2270	remove_cvref.
2271	* testsuite/20_util/remove_cvref/value.cc: Check alias.
2272
22732021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2274
2275	Backported from master:
2276	2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2277
2278	PR libstdc++/99006
2279	* include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
2280	is not an array type.
2281	* include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
2282	* testsuite/20_util/shared_ptr/creation/99006.cc: New test.
2283
22842021-05-11  Philippe Blain  <levraiphilippeblain@gmail.com>
2285
2286	Backported from master:
2287	2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
2288		    Jonathan Wakely  <jwakely@redhat.com>
2289
2290	PR libstdc++/99453
2291	* python/Makefile.am: Install libstdc++*-gdb.py more robustly.
2292	* python/Makefile.in: Regenerate.
2293
22942021-05-11  Patrick Palka  <ppalka@redhat.com>
2295
2296	Backported from master:
2297	2021-05-11  Patrick Palka  <ppalka@redhat.com>
2298
2299	* src/c++17/ryu/LOCAL_PATCHES: Update.
2300	* src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
2301	Remove declarations for never-defined functions.
2302	* testsuite/20_util/to_chars/4.cc: New test.
2303
23042021-05-07  Jonathan Wakely  <jwakely@redhat.com>
2305
2306	Backported from master:
2307	2021-05-07  Jonathan Wakely  <jwakely@redhat.com>
2308
2309	* include/std/istream (__rvalue_stream_extraction_t): Replace
2310	use of __rval_streamable.
2311	* include/std/ostream (__rvalue_stream_insertion_t): Likewise.
2312	(__rval_streamable): Remove.
2313	(_Require_derived_from_ios_base, __derived_from_ios_base): New
2314	helper for checking constraints.
2315	* testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
2316	reference to the wrong subclause of the standard.
2317	* testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2318	Likewise.
2319	* testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2320	Likewise.
2321	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2322	Likewise.
2323	* testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
2324	New test.
2325	* testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
2326	errors.
2327
23282021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2329
2330	Backported from master:
2331	2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
2332
2333	* include/std/istream (operator>>(Istream&&, x&)): Simplify, as
2334	per LWG 1203.
2335	* include/std/ostream (operator<<(Ostream&&, const x&)):
2336	Likewise.
2337	* testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
2338	Adjust dg-error pattern.
2339	* testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
2340	Likewise.
2341	* testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
2342	is_extractable trait to replace std::__is_extractable. Make it
2343	work with rvalue streams as well as lvalues, to replace f() and
2344	g() helper functions.
2345	* testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2346	Likewise.
2347	* testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2348	Define is_insertable trait to replace std::__is_insertable. Make
2349	it work with rvalue streams as well as lvalues, to replace f()
2350	and g() helper functions.
2351	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2352	Likewise.
2353	* testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
2354	errors from new constraints.
2355	* testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
2356	which are no longer expected to compile.
2357	* testsuite/27_io/rvalue_streams.cc: Adjust existing test.
2358	Verify LWG 1203 changes.
2359
23602021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2361
2362	Backported from master:
2363	2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
2364
2365	* testsuite/20_util/function_objects/invoke/3.cc: Check feature
2366	test macro.
2367	* testsuite/20_util/function_objects/invoke/version.cc: New test.
2368
23692021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2370
2371	Backported from master:
2372	2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2373
2374	* include/std/future (promise::set_value): Check for existence
2375	of shared state before dereferncing it.
2376	(promise::set_exception, promise::set_value_at_thread_exit)
2377	(promise::set_exception_at_thread_exit): Likewise.
2378	(promise<R&>::set_value, promise<R&>::set_exception)
2379	(promise<R&>::set_value_at_thread_exit)
2380	(promise<R&>::set_exception_at_thread_exit): Likewise.
2381	(promise<void>::set_value, promise<void>::set_exception)
2382	(promise<void>::set_value_at_thread_exit)
2383	(promise<void>::set_exception_at_thread_exit): Likewise.
2384	* testsuite/30_threads/promise/members/at_thread_exit2.cc:
2385	Remove unused variable.
2386
23872021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2388
2389	Backported from master:
2390	2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2391
2392	* include/bits/basic_string.h (basic_string(const CharT*, const A&)):
2393	Do not do arithmetic on null pointer.
2394
23952021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2396
2397	Backported from master:
2398	2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2399
2400	* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
2401	(find_key_pointer(key_const_reference, false_type))
2402	(find_key_pointer(key_const_reference, true_type)): Do not
2403	dereference null pointer.
2404
24052021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2406
2407	Backported from master:
2408	2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2409
2410	* testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
2411	overflow.
2412	* testsuite/24_iterators/reverse_iterator/2.cc: Do not add
2413	non-zero value to null pointer.
2414	* testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
2415	Use past-the-end iterator for result.
2416	* testsuite/25_algorithms/move_backward/69478.cc: Likewise.
2417	* testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2418
24192021-05-06  Jonathan Wakely  <jwakely@redhat.com>
2420
2421	Backported from master:
2422	2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
2423
2424	PR libstdc++/100384
2425	* include/std/variant (__get_t): New alias template yielding the
2426	return type of std::get<N> on a variant.
2427	(__visit_result_t): New alias template yielding the result of
2428	std::visit.
2429	(__same_types): Move into namespace __detail::__variant.
2430	(__check_visitor_results): Likewise. Use __invoke_result_t and
2431	__get_t.
2432	(__check_visitor_result): Remove.
2433	(visit): Use __visit_result_t for return type.
2434	* testsuite/20_util/variant/100384.cc: New test.
2435
24362021-05-05  Patrick Palka  <ppalka@redhat.com>
2437
2438	Backported from master:
2439	2021-05-05  Patrick Palka  <ppalka@redhat.com>
2440
2441	* include/std/ranges (transform_view::_Iterator::iter_swap):
2442	Remove as per LWG 3520.
2443	(join_view::_Iterator::iter_swap): Add indirectly_swappable
2444	constraint as per LWG 3517.
2445
24462021-05-04  Patrick Palka  <ppalka@redhat.com>
2447
2448	Backported from master:
2449	2021-04-30  Patrick Palka  <ppalka@redhat.com>
2450
2451	* include/std/ranges (split_view::_InnerIter::operator++):
2452	Depend on _Base instead of _Vp directly, as per LWG 3532.
2453
24542021-04-30  Jonathan Wakely  <jwakely@redhat.com>
2455
2456	Backported from master:
2457	2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
2458
2459	* include/bits/basic_string.h (__cpp_lib_constexpr_string):
2460	Only define for C++17 and later.
2461	* include/std/version (__cpp_lib_semaphore): Fix condition
2462	to match the one in <semaphore>.
2463
24642021-04-29  Jonathan Wakely  <jwakely@redhat.com>
2465
2466	Backported from master:
2467	2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
2468
2469	PR libstdc++/100259
2470	* include/experimental/internet (net::ip::make_error_code)
2471	(net::ip::make_error_condition, net::ip::make_network_v4)
2472	(net::ip::operator==(const udp&, const udp&)): Add 'inline'.
2473
24742021-04-29  Jonathan Wakely  <jwakely@redhat.com>
2475
2476	Backported from master:
2477	2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
2478
2479	* include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
2480	* include/std/version (__cpp_lib_constexpr_string): Define.
2481	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
2482	Check for __cpp_lib_constexpr_string.
2483	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
2484	Likewise.
2485	* testsuite/21_strings/char_traits/requirements/version.cc: New test.
2486
24872021-04-28  Jonathan Wakely  <jwakely@redhat.com>
2488
2489	Backported from master:
2490	2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
2491
2492	PR libstdc++/100298
2493	* include/bits/std_thread.h (thread::hardware_concurrency): Add
2494	missing noexcept to inline definition for non-gthreads targets.
2495
24962021-04-28  Jakub Jelinek  <jakub@redhat.com>
2497
2498	Revert:
2499	2021-04-22  Jakub Jelinek  <jakub@redhat.com>
2500
2501	PR target/100182
2502	* testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2503	ia32.
2504	* testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2505	ia32.
2506
25072021-04-27  Patrick Palka  <ppalka@redhat.com>
2508
2509	Backported from master:
2510	2021-04-27  Patrick Palka  <ppalka@redhat.com>
2511
2512	PR libstdc++/100290
2513	* include/std/ranges (join_view::_Iterator::operator++): Correct
2514	the return type of the lambda to avoid returning a copy of
2515	_M_parent->_M_inner.
2516	* testsuite/std/ranges/adaptors/join.cc (test10): New test.
2517
25182021-04-27  Release Manager
2519
2520	* GCC 11.1.0 released.
2521
25222021-04-23  Jonathan Wakely  <jwakely@redhat.com>
2523
2524	Backported from master:
2525	2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2526
2527	* include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
2528	Handle system_clock as well as steady_clock.
2529	* testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
2530	* testsuite/30_threads/semaphore/try_acquire_until.cc:
2531	Re-enable.
2532
25332021-04-23  Jonathan Wakely  <jwakely@redhat.com>
2534
2535	Backported from master:
2536	2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2537
2538	* testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
2539	options for libatomic.
2540
25412021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
2542
2543	Backported from master:
2544	2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
2545
2546	* include/bits/atomic_wait.h: Always notify waiters in the
2547	case of 'bare' address notification.
2548
25492021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2550
2551	Backported from master:
2552	2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
2553
2554	PR libstdc++/100179
2555	* include/bits/semaphore_base.h: Remove #error.
2556	* include/std/semaphore: Do not define anything unless one of
2557	the implementations is available.
2558
25592021-04-22  Jakub Jelinek  <jakub@redhat.com>
2560
2561	Backported from master:
2562	2021-04-22  Jakub Jelinek  <jakub@redhat.com>
2563
2564	PR target/100182
2565	* testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2566	ia32.
2567	* testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2568	ia32.
2569
25702021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
2571
2572	Backported from master:
2573	2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
2574
2575	* include/bits/semaphore_base.h: Always reload __old in
2576	__atomic_semaphore::_S_do_try_acquire().
2577	* testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2578	re-enable testcase.
2579
25802021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
2581
2582	Backported from master:
2583	2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
2584
2585	* include/bits/semaphore_base.h: Add missing _M_try_acquire()
2586	member to __platform_wait.
2587
25882021-04-21  Jonathan Wakely  <jwakely@redhat.com>
2589
2590	Backported from master:
2591	2021-04-21  Jonathan Wakely  <jwakely@redhat.com>
2592
2593	* include/std/latch: Replace tab characters in license text.
2594	* include/std/semaphore: Likewise.
2595
25962021-04-21  Jakub Jelinek  <jakub@redhat.com>
2597
2598	Backported from master:
2599	2021-04-21  Jakub Jelinek  <jakub@redhat.com>
2600
2601	PR libstdc++/100164
2602	* acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
2603	rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
2604	* configure: Regenerated.
2605	* config.h.in: Regenerated.
2606
26072021-04-20  Jonathan Wakely  <jwakely@redhat.com>
2608
2609	Backported from master:
2610	2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
2611
2612	* testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
2613	test for targets not using futexes for semaphores.
2614	* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
2615	* testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2616	Disable for all targets.
2617
26182021-04-20  Thomas Rodgers  <trodgers@redhat.com>
2619
2620	Backported from master:
2621	2021-04-20  Thomas Rodgers  <trodgers@redhat.com>
2622
2623	* include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
2624	* include/Makefile.in: Regenerate.
2625	* include/bits/this_thread_sleep.h: New file.
2626	* include/bits/atomic_base.h: Adjust all calls
2627	to __atomic_wait/__atomic_notify for new call signatures.
2628	* include/bits/atomic_timed_wait.h: Extensive rewrite.
2629	* include/bits/atomic_wait.h: Likewise.
2630	* include/bits/semaphore_base.h: Adjust all calls
2631	to __atomic_wait/__atomic_notify for new call signatures.
2632	* include/std/atomic: Likewise.
2633	* include/std/barrier: Likewise.
2634	* include/std/latch: Likewise.
2635	* include/std/semaphore: Likewise.
2636	* include/std/thread (this_thread::sleep_for)
2637	(this_thread::sleep_until): Move to new header.
2638	* testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
2639	test.
2640	* testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
2641	* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
2642	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
2643	* testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
2644	* testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2645	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
2646
26472021-04-20  Patrick Palka  <ppalka@redhat.com>
2648
2649	Backported from master:
2650	2021-04-20  Patrick Palka  <ppalka@redhat.com>
2651
2652	PR libstdc++/95983
2653	* include/bits/stl_iterator.h (__detail::__move_iter_cat):
2654	Define.
2655	(move_iterator): Derive from the above in C++20 in order to
2656	conditionally define iterator_category as per P2259.
2657	(move_iterator::__base_cat): No longer used, so remove.
2658	(move_iterator::iterator_category): Remove in C++20.
2659	(__detail::__common_iter_use_postfix_proxy): Define.
2660	(common_iterator::_Proxy): Rename to ...
2661	(common_iterator:__arrow_proxy): ... this.
2662	(common_iterator::__postfix_proxy): Define as per P2259.
2663	(common_iterator::operator->): Adjust.
2664	(common_iterator::operator++): Adjust as per P2259.
2665	(iterator_traits<common_iterator>::_S_iter_cat): Define.
2666	(iterator_traits<common_iterator>::iterator_category): Change as
2667	per P2259.
2668	(__detail::__counted_iter_value_type): Define.
2669	(__detail::__counted_iter_concept): Define.
2670	(__detail::__counted_iter_cat): Define.
2671	(counted_iterator): Derive from the above three classes in order
2672	to conditionally define value_type, iterator_concept and
2673	iterator category respectively as per P2259.
2674	(counted_iterator::operator->): Define as per P2259.
2675	(incrementable_traits<counted_iterator>): Remove as per P2259.
2676	(iterator_traits<counted_iterator>): Adjust as per P2259.
2677	* include/std/ranges (__detail::__iota_view_iter_cat): Define.
2678	(iota_view::_Iterator): Derive from the above in order to
2679	conditionally define iterator_category as per P2259.
2680	(iota_view::_S_iter_cat): Rename to ...
2681	(iota_view::_S_iter_concept): ... this.
2682	(iota_view::iterator_concept): Use it to apply LWG 3291 changes.
2683	(iota_view::iterator_category): Remove.
2684	(__detail::__filter_view_iter_cat): Define.
2685	(filter_view::_Iterator): Derive from the above in order to
2686	conditionally define iterator_category as per P2259.
2687	(filter_view::_Iterator): Move to struct __filter_view_iter_cat.
2688	(filter_view::_Iterator::iterator_category): Remove.
2689	(transform_view::_Base): Define.
2690	(transform_view::__iter_cat): Define.
2691	(transform_view::_Iterator): Derive from the above in order to
2692	conditionally define iterator_category as per P2259.
2693	(transform_view::_Iterator::_Base): Just alias
2694	transform_view::_Base.
2695	(transform_view::_Iterator::_S_iter_cat): Move to struct
2696	transform_view::__iter_cat.
2697	(transform_view::_Iterator::iterator_category): Remove.
2698	(transform_view::_Sentinel::_Base): Just alias
2699	transform_view::_Base.
2700	(join_view::_Base): Define.
2701	(join_view::_Outer_iter): Define.
2702	(join_view::_Inner_iter): Define.
2703	(join_view::_S_ref_is_glvalue): Define.
2704	(join_view::__iter_cat): Define.
2705	(join_view::_Iterator): Derive from it in order to conditionally
2706	define iterator_category as per P2259.
2707	(join_view::_Iterator::_Base): Just alias join_view::_Base.
2708	(join_view::_Iterator::_S_ref_is_glvalue): Just alias
2709	join_view::_S_ref_is_glvalue.
2710	(join_view::_Iterator::_S_iter_cat): Move to struct
2711	transform_view::__iter_cat.
2712	(join_view::_Iterator::_Outer_iter): Just alias
2713	join_view::_Outer_iter.
2714	(join_view::_Iterator::_Inner_iter): Just alias
2715	join_view::_Inner_iter.
2716	(join_view::_Iterator::iterator_category): Remove.
2717	(join_view::_Sentinel::_Base): Just alias join_view::_Base.
2718	(__detail::__split_view_outer_iter_cat): Define.
2719	(__detail::__split_view_inner_iter_cat): Define.
2720	(split_view::_Base): Define.
2721	(split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
2722	in order to conditionally define iterator_category as per P2259.
2723	(split_view::_Outer_iter::iterator_category): Remove.
2724	(split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
2725	in order to conditionally define iterator_category as per P2259.
2726	(split_view::_Inner_iter::_S_iter_cat): Move to
2727	__split_view_inner_iter_cat.
2728	(split_view::_Inner_iter::iterator_category): Remove.
2729	(elements_view::_Base): Define.
2730	(elements_view::__iter_cat): Define.
2731	(elements_view::_Iterator): Derive from the above in order to
2732	conditionall define iterator_category as per P2259.
2733	(elements_view::_Iterator::_Base): Just alias
2734	elements_view::_Base.
2735	(elements_view::_Iterator::_S_iter_concept)
2736	(elements_view::_Iterator::iterator_concept): Define as per
2737	P2259.
2738	(elements_view::_Iterator::iterator_category): Remove.
2739	(elements_view::_Sentinel::_Base): Just alias
2740	elements_view::_Base.
2741	* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2742	Adjust constraints on iterator_traits<counted_iterator>.
2743	* testsuite/std/ranges/p2259.cc: New test.
2744
27452021-04-20  Jonathan Wakely  <jwakely@redhat.com>
2746
2747	Backported from master:
2748	2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
2749
2750	PR libstdc++/100146
2751	* include/std/charconv (__cpp_lib_to_chars): Define
2752	conditionally.
2753	* include/std/version (__cpp_lib_to_chars): Likewise..
2754	* testsuite/20_util/from_chars/4.cc: Only check feature test
2755	macro, not _GLIBCXX_HAVE_USELOCALE.
2756	* testsuite/20_util/from_chars/5.cc: Likewise.
2757	* testsuite/20_util/from_chars/6.cc: Likewise.
2758	* testsuite/20_util/to_chars/long_double.cc: Likewise.
2759
27602021-04-20  Jakub Jelinek  <jakub@redhat.com>
2761
2762	Backported from master:
2763	2021-04-20  Jakub Jelinek  <jakub@redhat.com>
2764
2765	* testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
2766	versions with _IEEE128_ substring are found, set ieee_version_found
2767	to true.  Ignore missing symbols with _IEEE128_ in version name if
2768	!ieee_version_found.  Use i->first as version_name instead of
2769	i->second.version_name if the latter is empty.
2770	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2771
27722021-04-19  H.J. Lu  <hjl.tools@gmail.com>
2773
2774	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
2775	Updated.
2776
27772021-04-17  Jakub Jelinek  <jakub@redhat.com>
2778
2779	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2780	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
2781
27822021-04-17  Jakub Jelinek  <jakub@redhat.com>
2783
2784	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2785	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2786	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2787	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2788	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2789	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2790
27912021-04-15  Jonathan Wakely  <jwakely@redhat.com>
2792
2793	* testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
2794	add libatomic options for 32-bit sparc*-*-linux-gnu.
2795
27962021-04-15  Jonathan Wakely  <jwakely@redhat.com>
2797
2798	PR libstdc++/96657
2799	* libsupc++/Makefile.am: Add atomicity.cc here.
2800	* src/c++98/Makefile.am: Remove it from here.
2801	* libsupc++/Makefile.in: Regenerate.
2802	* src/c++98/Makefile.in: Regenerate.
2803	* testsuite/18_support/exception_ptr/96657.cc: New test.
2804
28052021-04-13  Jonathan Wakely  <jwakely@redhat.com>
2806
2807	PR libstdc++/100060
2808	* include/std/bit: Only include <ext/numeric_traits.h> for
2809	hosted build, use <limits> otherwise.
2810
28112021-04-13  Jonathan Wakely  <jwakely@redhat.com>
2812
2813	* doc/xml/manual/backwards_compatibility.xml: Remove porting
2814	notes for libg++ and libstdc++-v2, and bibliography.
2815	* doc/html/*: Regenerated.
2816
28172021-04-12  Jonathan Wakely  <jwakely@redhat.com>
2818
2819	PR libstdc++/100044
2820	* include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
2821	Remove helper concept.
2822	(subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
2823	deduction guides, as per LWG 3404.
2824	* testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
2825	template argument deduction fails.
2826
28272021-04-12  Jonathan Wakely  <jwakely@redhat.com>
2828
2829	* testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
2830	Adjust expected error for C++20 mode.
2831	* testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
2832	Likewise.
2833
28342021-04-12  Jonathan Wakely  <jwakely@redhat.com>
2835
2836	PR libstdc++/99995
2837	* testsuite/17_intro/headers/c++1998/49745.cc: Include all
2838	standard headers and XFAIL for effective-target c++20.
2839
28402021-04-09  François Dumont  <fdumont@gcc.gnu.org>
2841
2842	PR libstdc++/99402
2843	* include/debug/helper_functions.h (__can_advance(_InputIterator,
2844	const std::pair<_Diff, _Distance_precision>&, int)): New.
2845	(__can_advance(const _Safe_iterator<>&,
2846	const std::pair<_Diff, _Distance_precision>&, int)): New.
2847	* include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
2848	use latter.
2849	(__glibcxx_check_can_increment_range): Adapt to use latter.
2850	(__glibcxx_check_can_decrement_range): Likewise.
2851	* include/debug/safe_iterator.h
2852	(_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
2853	int)): New.
2854	(__can_advance(const _Safe_iterator<>&,
2855	const std::pair<_Diff, _Distance_precision>&, int)): New.
2856	* include/debug/safe_iterator.tcc
2857	(_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
2858	int)): New.
2859	(_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
2860	std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
2861	__dp_sign_max_size.
2862	(__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
2863	(__copy_move_backward_a): Likewise.
2864	(__equal_aux): Likewise.
2865	* include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
2866	const std::pair<_Diff, _Distance_precision>&, int)): New.
2867	(__can_advance(const std::move_iterator<>&,
2868	const std::pair<_Diff, _Distance_precision>&, int)): New.
2869	* testsuite/25_algorithms/copy/debug/99402.cc: New test.
2870
28712021-04-09  Jonathan Wakely  <jwakely@redhat.com>
2872
2873	PR libstdc++/99985
2874	* include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
2875	to be a valid constexpr function in C++11.
2876	* testsuite/23_containers/unordered_set/cons/99985.cc: New test.
2877
28782021-04-09  Jonathan Wakely  <jwakely@redhat.com>
2879
2880	* include/bits/fs_fwd.h: Fix doxygen group command.
2881	* include/bits/streambuf_iterator.h: Likewise.
2882	* include/bits/uses_allocator_args.h: Likewise.
2883	* include/std/memory: Likewise.
2884	* include/tr1/complex: Likewise.
2885
28862021-04-08  Jonathan Wakely  <jwakely@redhat.com>
2887
2888	* include/bits/basic_string.h: Tweak doxygen comment.
2889
28902021-04-08  Patrick Palka  <ppalka@redhat.com>
2891
2892	* include/std/ranges (__detail::find): Define.
2893	(split_view::_OuterIter::operator++): Apply proposed resolution
2894	of LWG 3505.
2895	* testsuite/std/ranges/adaptors/split.cc (test10): New test.
2896
28972021-04-08  Patrick Palka  <ppalka@redhat.com>
2898
2899	* include/std/ranges (__detail::find_if): Simplify.
2900	(__detail::find_if_not): Likewise.
2901	(__detail::min): Remove.
2902	(__detail::mismatch): Simplify.
2903	(take_view::size): Use std::min instead of __detail::min.
2904
29052021-04-08  Patrick Palka  <ppalka@redhat.com>
2906
2907	* include/std/ranges (__detail::__returnable_element): New
2908	concept.
2909	(elements_view): Use this concept in its constraints.  Add
2910	missing private access specifier.
2911	(elements_view::_S_get_element): Define as per LWG 3502.
2912	(elements_view::operator*, elements_view::operator[]): Use
2913	_S_get_element.
2914	(elements_view::operator++): Remove unnecessary constraint
2915	as per LWG 3492.
2916	* testsuite/std/ranges/adaptors/elements.cc (test05): New test.
2917
29182021-04-08  Jonathan Wakely  <jwakely@redhat.com>
2919
2920	* doc/Makefile.am (stamp-pdf-doxygen): Also grep for
2921	out-of-memory error in log file.
2922	* doc/Makefile.in: Regenerate.
2923
29242021-04-08  Jonathan Wakely  <jwakely@redhat.com>
2925
2926	* configure: Regenerate.
2927
29282021-04-08  Jonathan Wakely  <jwakely@redhat.com>
2929
2930	* include/bits/random.h: Fix doxygen group commands.
2931	* include/bits/regex_constants.h: Likewise.
2932	* include/tr1/random.h: Likewise.
2933
29342021-04-08  Jonathan Wakely  <jwakely@redhat.com>
2935
2936	* include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
2937	New function to determine noexcept-specifier for move
2938	constructors.
2939	(_Hashtable): Use _S_nothrow_move() on move constructors.
2940	* testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
2941	Correct static assertion message.
2942	* testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
2943	Likewise.
2944	* testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
2945	Likewise.
2946	* testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
2947	Likewise.
2948
29492021-04-08  Patrick Palka  <ppalka@redhat.com>
2950
2951	PR libstdc++/98384
2952	* testsuite/20_util/to_chars/long_double.cc: Don't run the test
2953	on targets without a large long double.  XFAIL the execution on
2954	targets with a non-conforming printf.
2955
29562021-04-08  Patrick Palka  <ppalka@redhat.com>
2957
2958	PR libstdc++/99433
2959	* include/std/ranges (__adaptor::__maybe_refwrap): Remove.
2960	(__adaptor::__adaptor_invocable): New concept.
2961	(__adaptor::__adaptor_partial_app_viable): New concept.
2962	(__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
2963	non-template base class.
2964	(__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
2965	class template.
2966	(__adaptor::_Partial): New class template that represents
2967	partial application of a range adaptor non-closure.
2968	(__adaptor::__pipe_invocable): New concept.
2969	(__adaptor::_Pipe): New class template.
2970	(__detail::__can_ref_view): New concept.
2971	(__detail::__can_subrange): New concept.
2972	(all): Replace the lambda here with ...
2973	(_All): ... this functor.  Add appropriate constraints.
2974	(__detail::__can_filter_view): New concept.
2975	(filter, _Filter): As in all/_All.
2976	(__detail::__can_transform): New concept.
2977	(transform, _Transform): As in all/_All.
2978	(__detail::__can_take_view): New concept.
2979	(take, _Take): As in all/_All.
2980	(__detail::__can_take_while_view): New concept.
2981	(take_while, _TakeWhile): As in all/_All.
2982	(__detail::__can_drop_view): New concept.
2983	(drop, _Drop): As in all/_All.
2984	(__detail::__can_drop_while_view): New concept.
2985	(drop_while, _DropWhile): As in all/_All.
2986	(__detail::__can_join_view): New concept.
2987	(join, _Join): As in all/_All.
2988	(__detail::__can_split_view): New concept.
2989	(split, _Split): As in all/_All.  Rename template parameter
2990	_Fp to _Pattern.
2991	(__detail::__already_common): New concept.
2992	(__detail::__can_common_view): New concept.
2993	(common, _Common): As in all/_All.
2994	(__detail::__can_reverse_view): New concept.
2995	(reverse, _Reverse): As in all/_All.
2996	(__detail::__can_elements_view): New concept.
2997	(elements, _Elements): As in all/_All.
2998	(keys, values): Adjust.
2999	* testsuite/std/ranges/adaptors/99433.cc: New test.
3000	* testsuite/std/ranges/adaptors/all.cc: No longer expect that
3001	adding empty range adaptor closure objects to a pipeline doesn't
3002	increase the size of the pipeline.
3003	(test05): New test.
3004	* testsuite/std/ranges/adaptors/common.cc (test03): New test.
3005	* testsuite/std/ranges/adaptors/drop.cc (test09): New test.
3006	* testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
3007	* testsuite/std/ranges/adaptors/elements.cc (test04): New test.
3008	* testsuite/std/ranges/adaptors/filter.cc (test06): New test.
3009	* testsuite/std/ranges/adaptors/join.cc (test09): New test.
3010	* testsuite/std/ranges/adaptors/p2281.cc: New test.
3011	* testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
3012	* testsuite/std/ranges/adaptors/split.cc (test01, test04):
3013	Adjust.
3014	(test09): New test.
3015	* testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
3016	expected error message.
3017	(test02): Likewise.  Extend test.
3018	* testsuite/std/ranges/adaptors/take.cc (test06): New test.
3019	* testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
3020	* testsuite/std/ranges/adaptors/transform.cc (test07, test08):
3021	New test.
3022
30232021-04-08  Jonathan Wakely  <jwakely@redhat.com>
3024
3025	* include/std/string_view: Adjust Doxygen @file comment.
3026
30272021-04-08  Jonathan Wakely  <jwakely@redhat.com>
3028
3029	* include/std/type_traits (is_scoped_enum<T>): Constrain partial
3030	specialization to not match incomplete enum types. Use a
3031	requires-expression instead of instantiating is_convertible.
3032	(is_scoped_enum<const T>): Add as workaround for PR c++/99968.
3033	* testsuite/20_util/is_scoped_enum/value.cc: Check with
3034	incomplete types and opaque-enum-declarations.
3035
30362021-04-07  Jonathan Wakely  <jwakely@redhat.com>
3037
3038	PR libstdc++/99805
3039	* src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
3040	non-const member on _M_pathname, to avoid copy-on-write.
3041	* testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3042	Check construction from strings that might be shared.
3043
30442021-04-06  Jonathan Wakely  <jwakely@redhat.com>
3045
3046	* include/bits/move.h (forward, move, move_if_noexcept)
3047	(addressof): Add _GLIBCXX_NODISCARD.
3048	* include/bits/ranges_cmp.h (identity::operator()): Add
3049	nodiscard attribute.
3050	* include/c_global/cstddef (to_integer): Likewise.
3051	* include/std/bit (bit_cast): Likewise.
3052	* include/std/utility (as_const, to_underlying): Likewise.
3053
30542021-04-06  Jonathan Wakely  <jwakely@redhat.com>
3055
3056	* include/bits/move.h (forward): Change static_assert message
3057	to be unambiguous about what must be true.
3058	* testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
3059	* testsuite/20_util/forward/f_neg.cc: Likewise.
3060
30612021-04-06  Jonathan Wakely  <jwakely@redhat.com>
3062
3063	* include/bits/alloc_traits.h: Use markdown for code font.
3064	* include/bits/basic_string.h: Fix @param names.
3065	* include/bits/max_size_type.h: Remove period after @file.
3066	* include/bits/regex.h: Fix duplicate @retval names, and rename.
3067	* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
3068	group open to match existing group close.
3069	* include/ext/pb_ds/priority_queue.hpp: Add blank line before group
3070	open.
3071
30722021-04-06  Jonathan Wakely  <jwakely@redhat.com>
3073
3074	* include/bits/atomic_base.h: Fix doxygen group close.
3075	* include/bits/basic_ios.h: Likewise.
3076	* include/bits/forward_list.h: Likewise.
3077	* include/bits/fs_dir.h: Likewise.
3078	* include/bits/fs_ops.h: Likewise.
3079	* include/bits/fs_path.h: Likewise.
3080	* include/bits/functional_hash.h: Likewise.
3081	* include/bits/gslice.h: Likewise.
3082	* include/bits/gslice_array.h: Likewise.
3083	* include/bits/hashtable_policy.h: Likewise.
3084	* include/bits/indirect_array.h: Likewise.
3085	* include/bits/locale_classes.h: Likewise.
3086	* include/bits/locale_facets.h: Likewise.
3087	* include/bits/locale_facets_nonio.h: Likewise.
3088	* include/bits/mask_array.h: Likewise.
3089	* include/bits/refwrap.h: Likewise.
3090	* include/bits/regex.h: Likewise.
3091	* include/bits/regex_automaton.h: Likewise.
3092	* include/bits/regex_compiler.h: Likewise.
3093	* include/bits/regex_constants.h: Likewise.
3094	* include/bits/regex_error.h: Likewise.
3095	* include/bits/regex_executor.h: Likewise.
3096	* include/bits/regex_scanner.h: Likewise.
3097	* include/bits/shared_ptr.h: Likewise.
3098	* include/bits/shared_ptr_atomic.h: Likewise.
3099	* include/bits/shared_ptr_base.h: Likewise.
3100	* include/bits/slice_array.h: Likewise.
3101	* include/bits/specfun.h: Likewise.
3102	* include/bits/std_function.h: Likewise.
3103	* include/bits/std_mutex.h: Likewise.
3104	* include/bits/stl_deque.h: Likewise.
3105	* include/bits/stl_iterator.h: Likewise.
3106	* include/bits/stl_iterator_base_types.h: Likewise.
3107	* include/bits/stl_map.h: Likewise.
3108	* include/bits/stl_multimap.h: Likewise.
3109	* include/bits/stl_multiset.h: Likewise.
3110	* include/bits/stl_numeric.h: Likewise.
3111	* include/bits/stl_pair.h: Likewise.
3112	* include/bits/stl_set.h: Likewise.
3113	* include/bits/stl_uninitialized.h: Likewise.
3114	* include/bits/stream_iterator.h: Likewise.
3115	* include/bits/streambuf_iterator.h: Likewise.
3116	* include/bits/unique_ptr.h: Likewise.
3117	* include/bits/unordered_map.h: Likewise.
3118	* include/bits/unordered_set.h: Likewise.
3119	* include/decimal/decimal: Likewise.
3120	* include/experimental/any: Likewise.
3121	* include/experimental/array: Likewise.
3122	* include/experimental/bits/fs_dir.h: Likewise.
3123	* include/experimental/bits/fs_fwd.h: Likewise.
3124	* include/experimental/bits/fs_ops.h: Likewise.
3125	* include/experimental/bits/fs_path.h: Likewise.
3126	* include/experimental/buffer: Likewise.
3127	* include/experimental/internet: Likewise.
3128	* include/experimental/optional: Likewise.
3129	* include/experimental/propagate_const: Likewise.
3130	* include/experimental/socket: Likewise.
3131	* include/ext/pb_ds/assoc_container.hpp: Likewise.
3132	* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
3133	Likewise.
3134	* include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
3135	* include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
3136	* include/ext/pb_ds/detail/types_traits.hpp: Likewise.
3137	* include/ext/pb_ds/exception.hpp: Likewise.
3138	* include/ext/pb_ds/priority_queue.hpp: Likewise.
3139	* include/ext/pb_ds/tag_and_trait.hpp: Likewise.
3140	* include/ext/random: Likewise.
3141	* include/std/any: Likewise.
3142	* include/std/atomic: Likewise.
3143	* include/std/bitset: Likewise.
3144	* include/std/chrono: Likewise.
3145	* include/std/complex: Likewise.
3146	* include/std/condition_variable: Likewise.
3147	* include/std/fstream: Likewise.
3148	* include/std/future: Likewise.
3149	* include/std/iostream: Likewise.
3150	* include/std/istream: Likewise.
3151	* include/std/mutex: Likewise.
3152	* include/std/numeric: Likewise.
3153	* include/std/ostream: Likewise.
3154	* include/std/ratio: Likewise.
3155	* include/std/shared_mutex: Likewise.
3156	* include/std/stdexcept: Likewise.
3157	* include/std/streambuf: Likewise.
3158	* include/std/system_error: Likewise.
3159	* include/std/thread: Likewise.
3160	* include/std/valarray: Likewise.
3161	* include/std/variant: Likewise.
3162	* include/tr1/cmath: Likewise.
3163	* include/tr1/regex: Likewise.
3164	* include/tr2/dynamic_bitset: Likewise.
3165	* libsupc++/atomic_lockfree_defines.h: Likewise.
3166	* libsupc++/exception: Likewise.
3167	* libsupc++/exception.h: Likewise.
3168	* libsupc++/exception_ptr.h: Likewise.
3169	* libsupc++/nested_exception.h: Likewise.
3170
31712021-03-31  Alexandre Oliva  <oliva@adacore.com>
3172
3173	* testsuite/30_threads/future/members/poll.cc: Use faster
3174	after-ready call in the calibration loop.
3175
31762021-03-29  Jonathan Wakely  <jwakely@redhat.com>
3177
3178	* doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
3179	* doc/html/manual/status.html: Regenerate.
3180
31812021-03-28  François Dumont  <fdumont@gcc.gnu.org>
3182
3183	* include/debug/forward_list
3184	(forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
3185	* include/debug/list (list(list&&, const allocator_type&)): Likewise and add
3186	call to safe container allocator aware move constructor.
3187	* include/debug/vector (vector(vector&&, const allocator_type&)):
3188	Fix noexcept qualification.
3189	* testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
3190	Add allocator-extended move constructor noexceot qualification check.
3191	* testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
3192
31932021-03-26  Jonathan Wakely  <jwakely@redhat.com>
3194
3195	* src/c++11/random.cc (USE_LCG): Define when a pseudo-random
3196	fallback is needed.
3197	[USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
3198	New helper functions and callback.
3199	(random_device::_M_init): Add 'prng' and 'all' enumerators.
3200	Replace switch with fallthrough with a series of 'if' statements.
3201	[USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
3202	checks fail.
3203	(random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
3204	token.
3205	(random_device::_M_getval): Check for callback unconditionally
3206	and always pass _M_file pointer.
3207	* testsuite/26_numerics/random/random_device/85494.cc: Remove
3208	effective-target check. Use new random_device_available helper.
3209	* testsuite/26_numerics/random/random_device/94087.cc: Likewise.
3210	* testsuite/26_numerics/random/random_device/cons/default-cow.cc:
3211	Remove effective-target check.
3212	* testsuite/26_numerics/random/random_device/cons/default.cc:
3213	Likewise.
3214	* testsuite/26_numerics/random/random_device/cons/token.cc: Use
3215	new random_device_available helper. Test "prng" token.
3216	* testsuite/util/testsuite_random.h (random_device_available):
3217	New helper function.
3218
32192021-03-25  François Dumont  <fdumont@gcc.gnu.org>
3220
3221	* include/debug/string
3222	(basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
3223	(basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
3224	(basic_string<>::erase): Adapt to take __const_iterator.
3225	(basic_string(const _CharT*, const _Allocator&)): Remove assign call.
3226	(basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
3227	remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
3228	[_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
3229	(__gnu_debug::u16string, __gnu_debug::u32string): New.
3230	(std::hash<__gnu_debug::basic_string<>>): New partial specialization.
3231	(std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
3232	* testsuite/util/exception/safety.h
3233	(erase_base<__gnu_debug::basic_string<>>): New partial specialization.
3234	(insert_base<__gnu_debug::basic_string<>>): Likewise.
3235	* testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
3236	New partial specialization.
3237	* testsuite/21_strings/basic_string/hash/debug.cc: New test.
3238	* testsuite/21_strings/basic_string/requirements/citerators.cc:
3239	Add test on __gnu_debug::string.
3240	* testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
3241	* testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
3242	* testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
3243	Likewise.
3244	* testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
3245	Likewise.
3246	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
3247	Likewise.
3248	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
3249	Likewise.
3250	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
3251	Likewise.
3252	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
3253	Likewise.
3254	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
3255	Likewise.
3256	* testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
3257
32582021-03-25  Jakub Jelinek  <jakub@redhat.com>
3259
3260	PR c++/99672
3261	* testsuite/18_support/source_location/consteval.cc (main): Adjust
3262	expected column numbers.
3263	* testsuite/18_support/source_location/1.cc (main): Likewise.
3264
32652021-03-25  Jonathan Wakely  <jwakely@redhat.com>
3266
3267	* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
3268
32692021-03-25  Jonathan Wakely  <jwakely@redhat.com>
3270
3271	* testsuite/util/exception/safety.h (setup_base::generate):
3272	Support seeding random engine.
3273	(erase_point, erase_range): Adjust range of random numbers to
3274	ensure dereferenceable iterators are used where required.
3275	(generation_prohibited::run): Do not try to erase from empty
3276	containers.
3277	* testsuite/util/testsuite_containergen.h (test_containers):
3278	Support seeding random engine.
3279
32802021-03-23  Jonathan Wakely  <jwakely@redhat.com>
3281
3282	* testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
3283	line with a check that uses the const being/end overloads.
3284
32852021-03-23  Moritz Sichert  <sichert@in.tum.de>
3286
3287	* include/std/ranges (reverse_view::begin, reverse_view::end):
3288	Qualify make_reverse_iterator calls to avoid ADL.
3289	* testsuite/std/ranges/adaptors/reverse.cc: Test that
3290	views::reverse works when make_reverse_iterator is defined
3291	in an associated namespace.
3292
32932021-03-23  Jonathan Wakely  <jwakely@redhat.com>
3294
3295	* include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
3296	Do not define when compiling with Clang.
3297
32982021-03-22  Jonathan Wakely  <jwakely@redhat.com>
3299
3300	* include/std/string_view (basic_string_view(Range&&)): Define new
3301	constructor and deduction guide.
3302	* testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
3303	* testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
3304
33052021-03-22  Jonathan Wakely  <jwakely@redhat.com>
3306
3307	* include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
3308	Add missing 'noexcept' as per LWG 2280.
3309	(rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
3310	(rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
3311	* testsuite/24_iterators/range_access/range_access.cc: Check for
3312	expected noexcept specifiers. Check result types of generic
3313	std::begin and std::end overloads.
3314	* testsuite/24_iterators/range_access/range_access_cpp14.cc:
3315	Check for expected noexcept specifiers.
3316	* testsuite/24_iterators/range_access/range_access_cpp17.cc:
3317	Likewise.
3318
33192021-03-19  Jonathan Wakely  <jwakely@redhat.com>
3320
3321	* include/std/type_traits (is_scoped_enum): Define.
3322	* include/std/version (__cpp_lib_is_scoped_enum): Define.
3323	* testsuite/20_util/is_scoped_enum/value.cc: New test.
3324	* testsuite/20_util/is_scoped_enum/version.cc: New test.
3325
33262021-03-16  Jonathan Wakely  <jwakely@redhat.com>
3327
3328	PR libstdc++/99341
3329	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
3330	std::once_flag symbols.
3331	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
3332	* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
3333	* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
3334	Likewise.
3335	* config/abi/pre/gnu.ver: Likewise.
3336	* src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3337	(struct __once_flag_compat): Remove.
3338	(_ZNSt9once_flag11_M_activateEv): Remove.
3339	(_ZNSt9once_flag9_M_finishEb): Remove.
3340
33412021-03-16  Jonathan Wakely  <jwakely@redhat.com>
3342
3343	PR libstdc++/99341
3344	* include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
3345	Revert to pthread_once_t implementation.
3346	[_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
3347	* src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3348	(struct __once_flag_compat): New type matching the reverted
3349	implementation of once_flag using futexes.
3350	(once_flag::_M_activate): Remove, replace with ...
3351	(_ZNSt9once_flag11_M_activateEv): ... alias symbol.
3352	(once_flag::_M_finish): Remove, replace with ...
3353	(_ZNSt9once_flag9_M_finishEb): ... alias symbol.
3354	* testsuite/30_threads/call_once/66146.cc: Removed.
3355
33562021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
3357
3358	* testsuite/17_intro/names.cc: Exclude j from the list
3359	of test symbols for Darwin.
3360
33612021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
3362
3363	* config/os/bsd/darwin/ppc-extra.ver: Add matching for
3364	to_chars and from_chars for long double.
3365
33662021-03-15  Patrick Palka  <ppalka@redhat.com>
3367
3368	* include/bits/max_size_type.h (__max_size_type::operator _Tp):
3369	Fix formatting.
3370	(__max_size_type::operator++): Define.
3371	(__max_size_type::operator--): Likewise.
3372	(__max_size_type::operator<=>): Conditionally define (in place
3373	of the other comparison operators).
3374	(__max_diff_type::operator _Tp): Fix formatting.
3375	(__max_diff_type::operator++): Define.
3376	(__max_diff_type::operator--): Likewise.
3377	(__max_diff_type::operator<=>): Conditionally define (in place
3378	of the other comparison operators).
3379	* testsuite/std/ranges/iota/max_size_type.cc (test01): Test
3380	these operator overloads.
3381
33822021-03-15  Caroline Tice  <cmtice@google.com>
3383
3384	PR libstdc++/99172
3385	* src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
3386	AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
3387	AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
3388	filtered out.
3389	* src/Makefile.in: Regenerate.
3390
33912021-03-11  Patrick Palka  <ppalka@redhat.com>
3392
3393	* src/c++17/floating_to_chars.cc: Simplify the file as if
3394	__SIZEOF_INT128__ is always defined.
3395	[!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
3396	a base-10 to_chars overload for the uint128_t class type.
3397	* src/c++17/uint128_t.h: New file.
3398	* testsuite/20_util/to_chars/long_double.cc: No longer expect an
3399	execution FAIL on targets that have a large long double type
3400	but lack __int128.
3401
34022021-03-11  Patrick Palka  <ppalka@redhat.com>
3403
3404	* src/c++17/ryu/LOCAL_PATCHES: Update.
3405	* src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
3406	* src/c++17/ryu/generic_128.h: Likewise.
3407	* src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
3408	Use uint128_t instead of __uint128_t.
3409	(generic_binary_to_decimal): Likewise.
3410
34112021-03-11  Patrick Palka  <ppalka@redhat.com>
3412
3413	* src/c++17/ryu/LOCAL_PATCHES: New file.
3414
34152021-03-11  Patrick Palka  <ppalka@redhat.com>
3416
3417	* src/c++17/floating_to_chars.cc (uint128_t): New conditionally
3418	defined alias of unsigned __int128.
3419	(floating_type_traits_binary128::mantissa_t): Use uint128_t
3420	instead of unsigned __int128.
3421	(floating_type_traits<long double>::mantissa_t)
3422	[LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
3423	(get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
3424	and uint32_t explicit.  Simplify the extraction of mantissa,
3425	exponent and sign bit.
3426
34272021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3428
3429	* include/std/barrier (barrier::arrival_token): New move-only
3430	class that encapsulates the underlying token value.
3431
34322021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3433
3434	* python/libstdcxx/v6/printers.py (find_type): Use tag attribute
3435	instead of unqualified() method.
3436
34372021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3438
3439	PR libstdc++/99537
3440	* include/std/stop_token (_Stop_state_t::_M_release_ownership):
3441	Use acq_rel memory ordering.
3442
34432021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3444
3445	PR libstdc++/99533
3446	* src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
3447	helper function to check for permission denied errors.
3448	* src/filesystem/dir.cc (recursive_directory_iterator):
3449	Likewise.
3450	* src/filesystem/dir-common.h (is_permission_denied_error): New
3451	helper function.
3452
34532021-03-11  Jonathan Wakely  <jwakely@redhat.com>
3454
3455	PR libstdc++/99536
3456	* include/bits/random.h (normal_distribution): Use
3457	default-initializer for _M_saved and _M_saved_available.
3458
34592021-03-10  John David Anglin  <danglin@gcc.gnu.org>
3460
3461	* testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
3462	link with libatomic.
3463	* testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
3464	* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
3465	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
3466	* testsuite/30_threads/barrier/arrive.cc: Likewise.
3467	* testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
3468	* testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
3469	* testsuite/30_threads/barrier/completion.cc: Likewise.
3470	* testsuite/30_threads/latch/3.cc: Likewise.
3471	* testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
3472	* testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
3473	* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
3474
34752021-03-10  Jonathan Wakely  <jwakely@redhat.com>
3476
3477	PR libstdc++/99413
3478	* include/bits/align.h: Include debug/assertions.h.
3479	* include/bits/codecvt.h: Include bits/c++config.h.
3480	* include/bits/enable_special_members.h: Likewise.
3481	* include/bits/erase_if.h: Likewise.
3482	* include/bits/functional_hash.h: Include <type_traits>.
3483	* include/bits/invoke.h: Include bits/move.h.
3484	* include/bits/ostream_insert.h: Include bits/exception_defines.h.
3485	* include/bits/parse_numbers.h: Include <type_traits>.
3486	* include/bits/predefined_ops.h: Include bits/c++config.h.
3487	* include/bits/range_access.h: Include bits/stl_iterator.h.
3488	* include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
3489	* include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
3490	* include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
3491	* include/bits/uniform_int_dist.h: Include bits/concept_check.h.
3492	* include/bits/unique_lock.h: Include bits/std_mutex.h.
3493	* include/debug/assertions.h: Include bits/c++config.h.
3494
34952021-03-10  Jonathan Wakely  <jwakely@redhat.com>
3496
3497	* include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
3498	(ranges::equal_to, ranges::not_equal_to): Do not constrain
3499	with __eq_builtin_ptr_cmp.
3500	(ranges::less, ranges::greater, ranges::less_equal)
3501	(ranges::greater_equal): Do not constrain with
3502	__less_builtin_ptr_cmp.
3503	* libsupc++/compare (compare_three_way): Do not constrain with
3504	__3way_builtin_ptr_cmp.
3505	* testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
3506	* testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
3507	* testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
3508
35092021-03-10  Jonathan Wakely  <jwakely@redhat.com>
3510
3511	* testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
3512	C++20 calendar types.
3513
35142021-03-06  Jakub Jelinek  <jakub@redhat.com>
3515
3516	PR libstdc++/99396
3517	* include/std/bit (__rotl, __rotr): Add optimized variants for power of
3518	two _Nd which the compiler can pattern match the rotates.
3519
35202021-03-04  Jonathan Wakely  <jwakely@redhat.com>
3521
3522	PR libstdc++/99382
3523	* testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
3524	Make storage larger than required. Verify no write to the last
3525	element.
3526	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3527	Likewise.
3528
35292021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3530
3531	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3532	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3533	Likewise.
3534	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3535	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3536	Likewise.
3537
35382021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3539
3540	* include/experimental/bits/simd.h: Replace reserved _X, _B by
3541	_Xp, _Bp.
3542	* include/experimental/bits/simd_builtin.h: Likewise.
3543	* include/experimental/bits/simd_x86.h: Likewise.
3544
35452021-02-27  Jonathan Wakely  <jwakely@redhat.com>
3546
3547	PR libstdc++/99301
3548	* include/std/chrono (year_month_day::_M_days_since_epoch()):
3549	Convert chrono::month and chrono::day to unsigned before
3550	converting to uint32_t.
3551
35522021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3553
3554	* include/std/chrono (year_month_day::_S_from_days): Perform
3555	all calculations with type uint32_t.
3556
35572021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3558
3559	* doc/xml/manual/abi.xml: Document versioning for GCC 11.
3560	* doc/html/manual/abi.html: Regenerate.
3561
35622021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3563
3564	PR libstdc++/99270
3565	* testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
3566	FILE instead of FILE.
3567
35682021-02-25  Andreas Schwab  <schwab@suse.de>
3569
3570	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3571	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3572	* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3573	* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3574
35752021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3576
3577	PR libstdc++/99265
3578	* include/std/chrono (year_month_day::_S_from_days): Cast long
3579	to int explicitly.
3580
35812021-02-25  Jonathan Wakely  <jwakely@redhat.com>
3582
3583	* include/std/utility (to_underlying): Define.
3584	* include/std/version (__cpp_lib_to_underlying): Define.
3585	* testsuite/20_util/to_underlying/1.cc: New test.
3586	* testsuite/20_util/to_underlying/version.cc: New test.
3587
35882021-02-24  Jonathan Wakely  <jwakely@redhat.com>
3589
3590	PR libstdc++/99261
3591	* src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
3592	before value to be printed.
3593
35942021-02-24  Patrick Palka  <ppalka@redhat.com>
3595
3596	* src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
3597	Relax the condition that guards the printf code path to accept
3598	F128_type as well as long double.
3599
36002021-02-24  Cassio Neri  <cassio.neri@gmail.com>
3601
3602	* include/std/chrono (year_month_day_last:day): New
3603	implementation.
3604
36052021-02-24  Cassio Neri  <cassio.neri@gmail.com>
3606
3607	* include/std/chrono (year::is_leap): New implementation.
3608	* testsuite/std/time/year/2.cc: New test.
3609
36102021-02-24  Cassio Neri  <cassio.neri@gmail.com>
3611
3612	* include/std/chrono (year_month_day::_M_days_since_epoch):
3613	New implementation.
3614	* testsuite/std/time/year_month_day/4.cc: New test.
3615
36162021-02-24  Cassio Neri  <cassio.neri@gmail.com>
3617
3618	* include/std/chrono (year_month_day::_S_from_days): New
3619	implementation.
3620	* testsuite/std/time/year_month_day/3.cc: New test.
3621
36222021-02-24  Patrick Palka  <ppalka@redhat.com>
3623
3624	PR libstdc++/98384
3625	* testsuite/20_util/to_chars/long_double.cc: Include <optional>.
3626	(test01): Simplify verifying the nearby values by using a
3627	2-iteration loop and a dedicated output buffer to check that the
3628	nearby values are different.  Factor out the printf-based
3629	verification into a local function, and check that the leading
3630	hex digits agree before comparing to the output of printf.  Also
3631	verify the output by round-tripping it through from_chars.
3632
36332021-02-24  Jonathan Wakely  <jwakely@redhat.com>
3634
3635	PR libstdc++/98389
3636	* config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
3637	symbols for long double arguments mangled as 'g'.
3638	* config/os/gnu-linux/ldbl-extra.ver: Likewise.
3639	* config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
3640	* src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
3641	Use -mabi=ibmlongdouble for floating_to_chars.cc.
3642	* src/c++17/Makefile.in: Regenerate.
3643	* src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
3644	New type defining type traits of IEEE binary128 format.
3645	(floating_type_traits<__float128>): Define specialization.
3646	(floating_type_traits<long double>): Define in terms of
3647	floating_type_traits_binary128 when appropriate.
3648	(floating_to_shortest_scientific): Handle __float128.
3649	(sprintf_ld): New function template for printing a long double
3650	or __ieee128 value using sprintf.
3651	(__floating_to_chars_shortest, __floating_to_chars_precision):
3652	Use sprintf_ld.
3653	(to_chars): Define overloads for __float128.
3654
36552021-02-24  Jonathan Wakely  <jwakely@redhat.com>
3656
3657	* testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
3658
36592021-02-23  Martin Sebor  <msebor@redhat.com>
3660
3661	PR c++/99074
3662	* libsupc++/dyncast.cc (__dynamic_cast): Return null when
3663	first argument is null.
3664
36652021-02-23  Jakub Jelinek  <jakub@redhat.com>
3666
3667	PR libstdc++/99181
3668	* testsuite/21_strings/char_traits/requirements/char/99181.cc: New
3669	test.
3670
36712021-02-23  Jakub Jelinek  <jakub@redhat.com>
3672
3673	PR libstdc++/99181
3674	* include/bits/char_traits.h (char_traits<char>::compare): For
3675	constexpr evaluation don't call
3676	__gnu_cxx::char_traits<char_type>::compare but do the comparison loop
3677	directly.
3678
36792021-02-23  Jakub Jelinek  <jakub@redhat.com>
3680
3681	PR libstdc++/97549
3682	* include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
3683
36842021-02-23  Patrick Palka  <ppalka@redhat.com>
3685
3686	PR libstdc++/98384
3687	* src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
3688	the high- and low-order parts from an IBM long double value
3689	in an endian-agnostic way.
3690
36912021-02-19  Jonathan Wakely  <jwakely@redhat.com>
3692
3693	* include/bits/atomic_wait.h (__thread_relax()): Call
3694	__thread_yield() not __gthread_yield().
3695
36962021-02-15  Jonathan Wakely  <jwakely@redhat.com>
3697
3698	* include/bits/atomic_wait.h (__thread_yield()): Check
3699	_GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3700	(__thread_relax()): Use __thread_yield() instead of repeating
3701	the preprocessor checks for __gthread_yield.
3702
37032021-02-15  Jonathan Wakely  <jwakely@redhat.com>
3704
3705	* include/std/mutex (once_flag::_M_activate()): Add explicit
3706	return statement for passive case.
3707	(once_flag::_M_finish(bool)): Use reserved name for parameter.
3708
37092021-02-14  Jonathan Wakely  <jwakely@redhat.com>
3710
3711	PR libstdc++/99096
3712	* testsuite/util/testsuite_fs.h: Always include <unistd.h>.
3713
37142021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3715
3716	PR libstdc++/88881
3717	* src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
3718
37192021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3720
3721	* doc/xml/manual/status_cxx2014.xml: Document implementation
3722	specific properties of std::experimental::filesystem::rename.
3723	* doc/xml/manual/status_cxx2017.xml: Document implementation
3724	specific properties of std::filesystem::rename.
3725	* doc/html/*: Regenerate.
3726	* src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
3727	for directories on Windows.
3728	* src/filesystem/ops-common.h (__gnu_posix::rename): Use
3729	MoveFileExW on Windows.
3730	* testsuite/27_io/filesystem/operations/rename.cc: New test.
3731	* testsuite/experimental/filesystem/operations/rename.cc: New test.
3732
37332021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3734
3735	* testsuite/util/testsuite_fs.h (nonexistent_path): Add
3736	random number to the path.
3737
37382021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3739
3740	* include/experimental/internet (address_v6::to_string): Include
3741	scope ID in string.
3742	* testsuite/experimental/net/internet/address/v6/members.cc:
3743	Test to_string() results.
3744
37452021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3746
3747	* include/experimental/internet (address_v6::any): Avoid using
3748	memcpy in constexpr function.
3749	(address_v6::loopback): Likewise.
3750	(make_address_v6): Fix missing return statements on error paths.
3751	* include/experimental/io_context: Avoid -Wdangling-else
3752	warning.
3753	* testsuite/experimental/net/internet/address/v4/members.cc:
3754	Remove unused variables.
3755	* testsuite/experimental/net/internet/address/v6/members.cc:
3756	New test.
3757
37582021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3759
3760	* include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
3761	Add unused attribute to parameter.
3762	* src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
3763	Likewise.
3764
37652021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3766
3767	* testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
3768	if -fno-rtti is used.
3769	* testsuite/30_threads/async/forced_unwind.cc: Expect test
3770	to abort if -fno-rtti is used.
3771
37722021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3773
3774	* testsuite/util/testsuite_allocator.h (memory_resource):
3775	Remove requirement for RTTI and exceptions to be enabled.
3776
37772021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3778
3779	* testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
3780	static_cast when RTTI is disabled.
3781	* testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
3782	Likewise.
3783	* testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
3784	Likewise.
3785	* testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
3786	Likewise.
3787	* testsuite/27_io/basic_stringstream/str/char/2.cc:
3788	Likewise.
3789	* testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
3790	Likewise.
3791
37922021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3793
3794	* include/std/ostream (__syncbuf_base::_S_get): Mark parameter
3795	as unused and only use dynamic_cast when RTTI is enabled.
3796
37972021-02-12  Jonathan Wakely  <jwakely@redhat.com>
3798
3799	PR libstdc++/99077
3800	* src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
3801	Change int parameter to error_code, to match std::ios_failure.
3802	(__throw_ios_failure(const char*, int)): Construct error_code
3803	from int parameter.
3804
38052021-02-11  Jonathan Wakely  <jwakely@redhat.com>
3806
3807	* libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
3808	new macro.
3809	* libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
3810	macro instead of _GLIBCXX_EH_PTR_COMPAT.
3811	(operator==): Likewise.
3812
38132021-02-11  Jonathan Wakely  <jwakely@redhat.com>
3814
3815	PR libstdc++/99058
3816	* doc/xml/manual/status_cxx2011.xml: Document when support
3817	became stable.
3818	* doc/xml/manual/status_cxx2014.xml: Likewise.
3819	* doc/xml/manual/status_cxx2017.xml: Likewise.
3820	* doc/html/manual/status.html: Regenerate.
3821
38222021-02-10  Jonathan Wakely  <jwakely@redhat.com>
3823
3824	PR libstdc++/88881
3825	* src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
3826
38272021-02-10  Jonathan Wakely  <jwakely@redhat.com>
3828
3829	* src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
3830	(fs::remove): Use std::system_category() for error codes from
3831	GetLastError().
3832	* src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
3833	Likewise.
3834
38352021-02-10  Jonathan Wakely  <jwakely@redhat.com>
3836
3837	* testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
3838	in __MINGW32__ macro name.
3839	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3840	* testsuite/27_io/filesystem/path/generation/proximate.cc:
3841	Likewise.
3842	* testsuite/27_io/filesystem/path/generation/relative.cc:
3843	Likewise.
3844	* testsuite/util/testsuite_fs.h: Likewise.
3845
38462021-02-09  François Dumont  <fdumont@gcc.gnu.org>
3847
3848	* include/bits/stl_tree.h
3849	(__has_is_transparent, __has_is_transparent_t): Move...
3850	* include/bits/stl_function.h: ...here.
3851	* include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
3852	(_Hashtable_base<>::_M_equals_tr): New.
3853	* include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
3854	_Hashtable<>::_M_equal_range_tr): New member function templates to perform
3855	heterogeneous lookup.
3856	(_Hashtable<>::_M_find_before_node_tr): New.
3857	(_Hashtable<>::_M_find_node_tr): New.
3858	* include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
3859	unordered_map::contains<>, unordered_map::equal_range<>): New member function
3860	templates to perform heterogeneous lookup.
3861	(unordered_multimap::find<>, unordered_multimap::count<>,
3862	unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
3863	* include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
3864	unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
3865	(unordered_multiset::find<>, unordered_multiset::count<>,
3866	unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
3867	* include/debug/unordered_map
3868	(unordered_map::find<>, unordered_map::equal_range<>): Likewise.
3869	(unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
3870	* include/debug/unordered_set
3871	(unordered_set::find<>, unordered_set::equal_range<>): Likewise.
3872	(unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
3873	* testsuite/23_containers/unordered_map/operations/1.cc: New test.
3874	* testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
3875	* testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
3876	* testsuite/23_containers/unordered_set/operations/1.cc: New test.
3877
38782021-02-09  François Dumont  <fdumont@gcc.gnu.org>
3879
3880	* include/bits/stl_deque.h
3881	(std::operator-(deque::iterator, deque::iterator)): Replace if/then with
3882	a null pointer test.
3883
38842021-02-09  Jonathan Wakely  <jwakely@redhat.com>
3885
3886	* testsuite/27_io/filesystem/operations/remove_all.cc: Remove
3887	test directory after making it writable again.
3888	* testsuite/experimental/filesystem/operations/remove_all.cc:
3889	Likewise.
3890
38912021-02-09  Jonathan Wakely  <jwakely@redhat.com>
3892
3893	PR libstdc++/99021
3894	* include/std/coroutine (coroutine_handle<P>::from_address): Add
3895	noexcept.
3896
38972021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
3898
3899	* include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
3900	* src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
3901
39022021-02-09  Jakub Jelinek  <jakub@redhat.com>
3903
3904	PR middle-end/98465
3905	* include/bits/basic_string.tcc (basic_string::_M_replace): When __s
3906	points to the characters moved by earlier _S_move, compute the source
3907	address using expression based on the __p pointer rather than __s
3908	pointer.
3909
39102021-02-03  Jonathan Wakely  <jwakely@redhat.com>
3911
3912	* testsuite/19_diagnostics/error_code/operators/not_equal.cc:
3913	Add comparison with same category and different values.
3914	* testsuite/19_diagnostics/error_code/operators/less.cc:
3915	Likewise. Fix comparison involving different categories.
3916	* testsuite/19_diagnostics/error_code/operators/three_way.cc:
3917	Likewise.
3918	* testsuite/19_diagnostics/error_condition/operators/less.cc:
3919	Add comment.
3920	* testsuite/19_diagnostics/error_condition/operators/three_way.cc:
3921	Likewise.
3922
39232021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
3924
3925	* include/experimental/bits/simd_neon.h: Replace repeated vpadd
3926	calls with a single vaddv for aarch64.
3927
39282021-02-03  Matthias Kretz  <kretz@kde.org>
3929
3930	* testsuite/Makefile.am: Warn about the workaround. Add
3931	-fno-tree-vrp to CXXFLAGS passed to the check_simd script.
3932	Improve initial user feedback from make check-simd.
3933	* testsuite/Makefile.in: Regenerated.
3934
39352021-02-03  Matthias Kretz  <kretz@kde.org>
3936
3937	* include/experimental/bits/simd.h: Add __detail::_Minimum and
3938	__detail::_Maximum to use them as _BinaryOperation to _S_reduce.
3939	Add hmin and hmax overloads for simd and const_where_expression.
3940	* include/experimental/bits/simd_scalar.h
3941	(_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
3942	parameter const-ref to allow calling _S_reduce with an rvalue.
3943	* testsuite/experimental/simd/tests/reductions.cc: Add tests for
3944	hmin and hmax. Since the compiler statically determined that all
3945	tests pass, repeat the test after a call to make_value_unknown.
3946
39472021-02-03  Matthias Kretz  <kretz@kde.org>
3948
3949	* testsuite/experimental/simd/tests/bits/verify.h (verify): Add
3950	instruction pointer data member. Ensure that the `if (m_failed)`
3951	branch is always inlined into the calling code. The body of the
3952	conditional can still be a function call. Move the get_ip call
3953	into the verify ctor to simplify the ctor calls.
3954	(COMPARE): Don't mention the use of all_of for reduction of a
3955	simd_mask. It only distracts from the real issue.
3956
39572021-02-03  Matthias Kretz  <kretz@kde.org>
3958
3959	* testsuite/experimental/simd/driver.sh: Abstract reading test
3960	options into read_src_option function. Read skip, only,
3961	expensive, and xfail via read_src_option. Add timeout and
3962	timeout-factor options and adjust timeout variable accordingly.
3963	* testsuite/experimental/simd/tests/loadstore.cc: Set
3964	timeout-factor 2.
3965
39662021-02-03  Matthias Kretz  <kretz@kde.org>
3967
3968	* testsuite/experimental/simd/driver.sh: When handling the pipe
3969	to log (and on verbose to stdout) count the lines. If it exceeds
3970	1000 log the issue and exit 125, which is then handled as a
3971	failure.
3972
39732021-02-03  Matthias Kretz  <kretz@kde.org>
3974
3975	* testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
3976	markup for long double on powerpc64*.
3977
39782021-02-03  Matthias Kretz  <kretz@kde.org>
3979
3980	* include/experimental/bits/simd.h: Add __have_power10vec
3981	conditional on _ARCH_PWR10.
3982	* include/experimental/bits/simd_builtin.h: Forward declare
3983	_MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
3984	defined.
3985	(_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
3986	_SuperImpl for optimizations and correctness.
3987	* include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
3988	(_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
3989	Otherwise, for >=int use -vec_sums divided by a sizeof factor.
3990	For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
3991
39922021-02-03  Matthias Kretz  <kretz@kde.org>
3993
3994	* testsuite/experimental/simd/driver.sh: Remove executable on
3995	SIGINT. Process compiler and test executable output: In verbose
3996	mode print messages immediately, limited to 1000 lines and
3997	breaking long lines to below $COLUMNS (or 1024 if not set).
3998	Communicating the exit status of the compiler / test with the
3999	necessary pipe is done via a message through stdout/-in.
4000
40012021-02-03  Matthias Kretz  <kretz@kde.org>
4002
4003	* testsuite/Makefile.am: Ensure .simd.summary is empty before
4004	collecting a new summary.
4005	* testsuite/Makefile.in: Regenerate.
4006
40072021-02-03  Matthias Kretz  <kretz@kde.org>
4008
4009	* testsuite/experimental/simd/generate_makefile.sh: Use
4010	different variables internally than documented for user
4011	overrides. This makes internal append/prepend work as intended.
4012
40132021-02-03  Matthias Kretz  <kretz@kde.org>
4014
4015	* testsuite/experimental/simd/driver.sh (verify_test): Print
4016	test output on run xfail. Do not repeat lines from the log that
4017	were already printed on stdout.
4018	(test_selector): Make the compiler flags pattern usable as a
4019	substring selector.
4020	(toplevel): Trap on SIGINT and remove the log and sum files.
4021	Call timout with --foreground to quickly terminate on SIGINT.
4022	* testsuite/experimental/simd/generate_makefile.sh: Simplify run
4023	targets via target patterns. Default DRIVEROPTS to -v for run
4024	targets. Remove log and sum files after completion of the run
4025	target (so that it's always recompiled).
4026	Place help text into text file for reasonable 'make help'
4027	performance.
4028
40292021-02-03  Matthias Kretz  <kretz@kde.org>
4030
4031	* include/experimental/bits/simd.h: Remove unnecessary static
4032	assertion. Allow sizeof(8) integer __intrinsic_type to enable
4033	the necessary mask type.
4034
40352021-02-03  Matthias Kretz  <kretz@kde.org>
4036
4037	* include/experimental/bits/simd.h: Let __intrinsic_type<long
4038	double, N> be valid if sizeof(long double) == sizeof(double) and
4039	use a __vector double as member type.
4040
40412021-02-03  Matthias Kretz  <kretz@kde.org>
4042
4043	* include/experimental/bits/simd.h (__is_intrinsic_type): New
4044	internal type trait. Alias for __is_vector_type on x86.
4045	(_VectorTraitsImpl): Enable for __intrinsic_type in addition for
4046	__vector_type.
4047	(__intrin_bitcast): Allow casting to & from vector & intrinsic
4048	types.
4049	(__intrinsic_type): Explicitly specialize for NEON intrinsic
4050	vector types.
4051
40522021-02-03  Matthias Kretz  <kretz@kde.org>
4053
4054	* testsuite/experimental/simd/driver.sh: Implement skip, only,
4055	expensive, and xfail markers. They can select on type, ABI tag
4056	subset number, target-triplet, and compiler flags.
4057	* testsuite/experimental/simd/generate_makefile.sh: The summary
4058	now includes lines for unexpected passes and expected failures.
4059	If the skip or only markers are only conditional on the type, do
4060	not generate rules for those types.
4061	* testsuite/experimental/simd/tests/abs.cc: Mark test expensive
4062	for ABI tag subsets 1-9.
4063	* testsuite/experimental/simd/tests/algorithms.cc: Ditto.
4064	* testsuite/experimental/simd/tests/broadcast.cc: Ditto.
4065	* testsuite/experimental/simd/tests/casts.cc: Ditto.
4066	* testsuite/experimental/simd/tests/generator.cc: Ditto.
4067	* testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
4068	* testsuite/experimental/simd/tests/loadstore.cc: Ditto.
4069	* testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
4070	* testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
4071	* testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
4072	* testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
4073	* testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
4074	* testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
4075	* testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
4076	* testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
4077	* testsuite/experimental/simd/tests/operators.cc: Ditto.
4078	* testsuite/experimental/simd/tests/reductions.cc: Ditto.
4079	* testsuite/experimental/simd/tests/simd.cc: Ditto.
4080	* testsuite/experimental/simd/tests/split_concat.cc: Ditto.
4081	* testsuite/experimental/simd/tests/splits.cc: Ditto.
4082	* testsuite/experimental/simd/tests/where.cc: Ditto.
4083	* testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
4084	addition replace "test only floattypes" marker by unconditional
4085	"float|double|ldouble" only marker.
4086	* testsuite/experimental/simd/tests/frexp.cc: Ditto.
4087	* testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
4088	* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4089	Ditto.
4090	* testsuite/experimental/simd/tests/logarithm.cc: Ditto.
4091	* testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
4092	* testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
4093	* testsuite/experimental/simd/tests/remqo.cc: Ditto.
4094	* testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
4095	* testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
4096	* testsuite/experimental/simd/tests/sincos.cc: Ditto. In
4097	addition, xfail on run because the reference data is missing.
4098
40992021-02-02  Jonathan Wakely  <jwakely@redhat.com>
4100
4101	* doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
4102	* doc/xml/manual/status_cxx2014.xml: Likewise.
4103	* doc/xml/manual/status_cxx2017.xml: Likewise.
4104	* doc/html/manual/status.html: Regenerate.
4105
41062021-02-01  François Dumont  <fdumont@gcc.gnu.org>
4107
4108	PR libstdc++/70303
4109	* include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
4110	Return 0 if both iterators are value-initialized.
4111	* testsuite/23_containers/deque/70303.cc: New test.
4112	* testsuite/23_containers/vector/70303.cc: New test.
4113
41142021-02-01  Jonathan Wakely  <jwakely@redhat.com>
4115
4116	* doc/xml/manual/status_cxx2011.xml: Update std::call_once
4117	status.
4118	* doc/xml/manual/status_cxx2014.xml: Likewise.
4119	* doc/xml/manual/status_cxx2017.xml: Likewise. Update
4120	std::from_chars and std::to_chars status. Fix formatting.
4121	* doc/html/manual/status.html: Regenerate.
4122
41232021-01-28  Jonathan Wakely  <jwakely@redhat.com>
4124
4125	* include/experimental/bits/numeric_traits.h: Update copyright
4126	dates.
4127	* include/experimental/bits/simd.h: Likewise.
4128	* include/experimental/bits/simd_builtin.h: Likewise.
4129	* include/experimental/bits/simd_converter.h: Likewise.
4130	* include/experimental/bits/simd_detail.h: Likewise.
4131	* include/experimental/bits/simd_fixed_size.h: Likewise.
4132	* include/experimental/bits/simd_math.h: Likewise.
4133	* include/experimental/bits/simd_neon.h: Likewise.
4134	* include/experimental/bits/simd_ppc.h: Likewise.
4135	* include/experimental/bits/simd_scalar.h: Likewise.
4136	* include/experimental/bits/simd_x86.h: Likewise.
4137	* include/experimental/bits/simd_x86_conversions.h: Likewise.
4138	* include/experimental/simd: Likewise.
4139	* testsuite/experimental/simd/*: Likewise.
4140
41412021-01-27  Jonathan Wakely  <jwakely@redhat.com>
4142
4143	* doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
4144	* doc/html/*: Regenerate.
4145
41462021-01-27  Jonathan Wakely  <jwakely@redhat.com>
4147
4148	* testsuite/experimental/simd/generate_makefile.sh: Use printf
4149	instead of echo when printing escape characters.
4150
41512021-01-27  Matthias Kretz  <kretz@kde.org>
4152
4153	* scripts/check_simd: New file. This script is called from the
4154	the check-simd target. It determines a set of compiler flags and
4155	simulator setups for calling generate_makefile.sh and passes the
4156	information back to the check-simd target, which recurses to the
4157	generated Makefiles.
4158	* scripts/create_testsuite_files: Remove files below simd/tests/
4159	from testsuite_files and place them in testsuite_files_simd.
4160	* testsuite/Makefile.am: Add testsuite_files_simd. Add
4161	check-simd target.
4162	* testsuite/Makefile.in: Regenerate.
4163	* testsuite/experimental/simd/driver.sh: New file. This script
4164	compiles and runs a given simd test, logging its output and
4165	status. It uses the timeout command to implement compile and
4166	test timeouts.
4167	* testsuite/experimental/simd/generate_makefile.sh: New file.
4168	This script generates a Makefile which uses driver.sh to compile
4169	and run the tests and collect the logs into a single log file.
4170	* testsuite/experimental/simd/tests/abs.cc: New file. Tests
4171	abs(simd).
4172	* testsuite/experimental/simd/tests/algorithms.cc: New file.
4173	Tests min/max(simd, simd).
4174	* testsuite/experimental/simd/tests/bits/conversions.h: New
4175	file. Contains functions to support tests involving conversions.
4176	* testsuite/experimental/simd/tests/bits/make_vec.h: New file.
4177	Support functions make_mask and make_vec.
4178	* testsuite/experimental/simd/tests/bits/mathreference.h: New
4179	file. Support functions to supply precomputed math function
4180	reference data.
4181	* testsuite/experimental/simd/tests/bits/metahelpers.h: New
4182	file. Support code for SFINAE testing.
4183	* testsuite/experimental/simd/tests/bits/simd_view.h: New file.
4184	* testsuite/experimental/simd/tests/bits/test_values.h: New
4185	file. Test functions to easily drive a test with simd objects
4186	initialized from a given list of values and a range of random
4187	values.
4188	* testsuite/experimental/simd/tests/bits/ulp.h: New file.
4189	Support code to determine the ULP distance of simd objects.
4190	* testsuite/experimental/simd/tests/bits/verify.h: New file.
4191	Test framework for COMPARE'ing simd objects and instantiating
4192	the test templates with value_type and ABI tag.
4193	* testsuite/experimental/simd/tests/broadcast.cc: New file. Test
4194	simd broadcasts.
4195	* testsuite/experimental/simd/tests/casts.cc: New file. Test
4196	simd casts.
4197	* testsuite/experimental/simd/tests/fpclassify.cc: New file.
4198	Test floating-point classification functions.
4199	* testsuite/experimental/simd/tests/frexp.cc: New file. Test
4200	frexp(simd).
4201	* testsuite/experimental/simd/tests/generator.cc: New file. Test
4202	simd generator constructor.
4203	* testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
4204	Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
4205	* testsuite/experimental/simd/tests/integer_operators.cc: New
4206	file. Test integer operators.
4207	* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4208	New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
4209	modf(simd).
4210	* testsuite/experimental/simd/tests/loadstore.cc: New file. Test
4211	(converting) simd loads and stores.
4212	* testsuite/experimental/simd/tests/logarithm.cc: New file. Test
4213	log*(simd).
4214	* testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
4215	Test simd_mask broadcasts.
4216	* testsuite/experimental/simd/tests/mask_conversions.cc: New
4217	file. Test simd_mask conversions.
4218	* testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
4219	file. Test simd_mask implicit conversions.
4220	* testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
4221	Test simd_mask loads and stores.
4222	* testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
4223	file. Test simd_mask operators convert as specified.
4224	* testsuite/experimental/simd/tests/mask_operators.cc: New file.
4225	Test simd_mask compares, subscripts, and negation.
4226	* testsuite/experimental/simd/tests/mask_reductions.cc: New
4227	file. Test simd_mask reductions.
4228	* testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
4229	1-arg math functions on simd.
4230	* testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
4231	2-arg math functions on simd.
4232	* testsuite/experimental/simd/tests/operator_cvt.cc: New file.
4233	Test implicit conversions on simd binary operators behave as
4234	specified.
4235	* testsuite/experimental/simd/tests/operators.cc: New file. Test
4236	simd compares, subscripts, not, unary minus, plus, minus,
4237	multiplies, divides, increment, and decrement.
4238	* testsuite/experimental/simd/tests/reductions.cc: New file.
4239	Test reduce(simd).
4240	* testsuite/experimental/simd/tests/remqo.cc: New file. Test
4241	remqo(simd).
4242	* testsuite/experimental/simd/tests/simd.cc: New file. Basic
4243	sanity checks of simd types.
4244	* testsuite/experimental/simd/tests/sincos.cc: New file. Test
4245	sin(simd) and cos(simd).
4246	* testsuite/experimental/simd/tests/split_concat.cc: New file.
4247	Test split(simd) and concat(simd, simd).
4248	* testsuite/experimental/simd/tests/splits.cc: New file. Test
4249	split(simd_mask).
4250	* testsuite/experimental/simd/tests/trigonometric.cc: New file.
4251	Test remaining trigonometric functions on simd.
4252	* testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
4253	file. Test trunc(simd), ceil(simd), and floor(simd).
4254	* testsuite/experimental/simd/tests/where.cc: New file. Test
4255	masked operations using where.
4256
42572021-01-27  Matthias Kretz  <kretz@kde.org>
4258
4259	* doc/xml/manual/status_cxx2017.xml: Add implementation status
4260	of the Parallelism TS 2. Document implementation-defined types
4261	and behavior.
4262	* include/Makefile.am: Add new headers.
4263	* include/Makefile.in: Regenerate.
4264	* include/experimental/simd: New file. New header for
4265	Parallelism TS 2.
4266	* include/experimental/bits/numeric_traits.h: New file.
4267	Implementation of P1841R1 using internal naming. Addition of
4268	missing IEC559 functionality query.
4269	* include/experimental/bits/simd.h: New file. Definition of the
4270	public simd interfaces and general implementation helpers.
4271	* include/experimental/bits/simd_builtin.h: New file.
4272	Implementation of the _VecBuiltin simd_abi.
4273	* include/experimental/bits/simd_converter.h: New file. Generic
4274	simd conversions.
4275	* include/experimental/bits/simd_detail.h: New file. Internal
4276	macros for the simd implementation.
4277	* include/experimental/bits/simd_fixed_size.h: New file. Simd
4278	fixed_size ABI specific implementations.
4279	* include/experimental/bits/simd_math.h: New file. Math
4280	overloads for simd.
4281	* include/experimental/bits/simd_neon.h: New file. Simd NEON
4282	specific implementations.
4283	* include/experimental/bits/simd_ppc.h: New file. Implement bit
4284	shifts to avoid invalid results for integral types smaller than
4285	int.
4286	* include/experimental/bits/simd_scalar.h: New file. Simd scalar
4287	ABI specific implementations.
4288	* include/experimental/bits/simd_x86.h: New file. Simd x86
4289	specific implementations.
4290	* include/experimental/bits/simd_x86_conversions.h: New file.
4291	x86 specific conversion optimizations. The conversion patterns
4292	work around missing conversion patterns in the compiler and
4293	should be removed as soon as PR85048 is resolved.
4294	* testsuite/experimental/simd/standard_abi_usable.cc: New file.
4295	Test that all (not all fixed_size<N>, though) standard simd and
4296	simd_mask types are usable.
4297	* testsuite/experimental/simd/standard_abi_usable_2.cc: New
4298	file. As above but with -ffast-math.
4299	* testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
4300	from the standard test loop. Instead use
4301	check_vect_support_and_set_flags to build simd tests with the
4302	relevant machine flags.
4303
43042021-01-27  Jonathan Wakely  <jwakely@redhat.com>
4305
4306	PR libstdc++/66414
4307	* include/bits/string_view.tcc
4308	(basic_string_view::find(const CharT*, size_type, size_type)):
4309	Optimize.
4310
43112021-01-27  Paul Fee  <paul.f.fee@gmail.com>
4312
4313	* include/bits/basic_string.h (basic_string::contains): New
4314	member functions.
4315	* include/std/string_view (basic_string_view::contains):
4316	Likewise.
4317	* include/std/version (__cpp_lib_string_contains): Define.
4318	* testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
4319	Remove trailing whitespace.
4320	* testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
4321	Likewise.
4322	* testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
4323	* testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
4324	* testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
4325	* testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
4326	* testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
4327
43282021-01-21  Jonathan Wakely  <jwakely@redhat.com>
4329
4330	* src/c++17/Makefile.in: Regenerate.
4331
43322021-01-20  David Edelsohn  <dje.gcc@gmail.com>
4333
4334	* config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
4335	_OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
4336	__lc_type.
4337	(const char* ctype<char>:: is): Same.
4338
43392021-01-18  Jonathan Wakely  <jwakely@redhat.com>
4340
4341	PR libstdc++/98725
4342	* testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
4343	write to a wide character stream if wide character support is
4344	disabled in the library.
4345
43462021-01-18  Jonathan Wakely  <jwakely@redhat.com>
4347
4348	* testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
4349	stringbuf not wstringbuf.
4350
43512021-01-18  Jakub Jelinek  <jakub@redhat.com>
4352
4353	PR debug/98708
4354	* src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
4355	Compile with -gno-as-loc-support.
4356	* src/c++11/Makefile.in: Regenerated.
4357
43582021-01-16  H.J. Lu  <hjl.tools@gmail.com>
4359
4360	* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
4361	Add -fcf-protection=none to -march=i486.
4362
43632021-01-14  François Dumont  <fdumont@gcc.gnu.org>
4364
4365	* testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
4366	compliant.
4367
43682021-01-14  Alexandre Oliva  <oliva@adacore.com>
4369
4370	* testsuite/30_threads/future/members/poll.cc: Calibrate
4371	iteration count.
4372
43732021-01-14  François Dumont  <fdumont@gcc.gnu.org>
4374
4375	PR libstdc++/98466
4376	* include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
4377	(_Node_iterator()): Make default.
4378	(_Node_const_iterator()): Make default.
4379	* include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
4380	iterator checks.
4381	* include/debug/safe_iterator.h
4382	(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
4383	* include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
4384	Likewise.
4385	* include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
4386	_M_singular checks on input iterators.
4387	* src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
4388	checks.
4389	* testsuite/23_containers/deque/debug/98466.cc: New test.
4390	* testsuite/23_containers/unordered_map/debug/98466.cc: New test.
4391
43922021-01-14  Jonathan Wakely  <jwakely@redhat.com>
4393
4394	PR libstdc++/98471
4395	* include/bits/fs_path.h (__throw_conversion_error): New
4396	function to throw or abort on character conversion errors.
4397	(__wstr_from_utf8): Move definition after filesystem_error has
4398	been defined. Use __throw_conversion_error.
4399	(path::_S_convert<_EcharT>): Use __throw_conversion_error.
4400	(path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
4401	(path::u8string): Likewise.
4402
44032021-01-14  Jonathan Wakely  <jwakely@redhat.com>
4404
4405	* include/std/barrier: Update copyright years. Fix whitespace.
4406	* include/std/version: Fix whitespace.
4407	* testsuite/30_threads/barrier/1.cc: Update copyright years.
4408	* testsuite/30_threads/barrier/2.cc: Likewise.
4409	* testsuite/30_threads/barrier/arrive.cc: Likewise.
4410	* testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4411	* testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4412	* testsuite/30_threads/barrier/completion.cc: Likewise.
4413
44142021-01-13  Jonathan Wakely  <jwakely@redhat.com>
4415
4416	* doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
4417
44182021-01-10  David Edelsohn  <dje.gcc@gmail.com>
4419
4420	PR libstdc++/98613
4421	* testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
4422	warning.
4423	* testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
4424
44252021-01-08  Olivier Hainque  <hainque@adacore.com>
4426
4427	* testsuite/20_util/bind/ref_neg.cc: Tweak the
4428	dg-prune-output regex for out-of-build-tree contexts.
4429
44302021-01-07  Thomas Rodgers  <trodgers@redhat.com>
4431
4432	* doc/doxygen/user.cfg.in: Add new header.
4433	* include/Makefile.am (std_headers): likewise.
4434	* include/Makefile.in: Regenerate.
4435	* include/precompiled/stdc++.h: Add new header.
4436	* include/std/barrier: New file.
4437	* include/std/version: Add __cpp_lib_barrier feature test macro.
4438	* testsuite/30_threads/barrier/1.cc: New test.
4439	* testsuite/30_threads/barrier/2.cc: Likewise.
4440	* testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4441	* testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4442	* testsuite/30_threads/barrier/arrive.cc: Likewise.
4443	* testsuite/30_threads/barrier/completion.cc: Likewise.
4444
44452021-01-07  Patrick Palka  <ppalka@redhat.com>
4446
4447	PR libstdc++/98384
4448	* testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
4449	instead of the non-standard nextupl and nextdownl.
4450
44512021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
4452
4453	* configure: Re-generate.
4454
44552021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
4456
4457	* include/precompiled/stdc++.h: Add <source_location> to C++20 section.
4458
44592021-01-01  Jakub Jelinek  <jakub@redhat.com>
4460
4461	* ChangeLog-2020: Rotate ChangeLog.  New file.
4462
4463
4464Copyright (C) 2021 Free Software Foundation, Inc.
4465
4466Copying and distribution of this file, with or without modification,
4467are permitted in any medium without royalty provided the copyright
4468notice and this notice are preserved.
4469