2296 lines
89 KiB
Plaintext
2296 lines
89 KiB
Plaintext
2021-04-30 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/std/ranges (__detail::__non_propating_cache): Define
|
||
as per P2328.
|
||
(join_view): Remove constraints on the value and reference types
|
||
of the wrapped iterator type as per P2328.
|
||
(join_view::_Iterator::_M_satisfy): Adjust as per P2328.
|
||
(join_view::_Iterator::operator++): Likewise.
|
||
(join_view::_M_inner): Use __non_propating_cache as per P2328.
|
||
Remove now-redundant use of __maybe_present_t.
|
||
* testsuite/std/ranges/adaptors/join.cc: Include <array>.
|
||
(test10): New test.
|
||
|
||
2021-04-30 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/basic_string.h (__cpp_lib_constexpr_string):
|
||
Only define for C++17 and later.
|
||
* include/std/version (__cpp_lib_semaphore): Fix condition
|
||
to match the one in <semaphore>.
|
||
|
||
2021-04-30 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
|
||
* config.h.in: Regenerate.
|
||
* configure: Regenerate.
|
||
* configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
|
||
* include/bits/postypes.h: Remove include of <stdint.h> and
|
||
definition/undefinition of the __STDC_LIMIT_MACROS and
|
||
__STDC_CONSTANT_MACROS macros.
|
||
(streamoff): Use __INT64_TYPE__ if defined.
|
||
|
||
2021-04-30 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/std/ranges (split_view::_InnerIter::operator++):
|
||
Depend on _Base instead of _Vp directly, as per LWG 3532.
|
||
|
||
2021-04-30 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/bits/ranges_util.h (subrange::subrange): Avoid
|
||
list-initialization in delegating constructor.
|
||
* include/std/ranges (single_view): Replace implicit guide
|
||
with explicit deduction guide that decays its argument.
|
||
(_Single::operator()): Avoid CTAD when constructing the
|
||
single_view object.
|
||
(_Iota::operator()): Avoid list-initialization.
|
||
(__detail::__can_filter_view, _Filter::operator()): Likewise.
|
||
(__detail::__can_transform_view, _Transform::operator()): Likewise.
|
||
(take_view::begin): Likewise.
|
||
(__detail::__can_take_view, _Take::operator()): Likewise.
|
||
(__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
|
||
(__detail::__can_drop_view, _Drop::operator()): Likewise.
|
||
(__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
|
||
(split_view::split_view): Use views::single when initializing
|
||
_M_pattern.
|
||
(__detail::__can_split_view, _Split::operator()): Avoid
|
||
list-initialization.
|
||
(_Counted::operator()): Likewise.
|
||
* testsuite/std/ranges/p2367.cc: New test.
|
||
|
||
2021-04-30 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/60497
|
||
* include/bits/basic_ios.tcc (basic_ios::copyfmt): use
|
||
std::addressof.
|
||
* include/bits/basic_string.tcc (basic_string::swap)
|
||
(basic_string::assign): Likewise.
|
||
* include/bits/deque.tcc (deque::operator=(const deque&)):
|
||
Likewise.
|
||
* include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
|
||
Likewise.
|
||
* include/bits/vector.tcc (vector::operator=(const vector&)):
|
||
Likewise.
|
||
|
||
2021-04-30 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/istream (operator>>(Istream&&, x&)): Simplify, as
|
||
per LWG 1203.
|
||
* include/std/ostream (operator<<(Ostream&&, const x&)):
|
||
Likewise.
|
||
* testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
|
||
Adjust dg-error pattern.
|
||
* testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
|
||
is_extractable trait to replace std::__is_extractable. Make it
|
||
work with rvalue streams as well as lvalues, to replace f() and
|
||
g() helper functions.
|
||
* testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
|
||
Define is_insertable trait to replace std::__is_insertable. Make
|
||
it work with rvalue streams as well as lvalues, to replace f()
|
||
and g() helper functions.
|
||
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
|
||
errors from new constraints.
|
||
* testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
|
||
which are no longer expected to compile.
|
||
* testsuite/27_io/rvalue_streams.cc: Adjust existing test.
|
||
Verify LWG 1203 changes.
|
||
|
||
2021-04-30 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100285
|
||
* include/experimental/socket (__basic_socket_impl::set_option)
|
||
(__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
|
||
Just set error code.
|
||
* testsuite/experimental/net/socket/socket_base.cc: CHeck
|
||
for <sys/socket.h> not <socket.h>.
|
||
|
||
2021-04-30 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100180
|
||
PR libstdc++/100286
|
||
PR libstdc++/100351
|
||
* testsuite/experimental/net/internet/address/v4/comparisons.cc:
|
||
Use new effective-target keyword.
|
||
* testsuite/experimental/net/internet/address/v4/cons.cc:
|
||
Likewise.
|
||
* testsuite/experimental/net/internet/address/v4/creation.cc:
|
||
Likewise.
|
||
* testsuite/experimental/net/internet/address/v4/members.cc:
|
||
Likewise.
|
||
* testsuite/experimental/net/internet/address/v6/members.cc:
|
||
Likewise.
|
||
* testsuite/experimental/net/internet/resolver/base.cc:
|
||
Likewise.
|
||
* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
|
||
Likewise.
|
||
* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
|
||
Likewise.
|
||
* testsuite/experimental/net/internet/socket/opt.cc:
|
||
Likewise.
|
||
* testsuite/experimental/net/internet/tcp.cc:
|
||
Likewise.
|
||
* testsuite/experimental/net/internet/udp.cc:
|
||
Likewise.
|
||
* testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
|
||
New proc to check net_ts_ip et.
|
||
|
||
2021-04-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/97930
|
||
* testsuite/20_util/pair/requirements/structural.cc: New test.
|
||
|
||
2021-04-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
|
||
new definitions for constructors and assignment operators using
|
||
concepts for constraints.
|
||
* testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
|
||
later.
|
||
* testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
|
||
expected error messages to also match C++20 errors.
|
||
|
||
2021-04-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99957
|
||
* include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
|
||
Combine and replace with ...
|
||
(_PCC::_DeprConsPair): New SFINAE helper function.
|
||
(pair): Merge preprocessor blocks so that all C++03 members
|
||
are defined together at the end.
|
||
(pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
|
||
Replace _T1 and _T2 parameters with __null_ptr_constant and
|
||
adjust constraints.
|
||
* testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
|
||
* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
|
||
* testsuite/20_util/pair/cons/99957.cc: New test.
|
||
|
||
2021-04-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
|
||
* include/std/version (__cpp_lib_constexpr_string): Define.
|
||
* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
|
||
Check for __cpp_lib_constexpr_string.
|
||
* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/char_traits/requirements/version.cc: New test.
|
||
|
||
2021-04-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
|
||
dealing with errors. Use '@' to prevent shell command being
|
||
echoed.
|
||
* doc/Makefile.in: Regenerate.
|
||
|
||
2021-04-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100298
|
||
* include/bits/std_thread.h (thread::hardware_concurrency): Add
|
||
missing noexcept to inline definition for non-gthreads targets.
|
||
|
||
2021-04-28 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/100187
|
||
PR libstdc++/100237
|
||
PR libstdc++/100249
|
||
PR libstdc++/100287
|
||
* include/bits/ranges_algo.h (__search_n_fn::operator()): Give
|
||
the __value_comp lambda an explicit bool return type.
|
||
(__is_permutation_fn::operator()): Give the __proj_scan local
|
||
variable auto&& return type. Give the __comp_scan lambda an
|
||
explicit bool return type.
|
||
(__remove_fn::operator()): Give the __pred lambda an explicit
|
||
bool return type.
|
||
(__partition_fn::operator()): Don't std::move __first twice
|
||
when returning an empty subrange.
|
||
(__min_fn::operator()): Don't std::move __comp.
|
||
(__max_fn::operator()): Likewise.
|
||
(__minmax_fn::operator()): Likewise.
|
||
|
||
2021-04-27 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/100290
|
||
* include/std/ranges (join_view::_Iterator::operator++): Correct
|
||
the return type of the lambda to avoid returning a copy of
|
||
_M_parent->_M_inner.
|
||
* testsuite/std/ranges/adaptors/join.cc (test10): New test.
|
||
|
||
2021-04-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Revert:
|
||
2021-04-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/100182
|
||
* testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
|
||
ia32.
|
||
* testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
|
||
ia32.
|
||
|
||
2021-04-27 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/internet (address_v6::bytes_type): Adjust
|
||
formatting.
|
||
(basic_endpoint): Define _M_is_v6() to put all checks for
|
||
AF_INET6 in one place.
|
||
(basic_endpoint::resize): Simplify.
|
||
(operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
|
||
(operator!=(const tcp&, const tcp&)): Likewise.
|
||
(operator==(const udp&, const udp&)): Likewise.
|
||
(operator!=(const udp&, const udp&)): Likewise.
|
||
* testsuite/experimental/net/internet/tcp.cc: New test.
|
||
* testsuite/experimental/net/internet/udp.cc: New test.
|
||
|
||
2021-04-27 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100286
|
||
* include/experimental/internet (resolver_errc, resolver_category())
|
||
(make_error_code, make_error_condition): Define unconditionally,
|
||
only make enumerators and use of gai_strerror depend on the
|
||
availability of <netdb.h>.
|
||
(address_v4::to_string): Use correct constant for string length.
|
||
(address_v4::to_string, address_v6::to_string): Define
|
||
unconditionally, throw if unsupported.
|
||
(make_address_v4, make_address_v6): Define unconditionally.
|
||
Return an error if unsupported.
|
||
(tcp, udp, v6_only, unicast::hops, multicast::*): Define
|
||
conditionally,
|
||
* testsuite/experimental/net/internet/socket/opt.cc: Check for
|
||
<netinet/in.h> and <netinet/tcp.h> before using types from
|
||
namespace net::ip.
|
||
|
||
2021-04-27 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100285
|
||
* include/experimental/internet (resolver_base::flags):
|
||
Define overloaded operators as hidden friends.
|
||
* include/experimental/socket (socket_base::message_flags):
|
||
Likewise.
|
||
|
||
2021-04-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/internet (tcp::no_delay, v6_only)
|
||
(unicast::hops, multicast::hops, multicast::enable_loopback):
|
||
Change access of base class and static data members. Add
|
||
using-declaration for __socket_crtp::operator=(_Tp).
|
||
(multicast::__mcastopt): New type.
|
||
(multicast::join_group, multicast::leave_group): Derive from
|
||
__mcastopt for common implementation.
|
||
* include/experimental/socket: Add comment.
|
||
* testsuite/experimental/net/internet/socket/opt.cc: New test.
|
||
* testsuite/experimental/net/socket/socket_base.cc: Check for
|
||
protected constructor/destructor of socket_base. Check for
|
||
explicit constructors of socket option classes.
|
||
|
||
2021-04-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/bits/net.h (__socket_base): Add
|
||
bool template parameter to allow BooleanSocketOption and
|
||
IntegerSocketOption to have different __socket_base<int>
|
||
base classes.
|
||
(__socket_base<bool>): Adjust base class.
|
||
(__socket_base<int>): Add partial specialization.
|
||
(__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
|
||
* include/experimental/socket (socket_base::broadcast)
|
||
(socket_base::debug, socket_base::do_not_route)
|
||
(socket_base::keep_alive, socket_base::linger)
|
||
(socket_base::out_of_band_inline)
|
||
(socket_base::receive_buffer_size)
|
||
(socket_base::receive_low_watermark)
|
||
(socket_base::reuse_address, socket_base::send_buffer_size)
|
||
(socket_base::send_low_watermark): Add using-declaration for
|
||
__socket_crtp::operator=(_Tp).
|
||
* testsuite/experimental/net/socket/socket_base.cc: Check
|
||
properties of socket option types.
|
||
|
||
2021-04-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/internet (resolver_base::flags): Remove
|
||
enumerators. Initialize constants directly with desired values.
|
||
Make all operators constexpr and noexcept.
|
||
* testsuite/experimental/net/internet/resolver/base.cc: Use
|
||
__gnu_test::test_bitmask_values for bitmask type. Check
|
||
construction and destruction is protected.
|
||
|
||
2021-04-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/semaphore_base.h: Include <exception> and <errno.h>.
|
||
|
||
2021-04-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100259
|
||
* include/experimental/internet (net::ip::make_error_code)
|
||
(net::ip::make_error_condition, net::ip::make_network_v4)
|
||
(net::ip::operator==(const udp&, const udp&)): Add 'inline'.
|
||
|
||
2021-04-24 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* testsuite/lib/dg-options.exp (atomic_link_flags): New.
|
||
(add_options_for_libatomic): Use atomic_link_flags.
|
||
|
||
2021-04-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100180
|
||
* include/experimental/io_context (io_context): Define
|
||
dummy_pollfd type so that most member functions still compile
|
||
without <poll.h> and struct pollfd.
|
||
|
||
2021-04-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/io_context (io_context::async_wait): Add
|
||
comment.
|
||
* include/experimental/socket (basic_socket::async_connect):
|
||
Cast wait_type constant to int.
|
||
(basic_datagram_socket::async_receive): Likewise.
|
||
(basic_datagram_socket::async_receive_from): Likewise.
|
||
(basic_datagram_socket::async_send): Likewise.
|
||
(basic_datagram_socket::async_send_to): Likewise.
|
||
(basic_stream_socket::async_receive): Likewise.
|
||
(basic_stream_socket::async_send): Likewise. Use io_context
|
||
parameter directly, instead of via an executor.
|
||
(basic_socket_acceptor::async_accept): Likewise.
|
||
|
||
2021-04-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/socket (socket_base::shutdown_type):
|
||
(socket_base::wait_type, socket_base::message_flags):
|
||
Remove enumerators. Initialize constants directly with desired
|
||
values.
|
||
(socket_base::message_flags): Make all operators constexpr and
|
||
noexcept.
|
||
* testsuite/util/testsuite_common_types.h (test_bitmask_values):
|
||
New test utility.
|
||
* testsuite/experimental/net/socket/socket_base.cc: New test.
|
||
|
||
2021-04-22 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/os/aix/atomicity.h: Delete.
|
||
|
||
2021-04-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
|
||
Handle system_clock as well as steady_clock.
|
||
* testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
|
||
* testsuite/30_threads/semaphore/try_acquire_until.cc:
|
||
Re-enable.
|
||
|
||
2021-04-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
|
||
options for libatomic.
|
||
|
||
2021-04-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* config/os/gnu-linux/os_defines.h: Fix type in comment.
|
||
|
||
2021-04-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99006
|
||
* include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
|
||
is not an array type.
|
||
* include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
|
||
* testsuite/20_util/shared_ptr/creation/99006.cc: New test.
|
||
|
||
2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
|
||
|
||
* include/bits/atomic_wait.h: Always notify waiters in the
|
||
case of 'bare' address notification.
|
||
|
||
2021-04-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/100182
|
||
* testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
|
||
ia32.
|
||
* testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
|
||
ia32.
|
||
|
||
2021-04-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100179
|
||
* include/bits/semaphore_base.h: Remove #error.
|
||
* include/std/semaphore: Do not define anything unless one of
|
||
the implementations is available.
|
||
|
||
2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
|
||
|
||
* include/bits/semaphore_base.h: Always reload __old in
|
||
__atomic_semaphore::_S_do_try_acquire().
|
||
* testsuite/30_threads/stop_token/stop_callback/destroy.cc:
|
||
re-enable testcase.
|
||
|
||
2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
|
||
Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99453
|
||
* python/Makefile.am: Install libstdc++*-gdb.py more robustly.
|
||
* python/Makefile.in: Regenerate.
|
||
|
||
2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
|
||
|
||
* include/bits/semaphore_base.h: Add missing _M_try_acquire()
|
||
member to __platform_wait.
|
||
|
||
2021-04-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/latch: Replace tab characters in license text.
|
||
* include/std/semaphore: Likewise.
|
||
|
||
2021-04-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/100164
|
||
* acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
|
||
rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
|
||
* configure: Regenerated.
|
||
* config.h.in: Regenerated.
|
||
|
||
2021-04-20 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
|
||
test for targets not using futexes for semaphores.
|
||
* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
|
||
* testsuite/30_threads/stop_token/stop_callback/destroy.cc:
|
||
Disable for all targets.
|
||
|
||
2021-04-20 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
* include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/bits/this_thread_sleep.h: New file.
|
||
* include/bits/atomic_base.h: Adjust all calls
|
||
to __atomic_wait/__atomic_notify for new call signatures.
|
||
* include/bits/atomic_timed_wait.h: Extensive rewrite.
|
||
* include/bits/atomic_wait.h: Likewise.
|
||
* include/bits/semaphore_base.h: Adjust all calls
|
||
to __atomic_wait/__atomic_notify for new call signatures.
|
||
* include/std/atomic: Likewise.
|
||
* include/std/barrier: Likewise.
|
||
* include/std/latch: Likewise.
|
||
* include/std/semaphore: Likewise.
|
||
* include/std/thread (this_thread::sleep_for)
|
||
(this_thread::sleep_until): Move to new header.
|
||
* testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
|
||
test.
|
||
* testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
|
||
* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
|
||
|
||
2021-04-20 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/95983
|
||
* include/bits/stl_iterator.h (__detail::__move_iter_cat):
|
||
Define.
|
||
(move_iterator): Derive from the above in C++20 in order to
|
||
conditionally define iterator_category as per P2259.
|
||
(move_iterator::__base_cat): No longer used, so remove.
|
||
(move_iterator::iterator_category): Remove in C++20.
|
||
(__detail::__common_iter_use_postfix_proxy): Define.
|
||
(common_iterator::_Proxy): Rename to ...
|
||
(common_iterator:__arrow_proxy): ... this.
|
||
(common_iterator::__postfix_proxy): Define as per P2259.
|
||
(common_iterator::operator->): Adjust.
|
||
(common_iterator::operator++): Adjust as per P2259.
|
||
(iterator_traits<common_iterator>::_S_iter_cat): Define.
|
||
(iterator_traits<common_iterator>::iterator_category): Change as
|
||
per P2259.
|
||
(__detail::__counted_iter_value_type): Define.
|
||
(__detail::__counted_iter_concept): Define.
|
||
(__detail::__counted_iter_cat): Define.
|
||
(counted_iterator): Derive from the above three classes in order
|
||
to conditionally define value_type, iterator_concept and
|
||
iterator category respectively as per P2259.
|
||
(counted_iterator::operator->): Define as per P2259.
|
||
(incrementable_traits<counted_iterator>): Remove as per P2259.
|
||
(iterator_traits<counted_iterator>): Adjust as per P2259.
|
||
* include/std/ranges (__detail::__iota_view_iter_cat): Define.
|
||
(iota_view::_Iterator): Derive from the above in order to
|
||
conditionally define iterator_category as per P2259.
|
||
(iota_view::_S_iter_cat): Rename to ...
|
||
(iota_view::_S_iter_concept): ... this.
|
||
(iota_view::iterator_concept): Use it to apply LWG 3291 changes.
|
||
(iota_view::iterator_category): Remove.
|
||
(__detail::__filter_view_iter_cat): Define.
|
||
(filter_view::_Iterator): Derive from the above in order to
|
||
conditionally define iterator_category as per P2259.
|
||
(filter_view::_Iterator): Move to struct __filter_view_iter_cat.
|
||
(filter_view::_Iterator::iterator_category): Remove.
|
||
(transform_view::_Base): Define.
|
||
(transform_view::__iter_cat): Define.
|
||
(transform_view::_Iterator): Derive from the above in order to
|
||
conditionally define iterator_category as per P2259.
|
||
(transform_view::_Iterator::_Base): Just alias
|
||
transform_view::_Base.
|
||
(transform_view::_Iterator::_S_iter_cat): Move to struct
|
||
transform_view::__iter_cat.
|
||
(transform_view::_Iterator::iterator_category): Remove.
|
||
(transform_view::_Sentinel::_Base): Just alias
|
||
transform_view::_Base.
|
||
(join_view::_Base): Define.
|
||
(join_view::_Outer_iter): Define.
|
||
(join_view::_Inner_iter): Define.
|
||
(join_view::_S_ref_is_glvalue): Define.
|
||
(join_view::__iter_cat): Define.
|
||
(join_view::_Iterator): Derive from it in order to conditionally
|
||
define iterator_category as per P2259.
|
||
(join_view::_Iterator::_Base): Just alias join_view::_Base.
|
||
(join_view::_Iterator::_S_ref_is_glvalue): Just alias
|
||
join_view::_S_ref_is_glvalue.
|
||
(join_view::_Iterator::_S_iter_cat): Move to struct
|
||
transform_view::__iter_cat.
|
||
(join_view::_Iterator::_Outer_iter): Just alias
|
||
join_view::_Outer_iter.
|
||
(join_view::_Iterator::_Inner_iter): Just alias
|
||
join_view::_Inner_iter.
|
||
(join_view::_Iterator::iterator_category): Remove.
|
||
(join_view::_Sentinel::_Base): Just alias join_view::_Base.
|
||
(__detail::__split_view_outer_iter_cat): Define.
|
||
(__detail::__split_view_inner_iter_cat): Define.
|
||
(split_view::_Base): Define.
|
||
(split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
|
||
in order to conditionally define iterator_category as per P2259.
|
||
(split_view::_Outer_iter::iterator_category): Remove.
|
||
(split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
|
||
in order to conditionally define iterator_category as per P2259.
|
||
(split_view::_Inner_iter::_S_iter_cat): Move to
|
||
__split_view_inner_iter_cat.
|
||
(split_view::_Inner_iter::iterator_category): Remove.
|
||
(elements_view::_Base): Define.
|
||
(elements_view::__iter_cat): Define.
|
||
(elements_view::_Iterator): Derive from the above in order to
|
||
conditionall define iterator_category as per P2259.
|
||
(elements_view::_Iterator::_Base): Just alias
|
||
elements_view::_Base.
|
||
(elements_view::_Iterator::_S_iter_concept)
|
||
(elements_view::_Iterator::iterator_concept): Define as per
|
||
P2259.
|
||
(elements_view::_Iterator::iterator_category): Remove.
|
||
(elements_view::_Sentinel::_Base): Just alias
|
||
elements_view::_Base.
|
||
* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
|
||
Adjust constraints on iterator_traits<counted_iterator>.
|
||
* testsuite/std/ranges/p2259.cc: New test.
|
||
|
||
2021-04-20 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100146
|
||
* include/std/charconv (__cpp_lib_to_chars): Define
|
||
conditionally.
|
||
* include/std/version (__cpp_lib_to_chars): Likewise..
|
||
* testsuite/20_util/from_chars/4.cc: Only check feature test
|
||
macro, not _GLIBCXX_HAVE_USELOCALE.
|
||
* testsuite/20_util/from_chars/5.cc: Likewise.
|
||
* testsuite/20_util/from_chars/6.cc: Likewise.
|
||
* testsuite/20_util/to_chars/long_double.cc: Likewise.
|
||
|
||
2021-04-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
|
||
versions with _IEEE128_ substring are found, set ieee_version_found
|
||
to true. Ignore missing symbols with _IEEE128_ in version name if
|
||
!ieee_version_found. Use i->first as version_name instead of
|
||
i->second.version_name if the latter is empty.
|
||
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
2021-04-19 H.J. Lu <hjl.tools@gmail.com>
|
||
|
||
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
|
||
Updated.
|
||
|
||
2021-04-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
|
||
|
||
2021-04-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
|
||
* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
2021-04-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
|
||
add libatomic options for 32-bit sparc*-*-linux-gnu.
|
||
|
||
2021-04-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/96657
|
||
* libsupc++/Makefile.am: Add atomicity.cc here.
|
||
* src/c++98/Makefile.am: Remove it from here.
|
||
* libsupc++/Makefile.in: Regenerate.
|
||
* src/c++98/Makefile.in: Regenerate.
|
||
* testsuite/18_support/exception_ptr/96657.cc: New test.
|
||
|
||
2021-04-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100060
|
||
* include/std/bit: Only include <ext/numeric_traits.h> for
|
||
hosted build, use <limits> otherwise.
|
||
|
||
2021-04-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/backwards_compatibility.xml: Remove porting
|
||
notes for libg++ and libstdc++-v2, and bibliography.
|
||
* doc/html/*: Regenerated.
|
||
|
||
2021-04-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100044
|
||
* include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
|
||
Remove helper concept.
|
||
(subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
|
||
deduction guides, as per LWG 3404.
|
||
* testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
|
||
template argument deduction fails.
|
||
|
||
2021-04-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
|
||
Adjust expected error for C++20 mode.
|
||
* testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
|
||
Likewise.
|
||
|
||
2021-04-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99995
|
||
* testsuite/17_intro/headers/c++1998/49745.cc: Include all
|
||
standard headers and XFAIL for effective-target c++20.
|
||
|
||
2021-04-09 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/99402
|
||
* include/debug/helper_functions.h (__can_advance(_InputIterator,
|
||
const std::pair<_Diff, _Distance_precision>&, int)): New.
|
||
(__can_advance(const _Safe_iterator<>&,
|
||
const std::pair<_Diff, _Distance_precision>&, int)): New.
|
||
* include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
|
||
use latter.
|
||
(__glibcxx_check_can_increment_range): Adapt to use latter.
|
||
(__glibcxx_check_can_decrement_range): Likewise.
|
||
* include/debug/safe_iterator.h
|
||
(_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
|
||
int)): New.
|
||
(__can_advance(const _Safe_iterator<>&,
|
||
const std::pair<_Diff, _Distance_precision>&, int)): New.
|
||
* include/debug/safe_iterator.tcc
|
||
(_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
|
||
int)): New.
|
||
(_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
|
||
std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
|
||
__dp_sign_max_size.
|
||
(__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
|
||
(__copy_move_backward_a): Likewise.
|
||
(__equal_aux): Likewise.
|
||
* include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
|
||
const std::pair<_Diff, _Distance_precision>&, int)): New.
|
||
(__can_advance(const std::move_iterator<>&,
|
||
const std::pair<_Diff, _Distance_precision>&, int)): New.
|
||
* testsuite/25_algorithms/copy/debug/99402.cc: New test.
|
||
|
||
2021-04-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99985
|
||
* include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
|
||
to be a valid constexpr function in C++11.
|
||
* testsuite/23_containers/unordered_set/cons/99985.cc: New test.
|
||
|
||
2021-04-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/fs_fwd.h: Fix doxygen group command.
|
||
* include/bits/streambuf_iterator.h: Likewise.
|
||
* include/bits/uses_allocator_args.h: Likewise.
|
||
* include/std/memory: Likewise.
|
||
* include/tr1/complex: Likewise.
|
||
|
||
2021-04-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/basic_string.h: Tweak doxygen comment.
|
||
|
||
2021-04-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/std/ranges (__detail::find): Define.
|
||
(split_view::_OuterIter::operator++): Apply proposed resolution
|
||
of LWG 3505.
|
||
* testsuite/std/ranges/adaptors/split.cc (test10): New test.
|
||
|
||
2021-04-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/std/ranges (__detail::find_if): Simplify.
|
||
(__detail::find_if_not): Likewise.
|
||
(__detail::min): Remove.
|
||
(__detail::mismatch): Simplify.
|
||
(take_view::size): Use std::min instead of __detail::min.
|
||
|
||
2021-04-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/std/ranges (__detail::__returnable_element): New
|
||
concept.
|
||
(elements_view): Use this concept in its constraints. Add
|
||
missing private access specifier.
|
||
(elements_view::_S_get_element): Define as per LWG 3502.
|
||
(elements_view::operator*, elements_view::operator[]): Use
|
||
_S_get_element.
|
||
(elements_view::operator++): Remove unnecessary constraint
|
||
as per LWG 3492.
|
||
* testsuite/std/ranges/adaptors/elements.cc (test05): New test.
|
||
|
||
2021-04-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/Makefile.am (stamp-pdf-doxygen): Also grep for
|
||
out-of-memory error in log file.
|
||
* doc/Makefile.in: Regenerate.
|
||
|
||
2021-04-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* configure: Regenerate.
|
||
|
||
2021-04-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/random.h: Fix doxygen group commands.
|
||
* include/bits/regex_constants.h: Likewise.
|
||
* include/tr1/random.h: Likewise.
|
||
|
||
2021-04-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
|
||
New function to determine noexcept-specifier for move
|
||
constructors.
|
||
(_Hashtable): Use _S_nothrow_move() on move constructors.
|
||
* testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
|
||
Correct static assertion message.
|
||
* testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
|
||
Likewise.
|
||
|
||
2021-04-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/98384
|
||
* testsuite/20_util/to_chars/long_double.cc: Don't run the test
|
||
on targets without a large long double. XFAIL the execution on
|
||
targets with a non-conforming printf.
|
||
|
||
2021-04-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/99433
|
||
* include/std/ranges (__adaptor::__maybe_refwrap): Remove.
|
||
(__adaptor::__adaptor_invocable): New concept.
|
||
(__adaptor::__adaptor_partial_app_viable): New concept.
|
||
(__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
|
||
non-template base class.
|
||
(__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
|
||
class template.
|
||
(__adaptor::_Partial): New class template that represents
|
||
partial application of a range adaptor non-closure.
|
||
(__adaptor::__pipe_invocable): New concept.
|
||
(__adaptor::_Pipe): New class template.
|
||
(__detail::__can_ref_view): New concept.
|
||
(__detail::__can_subrange): New concept.
|
||
(all): Replace the lambda here with ...
|
||
(_All): ... this functor. Add appropriate constraints.
|
||
(__detail::__can_filter_view): New concept.
|
||
(filter, _Filter): As in all/_All.
|
||
(__detail::__can_transform): New concept.
|
||
(transform, _Transform): As in all/_All.
|
||
(__detail::__can_take_view): New concept.
|
||
(take, _Take): As in all/_All.
|
||
(__detail::__can_take_while_view): New concept.
|
||
(take_while, _TakeWhile): As in all/_All.
|
||
(__detail::__can_drop_view): New concept.
|
||
(drop, _Drop): As in all/_All.
|
||
(__detail::__can_drop_while_view): New concept.
|
||
(drop_while, _DropWhile): As in all/_All.
|
||
(__detail::__can_join_view): New concept.
|
||
(join, _Join): As in all/_All.
|
||
(__detail::__can_split_view): New concept.
|
||
(split, _Split): As in all/_All. Rename template parameter
|
||
_Fp to _Pattern.
|
||
(__detail::__already_common): New concept.
|
||
(__detail::__can_common_view): New concept.
|
||
(common, _Common): As in all/_All.
|
||
(__detail::__can_reverse_view): New concept.
|
||
(reverse, _Reverse): As in all/_All.
|
||
(__detail::__can_elements_view): New concept.
|
||
(elements, _Elements): As in all/_All.
|
||
(keys, values): Adjust.
|
||
* testsuite/std/ranges/adaptors/99433.cc: New test.
|
||
* testsuite/std/ranges/adaptors/all.cc: No longer expect that
|
||
adding empty range adaptor closure objects to a pipeline doesn't
|
||
increase the size of the pipeline.
|
||
(test05): New test.
|
||
* testsuite/std/ranges/adaptors/common.cc (test03): New test.
|
||
* testsuite/std/ranges/adaptors/drop.cc (test09): New test.
|
||
* testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
|
||
* testsuite/std/ranges/adaptors/elements.cc (test04): New test.
|
||
* testsuite/std/ranges/adaptors/filter.cc (test06): New test.
|
||
* testsuite/std/ranges/adaptors/join.cc (test09): New test.
|
||
* testsuite/std/ranges/adaptors/p2281.cc: New test.
|
||
* testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
|
||
* testsuite/std/ranges/adaptors/split.cc (test01, test04):
|
||
Adjust.
|
||
(test09): New test.
|
||
* testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
|
||
expected error message.
|
||
(test02): Likewise. Extend test.
|
||
* testsuite/std/ranges/adaptors/take.cc (test06): New test.
|
||
* testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
|
||
* testsuite/std/ranges/adaptors/transform.cc (test07, test08):
|
||
New test.
|
||
|
||
2021-04-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/string_view: Adjust Doxygen @file comment.
|
||
|
||
2021-04-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/type_traits (is_scoped_enum<T>): Constrain partial
|
||
specialization to not match incomplete enum types. Use a
|
||
requires-expression instead of instantiating is_convertible.
|
||
(is_scoped_enum<const T>): Add as workaround for PR c++/99968.
|
||
* testsuite/20_util/is_scoped_enum/value.cc: Check with
|
||
incomplete types and opaque-enum-declarations.
|
||
|
||
2021-04-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99805
|
||
* src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
|
||
non-const member on _M_pathname, to avoid copy-on-write.
|
||
* testsuite/27_io/filesystem/path/decompose/parent_path.cc:
|
||
Check construction from strings that might be shared.
|
||
|
||
2021-04-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/move.h (forward, move, move_if_noexcept)
|
||
(addressof): Add _GLIBCXX_NODISCARD.
|
||
* include/bits/ranges_cmp.h (identity::operator()): Add
|
||
nodiscard attribute.
|
||
* include/c_global/cstddef (to_integer): Likewise.
|
||
* include/std/bit (bit_cast): Likewise.
|
||
* include/std/utility (as_const, to_underlying): Likewise.
|
||
|
||
2021-04-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/move.h (forward): Change static_assert message
|
||
to be unambiguous about what must be true.
|
||
* testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
|
||
* testsuite/20_util/forward/f_neg.cc: Likewise.
|
||
|
||
2021-04-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/alloc_traits.h: Use markdown for code font.
|
||
* include/bits/basic_string.h: Fix @param names.
|
||
* include/bits/max_size_type.h: Remove period after @file.
|
||
* include/bits/regex.h: Fix duplicate @retval names, and rename.
|
||
* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
|
||
group open to match existing group close.
|
||
* include/ext/pb_ds/priority_queue.hpp: Add blank line before group
|
||
open.
|
||
|
||
2021-04-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/atomic_base.h: Fix doxygen group close.
|
||
* include/bits/basic_ios.h: Likewise.
|
||
* include/bits/forward_list.h: Likewise.
|
||
* include/bits/fs_dir.h: Likewise.
|
||
* include/bits/fs_ops.h: Likewise.
|
||
* include/bits/fs_path.h: Likewise.
|
||
* include/bits/functional_hash.h: Likewise.
|
||
* include/bits/gslice.h: Likewise.
|
||
* include/bits/gslice_array.h: Likewise.
|
||
* include/bits/hashtable_policy.h: Likewise.
|
||
* include/bits/indirect_array.h: Likewise.
|
||
* include/bits/locale_classes.h: Likewise.
|
||
* include/bits/locale_facets.h: Likewise.
|
||
* include/bits/locale_facets_nonio.h: Likewise.
|
||
* include/bits/mask_array.h: Likewise.
|
||
* include/bits/refwrap.h: Likewise.
|
||
* include/bits/regex.h: Likewise.
|
||
* include/bits/regex_automaton.h: Likewise.
|
||
* include/bits/regex_compiler.h: Likewise.
|
||
* include/bits/regex_constants.h: Likewise.
|
||
* include/bits/regex_error.h: Likewise.
|
||
* include/bits/regex_executor.h: Likewise.
|
||
* include/bits/regex_scanner.h: Likewise.
|
||
* include/bits/shared_ptr.h: Likewise.
|
||
* include/bits/shared_ptr_atomic.h: Likewise.
|
||
* include/bits/shared_ptr_base.h: Likewise.
|
||
* include/bits/slice_array.h: Likewise.
|
||
* include/bits/specfun.h: Likewise.
|
||
* include/bits/std_function.h: Likewise.
|
||
* include/bits/std_mutex.h: Likewise.
|
||
* include/bits/stl_deque.h: Likewise.
|
||
* include/bits/stl_iterator.h: Likewise.
|
||
* include/bits/stl_iterator_base_types.h: Likewise.
|
||
* include/bits/stl_map.h: Likewise.
|
||
* include/bits/stl_multimap.h: Likewise.
|
||
* include/bits/stl_multiset.h: Likewise.
|
||
* include/bits/stl_numeric.h: Likewise.
|
||
* include/bits/stl_pair.h: Likewise.
|
||
* include/bits/stl_set.h: Likewise.
|
||
* include/bits/stl_uninitialized.h: Likewise.
|
||
* include/bits/stream_iterator.h: Likewise.
|
||
* include/bits/streambuf_iterator.h: Likewise.
|
||
* include/bits/unique_ptr.h: Likewise.
|
||
* include/bits/unordered_map.h: Likewise.
|
||
* include/bits/unordered_set.h: Likewise.
|
||
* include/decimal/decimal: Likewise.
|
||
* include/experimental/any: Likewise.
|
||
* include/experimental/array: Likewise.
|
||
* include/experimental/bits/fs_dir.h: Likewise.
|
||
* include/experimental/bits/fs_fwd.h: Likewise.
|
||
* include/experimental/bits/fs_ops.h: Likewise.
|
||
* include/experimental/bits/fs_path.h: Likewise.
|
||
* include/experimental/buffer: Likewise.
|
||
* include/experimental/internet: Likewise.
|
||
* include/experimental/optional: Likewise.
|
||
* include/experimental/propagate_const: Likewise.
|
||
* include/experimental/socket: Likewise.
|
||
* include/ext/pb_ds/assoc_container.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/types_traits.hpp: Likewise.
|
||
* include/ext/pb_ds/exception.hpp: Likewise.
|
||
* include/ext/pb_ds/priority_queue.hpp: Likewise.
|
||
* include/ext/pb_ds/tag_and_trait.hpp: Likewise.
|
||
* include/ext/random: Likewise.
|
||
* include/std/any: Likewise.
|
||
* include/std/atomic: Likewise.
|
||
* include/std/bitset: Likewise.
|
||
* include/std/chrono: Likewise.
|
||
* include/std/complex: Likewise.
|
||
* include/std/condition_variable: Likewise.
|
||
* include/std/fstream: Likewise.
|
||
* include/std/future: Likewise.
|
||
* include/std/iostream: Likewise.
|
||
* include/std/istream: Likewise.
|
||
* include/std/mutex: Likewise.
|
||
* include/std/numeric: Likewise.
|
||
* include/std/ostream: Likewise.
|
||
* include/std/ratio: Likewise.
|
||
* include/std/shared_mutex: Likewise.
|
||
* include/std/stdexcept: Likewise.
|
||
* include/std/streambuf: Likewise.
|
||
* include/std/system_error: Likewise.
|
||
* include/std/thread: Likewise.
|
||
* include/std/valarray: Likewise.
|
||
* include/std/variant: Likewise.
|
||
* include/tr1/cmath: Likewise.
|
||
* include/tr1/regex: Likewise.
|
||
* include/tr2/dynamic_bitset: Likewise.
|
||
* libsupc++/atomic_lockfree_defines.h: Likewise.
|
||
* libsupc++/exception: Likewise.
|
||
* libsupc++/exception.h: Likewise.
|
||
* libsupc++/exception_ptr.h: Likewise.
|
||
* libsupc++/nested_exception.h: Likewise.
|
||
|
||
2021-03-31 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* testsuite/30_threads/future/members/poll.cc: Use faster
|
||
after-ready call in the calibration loop.
|
||
|
||
2021-03-29 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
|
||
* doc/html/manual/status.html: Regenerate.
|
||
|
||
2021-03-28 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/forward_list
|
||
(forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
|
||
* include/debug/list (list(list&&, const allocator_type&)): Likewise and add
|
||
call to safe container allocator aware move constructor.
|
||
* include/debug/vector (vector(vector&&, const allocator_type&)):
|
||
Fix noexcept qualification.
|
||
* testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
|
||
Add allocator-extended move constructor noexceot qualification check.
|
||
* testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
|
||
|
||
2021-03-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++11/random.cc (USE_LCG): Define when a pseudo-random
|
||
fallback is needed.
|
||
[USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
|
||
New helper functions and callback.
|
||
(random_device::_M_init): Add 'prng' and 'all' enumerators.
|
||
Replace switch with fallthrough with a series of 'if' statements.
|
||
[USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
|
||
checks fail.
|
||
(random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
|
||
token.
|
||
(random_device::_M_getval): Check for callback unconditionally
|
||
and always pass _M_file pointer.
|
||
* testsuite/26_numerics/random/random_device/85494.cc: Remove
|
||
effective-target check. Use new random_device_available helper.
|
||
* testsuite/26_numerics/random/random_device/94087.cc: Likewise.
|
||
* testsuite/26_numerics/random/random_device/cons/default-cow.cc:
|
||
Remove effective-target check.
|
||
* testsuite/26_numerics/random/random_device/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/random_device/cons/token.cc: Use
|
||
new random_device_available helper. Test "prng" token.
|
||
* testsuite/util/testsuite_random.h (random_device_available):
|
||
New helper function.
|
||
|
||
2021-03-25 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/string
|
||
(basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
|
||
(basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
|
||
(basic_string<>::erase): Adapt to take __const_iterator.
|
||
(basic_string(const _CharT*, const _Allocator&)): Remove assign call.
|
||
(basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
|
||
remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
|
||
[_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
|
||
(__gnu_debug::u16string, __gnu_debug::u32string): New.
|
||
(std::hash<__gnu_debug::basic_string<>>): New partial specialization.
|
||
(std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
|
||
* testsuite/util/exception/safety.h
|
||
(erase_base<__gnu_debug::basic_string<>>): New partial specialization.
|
||
(insert_base<__gnu_debug::basic_string<>>): Likewise.
|
||
* testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
|
||
New partial specialization.
|
||
* testsuite/21_strings/basic_string/hash/debug.cc: New test.
|
||
* testsuite/21_strings/basic_string/requirements/citerators.cc:
|
||
Add test on __gnu_debug::string.
|
||
* testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
|
||
|
||
2021-03-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99672
|
||
* testsuite/18_support/source_location/consteval.cc (main): Adjust
|
||
expected column numbers.
|
||
* testsuite/18_support/source_location/1.cc (main): Likewise.
|
||
|
||
2021-03-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
|
||
|
||
2021-03-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/util/exception/safety.h (setup_base::generate):
|
||
Support seeding random engine.
|
||
(erase_point, erase_range): Adjust range of random numbers to
|
||
ensure dereferenceable iterators are used where required.
|
||
(generation_prohibited::run): Do not try to erase from empty
|
||
containers.
|
||
* testsuite/util/testsuite_containergen.h (test_containers):
|
||
Support seeding random engine.
|
||
|
||
2021-03-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
|
||
line with a check that uses the const being/end overloads.
|
||
|
||
2021-03-23 Moritz Sichert <sichert@in.tum.de>
|
||
|
||
* include/std/ranges (reverse_view::begin, reverse_view::end):
|
||
Qualify make_reverse_iterator calls to avoid ADL.
|
||
* testsuite/std/ranges/adaptors/reverse.cc: Test that
|
||
views::reverse works when make_reverse_iterator is defined
|
||
in an associated namespace.
|
||
|
||
2021-03-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
|
||
Do not define when compiling with Clang.
|
||
|
||
2021-03-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/string_view (basic_string_view(Range&&)): Define new
|
||
constructor and deduction guide.
|
||
* testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
|
||
* testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
|
||
|
||
2021-03-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
|
||
Add missing 'noexcept' as per LWG 2280.
|
||
(rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
|
||
(rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
|
||
* testsuite/24_iterators/range_access/range_access.cc: Check for
|
||
expected noexcept specifiers. Check result types of generic
|
||
std::begin and std::end overloads.
|
||
* testsuite/24_iterators/range_access/range_access_cpp14.cc:
|
||
Check for expected noexcept specifiers.
|
||
* testsuite/24_iterators/range_access/range_access_cpp17.cc:
|
||
Likewise.
|
||
|
||
2021-03-19 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/type_traits (is_scoped_enum): Define.
|
||
* include/std/version (__cpp_lib_is_scoped_enum): Define.
|
||
* testsuite/20_util/is_scoped_enum/value.cc: New test.
|
||
* testsuite/20_util/is_scoped_enum/version.cc: New test.
|
||
|
||
2021-03-16 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99341
|
||
* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
|
||
std::once_flag symbols.
|
||
* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
|
||
* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
|
||
* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
|
||
Likewise.
|
||
* config/abi/pre/gnu.ver: Likewise.
|
||
* src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
|
||
(struct __once_flag_compat): Remove.
|
||
(_ZNSt9once_flag11_M_activateEv): Remove.
|
||
(_ZNSt9once_flag9_M_finishEb): Remove.
|
||
|
||
2021-03-16 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99341
|
||
* include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
|
||
Revert to pthread_once_t implementation.
|
||
[_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
|
||
* src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
|
||
(struct __once_flag_compat): New type matching the reverted
|
||
implementation of once_flag using futexes.
|
||
(once_flag::_M_activate): Remove, replace with ...
|
||
(_ZNSt9once_flag11_M_activateEv): ... alias symbol.
|
||
(once_flag::_M_finish): Remove, replace with ...
|
||
(_ZNSt9once_flag9_M_finishEb): ... alias symbol.
|
||
* testsuite/30_threads/call_once/66146.cc: Removed.
|
||
|
||
2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* testsuite/17_intro/names.cc: Exclude j from the list
|
||
of test symbols for Darwin.
|
||
|
||
2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* config/os/bsd/darwin/ppc-extra.ver: Add matching for
|
||
to_chars and from_chars for long double.
|
||
|
||
2021-03-15 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/bits/max_size_type.h (__max_size_type::operator _Tp):
|
||
Fix formatting.
|
||
(__max_size_type::operator++): Define.
|
||
(__max_size_type::operator--): Likewise.
|
||
(__max_size_type::operator<=>): Conditionally define (in place
|
||
of the other comparison operators).
|
||
(__max_diff_type::operator _Tp): Fix formatting.
|
||
(__max_diff_type::operator++): Define.
|
||
(__max_diff_type::operator--): Likewise.
|
||
(__max_diff_type::operator<=>): Conditionally define (in place
|
||
of the other comparison operators).
|
||
* testsuite/std/ranges/iota/max_size_type.cc (test01): Test
|
||
these operator overloads.
|
||
|
||
2021-03-15 Caroline Tice <cmtice@google.com>
|
||
|
||
PR libstdc++/99172
|
||
* src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
|
||
AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
|
||
AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
|
||
filtered out.
|
||
* src/Makefile.in: Regenerate.
|
||
|
||
2021-03-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* src/c++17/floating_to_chars.cc: Simplify the file as if
|
||
__SIZEOF_INT128__ is always defined.
|
||
[!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
|
||
a base-10 to_chars overload for the uint128_t class type.
|
||
* src/c++17/uint128_t.h: New file.
|
||
* testsuite/20_util/to_chars/long_double.cc: No longer expect an
|
||
execution FAIL on targets that have a large long double type
|
||
but lack __int128.
|
||
|
||
2021-03-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* src/c++17/ryu/LOCAL_PATCHES: Update.
|
||
* src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
|
||
* src/c++17/ryu/generic_128.h: Likewise.
|
||
* src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
|
||
Use uint128_t instead of __uint128_t.
|
||
(generic_binary_to_decimal): Likewise.
|
||
|
||
2021-03-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* src/c++17/ryu/LOCAL_PATCHES: New file.
|
||
|
||
2021-03-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* src/c++17/floating_to_chars.cc (uint128_t): New conditionally
|
||
defined alias of unsigned __int128.
|
||
(floating_type_traits_binary128::mantissa_t): Use uint128_t
|
||
instead of unsigned __int128.
|
||
(floating_type_traits<long double>::mantissa_t)
|
||
[LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
|
||
(get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
|
||
and uint32_t explicit. Simplify the extraction of mantissa,
|
||
exponent and sign bit.
|
||
|
||
2021-03-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/barrier (barrier::arrival_token): New move-only
|
||
class that encapsulates the underlying token value.
|
||
|
||
2021-03-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* python/libstdcxx/v6/printers.py (find_type): Use tag attribute
|
||
instead of unqualified() method.
|
||
|
||
2021-03-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99537
|
||
* include/std/stop_token (_Stop_state_t::_M_release_ownership):
|
||
Use acq_rel memory ordering.
|
||
|
||
2021-03-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99533
|
||
* src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
|
||
helper function to check for permission denied errors.
|
||
* src/filesystem/dir.cc (recursive_directory_iterator):
|
||
Likewise.
|
||
* src/filesystem/dir-common.h (is_permission_denied_error): New
|
||
helper function.
|
||
|
||
2021-03-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99536
|
||
* include/bits/random.h (normal_distribution): Use
|
||
default-initializer for _M_saved and _M_saved_available.
|
||
|
||
2021-03-10 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
* testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
|
||
link with libatomic.
|
||
* testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
|
||
* testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
|
||
* testsuite/30_threads/barrier/arrive.cc: Likewise.
|
||
* testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
|
||
* testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
|
||
* testsuite/30_threads/barrier/completion.cc: Likewise.
|
||
* testsuite/30_threads/latch/3.cc: Likewise.
|
||
* testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
|
||
* testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
|
||
* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
|
||
|
||
2021-03-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99413
|
||
* include/bits/align.h: Include debug/assertions.h.
|
||
* include/bits/codecvt.h: Include bits/c++config.h.
|
||
* include/bits/enable_special_members.h: Likewise.
|
||
* include/bits/erase_if.h: Likewise.
|
||
* include/bits/functional_hash.h: Include <type_traits>.
|
||
* include/bits/invoke.h: Include bits/move.h.
|
||
* include/bits/ostream_insert.h: Include bits/exception_defines.h.
|
||
* include/bits/parse_numbers.h: Include <type_traits>.
|
||
* include/bits/predefined_ops.h: Include bits/c++config.h.
|
||
* include/bits/range_access.h: Include bits/stl_iterator.h.
|
||
* include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
|
||
* include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
|
||
* include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
|
||
* include/bits/uniform_int_dist.h: Include bits/concept_check.h.
|
||
* include/bits/unique_lock.h: Include bits/std_mutex.h.
|
||
* include/debug/assertions.h: Include bits/c++config.h.
|
||
|
||
2021-03-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
|
||
(ranges::equal_to, ranges::not_equal_to): Do not constrain
|
||
with __eq_builtin_ptr_cmp.
|
||
(ranges::less, ranges::greater, ranges::less_equal)
|
||
(ranges::greater_equal): Do not constrain with
|
||
__less_builtin_ptr_cmp.
|
||
* libsupc++/compare (compare_three_way): Do not constrain with
|
||
__3way_builtin_ptr_cmp.
|
||
* testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
|
||
* testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
|
||
* testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
|
||
|
||
2021-03-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
|
||
C++20 calendar types.
|
||
|
||
2021-03-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/99396
|
||
* include/std/bit (__rotl, __rotr): Add optimized variants for power of
|
||
two _Nd which the compiler can pattern match the rotates.
|
||
|
||
2021-03-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99382
|
||
* testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
|
||
Make storage larger than required. Verify no write to the last
|
||
element.
|
||
* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
|
||
Likewise.
|
||
|
||
2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
|
||
* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
|
||
Likewise.
|
||
* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
|
||
* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
|
||
Likewise.
|
||
|
||
2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* include/experimental/bits/simd.h: Replace reserved _X, _B by
|
||
_Xp, _Bp.
|
||
* include/experimental/bits/simd_builtin.h: Likewise.
|
||
* include/experimental/bits/simd_x86.h: Likewise.
|
||
|
||
2021-02-27 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99301
|
||
* include/std/chrono (year_month_day::_M_days_since_epoch()):
|
||
Convert chrono::month and chrono::day to unsigned before
|
||
converting to uint32_t.
|
||
|
||
2021-02-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/chrono (year_month_day::_S_from_days): Perform
|
||
all calculations with type uint32_t.
|
||
|
||
2021-02-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/abi.xml: Document versioning for GCC 11.
|
||
* doc/html/manual/abi.html: Regenerate.
|
||
|
||
2021-02-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99270
|
||
* testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
|
||
FILE instead of FILE.
|
||
|
||
2021-02-25 Andreas Schwab <schwab@suse.de>
|
||
|
||
* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
2021-02-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99265
|
||
* include/std/chrono (year_month_day::_S_from_days): Cast long
|
||
to int explicitly.
|
||
|
||
2021-02-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/utility (to_underlying): Define.
|
||
* include/std/version (__cpp_lib_to_underlying): Define.
|
||
* testsuite/20_util/to_underlying/1.cc: New test.
|
||
* testsuite/20_util/to_underlying/version.cc: New test.
|
||
|
||
2021-02-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99261
|
||
* src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
|
||
before value to be printed.
|
||
|
||
2021-02-24 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
|
||
Relax the condition that guards the printf code path to accept
|
||
F128_type as well as long double.
|
||
|
||
2021-02-24 Cassio Neri <cassio.neri@gmail.com>
|
||
|
||
* include/std/chrono (year_month_day_last:day): New
|
||
implementation.
|
||
|
||
2021-02-24 Cassio Neri <cassio.neri@gmail.com>
|
||
|
||
* include/std/chrono (year::is_leap): New implementation.
|
||
* testsuite/std/time/year/2.cc: New test.
|
||
|
||
2021-02-24 Cassio Neri <cassio.neri@gmail.com>
|
||
|
||
* include/std/chrono (year_month_day::_M_days_since_epoch):
|
||
New implementation.
|
||
* testsuite/std/time/year_month_day/4.cc: New test.
|
||
|
||
2021-02-24 Cassio Neri <cassio.neri@gmail.com>
|
||
|
||
* include/std/chrono (year_month_day::_S_from_days): New
|
||
implementation.
|
||
* testsuite/std/time/year_month_day/3.cc: New test.
|
||
|
||
2021-02-24 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/98384
|
||
* testsuite/20_util/to_chars/long_double.cc: Include <optional>.
|
||
(test01): Simplify verifying the nearby values by using a
|
||
2-iteration loop and a dedicated output buffer to check that the
|
||
nearby values are different. Factor out the printf-based
|
||
verification into a local function, and check that the leading
|
||
hex digits agree before comparing to the output of printf. Also
|
||
verify the output by round-tripping it through from_chars.
|
||
|
||
2021-02-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/98389
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
|
||
symbols for long double arguments mangled as 'g'.
|
||
* config/os/gnu-linux/ldbl-extra.ver: Likewise.
|
||
* config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
|
||
* src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
|
||
Use -mabi=ibmlongdouble for floating_to_chars.cc.
|
||
* src/c++17/Makefile.in: Regenerate.
|
||
* src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
|
||
New type defining type traits of IEEE binary128 format.
|
||
(floating_type_traits<__float128>): Define specialization.
|
||
(floating_type_traits<long double>): Define in terms of
|
||
floating_type_traits_binary128 when appropriate.
|
||
(floating_to_shortest_scientific): Handle __float128.
|
||
(sprintf_ld): New function template for printing a long double
|
||
or __ieee128 value using sprintf.
|
||
(__floating_to_chars_shortest, __floating_to_chars_precision):
|
||
Use sprintf_ld.
|
||
(to_chars): Define overloads for __float128.
|
||
|
||
2021-02-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
|
||
|
||
2021-02-23 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR c++/99074
|
||
* libsupc++/dyncast.cc (__dynamic_cast): Return null when
|
||
first argument is null.
|
||
|
||
2021-02-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/99181
|
||
* testsuite/21_strings/char_traits/requirements/char/99181.cc: New
|
||
test.
|
||
|
||
2021-02-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/99181
|
||
* include/bits/char_traits.h (char_traits<char>::compare): For
|
||
constexpr evaluation don't call
|
||
__gnu_cxx::char_traits<char_type>::compare but do the comparison loop
|
||
directly.
|
||
|
||
2021-02-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/97549
|
||
* include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
|
||
|
||
2021-02-23 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/98384
|
||
* src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
|
||
the high- and low-order parts from an IBM long double value
|
||
in an endian-agnostic way.
|
||
|
||
2021-02-19 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/atomic_wait.h (__thread_relax()): Call
|
||
__thread_yield() not __gthread_yield().
|
||
|
||
2021-02-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/atomic_wait.h (__thread_yield()): Check
|
||
_GLIBCXX_HAS_GTHREADS before using __gthread_yield.
|
||
(__thread_relax()): Use __thread_yield() instead of repeating
|
||
the preprocessor checks for __gthread_yield.
|
||
|
||
2021-02-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/mutex (once_flag::_M_activate()): Add explicit
|
||
return statement for passive case.
|
||
(once_flag::_M_finish(bool)): Use reserved name for parameter.
|
||
|
||
2021-02-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99096
|
||
* testsuite/util/testsuite_fs.h: Always include <unistd.h>.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/88881
|
||
* src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2014.xml: Document implementation
|
||
specific properties of std::experimental::filesystem::rename.
|
||
* doc/xml/manual/status_cxx2017.xml: Document implementation
|
||
specific properties of std::filesystem::rename.
|
||
* doc/html/*: Regenerate.
|
||
* src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
|
||
for directories on Windows.
|
||
* src/filesystem/ops-common.h (__gnu_posix::rename): Use
|
||
MoveFileExW on Windows.
|
||
* testsuite/27_io/filesystem/operations/rename.cc: New test.
|
||
* testsuite/experimental/filesystem/operations/rename.cc: New test.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/util/testsuite_fs.h (nonexistent_path): Add
|
||
random number to the path.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/internet (address_v6::to_string): Include
|
||
scope ID in string.
|
||
* testsuite/experimental/net/internet/address/v6/members.cc:
|
||
Test to_string() results.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/internet (address_v6::any): Avoid using
|
||
memcpy in constexpr function.
|
||
(address_v6::loopback): Likewise.
|
||
(make_address_v6): Fix missing return statements on error paths.
|
||
* include/experimental/io_context: Avoid -Wdangling-else
|
||
warning.
|
||
* testsuite/experimental/net/internet/address/v4/members.cc:
|
||
Remove unused variables.
|
||
* testsuite/experimental/net/internet/address/v6/members.cc:
|
||
New test.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
|
||
Add unused attribute to parameter.
|
||
* src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
|
||
Likewise.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
|
||
if -fno-rtti is used.
|
||
* testsuite/30_threads/async/forced_unwind.cc: Expect test
|
||
to abort if -fno-rtti is used.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/util/testsuite_allocator.h (memory_resource):
|
||
Remove requirement for RTTI and exceptions to be enabled.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
|
||
static_cast when RTTI is disabled.
|
||
* testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_stringstream/str/char/2.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
|
||
Likewise.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/ostream (__syncbuf_base::_S_get): Mark parameter
|
||
as unused and only use dynamic_cast when RTTI is enabled.
|
||
|
||
2021-02-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99077
|
||
* src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
|
||
Change int parameter to error_code, to match std::ios_failure.
|
||
(__throw_ios_failure(const char*, int)): Construct error_code
|
||
from int parameter.
|
||
|
||
2021-02-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
|
||
new macro.
|
||
* libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
|
||
macro instead of _GLIBCXX_EH_PTR_COMPAT.
|
||
(operator==): Likewise.
|
||
|
||
2021-02-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99058
|
||
* doc/xml/manual/status_cxx2011.xml: Document when support
|
||
became stable.
|
||
* doc/xml/manual/status_cxx2014.xml: Likewise.
|
||
* doc/xml/manual/status_cxx2017.xml: Likewise.
|
||
* doc/html/manual/status.html: Regenerate.
|
||
|
||
2021-02-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/88881
|
||
* src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
|
||
|
||
2021-02-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
|
||
(fs::remove): Use std::system_category() for error codes from
|
||
GetLastError().
|
||
* src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
|
||
Likewise.
|
||
|
||
2021-02-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
|
||
in __MINGW32__ macro name.
|
||
* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/generation/proximate.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/path/generation/relative.cc:
|
||
Likewise.
|
||
* testsuite/util/testsuite_fs.h: Likewise.
|
||
|
||
2021-02-09 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/stl_tree.h
|
||
(__has_is_transparent, __has_is_transparent_t): Move...
|
||
* include/bits/stl_function.h: ...here.
|
||
* include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
|
||
(_Hashtable_base<>::_M_equals_tr): New.
|
||
* include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
|
||
_Hashtable<>::_M_equal_range_tr): New member function templates to perform
|
||
heterogeneous lookup.
|
||
(_Hashtable<>::_M_find_before_node_tr): New.
|
||
(_Hashtable<>::_M_find_node_tr): New.
|
||
* include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
|
||
unordered_map::contains<>, unordered_map::equal_range<>): New member function
|
||
templates to perform heterogeneous lookup.
|
||
(unordered_multimap::find<>, unordered_multimap::count<>,
|
||
unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
|
||
* include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
|
||
unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
|
||
(unordered_multiset::find<>, unordered_multiset::count<>,
|
||
unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
|
||
* include/debug/unordered_map
|
||
(unordered_map::find<>, unordered_map::equal_range<>): Likewise.
|
||
(unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
|
||
* include/debug/unordered_set
|
||
(unordered_set::find<>, unordered_set::equal_range<>): Likewise.
|
||
(unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
|
||
* testsuite/23_containers/unordered_map/operations/1.cc: New test.
|
||
* testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
|
||
* testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
|
||
* testsuite/23_containers/unordered_set/operations/1.cc: New test.
|
||
|
||
2021-02-09 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/stl_deque.h
|
||
(std::operator-(deque::iterator, deque::iterator)): Replace if/then with
|
||
a null pointer test.
|
||
|
||
2021-02-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/27_io/filesystem/operations/remove_all.cc: Remove
|
||
test directory after making it writable again.
|
||
* testsuite/experimental/filesystem/operations/remove_all.cc:
|
||
Likewise.
|
||
|
||
2021-02-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/99021
|
||
* include/std/coroutine (coroutine_handle<P>::from_address): Add
|
||
noexcept.
|
||
|
||
2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
|
||
|
||
* include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
|
||
* src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
|
||
|
||
2021-02-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/98465
|
||
* include/bits/basic_string.tcc (basic_string::_M_replace): When __s
|
||
points to the characters moved by earlier _S_move, compute the source
|
||
address using expression based on the __p pointer rather than __s
|
||
pointer.
|
||
|
||
2021-02-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/19_diagnostics/error_code/operators/not_equal.cc:
|
||
Add comparison with same category and different values.
|
||
* testsuite/19_diagnostics/error_code/operators/less.cc:
|
||
Likewise. Fix comparison involving different categories.
|
||
* testsuite/19_diagnostics/error_code/operators/three_way.cc:
|
||
Likewise.
|
||
* testsuite/19_diagnostics/error_condition/operators/less.cc:
|
||
Add comment.
|
||
* testsuite/19_diagnostics/error_condition/operators/three_way.cc:
|
||
Likewise.
|
||
|
||
2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
|
||
|
||
* include/experimental/bits/simd_neon.h: Replace repeated vpadd
|
||
calls with a single vaddv for aarch64.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/Makefile.am: Warn about the workaround. Add
|
||
-fno-tree-vrp to CXXFLAGS passed to the check_simd script.
|
||
Improve initial user feedback from make check-simd.
|
||
* testsuite/Makefile.in: Regenerated.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* include/experimental/bits/simd.h: Add __detail::_Minimum and
|
||
__detail::_Maximum to use them as _BinaryOperation to _S_reduce.
|
||
Add hmin and hmax overloads for simd and const_where_expression.
|
||
* include/experimental/bits/simd_scalar.h
|
||
(_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
|
||
parameter const-ref to allow calling _S_reduce with an rvalue.
|
||
* testsuite/experimental/simd/tests/reductions.cc: Add tests for
|
||
hmin and hmax. Since the compiler statically determined that all
|
||
tests pass, repeat the test after a call to make_value_unknown.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/experimental/simd/tests/bits/verify.h (verify): Add
|
||
instruction pointer data member. Ensure that the `if (m_failed)`
|
||
branch is always inlined into the calling code. The body of the
|
||
conditional can still be a function call. Move the get_ip call
|
||
into the verify ctor to simplify the ctor calls.
|
||
(COMPARE): Don't mention the use of all_of for reduction of a
|
||
simd_mask. It only distracts from the real issue.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/experimental/simd/driver.sh: Abstract reading test
|
||
options into read_src_option function. Read skip, only,
|
||
expensive, and xfail via read_src_option. Add timeout and
|
||
timeout-factor options and adjust timeout variable accordingly.
|
||
* testsuite/experimental/simd/tests/loadstore.cc: Set
|
||
timeout-factor 2.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/experimental/simd/driver.sh: When handling the pipe
|
||
to log (and on verbose to stdout) count the lines. If it exceeds
|
||
1000 log the issue and exit 125, which is then handled as a
|
||
failure.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
|
||
markup for long double on powerpc64*.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* include/experimental/bits/simd.h: Add __have_power10vec
|
||
conditional on _ARCH_PWR10.
|
||
* include/experimental/bits/simd_builtin.h: Forward declare
|
||
_MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
|
||
defined.
|
||
(_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
|
||
_SuperImpl for optimizations and correctness.
|
||
* include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
|
||
(_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
|
||
Otherwise, for >=int use -vec_sums divided by a sizeof factor.
|
||
For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/experimental/simd/driver.sh: Remove executable on
|
||
SIGINT. Process compiler and test executable output: In verbose
|
||
mode print messages immediately, limited to 1000 lines and
|
||
breaking long lines to below $COLUMNS (or 1024 if not set).
|
||
Communicating the exit status of the compiler / test with the
|
||
necessary pipe is done via a message through stdout/-in.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/Makefile.am: Ensure .simd.summary is empty before
|
||
collecting a new summary.
|
||
* testsuite/Makefile.in: Regenerate.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/experimental/simd/generate_makefile.sh: Use
|
||
different variables internally than documented for user
|
||
overrides. This makes internal append/prepend work as intended.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/experimental/simd/driver.sh (verify_test): Print
|
||
test output on run xfail. Do not repeat lines from the log that
|
||
were already printed on stdout.
|
||
(test_selector): Make the compiler flags pattern usable as a
|
||
substring selector.
|
||
(toplevel): Trap on SIGINT and remove the log and sum files.
|
||
Call timout with --foreground to quickly terminate on SIGINT.
|
||
* testsuite/experimental/simd/generate_makefile.sh: Simplify run
|
||
targets via target patterns. Default DRIVEROPTS to -v for run
|
||
targets. Remove log and sum files after completion of the run
|
||
target (so that it's always recompiled).
|
||
Place help text into text file for reasonable 'make help'
|
||
performance.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* include/experimental/bits/simd.h: Remove unnecessary static
|
||
assertion. Allow sizeof(8) integer __intrinsic_type to enable
|
||
the necessary mask type.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* include/experimental/bits/simd.h: Let __intrinsic_type<long
|
||
double, N> be valid if sizeof(long double) == sizeof(double) and
|
||
use a __vector double as member type.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* include/experimental/bits/simd.h (__is_intrinsic_type): New
|
||
internal type trait. Alias for __is_vector_type on x86.
|
||
(_VectorTraitsImpl): Enable for __intrinsic_type in addition for
|
||
__vector_type.
|
||
(__intrin_bitcast): Allow casting to & from vector & intrinsic
|
||
types.
|
||
(__intrinsic_type): Explicitly specialize for NEON intrinsic
|
||
vector types.
|
||
|
||
2021-02-03 Matthias Kretz <kretz@kde.org>
|
||
|
||
* testsuite/experimental/simd/driver.sh: Implement skip, only,
|
||
expensive, and xfail markers. They can select on type, ABI tag
|
||
subset number, target-triplet, and compiler flags.
|
||
* testsuite/experimental/simd/generate_makefile.sh: The summary
|
||
now includes lines for unexpected passes and expected failures.
|
||
If the skip or only markers are only conditional on the type, do
|
||
not generate rules for those types.
|
||
* testsuite/experimental/simd/tests/abs.cc: Mark test expensive
|
||
for ABI tag subsets 1-9.
|
||
* testsuite/experimental/simd/tests/algorithms.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/broadcast.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/casts.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/generator.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/loadstore.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/operators.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/reductions.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/simd.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/split_concat.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/splits.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/where.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
|
||
addition replace "test only floattypes" marker by unconditional
|
||
"float|double|ldouble" only marker.
|
||
* testsuite/experimental/simd/tests/frexp.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
|
||
Ditto.
|
||
* testsuite/experimental/simd/tests/logarithm.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/remqo.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
|
||
* testsuite/experimental/simd/tests/sincos.cc: Ditto. In
|
||
addition, xfail on run because the reference data is missing.
|
||
|
||
2021-02-02 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
|
||
* doc/xml/manual/status_cxx2014.xml: Likewise.
|
||
* doc/xml/manual/status_cxx2017.xml: Likewise.
|
||
* doc/html/manual/status.html: Regenerate.
|
||
|
||
2021-02-01 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/70303
|
||
* include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
|
||
Return 0 if both iterators are value-initialized.
|
||
* testsuite/23_containers/deque/70303.cc: New test.
|
||
* testsuite/23_containers/vector/70303.cc: New test.
|
||
|
||
2021-02-01 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2011.xml: Update std::call_once
|
||
status.
|
||
* doc/xml/manual/status_cxx2014.xml: Likewise.
|
||
* doc/xml/manual/status_cxx2017.xml: Likewise. Update
|
||
std::from_chars and std::to_chars status. Fix formatting.
|
||
* doc/html/manual/status.html: Regenerate.
|
||
|
||
2021-01-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/bits/numeric_traits.h: Update copyright
|
||
dates.
|
||
* include/experimental/bits/simd.h: Likewise.
|
||
* include/experimental/bits/simd_builtin.h: Likewise.
|
||
* include/experimental/bits/simd_converter.h: Likewise.
|
||
* include/experimental/bits/simd_detail.h: Likewise.
|
||
* include/experimental/bits/simd_fixed_size.h: Likewise.
|
||
* include/experimental/bits/simd_math.h: Likewise.
|
||
* include/experimental/bits/simd_neon.h: Likewise.
|
||
* include/experimental/bits/simd_ppc.h: Likewise.
|
||
* include/experimental/bits/simd_scalar.h: Likewise.
|
||
* include/experimental/bits/simd_x86.h: Likewise.
|
||
* include/experimental/bits/simd_x86_conversions.h: Likewise.
|
||
* include/experimental/simd: Likewise.
|
||
* testsuite/experimental/simd/*: Likewise.
|
||
|
||
2021-01-27 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
|
||
* doc/html/*: Regenerate.
|
||
|
||
2021-01-27 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/experimental/simd/generate_makefile.sh: Use printf
|
||
instead of echo when printing escape characters.
|
||
|
||
2021-01-27 Matthias Kretz <kretz@kde.org>
|
||
|
||
* scripts/check_simd: New file. This script is called from the
|
||
the check-simd target. It determines a set of compiler flags and
|
||
simulator setups for calling generate_makefile.sh and passes the
|
||
information back to the check-simd target, which recurses to the
|
||
generated Makefiles.
|
||
* scripts/create_testsuite_files: Remove files below simd/tests/
|
||
from testsuite_files and place them in testsuite_files_simd.
|
||
* testsuite/Makefile.am: Add testsuite_files_simd. Add
|
||
check-simd target.
|
||
* testsuite/Makefile.in: Regenerate.
|
||
* testsuite/experimental/simd/driver.sh: New file. This script
|
||
compiles and runs a given simd test, logging its output and
|
||
status. It uses the timeout command to implement compile and
|
||
test timeouts.
|
||
* testsuite/experimental/simd/generate_makefile.sh: New file.
|
||
This script generates a Makefile which uses driver.sh to compile
|
||
and run the tests and collect the logs into a single log file.
|
||
* testsuite/experimental/simd/tests/abs.cc: New file. Tests
|
||
abs(simd).
|
||
* testsuite/experimental/simd/tests/algorithms.cc: New file.
|
||
Tests min/max(simd, simd).
|
||
* testsuite/experimental/simd/tests/bits/conversions.h: New
|
||
file. Contains functions to support tests involving conversions.
|
||
* testsuite/experimental/simd/tests/bits/make_vec.h: New file.
|
||
Support functions make_mask and make_vec.
|
||
* testsuite/experimental/simd/tests/bits/mathreference.h: New
|
||
file. Support functions to supply precomputed math function
|
||
reference data.
|
||
* testsuite/experimental/simd/tests/bits/metahelpers.h: New
|
||
file. Support code for SFINAE testing.
|
||
* testsuite/experimental/simd/tests/bits/simd_view.h: New file.
|
||
* testsuite/experimental/simd/tests/bits/test_values.h: New
|
||
file. Test functions to easily drive a test with simd objects
|
||
initialized from a given list of values and a range of random
|
||
values.
|
||
* testsuite/experimental/simd/tests/bits/ulp.h: New file.
|
||
Support code to determine the ULP distance of simd objects.
|
||
* testsuite/experimental/simd/tests/bits/verify.h: New file.
|
||
Test framework for COMPARE'ing simd objects and instantiating
|
||
the test templates with value_type and ABI tag.
|
||
* testsuite/experimental/simd/tests/broadcast.cc: New file. Test
|
||
simd broadcasts.
|
||
* testsuite/experimental/simd/tests/casts.cc: New file. Test
|
||
simd casts.
|
||
* testsuite/experimental/simd/tests/fpclassify.cc: New file.
|
||
Test floating-point classification functions.
|
||
* testsuite/experimental/simd/tests/frexp.cc: New file. Test
|
||
frexp(simd).
|
||
* testsuite/experimental/simd/tests/generator.cc: New file. Test
|
||
simd generator constructor.
|
||
* testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
|
||
Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
|
||
* testsuite/experimental/simd/tests/integer_operators.cc: New
|
||
file. Test integer operators.
|
||
* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
|
||
New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
|
||
modf(simd).
|
||
* testsuite/experimental/simd/tests/loadstore.cc: New file. Test
|
||
(converting) simd loads and stores.
|
||
* testsuite/experimental/simd/tests/logarithm.cc: New file. Test
|
||
log*(simd).
|
||
* testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
|
||
Test simd_mask broadcasts.
|
||
* testsuite/experimental/simd/tests/mask_conversions.cc: New
|
||
file. Test simd_mask conversions.
|
||
* testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
|
||
file. Test simd_mask implicit conversions.
|
||
* testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
|
||
Test simd_mask loads and stores.
|
||
* testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
|
||
file. Test simd_mask operators convert as specified.
|
||
* testsuite/experimental/simd/tests/mask_operators.cc: New file.
|
||
Test simd_mask compares, subscripts, and negation.
|
||
* testsuite/experimental/simd/tests/mask_reductions.cc: New
|
||
file. Test simd_mask reductions.
|
||
* testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
|
||
1-arg math functions on simd.
|
||
* testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
|
||
2-arg math functions on simd.
|
||
* testsuite/experimental/simd/tests/operator_cvt.cc: New file.
|
||
Test implicit conversions on simd binary operators behave as
|
||
specified.
|
||
* testsuite/experimental/simd/tests/operators.cc: New file. Test
|
||
simd compares, subscripts, not, unary minus, plus, minus,
|
||
multiplies, divides, increment, and decrement.
|
||
* testsuite/experimental/simd/tests/reductions.cc: New file.
|
||
Test reduce(simd).
|
||
* testsuite/experimental/simd/tests/remqo.cc: New file. Test
|
||
remqo(simd).
|
||
* testsuite/experimental/simd/tests/simd.cc: New file. Basic
|
||
sanity checks of simd types.
|
||
* testsuite/experimental/simd/tests/sincos.cc: New file. Test
|
||
sin(simd) and cos(simd).
|
||
* testsuite/experimental/simd/tests/split_concat.cc: New file.
|
||
Test split(simd) and concat(simd, simd).
|
||
* testsuite/experimental/simd/tests/splits.cc: New file. Test
|
||
split(simd_mask).
|
||
* testsuite/experimental/simd/tests/trigonometric.cc: New file.
|
||
Test remaining trigonometric functions on simd.
|
||
* testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
|
||
file. Test trunc(simd), ceil(simd), and floor(simd).
|
||
* testsuite/experimental/simd/tests/where.cc: New file. Test
|
||
masked operations using where.
|
||
|
||
2021-01-27 Matthias Kretz <kretz@kde.org>
|
||
|
||
* doc/xml/manual/status_cxx2017.xml: Add implementation status
|
||
of the Parallelism TS 2. Document implementation-defined types
|
||
and behavior.
|
||
* include/Makefile.am: Add new headers.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/experimental/simd: New file. New header for
|
||
Parallelism TS 2.
|
||
* include/experimental/bits/numeric_traits.h: New file.
|
||
Implementation of P1841R1 using internal naming. Addition of
|
||
missing IEC559 functionality query.
|
||
* include/experimental/bits/simd.h: New file. Definition of the
|
||
public simd interfaces and general implementation helpers.
|
||
* include/experimental/bits/simd_builtin.h: New file.
|
||
Implementation of the _VecBuiltin simd_abi.
|
||
* include/experimental/bits/simd_converter.h: New file. Generic
|
||
simd conversions.
|
||
* include/experimental/bits/simd_detail.h: New file. Internal
|
||
macros for the simd implementation.
|
||
* include/experimental/bits/simd_fixed_size.h: New file. Simd
|
||
fixed_size ABI specific implementations.
|
||
* include/experimental/bits/simd_math.h: New file. Math
|
||
overloads for simd.
|
||
* include/experimental/bits/simd_neon.h: New file. Simd NEON
|
||
specific implementations.
|
||
* include/experimental/bits/simd_ppc.h: New file. Implement bit
|
||
shifts to avoid invalid results for integral types smaller than
|
||
int.
|
||
* include/experimental/bits/simd_scalar.h: New file. Simd scalar
|
||
ABI specific implementations.
|
||
* include/experimental/bits/simd_x86.h: New file. Simd x86
|
||
specific implementations.
|
||
* include/experimental/bits/simd_x86_conversions.h: New file.
|
||
x86 specific conversion optimizations. The conversion patterns
|
||
work around missing conversion patterns in the compiler and
|
||
should be removed as soon as PR85048 is resolved.
|
||
* testsuite/experimental/simd/standard_abi_usable.cc: New file.
|
||
Test that all (not all fixed_size<N>, though) standard simd and
|
||
simd_mask types are usable.
|
||
* testsuite/experimental/simd/standard_abi_usable_2.cc: New
|
||
file. As above but with -ffast-math.
|
||
* testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
|
||
from the standard test loop. Instead use
|
||
check_vect_support_and_set_flags to build simd tests with the
|
||
relevant machine flags.
|
||
|
||
2021-01-27 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/66414
|
||
* include/bits/string_view.tcc
|
||
(basic_string_view::find(const CharT*, size_type, size_type)):
|
||
Optimize.
|
||
|
||
2021-01-27 Paul Fee <paul.f.fee@gmail.com>
|
||
|
||
* include/bits/basic_string.h (basic_string::contains): New
|
||
member functions.
|
||
* include/std/string_view (basic_string_view::contains):
|
||
Likewise.
|
||
* include/std/version (__cpp_lib_string_contains): Define.
|
||
* testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
|
||
Remove trailing whitespace.
|
||
* testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
|
||
* testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
|
||
* testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
|
||
* testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
|
||
* testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
|
||
|
||
2021-01-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++17/Makefile.in: Regenerate.
|
||
|
||
2021-01-20 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
|
||
_OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
|
||
__lc_type.
|
||
(const char* ctype<char>:: is): Same.
|
||
|
||
2021-01-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/98725
|
||
* testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
|
||
write to a wide character stream if wide character support is
|
||
disabled in the library.
|
||
|
||
2021-01-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
|
||
stringbuf not wstringbuf.
|
||
|
||
2021-01-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/98708
|
||
* src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
|
||
Compile with -gno-as-loc-support.
|
||
* src/c++11/Makefile.in: Regenerated.
|
||
|
||
2021-01-16 H.J. Lu <hjl.tools@gmail.com>
|
||
|
||
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
|
||
Add -fcf-protection=none to -march=i486.
|
||
|
||
2021-01-14 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
|
||
compliant.
|
||
|
||
2021-01-14 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* testsuite/30_threads/future/members/poll.cc: Calibrate
|
||
iteration count.
|
||
|
||
2021-01-14 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/98466
|
||
* include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
|
||
(_Node_iterator()): Make default.
|
||
(_Node_const_iterator()): Make default.
|
||
* include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
|
||
iterator checks.
|
||
* include/debug/safe_iterator.h
|
||
(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
|
||
* include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
|
||
Likewise.
|
||
* include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
|
||
_M_singular checks on input iterators.
|
||
* src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
|
||
checks.
|
||
* testsuite/23_containers/deque/debug/98466.cc: New test.
|
||
* testsuite/23_containers/unordered_map/debug/98466.cc: New test.
|
||
|
||
2021-01-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/98471
|
||
* include/bits/fs_path.h (__throw_conversion_error): New
|
||
function to throw or abort on character conversion errors.
|
||
(__wstr_from_utf8): Move definition after filesystem_error has
|
||
been defined. Use __throw_conversion_error.
|
||
(path::_S_convert<_EcharT>): Use __throw_conversion_error.
|
||
(path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
|
||
(path::u8string): Likewise.
|
||
|
||
2021-01-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/barrier: Update copyright years. Fix whitespace.
|
||
* include/std/version: Fix whitespace.
|
||
* testsuite/30_threads/barrier/1.cc: Update copyright years.
|
||
* testsuite/30_threads/barrier/2.cc: Likewise.
|
||
* testsuite/30_threads/barrier/arrive.cc: Likewise.
|
||
* testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
|
||
* testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
|
||
* testsuite/30_threads/barrier/completion.cc: Likewise.
|
||
|
||
2021-01-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
|
||
|
||
2021-01-10 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
PR libstdc++/98613
|
||
* testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
|
||
warning.
|
||
* testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
|
||
|
||
2021-01-08 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* testsuite/20_util/bind/ref_neg.cc: Tweak the
|
||
dg-prune-output regex for out-of-build-tree contexts.
|
||
|
||
2021-01-07 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
* doc/doxygen/user.cfg.in: Add new header.
|
||
* include/Makefile.am (std_headers): likewise.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/precompiled/stdc++.h: Add new header.
|
||
* include/std/barrier: New file.
|
||
* include/std/version: Add __cpp_lib_barrier feature test macro.
|
||
* testsuite/30_threads/barrier/1.cc: New test.
|
||
* testsuite/30_threads/barrier/2.cc: Likewise.
|
||
* testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
|
||
* testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
|
||
* testsuite/30_threads/barrier/arrive.cc: Likewise.
|
||
* testsuite/30_threads/barrier/completion.cc: Likewise.
|
||
|
||
2021-01-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/98384
|
||
* testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
|
||
instead of the non-standard nextupl and nextdownl.
|
||
|
||
2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||
|
||
* configure: Re-generate.
|
||
|
||
2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
|
||
|
||
* include/precompiled/stdc++.h: Add <source_location> to C++20 section.
|
||
|
||
2021-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* ChangeLog-2020: Rotate ChangeLog. New file.
|
||
|
||
|
||
Copyright (C) 2021 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|