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>):
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
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
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
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
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>
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
85 (__same_types): Move into namespace __detail::__variant.
86 (__check_visitor_results): Likewise. Use __invoke_result_t and
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
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>.
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
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
162 (__detail::__can_split_view, _Split::operator()): Avoid
164 (_Counted::operator()): Likewise.
165 * testsuite/std/ranges/p2367.cc: New test.
167 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
170 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
172 * include/bits/basic_string.tcc (basic_string::swap)
173 (basic_string::assign): Likewise.
174 * include/bits/deque.tcc (deque::operator=(const deque&)):
176 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
178 * include/bits/vector.tcc (vector::operator=(const vector&)):
181 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
183 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
185 * include/std/ostream (operator<<(Ostream&&, const x&)):
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:
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:
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:
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>
213 * include/experimental/socket (__basic_socket_impl::set_option)
214 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
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>
224 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
225 Use new effective-target keyword.
226 * testsuite/experimental/net/internet/address/v4/cons.cc:
228 * testsuite/experimental/net/internet/address/v4/creation.cc:
230 * testsuite/experimental/net/internet/address/v4/members.cc:
232 * testsuite/experimental/net/internet/address/v6/members.cc:
234 * testsuite/experimental/net/internet/resolver/base.cc:
236 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
238 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
240 * testsuite/experimental/net/internet/socket/opt.cc:
242 * testsuite/experimental/net/internet/tcp.cc:
244 * testsuite/experimental/net/internet/udp.cc:
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>
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
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>
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
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:
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
294 * doc/Makefile.in: Regenerate.
296 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
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>
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
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>
324 * include/std/ranges (join_view::_Iterator::operator++): Correct
325 the return type of the lambda to avoid returning a copy of
327 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
329 2021-04-27 Jakub Jelinek <jakub@redhat.com>
332 2021-04-22 Jakub Jelinek <jakub@redhat.com>
335 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
337 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
340 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
342 * include/experimental/internet (address_v6::bytes_type): Adjust
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>
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
368 * testsuite/experimental/net/internet/socket/opt.cc: Check for
369 <netinet/in.h> and <netinet/tcp.h> before using types from
372 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
375 * include/experimental/internet (resolver_base::flags):
376 Define overloaded operators as hidden friends.
377 * include/experimental/socket (socket_base::message_flags):
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>
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>
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>
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
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
469 (socket_base::message_flags): Make all operators constexpr and
471 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
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:
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>
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>
512 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
514 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
517 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
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:
531 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
532 Jonathan Wakely <jwakely@redhat.com>
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>
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
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>
593 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
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
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
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>
688 * include/std/charconv (__cpp_lib_to_chars): Define
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:
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>
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>
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>
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:
768 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
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>
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,
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>&,
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>&,
793 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
794 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
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>
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
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
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
848 (elements_view::operator++): Remove unnecessary constraint
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
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:
878 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
880 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
883 2021-04-08 Patrick Palka <ppalka@redhat.com>
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>
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
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
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.
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):
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):
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>
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
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
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:
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
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
1137 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
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:
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:
1178 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
1180 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
1182 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
1184 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
1186 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
1188 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
1190 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
1192 2021-03-25 Jakub Jelinek <jakub@redhat.com>
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
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:
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>
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:
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>
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):
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>
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'
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
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>
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>
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):
1384 * src/filesystem/dir-common.h (is_permission_denied_error): New
1387 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
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>
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>
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>
1457 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
1458 Make storage larger than required. Verify no write to the last
1460 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
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:
1468 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1469 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1472 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1474 * include/experimental/bits/simd.h: Replace reserved _X, _B by
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>
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>
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>
1512 * include/std/chrono (year_month_day::_S_from_days): Cast long
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>
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
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):
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
1554 * testsuite/std/time/year_month_day/3.cc: New test.
1556 2021-02-24 Patrick Palka <ppalka@redhat.com>
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>
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):
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>
1596 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
1597 first argument is null.
1599 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1602 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
1605 2021-02-23 Jakub Jelinek <jakub@redhat.com>
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
1613 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1616 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
1618 2021-02-23 Patrick Palka <ppalka@redhat.com>
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>
1646 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
1648 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
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
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
1687 * testsuite/experimental/net/internet/address/v4/members.cc:
1688 Remove unused variables.
1689 * testsuite/experimental/net/internet/address/v6/members.cc:
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):
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:
1717 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
1719 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
1721 * testsuite/27_io/basic_stringstream/str/char/2.cc:
1723 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
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>
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
1739 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
1741 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
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>
1750 * doc/xml/manual/status_cxx2011.xml: Document when support
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>
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
1766 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
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:
1776 * testsuite/27_io/filesystem/path/generation/relative.cc:
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:
1825 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
1828 * include/std/coroutine (coroutine_handle<P>::from_address): Add
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>
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
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:
1852 * testsuite/19_diagnostics/error_condition/operators/less.cc:
1854 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
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
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
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
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
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'
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
1981 (__intrin_bitcast): Allow casting to & from vector & intrinsic
1983 (__intrinsic_type): Explicitly specialize for NEON intrinsic
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:
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>
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
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
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
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
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
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
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
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
2129 * testsuite/experimental/simd/tests/casts.cc: New file. Test
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
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
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
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
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.
2174 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
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
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
2196 * include/Makefile.am: Add new headers.
2197 * include/Makefile.in: Regenerate.
2198 * include/experimental/simd: New file. New header for
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
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
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
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>
2241 * include/bits/string_view.tcc
2242 (basic_string_view::find(const CharT*, size_type, size_type)):
2245 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
2247 * include/bits/basic_string.h (basic_string::contains): New
2249 * include/std/string_view (basic_string_view::contains):
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:
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
2271 (const char* ctype<char>:: is): Same.
2273 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
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>
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
2302 2021-01-14 Alexandre Oliva <oliva@adacore.com>
2304 * testsuite/30_threads/future/members/poll.cc: Calibrate
2307 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
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
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):
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
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>
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>
2355 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
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>
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.