1 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
4 Improve static_assert messages.
5 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
6 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
8 2021-05-06 Patrick Palka <ppalka@redhat.com>
10 * include/std/ranges (filter_view::_Iterator::base): Make the
11 const& overload unconstrained and return a const reference as
12 per LWG 3533. Make unconditionally noexcept.
13 (transform_view::_Iterator::base): Likewise.
14 (elements_view::_Iterator::base): Likewise.
16 2021-05-06 Patrick Palka <ppalka@redhat.com>
18 * include/bits/stl_iterator.h (move_iterator::base): Make the
19 const& overload unconstrained and return a const reference as
20 per LWG 3391. Make unconditionally noexcept.
21 (counted_iterator::base): Likewise.
22 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
23 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
24 has_member_base concept to decay-copy the result of base().
26 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
28 * include/std/type_traits (remove_cvref_t): Define in terms of
30 * testsuite/20_util/remove_cvref/value.cc: Check alias.
32 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
35 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
37 * include/std/charconv (__from_chars_alnum): Pass unsigned
40 2021-05-05 Patrick Palka <ppalka@redhat.com>
42 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
43 Remove constraints on this partial specialization.
44 * include/std/ranges (enable_borrowed_range<iota_view>):
47 2021-05-05 Patrick Palka <ppalka@redhat.com>
49 * include/std/ranges (transform_view::_Iterator::iter_swap):
50 Remove as per LWG 3520.
51 (join_view::_Iterator::iter_swap): Add indirectly_swappable
52 constraint as per LWG 3517.
54 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
56 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
58 * testsuite/20_util/function_objects/invoke/version.cc: New test.
60 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
62 * include/std/charconv (__from_chars_alnum): Pass unsigned
65 2021-05-05 Corentin Gay <gay@adacore.com>
67 * acinclude.m4: Add VxWorks-specific case for the
68 configuration of ctypes.
69 * configure: Regenerate.
70 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
72 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
73 * config/os/vxworks/ctype_configure_char.cc: Likewise.
74 * config/os/vxworks/ctype_inline.h: Likewise.
75 * testsuite/28_regex/traits/char/isctype.cc: Defines
76 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
77 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
79 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
81 * include/std/future (promise::set_value): Check for existence
82 of shared state before dereferncing it.
83 (promise::set_exception, promise::set_value_at_thread_exit)
84 (promise::set_exception_at_thread_exit): Likewise.
85 (promise<R&>::set_value, promise<R&>::set_exception)
86 (promise<R&>::set_value_at_thread_exit)
87 (promise<R&>::set_exception_at_thread_exit): Likewise.
88 (promise<void>::set_value, promise<void>::set_exception)
89 (promise<void>::set_value_at_thread_exit)
90 (promise<void>::set_exception_at_thread_exit): Likewise.
91 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
92 Remove unused variable.
94 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
96 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
97 Do not do arithmetic on null pointer.
99 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
101 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
102 (find_key_pointer(key_const_reference, false_type))
103 (find_key_pointer(key_const_reference, true_type)): Do not
104 dereference null pointer.
106 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
108 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
110 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
111 non-zero value to null pointer.
112 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
113 Use past-the-end iterator for result.
114 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
115 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
117 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
120 * include/std/variant (__get_t): New alias template yielding the
121 return type of std::get<N> on a variant.
122 (__visit_result_t): New alias template yielding the result of
124 (__same_types): Move into namespace __detail::__variant.
125 (__check_visitor_results): Likewise. Use __invoke_result_t and
127 (__check_visitor_result): Remove.
128 (visit): Use __visit_result_t for return type.
129 * testsuite/20_util/variant/100384.cc: New test.
131 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
133 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
134 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
135 * config.h.in: Regenerate.
136 * configure: Regenerate.
137 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
138 * include/bits/random.h (_Select_uint_least_t<s, 1>):
139 Use __SIZEOF_INT128__ to decide whether to use __int128.
140 * include/std/charconv (__to_chars_unsigned_type): Likewise.
142 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
144 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
145 * doc/html/manual/facets.html: Regenerate.
147 2021-04-30 Patrick Palka <ppalka@redhat.com>
149 * include/std/ranges (__detail::__non_propating_cache): Define
151 (join_view): Remove constraints on the value and reference types
152 of the wrapped iterator type as per P2328.
153 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
154 (join_view::_Iterator::operator++): Likewise.
155 (join_view::_M_inner): Use __non_propating_cache as per P2328.
156 Remove now-redundant use of __maybe_present_t.
157 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
160 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
162 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
163 Only define for C++17 and later.
164 * include/std/version (__cpp_lib_semaphore): Fix condition
165 to match the one in <semaphore>.
167 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
169 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
170 * config.h.in: Regenerate.
171 * configure: Regenerate.
172 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
173 * include/bits/postypes.h: Remove include of <stdint.h> and
174 definition/undefinition of the __STDC_LIMIT_MACROS and
175 __STDC_CONSTANT_MACROS macros.
176 (streamoff): Use __INT64_TYPE__ if defined.
178 2021-04-30 Patrick Palka <ppalka@redhat.com>
180 * include/std/ranges (split_view::_InnerIter::operator++):
181 Depend on _Base instead of _Vp directly, as per LWG 3532.
183 2021-04-30 Patrick Palka <ppalka@redhat.com>
185 * include/bits/ranges_util.h (subrange::subrange): Avoid
186 list-initialization in delegating constructor.
187 * include/std/ranges (single_view): Replace implicit guide
188 with explicit deduction guide that decays its argument.
189 (_Single::operator()): Avoid CTAD when constructing the
191 (_Iota::operator()): Avoid list-initialization.
192 (__detail::__can_filter_view, _Filter::operator()): Likewise.
193 (__detail::__can_transform_view, _Transform::operator()): Likewise.
194 (take_view::begin): Likewise.
195 (__detail::__can_take_view, _Take::operator()): Likewise.
196 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
197 (__detail::__can_drop_view, _Drop::operator()): Likewise.
198 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
199 (split_view::split_view): Use views::single when initializing
201 (__detail::__can_split_view, _Split::operator()): Avoid
203 (_Counted::operator()): Likewise.
204 * testsuite/std/ranges/p2367.cc: New test.
206 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
209 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
211 * include/bits/basic_string.tcc (basic_string::swap)
212 (basic_string::assign): Likewise.
213 * include/bits/deque.tcc (deque::operator=(const deque&)):
215 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
217 * include/bits/vector.tcc (vector::operator=(const vector&)):
220 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
222 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
224 * include/std/ostream (operator<<(Ostream&&, const x&)):
226 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
227 Adjust dg-error pattern.
228 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
230 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
231 is_extractable trait to replace std::__is_extractable. Make it
232 work with rvalue streams as well as lvalues, to replace f() and
233 g() helper functions.
234 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
236 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
237 Define is_insertable trait to replace std::__is_insertable. Make
238 it work with rvalue streams as well as lvalues, to replace f()
239 and g() helper functions.
240 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
242 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
243 errors from new constraints.
244 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
245 which are no longer expected to compile.
246 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
247 Verify LWG 1203 changes.
249 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
252 * include/experimental/socket (__basic_socket_impl::set_option)
253 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
255 * testsuite/experimental/net/socket/socket_base.cc: CHeck
256 for <sys/socket.h> not <socket.h>.
258 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
263 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
264 Use new effective-target keyword.
265 * testsuite/experimental/net/internet/address/v4/cons.cc:
267 * testsuite/experimental/net/internet/address/v4/creation.cc:
269 * testsuite/experimental/net/internet/address/v4/members.cc:
271 * testsuite/experimental/net/internet/address/v6/members.cc:
273 * testsuite/experimental/net/internet/resolver/base.cc:
275 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
277 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
279 * testsuite/experimental/net/internet/socket/opt.cc:
281 * testsuite/experimental/net/internet/tcp.cc:
283 * testsuite/experimental/net/internet/udp.cc:
285 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
286 New proc to check net_ts_ip et.
288 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
291 * testsuite/20_util/pair/requirements/structural.cc: New test.
293 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
295 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
296 new definitions for constructors and assignment operators using
297 concepts for constraints.
298 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
300 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
301 expected error messages to also match C++20 errors.
303 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
306 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
307 Combine and replace with ...
308 (_PCC::_DeprConsPair): New SFINAE helper function.
309 (pair): Merge preprocessor blocks so that all C++03 members
310 are defined together at the end.
311 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
312 Replace _T1 and _T2 parameters with __null_ptr_constant and
314 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
315 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
316 * testsuite/20_util/pair/cons/99957.cc: New test.
318 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
320 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
321 * include/std/version (__cpp_lib_constexpr_string): Define.
322 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
323 Check for __cpp_lib_constexpr_string.
324 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
326 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
328 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
330 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
331 dealing with errors. Use '@' to prevent shell command being
333 * doc/Makefile.in: Regenerate.
335 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
338 * include/bits/std_thread.h (thread::hardware_concurrency): Add
339 missing noexcept to inline definition for non-gthreads targets.
341 2021-04-28 Patrick Palka <ppalka@redhat.com>
347 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
348 the __value_comp lambda an explicit bool return type.
349 (__is_permutation_fn::operator()): Give the __proj_scan local
350 variable auto&& return type. Give the __comp_scan lambda an
351 explicit bool return type.
352 (__remove_fn::operator()): Give the __pred lambda an explicit
354 (__partition_fn::operator()): Don't std::move __first twice
355 when returning an empty subrange.
356 (__min_fn::operator()): Don't std::move __comp.
357 (__max_fn::operator()): Likewise.
358 (__minmax_fn::operator()): Likewise.
360 2021-04-27 Patrick Palka <ppalka@redhat.com>
363 * include/std/ranges (join_view::_Iterator::operator++): Correct
364 the return type of the lambda to avoid returning a copy of
366 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
368 2021-04-27 Jakub Jelinek <jakub@redhat.com>
371 2021-04-22 Jakub Jelinek <jakub@redhat.com>
374 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
376 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
379 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
381 * include/experimental/internet (address_v6::bytes_type): Adjust
383 (basic_endpoint): Define _M_is_v6() to put all checks for
384 AF_INET6 in one place.
385 (basic_endpoint::resize): Simplify.
386 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
387 (operator!=(const tcp&, const tcp&)): Likewise.
388 (operator==(const udp&, const udp&)): Likewise.
389 (operator!=(const udp&, const udp&)): Likewise.
390 * testsuite/experimental/net/internet/tcp.cc: New test.
391 * testsuite/experimental/net/internet/udp.cc: New test.
393 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
396 * include/experimental/internet (resolver_errc, resolver_category())
397 (make_error_code, make_error_condition): Define unconditionally,
398 only make enumerators and use of gai_strerror depend on the
399 availability of <netdb.h>.
400 (address_v4::to_string): Use correct constant for string length.
401 (address_v4::to_string, address_v6::to_string): Define
402 unconditionally, throw if unsupported.
403 (make_address_v4, make_address_v6): Define unconditionally.
404 Return an error if unsupported.
405 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
407 * testsuite/experimental/net/internet/socket/opt.cc: Check for
408 <netinet/in.h> and <netinet/tcp.h> before using types from
411 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
414 * include/experimental/internet (resolver_base::flags):
415 Define overloaded operators as hidden friends.
416 * include/experimental/socket (socket_base::message_flags):
419 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
421 * include/experimental/internet (tcp::no_delay, v6_only)
422 (unicast::hops, multicast::hops, multicast::enable_loopback):
423 Change access of base class and static data members. Add
424 using-declaration for __socket_crtp::operator=(_Tp).
425 (multicast::__mcastopt): New type.
426 (multicast::join_group, multicast::leave_group): Derive from
427 __mcastopt for common implementation.
428 * include/experimental/socket: Add comment.
429 * testsuite/experimental/net/internet/socket/opt.cc: New test.
430 * testsuite/experimental/net/socket/socket_base.cc: Check for
431 protected constructor/destructor of socket_base. Check for
432 explicit constructors of socket option classes.
434 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
436 * include/experimental/bits/net.h (__socket_base): Add
437 bool template parameter to allow BooleanSocketOption and
438 IntegerSocketOption to have different __socket_base<int>
440 (__socket_base<bool>): Adjust base class.
441 (__socket_base<int>): Add partial specialization.
442 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
443 * include/experimental/socket (socket_base::broadcast)
444 (socket_base::debug, socket_base::do_not_route)
445 (socket_base::keep_alive, socket_base::linger)
446 (socket_base::out_of_band_inline)
447 (socket_base::receive_buffer_size)
448 (socket_base::receive_low_watermark)
449 (socket_base::reuse_address, socket_base::send_buffer_size)
450 (socket_base::send_low_watermark): Add using-declaration for
451 __socket_crtp::operator=(_Tp).
452 * testsuite/experimental/net/socket/socket_base.cc: Check
453 properties of socket option types.
455 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
457 * include/experimental/internet (resolver_base::flags): Remove
458 enumerators. Initialize constants directly with desired values.
459 Make all operators constexpr and noexcept.
460 * testsuite/experimental/net/internet/resolver/base.cc: Use
461 __gnu_test::test_bitmask_values for bitmask type. Check
462 construction and destruction is protected.
464 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
466 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
468 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
471 * include/experimental/internet (net::ip::make_error_code)
472 (net::ip::make_error_condition, net::ip::make_network_v4)
473 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
475 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
477 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
478 (add_options_for_libatomic): Use atomic_link_flags.
480 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
483 * include/experimental/io_context (io_context): Define
484 dummy_pollfd type so that most member functions still compile
485 without <poll.h> and struct pollfd.
487 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
489 * include/experimental/io_context (io_context::async_wait): Add
491 * include/experimental/socket (basic_socket::async_connect):
492 Cast wait_type constant to int.
493 (basic_datagram_socket::async_receive): Likewise.
494 (basic_datagram_socket::async_receive_from): Likewise.
495 (basic_datagram_socket::async_send): Likewise.
496 (basic_datagram_socket::async_send_to): Likewise.
497 (basic_stream_socket::async_receive): Likewise.
498 (basic_stream_socket::async_send): Likewise. Use io_context
499 parameter directly, instead of via an executor.
500 (basic_socket_acceptor::async_accept): Likewise.
502 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
504 * include/experimental/socket (socket_base::shutdown_type):
505 (socket_base::wait_type, socket_base::message_flags):
506 Remove enumerators. Initialize constants directly with desired
508 (socket_base::message_flags): Make all operators constexpr and
510 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
512 * testsuite/experimental/net/socket/socket_base.cc: New test.
514 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
516 * config/os/aix/atomicity.h: Delete.
518 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
520 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
521 Handle system_clock as well as steady_clock.
522 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
523 * testsuite/30_threads/semaphore/try_acquire_until.cc:
526 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
528 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
529 options for libatomic.
531 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
533 * config/os/gnu-linux/os_defines.h: Fix type in comment.
535 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
538 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
539 is not an array type.
540 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
541 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
543 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
545 * include/bits/atomic_wait.h: Always notify waiters in the
546 case of 'bare' address notification.
548 2021-04-22 Jakub Jelinek <jakub@redhat.com>
551 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
553 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
556 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
559 * include/bits/semaphore_base.h: Remove #error.
560 * include/std/semaphore: Do not define anything unless one of
561 the implementations is available.
563 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
565 * include/bits/semaphore_base.h: Always reload __old in
566 __atomic_semaphore::_S_do_try_acquire().
567 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
570 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
571 Jonathan Wakely <jwakely@redhat.com>
574 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
575 * python/Makefile.in: Regenerate.
577 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
579 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
580 member to __platform_wait.
582 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
584 * include/std/latch: Replace tab characters in license text.
585 * include/std/semaphore: Likewise.
587 2021-04-21 Jakub Jelinek <jakub@redhat.com>
590 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
591 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
592 * configure: Regenerated.
593 * config.h.in: Regenerated.
595 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
597 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
598 test for targets not using futexes for semaphores.
599 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
600 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
601 Disable for all targets.
603 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
605 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
606 * include/Makefile.in: Regenerate.
607 * include/bits/this_thread_sleep.h: New file.
608 * include/bits/atomic_base.h: Adjust all calls
609 to __atomic_wait/__atomic_notify for new call signatures.
610 * include/bits/atomic_timed_wait.h: Extensive rewrite.
611 * include/bits/atomic_wait.h: Likewise.
612 * include/bits/semaphore_base.h: Adjust all calls
613 to __atomic_wait/__atomic_notify for new call signatures.
614 * include/std/atomic: Likewise.
615 * include/std/barrier: Likewise.
616 * include/std/latch: Likewise.
617 * include/std/semaphore: Likewise.
618 * include/std/thread (this_thread::sleep_for)
619 (this_thread::sleep_until): Move to new header.
620 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
622 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
623 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
624 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
625 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
626 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
627 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
629 2021-04-20 Patrick Palka <ppalka@redhat.com>
632 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
634 (move_iterator): Derive from the above in C++20 in order to
635 conditionally define iterator_category as per P2259.
636 (move_iterator::__base_cat): No longer used, so remove.
637 (move_iterator::iterator_category): Remove in C++20.
638 (__detail::__common_iter_use_postfix_proxy): Define.
639 (common_iterator::_Proxy): Rename to ...
640 (common_iterator:__arrow_proxy): ... this.
641 (common_iterator::__postfix_proxy): Define as per P2259.
642 (common_iterator::operator->): Adjust.
643 (common_iterator::operator++): Adjust as per P2259.
644 (iterator_traits<common_iterator>::_S_iter_cat): Define.
645 (iterator_traits<common_iterator>::iterator_category): Change as
647 (__detail::__counted_iter_value_type): Define.
648 (__detail::__counted_iter_concept): Define.
649 (__detail::__counted_iter_cat): Define.
650 (counted_iterator): Derive from the above three classes in order
651 to conditionally define value_type, iterator_concept and
652 iterator category respectively as per P2259.
653 (counted_iterator::operator->): Define as per P2259.
654 (incrementable_traits<counted_iterator>): Remove as per P2259.
655 (iterator_traits<counted_iterator>): Adjust as per P2259.
656 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
657 (iota_view::_Iterator): Derive from the above in order to
658 conditionally define iterator_category as per P2259.
659 (iota_view::_S_iter_cat): Rename to ...
660 (iota_view::_S_iter_concept): ... this.
661 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
662 (iota_view::iterator_category): Remove.
663 (__detail::__filter_view_iter_cat): Define.
664 (filter_view::_Iterator): Derive from the above in order to
665 conditionally define iterator_category as per P2259.
666 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
667 (filter_view::_Iterator::iterator_category): Remove.
668 (transform_view::_Base): Define.
669 (transform_view::__iter_cat): Define.
670 (transform_view::_Iterator): Derive from the above in order to
671 conditionally define iterator_category as per P2259.
672 (transform_view::_Iterator::_Base): Just alias
673 transform_view::_Base.
674 (transform_view::_Iterator::_S_iter_cat): Move to struct
675 transform_view::__iter_cat.
676 (transform_view::_Iterator::iterator_category): Remove.
677 (transform_view::_Sentinel::_Base): Just alias
678 transform_view::_Base.
679 (join_view::_Base): Define.
680 (join_view::_Outer_iter): Define.
681 (join_view::_Inner_iter): Define.
682 (join_view::_S_ref_is_glvalue): Define.
683 (join_view::__iter_cat): Define.
684 (join_view::_Iterator): Derive from it in order to conditionally
685 define iterator_category as per P2259.
686 (join_view::_Iterator::_Base): Just alias join_view::_Base.
687 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
688 join_view::_S_ref_is_glvalue.
689 (join_view::_Iterator::_S_iter_cat): Move to struct
690 transform_view::__iter_cat.
691 (join_view::_Iterator::_Outer_iter): Just alias
692 join_view::_Outer_iter.
693 (join_view::_Iterator::_Inner_iter): Just alias
694 join_view::_Inner_iter.
695 (join_view::_Iterator::iterator_category): Remove.
696 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
697 (__detail::__split_view_outer_iter_cat): Define.
698 (__detail::__split_view_inner_iter_cat): Define.
699 (split_view::_Base): Define.
700 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
701 in order to conditionally define iterator_category as per P2259.
702 (split_view::_Outer_iter::iterator_category): Remove.
703 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
704 in order to conditionally define iterator_category as per P2259.
705 (split_view::_Inner_iter::_S_iter_cat): Move to
706 __split_view_inner_iter_cat.
707 (split_view::_Inner_iter::iterator_category): Remove.
708 (elements_view::_Base): Define.
709 (elements_view::__iter_cat): Define.
710 (elements_view::_Iterator): Derive from the above in order to
711 conditionall define iterator_category as per P2259.
712 (elements_view::_Iterator::_Base): Just alias
713 elements_view::_Base.
714 (elements_view::_Iterator::_S_iter_concept)
715 (elements_view::_Iterator::iterator_concept): Define as per
717 (elements_view::_Iterator::iterator_category): Remove.
718 (elements_view::_Sentinel::_Base): Just alias
719 elements_view::_Base.
720 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
721 Adjust constraints on iterator_traits<counted_iterator>.
722 * testsuite/std/ranges/p2259.cc: New test.
724 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
727 * include/std/charconv (__cpp_lib_to_chars): Define
729 * include/std/version (__cpp_lib_to_chars): Likewise..
730 * testsuite/20_util/from_chars/4.cc: Only check feature test
731 macro, not _GLIBCXX_HAVE_USELOCALE.
732 * testsuite/20_util/from_chars/5.cc: Likewise.
733 * testsuite/20_util/from_chars/6.cc: Likewise.
734 * testsuite/20_util/to_chars/long_double.cc: Likewise.
736 2021-04-20 Jakub Jelinek <jakub@redhat.com>
738 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
739 versions with _IEEE128_ substring are found, set ieee_version_found
740 to true. Ignore missing symbols with _IEEE128_ in version name if
741 !ieee_version_found. Use i->first as version_name instead of
742 i->second.version_name if the latter is empty.
743 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
745 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
747 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
750 2021-04-17 Jakub Jelinek <jakub@redhat.com>
752 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
753 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
755 2021-04-17 Jakub Jelinek <jakub@redhat.com>
757 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
758 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
759 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
760 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
761 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
762 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
764 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
766 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
767 add libatomic options for 32-bit sparc*-*-linux-gnu.
769 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
772 * libsupc++/Makefile.am: Add atomicity.cc here.
773 * src/c++98/Makefile.am: Remove it from here.
774 * libsupc++/Makefile.in: Regenerate.
775 * src/c++98/Makefile.in: Regenerate.
776 * testsuite/18_support/exception_ptr/96657.cc: New test.
778 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
781 * include/std/bit: Only include <ext/numeric_traits.h> for
782 hosted build, use <limits> otherwise.
784 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
786 * doc/xml/manual/backwards_compatibility.xml: Remove porting
787 notes for libg++ and libstdc++-v2, and bibliography.
788 * doc/html/*: Regenerated.
790 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
793 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
794 Remove helper concept.
795 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
796 deduction guides, as per LWG 3404.
797 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
798 template argument deduction fails.
800 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
802 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
803 Adjust expected error for C++20 mode.
804 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
807 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
810 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
811 standard headers and XFAIL for effective-target c++20.
813 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
816 * include/debug/helper_functions.h (__can_advance(_InputIterator,
817 const std::pair<_Diff, _Distance_precision>&, int)): New.
818 (__can_advance(const _Safe_iterator<>&,
819 const std::pair<_Diff, _Distance_precision>&, int)): New.
820 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
822 (__glibcxx_check_can_increment_range): Adapt to use latter.
823 (__glibcxx_check_can_decrement_range): Likewise.
824 * include/debug/safe_iterator.h
825 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
827 (__can_advance(const _Safe_iterator<>&,
828 const std::pair<_Diff, _Distance_precision>&, int)): New.
829 * include/debug/safe_iterator.tcc
830 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
832 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
833 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
835 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
836 (__copy_move_backward_a): Likewise.
837 (__equal_aux): Likewise.
838 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
839 const std::pair<_Diff, _Distance_precision>&, int)): New.
840 (__can_advance(const std::move_iterator<>&,
841 const std::pair<_Diff, _Distance_precision>&, int)): New.
842 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
844 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
847 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
848 to be a valid constexpr function in C++11.
849 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
851 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
853 * include/bits/fs_fwd.h: Fix doxygen group command.
854 * include/bits/streambuf_iterator.h: Likewise.
855 * include/bits/uses_allocator_args.h: Likewise.
856 * include/std/memory: Likewise.
857 * include/tr1/complex: Likewise.
859 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
861 * include/bits/basic_string.h: Tweak doxygen comment.
863 2021-04-08 Patrick Palka <ppalka@redhat.com>
865 * include/std/ranges (__detail::find): Define.
866 (split_view::_OuterIter::operator++): Apply proposed resolution
868 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
870 2021-04-08 Patrick Palka <ppalka@redhat.com>
872 * include/std/ranges (__detail::find_if): Simplify.
873 (__detail::find_if_not): Likewise.
874 (__detail::min): Remove.
875 (__detail::mismatch): Simplify.
876 (take_view::size): Use std::min instead of __detail::min.
878 2021-04-08 Patrick Palka <ppalka@redhat.com>
880 * include/std/ranges (__detail::__returnable_element): New
882 (elements_view): Use this concept in its constraints. Add
883 missing private access specifier.
884 (elements_view::_S_get_element): Define as per LWG 3502.
885 (elements_view::operator*, elements_view::operator[]): Use
887 (elements_view::operator++): Remove unnecessary constraint
889 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
891 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
893 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
894 out-of-memory error in log file.
895 * doc/Makefile.in: Regenerate.
897 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
899 * configure: Regenerate.
901 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
903 * include/bits/random.h: Fix doxygen group commands.
904 * include/bits/regex_constants.h: Likewise.
905 * include/tr1/random.h: Likewise.
907 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
909 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
910 New function to determine noexcept-specifier for move
912 (_Hashtable): Use _S_nothrow_move() on move constructors.
913 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
914 Correct static assertion message.
915 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
917 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
919 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
922 2021-04-08 Patrick Palka <ppalka@redhat.com>
925 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
926 on targets without a large long double. XFAIL the execution on
927 targets with a non-conforming printf.
929 2021-04-08 Patrick Palka <ppalka@redhat.com>
932 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
933 (__adaptor::__adaptor_invocable): New concept.
934 (__adaptor::__adaptor_partial_app_viable): New concept.
935 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
936 non-template base class.
937 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
939 (__adaptor::_Partial): New class template that represents
940 partial application of a range adaptor non-closure.
941 (__adaptor::__pipe_invocable): New concept.
942 (__adaptor::_Pipe): New class template.
943 (__detail::__can_ref_view): New concept.
944 (__detail::__can_subrange): New concept.
945 (all): Replace the lambda here with ...
946 (_All): ... this functor. Add appropriate constraints.
947 (__detail::__can_filter_view): New concept.
948 (filter, _Filter): As in all/_All.
949 (__detail::__can_transform): New concept.
950 (transform, _Transform): As in all/_All.
951 (__detail::__can_take_view): New concept.
952 (take, _Take): As in all/_All.
953 (__detail::__can_take_while_view): New concept.
954 (take_while, _TakeWhile): As in all/_All.
955 (__detail::__can_drop_view): New concept.
956 (drop, _Drop): As in all/_All.
957 (__detail::__can_drop_while_view): New concept.
958 (drop_while, _DropWhile): As in all/_All.
959 (__detail::__can_join_view): New concept.
960 (join, _Join): As in all/_All.
961 (__detail::__can_split_view): New concept.
962 (split, _Split): As in all/_All. Rename template parameter
964 (__detail::__already_common): New concept.
965 (__detail::__can_common_view): New concept.
966 (common, _Common): As in all/_All.
967 (__detail::__can_reverse_view): New concept.
968 (reverse, _Reverse): As in all/_All.
969 (__detail::__can_elements_view): New concept.
970 (elements, _Elements): As in all/_All.
971 (keys, values): Adjust.
972 * testsuite/std/ranges/adaptors/99433.cc: New test.
973 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
974 adding empty range adaptor closure objects to a pipeline doesn't
975 increase the size of the pipeline.
977 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
978 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
979 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
980 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
981 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
982 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
983 * testsuite/std/ranges/adaptors/p2281.cc: New test.
984 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
985 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
988 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
989 expected error message.
990 (test02): Likewise. Extend test.
991 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
992 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
993 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
996 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
998 * include/std/string_view: Adjust Doxygen @file comment.
1000 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
1002 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
1003 specialization to not match incomplete enum types. Use a
1004 requires-expression instead of instantiating is_convertible.
1005 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
1006 * testsuite/20_util/is_scoped_enum/value.cc: Check with
1007 incomplete types and opaque-enum-declarations.
1009 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
1012 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
1013 non-const member on _M_pathname, to avoid copy-on-write.
1014 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
1015 Check construction from strings that might be shared.
1017 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
1019 * include/bits/move.h (forward, move, move_if_noexcept)
1020 (addressof): Add _GLIBCXX_NODISCARD.
1021 * include/bits/ranges_cmp.h (identity::operator()): Add
1022 nodiscard attribute.
1023 * include/c_global/cstddef (to_integer): Likewise.
1024 * include/std/bit (bit_cast): Likewise.
1025 * include/std/utility (as_const, to_underlying): Likewise.
1027 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
1029 * include/bits/move.h (forward): Change static_assert message
1030 to be unambiguous about what must be true.
1031 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1032 * testsuite/20_util/forward/f_neg.cc: Likewise.
1034 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
1036 * include/bits/alloc_traits.h: Use markdown for code font.
1037 * include/bits/basic_string.h: Fix @param names.
1038 * include/bits/max_size_type.h: Remove period after @file.
1039 * include/bits/regex.h: Fix duplicate @retval names, and rename.
1040 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
1041 group open to match existing group close.
1042 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
1045 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
1047 * include/bits/atomic_base.h: Fix doxygen group close.
1048 * include/bits/basic_ios.h: Likewise.
1049 * include/bits/forward_list.h: Likewise.
1050 * include/bits/fs_dir.h: Likewise.
1051 * include/bits/fs_ops.h: Likewise.
1052 * include/bits/fs_path.h: Likewise.
1053 * include/bits/functional_hash.h: Likewise.
1054 * include/bits/gslice.h: Likewise.
1055 * include/bits/gslice_array.h: Likewise.
1056 * include/bits/hashtable_policy.h: Likewise.
1057 * include/bits/indirect_array.h: Likewise.
1058 * include/bits/locale_classes.h: Likewise.
1059 * include/bits/locale_facets.h: Likewise.
1060 * include/bits/locale_facets_nonio.h: Likewise.
1061 * include/bits/mask_array.h: Likewise.
1062 * include/bits/refwrap.h: Likewise.
1063 * include/bits/regex.h: Likewise.
1064 * include/bits/regex_automaton.h: Likewise.
1065 * include/bits/regex_compiler.h: Likewise.
1066 * include/bits/regex_constants.h: Likewise.
1067 * include/bits/regex_error.h: Likewise.
1068 * include/bits/regex_executor.h: Likewise.
1069 * include/bits/regex_scanner.h: Likewise.
1070 * include/bits/shared_ptr.h: Likewise.
1071 * include/bits/shared_ptr_atomic.h: Likewise.
1072 * include/bits/shared_ptr_base.h: Likewise.
1073 * include/bits/slice_array.h: Likewise.
1074 * include/bits/specfun.h: Likewise.
1075 * include/bits/std_function.h: Likewise.
1076 * include/bits/std_mutex.h: Likewise.
1077 * include/bits/stl_deque.h: Likewise.
1078 * include/bits/stl_iterator.h: Likewise.
1079 * include/bits/stl_iterator_base_types.h: Likewise.
1080 * include/bits/stl_map.h: Likewise.
1081 * include/bits/stl_multimap.h: Likewise.
1082 * include/bits/stl_multiset.h: Likewise.
1083 * include/bits/stl_numeric.h: Likewise.
1084 * include/bits/stl_pair.h: Likewise.
1085 * include/bits/stl_set.h: Likewise.
1086 * include/bits/stl_uninitialized.h: Likewise.
1087 * include/bits/stream_iterator.h: Likewise.
1088 * include/bits/streambuf_iterator.h: Likewise.
1089 * include/bits/unique_ptr.h: Likewise.
1090 * include/bits/unordered_map.h: Likewise.
1091 * include/bits/unordered_set.h: Likewise.
1092 * include/decimal/decimal: Likewise.
1093 * include/experimental/any: Likewise.
1094 * include/experimental/array: Likewise.
1095 * include/experimental/bits/fs_dir.h: Likewise.
1096 * include/experimental/bits/fs_fwd.h: Likewise.
1097 * include/experimental/bits/fs_ops.h: Likewise.
1098 * include/experimental/bits/fs_path.h: Likewise.
1099 * include/experimental/buffer: Likewise.
1100 * include/experimental/internet: Likewise.
1101 * include/experimental/optional: Likewise.
1102 * include/experimental/propagate_const: Likewise.
1103 * include/experimental/socket: Likewise.
1104 * include/ext/pb_ds/assoc_container.hpp: Likewise.
1105 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
1107 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
1108 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
1109 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
1110 * include/ext/pb_ds/exception.hpp: Likewise.
1111 * include/ext/pb_ds/priority_queue.hpp: Likewise.
1112 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
1113 * include/ext/random: Likewise.
1114 * include/std/any: Likewise.
1115 * include/std/atomic: Likewise.
1116 * include/std/bitset: Likewise.
1117 * include/std/chrono: Likewise.
1118 * include/std/complex: Likewise.
1119 * include/std/condition_variable: Likewise.
1120 * include/std/fstream: Likewise.
1121 * include/std/future: Likewise.
1122 * include/std/iostream: Likewise.
1123 * include/std/istream: Likewise.
1124 * include/std/mutex: Likewise.
1125 * include/std/numeric: Likewise.
1126 * include/std/ostream: Likewise.
1127 * include/std/ratio: Likewise.
1128 * include/std/shared_mutex: Likewise.
1129 * include/std/stdexcept: Likewise.
1130 * include/std/streambuf: Likewise.
1131 * include/std/system_error: Likewise.
1132 * include/std/thread: Likewise.
1133 * include/std/valarray: Likewise.
1134 * include/std/variant: Likewise.
1135 * include/tr1/cmath: Likewise.
1136 * include/tr1/regex: Likewise.
1137 * include/tr2/dynamic_bitset: Likewise.
1138 * libsupc++/atomic_lockfree_defines.h: Likewise.
1139 * libsupc++/exception: Likewise.
1140 * libsupc++/exception.h: Likewise.
1141 * libsupc++/exception_ptr.h: Likewise.
1142 * libsupc++/nested_exception.h: Likewise.
1144 2021-03-31 Alexandre Oliva <oliva@adacore.com>
1146 * testsuite/30_threads/future/members/poll.cc: Use faster
1147 after-ready call in the calibration loop.
1149 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
1151 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
1152 * doc/html/manual/status.html: Regenerate.
1154 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
1156 * include/debug/forward_list
1157 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
1158 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
1159 call to safe container allocator aware move constructor.
1160 * include/debug/vector (vector(vector&&, const allocator_type&)):
1161 Fix noexcept qualification.
1162 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
1163 Add allocator-extended move constructor noexceot qualification check.
1164 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
1166 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
1168 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
1170 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
1171 New helper functions and callback.
1172 (random_device::_M_init): Add 'prng' and 'all' enumerators.
1173 Replace switch with fallthrough with a series of 'if' statements.
1174 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
1176 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
1178 (random_device::_M_getval): Check for callback unconditionally
1179 and always pass _M_file pointer.
1180 * testsuite/26_numerics/random/random_device/85494.cc: Remove
1181 effective-target check. Use new random_device_available helper.
1182 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
1183 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
1184 Remove effective-target check.
1185 * testsuite/26_numerics/random/random_device/cons/default.cc:
1187 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
1188 new random_device_available helper. Test "prng" token.
1189 * testsuite/util/testsuite_random.h (random_device_available):
1190 New helper function.
1192 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
1194 * include/debug/string
1195 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
1196 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
1197 (basic_string<>::erase): Adapt to take __const_iterator.
1198 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
1199 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
1200 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
1201 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
1202 (__gnu_debug::u16string, __gnu_debug::u32string): New.
1203 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
1204 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
1205 * testsuite/util/exception/safety.h
1206 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
1207 (insert_base<__gnu_debug::basic_string<>>): Likewise.
1208 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
1209 New partial specialization.
1210 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
1211 * testsuite/21_strings/basic_string/requirements/citerators.cc:
1212 Add test on __gnu_debug::string.
1213 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
1214 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
1215 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
1217 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
1219 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
1221 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
1223 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
1225 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
1227 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
1229 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
1231 2021-03-25 Jakub Jelinek <jakub@redhat.com>
1234 * testsuite/18_support/source_location/consteval.cc (main): Adjust
1235 expected column numbers.
1236 * testsuite/18_support/source_location/1.cc (main): Likewise.
1238 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
1240 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
1242 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
1244 * testsuite/util/exception/safety.h (setup_base::generate):
1245 Support seeding random engine.
1246 (erase_point, erase_range): Adjust range of random numbers to
1247 ensure dereferenceable iterators are used where required.
1248 (generation_prohibited::run): Do not try to erase from empty
1250 * testsuite/util/testsuite_containergen.h (test_containers):
1251 Support seeding random engine.
1253 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
1255 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
1256 line with a check that uses the const being/end overloads.
1258 2021-03-23 Moritz Sichert <sichert@in.tum.de>
1260 * include/std/ranges (reverse_view::begin, reverse_view::end):
1261 Qualify make_reverse_iterator calls to avoid ADL.
1262 * testsuite/std/ranges/adaptors/reverse.cc: Test that
1263 views::reverse works when make_reverse_iterator is defined
1264 in an associated namespace.
1266 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
1268 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
1269 Do not define when compiling with Clang.
1271 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
1273 * include/std/string_view (basic_string_view(Range&&)): Define new
1274 constructor and deduction guide.
1275 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
1276 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
1278 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
1280 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
1281 Add missing 'noexcept' as per LWG 2280.
1282 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
1283 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
1284 * testsuite/24_iterators/range_access/range_access.cc: Check for
1285 expected noexcept specifiers. Check result types of generic
1286 std::begin and std::end overloads.
1287 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
1288 Check for expected noexcept specifiers.
1289 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
1292 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
1294 * include/std/type_traits (is_scoped_enum): Define.
1295 * include/std/version (__cpp_lib_is_scoped_enum): Define.
1296 * testsuite/20_util/is_scoped_enum/value.cc: New test.
1297 * testsuite/20_util/is_scoped_enum/version.cc: New test.
1299 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
1302 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
1303 std::once_flag symbols.
1304 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
1305 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
1306 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
1308 * config/abi/pre/gnu.ver: Likewise.
1309 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
1310 (struct __once_flag_compat): Remove.
1311 (_ZNSt9once_flag11_M_activateEv): Remove.
1312 (_ZNSt9once_flag9_M_finishEb): Remove.
1314 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
1317 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
1318 Revert to pthread_once_t implementation.
1319 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
1320 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
1321 (struct __once_flag_compat): New type matching the reverted
1322 implementation of once_flag using futexes.
1323 (once_flag::_M_activate): Remove, replace with ...
1324 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
1325 (once_flag::_M_finish): Remove, replace with ...
1326 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
1327 * testsuite/30_threads/call_once/66146.cc: Removed.
1329 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1331 * testsuite/17_intro/names.cc: Exclude j from the list
1332 of test symbols for Darwin.
1334 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1336 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
1337 to_chars and from_chars for long double.
1339 2021-03-15 Patrick Palka <ppalka@redhat.com>
1341 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
1343 (__max_size_type::operator++): Define.
1344 (__max_size_type::operator--): Likewise.
1345 (__max_size_type::operator<=>): Conditionally define (in place
1346 of the other comparison operators).
1347 (__max_diff_type::operator _Tp): Fix formatting.
1348 (__max_diff_type::operator++): Define.
1349 (__max_diff_type::operator--): Likewise.
1350 (__max_diff_type::operator<=>): Conditionally define (in place
1351 of the other comparison operators).
1352 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
1353 these operator overloads.
1355 2021-03-15 Caroline Tice <cmtice@google.com>
1358 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
1359 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
1360 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
1362 * src/Makefile.in: Regenerate.
1364 2021-03-11 Patrick Palka <ppalka@redhat.com>
1366 * src/c++17/floating_to_chars.cc: Simplify the file as if
1367 __SIZEOF_INT128__ is always defined.
1368 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
1369 a base-10 to_chars overload for the uint128_t class type.
1370 * src/c++17/uint128_t.h: New file.
1371 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
1372 execution FAIL on targets that have a large long double type
1375 2021-03-11 Patrick Palka <ppalka@redhat.com>
1377 * src/c++17/ryu/LOCAL_PATCHES: Update.
1378 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
1379 * src/c++17/ryu/generic_128.h: Likewise.
1380 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
1381 Use uint128_t instead of __uint128_t.
1382 (generic_binary_to_decimal): Likewise.
1384 2021-03-11 Patrick Palka <ppalka@redhat.com>
1386 * src/c++17/ryu/LOCAL_PATCHES: New file.
1388 2021-03-11 Patrick Palka <ppalka@redhat.com>
1390 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
1391 defined alias of unsigned __int128.
1392 (floating_type_traits_binary128::mantissa_t): Use uint128_t
1393 instead of unsigned __int128.
1394 (floating_type_traits<long double>::mantissa_t)
1395 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
1396 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
1397 and uint32_t explicit. Simplify the extraction of mantissa,
1398 exponent and sign bit.
1400 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1402 * include/std/barrier (barrier::arrival_token): New move-only
1403 class that encapsulates the underlying token value.
1405 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1407 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
1408 instead of unqualified() method.
1410 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1413 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
1414 Use acq_rel memory ordering.
1416 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1419 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
1420 helper function to check for permission denied errors.
1421 * src/filesystem/dir.cc (recursive_directory_iterator):
1423 * src/filesystem/dir-common.h (is_permission_denied_error): New
1426 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1429 * include/bits/random.h (normal_distribution): Use
1430 default-initializer for _M_saved and _M_saved_available.
1432 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
1434 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
1435 link with libatomic.
1436 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
1437 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
1438 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
1439 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1440 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1441 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1442 * testsuite/30_threads/barrier/completion.cc: Likewise.
1443 * testsuite/30_threads/latch/3.cc: Likewise.
1444 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
1445 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
1446 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1448 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
1451 * include/bits/align.h: Include debug/assertions.h.
1452 * include/bits/codecvt.h: Include bits/c++config.h.
1453 * include/bits/enable_special_members.h: Likewise.
1454 * include/bits/erase_if.h: Likewise.
1455 * include/bits/functional_hash.h: Include <type_traits>.
1456 * include/bits/invoke.h: Include bits/move.h.
1457 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
1458 * include/bits/parse_numbers.h: Include <type_traits>.
1459 * include/bits/predefined_ops.h: Include bits/c++config.h.
1460 * include/bits/range_access.h: Include bits/stl_iterator.h.
1461 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
1462 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
1463 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
1464 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
1465 * include/bits/unique_lock.h: Include bits/std_mutex.h.
1466 * include/debug/assertions.h: Include bits/c++config.h.
1468 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
1470 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
1471 (ranges::equal_to, ranges::not_equal_to): Do not constrain
1472 with __eq_builtin_ptr_cmp.
1473 (ranges::less, ranges::greater, ranges::less_equal)
1474 (ranges::greater_equal): Do not constrain with
1475 __less_builtin_ptr_cmp.
1476 * libsupc++/compare (compare_three_way): Do not constrain with
1477 __3way_builtin_ptr_cmp.
1478 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
1479 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
1480 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
1482 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
1484 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
1485 C++20 calendar types.
1487 2021-03-06 Jakub Jelinek <jakub@redhat.com>
1490 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
1491 two _Nd which the compiler can pattern match the rotates.
1493 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
1496 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
1497 Make storage larger than required. Verify no write to the last
1499 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
1502 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1504 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1505 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1507 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1508 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1511 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1513 * include/experimental/bits/simd.h: Replace reserved _X, _B by
1515 * include/experimental/bits/simd_builtin.h: Likewise.
1516 * include/experimental/bits/simd_x86.h: Likewise.
1518 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
1521 * include/std/chrono (year_month_day::_M_days_since_epoch()):
1522 Convert chrono::month and chrono::day to unsigned before
1523 converting to uint32_t.
1525 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1527 * include/std/chrono (year_month_day::_S_from_days): Perform
1528 all calculations with type uint32_t.
1530 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1532 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
1533 * doc/html/manual/abi.html: Regenerate.
1535 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1538 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
1539 FILE instead of FILE.
1541 2021-02-25 Andreas Schwab <schwab@suse.de>
1543 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1544 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1545 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1546 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1548 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1551 * include/std/chrono (year_month_day::_S_from_days): Cast long
1554 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1556 * include/std/utility (to_underlying): Define.
1557 * include/std/version (__cpp_lib_to_underlying): Define.
1558 * testsuite/20_util/to_underlying/1.cc: New test.
1559 * testsuite/20_util/to_underlying/version.cc: New test.
1561 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
1564 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
1565 before value to be printed.
1567 2021-02-24 Patrick Palka <ppalka@redhat.com>
1569 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
1570 Relax the condition that guards the printf code path to accept
1571 F128_type as well as long double.
1573 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1575 * include/std/chrono (year_month_day_last:day): New
1578 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1580 * include/std/chrono (year::is_leap): New implementation.
1581 * testsuite/std/time/year/2.cc: New test.
1583 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1585 * include/std/chrono (year_month_day::_M_days_since_epoch):
1587 * testsuite/std/time/year_month_day/4.cc: New test.
1589 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1591 * include/std/chrono (year_month_day::_S_from_days): New
1593 * testsuite/std/time/year_month_day/3.cc: New test.
1595 2021-02-24 Patrick Palka <ppalka@redhat.com>
1598 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
1599 (test01): Simplify verifying the nearby values by using a
1600 2-iteration loop and a dedicated output buffer to check that the
1601 nearby values are different. Factor out the printf-based
1602 verification into a local function, and check that the leading
1603 hex digits agree before comparing to the output of printf. Also
1604 verify the output by round-tripping it through from_chars.
1606 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
1609 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
1610 symbols for long double arguments mangled as 'g'.
1611 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
1612 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
1613 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
1614 Use -mabi=ibmlongdouble for floating_to_chars.cc.
1615 * src/c++17/Makefile.in: Regenerate.
1616 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
1617 New type defining type traits of IEEE binary128 format.
1618 (floating_type_traits<__float128>): Define specialization.
1619 (floating_type_traits<long double>): Define in terms of
1620 floating_type_traits_binary128 when appropriate.
1621 (floating_to_shortest_scientific): Handle __float128.
1622 (sprintf_ld): New function template for printing a long double
1623 or __ieee128 value using sprintf.
1624 (__floating_to_chars_shortest, __floating_to_chars_precision):
1626 (to_chars): Define overloads for __float128.
1628 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
1630 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
1632 2021-02-23 Martin Sebor <msebor@redhat.com>
1635 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
1636 first argument is null.
1638 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1641 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
1644 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1647 * include/bits/char_traits.h (char_traits<char>::compare): For
1648 constexpr evaluation don't call
1649 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
1652 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1655 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
1657 2021-02-23 Patrick Palka <ppalka@redhat.com>
1660 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
1661 the high- and low-order parts from an IBM long double value
1662 in an endian-agnostic way.
1664 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
1666 * include/bits/atomic_wait.h (__thread_relax()): Call
1667 __thread_yield() not __gthread_yield().
1669 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
1671 * include/bits/atomic_wait.h (__thread_yield()): Check
1672 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1673 (__thread_relax()): Use __thread_yield() instead of repeating
1674 the preprocessor checks for __gthread_yield.
1676 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
1678 * include/std/mutex (once_flag::_M_activate()): Add explicit
1679 return statement for passive case.
1680 (once_flag::_M_finish(bool)): Use reserved name for parameter.
1682 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
1685 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
1687 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1690 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
1692 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1694 * doc/xml/manual/status_cxx2014.xml: Document implementation
1695 specific properties of std::experimental::filesystem::rename.
1696 * doc/xml/manual/status_cxx2017.xml: Document implementation
1697 specific properties of std::filesystem::rename.
1698 * doc/html/*: Regenerate.
1699 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
1700 for directories on Windows.
1701 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
1702 MoveFileExW on Windows.
1703 * testsuite/27_io/filesystem/operations/rename.cc: New test.
1704 * testsuite/experimental/filesystem/operations/rename.cc: New test.
1706 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1708 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
1709 random number to the path.
1711 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1713 * include/experimental/internet (address_v6::to_string): Include
1715 * testsuite/experimental/net/internet/address/v6/members.cc:
1716 Test to_string() results.
1718 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1720 * include/experimental/internet (address_v6::any): Avoid using
1721 memcpy in constexpr function.
1722 (address_v6::loopback): Likewise.
1723 (make_address_v6): Fix missing return statements on error paths.
1724 * include/experimental/io_context: Avoid -Wdangling-else
1726 * testsuite/experimental/net/internet/address/v4/members.cc:
1727 Remove unused variables.
1728 * testsuite/experimental/net/internet/address/v6/members.cc:
1731 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1733 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
1734 Add unused attribute to parameter.
1735 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
1738 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1740 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
1741 if -fno-rtti is used.
1742 * testsuite/30_threads/async/forced_unwind.cc: Expect test
1743 to abort if -fno-rtti is used.
1745 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1747 * testsuite/util/testsuite_allocator.h (memory_resource):
1748 Remove requirement for RTTI and exceptions to be enabled.
1750 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1752 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
1753 static_cast when RTTI is disabled.
1754 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
1756 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
1758 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
1760 * testsuite/27_io/basic_stringstream/str/char/2.cc:
1762 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
1765 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1767 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
1768 as unused and only use dynamic_cast when RTTI is enabled.
1770 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1773 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
1774 Change int parameter to error_code, to match std::ios_failure.
1775 (__throw_ios_failure(const char*, int)): Construct error_code
1778 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
1780 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
1782 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
1783 macro instead of _GLIBCXX_EH_PTR_COMPAT.
1784 (operator==): Likewise.
1786 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
1789 * doc/xml/manual/status_cxx2011.xml: Document when support
1791 * doc/xml/manual/status_cxx2014.xml: Likewise.
1792 * doc/xml/manual/status_cxx2017.xml: Likewise.
1793 * doc/html/manual/status.html: Regenerate.
1795 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1798 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
1800 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1802 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
1803 (fs::remove): Use std::system_category() for error codes from
1805 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
1808 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1810 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
1811 in __MINGW32__ macro name.
1812 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
1813 * testsuite/27_io/filesystem/path/generation/proximate.cc:
1815 * testsuite/27_io/filesystem/path/generation/relative.cc:
1817 * testsuite/util/testsuite_fs.h: Likewise.
1819 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
1821 * include/bits/stl_tree.h
1822 (__has_is_transparent, __has_is_transparent_t): Move...
1823 * include/bits/stl_function.h: ...here.
1824 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
1825 (_Hashtable_base<>::_M_equals_tr): New.
1826 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
1827 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
1828 heterogeneous lookup.
1829 (_Hashtable<>::_M_find_before_node_tr): New.
1830 (_Hashtable<>::_M_find_node_tr): New.
1831 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
1832 unordered_map::contains<>, unordered_map::equal_range<>): New member function
1833 templates to perform heterogeneous lookup.
1834 (unordered_multimap::find<>, unordered_multimap::count<>,
1835 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
1836 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
1837 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
1838 (unordered_multiset::find<>, unordered_multiset::count<>,
1839 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
1840 * include/debug/unordered_map
1841 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
1842 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
1843 * include/debug/unordered_set
1844 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
1845 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
1846 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
1847 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
1848 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
1849 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
1851 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
1853 * include/bits/stl_deque.h
1854 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
1855 a null pointer test.
1857 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
1859 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
1860 test directory after making it writable again.
1861 * testsuite/experimental/filesystem/operations/remove_all.cc:
1864 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
1867 * include/std/coroutine (coroutine_handle<P>::from_address): Add
1870 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
1872 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
1873 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
1875 2021-02-09 Jakub Jelinek <jakub@redhat.com>
1878 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
1879 points to the characters moved by earlier _S_move, compute the source
1880 address using expression based on the __p pointer rather than __s
1883 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
1885 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
1886 Add comparison with same category and different values.
1887 * testsuite/19_diagnostics/error_code/operators/less.cc:
1888 Likewise. Fix comparison involving different categories.
1889 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1891 * testsuite/19_diagnostics/error_condition/operators/less.cc:
1893 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1896 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
1898 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
1899 calls with a single vaddv for aarch64.
1901 2021-02-03 Matthias Kretz <kretz@kde.org>
1903 * testsuite/Makefile.am: Warn about the workaround. Add
1904 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
1905 Improve initial user feedback from make check-simd.
1906 * testsuite/Makefile.in: Regenerated.
1908 2021-02-03 Matthias Kretz <kretz@kde.org>
1910 * include/experimental/bits/simd.h: Add __detail::_Minimum and
1911 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
1912 Add hmin and hmax overloads for simd and const_where_expression.
1913 * include/experimental/bits/simd_scalar.h
1914 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
1915 parameter const-ref to allow calling _S_reduce with an rvalue.
1916 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
1917 hmin and hmax. Since the compiler statically determined that all
1918 tests pass, repeat the test after a call to make_value_unknown.
1920 2021-02-03 Matthias Kretz <kretz@kde.org>
1922 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
1923 instruction pointer data member. Ensure that the `if (m_failed)`
1924 branch is always inlined into the calling code. The body of the
1925 conditional can still be a function call. Move the get_ip call
1926 into the verify ctor to simplify the ctor calls.
1927 (COMPARE): Don't mention the use of all_of for reduction of a
1928 simd_mask. It only distracts from the real issue.
1930 2021-02-03 Matthias Kretz <kretz@kde.org>
1932 * testsuite/experimental/simd/driver.sh: Abstract reading test
1933 options into read_src_option function. Read skip, only,
1934 expensive, and xfail via read_src_option. Add timeout and
1935 timeout-factor options and adjust timeout variable accordingly.
1936 * testsuite/experimental/simd/tests/loadstore.cc: Set
1939 2021-02-03 Matthias Kretz <kretz@kde.org>
1941 * testsuite/experimental/simd/driver.sh: When handling the pipe
1942 to log (and on verbose to stdout) count the lines. If it exceeds
1943 1000 log the issue and exit 125, which is then handled as a
1946 2021-02-03 Matthias Kretz <kretz@kde.org>
1948 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
1949 markup for long double on powerpc64*.
1951 2021-02-03 Matthias Kretz <kretz@kde.org>
1953 * include/experimental/bits/simd.h: Add __have_power10vec
1954 conditional on _ARCH_PWR10.
1955 * include/experimental/bits/simd_builtin.h: Forward declare
1956 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
1958 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
1959 _SuperImpl for optimizations and correctness.
1960 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
1961 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
1962 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
1963 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
1965 2021-02-03 Matthias Kretz <kretz@kde.org>
1967 * testsuite/experimental/simd/driver.sh: Remove executable on
1968 SIGINT. Process compiler and test executable output: In verbose
1969 mode print messages immediately, limited to 1000 lines and
1970 breaking long lines to below $COLUMNS (or 1024 if not set).
1971 Communicating the exit status of the compiler / test with the
1972 necessary pipe is done via a message through stdout/-in.
1974 2021-02-03 Matthias Kretz <kretz@kde.org>
1976 * testsuite/Makefile.am: Ensure .simd.summary is empty before
1977 collecting a new summary.
1978 * testsuite/Makefile.in: Regenerate.
1980 2021-02-03 Matthias Kretz <kretz@kde.org>
1982 * testsuite/experimental/simd/generate_makefile.sh: Use
1983 different variables internally than documented for user
1984 overrides. This makes internal append/prepend work as intended.
1986 2021-02-03 Matthias Kretz <kretz@kde.org>
1988 * testsuite/experimental/simd/driver.sh (verify_test): Print
1989 test output on run xfail. Do not repeat lines from the log that
1990 were already printed on stdout.
1991 (test_selector): Make the compiler flags pattern usable as a
1993 (toplevel): Trap on SIGINT and remove the log and sum files.
1994 Call timout with --foreground to quickly terminate on SIGINT.
1995 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
1996 targets via target patterns. Default DRIVEROPTS to -v for run
1997 targets. Remove log and sum files after completion of the run
1998 target (so that it's always recompiled).
1999 Place help text into text file for reasonable 'make help'
2002 2021-02-03 Matthias Kretz <kretz@kde.org>
2004 * include/experimental/bits/simd.h: Remove unnecessary static
2005 assertion. Allow sizeof(8) integer __intrinsic_type to enable
2006 the necessary mask type.
2008 2021-02-03 Matthias Kretz <kretz@kde.org>
2010 * include/experimental/bits/simd.h: Let __intrinsic_type<long
2011 double, N> be valid if sizeof(long double) == sizeof(double) and
2012 use a __vector double as member type.
2014 2021-02-03 Matthias Kretz <kretz@kde.org>
2016 * include/experimental/bits/simd.h (__is_intrinsic_type): New
2017 internal type trait. Alias for __is_vector_type on x86.
2018 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
2020 (__intrin_bitcast): Allow casting to & from vector & intrinsic
2022 (__intrinsic_type): Explicitly specialize for NEON intrinsic
2025 2021-02-03 Matthias Kretz <kretz@kde.org>
2027 * testsuite/experimental/simd/driver.sh: Implement skip, only,
2028 expensive, and xfail markers. They can select on type, ABI tag
2029 subset number, target-triplet, and compiler flags.
2030 * testsuite/experimental/simd/generate_makefile.sh: The summary
2031 now includes lines for unexpected passes and expected failures.
2032 If the skip or only markers are only conditional on the type, do
2033 not generate rules for those types.
2034 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
2035 for ABI tag subsets 1-9.
2036 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
2037 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
2038 * testsuite/experimental/simd/tests/casts.cc: Ditto.
2039 * testsuite/experimental/simd/tests/generator.cc: Ditto.
2040 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
2041 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
2042 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
2043 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
2044 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
2045 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
2046 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
2047 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
2048 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
2049 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
2050 * testsuite/experimental/simd/tests/operators.cc: Ditto.
2051 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
2052 * testsuite/experimental/simd/tests/simd.cc: Ditto.
2053 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
2054 * testsuite/experimental/simd/tests/splits.cc: Ditto.
2055 * testsuite/experimental/simd/tests/where.cc: Ditto.
2056 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
2057 addition replace "test only floattypes" marker by unconditional
2058 "float|double|ldouble" only marker.
2059 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
2060 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
2061 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2063 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
2064 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
2065 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
2066 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
2067 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
2068 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
2069 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
2070 addition, xfail on run because the reference data is missing.
2072 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
2074 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
2075 * doc/xml/manual/status_cxx2014.xml: Likewise.
2076 * doc/xml/manual/status_cxx2017.xml: Likewise.
2077 * doc/html/manual/status.html: Regenerate.
2079 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
2082 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
2083 Return 0 if both iterators are value-initialized.
2084 * testsuite/23_containers/deque/70303.cc: New test.
2085 * testsuite/23_containers/vector/70303.cc: New test.
2087 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
2089 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
2091 * doc/xml/manual/status_cxx2014.xml: Likewise.
2092 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
2093 std::from_chars and std::to_chars status. Fix formatting.
2094 * doc/html/manual/status.html: Regenerate.
2096 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
2098 * include/experimental/bits/numeric_traits.h: Update copyright
2100 * include/experimental/bits/simd.h: Likewise.
2101 * include/experimental/bits/simd_builtin.h: Likewise.
2102 * include/experimental/bits/simd_converter.h: Likewise.
2103 * include/experimental/bits/simd_detail.h: Likewise.
2104 * include/experimental/bits/simd_fixed_size.h: Likewise.
2105 * include/experimental/bits/simd_math.h: Likewise.
2106 * include/experimental/bits/simd_neon.h: Likewise.
2107 * include/experimental/bits/simd_ppc.h: Likewise.
2108 * include/experimental/bits/simd_scalar.h: Likewise.
2109 * include/experimental/bits/simd_x86.h: Likewise.
2110 * include/experimental/bits/simd_x86_conversions.h: Likewise.
2111 * include/experimental/simd: Likewise.
2112 * testsuite/experimental/simd/*: Likewise.
2114 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
2116 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
2117 * doc/html/*: Regenerate.
2119 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
2121 * testsuite/experimental/simd/generate_makefile.sh: Use printf
2122 instead of echo when printing escape characters.
2124 2021-01-27 Matthias Kretz <kretz@kde.org>
2126 * scripts/check_simd: New file. This script is called from the
2127 the check-simd target. It determines a set of compiler flags and
2128 simulator setups for calling generate_makefile.sh and passes the
2129 information back to the check-simd target, which recurses to the
2130 generated Makefiles.
2131 * scripts/create_testsuite_files: Remove files below simd/tests/
2132 from testsuite_files and place them in testsuite_files_simd.
2133 * testsuite/Makefile.am: Add testsuite_files_simd. Add
2135 * testsuite/Makefile.in: Regenerate.
2136 * testsuite/experimental/simd/driver.sh: New file. This script
2137 compiles and runs a given simd test, logging its output and
2138 status. It uses the timeout command to implement compile and
2140 * testsuite/experimental/simd/generate_makefile.sh: New file.
2141 This script generates a Makefile which uses driver.sh to compile
2142 and run the tests and collect the logs into a single log file.
2143 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
2145 * testsuite/experimental/simd/tests/algorithms.cc: New file.
2146 Tests min/max(simd, simd).
2147 * testsuite/experimental/simd/tests/bits/conversions.h: New
2148 file. Contains functions to support tests involving conversions.
2149 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
2150 Support functions make_mask and make_vec.
2151 * testsuite/experimental/simd/tests/bits/mathreference.h: New
2152 file. Support functions to supply precomputed math function
2154 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
2155 file. Support code for SFINAE testing.
2156 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
2157 * testsuite/experimental/simd/tests/bits/test_values.h: New
2158 file. Test functions to easily drive a test with simd objects
2159 initialized from a given list of values and a range of random
2161 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
2162 Support code to determine the ULP distance of simd objects.
2163 * testsuite/experimental/simd/tests/bits/verify.h: New file.
2164 Test framework for COMPARE'ing simd objects and instantiating
2165 the test templates with value_type and ABI tag.
2166 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
2168 * testsuite/experimental/simd/tests/casts.cc: New file. Test
2170 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
2171 Test floating-point classification functions.
2172 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
2174 * testsuite/experimental/simd/tests/generator.cc: New file. Test
2175 simd generator constructor.
2176 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
2177 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
2178 * testsuite/experimental/simd/tests/integer_operators.cc: New
2179 file. Test integer operators.
2180 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2181 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
2183 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
2184 (converting) simd loads and stores.
2185 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
2187 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
2188 Test simd_mask broadcasts.
2189 * testsuite/experimental/simd/tests/mask_conversions.cc: New
2190 file. Test simd_mask conversions.
2191 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
2192 file. Test simd_mask implicit conversions.
2193 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
2194 Test simd_mask loads and stores.
2195 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
2196 file. Test simd_mask operators convert as specified.
2197 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
2198 Test simd_mask compares, subscripts, and negation.
2199 * testsuite/experimental/simd/tests/mask_reductions.cc: New
2200 file. Test simd_mask reductions.
2201 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
2202 1-arg math functions on simd.
2203 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
2204 2-arg math functions on simd.
2205 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
2206 Test implicit conversions on simd binary operators behave as
2208 * testsuite/experimental/simd/tests/operators.cc: New file. Test
2209 simd compares, subscripts, not, unary minus, plus, minus,
2210 multiplies, divides, increment, and decrement.
2211 * testsuite/experimental/simd/tests/reductions.cc: New file.
2213 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
2215 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
2216 sanity checks of simd types.
2217 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
2218 sin(simd) and cos(simd).
2219 * testsuite/experimental/simd/tests/split_concat.cc: New file.
2220 Test split(simd) and concat(simd, simd).
2221 * testsuite/experimental/simd/tests/splits.cc: New file. Test
2223 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
2224 Test remaining trigonometric functions on simd.
2225 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
2226 file. Test trunc(simd), ceil(simd), and floor(simd).
2227 * testsuite/experimental/simd/tests/where.cc: New file. Test
2228 masked operations using where.
2230 2021-01-27 Matthias Kretz <kretz@kde.org>
2232 * doc/xml/manual/status_cxx2017.xml: Add implementation status
2233 of the Parallelism TS 2. Document implementation-defined types
2235 * include/Makefile.am: Add new headers.
2236 * include/Makefile.in: Regenerate.
2237 * include/experimental/simd: New file. New header for
2239 * include/experimental/bits/numeric_traits.h: New file.
2240 Implementation of P1841R1 using internal naming. Addition of
2241 missing IEC559 functionality query.
2242 * include/experimental/bits/simd.h: New file. Definition of the
2243 public simd interfaces and general implementation helpers.
2244 * include/experimental/bits/simd_builtin.h: New file.
2245 Implementation of the _VecBuiltin simd_abi.
2246 * include/experimental/bits/simd_converter.h: New file. Generic
2248 * include/experimental/bits/simd_detail.h: New file. Internal
2249 macros for the simd implementation.
2250 * include/experimental/bits/simd_fixed_size.h: New file. Simd
2251 fixed_size ABI specific implementations.
2252 * include/experimental/bits/simd_math.h: New file. Math
2254 * include/experimental/bits/simd_neon.h: New file. Simd NEON
2255 specific implementations.
2256 * include/experimental/bits/simd_ppc.h: New file. Implement bit
2257 shifts to avoid invalid results for integral types smaller than
2259 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
2260 ABI specific implementations.
2261 * include/experimental/bits/simd_x86.h: New file. Simd x86
2262 specific implementations.
2263 * include/experimental/bits/simd_x86_conversions.h: New file.
2264 x86 specific conversion optimizations. The conversion patterns
2265 work around missing conversion patterns in the compiler and
2266 should be removed as soon as PR85048 is resolved.
2267 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
2268 Test that all (not all fixed_size<N>, though) standard simd and
2269 simd_mask types are usable.
2270 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
2271 file. As above but with -ffast-math.
2272 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
2273 from the standard test loop. Instead use
2274 check_vect_support_and_set_flags to build simd tests with the
2275 relevant machine flags.
2277 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
2280 * include/bits/string_view.tcc
2281 (basic_string_view::find(const CharT*, size_type, size_type)):
2284 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
2286 * include/bits/basic_string.h (basic_string::contains): New
2288 * include/std/string_view (basic_string_view::contains):
2290 * include/std/version (__cpp_lib_string_contains): Define.
2291 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
2292 Remove trailing whitespace.
2293 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
2295 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
2296 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
2297 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
2298 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
2299 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
2301 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
2303 * src/c++17/Makefile.in: Regenerate.
2305 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
2307 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
2308 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
2310 (const char* ctype<char>:: is): Same.
2312 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
2315 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
2316 write to a wide character stream if wide character support is
2317 disabled in the library.
2319 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
2321 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
2322 stringbuf not wstringbuf.
2324 2021-01-18 Jakub Jelinek <jakub@redhat.com>
2327 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
2328 Compile with -gno-as-loc-support.
2329 * src/c++11/Makefile.in: Regenerated.
2331 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
2333 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2334 Add -fcf-protection=none to -march=i486.
2336 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
2338 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
2341 2021-01-14 Alexandre Oliva <oliva@adacore.com>
2343 * testsuite/30_threads/future/members/poll.cc: Calibrate
2346 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
2349 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
2350 (_Node_iterator()): Make default.
2351 (_Node_const_iterator()): Make default.
2352 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
2354 * include/debug/safe_iterator.h
2355 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
2356 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
2358 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
2359 _M_singular checks on input iterators.
2360 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
2362 * testsuite/23_containers/deque/debug/98466.cc: New test.
2363 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
2365 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
2368 * include/bits/fs_path.h (__throw_conversion_error): New
2369 function to throw or abort on character conversion errors.
2370 (__wstr_from_utf8): Move definition after filesystem_error has
2371 been defined. Use __throw_conversion_error.
2372 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
2373 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
2374 (path::u8string): Likewise.
2376 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
2378 * include/std/barrier: Update copyright years. Fix whitespace.
2379 * include/std/version: Fix whitespace.
2380 * testsuite/30_threads/barrier/1.cc: Update copyright years.
2381 * testsuite/30_threads/barrier/2.cc: Likewise.
2382 * testsuite/30_threads/barrier/arrive.cc: Likewise.
2383 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
2384 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
2385 * testsuite/30_threads/barrier/completion.cc: Likewise.
2387 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
2389 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
2391 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
2394 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
2396 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
2398 2021-01-08 Olivier Hainque <hainque@adacore.com>
2400 * testsuite/20_util/bind/ref_neg.cc: Tweak the
2401 dg-prune-output regex for out-of-build-tree contexts.
2403 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
2405 * doc/doxygen/user.cfg.in: Add new header.
2406 * include/Makefile.am (std_headers): likewise.
2407 * include/Makefile.in: Regenerate.
2408 * include/precompiled/stdc++.h: Add new header.
2409 * include/std/barrier: New file.
2410 * include/std/version: Add __cpp_lib_barrier feature test macro.
2411 * testsuite/30_threads/barrier/1.cc: New test.
2412 * testsuite/30_threads/barrier/2.cc: Likewise.
2413 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
2414 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
2415 * testsuite/30_threads/barrier/arrive.cc: Likewise.
2416 * testsuite/30_threads/barrier/completion.cc: Likewise.
2418 2021-01-07 Patrick Palka <ppalka@redhat.com>
2421 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
2422 instead of the non-standard nextupl and nextdownl.
2424 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
2426 * configure: Re-generate.
2428 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
2430 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
2432 2021-01-01 Jakub Jelinek <jakub@redhat.com>
2434 * ChangeLog-2020: Rotate ChangeLog. New file.
2437 Copyright (C) 2021 Free Software Foundation, Inc.
2439 Copying and distribution of this file, with or without modification,
2440 are permitted in any medium without royalty provided the copyright
2441 notice and this notice are preserved.