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