obstack.h __PTR_ALIGN vs. ubsan
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob22f78a38f8a5166ec4b4c252a8622011705d77e7
1 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
3         * include/bits/fs_path.h (path::iterator): Add noexcept to all
4         member functions and friend functions.
5         (distance): Add noexcept.
6         (advance): Add noexcept and inline.
7         * include/experimental/bits/fs_path.h (path::iterator):
8         Add noexcept to all member functions.
10 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
12         PR libstdc++/102270
13         * include/std/tuple (_Tuple_impl): Add constexpr to constructor
14         missed in previous patch.
15         * testsuite/20_util/tuple/cons/102270.C: Moved to...
16         * testsuite/20_util/tuple/cons/102270.cc: ...here.
17         * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
18         constexpr to constructor so it can be used for C++20 tests.
20 2021-09-17  Jonathan Wakely  <jwakely@redhat.com>
22         * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
23         * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
24         * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
25         * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
27 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
29         * src/Makefile.am (stamp-debug): Add all Makefiles as
30         prerequisites.
31         * src/Makefile.in: Regenerate.
33 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
35         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
36         timeout factor to 3.
37         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
39 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
41         * doc/xml/manual/using.xml: Generalize to apply to more than
42         just -std=c++11.
43         * doc/html/manual/using_macros.html: Regenerate.
45 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
47         * include/std/optional (nullptr_t): Make constructor noexcept.
49 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
51         * include/bits/fs_path.h (advance): Remove non-deducible
52         template parameter.
54 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
56         PR libstdc++/102270
57         * include/std/tuple (_Head_base, _Tuple_impl): Add
58         _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
59         (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
60         * testsuite/20_util/tuple/cons/102270.C: New test.
62 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
64         PR libstdc++/102280
65         * include/std/span (span(Range&&)): Add constraint to deduction
66         guide.
68 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
70         * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
71         * src/c++98/Makefile.in: Regenerate.
73 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
75         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
76         (to_string): Add noexcept if the type width is 32 bits or less.
78 2021-09-16  Jonathan Wakely  <jwakely@redhat.com>
80         * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
81         (__uniq_ptr_impl::_M_deleter): Add noexcept.
83 2021-09-16  Thomas Rodgers  <rodgert@twrodgers.com>
85         PR libstdc++/101761
86         * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
87         va and vb as arguments to wait/notify, remove unused bb local.
89 2021-09-15  Hugo Beauzée-Luyssen  <hugo@beauzee.fr>
91         * crossconfig.m4: Check for TLS support on mingw.
92         * configure: Regenerate.
94 2021-09-13  Jason Merrill  <jason@redhat.com>
96         * include/std/version: Define __cpp_lib_hardware_interference_size.
97         * libsupc++/new: Define hardware interference size variables.
99 2021-09-10  Jonathan Wakely  <jwakely@redhat.com>
101         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
102         Fix invalid hostname to only match the .invalid TLD.
104 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
106         * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
107         Add new functions.
108         * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
109         it.
111 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
113         * include/std/atomic: Tweak whitespace.
115 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
117         PR c++/102177
118         * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
119         New function to check if a memory order is valid for the failure
120         case of compare exchange operations.
121         (__atomic_base<I>::compare_exchange_weak): Simplify assertions
122         by using __is_valid_cmpexch_failure_order.
123         (__atomic_base<I>::compare_exchange_strong): Likewise.
124         (__atomic_base<P*>::compare_exchange_weak): Likewise.
125         (__atomic_base<P*>::compare_exchange_strong): Likewise.
126         (__atomic_impl::compare_exchange_weak): Add assertion.
127         (__atomic_impl::compare_exchange_strong): Likewise.
128         * include/std/atomic (atomic::compare_exchange_weak): Likewise.
129         (atomic::compare_exchange_strong): Likewise.
131 2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
133         * include/std/functional (invoke_r): Define.
134         * include/std/version (__cpp_lib_invoke_r): Define.
135         * testsuite/20_util/function_objects/invoke/version.cc: Check
136         for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
137         * testsuite/20_util/function_objects/invoke/4.cc: New test.
139 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
141         PR libstdc++/98421
142         * include/std/span (span(Iter, size_type), span(Iter, Iter)):
143         Add valid range checks.
144         * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
145         * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
147 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
149         * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
150         * configure: Regenerate.
152 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
154         * src/c++11/system_error.cc (error_category::~error_category()):
155         Remove noexcept-specifier.
156         (system_error::~system_error()): Likewise.
157         * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
158         * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
160 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
162         PR libstdc++/102074
163         * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
164         [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
166 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
168         * include/experimental/internet (__make_resolver_error_code):
169         Handle EAI_SYSTEM errors.
170         (basic_resolver_results): Use __make_resolver_error_code. Use
171         Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
173 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
175         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
176         Try other service if "http" fails.
178 2021-08-31  Jonathan Wakely  <jwakely@redhat.com>
180         * testsuite/17_intro/names.cc: Undefine some more names used
181         by Solaris system headers.
183 2021-08-30  Jason Merrill  <jason@redhat.com>
185         PR c++/96286
186         * testsuite/30_threads/promise/requirements/lwg3466.cc:
187         Remove dg-prune-outputs.
189 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
191         * include/bits/alloc_traits.h (allocator_traits): Add explicit
192         specialization for allocator<void>. Improve doxygen comments.
193         * include/bits/allocator.h (allocator<void>): Restore for the
194         versioned namespace.
195         (allocator<void>::construct, allocator<void>::destroy): Remove.
196         * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
197         Add default constructor and converting constructor.
199 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
201         * include/bits/stl_uninitialized.h: Fix typo in comment.
203 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
205         PR libstdc++/99876
206         * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
207         to avoid unnecessary current_path() call.
209 2021-08-28  Jonathan Wakely  <jwakely@redhat.com>
211         * include/bits/std_function.h (function::function(F&&)): Give
212         name to defaulted template parameter, to improve diagnostics.
213         Use markdown for more doxygen comments.
215 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
217         * include/bits/std_function.h (function): Adjust doxygen
218         comments.
219         * include/bits/unique_ptr.h (make_unique_for_overwrite):
220         Change parameter name to match doxygen comment.
222 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
224         * include/bits/std_function.h (_function_base::_Base_manager):
225         Replace _M_init_functor with a function template using a
226         forwarding reference, and a pair of _M_create function
227         templates. Reuse _M_create for the clone operation.
228         (function::_Decay_t): New alias template.
229         (function::_Callable): Simplify by using _Decay.
230         (function::function(F)): Change parameter to forwarding
231         reference, as per LWG 2447. Add noexcept-specifier. Simplify
232         constraints.
233         (function::operator=(F&&)): Add noexcept-specifier.
234         * testsuite/20_util/function/cons/lwg2774.cc: New test.
235         * testsuite/20_util/function/cons/noexcept.cc: New test.
237 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
239         * include/bits/std_function.h (function::function(F)): Add
240         static assertions to check constructibility requirements.
242 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
244         PR libstdc++/100285
245         * configure.ac: Check for O_NONBLOCK.
246         * configure: Regenerate.
247         * include/experimental/internet: Include <ws2tcpip.h> for
248         Windows.  Use preprocessor conditions around more constants.
249         * include/experimental/socket: Use preprocessor conditions
250         around more constants.
251         * testsuite/experimental/net/internet/resolver/base.cc: Only use
252         constants when the corresponding C macro is defined.
253         * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
254         * testsuite/experimental/net/socket/socket_base.cc: Likewise.
255         Make preprocessor checks more fine-grained.
257 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
259         * testsuite/17_intro/names.cc: Check 'sz'.
261 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
263         * testsuite/17_intro/names.cc: Adjust for Windows.
265 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
267         * include/std/valarray: Uglify 'func' parameters.
268         * testsuite/17_intro/names.cc: Add 'func' to checks.
270 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
272         PR libstdc++/102064
273         * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
274         Define macro to check conditions for optimizing trivial cases.
275         (__check_constructible): New function to do static assert.
276         (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
277         Use new macro.
278         * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
279         Adjust dg-error pattern.
280         * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
281         C++17-specific checks from 89164_c++17.cc.
282         * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
283         * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
284         New test.
285         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
286         New test.
287         * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
288         New test.
289         * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
290         New test.
292 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
294         PR libstdc++/102048
295         * include/ext/rope (rope::erase(size_type)): Remove broken
296         function.
298 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
300         * doc/xml/manual/status_cxx2020.xml: Update table.
301         * doc/html/manual/status.html: Regenerate.
303 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
305         * include/std/type_traits (is_layout_compatible): Define.
306         (is_corresponding_member): Define.
307         * include/std/version (__cpp_lib_is_layout_compatible): Define.
308         * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
309         New test.
310         * testsuite/20_util/is_layout_compatible/value.cc: New test.
311         * testsuite/20_util/is_layout_compatible/version.cc: New test.
312         * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
313         New test.
314         * testsuite/23_containers/span/layout_compat.cc: Do not use real
315         std::is_layout_compatible trait if available.
317 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
319         * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
320         explicit instantiation definitions.
322 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
324         * include/std/ranges (basic_istream_view): Add default template
325         argument.
326         * testsuite/std/ranges/istream_view.cc: Check it.
328 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
330         * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
331         precondition check.
333 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
335         PR libstdc++/90787
336         * testsuite/util/testsuite_fs.h (permissions_are_testable):
337         Define as inline.
339 2021-08-20  Jonathan Wakely  <jwakely@redhat.com>
341         PR libstdc++/90787
342         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
343         Use new __gnu_test::permissions_are_testable() function.
344         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
345         Likewise.
346         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
347         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
348         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
349         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
350         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
351         * testsuite/27_io/filesystem/operations/symlink_status.cc:
352         Likewise.
353         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
354         Likewise.
355         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
356         Likewise.
357         * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
358         Likewise.
359         * testsuite/experimental/filesystem/operations/exists.cc:
360         Likewise.
361         * testsuite/experimental/filesystem/operations/is_empty.cc:
362         Likewise.
363         * testsuite/experimental/filesystem/operations/remove.cc:
364         Likewise.
365         * testsuite/experimental/filesystem/operations/remove_all.cc:
366         Likewise.
367         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
368         Likewise.
369         * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
370         New function to guess whether testing permissions will work.
372 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
374         * doc/xml/manual/status_cxx2020.xml: Move row  earlier in table.
375         * doc/html/manual/status.html: Regenerate.
377 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
379         * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
381 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
383         PR libstdc++/101965
384         * include/std/charconv (__to_chars_i): Remove redundant check.
386 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
388         PR libstdc++/101960
389         * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
390         class' move constructor. Define as defaulted for versioned
391         namespace.
392         * testsuite/20_util/tuple/cons/101960.cc: New test.
394 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
396         PR libstdc++/100139
397         * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
398         * doc/html/manual/status.html: Regenerate.
400 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
402         * include/bits/shared_ptr.h: Add @since and @headerfile tags.
403         * include/bits/unique_ptr.h: Add @headerfile tags.
405 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
407         * src/filesystem/ops-common.h (filesystem::file_time): Improve
408         overflow check by using system_clock::duration::max().
410 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
412         * include/bits/stl_tree.h: Tweak whitespace.
414 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
416         * include/bits/unique_ptr.h (default_delete): Add @since tag.
417         (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
418         (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
419         @param, and @returns.
420         (_MakeUniq): Move to __detail namespace. Add alias template
421         helpers.
423 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
425         * include/bits/stl_function.h: Improve doxygen comments.
427 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
429         * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
430         processing for C++20 components and components that depend on
431         compiler features.
432         * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
433         * include/std/type_traits: Improve doxygen comments for C++20
434         traits.
436 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
438         * include/ext/type_traits.h (__promote_2, __promote_3)
439         (__promote_4): Redfine as alias templates using __promoted_t.
440         * include/std/complex (__promote_2): Remove partial
441         specializations for std::complex.
443 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
445         * include/bits/stl_algo.h (min(initializer_list<T>))
446         (min(initializer_list<T>, Compare)): Call __min_element directly to
447         avoid redundant debug checks for valid ranges.
448         (max(initializer_list<T>), max(initializer_list<T>, Compare)):
449         Likewise, for __max_element.
450         (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
451         Likewise, for __minmax_element.
453 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
455         * include/debug/deque (deque(size_type, const T&, const A&)):
456         Prevent class template argument deduction and replace with a
457         deduction guide.
458         * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
459         Likewise.
460         * include/debug/list (list(size_type, const T&, const A&)):
461         Likewise.
462         * include/debug/vector (vector(size_type, const T&, const A&)):
463         Likewise.
465 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
467         * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
468         'std::vector<bool>::reference' as type name, not _Bit_reference.
469         (build_libstdcxx_dictionary): Register printers for vector<bool>
470         types in debug mode too.
471         * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
472         output for invalid _Bit_reference. Use vector<bool>::reference
473         instead of _Bit_reference.
474         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
476 2021-08-17  Thomas Schwinge  <thomas@codesourcery.com>
478         * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
479         continued.
481 2021-08-17  Luc Michel  <lmichel@kalray.eu>
482             Marc Poulhies  <mpoulhies@kalrayinc.com>
484         * testsuite/lib/gdb-test.exp (gdb_version_check)
485         (gdb_version_check_xmethods): Only check the GDB version for
486         local native targets.
488 2021-08-17  Antony Polukhin  <antoshkka@gmail.com>
489             Jonathan Wakely  <jwakely@redhat.com>
491         * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
492         if distance is O(1).
493         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
494         line number.
496 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
498         * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
499         construction from input iterators.
501 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
503         * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
505 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
507         PR libstdc++/101923
508         * include/bits/std_function.h (function(function&&)): Check for
509         non-empty parameter before doing any work.
511 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
513         * include/bits/cow_string.h (basic_string::contains): Do not
514         define for -std=gnu++20.
516 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
518         * include/bits/ranges_util.h (__not_same_as): Rename to
519         __different_from.
520         * include/std/ranges (__not_same_as): Likewise.
522 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
524         * include/std/utility (exchange): Add noexcept-specifier.
525         * testsuite/20_util/exchange/noexcept.cc: New test.
527 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
529         * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
530         (build_libstdcxx_dictionary): Register printer for
531         std::error_code and std::error_condition.
532         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
534 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
536         PR libstdc++/101937
537         * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
538         static data member.
539         (print_word): Use qualified-id to access it.
541 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
543         * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
544         Install another copy of the GDB hook.
545         * python/Makefile.in: Regenerate.
547 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
549         PR libstdc++/101870
550         * include/c_global/cmath (hypot): Use __promoted_t.
551         (lerp): Add new overload accepting any arithmetic types.
552         * include/ext/type_traits.h (__promoted_t): New alias template.
553         * testsuite/26_numerics/lerp.cc: Moved to...
554         * testsuite/26_numerics/lerp/1.cc: ...here.
555         * testsuite/26_numerics/lerp/constexpr.cc: New test.
556         * testsuite/26_numerics/lerp/version.cc: New test.
558 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
560         * testsuite/26_numerics/lerp.cc: Add header name to #error.
561         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
562         * testsuite/26_numerics/midpoint/version.cc: New test.
564 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
566         * include/experimental/random (experimental::randint): Add
567         nodiscard attribute.
569 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
571         * src/c++98/locale_init.cc: Require C++11.
572         * src/c++98/localename.cc: Likewise.
573         * src/c++98/misc-inst.cc: Require C++98.
575 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
577         PR libstdc++/101866
578         * testsuite/experimental/random/randint.cc: Loop and retry if
579         reseed() produces the same sequence.
581 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
583         * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
584         (is_pointer_interconvertible_base_of_v)
585         (is_pointer_interconvertible_base_of): Define for C++20.
586         * include/std/version (__cpp_lib_is_pointer_interconvertible):
587         Define.
588         * testsuite/23_containers/span/layout_compat.cc: Use correct
589         feature test macro for std::is_layout_compatible_v.
590         * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
591         * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
593 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
595         * include/bits/regex.h (basic_regex::transform_primary): Use
596         _GLIBCXX_STD_C::vector for local variable.
597         * include/bits/regex.tcc (__regex_algo_impl): Use reference to
598         _GLIBCXX_STD_C::vector base class of match_results.
599         * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
600         _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
601         variables.
602         * include/bits/regex_compiler.h (_BracketMatcher): Use
603         _GLIBCXX_STD_C::vector for data members.
604         * include/bits/regex_executor.h (_Executor): Likewise.
605         * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
607 2021-08-09  François Dumont  <fdumont@gcc.gnu.org>
609         * include/debug/safe_container.h
610         (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
611         (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
612         (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
614 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
616         * testsuite/23_containers/unordered_map/cons/default.cc: Add
617         equality comparison operators to allocator.
618         * testsuite/23_containers/unordered_set/cons/default.cc:
619         Likewise.
621 2021-08-08  François Dumont  <fdumont@gcc.gnu.org>
623         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
624         dg-prune-output reason with 'builtin_unreachable'.
625         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
626         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
627         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
628         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
629         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
630         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
631         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
632         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
634 2021-08-08  Hans-Peter Nilsson  <hp@bitrange.com>
636         * testsuite/std/ranges/iota/max_size_type.cc: Set
637         dg-timeout-factor to 4.
639 2021-08-06  Jonathan Wakely  <jwakely@redhat.com>
641         * libsupc++/compare (compare_three_way, strong_order)
642         (weak_order, partial_order, compare_strong_order_fallback)
643         (compare_weak_order_fallback, compare_partial_order_fallback):
644         Move nodiscard attributes to correct location.
646 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
648         PR libstdc++/101782
649         * include/bits/ranges_base.h (ranges::begin, ranges::end)
650         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
651         (ranges::empty, ranges::data): Move attribute after the
652         declarator-id instead of at the end of the declarator.
653         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
654         Move attributes back to the start of the function declarator,
655         but move the requires-clause to the end.
656         (common_iterator): Move attribute after the declarator-id.
657         * include/bits/stl_queue.h (queue): Remove ill-formed attributes
658         from friend declaration that are not definitions.
659         * include/std/ranges (views::all, views::filter)
660         (views::transform, views::take, views::take_while,
661         views::drop) (views::drop_while, views::join,
662         views::lazy_split) (views::split, views::counted,
663         views::common, views::reverse) (views::elements): Move
664         attributes after the declarator-id.
666 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
668         * libsupc++/compare (partial_ordering, weak_ordering)
669         (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
670         (compare_three_way, strong_order, weak_order, partial_order)
671         (compare_strong_order_fallback, compare_weak_order_fallback)
672         (compare_partial_order_fallback, __detail::__synth3way): Add
673         nodiscard attribute.
674         * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
675         -Wno-unused-result to options.
677 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
679         PR libstdc++/101782
680         * include/bits/ranges_base.h (ranges::begin, ranges::end)
681         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
682         (ranges::empty, ranges::data): Move attribute to the end of
683         the declarator.
684         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
685         (common_iterator): Likewise for non-member operator functions.
686         * include/std/ranges (views::all, views::filter)
687         (views::transform, views::take, views::take_while, views::drop)
688         (views::drop_while, views::join, views::lazy_split)
689         (views::split, views::counted, views::common, views::reverse)
690         (views::elements): Likewise.
691         * testsuite/std/ranges/access/101782.cc: New test.
693 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
695         * include/bits/forward_list.h: Add [[nodiscard]] to functions
696         with no side-effects.
697         * include/bits/stl_bvector.h: Likewise.
698         * include/bits/stl_deque.h: Likewise.
699         * include/bits/stl_list.h: Likewise.
700         * include/bits/stl_queue.h: Likewise.
701         * include/bits/stl_stack.h: Likewise.
702         * include/bits/stl_vector.h: Likewise.
703         * include/debug/deque: Likewise.
704         * include/debug/forward_list: Likewise.
705         * include/debug/list: Likewise.
706         * include/debug/safe_iterator.h: Likewise.
707         * include/debug/vector: Likewise.
708         * include/std/array: Likewise.
709         * testsuite/23_containers/array/creation/3_neg.cc: Use
710         -Wno-unused-result.
711         * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
712         to void.
713         * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
714         * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
715         * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
716         * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
717         Likewise.
718         * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
719         Likewise.
720         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
721         Adjust dg-error line numbers.
722         * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
723         result to void.
724         * testsuite/23_containers/deque/debug/invalidation/4.cc:
725         Likewise.
726         * testsuite/23_containers/deque/types/1.cc: Use
727         -Wno-unused-result.
728         * testsuite/23_containers/list/types/1.cc: Cast result to void.
729         * testsuite/23_containers/priority_queue/members/7161.cc:
730         Likewise.
731         * testsuite/23_containers/queue/members/7157.cc: Likewise.
732         * testsuite/23_containers/vector/59829.cc: Likewise.
733         * testsuite/23_containers/vector/ext_pointer/types/1.cc:
734         Likewise.
735         * testsuite/23_containers/vector/ext_pointer/types/2.cc:
736         Likewise.
737         * testsuite/23_containers/vector/types/1.cc: Use
738         -Wno-unused-result.
740 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
742         * include/bits/iterator_concepts.h (iter_move): Add
743         [[nodiscard]].
744         * include/bits/range_access.h (begin, end, cbegin, cend)
745         (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
746         * include/bits/ranges_base.h (ranges::begin, ranges::end)
747         (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
748         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
749         (ranges::empty, ranges::data, ranges::cdata): Likewise.
750         * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
751         (back_insert_iterator, front_insert_iterator, insert_iterator)
752         (move_iterator, move_sentinel, common_iterator)
753         (counted_iterator): Likewise.
754         * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
755         Likewise.
756         * include/bits/stream_iterator.h (istream_iterator)
757         (ostream_iterartor): Likewise.
758         * include/bits/streambuf_iterator.h (istreambuf_iterator)
759         (ostreambuf_iterator): Likewise.
760         * include/std/ranges (views::single, views::iota, views::all)
761         (views::filter, views::transform, views::take, views::take_while)
762         (views::drop, views::drop_while, views::join, views::lazy_split)
763         (views::split, views::counted, views::common, views::reverse)
764         (views::elements): Likewise.
765         * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
766         * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
767         * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
768         Likewise.
769         * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
770         * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
771         Likewise.
772         * testsuite/21_strings/basic_string/range_access/char/1.cc:
773         Cast result to void.
774         * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
775         Likewise.
776         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
777         Likewise.
778         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
779         Likewise.
780         * testsuite/23_containers/array/range_access.cc: Likewise.
781         * testsuite/23_containers/deque/range_access.cc: Likewise.
782         * testsuite/23_containers/forward_list/range_access.cc:
783         Likewise.
784         * testsuite/23_containers/list/range_access.cc: Likewise.
785         * testsuite/23_containers/map/range_access.cc: Likewise.
786         * testsuite/23_containers/multimap/range_access.cc: Likewise.
787         * testsuite/23_containers/multiset/range_access.cc: Likewise.
788         * testsuite/23_containers/set/range_access.cc: Likewise.
789         * testsuite/23_containers/unordered_map/range_access.cc:
790         Likewise.
791         * testsuite/23_containers/unordered_multimap/range_access.cc:
792         Likewise.
793         * testsuite/23_containers/unordered_multiset/range_access.cc:
794         Likewise.
795         * testsuite/23_containers/unordered_set/range_access.cc:
796         Likewise.
797         * testsuite/23_containers/vector/range_access.cc: Likewise.
798         * testsuite/24_iterators/customization_points/iter_move.cc:
799         Likewise.
800         * testsuite/24_iterators/istream_iterator/sentinel.cc:
801         Likewise.
802         * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
803         Likewise.
804         * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
805         * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
806         * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
807         * testsuite/24_iterators/range_access/range_access.cc:
808         Likewise.
809         * testsuite/24_iterators/range_operations/100768.cc: Likewise.
810         * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
811         * testsuite/28_regex/range_access.cc: Likewise.
812         * testsuite/experimental/string_view/range_access/char/1.cc:
813         Likewise.
814         * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
815         Likewise.
816         * testsuite/ext/vstring/range_access.cc: Likewise.
817         * testsuite/std/ranges/adaptors/take.cc: Likewise.
818         * testsuite/std/ranges/p2259.cc: Likewise.
820 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
822         * include/bits/random.tcc (linear_congruential_engine): Do not
823         define static constexpr members when they are implicitly inline.
824         * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
825         (__ratio_add, __ratio_subtract): Likewise.
826         * include/std/type_traits (integral_constant): Likewise.
827         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
828         line number.
830 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
832         * testsuite/util/testsuite_common_types.h: Replace uses of
833         tr1::unordered_map and tr1::unordered_set with their C++11
834         equivalents.
835         * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
836         dg-error line number.
837         * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
838         * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
839         Likewise.
840         * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
841         Likewise.
842         * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
843         Likewise.
844         * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
845         Likewise.
846         * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
847         Likewise.
849 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
851         * include/std/memory_resource (polymorphic_allocator::delete_object):
852         Call destructor directly instead of using destroy.
853         (allocator_traits<polymorphic_allocator<T>>): Define partial
854         specialization.
856 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
858         * testsuite/20_util/function_objects/binders/3113.cc: Remove
859         trailing whitespace.
860         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
861         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
862         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
863         Likewise.
864         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
865         * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
866         Likewise.
867         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
868         Likewise.
869         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
870         Likewise.
872 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
874         * doc/xml/manual/evolution.xml: Document deprecation.
875         * doc/html/*: Regenerate.
876         * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
877         (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
878         * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
879         and later.
880         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
881         for C++11 and C++14 changes to std::random_shuffle and
882         std::shuffle.
883         * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
884         use deprecated algorithms.
885         * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
886         * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
887         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
888         Likewise.
889         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
890         Likewise.
892 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
894         * testsuite/23_containers/forward_list/operations/3.cc:
895         Use lambda instead of std::bind2nd.
896         * testsuite/20_util/function_objects/binders/3113.cc: Add
897         options for testing deprecated features.
898         * testsuite/20_util/pair/cons/99957.cc: Likewise.
899         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
900         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
901         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
902         Likewise.
903         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
904         * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
905         * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
906         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
907         * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
908         * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
909         * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
910         Likewise.
911         * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
912         Likewise.
913         * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
914         New proc.
916 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
918         * include/bits/regex_executor.h (_State_info): Replace
919         unique_ptr<bool[]> with array of bool.
920         * include/bits/regex_executor.tcc: Likewise.
921         * include/bits/regex_scanner.tcc: Replace std::strchr with
922         __builtin_strchr.
923         * include/std/regex: Replace standard headers with smaller
924         internal ones.
925         * testsuite/28_regex/traits/char/lookup_classname.cc: Include
926         <string.h> for strlen.
927         * testsuite/28_regex/traits/char/lookup_collatename.cc:
928         Likewise.
930 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
932         * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
933         RAII class template.
934         (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
935         instead of unique_ptr.
937 2021-08-02  Patrick Palka  <ppalka@redhat.com>
939         PR libstdc++/101599
940         * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
941         Add missing std::move in return statement.
942         (__partition_copy_fn::operator()): Rename templtae parameter
943         _O2 to _Out2.  Uglify function parameters out_true and out_false.
944         * include/bits/ranges_algobase.h (__copy_or_move): Add missing
945         std::move to recursive call that unwraps a __normal_iterator
946         output iterator.
947         * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
948         * testsuite/25_algorithms/move/constrained.cc (test05): New test.
950 2021-08-02  Patrick Palka  <ppalka@redhat.com>
952         PR libstdc++/101589
953         * include/std/ranges (lazy_split_view::_InnerIter::base): Make
954         the const& overload unconstrained and return a const reference
955         as per LWG 3533.  Make unconditionally noexcept.
956         (elements_view::base): Revert accidental r12-569 change.
957         (elements_view::_Iterator::base): Make the const& overload
958         unconstrained and return a const reference as per LWG 3533.
959         Make unconditionally noexcept.
961 2021-08-02  Patrick Palka  <ppalka@redhat.com>
963         PR libstdc++/101483
964         * include/std/ranges (join_view::_Iterator::_Iterator): Add
965         missing std::move.
967 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
969         PR libstdc++/101709
970         * src/filesystem/ops-common.h (get_temp_directory_from_env):
971         Add error_code parameter.
972         * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
973         argument to get_temp_directory_from_env and check it.
974         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
976 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
978         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
979         Add dg-error for c++11_only target.
981 2021-07-30  Jonathan Wakely  <jwakely@redhat.com>
983         PR libstdc++/65018
984         * configure.ac: Check for secure_getenv.
985         * config.h.in: Regenerate.
986         * configure: Regenerate.
987         * src/filesystem/ops-common.h (get_temp_directory_from_env): New
988         helper function to obtain path from the environment.
989         * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
990         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
991         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
992         Print messages if test cannot be run.
993         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
994         Likewise. Fix incorrect condition. Use "TMP" to work with
995         Windows as well as POSIX.
997 2021-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
999         * src/c++17/memory_resource.cc: Use __exchange instead
1000         of std::exchange.
1002 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1004         * include/experimental/optional (__throw_bad_optional_access):
1005         Replace GNU attribute with C++11 attribute.
1006         (optional::value, optional::value_or): Use if statements
1007         instead of conditional expressions.
1008         * include/std/optional (__throw_bad_optional_access)
1009         (optional::value, optional::value_or): Likewise.
1011 2021-07-27  Marek Polacek  <polacek@redhat.com>
1013         DR 1512
1014         PR c++/99701
1015         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1016         Move a line...
1017         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1018         ...here.  New test.
1020 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1022         * include/bits/cow_string.h: Consistently use tab for
1023         indentation.
1025 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1027         * include/Makefile.am: Add new header.
1028         * include/Makefile.in: Regenerate.
1029         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1030         (basic_string): Move definition of Copy-on-Write string to
1031         new file.
1032         * include/bits/basic_string.tcc: Likewise.
1033         * include/bits/cow_string.h: New file.
1035 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1037         * include/std/algorithm: Do not include <utility>.
1038         * include/std/functional: Likewise.
1039         * include/std/regex: Include <bits/stl_pair.h> instead of
1040         <utility>.
1041         * include/debug/map.h: Likewise.
1042         * include/debug/multimap.h: Likewise.
1043         * include/debug/multiset.h: Likewise.
1044         * include/debug/set.h: Likewise.
1045         * include/debug/vector: Likewise.
1046         * include/bits/fs_path.h: Likewise.
1047         * include/bits/unique_ptr.h: Do not include <utility>.
1048         * include/experimental/any: Likewise.
1049         * include/experimental/executor: Likewise.
1050         * include/experimental/memory: Likewise.
1051         * include/experimental/optional: Likewise.
1052         * include/experimental/socket: Use __exchange instead
1053         of std::exchange.
1054         * src/filesystem/ops-common.h: Likewise.
1055         * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
1056         errors to not use a hardcoded line number.
1057         * testsuite/20_util/default_delete/void_neg.cc: Likewise.
1058         * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1059         Include <utility> for std::as_const.
1060         * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1061         Likewise.
1062         * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1063         Likewise.
1064         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1065         Likewise.
1066         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1067         Adjust dg-error line number.
1069 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
1071         * include/Makefile.am: Add bits/utility.h header.
1072         * include/Makefile.in: Regenerate.
1073         * include/bits/utility.h: New file.
1074         * include/std/utility (tuple_size, tuple_element): Move
1075         to new header.
1076         * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
1077         Move to <tuple>.
1078         (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
1079         (in_place_t, in_place_index_t, in_place_type_t): Likewise.
1080         * include/bits/ranges_util.h: Include new header instead of
1081         <utility>.
1082         * include/bits/stl_pair.h (tuple_size, tuple_element): Move
1083         partial specializations for std::pair here.
1084         (get): Move overloads for std::pair here.
1085         * include/std/any: Include new header instead of <utility>.
1086         * include/std/array: Likewise.
1087         * include/std/memory_resource: Likewise.
1088         * include/std/optional: Likewise.
1089         * include/std/variant: Likewise.
1090         * include/std/tuple: Likewise.
1091         (__is_tuple_like_impl<tuple<T...>>): Move here.
1092         (get) Declare overloads for std::array.
1093         * include/std/version (__cpp_lib_tuples_by_type): Change type
1094         to long.
1095         * testsuite/20_util/optional/84601.cc: Include <utility>.
1096         * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1097         Likewise.
1098         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1099         Adjust dg-error line numbers.
1100         * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
1101         * testsuite/std/ranges/access/cend.cc: Likewise.
1102         * testsuite/std/ranges/access/end.cc: Likewise.
1103         * testsuite/std/ranges/single_view.cc: Likewise.
1105 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
1107         * include/std/future: Include <bits/atomic_base.h> instead of
1108         <atomic>.
1110 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
1112         * include/bits/stl_relops.h: Update documentation comments.
1114 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1116         PR libstdc++/101583
1117         * include/bits/hashtable.h (_Hashtable): Replace mixin with
1118         _Enable_default_ctor. Construct it explicitly in all
1119         non-forwarding, non-defaulted constructors.
1120         * testsuite/23_containers/unordered_map/cons/default.cc: Check
1121         non-default constructors can be used.
1122         * testsuite/23_containers/unordered_set/cons/default.cc:
1123         Likewise.
1125 2021-07-22  David Edelsohn  <dje.gcc@gmail.com>
1127         * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
1129 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1131         PR libstdc++/94295
1132         * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
1133         (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
1134         (allocator::allocate, allocator::deallocate): Use new macros.
1136 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1138         PR libstdc++/101571
1139         * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
1140         constructor parameter to reference and use addressof.
1141         * testsuite/util/testsuite_iterators.h: Define deleted operator&
1142         overloads for test iterators.
1144 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1146         * include/bits/std_function.h (_Function_base): Add
1147         default member initializers and define constructor as defaulted.
1148         (function::_M_invoker): Add default member initializer.
1150 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
1152         PR libstdc++/100682
1153         * doc/xml/manual/debug_mode.xml: Update documentation about
1154         debug capability of std::array.
1155         * doc/html/*: Regenerate.
1156         * include/debug/array: New file.
1158 2021-07-21  Jonathan Wakely  <jwakely@redhat.com>
1160         PR libstdc++/101542
1161         * include/ext/rope (sequence_buffer): Add move constructor and
1162         move assignment operator.
1163         * testsuite/ext/rope/101542.cc: New test.
1165 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
1167         PR libstdc++/101510
1168         * src/c++17/fs_ops.cc (fs::create_directories): Use status
1169         instead of symlink_status.
1170         * src/filesystem/ops.cc (fs::create_directories): Likewise.
1171         * testsuite/27_io/filesystem/operations/create_directories.cc:
1172         Check symlink to existing directory.
1173         * testsuite/27_io/filesystem/operations/create_directory.cc: Do
1174         not test with symlinks on Windows.
1175         * testsuite/experimental/filesystem/operations/create_directories.cc:
1176         Check symlink to existing directory.
1177         * testsuite/experimental/filesystem/operations/create_directory.cc:
1178         Do not test with symlinks on Windows.
1180 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
1182         PR libstdc++/100863
1183         * include/bits/hashtable.h (_Hashtable): Conditionally delete
1184         default constructor by deriving from _Enable_special_members.
1185         * testsuite/23_containers/unordered_map/cons/default.cc: New test.
1186         * testsuite/23_containers/unordered_set/cons/default.cc: New test.
1188 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
1190         PR libstdc++/101510
1191         * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
1192         * testsuite/27_io/filesystem/operations/create_directory.cc:
1193         Test creating directory with name of existing symlink to
1194         directory.
1195         * testsuite/experimental/filesystem/operations/create_directory.cc:
1196         Likewise.
1198 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1200         * include/std/tuple (get<I>): Add deleted overload for bad
1201         index.
1202         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1203         expected errors.
1205 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1207         * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
1208         Use __int_traits unconditionally.
1210 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1212         * include/bits/random.h (_Shift::__value): Use constexpr.
1213         (_Select_uint_least_t::type): Use using-declaration.
1214         (_Mod): Likewise.
1215         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1216         line number.
1218 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1220         * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1221         instead of diagnostic pragmas.
1222         * include/bits/functional_hash.h: Likewise.
1223         * include/bits/iterator_concepts.h (__is_signed_int128)
1224         (__is_unsigned_int128): Likewise.
1225         * include/bits/max_size_type.h (__max_size_type): Likewise.
1226         (numeric_limits<__max_size_type>): Likewise.
1227         * include/bits/std_abs.h (abs): Likewise.
1228         * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1229         * include/bits/uniform_int_dist.h (uniform_int_distribution):
1230         Likewise.
1231         * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1232         Likewise.
1233         * include/std/type_traits (__is_integral_helper<INT_N>)
1234         (__is_signed_integer, __is_unsigned_integer)
1235         (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1236         * include/std/limits (__INT_N): Add __extension__ keyword.
1237         * include/bits/random.h (_Select_uint_least_t)
1238         (random_device): Likewise.
1240 2021-07-16  Patrick Palka  <ppalka@redhat.com>
1242         PR libstdc++/101231
1243         * include/std/ranges (_CachedPosition::_M_get): For non-forward
1244         ranges, just call __builtin_unreachable.
1245         * testsuite/std/ranges/istream_view.cc (test05): New test.
1247 2021-07-16  Patrick Palka  <ppalka@redhat.com>
1249         PR libstdc++/101214
1250         * include/std/ranges (split_view::split_view): Use std::move.
1251         (split_view::_Iterator::_Iterator): Remove redundant
1252         default_initializable constraint.
1253         (split_view::_Sentinel::_Sentinel): Declare.
1254         * testsuite/std/ranges/adaptors/split.cc (test02): New test.
1256 2021-07-16  Marek Polacek  <polacek@redhat.com>
1258         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1259         dg-error.
1261 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1263         * include/bits/unique_ptr.h: Adjust doxygen markup.
1265 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1267         PR libstdc++/101307
1268         * include/std/type_traits: Adjust doxygen markup.
1270 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1272         * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
1273         uses of non-standard integer types.
1274         * include/bits/functional_hash.h: Likewise.
1275         * include/bits/iterator_concepts.h: Likewise.
1276         * include/bits/max_size_type.h: Likewise.
1277         * include/bits/std_abs.h: Likewise.
1278         * include/bits/stl_algobase.h: Likewise.
1279         * include/bits/uniform_int_dist.h: Likewise.
1280         * include/ext/numeric_traits.h: Likewise.
1281         * include/std/type_traits: Likewise.
1283 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
1285         PR libstdc++/101427
1286         * include/std/tuple (tuple_element): Improve static_assert text.
1287         (__get_helper): Add deleted overload.
1288         (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
1289         __get_helper directly.
1290         (__get_helper2): Remove.
1291         (__find_uniq_type_in_pack): New constexpr helper function.
1292         (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
1293         of __get_helper2.
1294         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1295         expected errors.
1296         * testsuite/20_util/tuple/element_access/101427.cc: New test.
1298 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
1300         PR libstdc++/101429
1301         * include/bits/c++config (__replacement_assert): Add noexcept.
1302         [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1303         instead of __replacement_assert.
1305 2021-07-14  Jonathan Wakely  <jwakely@redhat.com>
1307         * include/std/string_view (basic_string_view(It, End)): Add
1308         noexcept-specifier.
1309         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1310         Check noexcept-specifier. Also check construction without CTAD.
1312 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
1314         PR c++/101361
1315         * include/std/string_view (ends_with): Use traits_type::compare
1316         directly.
1318 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
1320         * include/std/string_view: Only include <bits/ranges_base.h>
1321         once, and only for C++20 and later.
1323 2021-07-12  Jonathan Wakely  <jwakely@redhat.com>
1325         PR libstdc++/101411
1326         * include/std/span (as_writable_bytes): Add requires-clause.
1327         * testsuite/23_containers/span/101411.cc: New test.
1329 2021-07-09  Matheus Castanho  <msc@linux.ibm.com>
1331         * include/std/mutex (__lock_impl): Check
1332         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1334 2021-07-02  Jonathan Wakely  <jwakely@redhat.com>
1336         PR libstdc++/101271
1337         * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
1338         Remove noexcept-specifier.
1339         (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
1340         * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
1341         operator[].
1343 2021-07-01  Jonathan Wakely  <jwakely@redhat.com>
1345         * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
1346         * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
1347         Add some more predefined macros.
1348         * include/bits/fs_fwd.h: Move @addtogroup commands inside
1349         namespaces. Add better documentation.
1350         * include/bits/fs_path.h: Likewise.
1351         * include/experimental/bits/fs_fwd.h: Likewise.
1352         * include/experimental/bits/fs_path.h: Likewise.
1353         * include/ext/throw_allocator.h: Fix typo and improve docs.
1354         * include/std/chrono: Move @addtogroup commands.
1355         * include/std/system_error: Move @addtogroup commands.
1356         * libsupc++/exception: Improve documentation.
1357         * libsupc++/exception.h: Add @since documentation.
1359 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
1361         PR libstdc++/101258
1362         * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
1363         (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
1364         (PREDEFINED): Add/fix some more macros that need to be expanded.
1365         * include/bits/random.h: Stop Doxygen from documenting internal
1366         implementation details.
1367         * include/bits/random.tcc: Likewise.
1368         * include/bits/this_thread_sleep.h: Fix @file name.
1369         * include/experimental/bits/simd.h: Add to Doxygen group. Do not
1370         document internal implementation details.
1371         * include/experimental/bits/simd_detail.h: Do not document
1372         internal implementation details.
1373         * include/experimental/simd: Define Doxygen groups.
1374         * include/experimental/type_traits: Improve documentation for
1375         the header file. Define groups. Use @since commands.
1376         * include/std/scoped_allocator (scoped_allocator_adaptor): Move
1377         declaration before undocumented region.
1378         * include/std/type_traits (true_type, false_type): Use using
1379         declaration instead of typedef.
1380         (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
1381         (is_nothrow_invocable_r_v): Move definitions next to other C++17
1382         variable templates.
1383         Do not document internal implementation details. Move misplaced
1384         group-end command. Define group for variable templates.
1385         * include/std/variant: Do not document internal implementation
1386         details.
1387         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1388         line number.
1390 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
1392         * include/experimental/simd: Do not define anything pre-C++17.
1394 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
1396         * include/bits/random.tcc [__cpp_inline_variables]: Remove
1397         redundant definitions of static constexpr member variables.
1398         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1399         line number.
1401 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1403         * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
1404         explicit instantiation declarations.
1405         * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
1406         explicit instantiation definitions.
1408 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1410         PR libstdc++/97088
1411         * testsuite/17_intro/names.cc: Fix #if condition for names used
1412         by newlib headers.
1414 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1416         PR libstdc++/101236
1417         * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
1418         Fail gracefully if element_type is incomplete.
1419         * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
1420         the standard doesn't require this test to work for array types.
1421         * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
1422         types can be used with array specialization.
1423         * testsuite/20_util/unique_ptr/101236.cc: New test.
1425 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1427         * doc/xml/manual/intro.xml: Document LWG 415 change.
1428         * doc/html/manual/bugs.html: Regenerate.
1429         * include/bits/istream.tcc (ws): Create sentry and catch
1430         exceptions.
1431         * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
1432         * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
1434 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1436         * include/bits/ostream.tcc (basic_ostream::write): Call sputn
1437         directly instead of using _M_write. Do setstate(__err) all
1438         outside the try-catch block.
1439         * include/std/ostream (basic_ostream::_M_write): Declare
1440         private. Use __ostream_insert. Do not define for the versioned
1441         namespace.
1443 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1445         * doc/xml/manual/intro.xml: Document LWG 581 change.
1446         * doc/html/manual/bugs.html: Regenerate.
1447         * include/bits/basic_ios.tcc: Whitespace.
1448         * include/bits/ostream.tcc (basic_ostream::flush()): Construct
1449         sentry.
1450         * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
1451         additional cases.
1452         * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
1453         Likewise.
1454         * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
1455         * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
1456         Likewise.
1458 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1460         * include/bits/ostream.tcc (sentry): Only set failbit if badbit
1461         is set, not if eofbit is set.
1462         (tellp, seekp, seekp): Create sentry object. Do not set badbit
1463         on exceptions.
1464         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
1465         Adjust expected behaviour.
1466         * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
1467         Likewise.
1468         * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
1469         Likewise.
1470         * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
1471         Likewise.
1472         * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
1473         * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
1474         * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
1475         * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
1477 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1479         * include/std/syncstream (basic_syncbuf::swap()): Remove
1480         noexcept, as per LWG 3498.
1482 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1484         PR libstdc++/97088
1485         * testsuite/17_intro/names.cc: Undef more names for newlib and
1486         also for arm-none-linux-gnueabi.
1487         * testsuite/experimental/names.cc: Disable PCH.
1489 2021-06-25  Matthias Kretz  <m.kretz@gsi.de>
1491         * include/experimental/bits/simd.h (__bit_cast): Implement via
1492         __builtin_bit_cast #if available.
1493         (__proposed::simd_bit_cast): Add overloads for simd and
1494         simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
1495         available), which return an object of the requested type with
1496         the same bits as the argument.
1497         * include/experimental/bits/simd_math.h: Use simd_bit_cast
1498         instead of __bit_cast to allow casts to fixed_size_simd.
1499         (copysign): Remove branch that was only required if __bit_cast
1500         cannot be constexpr.
1501         * testsuite/experimental/simd/tests/bits/test_values.h: Switch
1502         from __bit_cast to __proposed::simd_bit_cast since the former
1503         will not cast fixed_size objects anymore.
1505 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1507         * include/experimental/bits/simd_math.h
1508         (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
1509         (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
1510         __arg3.
1512 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1514         * include/experimental/bits/simd.h (__execute_on_index_sequence)
1515         (__execute_on_index_sequence_with_return)
1516         (__call_with_n_evaluations, __call_with_subscripts): Add flatten
1517         attribute.
1519 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1521         * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
1522         (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
1523         roundp[sd] calls.
1525 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1527         * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
1528         implementation doesn't require a _VecBltnBtmsk ABI tag, it
1529         requires either a 64-Byte input (in which case AVX512F must be
1530         available) or AVX512VL.
1532 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1534         * include/experimental/bits/simd_math.h: Undefine internal
1535         macros after use.
1536         (frexp): Move #if to a more sensible position and reformat
1537         preceding code.
1538         (logb): Call _SimdImpl::_S_logb for fixed_size instead of
1539         duplicating the code here.
1540         (modf): Simplify condition.
1542 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1544         * include/experimental/bits/simd_math.h (fabs): Remove
1545         fabs(simd<integral>) overload.
1547 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1549         * include/experimental/bits/simd_converter.h
1550         (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
1551         * include/experimental/bits/simd_fixed_size.h
1552         (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
1553         arguments by const-ref.
1554         (_S_masked_unary): Pass _SimdTuple by const-ref.
1556 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1558         * include/experimental/bits/simd_fixed_size.h
1559         (_AbisInSimdTuple): Removed.
1561 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1563         * include/experimental/bits/simd.h: Add missing operator~
1564         overload for simd<floating-point> to __float_bitwise_operators.
1565         * include/experimental/bits/simd_builtin.h
1566         (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
1567         implement complement for floating-point vectors.
1568         * include/experimental/bits/simd_fixed_size.h
1569         (_SimdImplFixedSize::_S_copysign): New function, forwarding to
1570         copysign implementation of _SimdTuple members.
1571         * include/experimental/bits/simd_math.h (copysign): Call
1572         _SimdImpl::_S_copysign for fixed_size arguments. Simplify
1573         generic copysign implementation using the new ~ operator.
1575 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
1577         * testsuite/experimental/simd/README.md: Fix typos.
1579 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
1581         * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
1582         Add noexcept.
1583         * include/bits/unique_ptr.h (unique_ptr::operator*): Add
1584         conditional noexcept as per LWG 2762.
1585         * testsuite/20_util/shared_ptr/observers/array.cc: Check that
1586         dereferencing cannot throw.
1587         * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
1588         * testsuite/20_util/optional/observers/lwg2762.cc: New test.
1589         * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
1591 2021-06-23  Patrick Palka  <ppalka@redhat.com>
1593         PR c++/101174
1594         * testsuite/23_containers/multiset/cons/deduction.cc:
1595         Uncomment CTAD example that was rejected by this bug.
1596         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1598 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
1600         * include/std/chrono (chrono::year::is_leap()): Fix incorrect
1601         logic in comment.
1603 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
1605         * testsuite/experimental/simd/README.md: New file.
1607 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
1609         * testsuite/experimental/simd/driver.sh: Rewrite output
1610         verbosity logic. Add -p/--percentage option. Allow -v/--verbose
1611         to be used twice. Add -x and -o short options. Parse long
1612         options with = instead of separating space generically. Parce
1613         contracted short options. Make unrecognized options an error.
1614         If same-line output is active, trap on EXIT to increment the
1615         progress (only with --percentage), erase the line and print the
1616         current status.
1617         * testsuite/experimental/simd/generate_makefile.sh: Initialize
1618         helper files for progress account keeping. Update help target
1619         for changes to DRIVEROPTS.
1621 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
1623         * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
1624         and associated warning.
1625         * testsuite/Makefile.in: Regenerate.
1627 2021-06-23  Cassio Neri  <cassio.neri@gmail.com>
1628             Jonathan Wakely  <jwakely@redhat.com>
1629             Ulrich Drepper  <drepper@redhat.com>
1631         * include/std/chrono (chrono::year::is_leap()): Optimize.
1633 2021-06-23  Patrick Palka  <ppalka@redhat.com>
1635         PR c++/86439
1636         * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
1637         CTAD examples.
1638         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1639         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1640         Mention one of the replaced examples is broken due to PR101174.
1641         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1642         * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
1643         ambiguous CTAD examples.
1644         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1645         Likewise.
1646         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1647         Likewise.
1648         * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
1650 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
1652         * include/std/mutex (__detail::__try_lock_impl): Rename
1653         parameter to avoid clashing with newlib's __lockable macro.
1654         (try_lock): Add 'inline' specifier.
1655         * testsuite/17_intro/names.cc: Add check for __lockable.
1656         * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
1658 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
1659             Matthias Kretz  <m.kretz@gsi.de>
1661         * include/std/mutex (lock): Replace recursion with iteration
1662         when lockables all have the same type.
1663         (__detail::__try_lock_impl): Likewise. Pass lockables as
1664         parameters, instead of a tuple. Always lock the first one, and
1665         recurse for the rest.
1666         (__detail::__lock_impl): Adjust call to __try_lock_impl.
1667         (__detail::__try_to_lock): Remove.
1668         * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
1669         * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
1670         arguments.
1671         * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
1672         std::try_lock.
1673         * testsuite/30_threads/try_lock/5.cc: New test.
1675 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
1677         * include/std/memory (declare_reachable, undeclare_reachable)
1678         (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
1679         (pointer_safety): Only define for C++11 to C++20 inclusive.
1680         * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
1682 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
1684         * include/bits/random.h (seed_seq): Constrain initializer-list
1685         constructor.
1686         * include/bits/random.tcc (seed_seq): Add template parameter.
1687         * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
1688         for noexcept.
1689         * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
1690         constraints.
1692 2021-06-22  Thomas Rodgers  <rodgert@appliantology.com>
1694         PR libstdc++/100806
1695         * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
1696         Force _M_release() to wake all waiting threads.
1697         * testsuite/30_threads/semaphore/100806.cc: New test.
1699 2021-06-21  Jonathan Wakely  <jwakely@redhat.com>
1701         * include/std/mutex (__try_to_lock): Move to __detail namespace.
1702         (struct __try_lock_impl): Replace with ...
1703         (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
1704         function templates to implement std::try_lock.
1705         (try_lock): Use new __try_lock_impl.
1706         (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
1707         template to implement std::lock.
1708         (lock): Use __lock_impl.
1710 2021-06-21  Patrick Palka  <ppalka@redhat.com>
1712         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1714 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1716         * include/std/ranges (__non_propagating_cache::operator bool):
1717         Define for split_view::begin().
1718         (split_view): Define as per P2210.
1719         (views::__detail::__can_split_view): Define.
1720         (views::_Split, views::split): Define.
1721         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1722         Test views::split.
1723         * testsuite/std/ranges/adaptors/split.cc: New test.
1724         * testsuite/std/ranges/p2325.cc (test08a): New test.
1725         * testsuite/std/ranges/p2367.cc (test01): Test views::split.
1727 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1729         * include/std/ranges: Rename views::split to views::lazy_split,
1730         split_view to lazy_split_view, etc. throughout.
1731         * testsuite/std/ranges/*: Likewise.
1732         * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
1733         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
1735 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1737         * include/std/ranges (split_view::_OuterIter::__at_end):
1738         Check _M_trailing_empty.
1739         (split_view::_OuterIter::_M_trailing_empty): Define this
1740         data member.
1741         (split_view::_OuterIter::operator++): Set _M_trailing_empty
1742         appropriately.
1743         (split_view::_OuterIter::operator==): Compare
1744         _M_trailing_empty.
1745         * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
1746         split parts instead of one.
1747         * testsuite/std/ranges/adaptors/split.cc (test11): New test.
1749 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1751         * include/std/ranges (split_view::_InnerIter::base): Define as
1752         per P2210.
1754 2021-06-19  Patrick Palka  <ppalka@redhat.com>
1756         * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
1757         Consider _Base instead of _Vp as per LWG 3555.
1758         (elements_view::_Iterator::_S_iter_concept): Likewise.
1760 2021-06-19  Patrick Palka  <ppalka@redhat.com>
1762         * include/std/ranges (split_view::_OuterIter::value_type::begin):
1763         Remove the non-const overload, and remove the copyable constraint
1764         on the const overload as per LWG 3553.
1766 2021-06-19  Patrick Palka  <ppalka@redhat.com>
1768         * include/bits/stl_iterator.h
1769         (__detail::__common_iter_use_postfix_proxy): Add
1770         move_constructible constraint as per LWG 3546.
1771         (common_iterator::__postfix_proxy): Adjust initializer of
1772         _M_keep as per LWG 3546.
1774 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1776         PR libstdc++/100387
1777         * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
1778         to limit comparison complexity to 3*N/2.
1779         (__minmax_element_fn::operator()): Likewise.
1780         (shift_right): Avoid premature std::move of __result.
1781         * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
1782         New tests.
1783         * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
1784         Likewise.
1786 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1788         * include/std/concepts (convertible_to): Just use declval as per
1789         LWG 3557.
1791 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
1793         PR libstdc++/95833
1794         * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
1795         incorrect static_assert with ones matching the 'Mandates'
1796         conditions in the standard.
1797         * testsuite/26_numerics/reduce/95833.cc: New test.
1799 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
1801         * testsuite/21_strings/basic_string/cons/char/1.cc: Use
1802         diagnostic pragma to suppress -Wstringop-overread error.
1804 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1806         * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
1807         (find_if, __find_if_not_fn, find_if_not, _in_in_result)
1808         (__mismatch_fn, mismatch, __search_fn, search): Move to ...
1809         * include/bits/ranges_util.h: ... here.
1810         * include/std/ranges (__detail::find, __detail::find_if)
1811         (__detail::find_if_not, __detail::mismatch): Remove.
1812         (filter_view): Use ranges::find_if instead.
1813         (drop_while_view): Use ranges::find_if_not instead.
1814         (split_view): Use ranges::find and ranges::mismatch instead.
1816 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1818         * include/bits/iterator_concepts.h (weakly_incrementable): Remove
1819         default_initializable requirement.
1820         * include/bits/ranges_base.h (ranges::view): Likewise.
1821         * include/bits/ranges_util.h (subrange): Constrain the default
1822         ctor.
1823         * include/bits/stl_iterator.h (back_insert_iterator): Remove the
1824         default ctor.
1825         (front_insert_iterator): Likewise.
1826         (insert_iterator): Likewise.  Remove NSDMIs.
1827         (common_iterator): Constrain the default ctor.
1828         (counted_iterator): Likewise.
1829         * include/bits/stream_iterator.h (ostream_iterator): Remove the
1830         default ctor.
1831         * include/std/ranges (__detail::__box::operator=): Handle
1832         self-assignment in the primary template.
1833         (__detail::__box): In the partial specialization: adjust
1834         constraints as per P2325.  Add specialized operator= for the
1835         case when the wrapped type is not copyable.  Constrain the
1836         default ctor.  Avoid list-initialization.
1837         (single_view): Constraint the default ctor.
1838         (iota_view): Relax semiregular constraint to copyable.
1839         Constrain the default ctor.
1840         (iota_view::_Iterator): Constraint the default ctor.
1841         (basic_istream_view): Remove the default ctor.  Remove NSDMIs.
1842         Remove redundant checks for empty _M_stream.
1843         (basic_istream_view::_Iterator): Likewise.
1844         (ref_view): Remove the default ctor.  Remove NSDMIs.
1845         (ref_view::_Iterator): Constrain the default ctor.
1846         (__detail::__non_propagating_cache::operator=): Define overload
1847         for assigning from a value of the underlying type.
1848         (filter_view): Likewise.
1849         (filter_view::_Iterator): Likewise.
1850         (transform_view): Likewise.
1851         (transform_view::_Iterator): Likewise.
1852         (take_view): Likewise.
1853         (take_view::_Iterator): Likewise.
1854         (take_while_view): Likewise.
1855         (take_while_view::_Iterator): Likewise.
1856         (drop_while_view): Likewise.
1857         (drop_while_view::_Iterator): Likewise.
1858         (join_view): Likewise.
1859         (split_view::_OuterIter::__current): Adjust after changing the
1860         type of _M_current.
1861         (split_view::_M_current): Wrap it in a __non_propagating_cache.
1862         (split_view::split_view): Constrain the default ctor.
1863         (common_view): Constrain the default ctor.
1864         (reverse_view): Likewise.
1865         (elements_view): Likewise.
1866         * include/std/span (enable_view<span<_ElementType, _Extent>>):
1867         Define this partial specialization to true unconditionally.
1868         * include/std/version (__cpp_lib_ranges): Adjust value.
1869         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1870         Don't attempt to default construct a back_insert_iterator.
1871         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1872         Don't attempt to default construct a front_insert_iterator.
1873         * testsuite/24_iterators/insert_iterator/constexpr.cc:
1874         Don't attempt to default construct an insert_iterator.
1875         * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
1876         Remove this test for default constructibility of ostream_iterator.
1877         * testsuite/std/ranges/97600.cc: Don't attempt to default
1878         construct a basic_istream_view.
1879         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
1880         Rename to ...
1881         * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
1882         (test02): Adjust now that __box is copyable-box not
1883         semiregular-box.
1884         (test03): New test.
1885         * testsuite/std/ranges/p2325.cc: New test.
1886         * testsuite/std/ranges/single_view.cc (test06): New test.
1887         * testsuite/std/ranges/view.cc: Adjust now that view doesn't
1888         require default_initializable.
1890 2021-06-17  Jonathan Wakely  <jwakely@redhat.com>
1892         PR libstdc++/91488
1893         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
1894         define when is_constant_evaluated is available.
1895         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
1896         Likewise.
1897         (__constant_string_p, __constant_array_p): Remove.
1898         (char_traits): Use is_constant_evaluated directly.
1899         * include/std/version (__cpp_lib_constexpr_char_traits)
1900         (__cpp_lib_constexpr_string): Only define when
1901         is_constant_evaluated is available.
1903 2021-06-17  Patrick Palka  <ppalka@redhat.com>
1905         PR libstdc++/100940
1906         * include/std/ranges (__adaptor::_Partial): For the "simple"
1907         forwarding partial specializations, also require that
1908         the extra arguments are trivially copyable.
1909         * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
1911 2021-06-17  Patrick Palka  <ppalka@redhat.com>
1913         PR libstdc++/100940
1914         * include/std/ranges (__adaptor::_RangeAdaptor): Document the
1915         template form of _S_has_simple_extra_args.
1916         (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
1917         parameter pack.  Try to treat _S_has_simple_extra_args as a
1918         variable template parameterized by _Args.
1919         (__adaptor::_Partial): Pass _Arg/_Args to the constraint
1920         __adaptor_has_simple_extra_args.
1921         (views::_Take::_S_has_simple_extra_args): Templatize according
1922         to the type of the extra argument.
1923         (views::_Drop::_S_has_simple_extra_args): Likewise.
1924         (views::_Split::_S_has_simple_extra_args): Define.
1925         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1926         Adjust after changes to _S_has_simple_extra_args mechanism.
1927         (test03): Define.
1929 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
1931         * include/bits/iterator_concepts.h (__decay_copy): Name type.
1933 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
1935         * include/bits/ranges_base.h (ranges::begin, ranges::end)
1936         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
1937         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1938         (ranges::empty, ranges::data, ranges::cdata): Remove final
1939         keywords and deleted operator& overloads.
1940         * testsuite/24_iterators/customization_points/iter_move.cc: Use
1941         new is_customization_point_object function.
1942         * testsuite/24_iterators/customization_points/iter_swap.cc:
1943         Likewise.
1944         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
1945         Likewise.
1946         * testsuite/std/ranges/access/begin.cc: Likewise.
1947         * testsuite/std/ranges/access/cbegin.cc: Likewise.
1948         * testsuite/std/ranges/access/cdata.cc: Likewise.
1949         * testsuite/std/ranges/access/cend.cc: Likewise.
1950         * testsuite/std/ranges/access/crbegin.cc: Likewise.
1951         * testsuite/std/ranges/access/crend.cc: Likewise.
1952         * testsuite/std/ranges/access/data.cc: Likewise.
1953         * testsuite/std/ranges/access/empty.cc: Likewise.
1954         * testsuite/std/ranges/access/end.cc: Likewise.
1955         * testsuite/std/ranges/access/rbegin.cc: Likewise.
1956         * testsuite/std/ranges/access/rend.cc: Likewise.
1957         * testsuite/std/ranges/access/size.cc: Likewise.
1958         * testsuite/std/ranges/access/ssize.cc: Likewise.
1959         * testsuite/util/testsuite_iterators.h
1960         (is_customization_point_object): New function.
1962 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
1964         * include/bits/ranges_base.h (ranges::begin, ranges::end)
1965         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
1966         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1967         (ranges::empty, ranges::data, ranges::cdata): Make types final.
1968         Add deleted operator& overloads.
1969         (ranges::advance, ranges::distance, ranges::next, ranges::prev):
1970         Likewise.
1971         * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
1972         ill-formed & expressions with using-declarations. Add checks for
1973         other function objects.
1975 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
1977         * include/bits/ranges_util.h (view_interface): Add noexcept to
1978         empty, operator bool, data and size members.
1979         (subrange): Add noexcept to constructors.
1980         * include/std/ranges (single_view, ref_view): Add noexcept to
1981         constructors.
1982         (views::single, views::all): Add noexcept.
1983         * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
1984         * testsuite/std/ranges/single_view.cc: Likewise.
1986 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
1988         * include/bits/ranges_util.h (subrange): Add __size_type typedef
1989         and use it to simplify declarations.
1990         (subrange(i, s, n)): Remove assertion.
1991         * testsuite/std/ranges/subrange/constexpr.cc: New test.
1993 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
1995         * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
1996         Replace with function object.
1997         (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
1998         __decay_copy unqualified.
1999         * include/bits/ranges_base.h (__member_end, __adl_end):
2000         Likewise. Use __range_iter_t for type of ranges::begin.
2001         (__member_rend): Use correct value category for rbegin argument.
2002         (__member_data): Use __decay_copy unqualified.
2003         (__begin_data): Use __range_iter_t for type of ranges::begin.
2005 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2007         * include/bits/ranges_base.h (ranges::empty): Check whether
2008         conversion to bool can throw.
2009         * testsuite/std/ranges/access/empty.cc: Check for correct
2010         noexcept-specifier.
2012 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2014         PR libstdc++/100894
2015         * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
2016         use the type if it's a reference.
2017         * testsuite/20_util/common_reference/100894.cc: New test.
2019 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2021         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2022         Add dg-require-filesystem-ts directive.
2024 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2026         PR libstdc++/101034
2027         * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
2028         (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
2029         to use lvalue.
2030         * testsuite/20_util/any/cons/101034.cc: New test.
2032 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2034         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
2035         -std=gnu++17 option.
2037 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2039         PR libstdc++/101056
2040         * libsupc++/compare (compare_partial_order_fallback): Add
2041         constraint using reversed parameter order, as per LWG 3465.
2042         * testsuite/18_support/comparisons/algorithms/fallback.cc:
2043         Adjust expected result.
2045 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2047         * libsupc++/compare (__decayed_same_as): New helper concept.
2048         (strong_order, weak_order, partial_order): Constrain with new
2049         concept instead of using static_assert.
2050         (compare_strong_order_fallback, compare_weak_order_fallback)
2051         (compare_partial_order_fallback): Likewise. Do not deduce return
2052         types. Remove redundant if-constexpr checks.
2053         * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
2055 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2057         PR libstdc++/101055
2058         * include/std/tuple: Use reserved form of attribute name.
2059         * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
2060         check for no_unique_address.
2061         * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2062         Likewise.
2063         * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2064         Likewise.
2066 2021-06-11  Jonathan Wakely  <jwakely@redhat.com>
2068         * include/bits/fs_path.h (operator==, operator<=>): Use new
2069         _S_compare function.
2070         (path::_S_compare): New function to call path::compare in a
2071         context where path::iterator is complete.
2072         * include/experimental/bits/fs_path.h (operator<, operator==):
2073         Define after path::iterator is complete.
2074         * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
2075         test.
2076         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2077         New test.
2079 2021-06-09  Thomas Rodgers  <rodgert@appliantology.com>
2081         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
2082         test logic with constexpr check for is_always_lock_free.
2084 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
2086         PR libstdc++/100982
2087         * include/std/optional (optional::operator=(const optional<U>&)):
2088         Fix value category used in is_assignable check.
2089         * testsuite/20_util/optional/assignment/100982.cc: New test.
2091 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
2093         * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
2094         * include/bits/iterator_concepts.h (indirectly_readable_traits):
2095         Add LWG issue number to comment.
2096         * include/std/memory_resource (polymorphic_allocator::release):
2097         Deprecate.
2098         * testsuite/20_util/allocator/requirements/typedefs.cc: Add
2099         dg-warning for deprecation. Also check std::allocator<void>.
2101 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
2103         PR libstdc++/100889
2104         * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
2105         Change parameter type from _Tp to _Tp*.
2106         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
2107         coverage of types tested.
2109 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
2111         * include/std/barrier (__tree_barrier::_M_arrive): Remove
2112         unnecessary hasher instantiation.
2114 2021-06-08  Jonathan Wakely  <jwakely@redhat.com>
2116         * include/experimental/propagate_const (swap): Constrain.
2117         * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
2119 2021-06-07  Avi Kivity  <avi@scylladb.com>
2121         PR libstdc++/100900
2122         * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
2123         Add missing typename.
2125 2021-06-07  Jonathan Wakely  <jwakely@redhat.com>
2127         PR libstdc++/98842
2128         * include/std/optional (operator<=>(const optional<T>& const U&)):
2129         Add missing constraint and add workaround for template
2130         recursion.
2131         * testsuite/20_util/optional/relops/three_way.cc: Check that
2132         type without equality comparison cannot be compared when wrapped
2133         in std::optional.
2135 2021-06-05  Jonathan Wakely  <jwakely@redhat.com>
2137         PR libstdc++/100824
2138         * include/bits/ranges_base.h (_SSize): Return signed type.
2139         * testsuite/std/ranges/access/ssize.cc: Check with __int128.
2141 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2143         * include/bits/ranges_base.h (_SSize): Return the result of
2144         ranges::size converted to the wider of make-signed-like-t<S> and
2145         ptrdiff_t, rather than the ranges different type.
2146         * testsuite/std/ranges/access/ssize.cc: Adjust expected result
2147         for an iota_view that uses an integer class type for its
2148         difference_type.
2150 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2152         PR libstdc++/100824
2153         * include/bits/ranges_base.h (__member_data): Use __decay_copy.
2154         * testsuite/std/ranges/access/data.cc: Add testcase from PR.
2156 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2158         PR libstdc++/100824
2159         * include/bits/iterator_concepts.h (__detail::__decay_copy)
2160         (__detail::__member_begin, __detail::__adl_begin): Move to
2161         namespace ranges::__cust_access.
2162         (__detail::__ranges_begin): Likewise, and rename to __begin.
2163         Remove redundant static assertion.
2164         * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
2165         Use lvalue in noexcept specifier.
2166         (__as_const): Add non-deduced parameter for value category.
2167         (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
2168         __as_const.
2169         (__member_size, __adl_size, __member_empty, __size0_empty):
2170         (__eq_iter_empty, __adl_data): Use lvalue objects in
2171         requirements.
2172         (__sentinel_size): Likewise. Add check for conversion to
2173         unsigned-like.
2174         (__member_data): Allow non-lvalue types to satisfy the concept,
2175         but use lvalue object in requirements.
2176         (_Size, _SSize): Remove forwarding to always use an lvalue.
2177         (_Data): Likewise. Add static assertion for arrays.
2178         * testsuite/std/ranges/access/cdata.cc: Adjust expected
2179         behaviour for rvalues. Add negative tests for ill-formed
2180         expressions.
2181         * testsuite/std/ranges/access/data.cc: Likewise.
2182         * testsuite/std/ranges/access/empty.cc: Adjust expected
2183         behaviour for rvalues.
2184         * testsuite/std/ranges/access/size.cc: Likewise.
2186 2021-06-04  Tim Adye  <Tim.Adye@cern.ch>
2188         * include/std/any (any::_Manager::_S_access): New static
2189         function to access the contained value.
2190         (any::emplace, __any_caster): Use _S_access member of the
2191         manager type.
2193 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
2195         * doc/xml/manual/status_cxx2020.xml:
2196         * doc/html/*: Regenerate.
2197         * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
2198         Define.
2199         * include/std/version (__cpp_lib_generic_unordered_lookup):
2200         Define.
2201         * testsuite/23_containers/unordered_map/operations/1.cc: Check
2202         feature test macro.
2203         * testsuite/23_containers/unordered_set/operations/1.cc:
2204         Likewise.
2206 2021-06-03  Patrick Palka  <ppalka@redhat.com>
2208         * include/bits/ranges_algo.h (__detail::__can_reread_output):
2209         Factor out this concept from ...
2210         (__unique_copy_fn::operator()): ... here.  Use the concept
2211         throughout.
2212         * testsuite/std/ranges/range.cc: Remove now ill-formed use
2213         of range_value_t on an output_range.
2214         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2215         Define value_type, pointer and reference member types to void.
2217 2021-06-03  Patrick Palka  <ppalka@redhat.com>
2219         PR libstdc++/100577
2220         * include/std/ranges (_RangeAdaptorClosure): Document
2221         _S_has_simple_call_op mechanism.
2222         (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2223         (__closure_has_simple_call_op): New concept.
2224         (__adaptor_has_simple_extra_args): Likewise.
2225         (_Partial<_Adaptor, _Args...>): New partial specialization.
2226         (_Partial<_Adaptor, _Arg>): Likewise.
2227         (_Pipe<_Lhs, _Rhs>): Likewise.
2228         (views::_All::_S_has_simple_call_op): Define to true.
2229         (views::_Filter::_S_has_simple_extra_args): Likewise.
2230         (views::_Transform::_S_has_simple_extra_args): Likewise.
2231         (views::_Take::_S_has_simple_extra_args): Likewise.
2232         (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2233         (views::_Drop::_S_has_simple_extra_args): Likewise.
2234         (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2235         (views::_Join::_S_has_simple_call_op): Likewise.
2236         (views::_Split): Document why we don't define
2237         _S_has_simple_extra_args to true for this adaptor.
2238         (views::_Common::_S_has_simple_call_op): Define to true.
2239         (views::_Reverse::_S_has_simple_call_op): Likewise.
2240         (views::_Elements::_S_has_simple_call_op): Likewise.
2241         * testsuite/std/ranges/adaptors/100577.cc: New test.
2243 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2245         PR libstdc++/100863
2246         PR libstdc++/65816
2247         * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2248         Value-initialize subobject.
2249         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2250         Remove XFAIL.
2251         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2252         Remove XFAIL.
2254 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2256         PR libstdc++/96088
2257         * testsuite/23_containers/unordered_map/96088.cc: Adjust
2258         expected number of allocations.
2259         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2261 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2263         * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
2264         * doc/xml/manual/status_cxxtr1.xml: Likewise.
2265         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2266         * doc/html/*: Regenerate.
2268 2021-06-01  Patrick Palka  <ppalka@redhat.com>
2270         PR c++/65816
2271         * testsuite/23_containers/deque/allocator/default_init.cc,
2272         testsuite/23_containers/forward_list/allocator/default_init.cc,
2273         testsuite/23_containers/list/allocator/default_init.cc,
2274         testsuite/23_containers/map/allocator/default_init.cc,
2275         testsuite/23_containers/set/allocator/default_init.cc,
2276         testsuite/23_containers/vector/allocator/default_init.cc,
2277         testsuite/23_containers/vector/bool/allocator/default_init.cc:
2278         Remove xfail.
2280 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2282         * testsuite/23_containers/unordered_map/96088.cc: Change
2283         effective target to c++17.
2284         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2286 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2288         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2289         isblank for C++11 and later.
2291 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2293         PR libstdc++/100833
2294         * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
2295         Fix return value for no-op case.
2296         * testsuite/24_iterators/range_operations/advance.cc: Test
2297         return values of three-argument overload.
2299 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2301         PR libstdc++/99453
2302         * python/Makefile.am: Use archive name for printer hook if no
2303         dynamic library name is available.
2304         * python/Makefile.in: Regenerate.
2306 2021-05-30  Gerald Pfeifer  <gerald@pfeifer.com>
2308         * doc/xml/manual/abi.xml: Remove dead reference to "Intel
2309         Compilers for Linux: Compatibility with GNU Compilers" article.
2310         * doc/html/manual/abi.html: Regenerate.
2312 2021-05-26  François Dumont  <fdumont@gcc.gnu.org>
2314         * include/debug/formatter.h
2315         (_Error_formatter::_Parameter::_Named): New.
2316         (_Error_formatter::_Parameter::_Type): Inherit latter.
2317         (_Error_formatter::_Parameter::_M_integer): Likewise.
2318         (_Error_formatter::_Parameter::_M_string): Likewise.
2319         * src/c++11/debug.cc: Include <cstring>.
2320         (_Print_func_t): New.
2321         (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
2322         (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
2323         (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
2324         (print_type): Rename in...
2325         (print_type_info): ...this. Use pretty_print.
2326         (print_address, print_integer): New.
2327         (print_named_name, print_iterator_constness, print_iterator_state): New.
2328         (print_iterator_seq_type): New.
2329         (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
2330         (print_field): Use latters.
2331         (print_quoted_named_name, print_type_type, print_type, print_instance): New.
2332         (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
2333         Change signature to...
2334         (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
2335         ...this and adapt. Remove intermediate buffer to render input string.
2336         (print_string(PrintContext&, const char*, ptrdiff_t)): New.
2338 2021-05-26  Jonathan Wakely  <jwakely@redhat.com>
2340         PR libstdc++/100768
2341         * include/bits/ranges_base.h (advance, distance, next, prev):
2342         Replace function templates with function objects.
2343         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2344         Adjust for changes to function objects.
2345         * testsuite/std/ranges/adaptors/elements.cc: Add using
2346         declarations for names from namespace ranges.
2347         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2348         * testsuite/24_iterators/range_operations/100768.cc: New test.
2350 2021-05-24  François Dumont  <fdumont@gcc.gnu.org>
2352         PR libstdc++/96088
2353         * include/bits/hashtable_policy.h (_Select2nd): New.
2354         (_NodeBuilder<>): New.
2355         (_ReuseOrAllocNode<>::operator()): Use variadic template args.
2356         (_AllocNode<>::operator()): Likewise.
2357         * include/bits/hashtable.h
2358         (_Hashtable<>::__node_builder_t): New.
2359         (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
2360          New.
2361         (_Hashtable<>::_S_forward_key): New.
2362         (_Hashtable<>::_M_insert): Use latter.
2363         (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
2364         Instantiate node first, compute hash code second.
2365         * testsuite/23_containers/unordered_map/96088.cc: New test.
2366         * testsuite/23_containers/unordered_multimap/96088.cc: New test.
2367         * testsuite/23_containers/unordered_multiset/96088.cc: New test.
2368         * testsuite/23_containers/unordered_set/96088.cc: New test.
2369         * testsuite/util/replacement_memory_operators.h
2370         (counter::_M_increment): New.
2371         (counter::_M_decrement): New.
2372         (counter::reset()): New.
2374 2021-05-24  Patrick Palka  <ppalka@redhat.com>
2376         PR libstdc++/100479
2377         * include/std/ranges (__detail::__non_propagating_cache): Move
2378         definition up to before that of _CachedPosition.  Make base
2379         class _Optional_base protected instead of private.  Add const
2380         overload for operator*.
2381         (__detail::_CachedPosition): Rewrite the partial specialization
2382         for forward ranges as a derived class of __non_propagating_cache.
2383         Remove the size constraint on the partial specialization for
2384         random access ranges.  Add copy/move/copy-assignment/move-assignment
2385         members to the offset partial specialization for random
2386         access ranges that propagate the cached value but additionally
2387         invalidate it in the source object on move.
2388         * testsuite/std/ranges/adaptors/100479.cc: New test.
2390 2021-05-24  Jonathan Wakely  <jwakely@redhat.com>
2392         * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
2393         call to ranges::next.
2394         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2395         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2396         Likewise.
2397         * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
2398         swap_ranges.
2400 2021-05-21  Patrick Palka  <ppalka@redhat.com>
2402         PR libstdc++/100606
2403         * include/std/ranges (drop_while_view::begin): Assert the
2404         precondition added by LWG 3490.
2406 2021-05-21  Patrick Palka  <ppalka@redhat.com>
2408         PR libstdc++/100690
2409         * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
2410         Split out this member function from ...
2411         (iota_view::_Sentinel::operator-): ... here, for sake of access
2412         control.
2413         * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
2415 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
2417         * include/bits/random.tcc (__representable_as_double)
2418         (__p1_representable_as_double): Add "" to static asserts.
2420 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
2422         PR libstdc++/100676
2423         * include/bits/c++config (__glibcxx_assert_1): Rename to ...
2424         (__glibcxx_constexpr_assert): ... this.
2425         (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
2426         (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
2427         or __glibcxx_assert_impl.
2428         (__glibcxx_assert_2): Remove
2429         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
2430         __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
2431         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2432         Adjust expected error.
2433         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2434         Likewise.
2435         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2436         Likewise.
2437         Likewise.
2438         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2439         Likewise.
2440         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2441         Likewise.
2442         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2443         Likewise.
2444         * testsuite/23_containers/span/back_neg.cc: Likewise.
2445         * testsuite/23_containers/span/front_neg.cc: Likewise.
2446         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2448 2021-05-20  Patrick Palka  <ppalka@redhat.com>
2450         PR libstdc++/100639
2451         * include/bits/stl_iterator.h (reverse_iterator::difference_type):
2452         In C++20 mode, define in terms of iter_difference_t as per P0896R4.
2453         (reverse_iterator::reference): Likewise, but with iter_reference_t.
2454         (reverse_iterator::value_type): Likewise, but with iter_value_t.
2455         * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
2456         * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
2458 2021-05-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>
2460         PR libstdc++/100361
2461         * include/std/charconv (to_chars): Hide the overloads for
2462         floating-point types for 16 bit targets.
2463         * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
2464         * testsuite/20_util/to_chars/double.cc: Run this test only on
2465         size32plus targets.
2466         * testsuite/20_util/to_chars/float.cc: Likewise.
2467         * testsuite/20_util/to_chars/long_double.cc: Likewise.
2469 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2471         PR libstdc++/100631
2472         * include/std/ranges (elements_view::_Sentinel::operator-): Use
2473         _M_distance_from in the other operator- overload too.
2474         * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
2476 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
2478         * testsuite/lib/prune.exp: Add note about 'dg-note'.
2480 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2482         PR libstdc++/100475
2483         * include/std/ranges (__box::__box): Use non-list-initialization
2484         in member initializer list of in-place constructor of the
2485         partial specialization for semiregular types.
2486         (__box::operator->): Use std::__addressof.
2487         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
2488         (test02): New test.
2489         * testsuite/std/ranges/single_view.cc (test04): New test.
2491 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2493         PR libstdc++/100621
2494         * include/std/ranges (reverse_view::_S_needs_cached_begin):
2495         Set to true if the underlying non-common random-access range
2496         doesn't have a sized sentinel.
2498 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2500         PR libstdc++/100631
2501         * include/std/ranges (elements_view::_Iterator): Also befriend
2502         _Sentinel<!_Const>.
2503         (elements_view::_Sentinel::_M_equal): Templatize.
2504         (elements_view::_Sentinel::_M_distance_from): Split out from ...
2505         (elements_view::_Sentinel::operator-): ... here.  Depend on
2506         _Base2 instead of _Base in the return type.
2507         * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
2508         New tests.
2510 2021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>
2512         * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
2513         until value change observed.
2514         (__waiter_base::_M_laundered): New member.
2515         (__waiter_base::_M_notify): Check _M_laundered to determine
2516         whether to wake one or all.
2517         (__detail::__atomic_compare): Return true if call to
2518         __builtin_memcmp() == 0.
2519         (__waiter_base::_S_do_spin_v): Adjust predicate.
2520         * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
2521         test.
2523 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
2525         PR libstdc++/100630
2526         * include/experimental/bits/fs_path.h (__is_constructible_from):
2527         Test construction from a const lvalue, not an rvalue.
2528         * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
2529         * testsuite/experimental/filesystem/path/construct/100630.cc:
2530         New test.
2532 2021-05-17  Antony Polukhin  <antoshkka@gmail.com>
2534         PR libstdc++/89728
2535         * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
2536         Declare (but do not define) partial specialization.
2537         * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
2539 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
2541         * include/std/thread (jthread::_S_create): Fix static assert
2542         message.
2543         * testsuite/30_threads/jthread/95989.cc: Re-enable test.
2544         * testsuite/30_threads/jthread/jthread.cc: Do not require
2545         pthread effective target.
2546         * testsuite/30_threads/jthread/2.cc: Moved to...
2547         * testsuite/30_threads/jthread/version.cc: ...here.
2549 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
2551         * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
2552         * doc/Makefile.in: Regenerate.
2553         * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
2554         value.
2555         * scripts/run_doxygen (print_usage): Always print to stdout and
2556         do not exit.
2557         (fail): New function for exiting on error.
2558         (parse_options): Handle --latex_cmd. Do not treat --help the
2559         same as errors. Simplify handling of required arguments.
2561 2021-05-12  Jonathan Wakely  <jwakely@redhat.com>
2563         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2564         Increase dg-timeout-factor to 4. Fix -Wunused-parameter
2565         warnings. Replace bitwise AND with logical AND in loop
2566         condition.
2567         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2568         Replace bitwise AND with logical AND in loop condition.
2569         * testsuite/util/pstl/test_utils.h: Remove unused parameter
2570         names.
2572 2021-05-11  Patrick Palka  <ppalka@redhat.com>
2574         * src/c++17/ryu/LOCAL_PATCHES: Update.
2575         * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
2576         Remove declarations for never-defined functions.
2577         * testsuite/20_util/to_chars/4.cc: New test.
2579 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2581         * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
2582         alternative for macro.
2583         * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
2584         target keyword.
2585         * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
2586         syntax.
2588 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2590         * include/bits/allocator.h (allocator<void>) [C++20]: Add
2591         missing noexcept to constructor. Restore missing POCMA and
2592         is_always_equal_traits.
2593         [C++17]: Make construct and destroy members private and
2594         declare allocator_traits as a friend.
2595         * include/bits/memoryfwd.h (allocator_traits): Declare.
2596         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
2597         Add nodiscard attribute. Add static assertion for LWG 3307.
2598         * include/ext/new_allocator.h (new_allocator::allocate): Add
2599         static assertion for LWG 3307.
2600         * testsuite/20_util/allocator/void.cc: Check that converting
2601         constructor is noexcept. Check for propagation traits and
2602         size_type and difference_type. Check that pointer and
2603         const_pointer are gone in C++20.
2605 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2607         * include/std/stop_token: Remove TODO comment.
2609 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2611         * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
2612         Initialize a non-reference deleter from an rvalue, as per LWG
2613         3548.
2614         (__shared_ptr::_UniqCompatible): Add missing constraint.
2615         * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
2616         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
2617         constraints.
2619 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2621         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
2622         -std=gnu++17 from dg-options directive.
2623         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
2624         Likewise.
2625         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
2626         Likewise.
2627         * testsuite/17_intro/headers/c++2017/operator_names.cc:
2628         Likewise.
2629         * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
2630         * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
2631         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2632         Likewise.
2633         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
2634         * testsuite/18_support/byte/81076.cc: Likewise.
2635         * testsuite/18_support/byte/global_neg.cc: Likewise.
2636         * testsuite/18_support/byte/ops.cc: Likewise.
2637         * testsuite/18_support/byte/requirements.cc: Likewise.
2638         * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
2639         * testsuite/18_support/launder/1.cc: Likewise.
2640         * testsuite/18_support/launder/nodiscard.cc: Likewise.
2641         * testsuite/18_support/launder/requirements.cc: Likewise.
2642         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
2643         * testsuite/18_support/new_aligned.cc: Likewise.
2644         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
2645         Likewise.
2646         * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
2647         Likewise.
2648         * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
2649         * testsuite/20_util/addressof/requirements/constexpr.cc:
2650         Likewise.
2651         * testsuite/20_util/as_const/1.cc: Likewise.
2652         * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
2653         * testsuite/20_util/bind/83427.cc: Likewise.
2654         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2655         * testsuite/20_util/bool_constant/requirements.cc: Likewise.
2656         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
2657         Likewise.
2658         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2659         Likewise.
2660         * testsuite/20_util/duration_cast/rounding.cc: Likewise.
2661         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
2662         Likewise.
2663         * testsuite/20_util/from_chars/1_neg.cc: Likewise.
2664         * testsuite/20_util/from_chars/requirements.cc: Likewise.
2665         * testsuite/20_util/function/91456.cc: Likewise.
2666         * testsuite/20_util/function/cons/deduction.cc: Likewise.
2667         * testsuite/20_util/function_objects/83607.cc: Likewise.
2668         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
2669         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
2670         * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
2671         * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
2672         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
2673         Likewise.
2674         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
2675         Likewise.
2676         * testsuite/20_util/has_unique_object_representations/value.cc:
2677         Likewise.
2678         * testsuite/20_util/hash/nullptr.cc: Likewise.
2679         * testsuite/20_util/in_place/requirements.cc: Likewise.
2680         * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
2681         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2682         Likewise.
2683         * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
2684         Likewise.
2685         * testsuite/20_util/is_aggregate/value.cc: Likewise.
2686         * testsuite/20_util/is_invocable/83395.cc: Likewise.
2687         * testsuite/20_util/is_invocable/91456.cc: Likewise.
2688         * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
2689         Likewise.
2690         * testsuite/20_util/is_invocable/requirements/typedefs.cc:
2691         Likewise.
2692         * testsuite/20_util/is_invocable/value.cc: Likewise.
2693         * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
2694         * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
2695         * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
2696         * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
2697         Likewise.
2698         * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
2699         * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
2700         * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
2701         Likewise.
2702         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2703         Likewise.
2704         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2705         * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
2706         Likewise.
2707         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2708         Likewise.
2709         * testsuite/20_util/is_nothrow_swappable_with/value.cc:
2710         Likewise.
2711         * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
2712         Likewise.
2713         * testsuite/20_util/is_swappable/requirements/typedefs.cc:
2714         Likewise.
2715         * testsuite/20_util/is_swappable/value.cc: Likewise.
2716         * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
2717         Likewise.
2718         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
2719         Likewise.
2720         * testsuite/20_util/is_swappable_with/value.cc: Likewise.
2721         * testsuite/20_util/logical_traits/83134.cc: Likewise.
2722         * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
2723         Likewise.
2724         * testsuite/20_util/logical_traits/requirements/typedefs.cc:
2725         Likewise.
2726         * testsuite/20_util/logical_traits/value.cc: Likewise.
2727         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
2728         * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
2729         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
2730         Likewise.
2731         * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
2732         * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
2733         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
2734         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
2735         * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
2736         Likewise.
2737         * testsuite/20_util/time_point/arithmetic/constexpr.cc:
2738         Likewise.
2739         * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
2740         * testsuite/20_util/to_chars/3.cc: Likewise.
2741         * testsuite/20_util/to_chars/chars_format.cc: Likewise.
2742         * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
2743         * testsuite/20_util/to_chars/requirements.cc: Likewise.
2744         * testsuite/20_util/tuple/78939.cc: Likewise.
2745         * testsuite/20_util/tuple/apply/1.cc: Likewise.
2746         * testsuite/20_util/tuple/apply/2.cc: Likewise.
2747         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
2748         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
2749         * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
2750         * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
2751         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2752         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
2753         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2754         Likewise.
2755         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2756         * testsuite/20_util/void_t/1.cc: Likewise.
2757         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
2758         * testsuite/24_iterators/container_access.cc: Likewise.
2759         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
2760         Likewise.
2761         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
2762         Likewise.
2763         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
2764         Likewise.
2765         * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
2766         Likewise.
2767         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
2768         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
2769         Likewise.
2770         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
2771         * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
2772         Likewise.
2773         * testsuite/26_numerics/lcm/1.cc: Likewise.
2774         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2775         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
2776         * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
2777         Likewise.
2778         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
2779         Likewise.
2780         * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
2781         Likewise.
2782         * testsuite/27_io/types/4.cc: Likewise.
2783         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
2784         * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
2785         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2787 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2789         * testsuite/20_util/function_objects/searchers.cc: Remove
2790         -std=gnu++17 from dg-options directive.
2791         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
2792         Likewise.
2793         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2794         Likewise.
2795         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
2796         Likewise.
2797         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
2798         Likewise.
2799         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
2800         Likewise.
2801         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
2802         Likewise.
2803         * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
2804         Likewise.
2805         * testsuite/25_algorithms/clamp/1.cc: Likewise.
2806         * testsuite/25_algorithms/clamp/2.cc: Likewise.
2807         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
2808         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
2809         Likewise.
2810         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
2811         Likewise.
2812         * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
2813         * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
2814         Likewise.
2815         * testsuite/25_algorithms/sample/1.cc: Likewise.
2816         * testsuite/25_algorithms/sample/2.cc: Likewise.
2817         * testsuite/25_algorithms/sample/3.cc: Likewise.
2818         * testsuite/25_algorithms/sample/81221.cc: Likewise.
2819         * testsuite/25_algorithms/search/searcher.cc: Likewise.
2820         * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
2821         * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
2822         * testsuite/26_numerics/reduce/1.cc: Likewise.
2823         * testsuite/26_numerics/reduce/2.cc: Likewise.
2824         * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
2825         * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
2826         * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
2828 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2830         * testsuite/23_containers/array/cons/deduction.cc: Remove
2831         -std=gnu++17 from dg-options directive.
2832         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
2833         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
2834         Likewise.
2835         * testsuite/23_containers/array/requirements/constexpr_iter.cc:
2836         Likewise.
2837         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2838         Likewise.
2839         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
2840         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
2841         Likewise.
2842         * testsuite/23_containers/forward_list/cons/deduction.cc:
2843         Likewise.
2844         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
2845         Likewise.
2846         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
2847         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
2848         Likewise.
2849         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
2850         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2851         * testsuite/23_containers/map/modifiers/insert/83226.cc:
2852         Likewise.
2853         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2854         Likewise.
2855         * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
2856         * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
2857         Likewise.
2858         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2859         * testsuite/23_containers/multimap/modifiers/extract.cc:
2860         Likewise.
2861         * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
2862         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2863         * testsuite/23_containers/multiset/modifiers/extract.cc:
2864         Likewise.
2865         * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
2866         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
2867         * testsuite/23_containers/queue/deduction.cc: Likewise.
2868         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
2869         Likewise.
2870         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2871         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2872         * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
2873         * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
2874         * testsuite/23_containers/stack/deduction.cc: Likewise.
2875         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
2876         Likewise.
2877         * testsuite/23_containers/unordered_map/cons/deduction.cc:
2878         Likewise.
2879         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2880         Likewise.
2881         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
2882         Likewise.
2883         * testsuite/23_containers/unordered_map/modifiers/merge.cc:
2884         Likewise.
2885         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
2886         Likewise.
2887         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2888         Likewise.
2889         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
2890         Likewise.
2891         * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
2892         Likewise.
2893         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2894         Likewise.
2895         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
2896         Likewise.
2897         * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
2898         Likewise.
2899         * testsuite/23_containers/unordered_set/cons/deduction.cc:
2900         Likewise.
2901         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2902         Likewise.
2903         * testsuite/23_containers/unordered_set/modifiers/merge.cc:
2904         Likewise.
2905         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
2906         Likewise.
2907         * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
2908         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
2909         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
2910         Likewise.
2912 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2914         * testsuite/21_strings/basic_string/79162.cc: Remove
2915         -std=gnu++17 from dg-options directive.
2916         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2917         * testsuite/21_strings/basic_string/cons/char/79162.cc:
2918         Likewise.
2919         * testsuite/21_strings/basic_string/cons/char/86138.cc:
2920         Likewise.
2921         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
2922         * testsuite/21_strings/basic_string/cons/char/deduction.cc:
2923         Likewise.
2924         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
2925         Likewise.
2926         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2927         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
2928         Likewise.
2929         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
2930         Likewise.
2931         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
2932         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2933         Likewise.
2934         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
2935         Likewise.
2936         * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
2937         * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
2938         * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
2939         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2940         Likewise.
2941         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2942         Likewise.
2943         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2944         Likewise.
2945         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2946         Likewise.
2947         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2948         Likewise.
2949         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2950         Likewise.
2951         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2952         Likewise.
2953         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2954         Likewise.
2955         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2956         Likewise.
2957         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2958         Likewise.
2959         * testsuite/21_strings/basic_string/operations/data/char/2.cc:
2960         Likewise.
2961         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
2962         Likewise.
2963         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
2964         Likewise.
2965         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2966         Likewise.
2967         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2968         Likewise.
2969         * testsuite/21_strings/basic_string/operators/char/5.cc:
2970         Likewise.
2971         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
2972         Likewise.
2973         * testsuite/21_strings/basic_string_view/capacity/1.cc:
2974         Likewise.
2975         * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
2976         Likewise.
2977         * testsuite/21_strings/basic_string_view/cons/char/1.cc:
2978         Likewise.
2979         * testsuite/21_strings/basic_string_view/cons/char/2.cc:
2980         Likewise.
2981         * testsuite/21_strings/basic_string_view/cons/char/3.cc:
2982         Likewise.
2983         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2984         Likewise.
2985         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
2986         Likewise.
2987         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
2988         Likewise.
2989         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
2990         Likewise.
2991         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2992         Likewise.
2993         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2994         Likewise.
2995         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2996         Likewise.
2997         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2998         Likewise.
2999         * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
3000         Likewise.
3001         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3002         Likewise.
3003         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3004         Likewise.
3005         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3006         Likewise.
3007         * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
3008         Likewise.
3009         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3010         Likewise.
3011         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3012         Likewise.
3013         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3014         Likewise.
3015         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3016         Likewise.
3017         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
3018         Likewise.
3019         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3020         Likewise.
3021         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3022         Likewise.
3023         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3024         Likewise.
3025         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3026         Likewise.
3027         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3028         * testsuite/21_strings/basic_string_view/inserters/94051.cc:
3029         Likewise.
3030         * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
3031         Likewise.
3032         * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
3033         Likewise.
3034         * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
3035         Likewise.
3036         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3037         Likewise.
3038         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3039         Likewise.
3040         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3041         Likewise.
3042         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3043         Likewise.
3044         * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
3045         Likewise.
3046         * testsuite/21_strings/basic_string_view/literals/types.cc:
3047         Likewise.
3048         * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
3049         Likewise.
3050         * testsuite/21_strings/basic_string_view/literals/values.cc:
3051         Likewise.
3052         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3053         Likewise.
3054         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3055         Likewise.
3056         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3057         Likewise.
3058         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3059         Likewise.
3060         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3061         Likewise.
3062         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3063         Likewise.
3064         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3065         Likewise.
3066         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3067         Likewise.
3068         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
3069         Likewise.
3070         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
3071         Likewise.
3072         * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
3073         Likewise.
3074         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3075         Likewise.
3076         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3077         Likewise.
3078         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
3079         Likewise.
3080         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3081         Likewise.
3082         * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
3083         Likewise.
3084         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3085         Likewise.
3086         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
3087         Likewise.
3088         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3089         Likewise.
3090         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3091         Likewise.
3092         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3093         Likewise.
3094         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3095         Likewise.
3096         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3097         Likewise.
3098         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3099         Likewise.
3100         * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
3101         Likewise.
3102         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3103         Likewise.
3104         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3105         Likewise.
3106         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3107         Likewise.
3108         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3109         Likewise.
3110         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3111         Likewise.
3112         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3113         Likewise.
3114         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3115         Likewise.
3116         * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
3117         Likewise.
3118         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3119         Likewise.
3120         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3121         Likewise.
3122         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3123         Likewise.
3124         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3125         Likewise.
3126         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3127         Likewise.
3128         * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
3129         Likewise.
3130         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3131         Likewise.
3132         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
3133         Likewise.
3134         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
3135         Likewise.
3136         * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
3137         Likewise.
3138         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3139         Likewise.
3140         * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
3141         Likewise.
3142         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3143         Likewise.
3144         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3145         Likewise.
3146         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3147         Likewise.
3148         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3149         Likewise.
3150         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3151         Likewise.
3152         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3153         Likewise.
3154         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3155         Likewise.
3156         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3157         Likewise.
3158         * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
3159         Likewise.
3160         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3161         Likewise.
3162         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3163         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3164         * testsuite/21_strings/char_traits/requirements/char/99181.cc:
3165         Likewise.
3166         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3168 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3170         * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
3171         from dg-options directive.
3172         * testsuite/20_util/memory_resource/2.cc: Likewise.
3173         * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
3174         * testsuite/20_util/monotonic_buffer_resource/93208.cc:
3175         Likewise.
3176         * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
3177         Likewise.
3178         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
3179         Likewise.
3180         * testsuite/20_util/monotonic_buffer_resource/release.cc:
3181         Likewise.
3182         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3183         Likewise.
3184         * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
3185         * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
3186         Likewise.
3187         * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3188         * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
3189         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
3190         Likewise.
3191         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
3192         Likewise.
3193         * testsuite/20_util/synchronized_pool_resource/cons.cc:
3194         Likewise.
3195         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
3196         Likewise.
3197         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
3198         Likewise.
3199         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
3200         Likewise.
3201         * testsuite/20_util/synchronized_pool_resource/options.cc:
3202         Likewise.
3203         * testsuite/20_util/synchronized_pool_resource/release.cc:
3204         Likewise.
3205         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
3206         Likewise.
3207         * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
3208         Likewise.
3209         * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
3210         Likewise.
3211         * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
3212         Likewise.
3213         * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3214         Likewise.
3215         * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3216         Likewise.
3217         * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3218         Likewise.
3219         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3220         Likewise.
3221         * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3222         * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3223         Likewise.
3224         * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3225         Likewise.
3226         * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3227         Likewise.
3228         * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3229         * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3230         * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3231         * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3232         * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3233         * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3234         Likewise.
3235         * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3236         * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3237         Likewise.
3238         * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3239         * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3240         * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3241         Likewise.
3242         * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3243         Likewise.
3244         * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3245         Likewise.
3246         * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3247         Likewise.
3248         * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3249         Likewise.
3250         * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3251         Likewise.
3252         * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3253         Likewise.
3254         * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3255         Likewise.
3256         * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3257         * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3258         Likewise.
3259         * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3261 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3263         * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
3264         dg-options.
3265         * testsuite/29_atomics/atomic/is_always_lock_free.cc:
3266         * testsuite/29_atomics/atomic/requirements/typedefs.cc:
3267         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
3268         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
3269         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
3270         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
3271         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
3272         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
3273         Likewise.
3274         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
3275         Likewise.
3276         * testsuite/30_threads/shared_lock/70766.cc: Likewise.
3277         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3278         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
3279         Likewise.
3280         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3281         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3282         Likewise.
3283         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3284         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3285         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3286         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
3288 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3290         * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
3291         dg-options directive.
3292         * testsuite/20_util/any/assign/2.cc: Likewise.
3293         * testsuite/20_util/any/assign/emplace.cc: Likewise.
3294         * testsuite/20_util/any/assign/exception.cc: Likewise.
3295         * testsuite/20_util/any/assign/self.cc: Likewise.
3296         * testsuite/20_util/any/cons/1.cc: Likewise.
3297         * testsuite/20_util/any/cons/2.cc: Likewise.
3298         * testsuite/20_util/any/cons/90415.cc: Likewise.
3299         * testsuite/20_util/any/cons/92156.cc: Likewise.
3300         * testsuite/20_util/any/cons/aligned.cc: Likewise.
3301         * testsuite/20_util/any/cons/explicit.cc: Likewise.
3302         * testsuite/20_util/any/cons/in_place.cc: Likewise.
3303         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3304         * testsuite/20_util/any/make_any.cc: Likewise.
3305         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3306         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3307         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3308         * testsuite/20_util/any/misc/swap.cc: Likewise.
3309         * testsuite/20_util/any/modifiers/1.cc: Likewise.
3310         * testsuite/20_util/any/modifiers/83658.cc: Likewise.
3311         * testsuite/20_util/any/modifiers/92156.cc: Likewise.
3312         * testsuite/20_util/any/observers/type.cc: Likewise.
3313         * testsuite/20_util/any/requirements.cc: Likewise.
3314         * testsuite/20_util/any/typedefs.cc: Likewise.
3315         * testsuite/20_util/optional/77288.cc: Likewise.
3316         * testsuite/20_util/optional/84601.cc: Likewise.
3317         * testsuite/20_util/optional/assignment/1.cc: Likewise.
3318         * testsuite/20_util/optional/assignment/2.cc: Likewise.
3319         * testsuite/20_util/optional/assignment/3.cc: Likewise.
3320         * testsuite/20_util/optional/assignment/4.cc: Likewise.
3321         * testsuite/20_util/optional/assignment/5.cc: Likewise.
3322         * testsuite/20_util/optional/assignment/6.cc: Likewise.
3323         * testsuite/20_util/optional/assignment/7.cc: Likewise.
3324         * testsuite/20_util/optional/assignment/8.cc: Likewise.
3325         * testsuite/20_util/optional/assignment/9.cc: Likewise.
3326         * testsuite/20_util/optional/bad_access.cc: Likewise.
3327         * testsuite/20_util/optional/cons/77727.cc: Likewise.
3328         * testsuite/20_util/optional/cons/85642.cc: Likewise.
3329         * testsuite/20_util/optional/cons/copy.cc: Likewise.
3330         * testsuite/20_util/optional/cons/deduction.cc: Likewise.
3331         * testsuite/20_util/optional/cons/default.cc: Likewise.
3332         * testsuite/20_util/optional/cons/move.cc: Likewise.
3333         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3334         * testsuite/20_util/optional/cons/value.cc: Likewise.
3335         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
3336         * testsuite/20_util/optional/constexpr/cons/default.cc:
3337         Likewise.
3338         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
3339         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
3340         * testsuite/20_util/optional/constexpr/make_optional.cc:
3341         Likewise.
3342         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
3343         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
3344         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
3345         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
3346         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
3347         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
3348         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
3349         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
3350         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
3351         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3352         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
3353         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
3354         * testsuite/20_util/optional/hash.cc: Likewise.
3355         * testsuite/20_util/optional/in_place.cc: Likewise.
3356         * testsuite/20_util/optional/make_optional.cc: Likewise.
3357         * testsuite/20_util/optional/nullopt.cc: Likewise.
3358         * testsuite/20_util/optional/observers/1.cc: Likewise.
3359         * testsuite/20_util/optional/observers/2.cc: Likewise.
3360         * testsuite/20_util/optional/observers/3.cc: Likewise.
3361         * testsuite/20_util/optional/observers/4.cc: Likewise.
3362         * testsuite/20_util/optional/observers/5.cc: Likewise.
3363         * testsuite/20_util/optional/observers/6.cc: Likewise.
3364         * testsuite/20_util/optional/relops/1.cc: Likewise.
3365         * testsuite/20_util/optional/relops/2.cc: Likewise.
3366         * testsuite/20_util/optional/relops/3.cc: Likewise.
3367         * testsuite/20_util/optional/relops/4.cc: Likewise.
3368         * testsuite/20_util/optional/relops/5.cc: Likewise.
3369         * testsuite/20_util/optional/relops/6.cc: Likewise.
3370         * testsuite/20_util/optional/relops/7.cc: Likewise.
3371         * testsuite/20_util/optional/requirements.cc: Likewise.
3372         * testsuite/20_util/optional/swap/1.cc: Likewise.
3373         * testsuite/20_util/optional/swap/2.cc: Likewise.
3374         * testsuite/20_util/optional/typedefs.cc: Likewise.
3375         * testsuite/20_util/variant/80165.cc: Likewise.
3376         * testsuite/20_util/variant/85183.cc: Likewise.
3377         * testsuite/20_util/variant/86874.cc: Likewise.
3378         * testsuite/20_util/variant/87431.cc: Likewise.
3379         * testsuite/20_util/variant/87619.cc: Likewise.
3380         * testsuite/20_util/variant/91807.cc: Likewise.
3381         * testsuite/20_util/variant/any.cc: Likewise.
3382         * testsuite/20_util/variant/compile.cc: Likewise.
3383         * testsuite/20_util/variant/deduction.cc: Likewise.
3384         * testsuite/20_util/variant/exception_safety.cc: Likewise.
3385         * testsuite/20_util/variant/hash.cc: Likewise.
3386         * testsuite/20_util/variant/index_type.cc: Likewise.
3387         * testsuite/20_util/variant/relops/89851.cc: Likewise.
3388         * testsuite/20_util/variant/relops/90008.cc: Likewise.
3389         * testsuite/20_util/variant/run.cc: Likewise.
3390         * testsuite/20_util/variant/visit.cc: Likewise.
3392 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3394         * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
3395         -std=gnu++17 from dg-options directive.
3396         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
3397         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
3398         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
3399         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
3400         * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
3401         * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
3402         * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
3403         * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
3404         Likewise.
3405         * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
3406         * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
3407         * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
3408         * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
3409         * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
3410         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3411         Likewise.
3412         * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
3413         * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
3414         Likewise.
3415         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3416         Likewise.
3417         * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
3418         * testsuite/27_io/filesystem/operations/all.cc: Likewise.
3419         * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3420         * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
3421         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3422         * testsuite/27_io/filesystem/operations/create_directories.cc:
3423         Likewise.
3424         * testsuite/27_io/filesystem/operations/create_directory.cc:
3425         Likewise.
3426         * testsuite/27_io/filesystem/operations/create_symlink.cc:
3427         Likewise.
3428         * testsuite/27_io/filesystem/operations/current_path.cc:
3429         Likewise.
3430         * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
3431         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3432         * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
3433         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3434         * testsuite/27_io/filesystem/operations/last_write_time.cc:
3435         Likewise.
3436         * testsuite/27_io/filesystem/operations/permissions.cc:
3437         Likewise.
3438         * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
3439         * testsuite/27_io/filesystem/operations/read_symlink.cc:
3440         Likewise.
3441         * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
3442         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3443         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3444         * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
3445         * testsuite/27_io/filesystem/operations/resize_file.cc:
3446         Likewise.
3447         * testsuite/27_io/filesystem/operations/space.cc: Likewise.
3448         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3449         * testsuite/27_io/filesystem/operations/symlink_status.cc:
3450         Likewise.
3451         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3452         Likewise.
3453         * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
3454         Likewise.
3455         * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
3456         * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
3457         * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
3458         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3459         * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
3460         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3461         * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
3462         * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
3463         * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
3464         * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
3465         * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
3466         * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
3467         * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
3468         * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
3469         * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
3470         * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
3471         * testsuite/27_io/filesystem/path/construct/default.cc:
3472         Likewise.
3473         * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
3474         * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
3475         * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
3476         * testsuite/27_io/filesystem/path/construct/string_view.cc:
3477         Likewise.
3478         * testsuite/27_io/filesystem/path/decompose/extension.cc:
3479         Likewise.
3480         * testsuite/27_io/filesystem/path/decompose/filename.cc:
3481         Likewise.
3482         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3483         Likewise.
3484         * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
3485         Likewise.
3486         * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
3487         Likewise.
3488         * testsuite/27_io/filesystem/path/decompose/root_name.cc:
3489         Likewise.
3490         * testsuite/27_io/filesystem/path/decompose/root_path.cc:
3491         Likewise.
3492         * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
3493         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
3494         Likewise.
3495         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
3496         * testsuite/27_io/filesystem/path/generation/normal.cc:
3497         Likewise.
3498         * testsuite/27_io/filesystem/path/generation/normal2.cc:
3499         Likewise.
3500         * testsuite/27_io/filesystem/path/generation/proximate.cc:
3501         Likewise.
3502         * testsuite/27_io/filesystem/path/generation/relative.cc:
3503         Likewise.
3504         * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
3505         * testsuite/27_io/filesystem/path/generic/generic_string.cc:
3506         Likewise.
3507         * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
3508         * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
3509         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3510         * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
3511         * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
3512         * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
3513         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
3514         Likewise.
3515         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
3516         Likewise.
3517         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
3518         Likewise.
3519         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
3520         Likewise.
3521         * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
3522         * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
3523         * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
3524         Likewise.
3525         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
3526         * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
3527         * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
3528         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3529         Likewise.
3530         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3531         * testsuite/27_io/filesystem/path/query/empty_neg.cc:
3532         * testsuite/27_io/filesystem/path/query/has_extension.cc:
3533         Likewise.
3534         * testsuite/27_io/filesystem/path/query/has_filename.cc:
3535         Likewise.
3536         * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
3537         Likewise.
3538         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3539         Likewise.
3540         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3541         Likewise.
3542         * testsuite/27_io/filesystem/path/query/has_root_name.cc:
3543         Likewise.
3544         * testsuite/27_io/filesystem/path/query/has_root_path.cc:
3545         Likewise.
3546         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3547         * testsuite/27_io/filesystem/path/query/is_absolute.cc:
3548         Likewise.
3549         * testsuite/27_io/filesystem/path/query/is_relative.cc:
3550         Likewise.
3551         * testsuite/experimental/filesystem/path/construct/string_view.cc:
3552         Likewise.
3554 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3556         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
3557         Remove -std=gnu++17 from dg-options.
3558         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
3559         Likewise.
3560         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3561         Likewise.
3562         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3563         Likewise.
3564         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3565         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3566         Likewise.
3567         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3568         Likewise.
3569         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3570         Likewise.
3571         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3572         Likewise.
3573         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3574         Likewise.
3575         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3576         Likewise.
3577         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3578         Likewise.
3579         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3580         Likewise.
3581         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3582         Likewise.
3583         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3584         Likewise.
3585         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3586         Likewise.
3587         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3588         Likewise.
3589         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3590         Likewise.
3591         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3592         Likewise.
3593         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3594         Likewise.
3595         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3596         Likewise.
3597         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3598         Likewise.
3599         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3600         Likewise.
3601         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3602         Likewise.
3603         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3604         Likewise.
3605         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3606         Likewise.
3607         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3608         Likewise.
3609         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3610         Likewise.
3611         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3612         Likewise.
3613         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3614         Likewise.
3615         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3616         Likewise.
3617         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3618         Likewise.
3619         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3620         Likewise.
3621         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3622         Likewise.
3623         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3624         Likewise.
3625         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3626         Likewise.
3627         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3628         Likewise.
3629         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3630         Likewise.
3631         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3632         Likewise.
3633         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3634         Likewise.
3635         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
3636         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3637         Likewise.
3638         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3639         Likewise.
3640         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3641         Likewise.
3642         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3643         Likewise.
3644         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3645         Likewise.
3646         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
3647         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
3648         * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
3649         * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
3650         * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
3651         * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
3652         * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
3653         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
3654         Likewise.
3655         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
3656         * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
3657         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3658         Likewise.
3659         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3660         Likewise.
3662 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3664         * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
3665         for additional errors in C++20.
3666         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3667         Likewise.
3668         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3669         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3671 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3673         * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
3674         clash with std::any.
3676 2021-05-07  Jonathan Wakely  <jwakely@redhat.com>
3678         * include/std/istream (__rvalue_stream_extraction_t): Replace
3679         use of __rval_streamable.
3680         * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
3681         (__rval_streamable): Remove.
3682         (_Require_derived_from_ios_base, __derived_from_ios_base): New
3683         helper for checking constraints.
3684         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
3685         reference to the wrong subclause of the standard.
3686         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3687         Likewise.
3688         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3689         Likewise.
3690         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3691         Likewise.
3692         * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
3693         New test.
3694         * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
3695         errors.
3697 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
3699         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
3700         Improve static_assert messages.
3701         * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
3702         * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
3704 2021-05-06  Patrick Palka  <ppalka@redhat.com>
3706         * include/std/ranges (filter_view::_Iterator::base): Make the
3707         const& overload unconstrained and return a const reference as
3708         per LWG 3533.  Make unconditionally noexcept.
3709         (transform_view::_Iterator::base): Likewise.
3710         (elements_view::_Iterator::base): Likewise.
3712 2021-05-06  Patrick Palka  <ppalka@redhat.com>
3714         * include/bits/stl_iterator.h (move_iterator::base): Make the
3715         const& overload unconstrained and return a const reference as
3716         per LWG 3391.  Make unconditionally noexcept.
3717         (counted_iterator::base): Likewise.
3718         * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
3719         * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
3720         has_member_base concept to decay-copy the result of base().
3722 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
3724         * include/std/type_traits (remove_cvref_t): Define in terms of
3725         remove_cvref.
3726         * testsuite/20_util/remove_cvref/value.cc: Check alias.
3728 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
3730         Revert:
3731         2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
3733         * include/std/charconv (__from_chars_alnum): Pass unsigned
3734         char to std::isdigit.
3736 2021-05-05  Patrick Palka  <ppalka@redhat.com>
3738         * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
3739         Remove constraints on this partial specialization.
3740         * include/std/ranges (enable_borrowed_range<iota_view>):
3741         Likewise.
3743 2021-05-05  Patrick Palka  <ppalka@redhat.com>
3745         * include/std/ranges (transform_view::_Iterator::iter_swap):
3746         Remove as per LWG 3520.
3747         (join_view::_Iterator::iter_swap): Add indirectly_swappable
3748         constraint as per LWG 3517.
3750 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
3752         * testsuite/20_util/function_objects/invoke/3.cc: Check feature
3753         test macro.
3754         * testsuite/20_util/function_objects/invoke/version.cc: New test.
3756 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
3758         * include/std/charconv (__from_chars_alnum): Pass unsigned
3759         char to std::isdigit.
3761 2021-05-05  Corentin Gay  <gay@adacore.com>
3763         * acinclude.m4: Add VxWorks-specific case for the
3764         configuration of ctypes.
3765         * configure: Regenerate.
3766         * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
3767         version.
3768         * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
3769         * config/os/vxworks/ctype_configure_char.cc: Likewise.
3770         * config/os/vxworks/ctype_inline.h: Likewise.
3771         * testsuite/28_regex/traits/char/isctype.cc: Defines
3772         NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
3773         * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
3775 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3777         * include/std/future (promise::set_value): Check for existence
3778         of shared state before dereferncing it.
3779         (promise::set_exception, promise::set_value_at_thread_exit)
3780         (promise::set_exception_at_thread_exit): Likewise.
3781         (promise<R&>::set_value, promise<R&>::set_exception)
3782         (promise<R&>::set_value_at_thread_exit)
3783         (promise<R&>::set_exception_at_thread_exit): Likewise.
3784         (promise<void>::set_value, promise<void>::set_exception)
3785         (promise<void>::set_value_at_thread_exit)
3786         (promise<void>::set_exception_at_thread_exit): Likewise.
3787         * testsuite/30_threads/promise/members/at_thread_exit2.cc:
3788         Remove unused variable.
3790 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3792         * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
3793         Do not do arithmetic on null pointer.
3795 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3797         * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
3798         (find_key_pointer(key_const_reference, false_type))
3799         (find_key_pointer(key_const_reference, true_type)): Do not
3800         dereference null pointer.
3802 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3804         * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
3805         overflow.
3806         * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
3807         non-zero value to null pointer.
3808         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
3809         Use past-the-end iterator for result.
3810         * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
3811         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
3813 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3815         PR libstdc++/100384
3816         * include/std/variant (__get_t): New alias template yielding the
3817         return type of std::get<N> on a variant.
3818         (__visit_result_t): New alias template yielding the result of
3819         std::visit.
3820         (__same_types): Move into namespace __detail::__variant.
3821         (__check_visitor_results): Likewise. Use __invoke_result_t and
3822         __get_t.
3823         (__check_visitor_result): Remove.
3824         (visit): Use __visit_result_t for return type.
3825         * testsuite/20_util/variant/100384.cc: New test.
3827 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3829         * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
3830         checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
3831         * config.h.in: Regenerate.
3832         * configure: Regenerate.
3833         * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
3834         * include/bits/random.h (_Select_uint_least_t<s, 1>):
3835         Use __SIZEOF_INT128__ to decide whether to use __int128.
3836         * include/std/charconv (__to_chars_unsigned_type): Likewise.
3838 2021-05-03  Gerald Pfeifer  <gerald@pfeifer.com>
3840         * doc/xml/manual/ctype.xml: Move unix.org reference to https.
3841         * doc/html/manual/facets.html: Regenerate.
3843 2021-04-30  Patrick Palka  <ppalka@redhat.com>
3845         * include/std/ranges (__detail::__non_propating_cache): Define
3846         as per P2328.
3847         (join_view): Remove constraints on the value and reference types
3848         of the wrapped iterator type as per P2328.
3849         (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
3850         (join_view::_Iterator::operator++): Likewise.
3851         (join_view::_M_inner): Use __non_propating_cache as per P2328.
3852         Remove now-redundant use of __maybe_present_t.
3853         * testsuite/std/ranges/adaptors/join.cc: Include <array>.
3854         (test10): New test.
3856 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3858         * include/bits/basic_string.h (__cpp_lib_constexpr_string):
3859         Only define for C++17 and later.
3860         * include/std/version (__cpp_lib_semaphore): Fix condition
3861         to match the one in <semaphore>.
3863 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3865         * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
3866         * config.h.in: Regenerate.
3867         * configure: Regenerate.
3868         * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
3869         * include/bits/postypes.h: Remove include of <stdint.h> and
3870         definition/undefinition of the __STDC_LIMIT_MACROS and
3871         __STDC_CONSTANT_MACROS macros.
3872         (streamoff): Use __INT64_TYPE__ if defined.
3874 2021-04-30  Patrick Palka  <ppalka@redhat.com>
3876         * include/std/ranges (split_view::_InnerIter::operator++):
3877         Depend on _Base instead of _Vp directly, as per LWG 3532.
3879 2021-04-30  Patrick Palka  <ppalka@redhat.com>
3881         * include/bits/ranges_util.h (subrange::subrange): Avoid
3882         list-initialization in delegating constructor.
3883         * include/std/ranges (single_view): Replace implicit guide
3884         with explicit deduction guide that decays its argument.
3885         (_Single::operator()): Avoid CTAD when constructing the
3886         single_view object.
3887         (_Iota::operator()): Avoid list-initialization.
3888         (__detail::__can_filter_view, _Filter::operator()): Likewise.
3889         (__detail::__can_transform_view, _Transform::operator()): Likewise.
3890         (take_view::begin): Likewise.
3891         (__detail::__can_take_view, _Take::operator()): Likewise.
3892         (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
3893         (__detail::__can_drop_view, _Drop::operator()): Likewise.
3894         (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
3895         (split_view::split_view): Use views::single when initializing
3896         _M_pattern.
3897         (__detail::__can_split_view, _Split::operator()): Avoid
3898         list-initialization.
3899         (_Counted::operator()): Likewise.
3900         * testsuite/std/ranges/p2367.cc: New test.
3902 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3904         PR libstdc++/60497
3905         * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
3906         std::addressof.
3907         * include/bits/basic_string.tcc (basic_string::swap)
3908         (basic_string::assign): Likewise.
3909         * include/bits/deque.tcc (deque::operator=(const deque&)):
3910         Likewise.
3911         * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
3912         Likewise.
3913         * include/bits/vector.tcc (vector::operator=(const vector&)):
3914         Likewise.
3916 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3918         * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
3919         per LWG 1203.
3920         * include/std/ostream (operator<<(Ostream&&, const x&)):
3921         Likewise.
3922         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
3923         Adjust dg-error pattern.
3924         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
3925         Likewise.
3926         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
3927         is_extractable trait to replace std::__is_extractable. Make it
3928         work with rvalue streams as well as lvalues, to replace f() and
3929         g() helper functions.
3930         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3931         Likewise.
3932         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3933         Define is_insertable trait to replace std::__is_insertable. Make
3934         it work with rvalue streams as well as lvalues, to replace f()
3935         and g() helper functions.
3936         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3937         Likewise.
3938         * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
3939         errors from new constraints.
3940         * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
3941         which are no longer expected to compile.
3942         * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
3943         Verify LWG 1203 changes.
3945 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3947         PR libstdc++/100285
3948         * include/experimental/socket (__basic_socket_impl::set_option)
3949         (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
3950         Just set error code.
3951         * testsuite/experimental/net/socket/socket_base.cc: CHeck
3952         for <sys/socket.h> not <socket.h>.
3954 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3956         PR libstdc++/100180
3957         PR libstdc++/100286
3958         PR libstdc++/100351
3959         * testsuite/experimental/net/internet/address/v4/comparisons.cc:
3960         Use new effective-target keyword.
3961         * testsuite/experimental/net/internet/address/v4/cons.cc:
3962         Likewise.
3963         * testsuite/experimental/net/internet/address/v4/creation.cc:
3964         Likewise.
3965         * testsuite/experimental/net/internet/address/v4/members.cc:
3966         Likewise.
3967         * testsuite/experimental/net/internet/address/v6/members.cc:
3968         Likewise.
3969         * testsuite/experimental/net/internet/resolver/base.cc:
3970         Likewise.
3971         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
3972         Likewise.
3973         * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
3974         Likewise.
3975         * testsuite/experimental/net/internet/socket/opt.cc:
3976         Likewise.
3977         * testsuite/experimental/net/internet/tcp.cc:
3978         Likewise.
3979         * testsuite/experimental/net/internet/udp.cc:
3980         Likewise.
3981         * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
3982         New proc to check net_ts_ip et.
3984 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
3986         PR libstdc++/97930
3987         * testsuite/20_util/pair/requirements/structural.cc: New test.
3989 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
3991         * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
3992         new definitions for constructors and assignment operators using
3993         concepts for constraints.
3994         * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
3995         later.
3996         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
3997         expected error messages to also match C++20 errors.
3999 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4001         PR libstdc++/99957
4002         * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
4003         Combine and replace with ...
4004         (_PCC::_DeprConsPair): New SFINAE helper function.
4005         (pair): Merge preprocessor blocks so that all C++03 members
4006         are defined together at the end.
4007         (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
4008         Replace _T1 and _T2 parameters with __null_ptr_constant and
4009         adjust constraints.
4010         * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
4011         * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
4012         * testsuite/20_util/pair/cons/99957.cc: New test.
4014 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4016         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
4017         * include/std/version (__cpp_lib_constexpr_string): Define.
4018         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4019         Check for __cpp_lib_constexpr_string.
4020         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
4021         Likewise.
4022         * testsuite/21_strings/char_traits/requirements/version.cc: New test.
4024 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4026         * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
4027         dealing with errors. Use '@' to prevent shell command being
4028         echoed.
4029         * doc/Makefile.in: Regenerate.
4031 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
4033         PR libstdc++/100298
4034         * include/bits/std_thread.h (thread::hardware_concurrency): Add
4035         missing noexcept to inline definition for non-gthreads targets.
4037 2021-04-28  Patrick Palka  <ppalka@redhat.com>
4039         PR libstdc++/100187
4040         PR libstdc++/100237
4041         PR libstdc++/100249
4042         PR libstdc++/100287
4043         * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
4044         the __value_comp lambda an explicit bool return type.
4045         (__is_permutation_fn::operator()): Give the __proj_scan local
4046         variable auto&& return type.  Give the __comp_scan lambda an
4047         explicit bool return type.
4048         (__remove_fn::operator()): Give the __pred lambda an explicit
4049         bool return type.
4050         (__partition_fn::operator()): Don't std::move __first twice
4051         when returning an empty subrange.
4052         (__min_fn::operator()): Don't std::move __comp.
4053         (__max_fn::operator()): Likewise.
4054         (__minmax_fn::operator()): Likewise.
4056 2021-04-27  Patrick Palka  <ppalka@redhat.com>
4058         PR libstdc++/100290
4059         * include/std/ranges (join_view::_Iterator::operator++): Correct
4060         the return type of the lambda to avoid returning a copy of
4061         _M_parent->_M_inner.
4062         * testsuite/std/ranges/adaptors/join.cc (test10): New test.
4064 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
4066         Revert:
4067         2021-04-22  Jakub Jelinek  <jakub@redhat.com>
4069         PR target/100182
4070         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4071         ia32.
4072         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4073         ia32.
4075 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
4077         * include/experimental/internet (address_v6::bytes_type): Adjust
4078         formatting.
4079         (basic_endpoint): Define _M_is_v6() to put all checks for
4080         AF_INET6 in one place.
4081         (basic_endpoint::resize): Simplify.
4082         (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
4083         (operator!=(const tcp&, const tcp&)): Likewise.
4084         (operator==(const udp&, const udp&)): Likewise.
4085         (operator!=(const udp&, const udp&)): Likewise.
4086         * testsuite/experimental/net/internet/tcp.cc: New test.
4087         * testsuite/experimental/net/internet/udp.cc: New test.
4089 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
4091         PR libstdc++/100286
4092         * include/experimental/internet (resolver_errc, resolver_category())
4093         (make_error_code, make_error_condition): Define unconditionally,
4094         only make enumerators and use of gai_strerror depend on the
4095         availability of <netdb.h>.
4096         (address_v4::to_string): Use correct constant for string length.
4097         (address_v4::to_string, address_v6::to_string): Define
4098         unconditionally, throw if unsupported.
4099         (make_address_v4, make_address_v6): Define unconditionally.
4100         Return an error if unsupported.
4101         (tcp, udp, v6_only, unicast::hops, multicast::*): Define
4102         conditionally,
4103         * testsuite/experimental/net/internet/socket/opt.cc: Check for
4104         <netinet/in.h> and <netinet/tcp.h> before using types from
4105         namespace net::ip.
4107 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
4109         PR libstdc++/100285
4110         * include/experimental/internet (resolver_base::flags):
4111         Define overloaded operators as hidden friends.
4112         * include/experimental/socket (socket_base::message_flags):
4113         Likewise.
4115 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4117         * include/experimental/internet (tcp::no_delay, v6_only)
4118         (unicast::hops, multicast::hops, multicast::enable_loopback):
4119         Change access of base class and static data members. Add
4120         using-declaration for __socket_crtp::operator=(_Tp).
4121         (multicast::__mcastopt): New type.
4122         (multicast::join_group, multicast::leave_group): Derive from
4123         __mcastopt for common implementation.
4124         * include/experimental/socket: Add comment.
4125         * testsuite/experimental/net/internet/socket/opt.cc: New test.
4126         * testsuite/experimental/net/socket/socket_base.cc: Check for
4127         protected constructor/destructor of socket_base. Check for
4128         explicit constructors of socket option classes.
4130 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4132         * include/experimental/bits/net.h (__socket_base): Add
4133         bool template parameter to allow BooleanSocketOption and
4134         IntegerSocketOption to have different __socket_base<int>
4135         base classes.
4136         (__socket_base<bool>): Adjust base class.
4137         (__socket_base<int>): Add partial specialization.
4138         (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
4139         * include/experimental/socket (socket_base::broadcast)
4140         (socket_base::debug, socket_base::do_not_route)
4141         (socket_base::keep_alive, socket_base::linger)
4142         (socket_base::out_of_band_inline)
4143         (socket_base::receive_buffer_size)
4144         (socket_base::receive_low_watermark)
4145         (socket_base::reuse_address, socket_base::send_buffer_size)
4146         (socket_base::send_low_watermark): Add using-declaration for
4147         __socket_crtp::operator=(_Tp).
4148         * testsuite/experimental/net/socket/socket_base.cc: Check
4149         properties of socket option types.
4151 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4153         * include/experimental/internet (resolver_base::flags): Remove
4154         enumerators. Initialize constants directly with desired values.
4155         Make all operators constexpr and noexcept.
4156         * testsuite/experimental/net/internet/resolver/base.cc: Use
4157         __gnu_test::test_bitmask_values for bitmask type. Check
4158         construction and destruction is protected.
4160 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4162         * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
4164 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
4166         PR libstdc++/100259
4167         * include/experimental/internet (net::ip::make_error_code)
4168         (net::ip::make_error_condition, net::ip::make_network_v4)
4169         (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
4171 2021-04-24  David Edelsohn  <dje.gcc@gmail.com>
4173         * testsuite/lib/dg-options.exp (atomic_link_flags): New.
4174         (add_options_for_libatomic): Use atomic_link_flags.
4176 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
4178         PR libstdc++/100180
4179         * include/experimental/io_context (io_context): Define
4180         dummy_pollfd type so that most member functions still compile
4181         without <poll.h> and struct pollfd.
4183 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
4185         * include/experimental/io_context (io_context::async_wait): Add
4186         comment.
4187         * include/experimental/socket (basic_socket::async_connect):
4188         Cast wait_type constant to int.
4189         (basic_datagram_socket::async_receive): Likewise.
4190         (basic_datagram_socket::async_receive_from): Likewise.
4191         (basic_datagram_socket::async_send): Likewise.
4192         (basic_datagram_socket::async_send_to): Likewise.
4193         (basic_stream_socket::async_receive): Likewise.
4194         (basic_stream_socket::async_send): Likewise. Use io_context
4195         parameter directly, instead of via an executor.
4196         (basic_socket_acceptor::async_accept): Likewise.
4198 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
4200         * include/experimental/socket (socket_base::shutdown_type):
4201         (socket_base::wait_type, socket_base::message_flags):
4202         Remove enumerators. Initialize constants directly with desired
4203         values.
4204         (socket_base::message_flags): Make all operators constexpr and
4205         noexcept.
4206         * testsuite/util/testsuite_common_types.h (test_bitmask_values):
4207         New test utility.
4208         * testsuite/experimental/net/socket/socket_base.cc: New test.
4210 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
4212         * config/os/aix/atomicity.h: Delete.
4214 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4216         * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4217         Handle system_clock as well as steady_clock.
4218         * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4219         * testsuite/30_threads/semaphore/try_acquire_until.cc:
4220         Re-enable.
4222 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4224         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4225         options for libatomic.
4227 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4229         * config/os/gnu-linux/os_defines.h: Fix type in comment.
4231 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4233         PR libstdc++/99006
4234         * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4235         is not an array type.
4236         * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4237         * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4239 2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
4241         * include/bits/atomic_wait.h: Always notify waiters in the
4242         case of 'bare' address notification.
4244 2021-04-22  Jakub Jelinek  <jakub@redhat.com>
4246         PR target/100182
4247         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4248         ia32.
4249         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4250         ia32.
4252 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4254         PR libstdc++/100179
4255         * include/bits/semaphore_base.h: Remove #error.
4256         * include/std/semaphore: Do not define anything unless one of
4257         the implementations is available.
4259 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
4261         * include/bits/semaphore_base.h: Always reload __old in
4262         __atomic_semaphore::_S_do_try_acquire().
4263         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4264         re-enable testcase.
4266 2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
4267             Jonathan Wakely  <jwakely@redhat.com>
4269         PR libstdc++/99453
4270         * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4271         * python/Makefile.in: Regenerate.
4273 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
4275         * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4276         member to __platform_wait.
4278 2021-04-21  Jonathan Wakely  <jwakely@redhat.com>
4280         * include/std/latch: Replace tab characters in license text.
4281         * include/std/semaphore: Likewise.
4283 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
4285         PR libstdc++/100164
4286         * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
4287         rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
4288         * configure: Regenerated.
4289         * config.h.in: Regenerated.
4291 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
4293         * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
4294         test for targets not using futexes for semaphores.
4295         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4296         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4297         Disable for all targets.
4299 2021-04-20  Thomas Rodgers  <trodgers@redhat.com>
4301         * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
4302         * include/Makefile.in: Regenerate.
4303         * include/bits/this_thread_sleep.h: New file.
4304         * include/bits/atomic_base.h: Adjust all calls
4305         to __atomic_wait/__atomic_notify for new call signatures.
4306         * include/bits/atomic_timed_wait.h: Extensive rewrite.
4307         * include/bits/atomic_wait.h: Likewise.
4308         * include/bits/semaphore_base.h: Adjust all calls
4309         to __atomic_wait/__atomic_notify for new call signatures.
4310         * include/std/atomic: Likewise.
4311         * include/std/barrier: Likewise.
4312         * include/std/latch: Likewise.
4313         * include/std/semaphore: Likewise.
4314         * include/std/thread (this_thread::sleep_for)
4315         (this_thread::sleep_until): Move to new header.
4316         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
4317         test.
4318         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4319         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4320         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4321         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
4322         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
4323         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
4325 2021-04-20  Patrick Palka  <ppalka@redhat.com>
4327         PR libstdc++/95983
4328         * include/bits/stl_iterator.h (__detail::__move_iter_cat):
4329         Define.
4330         (move_iterator): Derive from the above in C++20 in order to
4331         conditionally define iterator_category as per P2259.
4332         (move_iterator::__base_cat): No longer used, so remove.
4333         (move_iterator::iterator_category): Remove in C++20.
4334         (__detail::__common_iter_use_postfix_proxy): Define.
4335         (common_iterator::_Proxy): Rename to ...
4336         (common_iterator:__arrow_proxy): ... this.
4337         (common_iterator::__postfix_proxy): Define as per P2259.
4338         (common_iterator::operator->): Adjust.
4339         (common_iterator::operator++): Adjust as per P2259.
4340         (iterator_traits<common_iterator>::_S_iter_cat): Define.
4341         (iterator_traits<common_iterator>::iterator_category): Change as
4342         per P2259.
4343         (__detail::__counted_iter_value_type): Define.
4344         (__detail::__counted_iter_concept): Define.
4345         (__detail::__counted_iter_cat): Define.
4346         (counted_iterator): Derive from the above three classes in order
4347         to conditionally define value_type, iterator_concept and
4348         iterator category respectively as per P2259.
4349         (counted_iterator::operator->): Define as per P2259.
4350         (incrementable_traits<counted_iterator>): Remove as per P2259.
4351         (iterator_traits<counted_iterator>): Adjust as per P2259.
4352         * include/std/ranges (__detail::__iota_view_iter_cat): Define.
4353         (iota_view::_Iterator): Derive from the above in order to
4354         conditionally define iterator_category as per P2259.
4355         (iota_view::_S_iter_cat): Rename to ...
4356         (iota_view::_S_iter_concept): ... this.
4357         (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
4358         (iota_view::iterator_category): Remove.
4359         (__detail::__filter_view_iter_cat): Define.
4360         (filter_view::_Iterator): Derive from the above in order to
4361         conditionally define iterator_category as per P2259.
4362         (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
4363         (filter_view::_Iterator::iterator_category): Remove.
4364         (transform_view::_Base): Define.
4365         (transform_view::__iter_cat): Define.
4366         (transform_view::_Iterator): Derive from the above in order to
4367         conditionally define iterator_category as per P2259.
4368         (transform_view::_Iterator::_Base): Just alias
4369         transform_view::_Base.
4370         (transform_view::_Iterator::_S_iter_cat): Move to struct
4371         transform_view::__iter_cat.
4372         (transform_view::_Iterator::iterator_category): Remove.
4373         (transform_view::_Sentinel::_Base): Just alias
4374         transform_view::_Base.
4375         (join_view::_Base): Define.
4376         (join_view::_Outer_iter): Define.
4377         (join_view::_Inner_iter): Define.
4378         (join_view::_S_ref_is_glvalue): Define.
4379         (join_view::__iter_cat): Define.
4380         (join_view::_Iterator): Derive from it in order to conditionally
4381         define iterator_category as per P2259.
4382         (join_view::_Iterator::_Base): Just alias join_view::_Base.
4383         (join_view::_Iterator::_S_ref_is_glvalue): Just alias
4384         join_view::_S_ref_is_glvalue.
4385         (join_view::_Iterator::_S_iter_cat): Move to struct
4386         transform_view::__iter_cat.
4387         (join_view::_Iterator::_Outer_iter): Just alias
4388         join_view::_Outer_iter.
4389         (join_view::_Iterator::_Inner_iter): Just alias
4390         join_view::_Inner_iter.
4391         (join_view::_Iterator::iterator_category): Remove.
4392         (join_view::_Sentinel::_Base): Just alias join_view::_Base.
4393         (__detail::__split_view_outer_iter_cat): Define.
4394         (__detail::__split_view_inner_iter_cat): Define.
4395         (split_view::_Base): Define.
4396         (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
4397         in order to conditionally define iterator_category as per P2259.
4398         (split_view::_Outer_iter::iterator_category): Remove.
4399         (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
4400         in order to conditionally define iterator_category as per P2259.
4401         (split_view::_Inner_iter::_S_iter_cat): Move to
4402         __split_view_inner_iter_cat.
4403         (split_view::_Inner_iter::iterator_category): Remove.
4404         (elements_view::_Base): Define.
4405         (elements_view::__iter_cat): Define.
4406         (elements_view::_Iterator): Derive from the above in order to
4407         conditionall define iterator_category as per P2259.
4408         (elements_view::_Iterator::_Base): Just alias
4409         elements_view::_Base.
4410         (elements_view::_Iterator::_S_iter_concept)
4411         (elements_view::_Iterator::iterator_concept): Define as per
4412         P2259.
4413         (elements_view::_Iterator::iterator_category): Remove.
4414         (elements_view::_Sentinel::_Base): Just alias
4415         elements_view::_Base.
4416         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4417         Adjust constraints on iterator_traits<counted_iterator>.
4418         * testsuite/std/ranges/p2259.cc: New test.
4420 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
4422         PR libstdc++/100146
4423         * include/std/charconv (__cpp_lib_to_chars): Define
4424         conditionally.
4425         * include/std/version (__cpp_lib_to_chars): Likewise..
4426         * testsuite/20_util/from_chars/4.cc: Only check feature test
4427         macro, not _GLIBCXX_HAVE_USELOCALE.
4428         * testsuite/20_util/from_chars/5.cc: Likewise.
4429         * testsuite/20_util/from_chars/6.cc: Likewise.
4430         * testsuite/20_util/to_chars/long_double.cc: Likewise.
4432 2021-04-20  Jakub Jelinek  <jakub@redhat.com>
4434         * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
4435         versions with _IEEE128_ substring are found, set ieee_version_found
4436         to true.  Ignore missing symbols with _IEEE128_ in version name if
4437         !ieee_version_found.  Use i->first as version_name instead of
4438         i->second.version_name if the latter is empty.
4439         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4441 2021-04-19  H.J. Lu  <hjl.tools@gmail.com>
4443         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
4444         Updated.
4446 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
4448         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
4449         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
4451 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
4453         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4454         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4455         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
4456         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4457         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4458         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4460 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
4462         * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
4463         add libatomic options for 32-bit sparc*-*-linux-gnu.
4465 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
4467         PR libstdc++/96657
4468         * libsupc++/Makefile.am: Add atomicity.cc here.
4469         * src/c++98/Makefile.am: Remove it from here.
4470         * libsupc++/Makefile.in: Regenerate.
4471         * src/c++98/Makefile.in: Regenerate.
4472         * testsuite/18_support/exception_ptr/96657.cc: New test.
4474 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
4476         PR libstdc++/100060
4477         * include/std/bit: Only include <ext/numeric_traits.h> for
4478         hosted build, use <limits> otherwise.
4480 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
4482         * doc/xml/manual/backwards_compatibility.xml: Remove porting
4483         notes for libg++ and libstdc++-v2, and bibliography.
4484         * doc/html/*: Regenerated.
4486 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
4488         PR libstdc++/100044
4489         * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
4490         Remove helper concept.
4491         (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
4492         deduction guides, as per LWG 3404.
4493         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
4494         template argument deduction fails.
4496 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
4498         * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
4499         Adjust expected error for C++20 mode.
4500         * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
4501         Likewise.
4503 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
4505         PR libstdc++/99995
4506         * testsuite/17_intro/headers/c++1998/49745.cc: Include all
4507         standard headers and XFAIL for effective-target c++20.
4509 2021-04-09  François Dumont  <fdumont@gcc.gnu.org>
4511         PR libstdc++/99402
4512         * include/debug/helper_functions.h (__can_advance(_InputIterator,
4513         const std::pair<_Diff, _Distance_precision>&, int)): New.
4514         (__can_advance(const _Safe_iterator<>&,
4515         const std::pair<_Diff, _Distance_precision>&, int)): New.
4516         * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
4517         use latter.
4518         (__glibcxx_check_can_increment_range): Adapt to use latter.
4519         (__glibcxx_check_can_decrement_range): Likewise.
4520         * include/debug/safe_iterator.h
4521         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4522         int)): New.
4523         (__can_advance(const _Safe_iterator<>&,
4524         const std::pair<_Diff, _Distance_precision>&, int)): New.
4525         * include/debug/safe_iterator.tcc
4526         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4527         int)): New.
4528         (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
4529         std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
4530         __dp_sign_max_size.
4531         (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
4532         (__copy_move_backward_a): Likewise.
4533         (__equal_aux): Likewise.
4534         * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
4535         const std::pair<_Diff, _Distance_precision>&, int)): New.
4536         (__can_advance(const std::move_iterator<>&,
4537         const std::pair<_Diff, _Distance_precision>&, int)): New.
4538         * testsuite/25_algorithms/copy/debug/99402.cc: New test.
4540 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
4542         PR libstdc++/99985
4543         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
4544         to be a valid constexpr function in C++11.
4545         * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
4547 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
4549         * include/bits/fs_fwd.h: Fix doxygen group command.
4550         * include/bits/streambuf_iterator.h: Likewise.
4551         * include/bits/uses_allocator_args.h: Likewise.
4552         * include/std/memory: Likewise.
4553         * include/tr1/complex: Likewise.
4555 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4557         * include/bits/basic_string.h: Tweak doxygen comment.
4559 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4561         * include/std/ranges (__detail::find): Define.
4562         (split_view::_OuterIter::operator++): Apply proposed resolution
4563         of LWG 3505.
4564         * testsuite/std/ranges/adaptors/split.cc (test10): New test.
4566 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4568         * include/std/ranges (__detail::find_if): Simplify.
4569         (__detail::find_if_not): Likewise.
4570         (__detail::min): Remove.
4571         (__detail::mismatch): Simplify.
4572         (take_view::size): Use std::min instead of __detail::min.
4574 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4576         * include/std/ranges (__detail::__returnable_element): New
4577         concept.
4578         (elements_view): Use this concept in its constraints.  Add
4579         missing private access specifier.
4580         (elements_view::_S_get_element): Define as per LWG 3502.
4581         (elements_view::operator*, elements_view::operator[]): Use
4582         _S_get_element.
4583         (elements_view::operator++): Remove unnecessary constraint
4584         as per LWG 3492.
4585         * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
4587 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4589         * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
4590         out-of-memory error in log file.
4591         * doc/Makefile.in: Regenerate.
4593 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4595         * configure: Regenerate.
4597 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4599         * include/bits/random.h: Fix doxygen group commands.
4600         * include/bits/regex_constants.h: Likewise.
4601         * include/tr1/random.h: Likewise.
4603 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4605         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
4606         New function to determine noexcept-specifier for move
4607         constructors.
4608         (_Hashtable): Use _S_nothrow_move() on move constructors.
4609         * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
4610         Correct static assertion message.
4611         * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
4612         Likewise.
4613         * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
4614         Likewise.
4615         * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
4616         Likewise.
4618 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4620         PR libstdc++/98384
4621         * testsuite/20_util/to_chars/long_double.cc: Don't run the test
4622         on targets without a large long double.  XFAIL the execution on
4623         targets with a non-conforming printf.
4625 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4627         PR libstdc++/99433
4628         * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
4629         (__adaptor::__adaptor_invocable): New concept.
4630         (__adaptor::__adaptor_partial_app_viable): New concept.
4631         (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
4632         non-template base class.
4633         (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
4634         class template.
4635         (__adaptor::_Partial): New class template that represents
4636         partial application of a range adaptor non-closure.
4637         (__adaptor::__pipe_invocable): New concept.
4638         (__adaptor::_Pipe): New class template.
4639         (__detail::__can_ref_view): New concept.
4640         (__detail::__can_subrange): New concept.
4641         (all): Replace the lambda here with ...
4642         (_All): ... this functor.  Add appropriate constraints.
4643         (__detail::__can_filter_view): New concept.
4644         (filter, _Filter): As in all/_All.
4645         (__detail::__can_transform): New concept.
4646         (transform, _Transform): As in all/_All.
4647         (__detail::__can_take_view): New concept.
4648         (take, _Take): As in all/_All.
4649         (__detail::__can_take_while_view): New concept.
4650         (take_while, _TakeWhile): As in all/_All.
4651         (__detail::__can_drop_view): New concept.
4652         (drop, _Drop): As in all/_All.
4653         (__detail::__can_drop_while_view): New concept.
4654         (drop_while, _DropWhile): As in all/_All.
4655         (__detail::__can_join_view): New concept.
4656         (join, _Join): As in all/_All.
4657         (__detail::__can_split_view): New concept.
4658         (split, _Split): As in all/_All.  Rename template parameter
4659         _Fp to _Pattern.
4660         (__detail::__already_common): New concept.
4661         (__detail::__can_common_view): New concept.
4662         (common, _Common): As in all/_All.
4663         (__detail::__can_reverse_view): New concept.
4664         (reverse, _Reverse): As in all/_All.
4665         (__detail::__can_elements_view): New concept.
4666         (elements, _Elements): As in all/_All.
4667         (keys, values): Adjust.
4668         * testsuite/std/ranges/adaptors/99433.cc: New test.
4669         * testsuite/std/ranges/adaptors/all.cc: No longer expect that
4670         adding empty range adaptor closure objects to a pipeline doesn't
4671         increase the size of the pipeline.
4672         (test05): New test.
4673         * testsuite/std/ranges/adaptors/common.cc (test03): New test.
4674         * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
4675         * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
4676         * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
4677         * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
4678         * testsuite/std/ranges/adaptors/join.cc (test09): New test.
4679         * testsuite/std/ranges/adaptors/p2281.cc: New test.
4680         * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
4681         * testsuite/std/ranges/adaptors/split.cc (test01, test04):
4682         Adjust.
4683         (test09): New test.
4684         * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
4685         expected error message.
4686         (test02): Likewise.  Extend test.
4687         * testsuite/std/ranges/adaptors/take.cc (test06): New test.
4688         * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
4689         * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
4690         New test.
4692 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4694         * include/std/string_view: Adjust Doxygen @file comment.
4696 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4698         * include/std/type_traits (is_scoped_enum<T>): Constrain partial
4699         specialization to not match incomplete enum types. Use a
4700         requires-expression instead of instantiating is_convertible.
4701         (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
4702         * testsuite/20_util/is_scoped_enum/value.cc: Check with
4703         incomplete types and opaque-enum-declarations.
4705 2021-04-07  Jonathan Wakely  <jwakely@redhat.com>
4707         PR libstdc++/99805
4708         * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
4709         non-const member on _M_pathname, to avoid copy-on-write.
4710         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4711         Check construction from strings that might be shared.
4713 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4715         * include/bits/move.h (forward, move, move_if_noexcept)
4716         (addressof): Add _GLIBCXX_NODISCARD.
4717         * include/bits/ranges_cmp.h (identity::operator()): Add
4718         nodiscard attribute.
4719         * include/c_global/cstddef (to_integer): Likewise.
4720         * include/std/bit (bit_cast): Likewise.
4721         * include/std/utility (as_const, to_underlying): Likewise.
4723 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4725         * include/bits/move.h (forward): Change static_assert message
4726         to be unambiguous about what must be true.
4727         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
4728         * testsuite/20_util/forward/f_neg.cc: Likewise.
4730 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4732         * include/bits/alloc_traits.h: Use markdown for code font.
4733         * include/bits/basic_string.h: Fix @param names.
4734         * include/bits/max_size_type.h: Remove period after @file.
4735         * include/bits/regex.h: Fix duplicate @retval names, and rename.
4736         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
4737         group open to match existing group close.
4738         * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
4739         open.
4741 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4743         * include/bits/atomic_base.h: Fix doxygen group close.
4744         * include/bits/basic_ios.h: Likewise.
4745         * include/bits/forward_list.h: Likewise.
4746         * include/bits/fs_dir.h: Likewise.
4747         * include/bits/fs_ops.h: Likewise.
4748         * include/bits/fs_path.h: Likewise.
4749         * include/bits/functional_hash.h: Likewise.
4750         * include/bits/gslice.h: Likewise.
4751         * include/bits/gslice_array.h: Likewise.
4752         * include/bits/hashtable_policy.h: Likewise.
4753         * include/bits/indirect_array.h: Likewise.
4754         * include/bits/locale_classes.h: Likewise.
4755         * include/bits/locale_facets.h: Likewise.
4756         * include/bits/locale_facets_nonio.h: Likewise.
4757         * include/bits/mask_array.h: Likewise.
4758         * include/bits/refwrap.h: Likewise.
4759         * include/bits/regex.h: Likewise.
4760         * include/bits/regex_automaton.h: Likewise.
4761         * include/bits/regex_compiler.h: Likewise.
4762         * include/bits/regex_constants.h: Likewise.
4763         * include/bits/regex_error.h: Likewise.
4764         * include/bits/regex_executor.h: Likewise.
4765         * include/bits/regex_scanner.h: Likewise.
4766         * include/bits/shared_ptr.h: Likewise.
4767         * include/bits/shared_ptr_atomic.h: Likewise.
4768         * include/bits/shared_ptr_base.h: Likewise.
4769         * include/bits/slice_array.h: Likewise.
4770         * include/bits/specfun.h: Likewise.
4771         * include/bits/std_function.h: Likewise.
4772         * include/bits/std_mutex.h: Likewise.
4773         * include/bits/stl_deque.h: Likewise.
4774         * include/bits/stl_iterator.h: Likewise.
4775         * include/bits/stl_iterator_base_types.h: Likewise.
4776         * include/bits/stl_map.h: Likewise.
4777         * include/bits/stl_multimap.h: Likewise.
4778         * include/bits/stl_multiset.h: Likewise.
4779         * include/bits/stl_numeric.h: Likewise.
4780         * include/bits/stl_pair.h: Likewise.
4781         * include/bits/stl_set.h: Likewise.
4782         * include/bits/stl_uninitialized.h: Likewise.
4783         * include/bits/stream_iterator.h: Likewise.
4784         * include/bits/streambuf_iterator.h: Likewise.
4785         * include/bits/unique_ptr.h: Likewise.
4786         * include/bits/unordered_map.h: Likewise.
4787         * include/bits/unordered_set.h: Likewise.
4788         * include/decimal/decimal: Likewise.
4789         * include/experimental/any: Likewise.
4790         * include/experimental/array: Likewise.
4791         * include/experimental/bits/fs_dir.h: Likewise.
4792         * include/experimental/bits/fs_fwd.h: Likewise.
4793         * include/experimental/bits/fs_ops.h: Likewise.
4794         * include/experimental/bits/fs_path.h: Likewise.
4795         * include/experimental/buffer: Likewise.
4796         * include/experimental/internet: Likewise.
4797         * include/experimental/optional: Likewise.
4798         * include/experimental/propagate_const: Likewise.
4799         * include/experimental/socket: Likewise.
4800         * include/ext/pb_ds/assoc_container.hpp: Likewise.
4801         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
4802         Likewise.
4803         * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
4804         * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
4805         * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
4806         * include/ext/pb_ds/exception.hpp: Likewise.
4807         * include/ext/pb_ds/priority_queue.hpp: Likewise.
4808         * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
4809         * include/ext/random: Likewise.
4810         * include/std/any: Likewise.
4811         * include/std/atomic: Likewise.
4812         * include/std/bitset: Likewise.
4813         * include/std/chrono: Likewise.
4814         * include/std/complex: Likewise.
4815         * include/std/condition_variable: Likewise.
4816         * include/std/fstream: Likewise.
4817         * include/std/future: Likewise.
4818         * include/std/iostream: Likewise.
4819         * include/std/istream: Likewise.
4820         * include/std/mutex: Likewise.
4821         * include/std/numeric: Likewise.
4822         * include/std/ostream: Likewise.
4823         * include/std/ratio: Likewise.
4824         * include/std/shared_mutex: Likewise.
4825         * include/std/stdexcept: Likewise.
4826         * include/std/streambuf: Likewise.
4827         * include/std/system_error: Likewise.
4828         * include/std/thread: Likewise.
4829         * include/std/valarray: Likewise.
4830         * include/std/variant: Likewise.
4831         * include/tr1/cmath: Likewise.
4832         * include/tr1/regex: Likewise.
4833         * include/tr2/dynamic_bitset: Likewise.
4834         * libsupc++/atomic_lockfree_defines.h: Likewise.
4835         * libsupc++/exception: Likewise.
4836         * libsupc++/exception.h: Likewise.
4837         * libsupc++/exception_ptr.h: Likewise.
4838         * libsupc++/nested_exception.h: Likewise.
4840 2021-03-31  Alexandre Oliva  <oliva@adacore.com>
4842         * testsuite/30_threads/future/members/poll.cc: Use faster
4843         after-ready call in the calibration loop.
4845 2021-03-29  Jonathan Wakely  <jwakely@redhat.com>
4847         * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
4848         * doc/html/manual/status.html: Regenerate.
4850 2021-03-28  François Dumont  <fdumont@gcc.gnu.org>
4852         * include/debug/forward_list
4853         (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
4854         * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
4855         call to safe container allocator aware move constructor.
4856         * include/debug/vector (vector(vector&&, const allocator_type&)):
4857         Fix noexcept qualification.
4858         * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
4859         Add allocator-extended move constructor noexceot qualification check.
4860         * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
4862 2021-03-26  Jonathan Wakely  <jwakely@redhat.com>
4864         * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
4865         fallback is needed.
4866         [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
4867         New helper functions and callback.
4868         (random_device::_M_init): Add 'prng' and 'all' enumerators.
4869         Replace switch with fallthrough with a series of 'if' statements.
4870         [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
4871         checks fail.
4872         (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
4873         token.
4874         (random_device::_M_getval): Check for callback unconditionally
4875         and always pass _M_file pointer.
4876         * testsuite/26_numerics/random/random_device/85494.cc: Remove
4877         effective-target check. Use new random_device_available helper.
4878         * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
4879         * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
4880         Remove effective-target check.
4881         * testsuite/26_numerics/random/random_device/cons/default.cc:
4882         Likewise.
4883         * testsuite/26_numerics/random/random_device/cons/token.cc: Use
4884         new random_device_available helper. Test "prng" token.
4885         * testsuite/util/testsuite_random.h (random_device_available):
4886         New helper function.
4888 2021-03-25  François Dumont  <fdumont@gcc.gnu.org>
4890         * include/debug/string
4891         (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
4892         (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
4893         (basic_string<>::erase): Adapt to take __const_iterator.
4894         (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
4895         (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
4896         remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
4897         [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
4898         (__gnu_debug::u16string, __gnu_debug::u32string): New.
4899         (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
4900         (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
4901         * testsuite/util/exception/safety.h
4902         (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
4903         (insert_base<__gnu_debug::basic_string<>>): Likewise.
4904         * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
4905         New partial specialization.
4906         * testsuite/21_strings/basic_string/hash/debug.cc: New test.
4907         * testsuite/21_strings/basic_string/requirements/citerators.cc:
4908         Add test on __gnu_debug::string.
4909         * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
4910         * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
4911         * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
4912         Likewise.
4913         * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
4914         Likewise.
4915         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
4916         Likewise.
4917         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
4918         Likewise.
4919         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
4920         Likewise.
4921         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
4922         Likewise.
4923         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
4924         Likewise.
4925         * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
4927 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
4929         PR c++/99672
4930         * testsuite/18_support/source_location/consteval.cc (main): Adjust
4931         expected column numbers.
4932         * testsuite/18_support/source_location/1.cc (main): Likewise.
4934 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
4936         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
4938 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
4940         * testsuite/util/exception/safety.h (setup_base::generate):
4941         Support seeding random engine.
4942         (erase_point, erase_range): Adjust range of random numbers to
4943         ensure dereferenceable iterators are used where required.
4944         (generation_prohibited::run): Do not try to erase from empty
4945         containers.
4946         * testsuite/util/testsuite_containergen.h (test_containers):
4947         Support seeding random engine.
4949 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
4951         * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
4952         line with a check that uses the const being/end overloads.
4954 2021-03-23  Moritz Sichert  <sichert@in.tum.de>
4956         * include/std/ranges (reverse_view::begin, reverse_view::end):
4957         Qualify make_reverse_iterator calls to avoid ADL.
4958         * testsuite/std/ranges/adaptors/reverse.cc: Test that
4959         views::reverse works when make_reverse_iterator is defined
4960         in an associated namespace.
4962 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
4964         * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
4965         Do not define when compiling with Clang.
4967 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
4969         * include/std/string_view (basic_string_view(Range&&)): Define new
4970         constructor and deduction guide.
4971         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
4972         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
4974 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
4976         * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
4977         Add missing 'noexcept' as per LWG 2280.
4978         (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
4979         (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
4980         * testsuite/24_iterators/range_access/range_access.cc: Check for
4981         expected noexcept specifiers. Check result types of generic
4982         std::begin and std::end overloads.
4983         * testsuite/24_iterators/range_access/range_access_cpp14.cc:
4984         Check for expected noexcept specifiers.
4985         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4986         Likewise.
4988 2021-03-19  Jonathan Wakely  <jwakely@redhat.com>
4990         * include/std/type_traits (is_scoped_enum): Define.
4991         * include/std/version (__cpp_lib_is_scoped_enum): Define.
4992         * testsuite/20_util/is_scoped_enum/value.cc: New test.
4993         * testsuite/20_util/is_scoped_enum/version.cc: New test.
4995 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
4997         PR libstdc++/99341
4998         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
4999         std::once_flag symbols.
5000         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
5001         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
5002         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5003         Likewise.
5004         * config/abi/pre/gnu.ver: Likewise.
5005         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5006         (struct __once_flag_compat): Remove.
5007         (_ZNSt9once_flag11_M_activateEv): Remove.
5008         (_ZNSt9once_flag9_M_finishEb): Remove.
5010 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
5012         PR libstdc++/99341
5013         * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
5014         Revert to pthread_once_t implementation.
5015         [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
5016         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5017         (struct __once_flag_compat): New type matching the reverted
5018         implementation of once_flag using futexes.
5019         (once_flag::_M_activate): Remove, replace with ...
5020         (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
5021         (once_flag::_M_finish): Remove, replace with ...
5022         (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
5023         * testsuite/30_threads/call_once/66146.cc: Removed.
5025 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
5027         * testsuite/17_intro/names.cc: Exclude j from the list
5028         of test symbols for Darwin.
5030 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
5032         * config/os/bsd/darwin/ppc-extra.ver: Add matching for
5033         to_chars and from_chars for long double.
5035 2021-03-15  Patrick Palka  <ppalka@redhat.com>
5037         * include/bits/max_size_type.h (__max_size_type::operator _Tp):
5038         Fix formatting.
5039         (__max_size_type::operator++): Define.
5040         (__max_size_type::operator--): Likewise.
5041         (__max_size_type::operator<=>): Conditionally define (in place
5042         of the other comparison operators).
5043         (__max_diff_type::operator _Tp): Fix formatting.
5044         (__max_diff_type::operator++): Define.
5045         (__max_diff_type::operator--): Likewise.
5046         (__max_diff_type::operator<=>): Conditionally define (in place
5047         of the other comparison operators).
5048         * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
5049         these operator overloads.
5051 2021-03-15  Caroline Tice  <cmtice@google.com>
5053         PR libstdc++/99172
5054         * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
5055         AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
5056         AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
5057         filtered out.
5058         * src/Makefile.in: Regenerate.
5060 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5062         * src/c++17/floating_to_chars.cc: Simplify the file as if
5063         __SIZEOF_INT128__ is always defined.
5064         [!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
5065         a base-10 to_chars overload for the uint128_t class type.
5066         * src/c++17/uint128_t.h: New file.
5067         * testsuite/20_util/to_chars/long_double.cc: No longer expect an
5068         execution FAIL on targets that have a large long double type
5069         but lack __int128.
5071 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5073         * src/c++17/ryu/LOCAL_PATCHES: Update.
5074         * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
5075         * src/c++17/ryu/generic_128.h: Likewise.
5076         * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
5077         Use uint128_t instead of __uint128_t.
5078         (generic_binary_to_decimal): Likewise.
5080 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5082         * src/c++17/ryu/LOCAL_PATCHES: New file.
5084 2021-03-11  Patrick Palka  <ppalka@redhat.com>
5086         * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
5087         defined alias of unsigned __int128.
5088         (floating_type_traits_binary128::mantissa_t): Use uint128_t
5089         instead of unsigned __int128.
5090         (floating_type_traits<long double>::mantissa_t)
5091         [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
5092         (get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
5093         and uint32_t explicit.  Simplify the extraction of mantissa,
5094         exponent and sign bit.
5096 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5098         * include/std/barrier (barrier::arrival_token): New move-only
5099         class that encapsulates the underlying token value.
5101 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5103         * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
5104         instead of unqualified() method.
5106 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5108         PR libstdc++/99537
5109         * include/std/stop_token (_Stop_state_t::_M_release_ownership):
5110         Use acq_rel memory ordering.
5112 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5114         PR libstdc++/99533
5115         * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
5116         helper function to check for permission denied errors.
5117         * src/filesystem/dir.cc (recursive_directory_iterator):
5118         Likewise.
5119         * src/filesystem/dir-common.h (is_permission_denied_error): New
5120         helper function.
5122 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
5124         PR libstdc++/99536
5125         * include/bits/random.h (normal_distribution): Use
5126         default-initializer for _M_saved and _M_saved_available.
5128 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
5130         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
5131         link with libatomic.
5132         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5133         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5134         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5135         * testsuite/30_threads/barrier/arrive.cc: Likewise.
5136         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5137         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5138         * testsuite/30_threads/barrier/completion.cc: Likewise.
5139         * testsuite/30_threads/latch/3.cc: Likewise.
5140         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
5141         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
5142         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5144 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
5146         PR libstdc++/99413
5147         * include/bits/align.h: Include debug/assertions.h.
5148         * include/bits/codecvt.h: Include bits/c++config.h.
5149         * include/bits/enable_special_members.h: Likewise.
5150         * include/bits/erase_if.h: Likewise.
5151         * include/bits/functional_hash.h: Include <type_traits>.
5152         * include/bits/invoke.h: Include bits/move.h.
5153         * include/bits/ostream_insert.h: Include bits/exception_defines.h.
5154         * include/bits/parse_numbers.h: Include <type_traits>.
5155         * include/bits/predefined_ops.h: Include bits/c++config.h.
5156         * include/bits/range_access.h: Include bits/stl_iterator.h.
5157         * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
5158         * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
5159         * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
5160         * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
5161         * include/bits/unique_lock.h: Include bits/std_mutex.h.
5162         * include/debug/assertions.h: Include bits/c++config.h.
5164 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
5166         * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
5167         (ranges::equal_to, ranges::not_equal_to): Do not constrain
5168         with __eq_builtin_ptr_cmp.
5169         (ranges::less, ranges::greater, ranges::less_equal)
5170         (ranges::greater_equal): Do not constrain with
5171         __less_builtin_ptr_cmp.
5172         * libsupc++/compare (compare_three_way): Do not constrain with
5173         __3way_builtin_ptr_cmp.
5174         * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
5175         * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
5176         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
5178 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
5180         * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
5181         C++20 calendar types.
5183 2021-03-06  Jakub Jelinek  <jakub@redhat.com>
5185         PR libstdc++/99396
5186         * include/std/bit (__rotl, __rotr): Add optimized variants for power of
5187         two _Nd which the compiler can pattern match the rotates.
5189 2021-03-04  Jonathan Wakely  <jwakely@redhat.com>
5191         PR libstdc++/99382
5192         * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5193         Make storage larger than required. Verify no write to the last
5194         element.
5195         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5196         Likewise.
5198 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5200         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5201         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5202         Likewise.
5203         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5204         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5205         Likewise.
5207 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5209         * include/experimental/bits/simd.h: Replace reserved _X, _B by
5210         _Xp, _Bp.
5211         * include/experimental/bits/simd_builtin.h: Likewise.
5212         * include/experimental/bits/simd_x86.h: Likewise.
5214 2021-02-27  Jonathan Wakely  <jwakely@redhat.com>
5216         PR libstdc++/99301
5217         * include/std/chrono (year_month_day::_M_days_since_epoch()):
5218         Convert chrono::month and chrono::day to unsigned before
5219         converting to uint32_t.
5221 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5223         * include/std/chrono (year_month_day::_S_from_days): Perform
5224         all calculations with type uint32_t.
5226 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5228         * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5229         * doc/html/manual/abi.html: Regenerate.
5231 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5233         PR libstdc++/99270
5234         * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5235         FILE instead of FILE.
5237 2021-02-25  Andreas Schwab  <schwab@suse.de>
5239         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5240         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5241         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5242         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5244 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5246         PR libstdc++/99265
5247         * include/std/chrono (year_month_day::_S_from_days): Cast long
5248         to int explicitly.
5250 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5252         * include/std/utility (to_underlying): Define.
5253         * include/std/version (__cpp_lib_to_underlying): Define.
5254         * testsuite/20_util/to_underlying/1.cc: New test.
5255         * testsuite/20_util/to_underlying/version.cc: New test.
5257 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5259         PR libstdc++/99261
5260         * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5261         before value to be printed.
5263 2021-02-24  Patrick Palka  <ppalka@redhat.com>
5265         * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
5266         Relax the condition that guards the printf code path to accept
5267         F128_type as well as long double.
5269 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5271         * include/std/chrono (year_month_day_last:day): New
5272         implementation.
5274 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5276         * include/std/chrono (year::is_leap): New implementation.
5277         * testsuite/std/time/year/2.cc: New test.
5279 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5281         * include/std/chrono (year_month_day::_M_days_since_epoch):
5282         New implementation.
5283         * testsuite/std/time/year_month_day/4.cc: New test.
5285 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5287         * include/std/chrono (year_month_day::_S_from_days): New
5288         implementation.
5289         * testsuite/std/time/year_month_day/3.cc: New test.
5291 2021-02-24  Patrick Palka  <ppalka@redhat.com>
5293         PR libstdc++/98384
5294         * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
5295         (test01): Simplify verifying the nearby values by using a
5296         2-iteration loop and a dedicated output buffer to check that the
5297         nearby values are different.  Factor out the printf-based
5298         verification into a local function, and check that the leading
5299         hex digits agree before comparing to the output of printf.  Also
5300         verify the output by round-tripping it through from_chars.
5302 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5304         PR libstdc++/98389
5305         * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
5306         symbols for long double arguments mangled as 'g'.
5307         * config/os/gnu-linux/ldbl-extra.ver: Likewise.
5308         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
5309         * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
5310         Use -mabi=ibmlongdouble for floating_to_chars.cc.
5311         * src/c++17/Makefile.in: Regenerate.
5312         * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
5313         New type defining type traits of IEEE binary128 format.
5314         (floating_type_traits<__float128>): Define specialization.
5315         (floating_type_traits<long double>): Define in terms of
5316         floating_type_traits_binary128 when appropriate.
5317         (floating_to_shortest_scientific): Handle __float128.
5318         (sprintf_ld): New function template for printing a long double
5319         or __ieee128 value using sprintf.
5320         (__floating_to_chars_shortest, __floating_to_chars_precision):
5321         Use sprintf_ld.
5322         (to_chars): Define overloads for __float128.
5324 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5326         * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
5328 2021-02-23  Martin Sebor  <msebor@redhat.com>
5330         PR c++/99074
5331         * libsupc++/dyncast.cc (__dynamic_cast): Return null when
5332         first argument is null.
5334 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
5336         PR libstdc++/99181
5337         * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
5338         test.
5340 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
5342         PR libstdc++/99181
5343         * include/bits/char_traits.h (char_traits<char>::compare): For
5344         constexpr evaluation don't call
5345         __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
5346         directly.
5348 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
5350         PR libstdc++/97549
5351         * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
5353 2021-02-23  Patrick Palka  <ppalka@redhat.com>
5355         PR libstdc++/98384
5356         * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
5357         the high- and low-order parts from an IBM long double value
5358         in an endian-agnostic way.
5360 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
5362         * include/bits/atomic_wait.h (__thread_relax()): Call
5363         __thread_yield() not __gthread_yield().
5365 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
5367         * include/bits/atomic_wait.h (__thread_yield()): Check
5368         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
5369         (__thread_relax()): Use __thread_yield() instead of repeating
5370         the preprocessor checks for __gthread_yield.
5372 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
5374         * include/std/mutex (once_flag::_M_activate()): Add explicit
5375         return statement for passive case.
5376         (once_flag::_M_finish(bool)): Use reserved name for parameter.
5378 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
5380         PR libstdc++/99096
5381         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
5383 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5385         PR libstdc++/88881
5386         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
5388 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5390         * doc/xml/manual/status_cxx2014.xml: Document implementation
5391         specific properties of std::experimental::filesystem::rename.
5392         * doc/xml/manual/status_cxx2017.xml: Document implementation
5393         specific properties of std::filesystem::rename.
5394         * doc/html/*: Regenerate.
5395         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
5396         for directories on Windows.
5397         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
5398         MoveFileExW on Windows.
5399         * testsuite/27_io/filesystem/operations/rename.cc: New test.
5400         * testsuite/experimental/filesystem/operations/rename.cc: New test.
5402 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5404         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
5405         random number to the path.
5407 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5409         * include/experimental/internet (address_v6::to_string): Include
5410         scope ID in string.
5411         * testsuite/experimental/net/internet/address/v6/members.cc:
5412         Test to_string() results.
5414 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5416         * include/experimental/internet (address_v6::any): Avoid using
5417         memcpy in constexpr function.
5418         (address_v6::loopback): Likewise.
5419         (make_address_v6): Fix missing return statements on error paths.
5420         * include/experimental/io_context: Avoid -Wdangling-else
5421         warning.
5422         * testsuite/experimental/net/internet/address/v4/members.cc:
5423         Remove unused variables.
5424         * testsuite/experimental/net/internet/address/v6/members.cc:
5425         New test.
5427 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5429         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
5430         Add unused attribute to parameter.
5431         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
5432         Likewise.
5434 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5436         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
5437         if -fno-rtti is used.
5438         * testsuite/30_threads/async/forced_unwind.cc: Expect test
5439         to abort if -fno-rtti is used.
5441 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5443         * testsuite/util/testsuite_allocator.h (memory_resource):
5444         Remove requirement for RTTI and exceptions to be enabled.
5446 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5448         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
5449         static_cast when RTTI is disabled.
5450         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
5451         Likewise.
5452         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
5453         Likewise.
5454         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
5455         Likewise.
5456         * testsuite/27_io/basic_stringstream/str/char/2.cc:
5457         Likewise.
5458         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
5459         Likewise.
5461 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5463         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
5464         as unused and only use dynamic_cast when RTTI is enabled.
5466 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5468         PR libstdc++/99077
5469         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
5470         Change int parameter to error_code, to match std::ios_failure.
5471         (__throw_ios_failure(const char*, int)): Construct error_code
5472         from int parameter.
5474 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
5476         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
5477         new macro.
5478         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
5479         macro instead of _GLIBCXX_EH_PTR_COMPAT.
5480         (operator==): Likewise.
5482 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
5484         PR libstdc++/99058
5485         * doc/xml/manual/status_cxx2011.xml: Document when support
5486         became stable.
5487         * doc/xml/manual/status_cxx2014.xml: Likewise.
5488         * doc/xml/manual/status_cxx2017.xml: Likewise.
5489         * doc/html/manual/status.html: Regenerate.
5491 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
5493         PR libstdc++/88881
5494         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
5496 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
5498         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
5499         (fs::remove): Use std::system_category() for error codes from
5500         GetLastError().
5501         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
5502         Likewise.
5504 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
5506         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
5507         in __MINGW32__ macro name.
5508         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5509         * testsuite/27_io/filesystem/path/generation/proximate.cc:
5510         Likewise.
5511         * testsuite/27_io/filesystem/path/generation/relative.cc:
5512         Likewise.
5513         * testsuite/util/testsuite_fs.h: Likewise.
5515 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
5517         * include/bits/stl_tree.h
5518         (__has_is_transparent, __has_is_transparent_t): Move...
5519         * include/bits/stl_function.h: ...here.
5520         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
5521         (_Hashtable_base<>::_M_equals_tr): New.
5522         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
5523         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
5524         heterogeneous lookup.
5525         (_Hashtable<>::_M_find_before_node_tr): New.
5526         (_Hashtable<>::_M_find_node_tr): New.
5527         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
5528         unordered_map::contains<>, unordered_map::equal_range<>): New member function
5529         templates to perform heterogeneous lookup.
5530         (unordered_multimap::find<>, unordered_multimap::count<>,
5531         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
5532         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
5533         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
5534         (unordered_multiset::find<>, unordered_multiset::count<>,
5535         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
5536         * include/debug/unordered_map
5537         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
5538         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
5539         * include/debug/unordered_set
5540         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
5541         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
5542         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
5543         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
5544         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
5545         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
5547 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
5549         * include/bits/stl_deque.h
5550         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
5551         a null pointer test.
5553 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
5555         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
5556         test directory after making it writable again.
5557         * testsuite/experimental/filesystem/operations/remove_all.cc:
5558         Likewise.
5560 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
5562         PR libstdc++/99021
5563         * include/std/coroutine (coroutine_handle<P>::from_address): Add
5564         noexcept.
5566 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
5568         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
5569         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
5571 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
5573         PR middle-end/98465
5574         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
5575         points to the characters moved by earlier _S_move, compute the source
5576         address using expression based on the __p pointer rather than __s
5577         pointer.
5579 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
5581         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
5582         Add comparison with same category and different values.
5583         * testsuite/19_diagnostics/error_code/operators/less.cc:
5584         Likewise. Fix comparison involving different categories.
5585         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
5586         Likewise.
5587         * testsuite/19_diagnostics/error_condition/operators/less.cc:
5588         Add comment.
5589         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
5590         Likewise.
5592 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
5594         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
5595         calls with a single vaddv for aarch64.
5597 2021-02-03  Matthias Kretz  <kretz@kde.org>
5599         * testsuite/Makefile.am: Warn about the workaround. Add
5600         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
5601         Improve initial user feedback from make check-simd.
5602         * testsuite/Makefile.in: Regenerated.
5604 2021-02-03  Matthias Kretz  <kretz@kde.org>
5606         * include/experimental/bits/simd.h: Add __detail::_Minimum and
5607         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
5608         Add hmin and hmax overloads for simd and const_where_expression.
5609         * include/experimental/bits/simd_scalar.h
5610         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
5611         parameter const-ref to allow calling _S_reduce with an rvalue.
5612         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
5613         hmin and hmax. Since the compiler statically determined that all
5614         tests pass, repeat the test after a call to make_value_unknown.
5616 2021-02-03  Matthias Kretz  <kretz@kde.org>
5618         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
5619         instruction pointer data member. Ensure that the `if (m_failed)`
5620         branch is always inlined into the calling code. The body of the
5621         conditional can still be a function call. Move the get_ip call
5622         into the verify ctor to simplify the ctor calls.
5623         (COMPARE): Don't mention the use of all_of for reduction of a
5624         simd_mask. It only distracts from the real issue.
5626 2021-02-03  Matthias Kretz  <kretz@kde.org>
5628         * testsuite/experimental/simd/driver.sh: Abstract reading test
5629         options into read_src_option function. Read skip, only,
5630         expensive, and xfail via read_src_option. Add timeout and
5631         timeout-factor options and adjust timeout variable accordingly.
5632         * testsuite/experimental/simd/tests/loadstore.cc: Set
5633         timeout-factor 2.
5635 2021-02-03  Matthias Kretz  <kretz@kde.org>
5637         * testsuite/experimental/simd/driver.sh: When handling the pipe
5638         to log (and on verbose to stdout) count the lines. If it exceeds
5639         1000 log the issue and exit 125, which is then handled as a
5640         failure.
5642 2021-02-03  Matthias Kretz  <kretz@kde.org>
5644         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
5645         markup for long double on powerpc64*.
5647 2021-02-03  Matthias Kretz  <kretz@kde.org>
5649         * include/experimental/bits/simd.h: Add __have_power10vec
5650         conditional on _ARCH_PWR10.
5651         * include/experimental/bits/simd_builtin.h: Forward declare
5652         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
5653         defined.
5654         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
5655         _SuperImpl for optimizations and correctness.
5656         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
5657         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
5658         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
5659         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
5661 2021-02-03  Matthias Kretz  <kretz@kde.org>
5663         * testsuite/experimental/simd/driver.sh: Remove executable on
5664         SIGINT. Process compiler and test executable output: In verbose
5665         mode print messages immediately, limited to 1000 lines and
5666         breaking long lines to below $COLUMNS (or 1024 if not set).
5667         Communicating the exit status of the compiler / test with the
5668         necessary pipe is done via a message through stdout/-in.
5670 2021-02-03  Matthias Kretz  <kretz@kde.org>
5672         * testsuite/Makefile.am: Ensure .simd.summary is empty before
5673         collecting a new summary.
5674         * testsuite/Makefile.in: Regenerate.
5676 2021-02-03  Matthias Kretz  <kretz@kde.org>
5678         * testsuite/experimental/simd/generate_makefile.sh: Use
5679         different variables internally than documented for user
5680         overrides. This makes internal append/prepend work as intended.
5682 2021-02-03  Matthias Kretz  <kretz@kde.org>
5684         * testsuite/experimental/simd/driver.sh (verify_test): Print
5685         test output on run xfail. Do not repeat lines from the log that
5686         were already printed on stdout.
5687         (test_selector): Make the compiler flags pattern usable as a
5688         substring selector.
5689         (toplevel): Trap on SIGINT and remove the log and sum files.
5690         Call timout with --foreground to quickly terminate on SIGINT.
5691         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
5692         targets via target patterns. Default DRIVEROPTS to -v for run
5693         targets. Remove log and sum files after completion of the run
5694         target (so that it's always recompiled).
5695         Place help text into text file for reasonable 'make help'
5696         performance.
5698 2021-02-03  Matthias Kretz  <kretz@kde.org>
5700         * include/experimental/bits/simd.h: Remove unnecessary static
5701         assertion. Allow sizeof(8) integer __intrinsic_type to enable
5702         the necessary mask type.
5704 2021-02-03  Matthias Kretz  <kretz@kde.org>
5706         * include/experimental/bits/simd.h: Let __intrinsic_type<long
5707         double, N> be valid if sizeof(long double) == sizeof(double) and
5708         use a __vector double as member type.
5710 2021-02-03  Matthias Kretz  <kretz@kde.org>
5712         * include/experimental/bits/simd.h (__is_intrinsic_type): New
5713         internal type trait. Alias for __is_vector_type on x86.
5714         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
5715         __vector_type.
5716         (__intrin_bitcast): Allow casting to & from vector & intrinsic
5717         types.
5718         (__intrinsic_type): Explicitly specialize for NEON intrinsic
5719         vector types.
5721 2021-02-03  Matthias Kretz  <kretz@kde.org>
5723         * testsuite/experimental/simd/driver.sh: Implement skip, only,
5724         expensive, and xfail markers. They can select on type, ABI tag
5725         subset number, target-triplet, and compiler flags.
5726         * testsuite/experimental/simd/generate_makefile.sh: The summary
5727         now includes lines for unexpected passes and expected failures.
5728         If the skip or only markers are only conditional on the type, do
5729         not generate rules for those types.
5730         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
5731         for ABI tag subsets 1-9.
5732         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
5733         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
5734         * testsuite/experimental/simd/tests/casts.cc: Ditto.
5735         * testsuite/experimental/simd/tests/generator.cc: Ditto.
5736         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
5737         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
5738         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
5739         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
5740         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
5741         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
5742         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
5743         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
5744         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
5745         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
5746         * testsuite/experimental/simd/tests/operators.cc: Ditto.
5747         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
5748         * testsuite/experimental/simd/tests/simd.cc: Ditto.
5749         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
5750         * testsuite/experimental/simd/tests/splits.cc: Ditto.
5751         * testsuite/experimental/simd/tests/where.cc: Ditto.
5752         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
5753         addition replace "test only floattypes" marker by unconditional
5754         "float|double|ldouble" only marker.
5755         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
5756         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
5757         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5758         Ditto.
5759         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
5760         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
5761         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
5762         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
5763         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
5764         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
5765         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
5766         addition, xfail on run because the reference data is missing.
5768 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
5770         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
5771         * doc/xml/manual/status_cxx2014.xml: Likewise.
5772         * doc/xml/manual/status_cxx2017.xml: Likewise.
5773         * doc/html/manual/status.html: Regenerate.
5775 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
5777         PR libstdc++/70303
5778         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
5779         Return 0 if both iterators are value-initialized.
5780         * testsuite/23_containers/deque/70303.cc: New test.
5781         * testsuite/23_containers/vector/70303.cc: New test.
5783 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
5785         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
5786         status.
5787         * doc/xml/manual/status_cxx2014.xml: Likewise.
5788         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
5789         std::from_chars and std::to_chars status. Fix formatting.
5790         * doc/html/manual/status.html: Regenerate.
5792 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
5794         * include/experimental/bits/numeric_traits.h: Update copyright
5795         dates.
5796         * include/experimental/bits/simd.h: Likewise.
5797         * include/experimental/bits/simd_builtin.h: Likewise.
5798         * include/experimental/bits/simd_converter.h: Likewise.
5799         * include/experimental/bits/simd_detail.h: Likewise.
5800         * include/experimental/bits/simd_fixed_size.h: Likewise.
5801         * include/experimental/bits/simd_math.h: Likewise.
5802         * include/experimental/bits/simd_neon.h: Likewise.
5803         * include/experimental/bits/simd_ppc.h: Likewise.
5804         * include/experimental/bits/simd_scalar.h: Likewise.
5805         * include/experimental/bits/simd_x86.h: Likewise.
5806         * include/experimental/bits/simd_x86_conversions.h: Likewise.
5807         * include/experimental/simd: Likewise.
5808         * testsuite/experimental/simd/*: Likewise.
5810 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
5812         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
5813         * doc/html/*: Regenerate.
5815 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
5817         * testsuite/experimental/simd/generate_makefile.sh: Use printf
5818         instead of echo when printing escape characters.
5820 2021-01-27  Matthias Kretz  <kretz@kde.org>
5822         * scripts/check_simd: New file. This script is called from the
5823         the check-simd target. It determines a set of compiler flags and
5824         simulator setups for calling generate_makefile.sh and passes the
5825         information back to the check-simd target, which recurses to the
5826         generated Makefiles.
5827         * scripts/create_testsuite_files: Remove files below simd/tests/
5828         from testsuite_files and place them in testsuite_files_simd.
5829         * testsuite/Makefile.am: Add testsuite_files_simd. Add
5830         check-simd target.
5831         * testsuite/Makefile.in: Regenerate.
5832         * testsuite/experimental/simd/driver.sh: New file. This script
5833         compiles and runs a given simd test, logging its output and
5834         status. It uses the timeout command to implement compile and
5835         test timeouts.
5836         * testsuite/experimental/simd/generate_makefile.sh: New file.
5837         This script generates a Makefile which uses driver.sh to compile
5838         and run the tests and collect the logs into a single log file.
5839         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
5840         abs(simd).
5841         * testsuite/experimental/simd/tests/algorithms.cc: New file.
5842         Tests min/max(simd, simd).
5843         * testsuite/experimental/simd/tests/bits/conversions.h: New
5844         file. Contains functions to support tests involving conversions.
5845         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
5846         Support functions make_mask and make_vec.
5847         * testsuite/experimental/simd/tests/bits/mathreference.h: New
5848         file. Support functions to supply precomputed math function
5849         reference data.
5850         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
5851         file. Support code for SFINAE testing.
5852         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
5853         * testsuite/experimental/simd/tests/bits/test_values.h: New
5854         file. Test functions to easily drive a test with simd objects
5855         initialized from a given list of values and a range of random
5856         values.
5857         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
5858         Support code to determine the ULP distance of simd objects.
5859         * testsuite/experimental/simd/tests/bits/verify.h: New file.
5860         Test framework for COMPARE'ing simd objects and instantiating
5861         the test templates with value_type and ABI tag.
5862         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
5863         simd broadcasts.
5864         * testsuite/experimental/simd/tests/casts.cc: New file. Test
5865         simd casts.
5866         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
5867         Test floating-point classification functions.
5868         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
5869         frexp(simd).
5870         * testsuite/experimental/simd/tests/generator.cc: New file. Test
5871         simd generator constructor.
5872         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
5873         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
5874         * testsuite/experimental/simd/tests/integer_operators.cc: New
5875         file. Test integer operators.
5876         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5877         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
5878         modf(simd).
5879         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
5880         (converting) simd loads and stores.
5881         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
5882         log*(simd).
5883         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
5884         Test simd_mask broadcasts.
5885         * testsuite/experimental/simd/tests/mask_conversions.cc: New
5886         file. Test simd_mask conversions.
5887         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
5888         file. Test simd_mask implicit conversions.
5889         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
5890         Test simd_mask loads and stores.
5891         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
5892         file. Test simd_mask operators convert as specified.
5893         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
5894         Test simd_mask compares, subscripts, and negation.
5895         * testsuite/experimental/simd/tests/mask_reductions.cc: New
5896         file. Test simd_mask reductions.
5897         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
5898         1-arg math functions on simd.
5899         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
5900         2-arg math functions on simd.
5901         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
5902         Test implicit conversions on simd binary operators behave as
5903         specified.
5904         * testsuite/experimental/simd/tests/operators.cc: New file. Test
5905         simd compares, subscripts, not, unary minus, plus, minus,
5906         multiplies, divides, increment, and decrement.
5907         * testsuite/experimental/simd/tests/reductions.cc: New file.
5908         Test reduce(simd).
5909         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
5910         remqo(simd).
5911         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
5912         sanity checks of simd types.
5913         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
5914         sin(simd) and cos(simd).
5915         * testsuite/experimental/simd/tests/split_concat.cc: New file.
5916         Test split(simd) and concat(simd, simd).
5917         * testsuite/experimental/simd/tests/splits.cc: New file. Test
5918         split(simd_mask).
5919         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
5920         Test remaining trigonometric functions on simd.
5921         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
5922         file. Test trunc(simd), ceil(simd), and floor(simd).
5923         * testsuite/experimental/simd/tests/where.cc: New file. Test
5924         masked operations using where.
5926 2021-01-27  Matthias Kretz  <kretz@kde.org>
5928         * doc/xml/manual/status_cxx2017.xml: Add implementation status
5929         of the Parallelism TS 2. Document implementation-defined types
5930         and behavior.
5931         * include/Makefile.am: Add new headers.
5932         * include/Makefile.in: Regenerate.
5933         * include/experimental/simd: New file. New header for
5934         Parallelism TS 2.
5935         * include/experimental/bits/numeric_traits.h: New file.
5936         Implementation of P1841R1 using internal naming. Addition of
5937         missing IEC559 functionality query.
5938         * include/experimental/bits/simd.h: New file. Definition of the
5939         public simd interfaces and general implementation helpers.
5940         * include/experimental/bits/simd_builtin.h: New file.
5941         Implementation of the _VecBuiltin simd_abi.
5942         * include/experimental/bits/simd_converter.h: New file. Generic
5943         simd conversions.
5944         * include/experimental/bits/simd_detail.h: New file. Internal
5945         macros for the simd implementation.
5946         * include/experimental/bits/simd_fixed_size.h: New file. Simd
5947         fixed_size ABI specific implementations.
5948         * include/experimental/bits/simd_math.h: New file. Math
5949         overloads for simd.
5950         * include/experimental/bits/simd_neon.h: New file. Simd NEON
5951         specific implementations.
5952         * include/experimental/bits/simd_ppc.h: New file. Implement bit
5953         shifts to avoid invalid results for integral types smaller than
5954         int.
5955         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
5956         ABI specific implementations.
5957         * include/experimental/bits/simd_x86.h: New file. Simd x86
5958         specific implementations.
5959         * include/experimental/bits/simd_x86_conversions.h: New file.
5960         x86 specific conversion optimizations. The conversion patterns
5961         work around missing conversion patterns in the compiler and
5962         should be removed as soon as PR85048 is resolved.
5963         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
5964         Test that all (not all fixed_size<N>, though) standard simd and
5965         simd_mask types are usable.
5966         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
5967         file. As above but with -ffast-math.
5968         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
5969         from the standard test loop. Instead use
5970         check_vect_support_and_set_flags to build simd tests with the
5971         relevant machine flags.
5973 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
5975         PR libstdc++/66414
5976         * include/bits/string_view.tcc
5977         (basic_string_view::find(const CharT*, size_type, size_type)):
5978         Optimize.
5980 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
5982         * include/bits/basic_string.h (basic_string::contains): New
5983         member functions.
5984         * include/std/string_view (basic_string_view::contains):
5985         Likewise.
5986         * include/std/version (__cpp_lib_string_contains): Define.
5987         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
5988         Remove trailing whitespace.
5989         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
5990         Likewise.
5991         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
5992         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
5993         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
5994         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
5995         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
5997 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
5999         * src/c++17/Makefile.in: Regenerate.
6001 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
6003         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
6004         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
6005         __lc_type.
6006         (const char* ctype<char>:: is): Same.
6008 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
6010         PR libstdc++/98725
6011         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
6012         write to a wide character stream if wide character support is
6013         disabled in the library.
6015 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
6017         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
6018         stringbuf not wstringbuf.
6020 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
6022         PR debug/98708
6023         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
6024         Compile with -gno-as-loc-support.
6025         * src/c++11/Makefile.in: Regenerated.
6027 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
6029         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
6030         Add -fcf-protection=none to -march=i486.
6032 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
6034         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
6035         compliant.
6037 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
6039         * testsuite/30_threads/future/members/poll.cc: Calibrate
6040         iteration count.
6042 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
6044         PR libstdc++/98466
6045         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
6046         (_Node_iterator()): Make default.
6047         (_Node_const_iterator()): Make default.
6048         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
6049         iterator checks.
6050         * include/debug/safe_iterator.h
6051         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
6052         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
6053         Likewise.
6054         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
6055         _M_singular checks on input iterators.
6056         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
6057         checks.
6058         * testsuite/23_containers/deque/debug/98466.cc: New test.
6059         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
6061 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
6063         PR libstdc++/98471
6064         * include/bits/fs_path.h (__throw_conversion_error): New
6065         function to throw or abort on character conversion errors.
6066         (__wstr_from_utf8): Move definition after filesystem_error has
6067         been defined. Use __throw_conversion_error.
6068         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
6069         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
6070         (path::u8string): Likewise.
6072 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
6074         * include/std/barrier: Update copyright years. Fix whitespace.
6075         * include/std/version: Fix whitespace.
6076         * testsuite/30_threads/barrier/1.cc: Update copyright years.
6077         * testsuite/30_threads/barrier/2.cc: Likewise.
6078         * testsuite/30_threads/barrier/arrive.cc: Likewise.
6079         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6080         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6081         * testsuite/30_threads/barrier/completion.cc: Likewise.
6083 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
6085         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
6087 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
6089         PR libstdc++/98613
6090         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
6091         warning.
6092         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
6094 2021-01-08  Olivier Hainque  <hainque@adacore.com>
6096         * testsuite/20_util/bind/ref_neg.cc: Tweak the
6097         dg-prune-output regex for out-of-build-tree contexts.
6099 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
6101         * doc/doxygen/user.cfg.in: Add new header.
6102         * include/Makefile.am (std_headers): likewise.
6103         * include/Makefile.in: Regenerate.
6104         * include/precompiled/stdc++.h: Add new header.
6105         * include/std/barrier: New file.
6106         * include/std/version: Add __cpp_lib_barrier feature test macro.
6107         * testsuite/30_threads/barrier/1.cc: New test.
6108         * testsuite/30_threads/barrier/2.cc: Likewise.
6109         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6110         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6111         * testsuite/30_threads/barrier/arrive.cc: Likewise.
6112         * testsuite/30_threads/barrier/completion.cc: Likewise.
6114 2021-01-07  Patrick Palka  <ppalka@redhat.com>
6116         PR libstdc++/98384
6117         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
6118         instead of the non-standard nextupl and nextdownl.
6120 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
6122         * configure: Re-generate.
6124 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
6126         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
6128 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
6130         * ChangeLog-2020: Rotate ChangeLog.  New file.
6133 Copyright (C) 2021 Free Software Foundation, Inc.
6135 Copying and distribution of this file, with or without modification,
6136 are permitted in any medium without royalty provided the copyright
6137 notice and this notice are preserved.