[Ada] Add mention of underscore and fix grammar error in doc for -gnatd
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobf6dbad089ed12eb0aba1c1b296c93233a99c500b
1 2021-05-05  Patrick Palka  <ppalka@redhat.com>
3         * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
4         Remove constraints on this partial specialization.
5         * include/std/ranges (enable_borrowed_range<iota_view>):
6         Likewise.
8 2021-05-05  Patrick Palka  <ppalka@redhat.com>
10         * include/std/ranges (transform_view::_Iterator::iter_swap):
11         Remove as per LWG 3520.
12         (join_view::_Iterator::iter_swap): Add indirectly_swappable
13         constraint as per LWG 3517.
15 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
17         * testsuite/20_util/function_objects/invoke/3.cc: Check feature
18         test macro.
19         * testsuite/20_util/function_objects/invoke/version.cc: New test.
21 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
23         * include/std/charconv (__from_chars_alnum): Pass unsigned
24         char to std::isdigit.
26 2021-05-05  Corentin Gay  <gay@adacore.com>
28         * acinclude.m4: Add VxWorks-specific case for the
29         configuration of ctypes.
30         * configure: Regenerate.
31         * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
32         version.
33         * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
34         * config/os/vxworks/ctype_configure_char.cc: Likewise.
35         * config/os/vxworks/ctype_inline.h: Likewise.
36         * testsuite/28_regex/traits/char/isctype.cc: Defines
37         NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
38         * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
40 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
42         * include/std/future (promise::set_value): Check for existence
43         of shared state before dereferncing it.
44         (promise::set_exception, promise::set_value_at_thread_exit)
45         (promise::set_exception_at_thread_exit): Likewise.
46         (promise<R&>::set_value, promise<R&>::set_exception)
47         (promise<R&>::set_value_at_thread_exit)
48         (promise<R&>::set_exception_at_thread_exit): Likewise.
49         (promise<void>::set_value, promise<void>::set_exception)
50         (promise<void>::set_value_at_thread_exit)
51         (promise<void>::set_exception_at_thread_exit): Likewise.
52         * testsuite/30_threads/promise/members/at_thread_exit2.cc:
53         Remove unused variable.
55 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
57         * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
58         Do not do arithmetic on null pointer.
60 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
62         * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
63         (find_key_pointer(key_const_reference, false_type))
64         (find_key_pointer(key_const_reference, true_type)): Do not
65         dereference null pointer.
67 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
69         * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
70         overflow.
71         * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
72         non-zero value to null pointer.
73         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
74         Use past-the-end iterator for result.
75         * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
76         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
78 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
80         PR libstdc++/100384
81         * include/std/variant (__get_t): New alias template yielding the
82         return type of std::get<N> on a variant.
83         (__visit_result_t): New alias template yielding the result of
84         std::visit.
85         (__same_types): Move into namespace __detail::__variant.
86         (__check_visitor_results): Likewise. Use __invoke_result_t and
87         __get_t.
88         (__check_visitor_result): Remove.
89         (visit): Use __visit_result_t for return type.
90         * testsuite/20_util/variant/100384.cc: New test.
92 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
94         * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
95         checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
96         * config.h.in: Regenerate.
97         * configure: Regenerate.
98         * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
99         * include/bits/random.h (_Select_uint_least_t<s, 1>):
100         Use __SIZEOF_INT128__ to decide whether to use __int128.
101         * include/std/charconv (__to_chars_unsigned_type): Likewise.
103 2021-05-03  Gerald Pfeifer  <gerald@pfeifer.com>
105         * doc/xml/manual/ctype.xml: Move unix.org reference to https.
106         * doc/html/manual/facets.html: Regenerate.
108 2021-04-30  Patrick Palka  <ppalka@redhat.com>
110         * include/std/ranges (__detail::__non_propating_cache): Define
111         as per P2328.
112         (join_view): Remove constraints on the value and reference types
113         of the wrapped iterator type as per P2328.
114         (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
115         (join_view::_Iterator::operator++): Likewise.
116         (join_view::_M_inner): Use __non_propating_cache as per P2328.
117         Remove now-redundant use of __maybe_present_t.
118         * testsuite/std/ranges/adaptors/join.cc: Include <array>.
119         (test10): New test.
121 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
123         * include/bits/basic_string.h (__cpp_lib_constexpr_string):
124         Only define for C++17 and later.
125         * include/std/version (__cpp_lib_semaphore): Fix condition
126         to match the one in <semaphore>.
128 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
130         * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
131         * config.h.in: Regenerate.
132         * configure: Regenerate.
133         * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
134         * include/bits/postypes.h: Remove include of <stdint.h> and
135         definition/undefinition of the __STDC_LIMIT_MACROS and
136         __STDC_CONSTANT_MACROS macros.
137         (streamoff): Use __INT64_TYPE__ if defined.
139 2021-04-30  Patrick Palka  <ppalka@redhat.com>
141         * include/std/ranges (split_view::_InnerIter::operator++):
142         Depend on _Base instead of _Vp directly, as per LWG 3532.
144 2021-04-30  Patrick Palka  <ppalka@redhat.com>
146         * include/bits/ranges_util.h (subrange::subrange): Avoid
147         list-initialization in delegating constructor.
148         * include/std/ranges (single_view): Replace implicit guide
149         with explicit deduction guide that decays its argument.
150         (_Single::operator()): Avoid CTAD when constructing the
151         single_view object.
152         (_Iota::operator()): Avoid list-initialization.
153         (__detail::__can_filter_view, _Filter::operator()): Likewise.
154         (__detail::__can_transform_view, _Transform::operator()): Likewise.
155         (take_view::begin): Likewise.
156         (__detail::__can_take_view, _Take::operator()): Likewise.
157         (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
158         (__detail::__can_drop_view, _Drop::operator()): Likewise.
159         (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
160         (split_view::split_view): Use views::single when initializing
161         _M_pattern.
162         (__detail::__can_split_view, _Split::operator()): Avoid
163         list-initialization.
164         (_Counted::operator()): Likewise.
165         * testsuite/std/ranges/p2367.cc: New test.
167 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
169         PR libstdc++/60497
170         * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
171         std::addressof.
172         * include/bits/basic_string.tcc (basic_string::swap)
173         (basic_string::assign): Likewise.
174         * include/bits/deque.tcc (deque::operator=(const deque&)):
175         Likewise.
176         * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
177         Likewise.
178         * include/bits/vector.tcc (vector::operator=(const vector&)):
179         Likewise.
181 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
183         * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
184         per LWG 1203.
185         * include/std/ostream (operator<<(Ostream&&, const x&)):
186         Likewise.
187         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
188         Adjust dg-error pattern.
189         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
190         Likewise.
191         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
192         is_extractable trait to replace std::__is_extractable. Make it
193         work with rvalue streams as well as lvalues, to replace f() and
194         g() helper functions.
195         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
196         Likewise.
197         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
198         Define is_insertable trait to replace std::__is_insertable. Make
199         it work with rvalue streams as well as lvalues, to replace f()
200         and g() helper functions.
201         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
202         Likewise.
203         * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
204         errors from new constraints.
205         * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
206         which are no longer expected to compile.
207         * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
208         Verify LWG 1203 changes.
210 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
212         PR libstdc++/100285
213         * include/experimental/socket (__basic_socket_impl::set_option)
214         (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
215         Just set error code.
216         * testsuite/experimental/net/socket/socket_base.cc: CHeck
217         for <sys/socket.h> not <socket.h>.
219 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
221         PR libstdc++/100180
222         PR libstdc++/100286
223         PR libstdc++/100351
224         * testsuite/experimental/net/internet/address/v4/comparisons.cc:
225         Use new effective-target keyword.
226         * testsuite/experimental/net/internet/address/v4/cons.cc:
227         Likewise.
228         * testsuite/experimental/net/internet/address/v4/creation.cc:
229         Likewise.
230         * testsuite/experimental/net/internet/address/v4/members.cc:
231         Likewise.
232         * testsuite/experimental/net/internet/address/v6/members.cc:
233         Likewise.
234         * testsuite/experimental/net/internet/resolver/base.cc:
235         Likewise.
236         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
237         Likewise.
238         * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
239         Likewise.
240         * testsuite/experimental/net/internet/socket/opt.cc:
241         Likewise.
242         * testsuite/experimental/net/internet/tcp.cc:
243         Likewise.
244         * testsuite/experimental/net/internet/udp.cc:
245         Likewise.
246         * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
247         New proc to check net_ts_ip et.
249 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
251         PR libstdc++/97930
252         * testsuite/20_util/pair/requirements/structural.cc: New test.
254 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
256         * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
257         new definitions for constructors and assignment operators using
258         concepts for constraints.
259         * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
260         later.
261         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
262         expected error messages to also match C++20 errors.
264 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
266         PR libstdc++/99957
267         * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
268         Combine and replace with ...
269         (_PCC::_DeprConsPair): New SFINAE helper function.
270         (pair): Merge preprocessor blocks so that all C++03 members
271         are defined together at the end.
272         (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
273         Replace _T1 and _T2 parameters with __null_ptr_constant and
274         adjust constraints.
275         * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
276         * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
277         * testsuite/20_util/pair/cons/99957.cc: New test.
279 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
281         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
282         * include/std/version (__cpp_lib_constexpr_string): Define.
283         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
284         Check for __cpp_lib_constexpr_string.
285         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
286         Likewise.
287         * testsuite/21_strings/char_traits/requirements/version.cc: New test.
289 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
291         * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
292         dealing with errors. Use '@' to prevent shell command being
293         echoed.
294         * doc/Makefile.in: Regenerate.
296 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
298         PR libstdc++/100298
299         * include/bits/std_thread.h (thread::hardware_concurrency): Add
300         missing noexcept to inline definition for non-gthreads targets.
302 2021-04-28  Patrick Palka  <ppalka@redhat.com>
304         PR libstdc++/100187
305         PR libstdc++/100237
306         PR libstdc++/100249
307         PR libstdc++/100287
308         * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
309         the __value_comp lambda an explicit bool return type.
310         (__is_permutation_fn::operator()): Give the __proj_scan local
311         variable auto&& return type.  Give the __comp_scan lambda an
312         explicit bool return type.
313         (__remove_fn::operator()): Give the __pred lambda an explicit
314         bool return type.
315         (__partition_fn::operator()): Don't std::move __first twice
316         when returning an empty subrange.
317         (__min_fn::operator()): Don't std::move __comp.
318         (__max_fn::operator()): Likewise.
319         (__minmax_fn::operator()): Likewise.
321 2021-04-27  Patrick Palka  <ppalka@redhat.com>
323         PR libstdc++/100290
324         * include/std/ranges (join_view::_Iterator::operator++): Correct
325         the return type of the lambda to avoid returning a copy of
326         _M_parent->_M_inner.
327         * testsuite/std/ranges/adaptors/join.cc (test10): New test.
329 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
331         Revert:
332         2021-04-22  Jakub Jelinek  <jakub@redhat.com>
334         PR target/100182
335         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
336         ia32.
337         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
338         ia32.
340 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
342         * include/experimental/internet (address_v6::bytes_type): Adjust
343         formatting.
344         (basic_endpoint): Define _M_is_v6() to put all checks for
345         AF_INET6 in one place.
346         (basic_endpoint::resize): Simplify.
347         (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
348         (operator!=(const tcp&, const tcp&)): Likewise.
349         (operator==(const udp&, const udp&)): Likewise.
350         (operator!=(const udp&, const udp&)): Likewise.
351         * testsuite/experimental/net/internet/tcp.cc: New test.
352         * testsuite/experimental/net/internet/udp.cc: New test.
354 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
356         PR libstdc++/100286
357         * include/experimental/internet (resolver_errc, resolver_category())
358         (make_error_code, make_error_condition): Define unconditionally,
359         only make enumerators and use of gai_strerror depend on the
360         availability of <netdb.h>.
361         (address_v4::to_string): Use correct constant for string length.
362         (address_v4::to_string, address_v6::to_string): Define
363         unconditionally, throw if unsupported.
364         (make_address_v4, make_address_v6): Define unconditionally.
365         Return an error if unsupported.
366         (tcp, udp, v6_only, unicast::hops, multicast::*): Define
367         conditionally,
368         * testsuite/experimental/net/internet/socket/opt.cc: Check for
369         <netinet/in.h> and <netinet/tcp.h> before using types from
370         namespace net::ip.
372 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
374         PR libstdc++/100285
375         * include/experimental/internet (resolver_base::flags):
376         Define overloaded operators as hidden friends.
377         * include/experimental/socket (socket_base::message_flags):
378         Likewise.
380 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
382         * include/experimental/internet (tcp::no_delay, v6_only)
383         (unicast::hops, multicast::hops, multicast::enable_loopback):
384         Change access of base class and static data members. Add
385         using-declaration for __socket_crtp::operator=(_Tp).
386         (multicast::__mcastopt): New type.
387         (multicast::join_group, multicast::leave_group): Derive from
388         __mcastopt for common implementation.
389         * include/experimental/socket: Add comment.
390         * testsuite/experimental/net/internet/socket/opt.cc: New test.
391         * testsuite/experimental/net/socket/socket_base.cc: Check for
392         protected constructor/destructor of socket_base. Check for
393         explicit constructors of socket option classes.
395 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
397         * include/experimental/bits/net.h (__socket_base): Add
398         bool template parameter to allow BooleanSocketOption and
399         IntegerSocketOption to have different __socket_base<int>
400         base classes.
401         (__socket_base<bool>): Adjust base class.
402         (__socket_base<int>): Add partial specialization.
403         (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
404         * include/experimental/socket (socket_base::broadcast)
405         (socket_base::debug, socket_base::do_not_route)
406         (socket_base::keep_alive, socket_base::linger)
407         (socket_base::out_of_band_inline)
408         (socket_base::receive_buffer_size)
409         (socket_base::receive_low_watermark)
410         (socket_base::reuse_address, socket_base::send_buffer_size)
411         (socket_base::send_low_watermark): Add using-declaration for
412         __socket_crtp::operator=(_Tp).
413         * testsuite/experimental/net/socket/socket_base.cc: Check
414         properties of socket option types.
416 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
418         * include/experimental/internet (resolver_base::flags): Remove
419         enumerators. Initialize constants directly with desired values.
420         Make all operators constexpr and noexcept.
421         * testsuite/experimental/net/internet/resolver/base.cc: Use
422         __gnu_test::test_bitmask_values for bitmask type. Check
423         construction and destruction is protected.
425 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
427         * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
429 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
431         PR libstdc++/100259
432         * include/experimental/internet (net::ip::make_error_code)
433         (net::ip::make_error_condition, net::ip::make_network_v4)
434         (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
436 2021-04-24  David Edelsohn  <dje.gcc@gmail.com>
438         * testsuite/lib/dg-options.exp (atomic_link_flags): New.
439         (add_options_for_libatomic): Use atomic_link_flags.
441 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
443         PR libstdc++/100180
444         * include/experimental/io_context (io_context): Define
445         dummy_pollfd type so that most member functions still compile
446         without <poll.h> and struct pollfd.
448 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
450         * include/experimental/io_context (io_context::async_wait): Add
451         comment.
452         * include/experimental/socket (basic_socket::async_connect):
453         Cast wait_type constant to int.
454         (basic_datagram_socket::async_receive): Likewise.
455         (basic_datagram_socket::async_receive_from): Likewise.
456         (basic_datagram_socket::async_send): Likewise.
457         (basic_datagram_socket::async_send_to): Likewise.
458         (basic_stream_socket::async_receive): Likewise.
459         (basic_stream_socket::async_send): Likewise. Use io_context
460         parameter directly, instead of via an executor.
461         (basic_socket_acceptor::async_accept): Likewise.
463 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
465         * include/experimental/socket (socket_base::shutdown_type):
466         (socket_base::wait_type, socket_base::message_flags):
467         Remove enumerators. Initialize constants directly with desired
468         values.
469         (socket_base::message_flags): Make all operators constexpr and
470         noexcept.
471         * testsuite/util/testsuite_common_types.h (test_bitmask_values):
472         New test utility.
473         * testsuite/experimental/net/socket/socket_base.cc: New test.
475 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
477         * config/os/aix/atomicity.h: Delete.
479 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
481         * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
482         Handle system_clock as well as steady_clock.
483         * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
484         * testsuite/30_threads/semaphore/try_acquire_until.cc:
485         Re-enable.
487 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
489         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
490         options for libatomic.
492 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
494         * config/os/gnu-linux/os_defines.h: Fix type in comment.
496 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
498         PR libstdc++/99006
499         * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
500         is not an array type.
501         * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
502         * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
504 2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
506         * include/bits/atomic_wait.h: Always notify waiters in the
507         case of 'bare' address notification.
509 2021-04-22  Jakub Jelinek  <jakub@redhat.com>
511         PR target/100182
512         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
513         ia32.
514         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
515         ia32.
517 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
519         PR libstdc++/100179
520         * include/bits/semaphore_base.h: Remove #error.
521         * include/std/semaphore: Do not define anything unless one of
522         the implementations is available.
524 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
526         * include/bits/semaphore_base.h: Always reload __old in
527         __atomic_semaphore::_S_do_try_acquire().
528         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
529         re-enable testcase.
531 2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
532             Jonathan Wakely  <jwakely@redhat.com>
534         PR libstdc++/99453
535         * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
536         * python/Makefile.in: Regenerate.
538 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
540         * include/bits/semaphore_base.h: Add missing _M_try_acquire()
541         member to __platform_wait.
543 2021-04-21  Jonathan Wakely  <jwakely@redhat.com>
545         * include/std/latch: Replace tab characters in license text.
546         * include/std/semaphore: Likewise.
548 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
550         PR libstdc++/100164
551         * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
552         rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
553         * configure: Regenerated.
554         * config.h.in: Regenerated.
556 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
558         * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
559         test for targets not using futexes for semaphores.
560         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
561         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
562         Disable for all targets.
564 2021-04-20  Thomas Rodgers  <trodgers@redhat.com>
566         * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
567         * include/Makefile.in: Regenerate.
568         * include/bits/this_thread_sleep.h: New file.
569         * include/bits/atomic_base.h: Adjust all calls
570         to __atomic_wait/__atomic_notify for new call signatures.
571         * include/bits/atomic_timed_wait.h: Extensive rewrite.
572         * include/bits/atomic_wait.h: Likewise.
573         * include/bits/semaphore_base.h: Adjust all calls
574         to __atomic_wait/__atomic_notify for new call signatures.
575         * include/std/atomic: Likewise.
576         * include/std/barrier: Likewise.
577         * include/std/latch: Likewise.
578         * include/std/semaphore: Likewise.
579         * include/std/thread (this_thread::sleep_for)
580         (this_thread::sleep_until): Move to new header.
581         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
582         test.
583         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
584         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
585         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
586         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
587         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
588         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
590 2021-04-20  Patrick Palka  <ppalka@redhat.com>
592         PR libstdc++/95983
593         * include/bits/stl_iterator.h (__detail::__move_iter_cat):
594         Define.
595         (move_iterator): Derive from the above in C++20 in order to
596         conditionally define iterator_category as per P2259.
597         (move_iterator::__base_cat): No longer used, so remove.
598         (move_iterator::iterator_category): Remove in C++20.
599         (__detail::__common_iter_use_postfix_proxy): Define.
600         (common_iterator::_Proxy): Rename to ...
601         (common_iterator:__arrow_proxy): ... this.
602         (common_iterator::__postfix_proxy): Define as per P2259.
603         (common_iterator::operator->): Adjust.
604         (common_iterator::operator++): Adjust as per P2259.
605         (iterator_traits<common_iterator>::_S_iter_cat): Define.
606         (iterator_traits<common_iterator>::iterator_category): Change as
607         per P2259.
608         (__detail::__counted_iter_value_type): Define.
609         (__detail::__counted_iter_concept): Define.
610         (__detail::__counted_iter_cat): Define.
611         (counted_iterator): Derive from the above three classes in order
612         to conditionally define value_type, iterator_concept and
613         iterator category respectively as per P2259.
614         (counted_iterator::operator->): Define as per P2259.
615         (incrementable_traits<counted_iterator>): Remove as per P2259.
616         (iterator_traits<counted_iterator>): Adjust as per P2259.
617         * include/std/ranges (__detail::__iota_view_iter_cat): Define.
618         (iota_view::_Iterator): Derive from the above in order to
619         conditionally define iterator_category as per P2259.
620         (iota_view::_S_iter_cat): Rename to ...
621         (iota_view::_S_iter_concept): ... this.
622         (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
623         (iota_view::iterator_category): Remove.
624         (__detail::__filter_view_iter_cat): Define.
625         (filter_view::_Iterator): Derive from the above in order to
626         conditionally define iterator_category as per P2259.
627         (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
628         (filter_view::_Iterator::iterator_category): Remove.
629         (transform_view::_Base): Define.
630         (transform_view::__iter_cat): Define.
631         (transform_view::_Iterator): Derive from the above in order to
632         conditionally define iterator_category as per P2259.
633         (transform_view::_Iterator::_Base): Just alias
634         transform_view::_Base.
635         (transform_view::_Iterator::_S_iter_cat): Move to struct
636         transform_view::__iter_cat.
637         (transform_view::_Iterator::iterator_category): Remove.
638         (transform_view::_Sentinel::_Base): Just alias
639         transform_view::_Base.
640         (join_view::_Base): Define.
641         (join_view::_Outer_iter): Define.
642         (join_view::_Inner_iter): Define.
643         (join_view::_S_ref_is_glvalue): Define.
644         (join_view::__iter_cat): Define.
645         (join_view::_Iterator): Derive from it in order to conditionally
646         define iterator_category as per P2259.
647         (join_view::_Iterator::_Base): Just alias join_view::_Base.
648         (join_view::_Iterator::_S_ref_is_glvalue): Just alias
649         join_view::_S_ref_is_glvalue.
650         (join_view::_Iterator::_S_iter_cat): Move to struct
651         transform_view::__iter_cat.
652         (join_view::_Iterator::_Outer_iter): Just alias
653         join_view::_Outer_iter.
654         (join_view::_Iterator::_Inner_iter): Just alias
655         join_view::_Inner_iter.
656         (join_view::_Iterator::iterator_category): Remove.
657         (join_view::_Sentinel::_Base): Just alias join_view::_Base.
658         (__detail::__split_view_outer_iter_cat): Define.
659         (__detail::__split_view_inner_iter_cat): Define.
660         (split_view::_Base): Define.
661         (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
662         in order to conditionally define iterator_category as per P2259.
663         (split_view::_Outer_iter::iterator_category): Remove.
664         (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
665         in order to conditionally define iterator_category as per P2259.
666         (split_view::_Inner_iter::_S_iter_cat): Move to
667         __split_view_inner_iter_cat.
668         (split_view::_Inner_iter::iterator_category): Remove.
669         (elements_view::_Base): Define.
670         (elements_view::__iter_cat): Define.
671         (elements_view::_Iterator): Derive from the above in order to
672         conditionall define iterator_category as per P2259.
673         (elements_view::_Iterator::_Base): Just alias
674         elements_view::_Base.
675         (elements_view::_Iterator::_S_iter_concept)
676         (elements_view::_Iterator::iterator_concept): Define as per
677         P2259.
678         (elements_view::_Iterator::iterator_category): Remove.
679         (elements_view::_Sentinel::_Base): Just alias
680         elements_view::_Base.
681         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
682         Adjust constraints on iterator_traits<counted_iterator>.
683         * testsuite/std/ranges/p2259.cc: New test.
685 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
687         PR libstdc++/100146
688         * include/std/charconv (__cpp_lib_to_chars): Define
689         conditionally.
690         * include/std/version (__cpp_lib_to_chars): Likewise..
691         * testsuite/20_util/from_chars/4.cc: Only check feature test
692         macro, not _GLIBCXX_HAVE_USELOCALE.
693         * testsuite/20_util/from_chars/5.cc: Likewise.
694         * testsuite/20_util/from_chars/6.cc: Likewise.
695         * testsuite/20_util/to_chars/long_double.cc: Likewise.
697 2021-04-20  Jakub Jelinek  <jakub@redhat.com>
699         * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
700         versions with _IEEE128_ substring are found, set ieee_version_found
701         to true.  Ignore missing symbols with _IEEE128_ in version name if
702         !ieee_version_found.  Use i->first as version_name instead of
703         i->second.version_name if the latter is empty.
704         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
706 2021-04-19  H.J. Lu  <hjl.tools@gmail.com>
708         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
709         Updated.
711 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
713         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
714         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
716 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
718         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
719         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
720         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
721         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
722         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
723         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
725 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
727         * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
728         add libatomic options for 32-bit sparc*-*-linux-gnu.
730 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
732         PR libstdc++/96657
733         * libsupc++/Makefile.am: Add atomicity.cc here.
734         * src/c++98/Makefile.am: Remove it from here.
735         * libsupc++/Makefile.in: Regenerate.
736         * src/c++98/Makefile.in: Regenerate.
737         * testsuite/18_support/exception_ptr/96657.cc: New test.
739 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
741         PR libstdc++/100060
742         * include/std/bit: Only include <ext/numeric_traits.h> for
743         hosted build, use <limits> otherwise.
745 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
747         * doc/xml/manual/backwards_compatibility.xml: Remove porting
748         notes for libg++ and libstdc++-v2, and bibliography.
749         * doc/html/*: Regenerated.
751 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
753         PR libstdc++/100044
754         * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
755         Remove helper concept.
756         (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
757         deduction guides, as per LWG 3404.
758         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
759         template argument deduction fails.
761 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
763         * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
764         Adjust expected error for C++20 mode.
765         * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
766         Likewise.
768 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
770         PR libstdc++/99995
771         * testsuite/17_intro/headers/c++1998/49745.cc: Include all
772         standard headers and XFAIL for effective-target c++20.
774 2021-04-09  François Dumont  <fdumont@gcc.gnu.org>
776         PR libstdc++/99402
777         * include/debug/helper_functions.h (__can_advance(_InputIterator,
778         const std::pair<_Diff, _Distance_precision>&, int)): New.
779         (__can_advance(const _Safe_iterator<>&,
780         const std::pair<_Diff, _Distance_precision>&, int)): New.
781         * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
782         use latter.
783         (__glibcxx_check_can_increment_range): Adapt to use latter.
784         (__glibcxx_check_can_decrement_range): Likewise.
785         * include/debug/safe_iterator.h
786         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
787         int)): New.
788         (__can_advance(const _Safe_iterator<>&,
789         const std::pair<_Diff, _Distance_precision>&, int)): New.
790         * include/debug/safe_iterator.tcc
791         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
792         int)): New.
793         (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
794         std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
795         __dp_sign_max_size.
796         (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
797         (__copy_move_backward_a): Likewise.
798         (__equal_aux): Likewise.
799         * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
800         const std::pair<_Diff, _Distance_precision>&, int)): New.
801         (__can_advance(const std::move_iterator<>&,
802         const std::pair<_Diff, _Distance_precision>&, int)): New.
803         * testsuite/25_algorithms/copy/debug/99402.cc: New test.
805 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
807         PR libstdc++/99985
808         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
809         to be a valid constexpr function in C++11.
810         * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
812 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
814         * include/bits/fs_fwd.h: Fix doxygen group command.
815         * include/bits/streambuf_iterator.h: Likewise.
816         * include/bits/uses_allocator_args.h: Likewise.
817         * include/std/memory: Likewise.
818         * include/tr1/complex: Likewise.
820 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
822         * include/bits/basic_string.h: Tweak doxygen comment.
824 2021-04-08  Patrick Palka  <ppalka@redhat.com>
826         * include/std/ranges (__detail::find): Define.
827         (split_view::_OuterIter::operator++): Apply proposed resolution
828         of LWG 3505.
829         * testsuite/std/ranges/adaptors/split.cc (test10): New test.
831 2021-04-08  Patrick Palka  <ppalka@redhat.com>
833         * include/std/ranges (__detail::find_if): Simplify.
834         (__detail::find_if_not): Likewise.
835         (__detail::min): Remove.
836         (__detail::mismatch): Simplify.
837         (take_view::size): Use std::min instead of __detail::min.
839 2021-04-08  Patrick Palka  <ppalka@redhat.com>
841         * include/std/ranges (__detail::__returnable_element): New
842         concept.
843         (elements_view): Use this concept in its constraints.  Add
844         missing private access specifier.
845         (elements_view::_S_get_element): Define as per LWG 3502.
846         (elements_view::operator*, elements_view::operator[]): Use
847         _S_get_element.
848         (elements_view::operator++): Remove unnecessary constraint
849         as per LWG 3492.
850         * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
852 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
854         * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
855         out-of-memory error in log file.
856         * doc/Makefile.in: Regenerate.
858 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
860         * configure: Regenerate.
862 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
864         * include/bits/random.h: Fix doxygen group commands.
865         * include/bits/regex_constants.h: Likewise.
866         * include/tr1/random.h: Likewise.
868 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
870         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
871         New function to determine noexcept-specifier for move
872         constructors.
873         (_Hashtable): Use _S_nothrow_move() on move constructors.
874         * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
875         Correct static assertion message.
876         * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
877         Likewise.
878         * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
879         Likewise.
880         * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
881         Likewise.
883 2021-04-08  Patrick Palka  <ppalka@redhat.com>
885         PR libstdc++/98384
886         * testsuite/20_util/to_chars/long_double.cc: Don't run the test
887         on targets without a large long double.  XFAIL the execution on
888         targets with a non-conforming printf.
890 2021-04-08  Patrick Palka  <ppalka@redhat.com>
892         PR libstdc++/99433
893         * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
894         (__adaptor::__adaptor_invocable): New concept.
895         (__adaptor::__adaptor_partial_app_viable): New concept.
896         (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
897         non-template base class.
898         (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
899         class template.
900         (__adaptor::_Partial): New class template that represents
901         partial application of a range adaptor non-closure.
902         (__adaptor::__pipe_invocable): New concept.
903         (__adaptor::_Pipe): New class template.
904         (__detail::__can_ref_view): New concept.
905         (__detail::__can_subrange): New concept.
906         (all): Replace the lambda here with ...
907         (_All): ... this functor.  Add appropriate constraints.
908         (__detail::__can_filter_view): New concept.
909         (filter, _Filter): As in all/_All.
910         (__detail::__can_transform): New concept.
911         (transform, _Transform): As in all/_All.
912         (__detail::__can_take_view): New concept.
913         (take, _Take): As in all/_All.
914         (__detail::__can_take_while_view): New concept.
915         (take_while, _TakeWhile): As in all/_All.
916         (__detail::__can_drop_view): New concept.
917         (drop, _Drop): As in all/_All.
918         (__detail::__can_drop_while_view): New concept.
919         (drop_while, _DropWhile): As in all/_All.
920         (__detail::__can_join_view): New concept.
921         (join, _Join): As in all/_All.
922         (__detail::__can_split_view): New concept.
923         (split, _Split): As in all/_All.  Rename template parameter
924         _Fp to _Pattern.
925         (__detail::__already_common): New concept.
926         (__detail::__can_common_view): New concept.
927         (common, _Common): As in all/_All.
928         (__detail::__can_reverse_view): New concept.
929         (reverse, _Reverse): As in all/_All.
930         (__detail::__can_elements_view): New concept.
931         (elements, _Elements): As in all/_All.
932         (keys, values): Adjust.
933         * testsuite/std/ranges/adaptors/99433.cc: New test.
934         * testsuite/std/ranges/adaptors/all.cc: No longer expect that
935         adding empty range adaptor closure objects to a pipeline doesn't
936         increase the size of the pipeline.
937         (test05): New test.
938         * testsuite/std/ranges/adaptors/common.cc (test03): New test.
939         * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
940         * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
941         * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
942         * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
943         * testsuite/std/ranges/adaptors/join.cc (test09): New test.
944         * testsuite/std/ranges/adaptors/p2281.cc: New test.
945         * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
946         * testsuite/std/ranges/adaptors/split.cc (test01, test04):
947         Adjust.
948         (test09): New test.
949         * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
950         expected error message.
951         (test02): Likewise.  Extend test.
952         * testsuite/std/ranges/adaptors/take.cc (test06): New test.
953         * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
954         * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
955         New test.
957 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
959         * include/std/string_view: Adjust Doxygen @file comment.
961 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
963         * include/std/type_traits (is_scoped_enum<T>): Constrain partial
964         specialization to not match incomplete enum types. Use a
965         requires-expression instead of instantiating is_convertible.
966         (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
967         * testsuite/20_util/is_scoped_enum/value.cc: Check with
968         incomplete types and opaque-enum-declarations.
970 2021-04-07  Jonathan Wakely  <jwakely@redhat.com>
972         PR libstdc++/99805
973         * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
974         non-const member on _M_pathname, to avoid copy-on-write.
975         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
976         Check construction from strings that might be shared.
978 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
980         * include/bits/move.h (forward, move, move_if_noexcept)
981         (addressof): Add _GLIBCXX_NODISCARD.
982         * include/bits/ranges_cmp.h (identity::operator()): Add
983         nodiscard attribute.
984         * include/c_global/cstddef (to_integer): Likewise.
985         * include/std/bit (bit_cast): Likewise.
986         * include/std/utility (as_const, to_underlying): Likewise.
988 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
990         * include/bits/move.h (forward): Change static_assert message
991         to be unambiguous about what must be true.
992         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
993         * testsuite/20_util/forward/f_neg.cc: Likewise.
995 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
997         * include/bits/alloc_traits.h: Use markdown for code font.
998         * include/bits/basic_string.h: Fix @param names.
999         * include/bits/max_size_type.h: Remove period after @file.
1000         * include/bits/regex.h: Fix duplicate @retval names, and rename.
1001         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
1002         group open to match existing group close.
1003         * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
1004         open.
1006 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
1008         * include/bits/atomic_base.h: Fix doxygen group close.
1009         * include/bits/basic_ios.h: Likewise.
1010         * include/bits/forward_list.h: Likewise.
1011         * include/bits/fs_dir.h: Likewise.
1012         * include/bits/fs_ops.h: Likewise.
1013         * include/bits/fs_path.h: Likewise.
1014         * include/bits/functional_hash.h: Likewise.
1015         * include/bits/gslice.h: Likewise.
1016         * include/bits/gslice_array.h: Likewise.
1017         * include/bits/hashtable_policy.h: Likewise.
1018         * include/bits/indirect_array.h: Likewise.
1019         * include/bits/locale_classes.h: Likewise.
1020         * include/bits/locale_facets.h: Likewise.
1021         * include/bits/locale_facets_nonio.h: Likewise.
1022         * include/bits/mask_array.h: Likewise.
1023         * include/bits/refwrap.h: Likewise.
1024         * include/bits/regex.h: Likewise.
1025         * include/bits/regex_automaton.h: Likewise.
1026         * include/bits/regex_compiler.h: Likewise.
1027         * include/bits/regex_constants.h: Likewise.
1028         * include/bits/regex_error.h: Likewise.
1029         * include/bits/regex_executor.h: Likewise.
1030         * include/bits/regex_scanner.h: Likewise.
1031         * include/bits/shared_ptr.h: Likewise.
1032         * include/bits/shared_ptr_atomic.h: Likewise.
1033         * include/bits/shared_ptr_base.h: Likewise.
1034         * include/bits/slice_array.h: Likewise.
1035         * include/bits/specfun.h: Likewise.
1036         * include/bits/std_function.h: Likewise.
1037         * include/bits/std_mutex.h: Likewise.
1038         * include/bits/stl_deque.h: Likewise.
1039         * include/bits/stl_iterator.h: Likewise.
1040         * include/bits/stl_iterator_base_types.h: Likewise.
1041         * include/bits/stl_map.h: Likewise.
1042         * include/bits/stl_multimap.h: Likewise.
1043         * include/bits/stl_multiset.h: Likewise.
1044         * include/bits/stl_numeric.h: Likewise.
1045         * include/bits/stl_pair.h: Likewise.
1046         * include/bits/stl_set.h: Likewise.
1047         * include/bits/stl_uninitialized.h: Likewise.
1048         * include/bits/stream_iterator.h: Likewise.
1049         * include/bits/streambuf_iterator.h: Likewise.
1050         * include/bits/unique_ptr.h: Likewise.
1051         * include/bits/unordered_map.h: Likewise.
1052         * include/bits/unordered_set.h: Likewise.
1053         * include/decimal/decimal: Likewise.
1054         * include/experimental/any: Likewise.
1055         * include/experimental/array: Likewise.
1056         * include/experimental/bits/fs_dir.h: Likewise.
1057         * include/experimental/bits/fs_fwd.h: Likewise.
1058         * include/experimental/bits/fs_ops.h: Likewise.
1059         * include/experimental/bits/fs_path.h: Likewise.
1060         * include/experimental/buffer: Likewise.
1061         * include/experimental/internet: Likewise.
1062         * include/experimental/optional: Likewise.
1063         * include/experimental/propagate_const: Likewise.
1064         * include/experimental/socket: Likewise.
1065         * include/ext/pb_ds/assoc_container.hpp: Likewise.
1066         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
1067         Likewise.
1068         * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
1069         * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
1070         * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
1071         * include/ext/pb_ds/exception.hpp: Likewise.
1072         * include/ext/pb_ds/priority_queue.hpp: Likewise.
1073         * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
1074         * include/ext/random: Likewise.
1075         * include/std/any: Likewise.
1076         * include/std/atomic: Likewise.
1077         * include/std/bitset: Likewise.
1078         * include/std/chrono: Likewise.
1079         * include/std/complex: Likewise.
1080         * include/std/condition_variable: Likewise.
1081         * include/std/fstream: Likewise.
1082         * include/std/future: Likewise.
1083         * include/std/iostream: Likewise.
1084         * include/std/istream: Likewise.
1085         * include/std/mutex: Likewise.
1086         * include/std/numeric: Likewise.
1087         * include/std/ostream: Likewise.
1088         * include/std/ratio: Likewise.
1089         * include/std/shared_mutex: Likewise.
1090         * include/std/stdexcept: Likewise.
1091         * include/std/streambuf: Likewise.
1092         * include/std/system_error: Likewise.
1093         * include/std/thread: Likewise.
1094         * include/std/valarray: Likewise.
1095         * include/std/variant: Likewise.
1096         * include/tr1/cmath: Likewise.
1097         * include/tr1/regex: Likewise.
1098         * include/tr2/dynamic_bitset: Likewise.
1099         * libsupc++/atomic_lockfree_defines.h: Likewise.
1100         * libsupc++/exception: Likewise.
1101         * libsupc++/exception.h: Likewise.
1102         * libsupc++/exception_ptr.h: Likewise.
1103         * libsupc++/nested_exception.h: Likewise.
1105 2021-03-31  Alexandre Oliva  <oliva@adacore.com>
1107         * testsuite/30_threads/future/members/poll.cc: Use faster
1108         after-ready call in the calibration loop.
1110 2021-03-29  Jonathan Wakely  <jwakely@redhat.com>
1112         * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
1113         * doc/html/manual/status.html: Regenerate.
1115 2021-03-28  François Dumont  <fdumont@gcc.gnu.org>
1117         * include/debug/forward_list
1118         (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
1119         * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
1120         call to safe container allocator aware move constructor.
1121         * include/debug/vector (vector(vector&&, const allocator_type&)):
1122         Fix noexcept qualification.
1123         * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
1124         Add allocator-extended move constructor noexceot qualification check.
1125         * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
1127 2021-03-26  Jonathan Wakely  <jwakely@redhat.com>
1129         * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
1130         fallback is needed.
1131         [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
1132         New helper functions and callback.
1133         (random_device::_M_init): Add 'prng' and 'all' enumerators.
1134         Replace switch with fallthrough with a series of 'if' statements.
1135         [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
1136         checks fail.
1137         (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
1138         token.
1139         (random_device::_M_getval): Check for callback unconditionally
1140         and always pass _M_file pointer.
1141         * testsuite/26_numerics/random/random_device/85494.cc: Remove
1142         effective-target check. Use new random_device_available helper.
1143         * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
1144         * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
1145         Remove effective-target check.
1146         * testsuite/26_numerics/random/random_device/cons/default.cc:
1147         Likewise.
1148         * testsuite/26_numerics/random/random_device/cons/token.cc: Use
1149         new random_device_available helper. Test "prng" token.
1150         * testsuite/util/testsuite_random.h (random_device_available):
1151         New helper function.
1153 2021-03-25  François Dumont  <fdumont@gcc.gnu.org>
1155         * include/debug/string
1156         (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
1157         (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
1158         (basic_string<>::erase): Adapt to take __const_iterator.
1159         (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
1160         (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
1161         remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
1162         [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
1163         (__gnu_debug::u16string, __gnu_debug::u32string): New.
1164         (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
1165         (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
1166         * testsuite/util/exception/safety.h
1167         (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
1168         (insert_base<__gnu_debug::basic_string<>>): Likewise.
1169         * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
1170         New partial specialization.
1171         * testsuite/21_strings/basic_string/hash/debug.cc: New test.
1172         * testsuite/21_strings/basic_string/requirements/citerators.cc:
1173         Add test on __gnu_debug::string.
1174         * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
1175         * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
1176         * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
1177         Likewise.
1178         * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
1179         Likewise.
1180         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
1181         Likewise.
1182         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
1183         Likewise.
1184         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
1185         Likewise.
1186         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
1187         Likewise.
1188         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
1189         Likewise.
1190         * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
1192 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
1194         PR c++/99672
1195         * testsuite/18_support/source_location/consteval.cc (main): Adjust
1196         expected column numbers.
1197         * testsuite/18_support/source_location/1.cc (main): Likewise.
1199 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
1201         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
1203 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
1205         * testsuite/util/exception/safety.h (setup_base::generate):
1206         Support seeding random engine.
1207         (erase_point, erase_range): Adjust range of random numbers to
1208         ensure dereferenceable iterators are used where required.
1209         (generation_prohibited::run): Do not try to erase from empty
1210         containers.
1211         * testsuite/util/testsuite_containergen.h (test_containers):
1212         Support seeding random engine.
1214 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
1216         * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
1217         line with a check that uses the const being/end overloads.
1219 2021-03-23  Moritz Sichert  <sichert@in.tum.de>
1221         * include/std/ranges (reverse_view::begin, reverse_view::end):
1222         Qualify make_reverse_iterator calls to avoid ADL.
1223         * testsuite/std/ranges/adaptors/reverse.cc: Test that
1224         views::reverse works when make_reverse_iterator is defined
1225         in an associated namespace.
1227 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
1229         * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
1230         Do not define when compiling with Clang.
1232 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
1234         * include/std/string_view (basic_string_view(Range&&)): Define new
1235         constructor and deduction guide.
1236         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
1237         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
1239 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
1241         * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
1242         Add missing 'noexcept' as per LWG 2280.
1243         (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
1244         (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
1245         * testsuite/24_iterators/range_access/range_access.cc: Check for
1246         expected noexcept specifiers. Check result types of generic
1247         std::begin and std::end overloads.
1248         * testsuite/24_iterators/range_access/range_access_cpp14.cc:
1249         Check for expected noexcept specifiers.
1250         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
1251         Likewise.
1253 2021-03-19  Jonathan Wakely  <jwakely@redhat.com>
1255         * include/std/type_traits (is_scoped_enum): Define.
1256         * include/std/version (__cpp_lib_is_scoped_enum): Define.
1257         * testsuite/20_util/is_scoped_enum/value.cc: New test.
1258         * testsuite/20_util/is_scoped_enum/version.cc: New test.
1260 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
1262         PR libstdc++/99341
1263         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
1264         std::once_flag symbols.
1265         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
1266         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
1267         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
1268         Likewise.
1269         * config/abi/pre/gnu.ver: Likewise.
1270         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
1271         (struct __once_flag_compat): Remove.
1272         (_ZNSt9once_flag11_M_activateEv): Remove.
1273         (_ZNSt9once_flag9_M_finishEb): Remove.
1275 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
1277         PR libstdc++/99341
1278         * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
1279         Revert to pthread_once_t implementation.
1280         [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
1281         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
1282         (struct __once_flag_compat): New type matching the reverted
1283         implementation of once_flag using futexes.
1284         (once_flag::_M_activate): Remove, replace with ...
1285         (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
1286         (once_flag::_M_finish): Remove, replace with ...
1287         (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
1288         * testsuite/30_threads/call_once/66146.cc: Removed.
1290 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
1292         * testsuite/17_intro/names.cc: Exclude j from the list
1293         of test symbols for Darwin.
1295 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
1297         * config/os/bsd/darwin/ppc-extra.ver: Add matching for
1298         to_chars and from_chars for long double.
1300 2021-03-15  Patrick Palka  <ppalka@redhat.com>
1302         * include/bits/max_size_type.h (__max_size_type::operator _Tp):
1303         Fix formatting.
1304         (__max_size_type::operator++): Define.
1305         (__max_size_type::operator--): Likewise.
1306         (__max_size_type::operator<=>): Conditionally define (in place
1307         of the other comparison operators).
1308         (__max_diff_type::operator _Tp): Fix formatting.
1309         (__max_diff_type::operator++): Define.
1310         (__max_diff_type::operator--): Likewise.
1311         (__max_diff_type::operator<=>): Conditionally define (in place
1312         of the other comparison operators).
1313         * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
1314         these operator overloads.
1316 2021-03-15  Caroline Tice  <cmtice@google.com>
1318         PR libstdc++/99172
1319         * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
1320         AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
1321         AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
1322         filtered out.
1323         * src/Makefile.in: Regenerate.
1325 2021-03-11  Patrick Palka  <ppalka@redhat.com>
1327         * src/c++17/floating_to_chars.cc: Simplify the file as if
1328         __SIZEOF_INT128__ is always defined.
1329         [!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
1330         a base-10 to_chars overload for the uint128_t class type.
1331         * src/c++17/uint128_t.h: New file.
1332         * testsuite/20_util/to_chars/long_double.cc: No longer expect an
1333         execution FAIL on targets that have a large long double type
1334         but lack __int128.
1336 2021-03-11  Patrick Palka  <ppalka@redhat.com>
1338         * src/c++17/ryu/LOCAL_PATCHES: Update.
1339         * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
1340         * src/c++17/ryu/generic_128.h: Likewise.
1341         * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
1342         Use uint128_t instead of __uint128_t.
1343         (generic_binary_to_decimal): Likewise.
1345 2021-03-11  Patrick Palka  <ppalka@redhat.com>
1347         * src/c++17/ryu/LOCAL_PATCHES: New file.
1349 2021-03-11  Patrick Palka  <ppalka@redhat.com>
1351         * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
1352         defined alias of unsigned __int128.
1353         (floating_type_traits_binary128::mantissa_t): Use uint128_t
1354         instead of unsigned __int128.
1355         (floating_type_traits<long double>::mantissa_t)
1356         [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
1357         (get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
1358         and uint32_t explicit.  Simplify the extraction of mantissa,
1359         exponent and sign bit.
1361 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
1363         * include/std/barrier (barrier::arrival_token): New move-only
1364         class that encapsulates the underlying token value.
1366 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
1368         * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
1369         instead of unqualified() method.
1371 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
1373         PR libstdc++/99537
1374         * include/std/stop_token (_Stop_state_t::_M_release_ownership):
1375         Use acq_rel memory ordering.
1377 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
1379         PR libstdc++/99533
1380         * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
1381         helper function to check for permission denied errors.
1382         * src/filesystem/dir.cc (recursive_directory_iterator):
1383         Likewise.
1384         * src/filesystem/dir-common.h (is_permission_denied_error): New
1385         helper function.
1387 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
1389         PR libstdc++/99536
1390         * include/bits/random.h (normal_distribution): Use
1391         default-initializer for _M_saved and _M_saved_available.
1393 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
1395         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
1396         link with libatomic.
1397         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
1398         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
1399         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
1400         * testsuite/30_threads/barrier/arrive.cc: Likewise.
1401         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1402         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1403         * testsuite/30_threads/barrier/completion.cc: Likewise.
1404         * testsuite/30_threads/latch/3.cc: Likewise.
1405         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
1406         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
1407         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1409 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
1411         PR libstdc++/99413
1412         * include/bits/align.h: Include debug/assertions.h.
1413         * include/bits/codecvt.h: Include bits/c++config.h.
1414         * include/bits/enable_special_members.h: Likewise.
1415         * include/bits/erase_if.h: Likewise.
1416         * include/bits/functional_hash.h: Include <type_traits>.
1417         * include/bits/invoke.h: Include bits/move.h.
1418         * include/bits/ostream_insert.h: Include bits/exception_defines.h.
1419         * include/bits/parse_numbers.h: Include <type_traits>.
1420         * include/bits/predefined_ops.h: Include bits/c++config.h.
1421         * include/bits/range_access.h: Include bits/stl_iterator.h.
1422         * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
1423         * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
1424         * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
1425         * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
1426         * include/bits/unique_lock.h: Include bits/std_mutex.h.
1427         * include/debug/assertions.h: Include bits/c++config.h.
1429 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
1431         * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
1432         (ranges::equal_to, ranges::not_equal_to): Do not constrain
1433         with __eq_builtin_ptr_cmp.
1434         (ranges::less, ranges::greater, ranges::less_equal)
1435         (ranges::greater_equal): Do not constrain with
1436         __less_builtin_ptr_cmp.
1437         * libsupc++/compare (compare_three_way): Do not constrain with
1438         __3way_builtin_ptr_cmp.
1439         * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
1440         * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
1441         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
1443 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
1445         * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
1446         C++20 calendar types.
1448 2021-03-06  Jakub Jelinek  <jakub@redhat.com>
1450         PR libstdc++/99396
1451         * include/std/bit (__rotl, __rotr): Add optimized variants for power of
1452         two _Nd which the compiler can pattern match the rotates.
1454 2021-03-04  Jonathan Wakely  <jwakely@redhat.com>
1456         PR libstdc++/99382
1457         * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
1458         Make storage larger than required. Verify no write to the last
1459         element.
1460         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
1461         Likewise.
1463 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1465         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1466         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1467         Likewise.
1468         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1469         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1470         Likewise.
1472 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1474         * include/experimental/bits/simd.h: Replace reserved _X, _B by
1475         _Xp, _Bp.
1476         * include/experimental/bits/simd_builtin.h: Likewise.
1477         * include/experimental/bits/simd_x86.h: Likewise.
1479 2021-02-27  Jonathan Wakely  <jwakely@redhat.com>
1481         PR libstdc++/99301
1482         * include/std/chrono (year_month_day::_M_days_since_epoch()):
1483         Convert chrono::month and chrono::day to unsigned before
1484         converting to uint32_t.
1486 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
1488         * include/std/chrono (year_month_day::_S_from_days): Perform
1489         all calculations with type uint32_t.
1491 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
1493         * doc/xml/manual/abi.xml: Document versioning for GCC 11.
1494         * doc/html/manual/abi.html: Regenerate.
1496 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
1498         PR libstdc++/99270
1499         * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
1500         FILE instead of FILE.
1502 2021-02-25  Andreas Schwab  <schwab@suse.de>
1504         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1505         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1506         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1507         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1509 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
1511         PR libstdc++/99265
1512         * include/std/chrono (year_month_day::_S_from_days): Cast long
1513         to int explicitly.
1515 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
1517         * include/std/utility (to_underlying): Define.
1518         * include/std/version (__cpp_lib_to_underlying): Define.
1519         * testsuite/20_util/to_underlying/1.cc: New test.
1520         * testsuite/20_util/to_underlying/version.cc: New test.
1522 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
1524         PR libstdc++/99261
1525         * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
1526         before value to be printed.
1528 2021-02-24  Patrick Palka  <ppalka@redhat.com>
1530         * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
1531         Relax the condition that guards the printf code path to accept
1532         F128_type as well as long double.
1534 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
1536         * include/std/chrono (year_month_day_last:day): New
1537         implementation.
1539 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
1541         * include/std/chrono (year::is_leap): New implementation.
1542         * testsuite/std/time/year/2.cc: New test.
1544 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
1546         * include/std/chrono (year_month_day::_M_days_since_epoch):
1547         New implementation.
1548         * testsuite/std/time/year_month_day/4.cc: New test.
1550 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
1552         * include/std/chrono (year_month_day::_S_from_days): New
1553         implementation.
1554         * testsuite/std/time/year_month_day/3.cc: New test.
1556 2021-02-24  Patrick Palka  <ppalka@redhat.com>
1558         PR libstdc++/98384
1559         * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
1560         (test01): Simplify verifying the nearby values by using a
1561         2-iteration loop and a dedicated output buffer to check that the
1562         nearby values are different.  Factor out the printf-based
1563         verification into a local function, and check that the leading
1564         hex digits agree before comparing to the output of printf.  Also
1565         verify the output by round-tripping it through from_chars.
1567 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
1569         PR libstdc++/98389
1570         * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
1571         symbols for long double arguments mangled as 'g'.
1572         * config/os/gnu-linux/ldbl-extra.ver: Likewise.
1573         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
1574         * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
1575         Use -mabi=ibmlongdouble for floating_to_chars.cc.
1576         * src/c++17/Makefile.in: Regenerate.
1577         * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
1578         New type defining type traits of IEEE binary128 format.
1579         (floating_type_traits<__float128>): Define specialization.
1580         (floating_type_traits<long double>): Define in terms of
1581         floating_type_traits_binary128 when appropriate.
1582         (floating_to_shortest_scientific): Handle __float128.
1583         (sprintf_ld): New function template for printing a long double
1584         or __ieee128 value using sprintf.
1585         (__floating_to_chars_shortest, __floating_to_chars_precision):
1586         Use sprintf_ld.
1587         (to_chars): Define overloads for __float128.
1589 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
1591         * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
1593 2021-02-23  Martin Sebor  <msebor@redhat.com>
1595         PR c++/99074
1596         * libsupc++/dyncast.cc (__dynamic_cast): Return null when
1597         first argument is null.
1599 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
1601         PR libstdc++/99181
1602         * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
1603         test.
1605 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
1607         PR libstdc++/99181
1608         * include/bits/char_traits.h (char_traits<char>::compare): For
1609         constexpr evaluation don't call
1610         __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
1611         directly.
1613 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
1615         PR libstdc++/97549
1616         * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
1618 2021-02-23  Patrick Palka  <ppalka@redhat.com>
1620         PR libstdc++/98384
1621         * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
1622         the high- and low-order parts from an IBM long double value
1623         in an endian-agnostic way.
1625 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
1627         * include/bits/atomic_wait.h (__thread_relax()): Call
1628         __thread_yield() not __gthread_yield().
1630 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
1632         * include/bits/atomic_wait.h (__thread_yield()): Check
1633         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1634         (__thread_relax()): Use __thread_yield() instead of repeating
1635         the preprocessor checks for __gthread_yield.
1637 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
1639         * include/std/mutex (once_flag::_M_activate()): Add explicit
1640         return statement for passive case.
1641         (once_flag::_M_finish(bool)): Use reserved name for parameter.
1643 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
1645         PR libstdc++/99096
1646         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
1648 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1650         PR libstdc++/88881
1651         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
1653 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1655         * doc/xml/manual/status_cxx2014.xml: Document implementation
1656         specific properties of std::experimental::filesystem::rename.
1657         * doc/xml/manual/status_cxx2017.xml: Document implementation
1658         specific properties of std::filesystem::rename.
1659         * doc/html/*: Regenerate.
1660         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
1661         for directories on Windows.
1662         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
1663         MoveFileExW on Windows.
1664         * testsuite/27_io/filesystem/operations/rename.cc: New test.
1665         * testsuite/experimental/filesystem/operations/rename.cc: New test.
1667 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1669         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
1670         random number to the path.
1672 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1674         * include/experimental/internet (address_v6::to_string): Include
1675         scope ID in string.
1676         * testsuite/experimental/net/internet/address/v6/members.cc:
1677         Test to_string() results.
1679 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1681         * include/experimental/internet (address_v6::any): Avoid using
1682         memcpy in constexpr function.
1683         (address_v6::loopback): Likewise.
1684         (make_address_v6): Fix missing return statements on error paths.
1685         * include/experimental/io_context: Avoid -Wdangling-else
1686         warning.
1687         * testsuite/experimental/net/internet/address/v4/members.cc:
1688         Remove unused variables.
1689         * testsuite/experimental/net/internet/address/v6/members.cc:
1690         New test.
1692 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1694         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
1695         Add unused attribute to parameter.
1696         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
1697         Likewise.
1699 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1701         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
1702         if -fno-rtti is used.
1703         * testsuite/30_threads/async/forced_unwind.cc: Expect test
1704         to abort if -fno-rtti is used.
1706 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1708         * testsuite/util/testsuite_allocator.h (memory_resource):
1709         Remove requirement for RTTI and exceptions to be enabled.
1711 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1713         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
1714         static_cast when RTTI is disabled.
1715         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
1716         Likewise.
1717         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
1718         Likewise.
1719         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
1720         Likewise.
1721         * testsuite/27_io/basic_stringstream/str/char/2.cc:
1722         Likewise.
1723         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
1724         Likewise.
1726 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1728         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
1729         as unused and only use dynamic_cast when RTTI is enabled.
1731 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
1733         PR libstdc++/99077
1734         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
1735         Change int parameter to error_code, to match std::ios_failure.
1736         (__throw_ios_failure(const char*, int)): Construct error_code
1737         from int parameter.
1739 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
1741         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
1742         new macro.
1743         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
1744         macro instead of _GLIBCXX_EH_PTR_COMPAT.
1745         (operator==): Likewise.
1747 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
1749         PR libstdc++/99058
1750         * doc/xml/manual/status_cxx2011.xml: Document when support
1751         became stable.
1752         * doc/xml/manual/status_cxx2014.xml: Likewise.
1753         * doc/xml/manual/status_cxx2017.xml: Likewise.
1754         * doc/html/manual/status.html: Regenerate.
1756 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
1758         PR libstdc++/88881
1759         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
1761 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
1763         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
1764         (fs::remove): Use std::system_category() for error codes from
1765         GetLastError().
1766         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
1767         Likewise.
1769 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
1771         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
1772         in __MINGW32__ macro name.
1773         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
1774         * testsuite/27_io/filesystem/path/generation/proximate.cc:
1775         Likewise.
1776         * testsuite/27_io/filesystem/path/generation/relative.cc:
1777         Likewise.
1778         * testsuite/util/testsuite_fs.h: Likewise.
1780 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
1782         * include/bits/stl_tree.h
1783         (__has_is_transparent, __has_is_transparent_t): Move...
1784         * include/bits/stl_function.h: ...here.
1785         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
1786         (_Hashtable_base<>::_M_equals_tr): New.
1787         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
1788         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
1789         heterogeneous lookup.
1790         (_Hashtable<>::_M_find_before_node_tr): New.
1791         (_Hashtable<>::_M_find_node_tr): New.
1792         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
1793         unordered_map::contains<>, unordered_map::equal_range<>): New member function
1794         templates to perform heterogeneous lookup.
1795         (unordered_multimap::find<>, unordered_multimap::count<>,
1796         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
1797         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
1798         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
1799         (unordered_multiset::find<>, unordered_multiset::count<>,
1800         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
1801         * include/debug/unordered_map
1802         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
1803         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
1804         * include/debug/unordered_set
1805         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
1806         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
1807         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
1808         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
1809         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
1810         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
1812 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
1814         * include/bits/stl_deque.h
1815         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
1816         a null pointer test.
1818 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
1820         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
1821         test directory after making it writable again.
1822         * testsuite/experimental/filesystem/operations/remove_all.cc:
1823         Likewise.
1825 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
1827         PR libstdc++/99021
1828         * include/std/coroutine (coroutine_handle<P>::from_address): Add
1829         noexcept.
1831 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
1833         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
1834         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
1836 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
1838         PR middle-end/98465
1839         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
1840         points to the characters moved by earlier _S_move, compute the source
1841         address using expression based on the __p pointer rather than __s
1842         pointer.
1844 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
1846         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
1847         Add comparison with same category and different values.
1848         * testsuite/19_diagnostics/error_code/operators/less.cc:
1849         Likewise. Fix comparison involving different categories.
1850         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1851         Likewise.
1852         * testsuite/19_diagnostics/error_condition/operators/less.cc:
1853         Add comment.
1854         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1855         Likewise.
1857 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
1859         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
1860         calls with a single vaddv for aarch64.
1862 2021-02-03  Matthias Kretz  <kretz@kde.org>
1864         * testsuite/Makefile.am: Warn about the workaround. Add
1865         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
1866         Improve initial user feedback from make check-simd.
1867         * testsuite/Makefile.in: Regenerated.
1869 2021-02-03  Matthias Kretz  <kretz@kde.org>
1871         * include/experimental/bits/simd.h: Add __detail::_Minimum and
1872         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
1873         Add hmin and hmax overloads for simd and const_where_expression.
1874         * include/experimental/bits/simd_scalar.h
1875         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
1876         parameter const-ref to allow calling _S_reduce with an rvalue.
1877         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
1878         hmin and hmax. Since the compiler statically determined that all
1879         tests pass, repeat the test after a call to make_value_unknown.
1881 2021-02-03  Matthias Kretz  <kretz@kde.org>
1883         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
1884         instruction pointer data member. Ensure that the `if (m_failed)`
1885         branch is always inlined into the calling code. The body of the
1886         conditional can still be a function call. Move the get_ip call
1887         into the verify ctor to simplify the ctor calls.
1888         (COMPARE): Don't mention the use of all_of for reduction of a
1889         simd_mask. It only distracts from the real issue.
1891 2021-02-03  Matthias Kretz  <kretz@kde.org>
1893         * testsuite/experimental/simd/driver.sh: Abstract reading test
1894         options into read_src_option function. Read skip, only,
1895         expensive, and xfail via read_src_option. Add timeout and
1896         timeout-factor options and adjust timeout variable accordingly.
1897         * testsuite/experimental/simd/tests/loadstore.cc: Set
1898         timeout-factor 2.
1900 2021-02-03  Matthias Kretz  <kretz@kde.org>
1902         * testsuite/experimental/simd/driver.sh: When handling the pipe
1903         to log (and on verbose to stdout) count the lines. If it exceeds
1904         1000 log the issue and exit 125, which is then handled as a
1905         failure.
1907 2021-02-03  Matthias Kretz  <kretz@kde.org>
1909         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
1910         markup for long double on powerpc64*.
1912 2021-02-03  Matthias Kretz  <kretz@kde.org>
1914         * include/experimental/bits/simd.h: Add __have_power10vec
1915         conditional on _ARCH_PWR10.
1916         * include/experimental/bits/simd_builtin.h: Forward declare
1917         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
1918         defined.
1919         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
1920         _SuperImpl for optimizations and correctness.
1921         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
1922         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
1923         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
1924         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
1926 2021-02-03  Matthias Kretz  <kretz@kde.org>
1928         * testsuite/experimental/simd/driver.sh: Remove executable on
1929         SIGINT. Process compiler and test executable output: In verbose
1930         mode print messages immediately, limited to 1000 lines and
1931         breaking long lines to below $COLUMNS (or 1024 if not set).
1932         Communicating the exit status of the compiler / test with the
1933         necessary pipe is done via a message through stdout/-in.
1935 2021-02-03  Matthias Kretz  <kretz@kde.org>
1937         * testsuite/Makefile.am: Ensure .simd.summary is empty before
1938         collecting a new summary.
1939         * testsuite/Makefile.in: Regenerate.
1941 2021-02-03  Matthias Kretz  <kretz@kde.org>
1943         * testsuite/experimental/simd/generate_makefile.sh: Use
1944         different variables internally than documented for user
1945         overrides. This makes internal append/prepend work as intended.
1947 2021-02-03  Matthias Kretz  <kretz@kde.org>
1949         * testsuite/experimental/simd/driver.sh (verify_test): Print
1950         test output on run xfail. Do not repeat lines from the log that
1951         were already printed on stdout.
1952         (test_selector): Make the compiler flags pattern usable as a
1953         substring selector.
1954         (toplevel): Trap on SIGINT and remove the log and sum files.
1955         Call timout with --foreground to quickly terminate on SIGINT.
1956         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
1957         targets via target patterns. Default DRIVEROPTS to -v for run
1958         targets. Remove log and sum files after completion of the run
1959         target (so that it's always recompiled).
1960         Place help text into text file for reasonable 'make help'
1961         performance.
1963 2021-02-03  Matthias Kretz  <kretz@kde.org>
1965         * include/experimental/bits/simd.h: Remove unnecessary static
1966         assertion. Allow sizeof(8) integer __intrinsic_type to enable
1967         the necessary mask type.
1969 2021-02-03  Matthias Kretz  <kretz@kde.org>
1971         * include/experimental/bits/simd.h: Let __intrinsic_type<long
1972         double, N> be valid if sizeof(long double) == sizeof(double) and
1973         use a __vector double as member type.
1975 2021-02-03  Matthias Kretz  <kretz@kde.org>
1977         * include/experimental/bits/simd.h (__is_intrinsic_type): New
1978         internal type trait. Alias for __is_vector_type on x86.
1979         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
1980         __vector_type.
1981         (__intrin_bitcast): Allow casting to & from vector & intrinsic
1982         types.
1983         (__intrinsic_type): Explicitly specialize for NEON intrinsic
1984         vector types.
1986 2021-02-03  Matthias Kretz  <kretz@kde.org>
1988         * testsuite/experimental/simd/driver.sh: Implement skip, only,
1989         expensive, and xfail markers. They can select on type, ABI tag
1990         subset number, target-triplet, and compiler flags.
1991         * testsuite/experimental/simd/generate_makefile.sh: The summary
1992         now includes lines for unexpected passes and expected failures.
1993         If the skip or only markers are only conditional on the type, do
1994         not generate rules for those types.
1995         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
1996         for ABI tag subsets 1-9.
1997         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
1998         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
1999         * testsuite/experimental/simd/tests/casts.cc: Ditto.
2000         * testsuite/experimental/simd/tests/generator.cc: Ditto.
2001         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
2002         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
2003         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
2004         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
2005         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
2006         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
2007         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
2008         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
2009         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
2010         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
2011         * testsuite/experimental/simd/tests/operators.cc: Ditto.
2012         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
2013         * testsuite/experimental/simd/tests/simd.cc: Ditto.
2014         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
2015         * testsuite/experimental/simd/tests/splits.cc: Ditto.
2016         * testsuite/experimental/simd/tests/where.cc: Ditto.
2017         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
2018         addition replace "test only floattypes" marker by unconditional
2019         "float|double|ldouble" only marker.
2020         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
2021         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
2022         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2023         Ditto.
2024         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
2025         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
2026         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
2027         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
2028         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
2029         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
2030         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
2031         addition, xfail on run because the reference data is missing.
2033 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
2035         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
2036         * doc/xml/manual/status_cxx2014.xml: Likewise.
2037         * doc/xml/manual/status_cxx2017.xml: Likewise.
2038         * doc/html/manual/status.html: Regenerate.
2040 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
2042         PR libstdc++/70303
2043         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
2044         Return 0 if both iterators are value-initialized.
2045         * testsuite/23_containers/deque/70303.cc: New test.
2046         * testsuite/23_containers/vector/70303.cc: New test.
2048 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
2050         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
2051         status.
2052         * doc/xml/manual/status_cxx2014.xml: Likewise.
2053         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
2054         std::from_chars and std::to_chars status. Fix formatting.
2055         * doc/html/manual/status.html: Regenerate.
2057 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
2059         * include/experimental/bits/numeric_traits.h: Update copyright
2060         dates.
2061         * include/experimental/bits/simd.h: Likewise.
2062         * include/experimental/bits/simd_builtin.h: Likewise.
2063         * include/experimental/bits/simd_converter.h: Likewise.
2064         * include/experimental/bits/simd_detail.h: Likewise.
2065         * include/experimental/bits/simd_fixed_size.h: Likewise.
2066         * include/experimental/bits/simd_math.h: Likewise.
2067         * include/experimental/bits/simd_neon.h: Likewise.
2068         * include/experimental/bits/simd_ppc.h: Likewise.
2069         * include/experimental/bits/simd_scalar.h: Likewise.
2070         * include/experimental/bits/simd_x86.h: Likewise.
2071         * include/experimental/bits/simd_x86_conversions.h: Likewise.
2072         * include/experimental/simd: Likewise.
2073         * testsuite/experimental/simd/*: Likewise.
2075 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
2077         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
2078         * doc/html/*: Regenerate.
2080 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
2082         * testsuite/experimental/simd/generate_makefile.sh: Use printf
2083         instead of echo when printing escape characters.
2085 2021-01-27  Matthias Kretz  <kretz@kde.org>
2087         * scripts/check_simd: New file. This script is called from the
2088         the check-simd target. It determines a set of compiler flags and
2089         simulator setups for calling generate_makefile.sh and passes the
2090         information back to the check-simd target, which recurses to the
2091         generated Makefiles.
2092         * scripts/create_testsuite_files: Remove files below simd/tests/
2093         from testsuite_files and place them in testsuite_files_simd.
2094         * testsuite/Makefile.am: Add testsuite_files_simd. Add
2095         check-simd target.
2096         * testsuite/Makefile.in: Regenerate.
2097         * testsuite/experimental/simd/driver.sh: New file. This script
2098         compiles and runs a given simd test, logging its output and
2099         status. It uses the timeout command to implement compile and
2100         test timeouts.
2101         * testsuite/experimental/simd/generate_makefile.sh: New file.
2102         This script generates a Makefile which uses driver.sh to compile
2103         and run the tests and collect the logs into a single log file.
2104         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
2105         abs(simd).
2106         * testsuite/experimental/simd/tests/algorithms.cc: New file.
2107         Tests min/max(simd, simd).
2108         * testsuite/experimental/simd/tests/bits/conversions.h: New
2109         file. Contains functions to support tests involving conversions.
2110         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
2111         Support functions make_mask and make_vec.
2112         * testsuite/experimental/simd/tests/bits/mathreference.h: New
2113         file. Support functions to supply precomputed math function
2114         reference data.
2115         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
2116         file. Support code for SFINAE testing.
2117         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
2118         * testsuite/experimental/simd/tests/bits/test_values.h: New
2119         file. Test functions to easily drive a test with simd objects
2120         initialized from a given list of values and a range of random
2121         values.
2122         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
2123         Support code to determine the ULP distance of simd objects.
2124         * testsuite/experimental/simd/tests/bits/verify.h: New file.
2125         Test framework for COMPARE'ing simd objects and instantiating
2126         the test templates with value_type and ABI tag.
2127         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
2128         simd broadcasts.
2129         * testsuite/experimental/simd/tests/casts.cc: New file. Test
2130         simd casts.
2131         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
2132         Test floating-point classification functions.
2133         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
2134         frexp(simd).
2135         * testsuite/experimental/simd/tests/generator.cc: New file. Test
2136         simd generator constructor.
2137         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
2138         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
2139         * testsuite/experimental/simd/tests/integer_operators.cc: New
2140         file. Test integer operators.
2141         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2142         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
2143         modf(simd).
2144         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
2145         (converting) simd loads and stores.
2146         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
2147         log*(simd).
2148         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
2149         Test simd_mask broadcasts.
2150         * testsuite/experimental/simd/tests/mask_conversions.cc: New
2151         file. Test simd_mask conversions.
2152         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
2153         file. Test simd_mask implicit conversions.
2154         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
2155         Test simd_mask loads and stores.
2156         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
2157         file. Test simd_mask operators convert as specified.
2158         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
2159         Test simd_mask compares, subscripts, and negation.
2160         * testsuite/experimental/simd/tests/mask_reductions.cc: New
2161         file. Test simd_mask reductions.
2162         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
2163         1-arg math functions on simd.
2164         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
2165         2-arg math functions on simd.
2166         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
2167         Test implicit conversions on simd binary operators behave as
2168         specified.
2169         * testsuite/experimental/simd/tests/operators.cc: New file. Test
2170         simd compares, subscripts, not, unary minus, plus, minus,
2171         multiplies, divides, increment, and decrement.
2172         * testsuite/experimental/simd/tests/reductions.cc: New file.
2173         Test reduce(simd).
2174         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
2175         remqo(simd).
2176         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
2177         sanity checks of simd types.
2178         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
2179         sin(simd) and cos(simd).
2180         * testsuite/experimental/simd/tests/split_concat.cc: New file.
2181         Test split(simd) and concat(simd, simd).
2182         * testsuite/experimental/simd/tests/splits.cc: New file. Test
2183         split(simd_mask).
2184         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
2185         Test remaining trigonometric functions on simd.
2186         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
2187         file. Test trunc(simd), ceil(simd), and floor(simd).
2188         * testsuite/experimental/simd/tests/where.cc: New file. Test
2189         masked operations using where.
2191 2021-01-27  Matthias Kretz  <kretz@kde.org>
2193         * doc/xml/manual/status_cxx2017.xml: Add implementation status
2194         of the Parallelism TS 2. Document implementation-defined types
2195         and behavior.
2196         * include/Makefile.am: Add new headers.
2197         * include/Makefile.in: Regenerate.
2198         * include/experimental/simd: New file. New header for
2199         Parallelism TS 2.
2200         * include/experimental/bits/numeric_traits.h: New file.
2201         Implementation of P1841R1 using internal naming. Addition of
2202         missing IEC559 functionality query.
2203         * include/experimental/bits/simd.h: New file. Definition of the
2204         public simd interfaces and general implementation helpers.
2205         * include/experimental/bits/simd_builtin.h: New file.
2206         Implementation of the _VecBuiltin simd_abi.
2207         * include/experimental/bits/simd_converter.h: New file. Generic
2208         simd conversions.
2209         * include/experimental/bits/simd_detail.h: New file. Internal
2210         macros for the simd implementation.
2211         * include/experimental/bits/simd_fixed_size.h: New file. Simd
2212         fixed_size ABI specific implementations.
2213         * include/experimental/bits/simd_math.h: New file. Math
2214         overloads for simd.
2215         * include/experimental/bits/simd_neon.h: New file. Simd NEON
2216         specific implementations.
2217         * include/experimental/bits/simd_ppc.h: New file. Implement bit
2218         shifts to avoid invalid results for integral types smaller than
2219         int.
2220         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
2221         ABI specific implementations.
2222         * include/experimental/bits/simd_x86.h: New file. Simd x86
2223         specific implementations.
2224         * include/experimental/bits/simd_x86_conversions.h: New file.
2225         x86 specific conversion optimizations. The conversion patterns
2226         work around missing conversion patterns in the compiler and
2227         should be removed as soon as PR85048 is resolved.
2228         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
2229         Test that all (not all fixed_size<N>, though) standard simd and
2230         simd_mask types are usable.
2231         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
2232         file. As above but with -ffast-math.
2233         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
2234         from the standard test loop. Instead use
2235         check_vect_support_and_set_flags to build simd tests with the
2236         relevant machine flags.
2238 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
2240         PR libstdc++/66414
2241         * include/bits/string_view.tcc
2242         (basic_string_view::find(const CharT*, size_type, size_type)):
2243         Optimize.
2245 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
2247         * include/bits/basic_string.h (basic_string::contains): New
2248         member functions.
2249         * include/std/string_view (basic_string_view::contains):
2250         Likewise.
2251         * include/std/version (__cpp_lib_string_contains): Define.
2252         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
2253         Remove trailing whitespace.
2254         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
2255         Likewise.
2256         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
2257         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
2258         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
2259         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
2260         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
2262 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
2264         * src/c++17/Makefile.in: Regenerate.
2266 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
2268         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
2269         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
2270         __lc_type.
2271         (const char* ctype<char>:: is): Same.
2273 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
2275         PR libstdc++/98725
2276         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
2277         write to a wide character stream if wide character support is
2278         disabled in the library.
2280 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
2282         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
2283         stringbuf not wstringbuf.
2285 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
2287         PR debug/98708
2288         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
2289         Compile with -gno-as-loc-support.
2290         * src/c++11/Makefile.in: Regenerated.
2292 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
2294         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2295         Add -fcf-protection=none to -march=i486.
2297 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
2299         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
2300         compliant.
2302 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
2304         * testsuite/30_threads/future/members/poll.cc: Calibrate
2305         iteration count.
2307 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
2309         PR libstdc++/98466
2310         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
2311         (_Node_iterator()): Make default.
2312         (_Node_const_iterator()): Make default.
2313         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
2314         iterator checks.
2315         * include/debug/safe_iterator.h
2316         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
2317         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
2318         Likewise.
2319         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
2320         _M_singular checks on input iterators.
2321         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
2322         checks.
2323         * testsuite/23_containers/deque/debug/98466.cc: New test.
2324         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
2326 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
2328         PR libstdc++/98471
2329         * include/bits/fs_path.h (__throw_conversion_error): New
2330         function to throw or abort on character conversion errors.
2331         (__wstr_from_utf8): Move definition after filesystem_error has
2332         been defined. Use __throw_conversion_error.
2333         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
2334         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
2335         (path::u8string): Likewise.
2337 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
2339         * include/std/barrier: Update copyright years. Fix whitespace.
2340         * include/std/version: Fix whitespace.
2341         * testsuite/30_threads/barrier/1.cc: Update copyright years.
2342         * testsuite/30_threads/barrier/2.cc: Likewise.
2343         * testsuite/30_threads/barrier/arrive.cc: Likewise.
2344         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
2345         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
2346         * testsuite/30_threads/barrier/completion.cc: Likewise.
2348 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
2350         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
2352 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
2354         PR libstdc++/98613
2355         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
2356         warning.
2357         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
2359 2021-01-08  Olivier Hainque  <hainque@adacore.com>
2361         * testsuite/20_util/bind/ref_neg.cc: Tweak the
2362         dg-prune-output regex for out-of-build-tree contexts.
2364 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
2366         * doc/doxygen/user.cfg.in: Add new header.
2367         * include/Makefile.am (std_headers): likewise.
2368         * include/Makefile.in: Regenerate.
2369         * include/precompiled/stdc++.h: Add new header.
2370         * include/std/barrier: New file.
2371         * include/std/version: Add __cpp_lib_barrier feature test macro.
2372         * testsuite/30_threads/barrier/1.cc: New test.
2373         * testsuite/30_threads/barrier/2.cc: Likewise.
2374         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
2375         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
2376         * testsuite/30_threads/barrier/arrive.cc: Likewise.
2377         * testsuite/30_threads/barrier/completion.cc: Likewise.
2379 2021-01-07  Patrick Palka  <ppalka@redhat.com>
2381         PR libstdc++/98384
2382         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
2383         instead of the non-standard nextupl and nextdownl.
2385 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
2387         * configure: Re-generate.
2389 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
2391         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
2393 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
2395         * ChangeLog-2020: Rotate ChangeLog.  New file.
2398 Copyright (C) 2021 Free Software Foundation, Inc.
2400 Copying and distribution of this file, with or without modification,
2401 are permitted in any medium without royalty provided the copyright
2402 notice and this notice are preserved.