1 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
3 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4 * doc/html/manual/facets.html: Regenerate.
6 2021-04-30 Patrick Palka <ppalka@redhat.com>
8 * include/std/ranges (__detail::__non_propating_cache): Define
10 (join_view): Remove constraints on the value and reference types
11 of the wrapped iterator type as per P2328.
12 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
13 (join_view::_Iterator::operator++): Likewise.
14 (join_view::_M_inner): Use __non_propating_cache as per P2328.
15 Remove now-redundant use of __maybe_present_t.
16 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
19 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
21 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
22 Only define for C++17 and later.
23 * include/std/version (__cpp_lib_semaphore): Fix condition
24 to match the one in <semaphore>.
26 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
28 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
29 * config.h.in: Regenerate.
30 * configure: Regenerate.
31 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
32 * include/bits/postypes.h: Remove include of <stdint.h> and
33 definition/undefinition of the __STDC_LIMIT_MACROS and
34 __STDC_CONSTANT_MACROS macros.
35 (streamoff): Use __INT64_TYPE__ if defined.
37 2021-04-30 Patrick Palka <ppalka@redhat.com>
39 * include/std/ranges (split_view::_InnerIter::operator++):
40 Depend on _Base instead of _Vp directly, as per LWG 3532.
42 2021-04-30 Patrick Palka <ppalka@redhat.com>
44 * include/bits/ranges_util.h (subrange::subrange): Avoid
45 list-initialization in delegating constructor.
46 * include/std/ranges (single_view): Replace implicit guide
47 with explicit deduction guide that decays its argument.
48 (_Single::operator()): Avoid CTAD when constructing the
50 (_Iota::operator()): Avoid list-initialization.
51 (__detail::__can_filter_view, _Filter::operator()): Likewise.
52 (__detail::__can_transform_view, _Transform::operator()): Likewise.
53 (take_view::begin): Likewise.
54 (__detail::__can_take_view, _Take::operator()): Likewise.
55 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
56 (__detail::__can_drop_view, _Drop::operator()): Likewise.
57 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
58 (split_view::split_view): Use views::single when initializing
60 (__detail::__can_split_view, _Split::operator()): Avoid
62 (_Counted::operator()): Likewise.
63 * testsuite/std/ranges/p2367.cc: New test.
65 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
68 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
70 * include/bits/basic_string.tcc (basic_string::swap)
71 (basic_string::assign): Likewise.
72 * include/bits/deque.tcc (deque::operator=(const deque&)):
74 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
76 * include/bits/vector.tcc (vector::operator=(const vector&)):
79 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
81 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
83 * include/std/ostream (operator<<(Ostream&&, const x&)):
85 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
86 Adjust dg-error pattern.
87 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
89 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
90 is_extractable trait to replace std::__is_extractable. Make it
91 work with rvalue streams as well as lvalues, to replace f() and
93 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
95 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
96 Define is_insertable trait to replace std::__is_insertable. Make
97 it work with rvalue streams as well as lvalues, to replace f()
98 and g() helper functions.
99 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
101 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
102 errors from new constraints.
103 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
104 which are no longer expected to compile.
105 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
106 Verify LWG 1203 changes.
108 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
111 * include/experimental/socket (__basic_socket_impl::set_option)
112 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
114 * testsuite/experimental/net/socket/socket_base.cc: CHeck
115 for <sys/socket.h> not <socket.h>.
117 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
122 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
123 Use new effective-target keyword.
124 * testsuite/experimental/net/internet/address/v4/cons.cc:
126 * testsuite/experimental/net/internet/address/v4/creation.cc:
128 * testsuite/experimental/net/internet/address/v4/members.cc:
130 * testsuite/experimental/net/internet/address/v6/members.cc:
132 * testsuite/experimental/net/internet/resolver/base.cc:
134 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
136 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
138 * testsuite/experimental/net/internet/socket/opt.cc:
140 * testsuite/experimental/net/internet/tcp.cc:
142 * testsuite/experimental/net/internet/udp.cc:
144 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
145 New proc to check net_ts_ip et.
147 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
150 * testsuite/20_util/pair/requirements/structural.cc: New test.
152 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
154 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
155 new definitions for constructors and assignment operators using
156 concepts for constraints.
157 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
159 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
160 expected error messages to also match C++20 errors.
162 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
165 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
166 Combine and replace with ...
167 (_PCC::_DeprConsPair): New SFINAE helper function.
168 (pair): Merge preprocessor blocks so that all C++03 members
169 are defined together at the end.
170 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
171 Replace _T1 and _T2 parameters with __null_ptr_constant and
173 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
174 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
175 * testsuite/20_util/pair/cons/99957.cc: New test.
177 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
179 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
180 * include/std/version (__cpp_lib_constexpr_string): Define.
181 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
182 Check for __cpp_lib_constexpr_string.
183 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
185 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
187 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
189 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
190 dealing with errors. Use '@' to prevent shell command being
192 * doc/Makefile.in: Regenerate.
194 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
197 * include/bits/std_thread.h (thread::hardware_concurrency): Add
198 missing noexcept to inline definition for non-gthreads targets.
200 2021-04-28 Patrick Palka <ppalka@redhat.com>
206 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
207 the __value_comp lambda an explicit bool return type.
208 (__is_permutation_fn::operator()): Give the __proj_scan local
209 variable auto&& return type. Give the __comp_scan lambda an
210 explicit bool return type.
211 (__remove_fn::operator()): Give the __pred lambda an explicit
213 (__partition_fn::operator()): Don't std::move __first twice
214 when returning an empty subrange.
215 (__min_fn::operator()): Don't std::move __comp.
216 (__max_fn::operator()): Likewise.
217 (__minmax_fn::operator()): Likewise.
219 2021-04-27 Patrick Palka <ppalka@redhat.com>
222 * include/std/ranges (join_view::_Iterator::operator++): Correct
223 the return type of the lambda to avoid returning a copy of
225 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
227 2021-04-27 Jakub Jelinek <jakub@redhat.com>
230 2021-04-22 Jakub Jelinek <jakub@redhat.com>
233 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
235 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
238 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
240 * include/experimental/internet (address_v6::bytes_type): Adjust
242 (basic_endpoint): Define _M_is_v6() to put all checks for
243 AF_INET6 in one place.
244 (basic_endpoint::resize): Simplify.
245 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
246 (operator!=(const tcp&, const tcp&)): Likewise.
247 (operator==(const udp&, const udp&)): Likewise.
248 (operator!=(const udp&, const udp&)): Likewise.
249 * testsuite/experimental/net/internet/tcp.cc: New test.
250 * testsuite/experimental/net/internet/udp.cc: New test.
252 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
255 * include/experimental/internet (resolver_errc, resolver_category())
256 (make_error_code, make_error_condition): Define unconditionally,
257 only make enumerators and use of gai_strerror depend on the
258 availability of <netdb.h>.
259 (address_v4::to_string): Use correct constant for string length.
260 (address_v4::to_string, address_v6::to_string): Define
261 unconditionally, throw if unsupported.
262 (make_address_v4, make_address_v6): Define unconditionally.
263 Return an error if unsupported.
264 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
266 * testsuite/experimental/net/internet/socket/opt.cc: Check for
267 <netinet/in.h> and <netinet/tcp.h> before using types from
270 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
273 * include/experimental/internet (resolver_base::flags):
274 Define overloaded operators as hidden friends.
275 * include/experimental/socket (socket_base::message_flags):
278 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
280 * include/experimental/internet (tcp::no_delay, v6_only)
281 (unicast::hops, multicast::hops, multicast::enable_loopback):
282 Change access of base class and static data members. Add
283 using-declaration for __socket_crtp::operator=(_Tp).
284 (multicast::__mcastopt): New type.
285 (multicast::join_group, multicast::leave_group): Derive from
286 __mcastopt for common implementation.
287 * include/experimental/socket: Add comment.
288 * testsuite/experimental/net/internet/socket/opt.cc: New test.
289 * testsuite/experimental/net/socket/socket_base.cc: Check for
290 protected constructor/destructor of socket_base. Check for
291 explicit constructors of socket option classes.
293 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
295 * include/experimental/bits/net.h (__socket_base): Add
296 bool template parameter to allow BooleanSocketOption and
297 IntegerSocketOption to have different __socket_base<int>
299 (__socket_base<bool>): Adjust base class.
300 (__socket_base<int>): Add partial specialization.
301 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
302 * include/experimental/socket (socket_base::broadcast)
303 (socket_base::debug, socket_base::do_not_route)
304 (socket_base::keep_alive, socket_base::linger)
305 (socket_base::out_of_band_inline)
306 (socket_base::receive_buffer_size)
307 (socket_base::receive_low_watermark)
308 (socket_base::reuse_address, socket_base::send_buffer_size)
309 (socket_base::send_low_watermark): Add using-declaration for
310 __socket_crtp::operator=(_Tp).
311 * testsuite/experimental/net/socket/socket_base.cc: Check
312 properties of socket option types.
314 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
316 * include/experimental/internet (resolver_base::flags): Remove
317 enumerators. Initialize constants directly with desired values.
318 Make all operators constexpr and noexcept.
319 * testsuite/experimental/net/internet/resolver/base.cc: Use
320 __gnu_test::test_bitmask_values for bitmask type. Check
321 construction and destruction is protected.
323 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
325 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
327 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
330 * include/experimental/internet (net::ip::make_error_code)
331 (net::ip::make_error_condition, net::ip::make_network_v4)
332 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
334 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
336 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
337 (add_options_for_libatomic): Use atomic_link_flags.
339 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
342 * include/experimental/io_context (io_context): Define
343 dummy_pollfd type so that most member functions still compile
344 without <poll.h> and struct pollfd.
346 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
348 * include/experimental/io_context (io_context::async_wait): Add
350 * include/experimental/socket (basic_socket::async_connect):
351 Cast wait_type constant to int.
352 (basic_datagram_socket::async_receive): Likewise.
353 (basic_datagram_socket::async_receive_from): Likewise.
354 (basic_datagram_socket::async_send): Likewise.
355 (basic_datagram_socket::async_send_to): Likewise.
356 (basic_stream_socket::async_receive): Likewise.
357 (basic_stream_socket::async_send): Likewise. Use io_context
358 parameter directly, instead of via an executor.
359 (basic_socket_acceptor::async_accept): Likewise.
361 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
363 * include/experimental/socket (socket_base::shutdown_type):
364 (socket_base::wait_type, socket_base::message_flags):
365 Remove enumerators. Initialize constants directly with desired
367 (socket_base::message_flags): Make all operators constexpr and
369 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
371 * testsuite/experimental/net/socket/socket_base.cc: New test.
373 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
375 * config/os/aix/atomicity.h: Delete.
377 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
379 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
380 Handle system_clock as well as steady_clock.
381 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
382 * testsuite/30_threads/semaphore/try_acquire_until.cc:
385 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
387 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
388 options for libatomic.
390 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
392 * config/os/gnu-linux/os_defines.h: Fix type in comment.
394 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
397 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
398 is not an array type.
399 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
400 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
402 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
404 * include/bits/atomic_wait.h: Always notify waiters in the
405 case of 'bare' address notification.
407 2021-04-22 Jakub Jelinek <jakub@redhat.com>
410 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
412 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
415 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
418 * include/bits/semaphore_base.h: Remove #error.
419 * include/std/semaphore: Do not define anything unless one of
420 the implementations is available.
422 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
424 * include/bits/semaphore_base.h: Always reload __old in
425 __atomic_semaphore::_S_do_try_acquire().
426 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
429 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
430 Jonathan Wakely <jwakely@redhat.com>
433 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
434 * python/Makefile.in: Regenerate.
436 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
438 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
439 member to __platform_wait.
441 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
443 * include/std/latch: Replace tab characters in license text.
444 * include/std/semaphore: Likewise.
446 2021-04-21 Jakub Jelinek <jakub@redhat.com>
449 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
450 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
451 * configure: Regenerated.
452 * config.h.in: Regenerated.
454 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
456 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
457 test for targets not using futexes for semaphores.
458 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
459 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
460 Disable for all targets.
462 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
464 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
465 * include/Makefile.in: Regenerate.
466 * include/bits/this_thread_sleep.h: New file.
467 * include/bits/atomic_base.h: Adjust all calls
468 to __atomic_wait/__atomic_notify for new call signatures.
469 * include/bits/atomic_timed_wait.h: Extensive rewrite.
470 * include/bits/atomic_wait.h: Likewise.
471 * include/bits/semaphore_base.h: Adjust all calls
472 to __atomic_wait/__atomic_notify for new call signatures.
473 * include/std/atomic: Likewise.
474 * include/std/barrier: Likewise.
475 * include/std/latch: Likewise.
476 * include/std/semaphore: Likewise.
477 * include/std/thread (this_thread::sleep_for)
478 (this_thread::sleep_until): Move to new header.
479 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
481 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
482 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
483 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
484 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
485 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
486 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
488 2021-04-20 Patrick Palka <ppalka@redhat.com>
491 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
493 (move_iterator): Derive from the above in C++20 in order to
494 conditionally define iterator_category as per P2259.
495 (move_iterator::__base_cat): No longer used, so remove.
496 (move_iterator::iterator_category): Remove in C++20.
497 (__detail::__common_iter_use_postfix_proxy): Define.
498 (common_iterator::_Proxy): Rename to ...
499 (common_iterator:__arrow_proxy): ... this.
500 (common_iterator::__postfix_proxy): Define as per P2259.
501 (common_iterator::operator->): Adjust.
502 (common_iterator::operator++): Adjust as per P2259.
503 (iterator_traits<common_iterator>::_S_iter_cat): Define.
504 (iterator_traits<common_iterator>::iterator_category): Change as
506 (__detail::__counted_iter_value_type): Define.
507 (__detail::__counted_iter_concept): Define.
508 (__detail::__counted_iter_cat): Define.
509 (counted_iterator): Derive from the above three classes in order
510 to conditionally define value_type, iterator_concept and
511 iterator category respectively as per P2259.
512 (counted_iterator::operator->): Define as per P2259.
513 (incrementable_traits<counted_iterator>): Remove as per P2259.
514 (iterator_traits<counted_iterator>): Adjust as per P2259.
515 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
516 (iota_view::_Iterator): Derive from the above in order to
517 conditionally define iterator_category as per P2259.
518 (iota_view::_S_iter_cat): Rename to ...
519 (iota_view::_S_iter_concept): ... this.
520 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
521 (iota_view::iterator_category): Remove.
522 (__detail::__filter_view_iter_cat): Define.
523 (filter_view::_Iterator): Derive from the above in order to
524 conditionally define iterator_category as per P2259.
525 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
526 (filter_view::_Iterator::iterator_category): Remove.
527 (transform_view::_Base): Define.
528 (transform_view::__iter_cat): Define.
529 (transform_view::_Iterator): Derive from the above in order to
530 conditionally define iterator_category as per P2259.
531 (transform_view::_Iterator::_Base): Just alias
532 transform_view::_Base.
533 (transform_view::_Iterator::_S_iter_cat): Move to struct
534 transform_view::__iter_cat.
535 (transform_view::_Iterator::iterator_category): Remove.
536 (transform_view::_Sentinel::_Base): Just alias
537 transform_view::_Base.
538 (join_view::_Base): Define.
539 (join_view::_Outer_iter): Define.
540 (join_view::_Inner_iter): Define.
541 (join_view::_S_ref_is_glvalue): Define.
542 (join_view::__iter_cat): Define.
543 (join_view::_Iterator): Derive from it in order to conditionally
544 define iterator_category as per P2259.
545 (join_view::_Iterator::_Base): Just alias join_view::_Base.
546 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
547 join_view::_S_ref_is_glvalue.
548 (join_view::_Iterator::_S_iter_cat): Move to struct
549 transform_view::__iter_cat.
550 (join_view::_Iterator::_Outer_iter): Just alias
551 join_view::_Outer_iter.
552 (join_view::_Iterator::_Inner_iter): Just alias
553 join_view::_Inner_iter.
554 (join_view::_Iterator::iterator_category): Remove.
555 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
556 (__detail::__split_view_outer_iter_cat): Define.
557 (__detail::__split_view_inner_iter_cat): Define.
558 (split_view::_Base): Define.
559 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
560 in order to conditionally define iterator_category as per P2259.
561 (split_view::_Outer_iter::iterator_category): Remove.
562 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
563 in order to conditionally define iterator_category as per P2259.
564 (split_view::_Inner_iter::_S_iter_cat): Move to
565 __split_view_inner_iter_cat.
566 (split_view::_Inner_iter::iterator_category): Remove.
567 (elements_view::_Base): Define.
568 (elements_view::__iter_cat): Define.
569 (elements_view::_Iterator): Derive from the above in order to
570 conditionall define iterator_category as per P2259.
571 (elements_view::_Iterator::_Base): Just alias
572 elements_view::_Base.
573 (elements_view::_Iterator::_S_iter_concept)
574 (elements_view::_Iterator::iterator_concept): Define as per
576 (elements_view::_Iterator::iterator_category): Remove.
577 (elements_view::_Sentinel::_Base): Just alias
578 elements_view::_Base.
579 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
580 Adjust constraints on iterator_traits<counted_iterator>.
581 * testsuite/std/ranges/p2259.cc: New test.
583 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
586 * include/std/charconv (__cpp_lib_to_chars): Define
588 * include/std/version (__cpp_lib_to_chars): Likewise..
589 * testsuite/20_util/from_chars/4.cc: Only check feature test
590 macro, not _GLIBCXX_HAVE_USELOCALE.
591 * testsuite/20_util/from_chars/5.cc: Likewise.
592 * testsuite/20_util/from_chars/6.cc: Likewise.
593 * testsuite/20_util/to_chars/long_double.cc: Likewise.
595 2021-04-20 Jakub Jelinek <jakub@redhat.com>
597 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
598 versions with _IEEE128_ substring are found, set ieee_version_found
599 to true. Ignore missing symbols with _IEEE128_ in version name if
600 !ieee_version_found. Use i->first as version_name instead of
601 i->second.version_name if the latter is empty.
602 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
604 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
606 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
609 2021-04-17 Jakub Jelinek <jakub@redhat.com>
611 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
612 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
614 2021-04-17 Jakub Jelinek <jakub@redhat.com>
616 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
617 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
618 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
619 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
620 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
621 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
623 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
625 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
626 add libatomic options for 32-bit sparc*-*-linux-gnu.
628 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
631 * libsupc++/Makefile.am: Add atomicity.cc here.
632 * src/c++98/Makefile.am: Remove it from here.
633 * libsupc++/Makefile.in: Regenerate.
634 * src/c++98/Makefile.in: Regenerate.
635 * testsuite/18_support/exception_ptr/96657.cc: New test.
637 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
640 * include/std/bit: Only include <ext/numeric_traits.h> for
641 hosted build, use <limits> otherwise.
643 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
645 * doc/xml/manual/backwards_compatibility.xml: Remove porting
646 notes for libg++ and libstdc++-v2, and bibliography.
647 * doc/html/*: Regenerated.
649 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
652 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
653 Remove helper concept.
654 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
655 deduction guides, as per LWG 3404.
656 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
657 template argument deduction fails.
659 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
661 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
662 Adjust expected error for C++20 mode.
663 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
666 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
669 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
670 standard headers and XFAIL for effective-target c++20.
672 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
675 * include/debug/helper_functions.h (__can_advance(_InputIterator,
676 const std::pair<_Diff, _Distance_precision>&, int)): New.
677 (__can_advance(const _Safe_iterator<>&,
678 const std::pair<_Diff, _Distance_precision>&, int)): New.
679 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
681 (__glibcxx_check_can_increment_range): Adapt to use latter.
682 (__glibcxx_check_can_decrement_range): Likewise.
683 * include/debug/safe_iterator.h
684 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
686 (__can_advance(const _Safe_iterator<>&,
687 const std::pair<_Diff, _Distance_precision>&, int)): New.
688 * include/debug/safe_iterator.tcc
689 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
691 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
692 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
694 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
695 (__copy_move_backward_a): Likewise.
696 (__equal_aux): Likewise.
697 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
698 const std::pair<_Diff, _Distance_precision>&, int)): New.
699 (__can_advance(const std::move_iterator<>&,
700 const std::pair<_Diff, _Distance_precision>&, int)): New.
701 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
703 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
706 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
707 to be a valid constexpr function in C++11.
708 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
710 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
712 * include/bits/fs_fwd.h: Fix doxygen group command.
713 * include/bits/streambuf_iterator.h: Likewise.
714 * include/bits/uses_allocator_args.h: Likewise.
715 * include/std/memory: Likewise.
716 * include/tr1/complex: Likewise.
718 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
720 * include/bits/basic_string.h: Tweak doxygen comment.
722 2021-04-08 Patrick Palka <ppalka@redhat.com>
724 * include/std/ranges (__detail::find): Define.
725 (split_view::_OuterIter::operator++): Apply proposed resolution
727 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
729 2021-04-08 Patrick Palka <ppalka@redhat.com>
731 * include/std/ranges (__detail::find_if): Simplify.
732 (__detail::find_if_not): Likewise.
733 (__detail::min): Remove.
734 (__detail::mismatch): Simplify.
735 (take_view::size): Use std::min instead of __detail::min.
737 2021-04-08 Patrick Palka <ppalka@redhat.com>
739 * include/std/ranges (__detail::__returnable_element): New
741 (elements_view): Use this concept in its constraints. Add
742 missing private access specifier.
743 (elements_view::_S_get_element): Define as per LWG 3502.
744 (elements_view::operator*, elements_view::operator[]): Use
746 (elements_view::operator++): Remove unnecessary constraint
748 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
750 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
752 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
753 out-of-memory error in log file.
754 * doc/Makefile.in: Regenerate.
756 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
758 * configure: Regenerate.
760 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
762 * include/bits/random.h: Fix doxygen group commands.
763 * include/bits/regex_constants.h: Likewise.
764 * include/tr1/random.h: Likewise.
766 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
768 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
769 New function to determine noexcept-specifier for move
771 (_Hashtable): Use _S_nothrow_move() on move constructors.
772 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
773 Correct static assertion message.
774 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
776 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
778 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
781 2021-04-08 Patrick Palka <ppalka@redhat.com>
784 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
785 on targets without a large long double. XFAIL the execution on
786 targets with a non-conforming printf.
788 2021-04-08 Patrick Palka <ppalka@redhat.com>
791 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
792 (__adaptor::__adaptor_invocable): New concept.
793 (__adaptor::__adaptor_partial_app_viable): New concept.
794 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
795 non-template base class.
796 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
798 (__adaptor::_Partial): New class template that represents
799 partial application of a range adaptor non-closure.
800 (__adaptor::__pipe_invocable): New concept.
801 (__adaptor::_Pipe): New class template.
802 (__detail::__can_ref_view): New concept.
803 (__detail::__can_subrange): New concept.
804 (all): Replace the lambda here with ...
805 (_All): ... this functor. Add appropriate constraints.
806 (__detail::__can_filter_view): New concept.
807 (filter, _Filter): As in all/_All.
808 (__detail::__can_transform): New concept.
809 (transform, _Transform): As in all/_All.
810 (__detail::__can_take_view): New concept.
811 (take, _Take): As in all/_All.
812 (__detail::__can_take_while_view): New concept.
813 (take_while, _TakeWhile): As in all/_All.
814 (__detail::__can_drop_view): New concept.
815 (drop, _Drop): As in all/_All.
816 (__detail::__can_drop_while_view): New concept.
817 (drop_while, _DropWhile): As in all/_All.
818 (__detail::__can_join_view): New concept.
819 (join, _Join): As in all/_All.
820 (__detail::__can_split_view): New concept.
821 (split, _Split): As in all/_All. Rename template parameter
823 (__detail::__already_common): New concept.
824 (__detail::__can_common_view): New concept.
825 (common, _Common): As in all/_All.
826 (__detail::__can_reverse_view): New concept.
827 (reverse, _Reverse): As in all/_All.
828 (__detail::__can_elements_view): New concept.
829 (elements, _Elements): As in all/_All.
830 (keys, values): Adjust.
831 * testsuite/std/ranges/adaptors/99433.cc: New test.
832 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
833 adding empty range adaptor closure objects to a pipeline doesn't
834 increase the size of the pipeline.
836 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
837 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
838 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
839 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
840 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
841 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
842 * testsuite/std/ranges/adaptors/p2281.cc: New test.
843 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
844 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
847 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
848 expected error message.
849 (test02): Likewise. Extend test.
850 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
851 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
852 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
855 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
857 * include/std/string_view: Adjust Doxygen @file comment.
859 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
861 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
862 specialization to not match incomplete enum types. Use a
863 requires-expression instead of instantiating is_convertible.
864 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
865 * testsuite/20_util/is_scoped_enum/value.cc: Check with
866 incomplete types and opaque-enum-declarations.
868 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
871 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
872 non-const member on _M_pathname, to avoid copy-on-write.
873 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
874 Check construction from strings that might be shared.
876 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
878 * include/bits/move.h (forward, move, move_if_noexcept)
879 (addressof): Add _GLIBCXX_NODISCARD.
880 * include/bits/ranges_cmp.h (identity::operator()): Add
882 * include/c_global/cstddef (to_integer): Likewise.
883 * include/std/bit (bit_cast): Likewise.
884 * include/std/utility (as_const, to_underlying): Likewise.
886 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
888 * include/bits/move.h (forward): Change static_assert message
889 to be unambiguous about what must be true.
890 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
891 * testsuite/20_util/forward/f_neg.cc: Likewise.
893 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
895 * include/bits/alloc_traits.h: Use markdown for code font.
896 * include/bits/basic_string.h: Fix @param names.
897 * include/bits/max_size_type.h: Remove period after @file.
898 * include/bits/regex.h: Fix duplicate @retval names, and rename.
899 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
900 group open to match existing group close.
901 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
904 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
906 * include/bits/atomic_base.h: Fix doxygen group close.
907 * include/bits/basic_ios.h: Likewise.
908 * include/bits/forward_list.h: Likewise.
909 * include/bits/fs_dir.h: Likewise.
910 * include/bits/fs_ops.h: Likewise.
911 * include/bits/fs_path.h: Likewise.
912 * include/bits/functional_hash.h: Likewise.
913 * include/bits/gslice.h: Likewise.
914 * include/bits/gslice_array.h: Likewise.
915 * include/bits/hashtable_policy.h: Likewise.
916 * include/bits/indirect_array.h: Likewise.
917 * include/bits/locale_classes.h: Likewise.
918 * include/bits/locale_facets.h: Likewise.
919 * include/bits/locale_facets_nonio.h: Likewise.
920 * include/bits/mask_array.h: Likewise.
921 * include/bits/refwrap.h: Likewise.
922 * include/bits/regex.h: Likewise.
923 * include/bits/regex_automaton.h: Likewise.
924 * include/bits/regex_compiler.h: Likewise.
925 * include/bits/regex_constants.h: Likewise.
926 * include/bits/regex_error.h: Likewise.
927 * include/bits/regex_executor.h: Likewise.
928 * include/bits/regex_scanner.h: Likewise.
929 * include/bits/shared_ptr.h: Likewise.
930 * include/bits/shared_ptr_atomic.h: Likewise.
931 * include/bits/shared_ptr_base.h: Likewise.
932 * include/bits/slice_array.h: Likewise.
933 * include/bits/specfun.h: Likewise.
934 * include/bits/std_function.h: Likewise.
935 * include/bits/std_mutex.h: Likewise.
936 * include/bits/stl_deque.h: Likewise.
937 * include/bits/stl_iterator.h: Likewise.
938 * include/bits/stl_iterator_base_types.h: Likewise.
939 * include/bits/stl_map.h: Likewise.
940 * include/bits/stl_multimap.h: Likewise.
941 * include/bits/stl_multiset.h: Likewise.
942 * include/bits/stl_numeric.h: Likewise.
943 * include/bits/stl_pair.h: Likewise.
944 * include/bits/stl_set.h: Likewise.
945 * include/bits/stl_uninitialized.h: Likewise.
946 * include/bits/stream_iterator.h: Likewise.
947 * include/bits/streambuf_iterator.h: Likewise.
948 * include/bits/unique_ptr.h: Likewise.
949 * include/bits/unordered_map.h: Likewise.
950 * include/bits/unordered_set.h: Likewise.
951 * include/decimal/decimal: Likewise.
952 * include/experimental/any: Likewise.
953 * include/experimental/array: Likewise.
954 * include/experimental/bits/fs_dir.h: Likewise.
955 * include/experimental/bits/fs_fwd.h: Likewise.
956 * include/experimental/bits/fs_ops.h: Likewise.
957 * include/experimental/bits/fs_path.h: Likewise.
958 * include/experimental/buffer: Likewise.
959 * include/experimental/internet: Likewise.
960 * include/experimental/optional: Likewise.
961 * include/experimental/propagate_const: Likewise.
962 * include/experimental/socket: Likewise.
963 * include/ext/pb_ds/assoc_container.hpp: Likewise.
964 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
966 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
967 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
968 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
969 * include/ext/pb_ds/exception.hpp: Likewise.
970 * include/ext/pb_ds/priority_queue.hpp: Likewise.
971 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
972 * include/ext/random: Likewise.
973 * include/std/any: Likewise.
974 * include/std/atomic: Likewise.
975 * include/std/bitset: Likewise.
976 * include/std/chrono: Likewise.
977 * include/std/complex: Likewise.
978 * include/std/condition_variable: Likewise.
979 * include/std/fstream: Likewise.
980 * include/std/future: Likewise.
981 * include/std/iostream: Likewise.
982 * include/std/istream: Likewise.
983 * include/std/mutex: Likewise.
984 * include/std/numeric: Likewise.
985 * include/std/ostream: Likewise.
986 * include/std/ratio: Likewise.
987 * include/std/shared_mutex: Likewise.
988 * include/std/stdexcept: Likewise.
989 * include/std/streambuf: Likewise.
990 * include/std/system_error: Likewise.
991 * include/std/thread: Likewise.
992 * include/std/valarray: Likewise.
993 * include/std/variant: Likewise.
994 * include/tr1/cmath: Likewise.
995 * include/tr1/regex: Likewise.
996 * include/tr2/dynamic_bitset: Likewise.
997 * libsupc++/atomic_lockfree_defines.h: Likewise.
998 * libsupc++/exception: Likewise.
999 * libsupc++/exception.h: Likewise.
1000 * libsupc++/exception_ptr.h: Likewise.
1001 * libsupc++/nested_exception.h: Likewise.
1003 2021-03-31 Alexandre Oliva <oliva@adacore.com>
1005 * testsuite/30_threads/future/members/poll.cc: Use faster
1006 after-ready call in the calibration loop.
1008 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
1010 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
1011 * doc/html/manual/status.html: Regenerate.
1013 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
1015 * include/debug/forward_list
1016 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
1017 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
1018 call to safe container allocator aware move constructor.
1019 * include/debug/vector (vector(vector&&, const allocator_type&)):
1020 Fix noexcept qualification.
1021 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
1022 Add allocator-extended move constructor noexceot qualification check.
1023 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
1025 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
1027 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
1029 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
1030 New helper functions and callback.
1031 (random_device::_M_init): Add 'prng' and 'all' enumerators.
1032 Replace switch with fallthrough with a series of 'if' statements.
1033 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
1035 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
1037 (random_device::_M_getval): Check for callback unconditionally
1038 and always pass _M_file pointer.
1039 * testsuite/26_numerics/random/random_device/85494.cc: Remove
1040 effective-target check. Use new random_device_available helper.
1041 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
1042 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
1043 Remove effective-target check.
1044 * testsuite/26_numerics/random/random_device/cons/default.cc:
1046 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
1047 new random_device_available helper. Test "prng" token.
1048 * testsuite/util/testsuite_random.h (random_device_available):
1049 New helper function.
1051 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
1053 * include/debug/string
1054 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
1055 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
1056 (basic_string<>::erase): Adapt to take __const_iterator.
1057 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
1058 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
1059 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
1060 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
1061 (__gnu_debug::u16string, __gnu_debug::u32string): New.
1062 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
1063 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
1064 * testsuite/util/exception/safety.h
1065 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
1066 (insert_base<__gnu_debug::basic_string<>>): Likewise.
1067 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
1068 New partial specialization.
1069 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
1070 * testsuite/21_strings/basic_string/requirements/citerators.cc:
1071 Add test on __gnu_debug::string.
1072 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
1073 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
1074 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
1076 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
1078 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
1080 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
1082 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
1084 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
1086 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
1088 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
1090 2021-03-25 Jakub Jelinek <jakub@redhat.com>
1093 * testsuite/18_support/source_location/consteval.cc (main): Adjust
1094 expected column numbers.
1095 * testsuite/18_support/source_location/1.cc (main): Likewise.
1097 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
1099 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
1101 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
1103 * testsuite/util/exception/safety.h (setup_base::generate):
1104 Support seeding random engine.
1105 (erase_point, erase_range): Adjust range of random numbers to
1106 ensure dereferenceable iterators are used where required.
1107 (generation_prohibited::run): Do not try to erase from empty
1109 * testsuite/util/testsuite_containergen.h (test_containers):
1110 Support seeding random engine.
1112 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
1114 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
1115 line with a check that uses the const being/end overloads.
1117 2021-03-23 Moritz Sichert <sichert@in.tum.de>
1119 * include/std/ranges (reverse_view::begin, reverse_view::end):
1120 Qualify make_reverse_iterator calls to avoid ADL.
1121 * testsuite/std/ranges/adaptors/reverse.cc: Test that
1122 views::reverse works when make_reverse_iterator is defined
1123 in an associated namespace.
1125 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
1127 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
1128 Do not define when compiling with Clang.
1130 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
1132 * include/std/string_view (basic_string_view(Range&&)): Define new
1133 constructor and deduction guide.
1134 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
1135 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
1137 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
1139 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
1140 Add missing 'noexcept' as per LWG 2280.
1141 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
1142 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
1143 * testsuite/24_iterators/range_access/range_access.cc: Check for
1144 expected noexcept specifiers. Check result types of generic
1145 std::begin and std::end overloads.
1146 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
1147 Check for expected noexcept specifiers.
1148 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
1151 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
1153 * include/std/type_traits (is_scoped_enum): Define.
1154 * include/std/version (__cpp_lib_is_scoped_enum): Define.
1155 * testsuite/20_util/is_scoped_enum/value.cc: New test.
1156 * testsuite/20_util/is_scoped_enum/version.cc: New test.
1158 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
1161 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
1162 std::once_flag symbols.
1163 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
1164 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
1165 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
1167 * config/abi/pre/gnu.ver: Likewise.
1168 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
1169 (struct __once_flag_compat): Remove.
1170 (_ZNSt9once_flag11_M_activateEv): Remove.
1171 (_ZNSt9once_flag9_M_finishEb): Remove.
1173 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
1176 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
1177 Revert to pthread_once_t implementation.
1178 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
1179 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
1180 (struct __once_flag_compat): New type matching the reverted
1181 implementation of once_flag using futexes.
1182 (once_flag::_M_activate): Remove, replace with ...
1183 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
1184 (once_flag::_M_finish): Remove, replace with ...
1185 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
1186 * testsuite/30_threads/call_once/66146.cc: Removed.
1188 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1190 * testsuite/17_intro/names.cc: Exclude j from the list
1191 of test symbols for Darwin.
1193 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1195 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
1196 to_chars and from_chars for long double.
1198 2021-03-15 Patrick Palka <ppalka@redhat.com>
1200 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
1202 (__max_size_type::operator++): Define.
1203 (__max_size_type::operator--): Likewise.
1204 (__max_size_type::operator<=>): Conditionally define (in place
1205 of the other comparison operators).
1206 (__max_diff_type::operator _Tp): Fix formatting.
1207 (__max_diff_type::operator++): Define.
1208 (__max_diff_type::operator--): Likewise.
1209 (__max_diff_type::operator<=>): Conditionally define (in place
1210 of the other comparison operators).
1211 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
1212 these operator overloads.
1214 2021-03-15 Caroline Tice <cmtice@google.com>
1217 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
1218 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
1219 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
1221 * src/Makefile.in: Regenerate.
1223 2021-03-11 Patrick Palka <ppalka@redhat.com>
1225 * src/c++17/floating_to_chars.cc: Simplify the file as if
1226 __SIZEOF_INT128__ is always defined.
1227 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
1228 a base-10 to_chars overload for the uint128_t class type.
1229 * src/c++17/uint128_t.h: New file.
1230 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
1231 execution FAIL on targets that have a large long double type
1234 2021-03-11 Patrick Palka <ppalka@redhat.com>
1236 * src/c++17/ryu/LOCAL_PATCHES: Update.
1237 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
1238 * src/c++17/ryu/generic_128.h: Likewise.
1239 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
1240 Use uint128_t instead of __uint128_t.
1241 (generic_binary_to_decimal): Likewise.
1243 2021-03-11 Patrick Palka <ppalka@redhat.com>
1245 * src/c++17/ryu/LOCAL_PATCHES: New file.
1247 2021-03-11 Patrick Palka <ppalka@redhat.com>
1249 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
1250 defined alias of unsigned __int128.
1251 (floating_type_traits_binary128::mantissa_t): Use uint128_t
1252 instead of unsigned __int128.
1253 (floating_type_traits<long double>::mantissa_t)
1254 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
1255 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
1256 and uint32_t explicit. Simplify the extraction of mantissa,
1257 exponent and sign bit.
1259 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1261 * include/std/barrier (barrier::arrival_token): New move-only
1262 class that encapsulates the underlying token value.
1264 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1266 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
1267 instead of unqualified() method.
1269 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1272 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
1273 Use acq_rel memory ordering.
1275 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1278 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
1279 helper function to check for permission denied errors.
1280 * src/filesystem/dir.cc (recursive_directory_iterator):
1282 * src/filesystem/dir-common.h (is_permission_denied_error): New
1285 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1288 * include/bits/random.h (normal_distribution): Use
1289 default-initializer for _M_saved and _M_saved_available.
1291 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
1293 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
1294 link with libatomic.
1295 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
1296 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
1297 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
1298 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1299 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1300 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1301 * testsuite/30_threads/barrier/completion.cc: Likewise.
1302 * testsuite/30_threads/latch/3.cc: Likewise.
1303 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
1304 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
1305 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1307 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
1310 * include/bits/align.h: Include debug/assertions.h.
1311 * include/bits/codecvt.h: Include bits/c++config.h.
1312 * include/bits/enable_special_members.h: Likewise.
1313 * include/bits/erase_if.h: Likewise.
1314 * include/bits/functional_hash.h: Include <type_traits>.
1315 * include/bits/invoke.h: Include bits/move.h.
1316 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
1317 * include/bits/parse_numbers.h: Include <type_traits>.
1318 * include/bits/predefined_ops.h: Include bits/c++config.h.
1319 * include/bits/range_access.h: Include bits/stl_iterator.h.
1320 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
1321 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
1322 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
1323 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
1324 * include/bits/unique_lock.h: Include bits/std_mutex.h.
1325 * include/debug/assertions.h: Include bits/c++config.h.
1327 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
1329 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
1330 (ranges::equal_to, ranges::not_equal_to): Do not constrain
1331 with __eq_builtin_ptr_cmp.
1332 (ranges::less, ranges::greater, ranges::less_equal)
1333 (ranges::greater_equal): Do not constrain with
1334 __less_builtin_ptr_cmp.
1335 * libsupc++/compare (compare_three_way): Do not constrain with
1336 __3way_builtin_ptr_cmp.
1337 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
1338 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
1339 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
1341 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
1343 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
1344 C++20 calendar types.
1346 2021-03-06 Jakub Jelinek <jakub@redhat.com>
1349 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
1350 two _Nd which the compiler can pattern match the rotates.
1352 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
1355 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
1356 Make storage larger than required. Verify no write to the last
1358 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
1361 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1363 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1364 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1366 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1367 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1370 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1372 * include/experimental/bits/simd.h: Replace reserved _X, _B by
1374 * include/experimental/bits/simd_builtin.h: Likewise.
1375 * include/experimental/bits/simd_x86.h: Likewise.
1377 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
1380 * include/std/chrono (year_month_day::_M_days_since_epoch()):
1381 Convert chrono::month and chrono::day to unsigned before
1382 converting to uint32_t.
1384 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1386 * include/std/chrono (year_month_day::_S_from_days): Perform
1387 all calculations with type uint32_t.
1389 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1391 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
1392 * doc/html/manual/abi.html: Regenerate.
1394 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1397 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
1398 FILE instead of FILE.
1400 2021-02-25 Andreas Schwab <schwab@suse.de>
1402 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1403 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1404 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1405 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1407 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1410 * include/std/chrono (year_month_day::_S_from_days): Cast long
1413 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1415 * include/std/utility (to_underlying): Define.
1416 * include/std/version (__cpp_lib_to_underlying): Define.
1417 * testsuite/20_util/to_underlying/1.cc: New test.
1418 * testsuite/20_util/to_underlying/version.cc: New test.
1420 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
1423 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
1424 before value to be printed.
1426 2021-02-24 Patrick Palka <ppalka@redhat.com>
1428 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
1429 Relax the condition that guards the printf code path to accept
1430 F128_type as well as long double.
1432 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1434 * include/std/chrono (year_month_day_last:day): New
1437 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1439 * include/std/chrono (year::is_leap): New implementation.
1440 * testsuite/std/time/year/2.cc: New test.
1442 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1444 * include/std/chrono (year_month_day::_M_days_since_epoch):
1446 * testsuite/std/time/year_month_day/4.cc: New test.
1448 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1450 * include/std/chrono (year_month_day::_S_from_days): New
1452 * testsuite/std/time/year_month_day/3.cc: New test.
1454 2021-02-24 Patrick Palka <ppalka@redhat.com>
1457 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
1458 (test01): Simplify verifying the nearby values by using a
1459 2-iteration loop and a dedicated output buffer to check that the
1460 nearby values are different. Factor out the printf-based
1461 verification into a local function, and check that the leading
1462 hex digits agree before comparing to the output of printf. Also
1463 verify the output by round-tripping it through from_chars.
1465 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
1468 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
1469 symbols for long double arguments mangled as 'g'.
1470 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
1471 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
1472 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
1473 Use -mabi=ibmlongdouble for floating_to_chars.cc.
1474 * src/c++17/Makefile.in: Regenerate.
1475 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
1476 New type defining type traits of IEEE binary128 format.
1477 (floating_type_traits<__float128>): Define specialization.
1478 (floating_type_traits<long double>): Define in terms of
1479 floating_type_traits_binary128 when appropriate.
1480 (floating_to_shortest_scientific): Handle __float128.
1481 (sprintf_ld): New function template for printing a long double
1482 or __ieee128 value using sprintf.
1483 (__floating_to_chars_shortest, __floating_to_chars_precision):
1485 (to_chars): Define overloads for __float128.
1487 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
1489 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
1491 2021-02-23 Martin Sebor <msebor@redhat.com>
1494 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
1495 first argument is null.
1497 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1500 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
1503 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1506 * include/bits/char_traits.h (char_traits<char>::compare): For
1507 constexpr evaluation don't call
1508 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
1511 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1514 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
1516 2021-02-23 Patrick Palka <ppalka@redhat.com>
1519 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
1520 the high- and low-order parts from an IBM long double value
1521 in an endian-agnostic way.
1523 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
1525 * include/bits/atomic_wait.h (__thread_relax()): Call
1526 __thread_yield() not __gthread_yield().
1528 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
1530 * include/bits/atomic_wait.h (__thread_yield()): Check
1531 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1532 (__thread_relax()): Use __thread_yield() instead of repeating
1533 the preprocessor checks for __gthread_yield.
1535 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
1537 * include/std/mutex (once_flag::_M_activate()): Add explicit
1538 return statement for passive case.
1539 (once_flag::_M_finish(bool)): Use reserved name for parameter.
1541 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
1544 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
1546 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1549 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
1551 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1553 * doc/xml/manual/status_cxx2014.xml: Document implementation
1554 specific properties of std::experimental::filesystem::rename.
1555 * doc/xml/manual/status_cxx2017.xml: Document implementation
1556 specific properties of std::filesystem::rename.
1557 * doc/html/*: Regenerate.
1558 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
1559 for directories on Windows.
1560 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
1561 MoveFileExW on Windows.
1562 * testsuite/27_io/filesystem/operations/rename.cc: New test.
1563 * testsuite/experimental/filesystem/operations/rename.cc: New test.
1565 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1567 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
1568 random number to the path.
1570 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1572 * include/experimental/internet (address_v6::to_string): Include
1574 * testsuite/experimental/net/internet/address/v6/members.cc:
1575 Test to_string() results.
1577 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1579 * include/experimental/internet (address_v6::any): Avoid using
1580 memcpy in constexpr function.
1581 (address_v6::loopback): Likewise.
1582 (make_address_v6): Fix missing return statements on error paths.
1583 * include/experimental/io_context: Avoid -Wdangling-else
1585 * testsuite/experimental/net/internet/address/v4/members.cc:
1586 Remove unused variables.
1587 * testsuite/experimental/net/internet/address/v6/members.cc:
1590 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1592 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
1593 Add unused attribute to parameter.
1594 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
1597 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1599 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
1600 if -fno-rtti is used.
1601 * testsuite/30_threads/async/forced_unwind.cc: Expect test
1602 to abort if -fno-rtti is used.
1604 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1606 * testsuite/util/testsuite_allocator.h (memory_resource):
1607 Remove requirement for RTTI and exceptions to be enabled.
1609 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1611 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
1612 static_cast when RTTI is disabled.
1613 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
1615 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
1617 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
1619 * testsuite/27_io/basic_stringstream/str/char/2.cc:
1621 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
1624 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1626 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
1627 as unused and only use dynamic_cast when RTTI is enabled.
1629 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1632 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
1633 Change int parameter to error_code, to match std::ios_failure.
1634 (__throw_ios_failure(const char*, int)): Construct error_code
1637 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
1639 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
1641 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
1642 macro instead of _GLIBCXX_EH_PTR_COMPAT.
1643 (operator==): Likewise.
1645 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
1648 * doc/xml/manual/status_cxx2011.xml: Document when support
1650 * doc/xml/manual/status_cxx2014.xml: Likewise.
1651 * doc/xml/manual/status_cxx2017.xml: Likewise.
1652 * doc/html/manual/status.html: Regenerate.
1654 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1657 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
1659 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1661 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
1662 (fs::remove): Use std::system_category() for error codes from
1664 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
1667 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1669 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
1670 in __MINGW32__ macro name.
1671 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
1672 * testsuite/27_io/filesystem/path/generation/proximate.cc:
1674 * testsuite/27_io/filesystem/path/generation/relative.cc:
1676 * testsuite/util/testsuite_fs.h: Likewise.
1678 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
1680 * include/bits/stl_tree.h
1681 (__has_is_transparent, __has_is_transparent_t): Move...
1682 * include/bits/stl_function.h: ...here.
1683 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
1684 (_Hashtable_base<>::_M_equals_tr): New.
1685 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
1686 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
1687 heterogeneous lookup.
1688 (_Hashtable<>::_M_find_before_node_tr): New.
1689 (_Hashtable<>::_M_find_node_tr): New.
1690 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
1691 unordered_map::contains<>, unordered_map::equal_range<>): New member function
1692 templates to perform heterogeneous lookup.
1693 (unordered_multimap::find<>, unordered_multimap::count<>,
1694 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
1695 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
1696 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
1697 (unordered_multiset::find<>, unordered_multiset::count<>,
1698 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
1699 * include/debug/unordered_map
1700 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
1701 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
1702 * include/debug/unordered_set
1703 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
1704 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
1705 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
1706 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
1707 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
1708 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
1710 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
1712 * include/bits/stl_deque.h
1713 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
1714 a null pointer test.
1716 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
1718 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
1719 test directory after making it writable again.
1720 * testsuite/experimental/filesystem/operations/remove_all.cc:
1723 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
1726 * include/std/coroutine (coroutine_handle<P>::from_address): Add
1729 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
1731 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
1732 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
1734 2021-02-09 Jakub Jelinek <jakub@redhat.com>
1737 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
1738 points to the characters moved by earlier _S_move, compute the source
1739 address using expression based on the __p pointer rather than __s
1742 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
1744 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
1745 Add comparison with same category and different values.
1746 * testsuite/19_diagnostics/error_code/operators/less.cc:
1747 Likewise. Fix comparison involving different categories.
1748 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1750 * testsuite/19_diagnostics/error_condition/operators/less.cc:
1752 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1755 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
1757 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
1758 calls with a single vaddv for aarch64.
1760 2021-02-03 Matthias Kretz <kretz@kde.org>
1762 * testsuite/Makefile.am: Warn about the workaround. Add
1763 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
1764 Improve initial user feedback from make check-simd.
1765 * testsuite/Makefile.in: Regenerated.
1767 2021-02-03 Matthias Kretz <kretz@kde.org>
1769 * include/experimental/bits/simd.h: Add __detail::_Minimum and
1770 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
1771 Add hmin and hmax overloads for simd and const_where_expression.
1772 * include/experimental/bits/simd_scalar.h
1773 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
1774 parameter const-ref to allow calling _S_reduce with an rvalue.
1775 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
1776 hmin and hmax. Since the compiler statically determined that all
1777 tests pass, repeat the test after a call to make_value_unknown.
1779 2021-02-03 Matthias Kretz <kretz@kde.org>
1781 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
1782 instruction pointer data member. Ensure that the `if (m_failed)`
1783 branch is always inlined into the calling code. The body of the
1784 conditional can still be a function call. Move the get_ip call
1785 into the verify ctor to simplify the ctor calls.
1786 (COMPARE): Don't mention the use of all_of for reduction of a
1787 simd_mask. It only distracts from the real issue.
1789 2021-02-03 Matthias Kretz <kretz@kde.org>
1791 * testsuite/experimental/simd/driver.sh: Abstract reading test
1792 options into read_src_option function. Read skip, only,
1793 expensive, and xfail via read_src_option. Add timeout and
1794 timeout-factor options and adjust timeout variable accordingly.
1795 * testsuite/experimental/simd/tests/loadstore.cc: Set
1798 2021-02-03 Matthias Kretz <kretz@kde.org>
1800 * testsuite/experimental/simd/driver.sh: When handling the pipe
1801 to log (and on verbose to stdout) count the lines. If it exceeds
1802 1000 log the issue and exit 125, which is then handled as a
1805 2021-02-03 Matthias Kretz <kretz@kde.org>
1807 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
1808 markup for long double on powerpc64*.
1810 2021-02-03 Matthias Kretz <kretz@kde.org>
1812 * include/experimental/bits/simd.h: Add __have_power10vec
1813 conditional on _ARCH_PWR10.
1814 * include/experimental/bits/simd_builtin.h: Forward declare
1815 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
1817 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
1818 _SuperImpl for optimizations and correctness.
1819 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
1820 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
1821 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
1822 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
1824 2021-02-03 Matthias Kretz <kretz@kde.org>
1826 * testsuite/experimental/simd/driver.sh: Remove executable on
1827 SIGINT. Process compiler and test executable output: In verbose
1828 mode print messages immediately, limited to 1000 lines and
1829 breaking long lines to below $COLUMNS (or 1024 if not set).
1830 Communicating the exit status of the compiler / test with the
1831 necessary pipe is done via a message through stdout/-in.
1833 2021-02-03 Matthias Kretz <kretz@kde.org>
1835 * testsuite/Makefile.am: Ensure .simd.summary is empty before
1836 collecting a new summary.
1837 * testsuite/Makefile.in: Regenerate.
1839 2021-02-03 Matthias Kretz <kretz@kde.org>
1841 * testsuite/experimental/simd/generate_makefile.sh: Use
1842 different variables internally than documented for user
1843 overrides. This makes internal append/prepend work as intended.
1845 2021-02-03 Matthias Kretz <kretz@kde.org>
1847 * testsuite/experimental/simd/driver.sh (verify_test): Print
1848 test output on run xfail. Do not repeat lines from the log that
1849 were already printed on stdout.
1850 (test_selector): Make the compiler flags pattern usable as a
1852 (toplevel): Trap on SIGINT and remove the log and sum files.
1853 Call timout with --foreground to quickly terminate on SIGINT.
1854 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
1855 targets via target patterns. Default DRIVEROPTS to -v for run
1856 targets. Remove log and sum files after completion of the run
1857 target (so that it's always recompiled).
1858 Place help text into text file for reasonable 'make help'
1861 2021-02-03 Matthias Kretz <kretz@kde.org>
1863 * include/experimental/bits/simd.h: Remove unnecessary static
1864 assertion. Allow sizeof(8) integer __intrinsic_type to enable
1865 the necessary mask type.
1867 2021-02-03 Matthias Kretz <kretz@kde.org>
1869 * include/experimental/bits/simd.h: Let __intrinsic_type<long
1870 double, N> be valid if sizeof(long double) == sizeof(double) and
1871 use a __vector double as member type.
1873 2021-02-03 Matthias Kretz <kretz@kde.org>
1875 * include/experimental/bits/simd.h (__is_intrinsic_type): New
1876 internal type trait. Alias for __is_vector_type on x86.
1877 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
1879 (__intrin_bitcast): Allow casting to & from vector & intrinsic
1881 (__intrinsic_type): Explicitly specialize for NEON intrinsic
1884 2021-02-03 Matthias Kretz <kretz@kde.org>
1886 * testsuite/experimental/simd/driver.sh: Implement skip, only,
1887 expensive, and xfail markers. They can select on type, ABI tag
1888 subset number, target-triplet, and compiler flags.
1889 * testsuite/experimental/simd/generate_makefile.sh: The summary
1890 now includes lines for unexpected passes and expected failures.
1891 If the skip or only markers are only conditional on the type, do
1892 not generate rules for those types.
1893 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
1894 for ABI tag subsets 1-9.
1895 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
1896 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
1897 * testsuite/experimental/simd/tests/casts.cc: Ditto.
1898 * testsuite/experimental/simd/tests/generator.cc: Ditto.
1899 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
1900 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
1901 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
1902 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
1903 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
1904 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
1905 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
1906 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
1907 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
1908 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
1909 * testsuite/experimental/simd/tests/operators.cc: Ditto.
1910 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
1911 * testsuite/experimental/simd/tests/simd.cc: Ditto.
1912 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
1913 * testsuite/experimental/simd/tests/splits.cc: Ditto.
1914 * testsuite/experimental/simd/tests/where.cc: Ditto.
1915 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
1916 addition replace "test only floattypes" marker by unconditional
1917 "float|double|ldouble" only marker.
1918 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
1919 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
1920 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1922 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
1923 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
1924 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
1925 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
1926 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
1927 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
1928 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
1929 addition, xfail on run because the reference data is missing.
1931 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
1933 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
1934 * doc/xml/manual/status_cxx2014.xml: Likewise.
1935 * doc/xml/manual/status_cxx2017.xml: Likewise.
1936 * doc/html/manual/status.html: Regenerate.
1938 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
1941 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
1942 Return 0 if both iterators are value-initialized.
1943 * testsuite/23_containers/deque/70303.cc: New test.
1944 * testsuite/23_containers/vector/70303.cc: New test.
1946 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
1948 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
1950 * doc/xml/manual/status_cxx2014.xml: Likewise.
1951 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
1952 std::from_chars and std::to_chars status. Fix formatting.
1953 * doc/html/manual/status.html: Regenerate.
1955 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
1957 * include/experimental/bits/numeric_traits.h: Update copyright
1959 * include/experimental/bits/simd.h: Likewise.
1960 * include/experimental/bits/simd_builtin.h: Likewise.
1961 * include/experimental/bits/simd_converter.h: Likewise.
1962 * include/experimental/bits/simd_detail.h: Likewise.
1963 * include/experimental/bits/simd_fixed_size.h: Likewise.
1964 * include/experimental/bits/simd_math.h: Likewise.
1965 * include/experimental/bits/simd_neon.h: Likewise.
1966 * include/experimental/bits/simd_ppc.h: Likewise.
1967 * include/experimental/bits/simd_scalar.h: Likewise.
1968 * include/experimental/bits/simd_x86.h: Likewise.
1969 * include/experimental/bits/simd_x86_conversions.h: Likewise.
1970 * include/experimental/simd: Likewise.
1971 * testsuite/experimental/simd/*: Likewise.
1973 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
1975 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
1976 * doc/html/*: Regenerate.
1978 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
1980 * testsuite/experimental/simd/generate_makefile.sh: Use printf
1981 instead of echo when printing escape characters.
1983 2021-01-27 Matthias Kretz <kretz@kde.org>
1985 * scripts/check_simd: New file. This script is called from the
1986 the check-simd target. It determines a set of compiler flags and
1987 simulator setups for calling generate_makefile.sh and passes the
1988 information back to the check-simd target, which recurses to the
1989 generated Makefiles.
1990 * scripts/create_testsuite_files: Remove files below simd/tests/
1991 from testsuite_files and place them in testsuite_files_simd.
1992 * testsuite/Makefile.am: Add testsuite_files_simd. Add
1994 * testsuite/Makefile.in: Regenerate.
1995 * testsuite/experimental/simd/driver.sh: New file. This script
1996 compiles and runs a given simd test, logging its output and
1997 status. It uses the timeout command to implement compile and
1999 * testsuite/experimental/simd/generate_makefile.sh: New file.
2000 This script generates a Makefile which uses driver.sh to compile
2001 and run the tests and collect the logs into a single log file.
2002 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
2004 * testsuite/experimental/simd/tests/algorithms.cc: New file.
2005 Tests min/max(simd, simd).
2006 * testsuite/experimental/simd/tests/bits/conversions.h: New
2007 file. Contains functions to support tests involving conversions.
2008 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
2009 Support functions make_mask and make_vec.
2010 * testsuite/experimental/simd/tests/bits/mathreference.h: New
2011 file. Support functions to supply precomputed math function
2013 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
2014 file. Support code for SFINAE testing.
2015 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
2016 * testsuite/experimental/simd/tests/bits/test_values.h: New
2017 file. Test functions to easily drive a test with simd objects
2018 initialized from a given list of values and a range of random
2020 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
2021 Support code to determine the ULP distance of simd objects.
2022 * testsuite/experimental/simd/tests/bits/verify.h: New file.
2023 Test framework for COMPARE'ing simd objects and instantiating
2024 the test templates with value_type and ABI tag.
2025 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
2027 * testsuite/experimental/simd/tests/casts.cc: New file. Test
2029 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
2030 Test floating-point classification functions.
2031 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
2033 * testsuite/experimental/simd/tests/generator.cc: New file. Test
2034 simd generator constructor.
2035 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
2036 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
2037 * testsuite/experimental/simd/tests/integer_operators.cc: New
2038 file. Test integer operators.
2039 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2040 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
2042 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
2043 (converting) simd loads and stores.
2044 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
2046 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
2047 Test simd_mask broadcasts.
2048 * testsuite/experimental/simd/tests/mask_conversions.cc: New
2049 file. Test simd_mask conversions.
2050 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
2051 file. Test simd_mask implicit conversions.
2052 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
2053 Test simd_mask loads and stores.
2054 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
2055 file. Test simd_mask operators convert as specified.
2056 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
2057 Test simd_mask compares, subscripts, and negation.
2058 * testsuite/experimental/simd/tests/mask_reductions.cc: New
2059 file. Test simd_mask reductions.
2060 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
2061 1-arg math functions on simd.
2062 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
2063 2-arg math functions on simd.
2064 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
2065 Test implicit conversions on simd binary operators behave as
2067 * testsuite/experimental/simd/tests/operators.cc: New file. Test
2068 simd compares, subscripts, not, unary minus, plus, minus,
2069 multiplies, divides, increment, and decrement.
2070 * testsuite/experimental/simd/tests/reductions.cc: New file.
2072 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
2074 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
2075 sanity checks of simd types.
2076 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
2077 sin(simd) and cos(simd).
2078 * testsuite/experimental/simd/tests/split_concat.cc: New file.
2079 Test split(simd) and concat(simd, simd).
2080 * testsuite/experimental/simd/tests/splits.cc: New file. Test
2082 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
2083 Test remaining trigonometric functions on simd.
2084 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
2085 file. Test trunc(simd), ceil(simd), and floor(simd).
2086 * testsuite/experimental/simd/tests/where.cc: New file. Test
2087 masked operations using where.
2089 2021-01-27 Matthias Kretz <kretz@kde.org>
2091 * doc/xml/manual/status_cxx2017.xml: Add implementation status
2092 of the Parallelism TS 2. Document implementation-defined types
2094 * include/Makefile.am: Add new headers.
2095 * include/Makefile.in: Regenerate.
2096 * include/experimental/simd: New file. New header for
2098 * include/experimental/bits/numeric_traits.h: New file.
2099 Implementation of P1841R1 using internal naming. Addition of
2100 missing IEC559 functionality query.
2101 * include/experimental/bits/simd.h: New file. Definition of the
2102 public simd interfaces and general implementation helpers.
2103 * include/experimental/bits/simd_builtin.h: New file.
2104 Implementation of the _VecBuiltin simd_abi.
2105 * include/experimental/bits/simd_converter.h: New file. Generic
2107 * include/experimental/bits/simd_detail.h: New file. Internal
2108 macros for the simd implementation.
2109 * include/experimental/bits/simd_fixed_size.h: New file. Simd
2110 fixed_size ABI specific implementations.
2111 * include/experimental/bits/simd_math.h: New file. Math
2113 * include/experimental/bits/simd_neon.h: New file. Simd NEON
2114 specific implementations.
2115 * include/experimental/bits/simd_ppc.h: New file. Implement bit
2116 shifts to avoid invalid results for integral types smaller than
2118 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
2119 ABI specific implementations.
2120 * include/experimental/bits/simd_x86.h: New file. Simd x86
2121 specific implementations.
2122 * include/experimental/bits/simd_x86_conversions.h: New file.
2123 x86 specific conversion optimizations. The conversion patterns
2124 work around missing conversion patterns in the compiler and
2125 should be removed as soon as PR85048 is resolved.
2126 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
2127 Test that all (not all fixed_size<N>, though) standard simd and
2128 simd_mask types are usable.
2129 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
2130 file. As above but with -ffast-math.
2131 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
2132 from the standard test loop. Instead use
2133 check_vect_support_and_set_flags to build simd tests with the
2134 relevant machine flags.
2136 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
2139 * include/bits/string_view.tcc
2140 (basic_string_view::find(const CharT*, size_type, size_type)):
2143 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
2145 * include/bits/basic_string.h (basic_string::contains): New
2147 * include/std/string_view (basic_string_view::contains):
2149 * include/std/version (__cpp_lib_string_contains): Define.
2150 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
2151 Remove trailing whitespace.
2152 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
2154 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
2155 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
2156 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
2157 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
2158 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
2160 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
2162 * src/c++17/Makefile.in: Regenerate.
2164 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
2166 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
2167 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
2169 (const char* ctype<char>:: is): Same.
2171 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
2174 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
2175 write to a wide character stream if wide character support is
2176 disabled in the library.
2178 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
2180 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
2181 stringbuf not wstringbuf.
2183 2021-01-18 Jakub Jelinek <jakub@redhat.com>
2186 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
2187 Compile with -gno-as-loc-support.
2188 * src/c++11/Makefile.in: Regenerated.
2190 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
2192 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2193 Add -fcf-protection=none to -march=i486.
2195 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
2197 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
2200 2021-01-14 Alexandre Oliva <oliva@adacore.com>
2202 * testsuite/30_threads/future/members/poll.cc: Calibrate
2205 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
2208 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
2209 (_Node_iterator()): Make default.
2210 (_Node_const_iterator()): Make default.
2211 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
2213 * include/debug/safe_iterator.h
2214 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
2215 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
2217 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
2218 _M_singular checks on input iterators.
2219 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
2221 * testsuite/23_containers/deque/debug/98466.cc: New test.
2222 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
2224 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
2227 * include/bits/fs_path.h (__throw_conversion_error): New
2228 function to throw or abort on character conversion errors.
2229 (__wstr_from_utf8): Move definition after filesystem_error has
2230 been defined. Use __throw_conversion_error.
2231 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
2232 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
2233 (path::u8string): Likewise.
2235 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
2237 * include/std/barrier: Update copyright years. Fix whitespace.
2238 * include/std/version: Fix whitespace.
2239 * testsuite/30_threads/barrier/1.cc: Update copyright years.
2240 * testsuite/30_threads/barrier/2.cc: Likewise.
2241 * testsuite/30_threads/barrier/arrive.cc: Likewise.
2242 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
2243 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
2244 * testsuite/30_threads/barrier/completion.cc: Likewise.
2246 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
2248 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
2250 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
2253 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
2255 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
2257 2021-01-08 Olivier Hainque <hainque@adacore.com>
2259 * testsuite/20_util/bind/ref_neg.cc: Tweak the
2260 dg-prune-output regex for out-of-build-tree contexts.
2262 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
2264 * doc/doxygen/user.cfg.in: Add new header.
2265 * include/Makefile.am (std_headers): likewise.
2266 * include/Makefile.in: Regenerate.
2267 * include/precompiled/stdc++.h: Add new header.
2268 * include/std/barrier: New file.
2269 * include/std/version: Add __cpp_lib_barrier feature test macro.
2270 * testsuite/30_threads/barrier/1.cc: New test.
2271 * testsuite/30_threads/barrier/2.cc: Likewise.
2272 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
2273 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
2274 * testsuite/30_threads/barrier/arrive.cc: Likewise.
2275 * testsuite/30_threads/barrier/completion.cc: Likewise.
2277 2021-01-07 Patrick Palka <ppalka@redhat.com>
2280 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
2281 instead of the non-standard nextupl and nextdownl.
2283 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
2285 * configure: Re-generate.
2287 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
2289 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
2291 2021-01-01 Jakub Jelinek <jakub@redhat.com>
2293 * ChangeLog-2020: Rotate ChangeLog. New file.
2296 Copyright (C) 2021 Free Software Foundation, Inc.
2298 Copying and distribution of this file, with or without modification,
2299 are permitted in any medium without royalty provided the copyright
2300 notice and this notice are preserved.