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