]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
cdd23a9b684d92369135271e2ca3feb8d8a30555
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
2
3 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4 * doc/html/manual/facets.html: Regenerate.
5
6 2021-04-30 Patrick Palka <ppalka@redhat.com>
7
8 * include/std/ranges (__detail::__non_propating_cache): Define
9 as per P2328.
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>.
17 (test10): New test.
18
19 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
20
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>.
25
26 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
27
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.
36
37 2021-04-30 Patrick Palka <ppalka@redhat.com>
38
39 * include/std/ranges (split_view::_InnerIter::operator++):
40 Depend on _Base instead of _Vp directly, as per LWG 3532.
41
42 2021-04-30 Patrick Palka <ppalka@redhat.com>
43
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
49 single_view object.
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
59 _M_pattern.
60 (__detail::__can_split_view, _Split::operator()): Avoid
61 list-initialization.
62 (_Counted::operator()): Likewise.
63 * testsuite/std/ranges/p2367.cc: New test.
64
65 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
66
67 PR libstdc++/60497
68 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
69 std::addressof.
70 * include/bits/basic_string.tcc (basic_string::swap)
71 (basic_string::assign): Likewise.
72 * include/bits/deque.tcc (deque::operator=(const deque&)):
73 Likewise.
74 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
75 Likewise.
76 * include/bits/vector.tcc (vector::operator=(const vector&)):
77 Likewise.
78
79 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
80
81 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
82 per LWG 1203.
83 * include/std/ostream (operator<<(Ostream&&, const x&)):
84 Likewise.
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:
88 Likewise.
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
92 g() helper functions.
93 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
94 Likewise.
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:
100 Likewise.
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.
107
108 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
109
110 PR libstdc++/100285
111 * include/experimental/socket (__basic_socket_impl::set_option)
112 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
113 Just set error code.
114 * testsuite/experimental/net/socket/socket_base.cc: CHeck
115 for <sys/socket.h> not <socket.h>.
116
117 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
118
119 PR libstdc++/100180
120 PR libstdc++/100286
121 PR libstdc++/100351
122 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
123 Use new effective-target keyword.
124 * testsuite/experimental/net/internet/address/v4/cons.cc:
125 Likewise.
126 * testsuite/experimental/net/internet/address/v4/creation.cc:
127 Likewise.
128 * testsuite/experimental/net/internet/address/v4/members.cc:
129 Likewise.
130 * testsuite/experimental/net/internet/address/v6/members.cc:
131 Likewise.
132 * testsuite/experimental/net/internet/resolver/base.cc:
133 Likewise.
134 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
135 Likewise.
136 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
137 Likewise.
138 * testsuite/experimental/net/internet/socket/opt.cc:
139 Likewise.
140 * testsuite/experimental/net/internet/tcp.cc:
141 Likewise.
142 * testsuite/experimental/net/internet/udp.cc:
143 Likewise.
144 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
145 New proc to check net_ts_ip et.
146
147 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
148
149 PR libstdc++/97930
150 * testsuite/20_util/pair/requirements/structural.cc: New test.
151
152 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
153
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
158 later.
159 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
160 expected error messages to also match C++20 errors.
161
162 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
163
164 PR libstdc++/99957
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
172 adjust constraints.
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.
176
177 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
178
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:
184 Likewise.
185 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
186
187 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
188
189 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
190 dealing with errors. Use '@' to prevent shell command being
191 echoed.
192 * doc/Makefile.in: Regenerate.
193
194 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
195
196 PR libstdc++/100298
197 * include/bits/std_thread.h (thread::hardware_concurrency): Add
198 missing noexcept to inline definition for non-gthreads targets.
199
200 2021-04-28 Patrick Palka <ppalka@redhat.com>
201
202 PR libstdc++/100187
203 PR libstdc++/100237
204 PR libstdc++/100249
205 PR libstdc++/100287
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
212 bool return type.
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.
218
219 2021-04-27 Patrick Palka <ppalka@redhat.com>
220
221 PR libstdc++/100290
222 * include/std/ranges (join_view::_Iterator::operator++): Correct
223 the return type of the lambda to avoid returning a copy of
224 _M_parent->_M_inner.
225 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
226
227 2021-04-27 Jakub Jelinek <jakub@redhat.com>
228
229 Revert:
230 2021-04-22 Jakub Jelinek <jakub@redhat.com>
231
232 PR target/100182
233 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
234 ia32.
235 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
236 ia32.
237
238 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
239
240 * include/experimental/internet (address_v6::bytes_type): Adjust
241 formatting.
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.
251
252 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
253
254 PR libstdc++/100286
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
265 conditionally,
266 * testsuite/experimental/net/internet/socket/opt.cc: Check for
267 <netinet/in.h> and <netinet/tcp.h> before using types from
268 namespace net::ip.
269
270 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
271
272 PR libstdc++/100285
273 * include/experimental/internet (resolver_base::flags):
274 Define overloaded operators as hidden friends.
275 * include/experimental/socket (socket_base::message_flags):
276 Likewise.
277
278 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
279
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.
292
293 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
294
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>
298 base classes.
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.
313
314 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
315
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.
322
323 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
324
325 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
326
327 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
328
329 PR libstdc++/100259
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'.
333
334 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
335
336 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
337 (add_options_for_libatomic): Use atomic_link_flags.
338
339 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
340
341 PR libstdc++/100180
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.
345
346 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
347
348 * include/experimental/io_context (io_context::async_wait): Add
349 comment.
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.
360
361 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
362
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
366 values.
367 (socket_base::message_flags): Make all operators constexpr and
368 noexcept.
369 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
370 New test utility.
371 * testsuite/experimental/net/socket/socket_base.cc: New test.
372
373 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
374
375 * config/os/aix/atomicity.h: Delete.
376
377 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
378
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:
383 Re-enable.
384
385 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
386
387 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
388 options for libatomic.
389
390 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
391
392 * config/os/gnu-linux/os_defines.h: Fix type in comment.
393
394 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
395
396 PR libstdc++/99006
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.
401
402 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
403
404 * include/bits/atomic_wait.h: Always notify waiters in the
405 case of 'bare' address notification.
406
407 2021-04-22 Jakub Jelinek <jakub@redhat.com>
408
409 PR target/100182
410 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
411 ia32.
412 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
413 ia32.
414
415 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
416
417 PR libstdc++/100179
418 * include/bits/semaphore_base.h: Remove #error.
419 * include/std/semaphore: Do not define anything unless one of
420 the implementations is available.
421
422 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
423
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:
427 re-enable testcase.
428
429 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
430 Jonathan Wakely <jwakely@redhat.com>
431
432 PR libstdc++/99453
433 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
434 * python/Makefile.in: Regenerate.
435
436 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
437
438 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
439 member to __platform_wait.
440
441 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
442
443 * include/std/latch: Replace tab characters in license text.
444 * include/std/semaphore: Likewise.
445
446 2021-04-21 Jakub Jelinek <jakub@redhat.com>
447
448 PR libstdc++/100164
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.
453
454 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
455
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.
461
462 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
463
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
480 test.
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.
487
488 2021-04-20 Patrick Palka <ppalka@redhat.com>
489
490 PR libstdc++/95983
491 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
492 Define.
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
505 per P2259.
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
575 P2259.
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.
582
583 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
584
585 PR libstdc++/100146
586 * include/std/charconv (__cpp_lib_to_chars): Define
587 conditionally.
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.
594
595 2021-04-20 Jakub Jelinek <jakub@redhat.com>
596
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.
603
604 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
605
606 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
607 Updated.
608
609 2021-04-17 Jakub Jelinek <jakub@redhat.com>
610
611 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
612 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
613
614 2021-04-17 Jakub Jelinek <jakub@redhat.com>
615
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.
622
623 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
624
625 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
626 add libatomic options for 32-bit sparc*-*-linux-gnu.
627
628 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
629
630 PR libstdc++/96657
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.
636
637 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
638
639 PR libstdc++/100060
640 * include/std/bit: Only include <ext/numeric_traits.h> for
641 hosted build, use <limits> otherwise.
642
643 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
644
645 * doc/xml/manual/backwards_compatibility.xml: Remove porting
646 notes for libg++ and libstdc++-v2, and bibliography.
647 * doc/html/*: Regenerated.
648
649 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
650
651 PR libstdc++/100044
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.
658
659 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
660
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:
664 Likewise.
665
666 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
667
668 PR libstdc++/99995
669 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
670 standard headers and XFAIL for effective-target c++20.
671
672 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
673
674 PR libstdc++/99402
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,
680 use latter.
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>&,
685 int)): New.
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>&,
690 int)): New.
691 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
692 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
693 __dp_sign_max_size.
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.
702
703 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
704
705 PR libstdc++/99985
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.
709
710 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
711
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.
717
718 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
719
720 * include/bits/basic_string.h: Tweak doxygen comment.
721
722 2021-04-08 Patrick Palka <ppalka@redhat.com>
723
724 * include/std/ranges (__detail::find): Define.
725 (split_view::_OuterIter::operator++): Apply proposed resolution
726 of LWG 3505.
727 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
728
729 2021-04-08 Patrick Palka <ppalka@redhat.com>
730
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.
736
737 2021-04-08 Patrick Palka <ppalka@redhat.com>
738
739 * include/std/ranges (__detail::__returnable_element): New
740 concept.
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
745 _S_get_element.
746 (elements_view::operator++): Remove unnecessary constraint
747 as per LWG 3492.
748 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
749
750 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
751
752 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
753 out-of-memory error in log file.
754 * doc/Makefile.in: Regenerate.
755
756 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
757
758 * configure: Regenerate.
759
760 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
761
762 * include/bits/random.h: Fix doxygen group commands.
763 * include/bits/regex_constants.h: Likewise.
764 * include/tr1/random.h: Likewise.
765
766 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
767
768 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
769 New function to determine noexcept-specifier for move
770 constructors.
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:
775 Likewise.
776 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
777 Likewise.
778 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
779 Likewise.
780
781 2021-04-08 Patrick Palka <ppalka@redhat.com>
782
783 PR libstdc++/98384
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.
787
788 2021-04-08 Patrick Palka <ppalka@redhat.com>
789
790 PR libstdc++/99433
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
797 class template.
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
822 _Fp to _Pattern.
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.
835 (test05): New test.
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):
845 Adjust.
846 (test09): New test.
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):
853 New test.
854
855 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
856
857 * include/std/string_view: Adjust Doxygen @file comment.
858
859 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
860
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.
867
868 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
869
870 PR libstdc++/99805
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.
875
876 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
877
878 * include/bits/move.h (forward, move, move_if_noexcept)
879 (addressof): Add _GLIBCXX_NODISCARD.
880 * include/bits/ranges_cmp.h (identity::operator()): Add
881 nodiscard attribute.
882 * include/c_global/cstddef (to_integer): Likewise.
883 * include/std/bit (bit_cast): Likewise.
884 * include/std/utility (as_const, to_underlying): Likewise.
885
886 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
887
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.
892
893 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
894
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
902 open.
903
904 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
905
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:
965 Likewise.
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.
1002
1003 2021-03-31 Alexandre Oliva <oliva@adacore.com>
1004
1005 * testsuite/30_threads/future/members/poll.cc: Use faster
1006 after-ready call in the calibration loop.
1007
1008 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
1009
1010 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
1011 * doc/html/manual/status.html: Regenerate.
1012
1013 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
1014
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.
1024
1025 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
1026
1027 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
1028 fallback is needed.
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
1034 checks fail.
1035 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
1036 token.
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:
1045 Likewise.
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.
1050
1051 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
1052
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:
1075 Likewise.
1076 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
1077 Likewise.
1078 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
1079 Likewise.
1080 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
1081 Likewise.
1082 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
1083 Likewise.
1084 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
1085 Likewise.
1086 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
1087 Likewise.
1088 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
1089
1090 2021-03-25 Jakub Jelinek <jakub@redhat.com>
1091
1092 PR c++/99672
1093 * testsuite/18_support/source_location/consteval.cc (main): Adjust
1094 expected column numbers.
1095 * testsuite/18_support/source_location/1.cc (main): Likewise.
1096
1097 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
1098
1099 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
1100
1101 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
1102
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
1108 containers.
1109 * testsuite/util/testsuite_containergen.h (test_containers):
1110 Support seeding random engine.
1111
1112 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
1113
1114 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
1115 line with a check that uses the const being/end overloads.
1116
1117 2021-03-23 Moritz Sichert <sichert@in.tum.de>
1118
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.
1124
1125 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
1126
1127 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
1128 Do not define when compiling with Clang.
1129
1130 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
1131
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.
1136
1137 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
1138
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:
1149 Likewise.
1150
1151 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
1152
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.
1157
1158 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
1159
1160 PR libstdc++/99341
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:
1166 Likewise.
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.
1172
1173 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
1174
1175 PR libstdc++/99341
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.
1187
1188 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1189
1190 * testsuite/17_intro/names.cc: Exclude j from the list
1191 of test symbols for Darwin.
1192
1193 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1194
1195 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
1196 to_chars and from_chars for long double.
1197
1198 2021-03-15 Patrick Palka <ppalka@redhat.com>
1199
1200 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
1201 Fix formatting.
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.
1213
1214 2021-03-15 Caroline Tice <cmtice@google.com>
1215
1216 PR libstdc++/99172
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'
1220 filtered out.
1221 * src/Makefile.in: Regenerate.
1222
1223 2021-03-11 Patrick Palka <ppalka@redhat.com>
1224
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
1232 but lack __int128.
1233
1234 2021-03-11 Patrick Palka <ppalka@redhat.com>
1235
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.
1242
1243 2021-03-11 Patrick Palka <ppalka@redhat.com>
1244
1245 * src/c++17/ryu/LOCAL_PATCHES: New file.
1246
1247 2021-03-11 Patrick Palka <ppalka@redhat.com>
1248
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.
1258
1259 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1260
1261 * include/std/barrier (barrier::arrival_token): New move-only
1262 class that encapsulates the underlying token value.
1263
1264 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1265
1266 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
1267 instead of unqualified() method.
1268
1269 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1270
1271 PR libstdc++/99537
1272 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
1273 Use acq_rel memory ordering.
1274
1275 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1276
1277 PR libstdc++/99533
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):
1281 Likewise.
1282 * src/filesystem/dir-common.h (is_permission_denied_error): New
1283 helper function.
1284
1285 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
1286
1287 PR libstdc++/99536
1288 * include/bits/random.h (normal_distribution): Use
1289 default-initializer for _M_saved and _M_saved_available.
1290
1291 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
1292
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.
1306
1307 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
1308
1309 PR libstdc++/99413
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.
1326
1327 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
1328
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.
1340
1341 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
1342
1343 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
1344 C++20 calendar types.
1345
1346 2021-03-06 Jakub Jelinek <jakub@redhat.com>
1347
1348 PR libstdc++/99396
1349 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
1350 two _Nd which the compiler can pattern match the rotates.
1351
1352 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
1353
1354 PR libstdc++/99382
1355 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
1356 Make storage larger than required. Verify no write to the last
1357 element.
1358 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
1359 Likewise.
1360
1361 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1362
1363 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1364 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1365 Likewise.
1366 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1367 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1368 Likewise.
1369
1370 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1371
1372 * include/experimental/bits/simd.h: Replace reserved _X, _B by
1373 _Xp, _Bp.
1374 * include/experimental/bits/simd_builtin.h: Likewise.
1375 * include/experimental/bits/simd_x86.h: Likewise.
1376
1377 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
1378
1379 PR libstdc++/99301
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.
1383
1384 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1385
1386 * include/std/chrono (year_month_day::_S_from_days): Perform
1387 all calculations with type uint32_t.
1388
1389 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1390
1391 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
1392 * doc/html/manual/abi.html: Regenerate.
1393
1394 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1395
1396 PR libstdc++/99270
1397 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
1398 FILE instead of FILE.
1399
1400 2021-02-25 Andreas Schwab <schwab@suse.de>
1401
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.
1406
1407 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1408
1409 PR libstdc++/99265
1410 * include/std/chrono (year_month_day::_S_from_days): Cast long
1411 to int explicitly.
1412
1413 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
1414
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.
1419
1420 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
1421
1422 PR libstdc++/99261
1423 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
1424 before value to be printed.
1425
1426 2021-02-24 Patrick Palka <ppalka@redhat.com>
1427
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.
1431
1432 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1433
1434 * include/std/chrono (year_month_day_last:day): New
1435 implementation.
1436
1437 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1438
1439 * include/std/chrono (year::is_leap): New implementation.
1440 * testsuite/std/time/year/2.cc: New test.
1441
1442 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1443
1444 * include/std/chrono (year_month_day::_M_days_since_epoch):
1445 New implementation.
1446 * testsuite/std/time/year_month_day/4.cc: New test.
1447
1448 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
1449
1450 * include/std/chrono (year_month_day::_S_from_days): New
1451 implementation.
1452 * testsuite/std/time/year_month_day/3.cc: New test.
1453
1454 2021-02-24 Patrick Palka <ppalka@redhat.com>
1455
1456 PR libstdc++/98384
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.
1464
1465 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
1466
1467 PR libstdc++/98389
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):
1484 Use sprintf_ld.
1485 (to_chars): Define overloads for __float128.
1486
1487 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
1488
1489 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
1490
1491 2021-02-23 Martin Sebor <msebor@redhat.com>
1492
1493 PR c++/99074
1494 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
1495 first argument is null.
1496
1497 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1498
1499 PR libstdc++/99181
1500 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
1501 test.
1502
1503 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1504
1505 PR libstdc++/99181
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
1509 directly.
1510
1511 2021-02-23 Jakub Jelinek <jakub@redhat.com>
1512
1513 PR libstdc++/97549
1514 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
1515
1516 2021-02-23 Patrick Palka <ppalka@redhat.com>
1517
1518 PR libstdc++/98384
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.
1522
1523 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
1524
1525 * include/bits/atomic_wait.h (__thread_relax()): Call
1526 __thread_yield() not __gthread_yield().
1527
1528 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
1529
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.
1534
1535 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
1536
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.
1540
1541 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
1542
1543 PR libstdc++/99096
1544 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
1545
1546 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1547
1548 PR libstdc++/88881
1549 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
1550
1551 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1552
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.
1564
1565 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1566
1567 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
1568 random number to the path.
1569
1570 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1571
1572 * include/experimental/internet (address_v6::to_string): Include
1573 scope ID in string.
1574 * testsuite/experimental/net/internet/address/v6/members.cc:
1575 Test to_string() results.
1576
1577 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1578
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
1584 warning.
1585 * testsuite/experimental/net/internet/address/v4/members.cc:
1586 Remove unused variables.
1587 * testsuite/experimental/net/internet/address/v6/members.cc:
1588 New test.
1589
1590 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1591
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):
1595 Likewise.
1596
1597 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1598
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.
1603
1604 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1605
1606 * testsuite/util/testsuite_allocator.h (memory_resource):
1607 Remove requirement for RTTI and exceptions to be enabled.
1608
1609 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1610
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:
1614 Likewise.
1615 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
1616 Likewise.
1617 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
1618 Likewise.
1619 * testsuite/27_io/basic_stringstream/str/char/2.cc:
1620 Likewise.
1621 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
1622 Likewise.
1623
1624 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1625
1626 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
1627 as unused and only use dynamic_cast when RTTI is enabled.
1628
1629 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1630
1631 PR libstdc++/99077
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
1635 from int parameter.
1636
1637 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
1638
1639 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
1640 new macro.
1641 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
1642 macro instead of _GLIBCXX_EH_PTR_COMPAT.
1643 (operator==): Likewise.
1644
1645 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
1646
1647 PR libstdc++/99058
1648 * doc/xml/manual/status_cxx2011.xml: Document when support
1649 became stable.
1650 * doc/xml/manual/status_cxx2014.xml: Likewise.
1651 * doc/xml/manual/status_cxx2017.xml: Likewise.
1652 * doc/html/manual/status.html: Regenerate.
1653
1654 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1655
1656 PR libstdc++/88881
1657 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
1658
1659 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1660
1661 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
1662 (fs::remove): Use std::system_category() for error codes from
1663 GetLastError().
1664 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
1665 Likewise.
1666
1667 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1668
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:
1673 Likewise.
1674 * testsuite/27_io/filesystem/path/generation/relative.cc:
1675 Likewise.
1676 * testsuite/util/testsuite_fs.h: Likewise.
1677
1678 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
1679
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.
1709
1710 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
1711
1712 * include/bits/stl_deque.h
1713 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
1714 a null pointer test.
1715
1716 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
1717
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:
1721 Likewise.
1722
1723 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
1724
1725 PR libstdc++/99021
1726 * include/std/coroutine (coroutine_handle<P>::from_address): Add
1727 noexcept.
1728
1729 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
1730
1731 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
1732 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
1733
1734 2021-02-09 Jakub Jelinek <jakub@redhat.com>
1735
1736 PR middle-end/98465
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
1740 pointer.
1741
1742 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
1743
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:
1749 Likewise.
1750 * testsuite/19_diagnostics/error_condition/operators/less.cc:
1751 Add comment.
1752 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1753 Likewise.
1754
1755 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
1756
1757 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
1758 calls with a single vaddv for aarch64.
1759
1760 2021-02-03 Matthias Kretz <kretz@kde.org>
1761
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.
1766
1767 2021-02-03 Matthias Kretz <kretz@kde.org>
1768
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.
1778
1779 2021-02-03 Matthias Kretz <kretz@kde.org>
1780
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.
1788
1789 2021-02-03 Matthias Kretz <kretz@kde.org>
1790
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
1796 timeout-factor 2.
1797
1798 2021-02-03 Matthias Kretz <kretz@kde.org>
1799
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
1803 failure.
1804
1805 2021-02-03 Matthias Kretz <kretz@kde.org>
1806
1807 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
1808 markup for long double on powerpc64*.
1809
1810 2021-02-03 Matthias Kretz <kretz@kde.org>
1811
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
1816 defined.
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.
1823
1824 2021-02-03 Matthias Kretz <kretz@kde.org>
1825
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.
1832
1833 2021-02-03 Matthias Kretz <kretz@kde.org>
1834
1835 * testsuite/Makefile.am: Ensure .simd.summary is empty before
1836 collecting a new summary.
1837 * testsuite/Makefile.in: Regenerate.
1838
1839 2021-02-03 Matthias Kretz <kretz@kde.org>
1840
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.
1844
1845 2021-02-03 Matthias Kretz <kretz@kde.org>
1846
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
1851 substring selector.
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'
1859 performance.
1860
1861 2021-02-03 Matthias Kretz <kretz@kde.org>
1862
1863 * include/experimental/bits/simd.h: Remove unnecessary static
1864 assertion. Allow sizeof(8) integer __intrinsic_type to enable
1865 the necessary mask type.
1866
1867 2021-02-03 Matthias Kretz <kretz@kde.org>
1868
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.
1872
1873 2021-02-03 Matthias Kretz <kretz@kde.org>
1874
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
1878 __vector_type.
1879 (__intrin_bitcast): Allow casting to & from vector & intrinsic
1880 types.
1881 (__intrinsic_type): Explicitly specialize for NEON intrinsic
1882 vector types.
1883
1884 2021-02-03 Matthias Kretz <kretz@kde.org>
1885
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:
1921 Ditto.
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.
1930
1931 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
1932
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.
1937
1938 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
1939
1940 PR libstdc++/70303
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.
1945
1946 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
1947
1948 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
1949 status.
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.
1954
1955 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
1956
1957 * include/experimental/bits/numeric_traits.h: Update copyright
1958 dates.
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.
1972
1973 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
1974
1975 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
1976 * doc/html/*: Regenerate.
1977
1978 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
1979
1980 * testsuite/experimental/simd/generate_makefile.sh: Use printf
1981 instead of echo when printing escape characters.
1982
1983 2021-01-27 Matthias Kretz <kretz@kde.org>
1984
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
1993 check-simd target.
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
1998 test timeouts.
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
2003 abs(simd).
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
2012 reference data.
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
2019 values.
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
2026 simd broadcasts.
2027 * testsuite/experimental/simd/tests/casts.cc: New file. Test
2028 simd casts.
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
2032 frexp(simd).
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
2041 modf(simd).
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
2045 log*(simd).
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
2066 specified.
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.
2071 Test reduce(simd).
2072 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
2073 remqo(simd).
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
2081 split(simd_mask).
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.
2088
2089 2021-01-27 Matthias Kretz <kretz@kde.org>
2090
2091 * doc/xml/manual/status_cxx2017.xml: Add implementation status
2092 of the Parallelism TS 2. Document implementation-defined types
2093 and behavior.
2094 * include/Makefile.am: Add new headers.
2095 * include/Makefile.in: Regenerate.
2096 * include/experimental/simd: New file. New header for
2097 Parallelism TS 2.
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
2106 simd conversions.
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
2112 overloads for simd.
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
2117 int.
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.
2135
2136 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
2137
2138 PR libstdc++/66414
2139 * include/bits/string_view.tcc
2140 (basic_string_view::find(const CharT*, size_type, size_type)):
2141 Optimize.
2142
2143 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
2144
2145 * include/bits/basic_string.h (basic_string::contains): New
2146 member functions.
2147 * include/std/string_view (basic_string_view::contains):
2148 Likewise.
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:
2153 Likewise.
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.
2159
2160 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
2161
2162 * src/c++17/Makefile.in: Regenerate.
2163
2164 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
2165
2166 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
2167 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
2168 __lc_type.
2169 (const char* ctype<char>:: is): Same.
2170
2171 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
2172
2173 PR libstdc++/98725
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.
2177
2178 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
2179
2180 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
2181 stringbuf not wstringbuf.
2182
2183 2021-01-18 Jakub Jelinek <jakub@redhat.com>
2184
2185 PR debug/98708
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.
2189
2190 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
2191
2192 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2193 Add -fcf-protection=none to -march=i486.
2194
2195 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
2196
2197 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
2198 compliant.
2199
2200 2021-01-14 Alexandre Oliva <oliva@adacore.com>
2201
2202 * testsuite/30_threads/future/members/poll.cc: Calibrate
2203 iteration count.
2204
2205 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
2206
2207 PR libstdc++/98466
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
2212 iterator checks.
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):
2216 Likewise.
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
2220 checks.
2221 * testsuite/23_containers/deque/debug/98466.cc: New test.
2222 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
2223
2224 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
2225
2226 PR libstdc++/98471
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.
2234
2235 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
2236
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.
2245
2246 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
2247
2248 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
2249
2250 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
2251
2252 PR libstdc++/98613
2253 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
2254 warning.
2255 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
2256
2257 2021-01-08 Olivier Hainque <hainque@adacore.com>
2258
2259 * testsuite/20_util/bind/ref_neg.cc: Tweak the
2260 dg-prune-output regex for out-of-build-tree contexts.
2261
2262 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
2263
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.
2276
2277 2021-01-07 Patrick Palka <ppalka@redhat.com>
2278
2279 PR libstdc++/98384
2280 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
2281 instead of the non-standard nextupl and nextdownl.
2282
2283 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
2284
2285 * configure: Re-generate.
2286
2287 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
2288
2289 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
2290
2291 2021-01-01 Jakub Jelinek <jakub@redhat.com>
2292
2293 * ChangeLog-2020: Rotate ChangeLog. New file.
2294
2295 \f
2296 Copyright (C) 2021 Free Software Foundation, Inc.
2297
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.