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